Annotation of nono/wx/wxmainview.h, revision 1.1.1.3

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2018 [email protected]
                      4: //
                      5: 
                      6: #pragma once
                      7: 
                      8: #include <atomic>
                      9: 
                     10: class WXMainView
                     11:        : public wxPanel
                     12: {
                     13:        typedef wxPanel inherited;
                     14:  public:
                     15:        WXMainView(wxWindow *);
                     16:        virtual ~WXMainView();
                     17: 
                     18:        void DoRefresh();
                     19:        void DoResize(double scale);
                     20: 
                     21:        // 現在のスケールを返す
                     22:        double GetScale() const;
                     23:        // 現在のスケール (wxapp が初期値を指定するため static 変数にしてある)
                     24:        static double screen_scale;
                     25: 
1.1.1.2   root       26:        // マウスモードを設定
                     27:        void SetMouseMode(bool enable);
                     28:        // マウスモードを取得 (キャプチャされているなら true)
                     29:        bool GetMouseMode() const { return mousemode; }
                     30: 
1.1       root       31:  private:
                     32:        void OnPaint(wxPaintEvent& event);
                     33: 
                     34:        void DoPaint(wxDC &dc);
                     35: 
                     36:        void OnKeyDown(wxKeyEvent& event);
                     37:        void OnKeyUp(wxKeyEvent& event);
1.1.1.2   root       38:        void OnMouse(wxMouseEvent& event);
1.1       root       39: 
                     40:        // 裏バッファ。
                     41:        // VM がレンダリングするバッファ。
                     42:        uint8_t *ImageBuf = NULL;
                     43: 
                     44:        // 仮想画面サイズ (ピクセル)
                     45:        int rendwidth = 0;
                     46:        int rendheight = 0;
                     47: 
                     48:        // 実画面サイズ (ピクセル)
                     49:        int viewwidth = 0;
                     50:        int viewheight = 0;
                     51: 
                     52:        // 共通キーコードを取得する
                     53:        int GetKeyCode(wxKeyEvent& event);
                     54: 
                     55: #if defined(__WXGTK__)
                     56:        static const int keycode_table[0xd4];
                     57: #elif defined(__WXOSX__)
                     58:        static const int keycode_table[0x80];
                     59: #endif
                     60: 
1.1.1.2   root       61:        // マウスモード (キャプチャしていれば true)
                     62:        bool mousemode = false;
1.1.1.3 ! root       63:        // 前回のマウス座標とボタン
1.1.1.2   root       64:        wxPoint prevpos {};
1.1.1.3 ! root       65:        bool prevlb {};
        !            66:        bool prevmb {};
        !            67:        bool prevrb {};
        !            68: 
1.1.1.2   root       69:        // WarpPointer() による移動検出用
                     70:        bool motion_by_warp_pointer = false;
                     71:        // マウスカーソルを移動させる
                     72:        void MyWarpPointer(wxSize pos);
                     73: 
1.1       root       74:        wxTimer paintTimer;
                     75:        std::atomic<bool> paintRequested {};
                     76:        void OnTimer(wxTimerEvent& event);
                     77: 
                     78:        wxDECLARE_EVENT_TABLE();
                     79: };
                     80: 
                     81: extern WXMainView *gMainView;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.