Пример #1
0
void SkinManager::loadScene(string sceneName, HXUIOBJ curScene, bool stayVisible, string objectRef, void * pvInitData)
{
	HXUIOBJ hScene;
	
	string path;
	if (CurrentSkin.isCompressed)
	{
		path = "file://" + CurrentSkin.XZPPath;
	} else {
		path = "file://" + CurrentSkin.SkinPath;
	}
	CXuiScene::SceneCreate( strtowstr(path).c_str(), strtowstr(sceneName).c_str(), &hScene, pvInitData);
	
	if(objectRef == "")
		objectRef = sceneName;
		
	getXurObjectHandle[objectRef] = hScene;

	DebugMsg("SkinManager", "SceneObjectMap- Scene Name:  %s,  HXUIOBJ:  %08X", objectRef.c_str(), hScene);
	XuiSceneNavigateForward(curScene, stayVisible, hScene, XUSER_INDEX_ANY);
}
Пример #2
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, &current_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, &current_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, &current_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, &current_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, &current_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, &current_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, &current_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, &current_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;
}