|
|
1.1 root 1: //
2: // nono
1.1.1.2 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
1.1.1.7 root 7: //
8: // モニターウィンドウ
9: //
10:
1.1 root 11: #pragma once
12:
13: #include "wxsubwindow.h"
1.1.1.8 root 14: #include "wxtextscreen.h"
15: #include "wxscrollbar.h"
1.1.1.6 root 16: #include "monitor.h"
1.1 root 17:
1.1.1.8 root 18: // モニタパネル
19: class WXMonitorPanel : public WXTextScreen
20: {
21: using inherited = WXTextScreen;
22: public:
23: WXMonitorPanel(wxWindow *parent, Monitor& monitor_);
1.1.1.9 ! root 24: ~WXMonitorPanel() override;
1.1.1.8 root 25:
26: // 画面を更新して再描画する。
27: void DoRefresh();
28:
29: // 更新頻度設定
30: void SetRate(int hz);
31:
32: Monitor& GetMonitor() const { return monitor; }
33:
34: private:
35: void OnTimer(wxTimerEvent&);
36:
37: Monitor& monitor;
38: wxTimer timer {};
39:
40: wxDECLARE_EVENT_TABLE();
41: };
42:
43: // モニタウィンドウ (サイズ固定)
1.1 root 44: class WXMonitorWindow : public WXSubWindow
45: {
1.1.1.2 root 46: using inherited = WXSubWindow;
1.1 root 47: public:
1.1.1.6 root 48: WXMonitorWindow(wxWindow *parent, const wxString& name,
49: Monitor& monitor_);
1.1.1.9 ! root 50: ~WXMonitorWindow() override;
1.1 root 51:
1.1.1.6 root 52: protected:
1.1.1.8 root 53: // モニタパネル
54: WXMonitorPanel *monpanel {};
55: };
56:
57: // 縦スクロールバー付きモニタウィンドウ
58: class WXScrollMonitorWindow : public WXSubWindow
59: {
60: using inherited = WXSubWindow;
61: public:
62: WXScrollMonitorWindow(wxWindow *parent, const wxString& name,
63: Monitor& monitor_);
1.1.1.9 ! root 64: ~WXScrollMonitorWindow() override;
1.1.1.8 root 65:
66: bool Layout() override;
67:
68: private:
69: // サイズ変更イベント
70: void OnSize(wxSizeEvent& event);
71:
72: // マウスホイールイベント
73: void OnMouseWheel(wxMouseEvent&);
74:
75: // スクロールイベント
76: void OnScroll(wxScrollEvent& event);
77:
78: // スクロール処理
79: void DoScroll(int pos);
80:
81: // モニタパネル
82: WXMonitorPanel *monpanel {};
83:
84: // スクロールバー
85: WXScrollBar *vscroll {};
86:
87: // イベントテーブル
88: wxDECLARE_EVENT_TABLE();
1.1 root 89: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.