diff --git a/config.def.h b/config.def.h index 3d4a6ab152..3d4a78e496 100644 --- a/config.def.h +++ b/config.def.h @@ -305,6 +305,7 @@ static unsigned xmb_alpha_factor = 75; static unsigned menu_font_color_red = 255; static unsigned menu_font_color_green = 255; static unsigned menu_font_color_blue = 255; +static unsigned xmb_layout = 0; static unsigned xmb_icon_theme = XMB_ICON_THEME_MONOCHROME; static unsigned xmb_theme = XMB_THEME_ELECTRIC_BLUE; #if defined(HAVE_LAKKA) || defined(__arm__) || defined(__PPC64__) || defined(__ppc64__) || defined(__powerpc64__) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__) diff --git a/configuration.c b/configuration.c index a03257b708..16b1c44ba9 100644 --- a/configuration.c +++ b/configuration.c @@ -1474,6 +1474,7 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings, SETTING_UINT("menu_left_thumbnails", &settings->uints.menu_left_thumbnails, true, menu_left_thumbnails_default, false); SETTING_UINT("xmb_alpha_factor", &settings->uints.menu_xmb_alpha_factor, true, xmb_alpha_factor, false); SETTING_UINT("xmb_scale_factor", &settings->uints.menu_xmb_scale_factor, true, xmb_scale_factor, false); + SETTING_UINT("xmb_layout", &settings->uints.menu_xmb_layout, true, xmb_layout, false); SETTING_UINT("xmb_theme", &settings->uints.menu_xmb_theme, true, xmb_icon_theme, false); SETTING_UINT("xmb_menu_color_theme", &settings->uints.menu_xmb_color_theme, true, xmb_theme, false); SETTING_UINT("menu_font_color_red", &settings->uints.menu_font_color_red, true, menu_font_color_red, false); diff --git a/configuration.h b/configuration.h index d4aeaa9f6d..890973086c 100644 --- a/configuration.h +++ b/configuration.h @@ -359,6 +359,7 @@ typedef struct settings unsigned menu_entry_normal_color; unsigned menu_entry_hover_color; unsigned menu_title_color; + unsigned menu_xmb_layout; unsigned menu_xmb_shader_pipeline; unsigned menu_xmb_scale_factor; unsigned menu_xmb_alpha_factor; diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index 1561f02d06..ac772516dc 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -1893,6 +1893,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Show Video Tab") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Show Netplay Tab") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Menu Icon Theme") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -3053,6 +3055,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index ef35928e1c..6e6f0155a8 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -1758,6 +1758,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS, "显示设置页") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "显示视频页") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "菜单图标主题") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2881,6 +2883,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index 7f9945dabd..695095e7bd 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -1750,6 +1750,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS, "顯示設定頁") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "顯示視訊頁") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "選單圖標主題") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2873,6 +2875,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index bf0784201b..1c7c9afee0 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -1811,6 +1811,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Zeige Tab 'Video'") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Zeige Tab 'Netplay'") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Menü-Design") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2963,6 +2965,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Wähle ein Datenträger-Abbild, das eingelegt werden soll.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Stelle sicher, dass die Bildwiederholrate im Menü begrenzt wird.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Wähle ein anderes Thema für das Menü aus. Änderungen werden übernommen, nachdem Du das Programm neu gestartet hast.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 227c42163f..b2e52d50ee 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -1654,6 +1654,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS, "Display Settings Tab") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Display Video Tab") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Menu Icon Theme") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2744,6 +2746,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index e8d8434dc9..637a8179ec 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -3233,6 +3233,8 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Mostrar pestaña juego en red" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH( MENU_ENUM_LABEL_VALUE_XMB_THEME, "Tema de iconos del menú" @@ -5125,6 +5127,8 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Limita los FPS en el menú" ) +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH( MENU_ENUM_SUBLABEL_XMB_THEME, "Seleccionar un tema de iconos diferente. Los cambios tendrán efecto al reiniciar" diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 0133bdec20..12c5f97c06 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -1775,6 +1775,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS, "Afficher l'onglet Paramètres") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Afficher l'onglet Vidéo") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Thème XMB") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2911,6 +2913,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index d441d6b7e3..fcf6b070bf 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -1809,6 +1809,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Visualizza colonna Video") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Visualizza colonna Stanze Netplay ") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Icone del Menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2961,6 +2963,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Seleziona un'immagine disco da inserire") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Assicura che i fotogrammi siano attivi all'interno del menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Seleziona un tema diverso per l'icona. Le modifiche avranno effetto dopo il riavvio del programma.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index caa25ad2c3..3562981f0b 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -1877,6 +1877,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "ビデオタブを表示") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "ネットプレイタブを表示") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "メニューのアイコンテーマ") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2985,6 +2987,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "ディスクイメージを追加する。") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 8c148efd8f..875cbbf201 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -1755,6 +1755,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "비디오 탭 보이기") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "넷플레이 탭 보이기") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "메뉴 아이콘 테마") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2875,6 +2877,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "삽입할 디스크 이미지를 선택하십시오.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "메뉴상에 있을 시에는 프레임 제한을 설정.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "다른 아이콘 테마 선택. 변경 내용은 프로그램을 다시 시작 후 적용됩니다.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 7942fd7b3e..cd2485fafa 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1269,6 +1269,8 @@ MSG_HASH(MENU_ENUM_LABEL_CONTENT_SHOW_VIDEO, "content_show_video") MSG_HASH(MENU_ENUM_LABEL_CONTENT_SHOW_NETPLAY, "content_show_netplay") +MSG_HASH(MENU_ENUM_LABEL_XMB_LAYOUT, + "xmb_layout") MSG_HASH(MENU_ENUM_LABEL_XMB_THEME, "xmb_theme") MSG_HASH(MSG_BRINGING_UP_COMMAND_INTERFACE_ON_PORT, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index eeb0cb534d..3501262f53 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -1652,6 +1652,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS, "Instellingentab weergeven") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Videotab weergeven") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Menu Icon Theme") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2748,6 +2750,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index f3624789ca..b43111f30e 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -1897,6 +1897,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Pokaż kartę Wideo") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Pokaż kartę Gry Online") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Motyw ikon menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -3063,6 +3065,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Wybierz obraz dysku, który chcesz wstawić.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Upewnia się, że liczba klatek na sekundę jest ograniczona w menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Wybierz inny motyw dla ikony. Zmiany zaczną obowiązywać po ponownym uruchomieniu programu.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index a81b17c9bf..f819763186 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -2395,6 +2395,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Exibir Aba de Netplay" ) +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Tema de Ícones do Menu" ) @@ -3822,6 +3824,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Certifica-se de que a taxa de quadros é controlada enquanto estiver dentro do menu." ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Selecionar um tema diferente para os ícones. As alterações terão efeito após reiniciar o programa." ) diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index 842f2b9bf1..ca37f48512 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -1745,6 +1745,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS, "Mostrar separador de definições") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Mostrar separador de vídeo") +MSG_HASH(MENU_ENUM_LABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Ícone do tema do menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2852,6 +2854,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Selecione uma imagem de disco para inserir.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Certifique-se de que a taxa de fotogramas atingida enquanto estiver dentro do menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Selecionar um tema diferente para este ícone. As alterações terão efeito após o reinício do programa.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 5278ff7c4a..9f045d4b3d 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -1788,6 +1788,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Показать вкладку Видео") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Показать вкладку Сетевая игра") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Тема значка меню") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2926,6 +2928,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Выберите образ диска для загрузки.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Убедитесь, что частота кадров ограничена внутри меню.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Выберите другую тему для значка. Изменения заработают после перезагрузки.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 1c3ea5e0ee..02a1eee6b4 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -1911,6 +1911,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Show Video Tab") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Show Netplay Tab") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Menu Icon Theme") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -3098,6 +3100,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index d3cc3bee25..971c4408cd 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -1773,6 +1773,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO, "Display Video Tab") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY, "Display Netplay Tab") +MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + "Menu Layout") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_THEME, "Menu Icon Theme") MSG_HASH(MENU_ENUM_LABEL_VALUE_YES, @@ -2909,6 +2911,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND, "Select a disk image to insert.") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE, "Makes sure the framerate is capped while inside the menu.") +MSG_HASH(MENU_ENUM_SUBLABEL_XMB_LAYOUT, + "Select a different layout for the XMB interface.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_THEME, "Select a different theme for the icon. Changes will take effect after you restart the program.") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE, diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 6ccfb0f31a..45827cc6da 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -922,6 +922,37 @@ static void menu_action_setting_disp_set_label_wifi_is_online( strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE), len); } +static void menu_action_setting_disp_set_label_xmb_layout( + file_list_t* list, + unsigned *w, unsigned type, unsigned i, + const char *label, + char *s, size_t len, + const char *entry_label, + const char *path, + char *s2, size_t len2) +{ + settings_t *settings = config_get_ptr(); + + strlcpy(s2, path, len2); + *w = 19; + + if (!settings) + return; + + switch (settings->uints.menu_xmb_layout) + { + case 0: + strlcpy(s, "Auto", len); + break; + case 1: + strlcpy(s, "Console", len); + break; + case 2: + strlcpy(s, "Handheld", len); + break; + } +} + static void menu_action_setting_disp_set_label_xmb_menu_color_theme( file_list_t* list, unsigned *w, unsigned type, unsigned i, @@ -1915,6 +1946,10 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_poll_type_behavior); break; + case MENU_ENUM_LABEL_XMB_LAYOUT: + BIND_ACTION_GET_VALUE(cbs, + menu_action_setting_disp_set_label_xmb_layout); + break; case MENU_ENUM_LABEL_XMB_THEME: BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_xmb_theme); diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 7be57bf835..c75c117a9f 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -298,6 +298,7 @@ default_sublabel_macro(action_bind_sublabel_disk_image_append, default_sublabel_macro(action_bind_sublabel_disk_index, MENU_ENUM_SUBLABEL_DISK_INDEX) default_sublabel_macro(action_bind_sublabel_disk_options, MENU_ENUM_SUBLABEL_DISK_OPTIONS) default_sublabel_macro(action_bind_sublabel_menu_throttle_framerate, MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE) +default_sublabel_macro(action_bind_sublabel_xmb_layout, MENU_ENUM_SUBLABEL_XMB_LAYOUT) default_sublabel_macro(action_bind_sublabel_xmb_icon_theme, MENU_ENUM_SUBLABEL_XMB_THEME) default_sublabel_macro(action_bind_sublabel_xmb_shadows_enable, MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE) default_sublabel_macro(action_bind_sublabel_xmb_vertical_thumbnails, MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS) @@ -833,6 +834,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_XMB_VERTICAL_THUMBNAILS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_xmb_vertical_thumbnails); break; + case MENU_ENUM_LABEL_XMB_LAYOUT: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_xmb_layout); + break; case MENU_ENUM_LABEL_XMB_THEME: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_xmb_icon_theme); break; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 134da0c448..937b1fd2e2 100755 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -3771,19 +3771,36 @@ static void xmb_layout_psp(xmb_handle_t *xmb, int width) static void xmb_layout(xmb_handle_t *xmb) { unsigned width, height, i, current, end; + settings_t *settings = config_get_ptr(); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); size_t selection = menu_navigation_get_selection(); - bool use_ps3_layout = false; video_driver_get_size(&width, &height); - use_ps3_layout = width > 320 && height > 240; + switch (settings->uints.menu_xmb_layout) + { + /* Automatic */ + case 0: + { + bool use_ps3_layout = false; + use_ps3_layout = width > 320 && height > 240; - /* Mimic the layout of the PSP instead of the PS3 on tiny screens */ - if (use_ps3_layout) - xmb_layout_ps3(xmb, width); - else - xmb_layout_psp(xmb, width); + /* Mimic the layout of the PSP instead of the PS3 on tiny screens */ + if (use_ps3_layout) + xmb_layout_ps3(xmb, width); + else + xmb_layout_psp(xmb, width); + } + break; + /* PS3 */ + case 1: + xmb_layout_ps3(xmb, width); + break; + /* PSP */ + case 2: + xmb_layout_psp(xmb, width); + break; + } #ifdef XMB_DEBUG RARCH_LOG("[XMB] margin screen left: %.2f\n", xmb->margins_screen_left); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index ad81b13855..0a8e01f39c 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5356,6 +5356,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MENU_FONT_COLOR_BLUE, PARSE_ONLY_UINT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_XMB_LAYOUT, + PARSE_ONLY_UINT, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_XMB_THEME, PARSE_ONLY_UINT, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index a17aaeea15..79651c3743 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5457,6 +5457,20 @@ static bool setting_append_list( menu_settings_list_current_add_range(list, list_info, 0, 255, 1, true, true); settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED); + CONFIG_UINT( + list, list_info, + &settings->uints.menu_xmb_layout, + MENU_ENUM_LABEL_XMB_LAYOUT, + MENU_ENUM_LABEL_VALUE_XMB_LAYOUT, + xmb_layout, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 0, 2, 1, true, true); + menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT); + CONFIG_UINT( list, list_info, &settings->uints.menu_xmb_theme, diff --git a/msg_hash.h b/msg_hash.h index f55e29f338..c5151f1314 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -761,6 +761,7 @@ enum msg_hash_enums MENU_LABEL(MENU_FONT_COLOR_GREEN), MENU_LABEL(MENU_FONT_COLOR_BLUE), MENU_LABEL(XMB_FONT), + MENU_LABEL(XMB_LAYOUT), MENU_LABEL(XMB_THEME), MENU_LABEL(XMB_MAIN_MENU_ENABLE_SETTINGS), MENU_LABEL(XMB_MENU_COLOR_THEME),