--- nono/wx/wxmonitor.h 2026/04/29 17:05:12 1.1.1.8 +++ nono/wx/wxmonitor.h 2026/04/29 17:05:44 1.1.1.11 @@ -13,15 +13,14 @@ #include "wxsubwindow.h" #include "wxtextscreen.h" #include "wxscrollbar.h" -#include "monitor.h" // モニタパネル class WXMonitorPanel : public WXTextScreen { using inherited = WXTextScreen; public: - WXMonitorPanel(wxWindow *parent, Monitor& monitor_); - virtual ~WXMonitorPanel() override; + WXMonitorPanel(wxWindow *parent, Monitor *monitor_); + ~WXMonitorPanel() override; // 画面を更新して再描画する。 void DoRefresh(); @@ -29,12 +28,12 @@ class WXMonitorPanel : public WXTextScre // 更新頻度設定 void SetRate(int hz); - Monitor& GetMonitor() const { return monitor; } + Monitor *GetMonitor() const { return monitor; } private: void OnTimer(wxTimerEvent&); - Monitor& monitor; + Monitor *monitor {}; wxTimer timer {}; wxDECLARE_EVENT_TABLE(); @@ -46,8 +45,8 @@ class WXMonitorWindow : public WXSubWind using inherited = WXSubWindow; public: WXMonitorWindow(wxWindow *parent, const wxString& name, - Monitor& monitor_); - virtual ~WXMonitorWindow() override; + Monitor *monitor_); + ~WXMonitorWindow() override; protected: // モニタパネル @@ -60,14 +59,16 @@ class WXScrollMonitorWindow : public WXS using inherited = WXSubWindow; public: WXScrollMonitorWindow(wxWindow *parent, const wxString& name, - Monitor& monitor_); - virtual ~WXScrollMonitorWindow() override; + Monitor *monitor_); + ~WXScrollMonitorWindow() override; + void FontChanged() override; + void Fit() override; bool Layout() override; private: - // サイズ変更イベント - void OnSize(wxSizeEvent& event); + // 最大/最小サイズ設定 + wxSize DoSizeHints(); // マウスホイールイベント void OnMouseWheel(wxMouseEvent&); @@ -84,6 +85,9 @@ class WXScrollMonitorWindow : public WXS // スクロールバー WXScrollBar *vscroll {}; - // イベントテーブル - wxDECLARE_EVENT_TABLE(); + // 前回のウィンドウマージン (クライアント領域の外側) + wxSize oldmargin {}; + + // 謎のリサイズ対策 + bool layout_pass2 {}; };