diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index 5b1555927d..aa6041c403 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -524,7 +524,6 @@ class CRetroArchSettings: public CXuiSceneImpl class CRetroArchControls: public CXuiSceneImpl { protected: - HXUIOBJ m_controlslist; HXUIOBJ m_back; HXUIOBJ m_controlnoslider; public: @@ -762,14 +761,17 @@ HRESULT CRetroArchControls::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) int controlno; char buttons[RARCH_FIRST_META_KEY][128]; - GetChildById(L"XuiControlsList", &m_controlslist); + GetChildById(L"XuiControlsList", &m_settingslist); GetChildById(L"XuiBackButton", &m_back); GetChildById(L"XuiControlNoSlider", &m_controlnoslider); XuiSliderSetValue(m_controlnoslider, 0); XuiSliderGetValue(m_controlnoslider, &controlno); + XuiListDeleteItems(m_settingslist, 0, XuiListGetItemCount(m_settingslist)); - for(i = 0; i < RARCH_FIRST_META_KEY; i++) + unsigned keybind_end = RETRO_DEVICE_ID_JOYPAD_R3 + 1; + + for(i = 0; i < keybind_end; i++) { struct platform_bind key_label; strlcpy(key_label.desc, "Unknown", sizeof(key_label.desc)); @@ -781,13 +783,17 @@ HRESULT CRetroArchControls::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) snprintf(buttons[i], sizeof(buttons[i]), "%s #%d: %s", g_settings.input.binds[controlno][i].desc, controlno, key_label.desc); mbstowcs(strw_buffer, buttons[i], sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, i, strw_buffer); + XuiListInsertItems(m_settingslist, i, 1); + XuiListSetText(m_settingslist, i, strw_buffer); } set_dpad_emulation_label(controlno, buttons[0], sizeof(buttons[0])); mbstowcs(strw_buffer, buttons[0], sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); - XuiListSetText(m_controlslist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); + XuiListInsertItems(m_settingslist, keybind_end, 1); + XuiListSetText(m_settingslist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); + + XuiListInsertItems(m_settingslist, keybind_end + 1, 1); + XuiListSetText(m_settingslist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); return 0; } @@ -799,7 +805,7 @@ HRESULT CRetroArchControls::OnControlNavigate( char buttons[RARCH_FIRST_META_KEY][128]; int controlno, i, current_index; - current_index = XuiListGetCurSel(m_controlslist, NULL); + current_index = XuiListGetCurSel(m_settingslist, NULL); XuiSliderGetValue(m_controlnoslider, &controlno); for(i = 0; i < RARCH_FIRST_META_KEY; i++) @@ -815,7 +821,7 @@ HRESULT CRetroArchControls::OnControlNavigate( g_settings.input.binds[controlno][i].desc, controlno, key_label.desc); mbstowcs(strw_buffer, buttons[i], sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, i, strw_buffer); + XuiListSetText(m_settingslist, i, strw_buffer); } switch(pControlNavigateData->nControlNavigate) @@ -862,7 +868,7 @@ HRESULT CRetroArchControls::OnControlNavigate( snprintf(button, sizeof(button), "%s #%d: %s", g_settings.input.binds[controlno][current_index].desc, controlno, key_label.desc); mbstowcs(strw_buffer, button, sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, current_index, strw_buffer); + XuiListSetText(m_settingslist, current_index, strw_buffer); } break; } @@ -910,7 +916,7 @@ HRESULT CRetroArchControls::OnControlNavigate( g_settings.input.binds[controlno][current_index].desc, controlno, key_label.desc); mbstowcs(strw_buffer, button, sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, current_index, strw_buffer); + XuiListSetText(m_settingslist, current_index, strw_buffer); } break; } @@ -923,8 +929,8 @@ HRESULT CRetroArchControls::OnControlNavigate( set_dpad_emulation_label(controlno, button, sizeof(button)); mbstowcs(strw_buffer, button, sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); - XuiListSetText(m_controlslist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); + XuiListSetText(m_settingslist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); + XuiListSetText(m_settingslist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); return 0; } @@ -936,9 +942,9 @@ HRESULT CRetroArchControls::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled XuiSliderGetValue(m_controlnoslider, &controlno); process_input_ret = 0; - if ( hObjPressed == m_controlslist) + if ( hObjPressed == m_settingslist) { - current_index = XuiListGetCurSel(m_controlslist, NULL); + current_index = XuiListGetCurSel(m_settingslist, NULL); switch(current_index) { @@ -962,7 +968,7 @@ HRESULT CRetroArchControls::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled snprintf(buttons[i], sizeof(buttons[i]), "%s #%d: %s", g_settings.input.binds[controlno][i].desc, controlno, key_label.desc); mbstowcs(strw_buffer, buttons[i], sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, i, strw_buffer); + XuiListSetText(m_settingslist, i, strw_buffer); } break; default: @@ -982,7 +988,7 @@ HRESULT CRetroArchControls::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled g_settings.input.binds[controlno][current_index].desc, controlno, key_label.desc); mbstowcs(strw_buffer, buttons[current_index], sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, current_index, strw_buffer); + XuiListSetText(m_settingslist, current_index, strw_buffer); } break; } @@ -991,8 +997,8 @@ HRESULT CRetroArchControls::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled set_dpad_emulation_label(controlno, buttons[current_index], sizeof(buttons[current_index])); mbstowcs(strw_buffer, buttons[current_index], sizeof(strw_buffer) / sizeof(wchar_t)); - XuiListSetText(m_controlslist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); - XuiListSetText(m_controlslist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); + XuiListSetText(m_settingslist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); + XuiListSetText(m_settingslist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); bHandled = TRUE; return 0; diff --git a/media/360/hd/rarch_controls.xui b/media/360/hd/rarch_controls.xui index f83ebd14cc..20578323d9 100644 --- a/media/360/hd/rarch_controls.xui +++ b/media/360/hd/rarch_controls.xui @@ -31,25 +31,6 @@ 360.000000 44.880005,88.000015,0.000000 XuiControlNoSlider -RetroPad Button B: -RetroPad Button Y: -RetroPad Button Select: -RetroPad Button Start: -RetroPad D-Pad Up: -RetroPad D-Pad Down: -RetroPad D-Pad Left: -RetroPad D-Pad Right: -RetroPad Button A: -RetroPad Button X: -RetroPad Button L1: -RetroPad Button R1: -RetroPad Button L2: -RetroPad Button R2: -RetroPad Button L3: -RetroPad Button R3: -D-Pad Emulation: -Reset all buttons to default - @@ -303,6 +284,18 @@ Reset all buttons to default 0.000000,10.000000,0.000000 + + +control_ListItem +226.000000 +45.000000 +7.000000,22.000000,0.000000 +5 +false +XuiButton +0.000000,10.000000,0.000000 + + diff --git a/media/360/sd/rarch_controls.xui b/media/360/sd/rarch_controls.xui index 5248734d14..83465f69fe 100644 --- a/media/360/sd/rarch_controls.xui +++ b/media/360/sd/rarch_controls.xui @@ -31,25 +31,6 @@ 209.679993 44.880005,88.000000,0.000000 XuiControlNoSlider -RetroPad Button B: -RetroPad Button Y: -RetroPad Button Select: -RetroPad Button Start: -RetroPad D-Pad Up: -RetroPad D-Pad Down: -RetroPad D-Pad Left: -RetroPad D-Pad Right: -RetroPad Button A: -RetroPad Button X: -RetroPad Button L1: -RetroPad Button R1: -RetroPad Button L2: -RetroPad Button R2: -RetroPad Button L3: -RetroPad Button R3: -D-Pad Emulation: -Reset all buttons to defaults - @@ -291,6 +272,18 @@ Reset all buttons to defaults 0.000000,10.000000,0.000000 + + +control_ListItem +226.000000 +45.000000 +7.000000,22.000000,0.000000 +5 +false +XuiButton +0.000000,10.000000,0.000000 + +