diff --git a/360/media/ssnes_quickmenu.xui b/360/media/ssnes_quickmenu.xui index 2a91c77aff..e0e97c34b5 100644 --- a/360/media/ssnes_quickmenu.xui +++ b/360/media/ssnes_quickmenu.xui @@ -11,20 +11,6 @@ 347.429474,184.843964,0.000000 SSNESQuickMenu - - -XuiBtnLoadState -488.312012 -38.000000 -38.127724,64.215515,0.000000 -245.362122,102.247192,0.000000 -XuiBackButton -XuiBackButton -XuiBtnReturnToGame -XuiBtnSaveState -Load State #0 - - XuiTxtTitle @@ -38,84 +24,56 @@ 21 - - -XuiBtnFrameAdvance -488.312012 -38.000000 -38.127960,201.615982,0.000000 -XuiBackButton -XuiBackButton -XuiBtnFilteringShader -XuiBtnReturnToGame -Frame Advance - - - - -XuiBtnReturnToGame -488.312012 -38.000000 -38.327736,246.007980,0.000000 -245.162109,-84.153275,0.000000 -XuiBackButton -XuiBackButton -XuiBtnFrameAdvance -XuiBtnLoadState -Return to Game - - - - -XuiBtnSaveState -488.312012 -38.000000 -38.130001,111.655991,0.000000 -XuiBackButton -XuiBackButton -XuiBtnLoadState -XuiBtnFilteringShader -Save State #0 - - - - -XuiBtnFilteringShader -488.312012 -38.000000 -38.130001,156.655991,0.000000 -XuiBackButton -XuiBackButton -XuiBtnSaveState -XuiBtnFrameAdvance - - - - -XuiTxtTitle1 -45.024040 -40.000000 -493.581604,21.159988,0.000000 -1/2 -0xff0f0f0f -0x800f0f0f -Arial Unicode MS -21 - - XuiBackButton 208.632019 36.000000 356.670013,309.000000,0.000000 -XuiBtnLoadState -XuiBtnLoadState -XuiBtnReturnToGame -XuiBtnLoadState +XuiQuickMenuList +XuiQuickMenuList +XuiQuickMenuList +XuiQuickMenuList Go back to menu 22593 + + +XuiQuickMenuList +492.000000 +232.720001 +44.880005,64.959991,0.000000 +XuiBackButton +XuiBackButton +XuiBackButton +XuiBackButton +Load State +Save State +Hardware filtering: +Aspect Ratio: +Overscan: +Orientation: +Resize Mode +Frame Advance +Screenshot Mode +Reset +Return to Game +Return to Dashboard + + + + +control_ListItem +226.000000 +45.000000 +7.000000,22.000000,0.000000 +5 +false +XuiButton +0.000000,10.000000,0.000000 + + + diff --git a/360/menu.cpp b/360/menu.cpp index d2429752f4..023d588932 100644 --- a/360/menu.cpp +++ b/360/menu.cpp @@ -39,6 +39,13 @@ static void return_to_game (void) g_console.mode_switch = MODE_EMULATION; } +static void return_to_dashboard (void) +{ + g_console.menu_enable = false; + g_console.mode_switch = MODE_EXIT; + g_console.initialize_ssnes_enable = false; +} + /* Register custom classes */ HRESULT CSSNES::RegisterXuiClasses (void) { @@ -92,17 +99,17 @@ HRESULT CSSNESFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) return S_OK; } -static void set_filter_element(int index, CXuiControl * obj) +static const wchar_t * set_filter_element(int index) { switch(index) { case FALSE: - obj->SetText(L"Hardware filtering: Point filtering"); - break; + return L"Hardware filtering: Point filtering"; case TRUE: - obj->SetText(L"Hardware filtering: Linear interpolation"); - break; + return L"Hardware filtering: Linear interpolation"; } + + return L""; } HRESULT CSSNESSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) @@ -112,45 +119,86 @@ HRESULT CSSNESSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) GetChildById(L"XuiBackButton1", &m_back); GetChildById(L"XuiBtnHWFilter", &m_hw_filter); - set_filter_element(g_settings.video.smooth, &m_hw_filter); + m_hw_filter.SetText(set_filter_element(g_settings.video.smooth)); m_rewind_cb.SetCheck(g_settings.rewind_enable); return S_OK; } HRESULT CSSNESQuickMenu::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) { - GetChildById(L"XuiBtnLoadState", &m_loadstate); - GetChildById(L"XuiBtnSaveState", &m_savestate); - GetChildById(L"XuiBtnFilteringShader", &m_hw_filter); - GetChildById(L"XuiBtnFrameAdvance", &m_frame_advance); - GetChildById(L"XuiBtnReturnToGame", &m_return_to_game); + GetChildById(L"XuiQuickMenuList", &m_quickmenulist); GetChildById(L"XuiBackButton", &m_back); - set_filter_element(g_settings.video.smooth, &m_hw_filter); + m_quickmenulist.SetText(MENU_ITEM_HARDWARE_FILTERING, set_filter_element(g_settings.video.smooth)); return S_OK; } HRESULT CSSNESQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) { - if ( hObjPressed == m_hw_filter) - g_settings.video.smooth = !g_settings.video.smooth; - else if ( hObjPressed == m_loadstate && g_console.emulator_initialized) + int current_index; + + if ( hObjPressed == m_quickmenulist) { - ssnes_load_state(); - return_to_game(); + current_index = m_quickmenulist.GetCurSel(); + + switch(current_index) + { + case MENU_ITEM_LOAD_STATE: + if (g_console.emulator_initialized) + { + ssnes_load_state(); + return_to_game(); + } + break; + case MENU_ITEM_SAVE_STATE: + if (g_console.emulator_initialized) + { + ssnes_save_state(); + return_to_game(); + } + break; + case MENU_ITEM_HARDWARE_FILTERING: + g_settings.video.smooth = !g_settings.video.smooth; + m_quickmenulist.SetText(MENU_ITEM_HARDWARE_FILTERING, set_filter_element(g_settings.video.smooth)); + break; + case MENU_ITEM_KEEP_ASPECT_RATIO: + break; + case MENU_ITEM_OVERSCAN_AMOUNT: + break; + case MENU_ITEM_ORIENTATION: + break; + case MENU_ITEM_RESIZE_MODE: + break; + case MENU_ITEM_FRAME_ADVANCE: + if (g_console.emulator_initialized) + { + g_console.frame_advance_enable = true; + g_console.menu_enable = false; + g_console.mode_switch = MODE_EMULATION; + } + break; + case MENU_ITEM_SCREENSHOT_MODE: + break; + case MENU_ITEM_RESET: + if (g_console.emulator_initialized) + { + return_to_game(); + ssnes_game_reset(); + } + break; + case MENU_ITEM_RETURN_TO_GAME: + if (g_console.emulator_initialized) + return_to_game(); + break; + case MENU_ITEM_RETURN_TO_DASHBOARD: + return_to_dashboard(); + break; + } } - else if ( hObjPressed == m_frame_advance && g_console.emulator_initialized) - { - g_console.frame_advance_enable = true; - g_console.menu_enable = false; - g_console.mode_switch = MODE_EMULATION; - } - else if ( hObjPressed == m_return_to_game && g_console.emulator_initialized) - return_to_game(); - else if ( hObjPressed == m_back ) + + if ( hObjPressed == m_back ) NavigateBack(app.hMainScene); - set_filter_element(g_settings.video.smooth, &m_hw_filter); bHandled = TRUE; return S_OK; } @@ -223,11 +271,11 @@ HRESULT CSSNESSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) else if ( hObjPressed == m_hw_filter) { g_settings.video.smooth = !g_settings.video.smooth; + m_hw_filter.SetText(set_filter_element(g_settings.video.smooth)); } else if ( hObjPressed == m_back ) NavigateBack(app.hMainScene); - set_filter_element(g_settings.video.smooth, &m_hw_filter); bHandled = TRUE; return S_OK; } @@ -266,11 +314,7 @@ HRESULT CSSNESMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) NavigateForward(app.hSSNESSettings); } else if ( hObjPressed == m_quit ) - { - g_console.menu_enable = false; - g_console.mode_switch = MODE_EXIT; - g_console.initialize_ssnes_enable = false; - } + return_to_dashboard(); bHandled = TRUE; return S_OK; diff --git a/360/menu.h b/360/menu.h index 836d01d006..cf6c9d5139 100644 --- a/360/menu.h +++ b/360/menu.h @@ -79,11 +79,7 @@ public: class CSSNESQuickMenu: public CXuiSceneImpl { protected: - CXuiControl m_loadstate; - CXuiControl m_savestate; - CXuiControl m_hw_filter; - CXuiControl m_frame_advance; - CXuiControl m_return_to_game; + CXuiList m_quickmenulist; CXuiControl m_back; public: HRESULT OnInit( XUIMessageInit* pInitData, int & bHandled ); diff --git a/360/shared.h b/360/shared.h index 65a4ae9915..336595fbb7 100644 --- a/360/shared.h +++ b/360/shared.h @@ -28,6 +28,7 @@ enum enum { MENU_ITEM_LOAD_STATE = 0, MENU_ITEM_SAVE_STATE, + MENU_ITEM_HARDWARE_FILTERING, MENU_ITEM_KEEP_ASPECT_RATIO, MENU_ITEM_OVERSCAN_AMOUNT, MENU_ITEM_ORIENTATION, @@ -36,7 +37,6 @@ enum { MENU_ITEM_SCREENSHOT_MODE, MENU_ITEM_RESET, MENU_ITEM_RETURN_TO_GAME, - MENU_ITEM_RETURN_TO_MENU, MENU_ITEM_RETURN_TO_DASHBOARD };