--- nono/wx/wxmainframe.h 2026/04/29 17:05:16 1.1.1.14 +++ nono/wx/wxmainframe.h 2026/04/29 17:05:40 1.1.1.17 @@ -12,12 +12,12 @@ #include "wxnono.h" #include "monitor.h" -#include "vm.h" #include class FDDDevice; class Keyboard; class PowerDevice; +class SCSITarget; class Syncer; class WXMainView; class WXStatusPanel; @@ -26,7 +26,7 @@ class WXMainFrame : public wxFrame { using inherited = wxFrame; public: - WXMainFrame(wxWindow *); + explicit WXMainFrame(wxWindow *); virtual ~WXMainFrame() override; // (設定反映などの) 初期化 @@ -67,6 +67,11 @@ class WXMainFrame : public wxFrame void OnClose(wxCloseEvent& event); void OnActivate(wxActivateEvent& event); + void OnPowerButton(wxCommandEvent& event); + void OnPowerButtonUI(wxUpdateUIEvent& event); + void OnSoftReset(wxCommandEvent& event); + void OnResetButton(wxCommandEvent& event); + void OnNMIButton(wxCommandEvent& event); void OnRestartVM(wxCommandEvent& event); void OnExit(wxCommandEvent&); @@ -98,10 +103,6 @@ class WXMainFrame : public wxFrame void OnCDForceUI(wxUpdateUIEvent& event); void OnMouseMode(wxCommandEvent& event); void OnMouseModeUI(wxUpdateUIEvent& event); - void OnPowerButton(wxCommandEvent& event); - void OnPowerButtonUI(wxUpdateUIEvent& event); - void OnResetButton(wxCommandEvent& event); - void OnNMIButton(wxCommandEvent& event); void OnKeyboardConnect(wxCommandEvent& event); void OnKeyboardConnectUI(wxUpdateUIEvent& event); @@ -111,8 +112,11 @@ class WXMainFrame : public wxFrame void OnAbout(wxCommandEvent&); + // 指定のモニタ/サブウィンドウがあればメニューに追加する + void AppendIf(wxMenu *, int id, const wxString& label); + int CreateMainviewScaleTable(); - int CreateMonRateTable(); + void CreateMonRateTable(); // リムーバブルデバイス用のメニューを作成して追加する void CreateRemovableMenu(wxMenu *); @@ -123,8 +127,8 @@ class WXMainFrame : public wxFrame // 指定 ID のサブウィンドウがリストにあれば true を返す bool IsExistWindow(int id); - // MPU 名を返す - wxString MPUName() const; + // メイン MPU 名を返す + wxString MPUName() const { return mpuname; } // サブウィンドウリスト std::unique_ptr windows[ID_SUBWIN_MAX] {}; @@ -137,9 +141,15 @@ class WXMainFrame : public wxFrame // (6台構成のことは考えていない) std::array fdd_array {}; + // ウィンドウタイトル + wxString frame_title {}; + // ファイルダイアログを表示する際のカレントディレクトリ std::string current_dir {}; + // MPU 名 + std::string mpuname {}; + // ダブルバスフォールト・イベント void OnHaltNotify(wxCommandEvent& event); // メディア挿入失敗通知