--- nono/wx/wxmainframe.h 2026/04/29 17:04:37 1.1.1.4 +++ nono/wx/wxmainframe.h 2026/04/29 17:04:45 1.1.1.7 @@ -27,8 +27,11 @@ enum { WinID_MONITOR_SCHEDULER, WinID_MONITOR_MPUREG, WinID_MONITOR_MPUATC, + WinID_MONITOR_BPOINT, WinID_MONITOR_BRHIST68K, WinID_MONITOR_BRHIST88K, + WinID_MONITOR_EXHIST68K, + WinID_MONITOR_EXHIST88K, WinID_MONITOR_CMMU7, WinID_MONITOR_CMMU6, WinID_MONITOR_ATC7, @@ -36,6 +39,7 @@ enum { WinID_MONITOR_CACHE7, WinID_MONITOR_CACHE6, WinID_MONITOR_MEMDUMP, + WinID_MONITOR_INTERRUPT, WinID_MONITOR_SPC, WinID_MONITOR_RTC, WinID_MONITOR_DMAC, @@ -46,17 +50,19 @@ enum { WinID_MONITOR_LUNAKEYBOARD, WinID_MONITOR_LCD, WinID_MONITOR_LANCE, - WinID_MONITOR_SYSCTLR, WinID_MONITOR_BITMAP, WinID_MONITOR_BITMAP0, + WinID_MONITOR_HOSTINFO, WinID_MONITOR_NETDRIVER, WinID_SOFTKEY, + WinID_LCD, // ウィンドウ ID ここまで。 WinID_MAX, // ここからそれ以外の ID ID_FULL_SPEED = WinID_MAX, + ID_RESET_VM, ID_SCALE_START, ID_SCALE_1_00, ID_SCALE_0_75, @@ -68,6 +74,12 @@ enum { ID_FONTSIZE_16, ID_FONTSIZE_END, + ID_MONRATE_START, + ID_MONRATE_20, + ID_MONRATE_5, + ID_MONRATE_1, + ID_MONRATE_END, + ID_MOUSEMODE, }; @@ -85,7 +97,7 @@ class WXMainFrame public: WXMainFrame(wxWindow *); - virtual ~WXMainFrame(); + virtual ~WXMainFrame() override; // ウィンドウをリストから削除する。 // ウィンドウをクローズする際に呼び出すこと。 @@ -104,6 +116,9 @@ class WXMainFrame // 起動時にオープンするモニタウィンドウの一覧 static std::array monitor_start; + // モニタウィンドウの更新頻度取得 + int GetMonitorRate() const { return monitor_rate; } + private: void OnCreate(wxCommandEvent& event); void OnClose(wxCloseEvent& event); @@ -111,6 +126,7 @@ class WXMainFrame void OnFullSpeed(wxCommandEvent& event); void OnFullSpeedUI(wxUpdateUIEvent& event); + void OnResetVM(wxCommandEvent& event); void OnExit(wxCommandEvent&); @@ -118,6 +134,8 @@ class WXMainFrame void OnMenuScaleUI(wxUpdateUIEvent& event); void OnMenuFontSize(wxCommandEvent& event); void OnMenuFontSizeUI(wxUpdateUIEvent& event); + void OnMenuMonRate(wxCommandEvent& event); + void OnMenuMonRateUI(wxUpdateUIEvent& event); void OnMouseMode(wxCommandEvent& event); void OnMouseModeUI(wxUpdateUIEvent& event); @@ -137,6 +155,11 @@ class WXMainFrame // サブウィンドウリスト std::unique_ptr windows[WinID_MAX] {}; + // モニタの更新頻度(これが実行中の一次情報) + int monitor_rate {}; + // モニタ更新頻度 ID -> 数値変換 + static const int IDtoMonRate[]; + // ダブルバスフォールト・イベント void OnHaltNotify(wxCommandEvent& event);