--- nono/wx/wxmainframe.h 2026/04/29 17:05:08 1.1.1.12 +++ nono/wx/wxmainframe.h 2026/04/29 17:05:12 1.1.1.13 @@ -15,6 +15,8 @@ #include "vm.h" #include +class FDDDevice; + class WXMainFrame : public wxFrame { using inherited = wxFrame; @@ -37,8 +39,14 @@ class WXMainFrame : public wxFrame // モニタウィンドウの更新頻度取得 int GetMonitorRate() const { return monitor_rate; } - // SCSI リムーバブルデバイス用のメニューを作成して返す + // SCSI リムーバブルデバイス、FD 用のメニューを作成して返す wxMenu *CreateSCSIRemovableMenu(uint id) const; + wxMenu *CreateFDMenu(int unit) const; + + // FD を挿入する + void InsertFD(int unit, const std::string& path); + // FD をイジェクトする + void EjectFD(int unit, bool force); // CD を挿入する void InsertCD(int id, const std::string& path); @@ -67,6 +75,12 @@ class WXMainFrame : public wxFrame void OnShowStatusPanel(wxCommandEvent& event); void OnShowStatusPanelUI(wxUpdateUIEvent& event); + void OnFDInsert(wxCommandEvent& event); + void OnFDInsertUI(wxUpdateUIEvent& event); + void OnFDEject(wxCommandEvent& event); + void OnFDEjectUI(wxUpdateUIEvent& event); + void OnFDForce(wxCommandEvent& event); + void OnFDForceUI(wxUpdateUIEvent& event); void OnCDInsert(wxCommandEvent& event); void OnCDInsertUI(wxUpdateUIEvent& event); void OnCDEject(wxCommandEvent& event); @@ -75,6 +89,8 @@ 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); @@ -107,13 +123,17 @@ class WXMainFrame : public wxFrame // (ホストアダプタが増えた時のことは考えていない) std::array scsidev {}; + // メニュー操作用の FDD デバイス + // (6台構成のことは考えていない) + std::array fdd_array {}; + // ファイルダイアログを表示する際のカレントディレクトリ std::string current_dir {}; // ダブルバスフォールト・イベント void OnHaltNotify(wxCommandEvent& event); // メディア挿入失敗通知 - void OnInsertCDFailed(wxCommandEvent& event); + void OnInsertFailed(wxCommandEvent& event); wxDECLARE_EVENT_TABLE(); };