HRESULT CRetroArchLoadGameHistory::OnControlNavigate( XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { unsigned current_index = XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); if (action == RGUI_ACTION_OK) { load_menu_game_history(current_index); process_input_ret = -1; } bHandled = TRUE; switch (action) { case RGUI_ACTION_LEFT: case RGUI_ACTION_RIGHT: case RGUI_ACTION_UP: case RGUI_ACTION_DOWN: pControlNavigateData->hObjDest = pControlNavigateData->hObjSource; break; default: break; } return 0; }
HRESULT CRetroArchAudioOptions::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { int current_index = XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); switch (current_index) { case MENU_XUI_ITEM_AUDIO_MUTE_AUDIO: menu_set_settings(RGUI_SETTINGS_AUDIO_MUTE, action); XuiListSetText(m_menulist, MENU_XUI_ITEM_AUDIO_MUTE_AUDIO, g_extern.audio_data.mute ? L"Mute Audio : ON" : L"Mute Audio : OFF"); break; } bHandled = TRUE; switch(action) { case RGUI_ACTION_LEFT: case RGUI_ACTION_RIGHT: case RGUI_ACTION_UP: case RGUI_ACTION_DOWN: pControlNavigateData->hObjDest = pControlNavigateData->hObjSource; break; default: break; } return 0; }
HRESULT CRetroArchFileBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled ) { char path[PATH_MAX]; process_input_ret = 0; if(hObjPressed == m_menulist) { int index = XuiListGetCurSel(m_menulist, NULL); wcstombs(str_buffer, (const wchar_t *)XuiListGetText(m_menulist, index), sizeof(str_buffer)); if (path_file_exists(rgui->browser->list->elems[index].data)) { fill_pathname_join(g_extern.fullpath, rgui->browser->current_dir.directory_path, str_buffer, sizeof(g_extern.fullpath)); g_extern.lifecycle_mode_state |= (1ULL << MODE_LOAD_GAME); process_input_ret = -1; } else if(rgui->browser->list->elems[index].attr.b) { fill_pathname_join(path, rgui->browser->current_dir.directory_path, str_buffer, sizeof(path)); filebrowser_set_root_and_ext(rgui->browser, rgui->info.valid_extensions, path); filebrowser_fetch_directory_entries(RGUI_ACTION_OK); } } bHandled = TRUE; return 0; }
HRESULT CRetroArchCoreBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled ) { char path[PATH_MAX]; process_input_ret = 0; if(hObjPressed == m_menulist) { int index = XuiListGetCurSel(m_menulist, NULL); wcstombs(str_buffer, (const wchar_t *)XuiListGetText(m_menulist, index), sizeof(str_buffer)); if(path_file_exists(rgui->browser->list->elems[index].data)) { fill_pathname_join(path, rgui->browser->current_dir.directory_path, str_buffer, sizeof(path)); rarch_environment_cb(RETRO_ENVIRONMENT_SET_LIBRETRO_PATH, (void*)path); g_extern.lifecycle_mode_state |= (1ULL << MODE_EXITSPAWN); process_input_ret = -1; } else if (rgui->browser->list->elems[index].attr.b) { fill_pathname_join(path, rgui->browser->current_dir.directory_path, str_buffer, sizeof(path)); filebrowser_set_root_and_ext(rgui->browser, "xex|XEX", path); filebrowser_fetch_directory_entries(RGUI_ACTION_OK); } } bHandled = TRUE; return 0; }
HRESULT CRetroArchVideoOptions::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { bool aspectratio_changed = false; int current_index; current_index = XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); switch (current_index) { case MENU_XUI_ITEM_HW_TEXTURE_FILTER: menu_set_settings(RGUI_SETTINGS_VIDEO_FILTER, action); XuiListSetText(m_menulist, MENU_XUI_ITEM_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Default Filter: Linear" : L"Default Filter: Nearest"); break; case MENU_XUI_ITEM_GAMMA_CORRECTION_ENABLED: if (action == RGUI_ACTION_LEFT || action == RGUI_ACTION_RIGHT || action == RGUI_ACTION_OK) { g_extern.console.screen.gamma_correction = g_extern.console.screen.gamma_correction ? 0 : 1; XuiListSetText(m_menulist, MENU_XUI_ITEM_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); msg_queue_push(g_extern.msg_queue, "You need to restart for this change to take effect.\n", 1, 90); } break; case MENU_XUI_ITEM_ASPECT_RATIO: menu_set_settings(RGUI_SETTINGS_VIDEO_ASPECT_RATIO, action); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); XuiListSetText(m_menulist, MENU_XUI_ITEM_ASPECT_RATIO, strw_buffer); break; case MENU_XUI_ITEM_ORIENTATION: menu_set_settings(RGUI_SETTINGS_VIDEO_ROTATION, action); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); XuiListSetText(m_menulist, MENU_XUI_ITEM_ORIENTATION, strw_buffer); driver.video->set_rotation(driver.video_data, g_settings.video.rotation); break; } bHandled = TRUE; switch(action) { case RGUI_ACTION_LEFT: case RGUI_ACTION_RIGHT: case RGUI_ACTION_UP: case RGUI_ACTION_DOWN: pControlNavigateData->hObjDest = pControlNavigateData->hObjSource; break; default: break; } return 0; }
HRESULT CRetroArchCoreOptions::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { unsigned current_index = XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); if (g_extern.system.core_options) { bool update_item = false; switch (action) { case RGUI_ACTION_LEFT: core_option_prev(g_extern.system.core_options, current_index); update_item = true; break; case RGUI_ACTION_RIGHT: core_option_next(g_extern.system.core_options, current_index); update_item = true; break; } if (update_item) { char label[256]; strlcpy(label, core_option_get_desc(g_extern.system.core_options, current_index), sizeof(label)); snprintf(label, sizeof(label), "%s : %s", label, core_option_get_val(g_extern.system.core_options, current_index)); mbstowcs(strw_buffer, label, sizeof(strw_buffer) / sizeof(wchar_t)); XuiListSetText(m_menulist, current_index, strw_buffer); } } bHandled = TRUE; switch(action) { case RGUI_ACTION_LEFT: case RGUI_ACTION_RIGHT: case RGUI_ACTION_UP: case RGUI_ACTION_DOWN: pControlNavigateData->hObjDest = pControlNavigateData->hObjSource; break; default: break; } return 0; }
HRESULT CRetroArchControls::OnControlNavigate( XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { char button[128]; char buttons[RARCH_FIRST_META_KEY][128]; int i, current_index; for(i = 0; i < RARCH_FIRST_META_KEY; i++) { struct platform_bind key_label; strlcpy(key_label.desc, "Unknown", sizeof(key_label.desc)); key_label.joykey = g_settings.input.binds[rgui->current_pad][i].joykey; if (driver.input->set_keybinds) driver.input->set_keybinds(&key_label, 0, 0, 0, (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL)); snprintf(buttons[i], sizeof(buttons[i]), "%s #%d: %s", g_settings.input.binds[rgui->current_pad][i].desc, rgui->current_pad, key_label.desc); mbstowcs(strw_buffer, buttons[i], sizeof(strw_buffer) / sizeof(wchar_t)); XuiListSetText(m_menulist, i, strw_buffer); } current_index = XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); switch(current_index) { case SETTING_CONTROLS_DPAD_EMULATION: break; case SETTING_CONTROLS_DEFAULT_ALL: break; default: break; } //set_dpad_emulation_label(rgui->current_pad, button, sizeof(button)); //mbstowcs(strw_buffer, button, sizeof(strw_buffer) / sizeof(wchar_t)); //XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, strw_buffer); XuiListSetText(m_menulist, SETTING_CONTROLS_DPAD_EMULATION, L"Stub"); XuiListSetText(m_menulist, SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default"); return 0; }
HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { int current_index; xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data; current_index = XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); switch(current_index) { case INGAME_MENU_REWIND_ENABLED: menu_set_settings(RGUI_SETTINGS_REWIND_ENABLE, action); XuiListSetText(m_menulist, INGAME_MENU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); break; case INGAME_MENU_REWIND_GRANULARITY: menu_set_settings(RGUI_SETTINGS_REWIND_GRANULARITY, action); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); XuiListSetText(m_menulist, INGAME_MENU_REWIND_GRANULARITY, strw_buffer); break; case SETTING_EMU_SHOW_DEBUG_INFO_MSG: menu_set_settings(RGUI_SETTINGS_DEBUG_TEXT, action); XuiListSetText(m_menulist, SETTING_EMU_SHOW_DEBUG_INFO_MSG, g_settings.fps_show ? L"Show Framerate: ON" : L"Show Framerate: OFF"); break; default: break; } bHandled = TRUE; switch(action) { case RGUI_ACTION_LEFT: case RGUI_ACTION_RIGHT: case RGUI_ACTION_UP: case RGUI_ACTION_DOWN: pControlNavigateData->hObjDest = pControlNavigateData->hObjSource; break; default: break; } return 0; }
HRESULT CRomList::OnNotify( XUINotify *hObj, BOOL& bHandled ) { int nIndex = 0; switch(hObj->dwNotify) { case XN_SELCHANGED: nIndex = XuiListGetCurSel( this->m_hObj, NULL ); break; } return S_OK; }
HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled ) { char path[PATH_MAX]; process_input_ret = 0; if(hObjPressed == m_menulist) { int index = XuiListGetCurSel(m_menulist, NULL); if (path_file_exists(rgui->browser->list->elems[index].data)) wcstombs(str_buffer, (const wchar_t *)XuiListGetText(m_menulist, index), sizeof(str_buffer)); else if (rgui->browser->list->elems[index].attr.b) { wcstombs(str_buffer, (const wchar_t *)XuiListGetText(m_menulist, index), sizeof(str_buffer)); fill_pathname_join(path, rgui->browser->current_dir.directory_path, str_buffer, sizeof(path)); filebrowser_set_root_and_ext(rgui->browser, "cg", path); filebrowser_fetch_directory_entries(RGUI_ACTION_OK); } } bHandled = TRUE; return 0; }
HRESULT CRetroArchMain::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled) { xdk_d3d_video_t *vid = (xdk_d3d_video_t*)driver.video_data; HRESULT hr; int current_index; bool hdmenus_allowed = (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU_HD)); current_index= XuiListGetCurSel(m_menulist, NULL); unsigned input = pControlNavigateData->nControlNavigate; unsigned action = xui_input_to_rgui_action(input); HXUIOBJ current_obj = current_menu; switch (current_index) { case INGAME_MENU_CHANGE_LIBRETRO_CORE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_libretrocore_browser.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_LOAD_GAME_HISTORY_MODE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_load_game_history.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_CHANGE_GAME: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_filebrowser.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_CORE_OPTIONS_MODE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_core_options.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_VIDEO_OPTIONS_MODE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_video_options.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_AUDIO_OPTIONS_MODE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_audio_options.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_INPUT_OPTIONS_MODE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_controls.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_PATH_OPTIONS_MODE: break; case INGAME_MENU_SETTINGS_MODE: if (action == RGUI_ACTION_OK) { hr = XuiSceneCreate(hdmenus_allowed ? L"file://game:/media/hd/" : L"file://game:/media/sd/", L"rarch_settings.xur", NULL, ¤t_menu); if (hr < 0) RARCH_ERR("Failed to load scene.\n"); XuiSceneNavigateForward(current_obj, false, current_menu, XUSER_INDEX_FOCUS); } break; case INGAME_MENU_LOAD_STATE: process_input_ret = menu_set_settings(RGUI_SETTINGS_SAVESTATE_LOAD, action); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); XuiListSetText(m_menulist, INGAME_MENU_LOAD_STATE, strw_buffer); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); XuiListSetText(m_menulist, INGAME_MENU_SAVE_STATE, strw_buffer); break; case INGAME_MENU_SAVE_STATE: process_input_ret = menu_set_settings(RGUI_SETTINGS_SAVESTATE_SAVE, action); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); XuiListSetText(m_menulist, INGAME_MENU_LOAD_STATE, strw_buffer); menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); XuiListSetText(m_menulist, INGAME_MENU_SAVE_STATE, strw_buffer); break; case INGAME_MENU_SCREENSHOT_MODE: break; case INGAME_MENU_RETURN_TO_GAME: process_input_ret = menu_set_settings(RGUI_SETTINGS_RESUME_GAME, action); break; case INGAME_MENU_RESET: process_input_ret = menu_set_settings(RGUI_SETTINGS_RESTART_GAME, action); break; case INGAME_MENU_QUIT_RETROARCH: process_input_ret = menu_set_settings(RGUI_SETTINGS_QUIT_RARCH, action); break; } bHandled = TRUE; switch(action) { case RGUI_ACTION_LEFT: case RGUI_ACTION_RIGHT: case RGUI_ACTION_UP: case RGUI_ACTION_DOWN: pControlNavigateData->hObjDest = pControlNavigateData->hObjSource; break; default: break; } return 0; }