--- nono/wx/wxmainframe.h 2026/04/29 17:05:12 1.1.1.13 +++ nono/wx/wxmainframe.h 2026/04/29 17:05:16 1.1.1.14 @@ -16,6 +16,11 @@ #include class FDDDevice; +class Keyboard; +class PowerDevice; +class Syncer; +class WXMainView; +class WXStatusPanel; class WXMainFrame : public wxFrame { @@ -36,8 +41,12 @@ class WXMainFrame : public wxFrame // 起動時にオープンするサブウィンドウの一覧 static std::array subwindow_start; - // モニタウィンドウの更新頻度取得 - int GetMonitorRate() const { return monitor_rate; } + // モニタウィンドウの更新頻度取得・設定 + static int GetMonitorRate() { return monitor_rate; } + static void SetMonitorRate(int val) { monitor_rate = val; } + + // メンバの取得 + WXMainView *GetMainView() { return mainview; } // SCSI リムーバブルデバイス、FD 用のメニューを作成して返す wxMenu *CreateSCSIRemovableMenu(uint id) const; @@ -102,6 +111,9 @@ class WXMainFrame : public wxFrame void OnAbout(wxCommandEvent&); + int CreateMainviewScaleTable(); + int CreateMonRateTable(); + // リムーバブルデバイス用のメニューを作成して追加する void CreateRemovableMenu(wxMenu *); @@ -111,14 +123,12 @@ class WXMainFrame : public wxFrame // 指定 ID のサブウィンドウがリストにあれば true を返す bool IsExistWindow(int id); + // MPU 名を返す + wxString MPUName() const; + // サブウィンドウリスト std::unique_ptr windows[ID_SUBWIN_MAX] {}; - // モニタの更新頻度(これが実行中の一次情報) - int monitor_rate {}; - // モニタ更新頻度 ID -> 数値変換 - static const int IDtoMonRate[]; - // メニュー操作用の SCSI デバイス // (ホストアダプタが増えた時のことは考えていない) std::array scsidev {}; @@ -135,7 +145,20 @@ class WXMainFrame : public wxFrame // メディア挿入失敗通知 void OnInsertFailed(wxCommandEvent& event); + WXMainView *mainview {}; + WXStatusPanel *statuspanel {}; + + Keyboard *keyboard {}; + PowerDevice *power {}; + Syncer *syncer {}; + + // 表示スケールの選択肢 + static std::vector view_scales; + + // モニタの更新頻度(これが実行中の一次情報) + static int monitor_rate; + // モニタ更新頻度の選択肢 + static std::vector monrates; + wxDECLARE_EVENT_TABLE(); }; - -extern WXMainFrame *gMainFrame;