diff options
Diffstat (limited to 'Source/Core/DolphinWX/Src/FrameTools.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Src/FrameTools.cpp | 76 |
1 files changed, 65 insertions, 11 deletions
diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index d7cda0e5dd..da76aed608 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -139,11 +139,20 @@ void CFrame::CreateMenu() emulationMenu->AppendSeparator(); wxMenu *saveMenu = new wxMenu; wxMenu *loadMenu = new wxMenu; - m_pSubMenuLoad = emulationMenu->AppendSubMenu(saveMenu, _T("&Load State")); - m_pSubMenuSave = emulationMenu->AppendSubMenu(loadMenu, _T("Sa&ve State")); + m_pSubMenuLoad = emulationMenu->AppendSubMenu(loadMenu, _T("&Load State")); + m_pSubMenuSave = emulationMenu->AppendSubMenu(saveMenu, _T("Sa&ve State")); + + saveMenu->Append(IDM_SAVESTATEFILE, _T("Save State...")); + saveMenu->AppendSeparator(); + + loadMenu->Append(IDM_LOADSTATEFILE, _T("Load State...")); + loadMenu->Append(IDM_LOADLASTSTATE, _T("Last Saved State\tF11")); + loadMenu->Append(IDM_UNDOSTATE, _T("Last Overwritten State\tF12")); + loadMenu->AppendSeparator(); + for (int i = 1; i < 10; i++) { - saveMenu->Append(IDM_LOADSLOT1 + i - 1, wxString::Format(_T("Slot %i\tF%i"), i, i)); - loadMenu->Append(IDM_SAVESLOT1 + i - 1, wxString::Format(_T("Slot %i\tShift+F%i"), i, i)); + loadMenu->Append(IDM_LOADSLOT1 + i - 1, wxString::Format(_T("Slot %i\tF%i"), i, i)); + saveMenu->Append(IDM_SAVESLOT1 + i - 1, wxString::Format(_T("Slot %i\tShift+F%i"), i, i)); } menuBar->Append(emulationMenu, _T("&Emulation")); @@ -717,6 +726,52 @@ void CFrame::OnToggleSkipIdle(wxCommandEvent& WXUNUSED (event)) SConfig::GetInstance().SaveSettings(); } +void CFrame::OnLoadStateFromFile(wxCommandEvent& WXUNUSED (event)) +{ + wxString path = wxFileSelector( + _T("Select the state to load"), + wxEmptyString, wxEmptyString, wxEmptyString, + wxString::Format + ( + _T("All Save States (sav, s##)|*.sav;*.s??|All files (%s)|%s"), + wxFileSelectorDefaultWildcardStr, + wxFileSelectorDefaultWildcardStr + ), + wxFD_OPEN | wxFD_PREVIEW | wxFD_FILE_MUST_EXIST, + this); + + if(path) + State_LoadAs(path.ToAscii()); +} + +void CFrame::OnSaveStateToFile(wxCommandEvent& WXUNUSED (event)) +{ + wxString path = wxFileSelector( + _T("Select the state to save"), + wxEmptyString, wxEmptyString, wxEmptyString, + wxString::Format + ( + _T("All Save States (sav, s##)|*.sav;*.s??|All files (%s)|%s"), + wxFileSelectorDefaultWildcardStr, + wxFileSelectorDefaultWildcardStr + ), + wxFD_SAVE, + this); + + if(path) + State_SaveAs(path.ToAscii()); +} + +void CFrame::OnLoadLastState(wxCommandEvent& WXUNUSED (event)) +{ + State_LoadLastSaved(); +} + +void CFrame::OnUndoState(wxCommandEvent& WXUNUSED (event)) +{ + State_LoadAs(FULL_STATESAVES_DIR "lastState.sav"); +} + void CFrame::OnLoadState(wxCommandEvent& event) { int id = event.GetId(); @@ -724,13 +779,6 @@ void CFrame::OnLoadState(wxCommandEvent& event) State_Load(slot); } -void CFrame::OnResize(wxSizeEvent& event) -{ - FitInside(); - DoMoveIcons(); // In FrameWiimote.cpp - event.Skip(); -} - void CFrame::OnSaveState(wxCommandEvent& event) { int id = event.GetId(); @@ -738,6 +786,12 @@ void CFrame::OnSaveState(wxCommandEvent& event) State_Save(slot); } +void CFrame::OnResize(wxSizeEvent& event) +{ + FitInside(); + DoMoveIcons(); // In FrameWiimote.cpp + event.Skip(); +} // Enable and disable the toolbar void CFrame::OnToggleToolbar(wxCommandEvent& event) |
