|
|
1.1 root 1: //
2: // nono
1.1.1.4 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
1.1.1.11 root 7: //
8: // メイン画面パネル
9: //
10:
1.1 root 11: #pragma once
12:
1.1.1.9 root 13: #include "wxnono.h"
1.1 root 14:
1.1.1.13! root 15: wxDECLARE_EVENT(NONO_EVT_MOUSEMODE, wxCommandEvent);
! 16:
! 17: class Keyboard;
! 18: class Renderer;
! 19:
1.1.1.9 root 20: class WXMainView : public wxPanel
1.1 root 21: {
1.1.1.4 root 22: using inherited = wxPanel;
1.1 root 23: public:
24: WXMainView(wxWindow *);
1.1.1.7 root 25: virtual ~WXMainView() override;
1.1 root 26:
1.1.1.10 root 27: bool Init();
28:
1.1.1.11 root 29: void Close();
1.1 root 30: void DoResize(double scale);
31:
32: // 現在のスケールを返す
33: double GetScale() const;
34: // 現在のスケール (wxapp が初期値を指定するため static 変数にしてある)
35: static double screen_scale;
36:
1.1.1.10 root 37: // 文字入力モードを取得・設定
38: bool GetCharInputMode() const { return is_charinput; }
39: void SetCharInputMode(bool enable);
40:
1.1.1.2 root 41: // マウスモードを設定
42: void SetMouseMode(bool enable);
43: // マウスモードを取得 (キャプチャされているなら true)
44: bool GetMouseMode() const { return mousemode; }
1.1.1.4 root 45: // アクティベートイベント
46: void OnActivate(wxActivateEvent& event);
1.1.1.2 root 47:
1.1.1.8 root 48: // キー入力イベント (WXSoftKeyPanel からも呼ばれる)
49: void OnKeyDown(wxKeyEvent& event);
50: void OnKeyUp(wxKeyEvent& event);
1.1.1.10 root 51: void OnChar(wxKeyEvent& event);
1.1.1.8 root 52:
1.1 root 53: private:
1.1.1.5 root 54: void OnTimer(wxTimerEvent& event);
1.1 root 55: void OnPaint(wxPaintEvent& event);
1.1.1.2 root 56: void OnMouse(wxMouseEvent& event);
1.1.1.12 root 57: void OnMouseCaptureLost(wxMouseCaptureLostEvent& event);
1.1.1.11 root 58: void OnRender(wxCommandEvent& event);
1.1.1.13! root 59: void OnMouseMode(wxCommandEvent& event);
1.1 root 60:
61: // 仮想画面サイズ (ピクセル)
1.1.1.6 root 62: int rendwidth {};
63: int rendheight {};
1.1 root 64:
65: // 実画面サイズ (ピクセル)
1.1.1.6 root 66: int viewwidth {};
67: int viewheight {};
1.1 root 68:
69: // 共通キーコードを取得する
70: int GetKeyCode(wxKeyEvent& event);
71:
1.1.1.8 root 72: static const int keycode_table[0x190];
1.1 root 73:
1.1.1.10 root 74: // 文字入力モードなら true
75: bool is_charinput {};
76:
1.1.1.2 root 77: // マウスモード (キャプチャしていれば true)
1.1.1.6 root 78: bool mousemode {};
1.1.1.3 root 79: // 前回のマウス座標とボタン
1.1.1.2 root 80: wxPoint prevpos {};
1.1.1.3 root 81: bool prevlb {};
82: bool prevmb {};
83: bool prevrb {};
84:
1.1.1.2 root 85: // WarpPointer() による移動検出用
1.1.1.6 root 86: bool motion_by_warp_pointer {};
1.1.1.2 root 87: // マウスカーソルを移動させる
88: void MyWarpPointer(wxSize pos);
89:
1.1.1.13! root 90: Keyboard *keyboard {};
! 91: Renderer *renderer {};
! 92:
1.1 root 93: wxDECLARE_EVENT_TABLE();
94: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.