|
|
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:
1.1.1.14! root 24: explicit 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 viewwidth {};
63: int viewheight {};
1.1 root 64:
65: // 共通キーコードを取得する
66: int GetKeyCode(wxKeyEvent& event);
67:
1.1.1.8 root 68: static const int keycode_table[0x190];
1.1 root 69:
1.1.1.10 root 70: // 文字入力モードなら true
71: bool is_charinput {};
72:
1.1.1.2 root 73: // マウスモード (キャプチャしていれば true)
1.1.1.6 root 74: bool mousemode {};
1.1.1.3 root 75: // 前回のマウス座標とボタン
1.1.1.2 root 76: wxPoint prevpos {};
1.1.1.3 root 77: bool prevlb {};
78: bool prevmb {};
79: bool prevrb {};
80:
1.1.1.2 root 81: // WarpPointer() による移動検出用
1.1.1.6 root 82: bool motion_by_warp_pointer {};
1.1.1.2 root 83: // マウスカーソルを移動させる
84: void MyWarpPointer(wxSize pos);
85:
1.1.1.13 root 86: Keyboard *keyboard {};
87: Renderer *renderer {};
88:
1.1 root 89: wxDECLARE_EVENT_TABLE();
90: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.