diff --git a/configuration.c b/configuration.c
index 62073df9b3..557584c3cb 100644
--- a/configuration.c
+++ b/configuration.c
@@ -575,9 +575,7 @@ static enum location_driver_enum LOCATION_DEFAULT_DRIVER = LOCATION_NULL;
#if defined(_3DS) && defined(HAVE_RGUI)
static enum menu_driver_enum MENU_DEFAULT_DRIVER = MENU_RGUI;
#else
-#if defined(HAVE_XUI)
-static enum menu_driver_enum MENU_DEFAULT_DRIVER = MENU_XUI;
-#elif defined(HAVE_MATERIALUI) && defined(RARCH_MOBILE)
+#if defined(HAVE_MATERIALUI) && defined(RARCH_MOBILE)
static enum menu_driver_enum MENU_DEFAULT_DRIVER = MENU_MATERIALUI;
#elif defined(HAVE_OZONE)
static enum menu_driver_enum MENU_DEFAULT_DRIVER = MENU_OZONE;
@@ -1090,8 +1088,6 @@ const char *config_get_default_menu(void)
{
case MENU_RGUI:
return "rgui";
- case MENU_XUI:
- return "xui";
case MENU_OZONE:
return "ozone";
case MENU_MATERIALUI:
diff --git a/griffin/griffin_cpp.cpp b/griffin/griffin_cpp.cpp
index d6fca38210..acabbc4106 100644
--- a/griffin/griffin_cpp.cpp
+++ b/griffin/griffin_cpp.cpp
@@ -35,13 +35,6 @@
#endif
#endif
-/*============================================================
-MENU
-============================================================ */
-#ifdef HAVE_XUI
-#include "../menu/drivers/xui.cpp"
-#endif
-
/*============================================================
UI
============================================================ */
diff --git a/menu/drivers/xui.cpp b/menu/drivers/xui.cpp
deleted file mode 100644
index dbc6e5f344..0000000000
--- a/menu/drivers/xui.cpp
+++ /dev/null
@@ -1,735 +0,0 @@
-/* RetroArch - A frontend for libretro.
- * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
- * Copyright (C) 2011-2017 - Daniel De Matteis
- * Copyright (C) 2015- - Swizzy
- *
- * RetroArch is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Found-
- * ation, either version 3 of the License, or (at your option) any later version.
- *
- * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with RetroArch.
- * If not, see .
- */
-
-#define CINTERFACE
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include "../menu_driver.h"
-#include "../../gfx/gfx_animation.h"
-#include "../menu_entries.h"
-#include "../menu_input.h"
-#include "../menu_setting.h"
-#include "../widgets/menu_input_dialog.h"
-
-#include "../../configuration.h"
-#include "../../retroarch.h"
-#include "../../verbosity.h"
-
-#include "../../gfx/common/d3d_common.h"
-#include "../../gfx/common/d3d9_common.h"
-
-#define XUI_CONTROL_NAVIGATE_OK (XUI_CONTROL_NAVIGATE_RIGHT + 1)
-
-#define FONT_WIDTH 5
-#define FONT_HEIGHT 10
-#define FONT_WIDTH_STRIDE (FONT_WIDTH + 1)
-#define FONT_HEIGHT_STRIDE (FONT_HEIGHT + 1)
-#define RXUI_TERM_START_X 15
-#define RXUI_TERM_START_Y 27
-#define RXUI_TERM_WIDTH(width) (((width - RXUI_TERM_START_X - 15) / (FONT_WIDTH_STRIDE)))
-#define RXUI_TERM_HEIGHT(height) (((height - RXUI_TERM_START_Y - 15) / (FONT_HEIGHT_STRIDE)) - 1)
-
-HXUIOBJ m_menulist;
-HXUIOBJ m_menutitle;
-HXUIOBJ m_menutitlebottom;
-HXUIOBJ m_background;
-HXUIOBJ m_back;
-HXUIOBJ root_menu;
-HXUIOBJ current_menu;
-static msg_queue_t *xui_msg_queue = NULL;
-
-class CRetroArch : public CXuiModule
-{
- protected:
- virtual HRESULT RegisterXuiClasses();
- virtual HRESULT UnregisterXuiClasses();
-};
-
-#define CREATE_CLASS(class_type, class_name) \
-class class_type: public CXuiSceneImpl \
-{ \
- public: \
- HRESULT OnInit( XUIMessageInit* pInitData, int & bHandled ); \
- HRESULT DispatchMessageMap(XUIMessage *pMessage) \
- { \
- if (pMessage->dwMessage == XM_INIT) \
- { \
- XUIMessageInit *pData = (XUIMessageInit *) pMessage->pvData; \
- return OnInit(pData, pMessage->bHandled); \
- } \
- return __super::DispatchMessageMap(pMessage); \
- } \
- \
- static HRESULT Register() \
- { \
- HXUICLASS hClass; \
- XUIClass cls; \
- memset(&cls, 0x00, sizeof(cls)); \
- cls.szClassName = class_name; \
- cls.szBaseClassName = XUI_CLASS_SCENE; \
- cls.Methods.CreateInstance = (PFN_CREATEINST) (CreateInstance); \
- cls.Methods.DestroyInstance = (PFN_DESTROYINST) DestroyInstance; \
- cls.Methods.ObjectProc = (PFN_OBJECT_PROC) _ObjectProc; \
- cls.pPropDefs = _GetPropDef(&cls.dwPropDefCount); \
- HRESULT hr = XuiRegisterClass(&cls, &hClass); \
- if (FAILED(hr)) \
- return hr; \
- return S_OK; \
- } \
- \
- static HRESULT APIENTRY CreateInstance(HXUIOBJ hObj, void **ppvObj) \
- { \
- *ppvObj = NULL; \
- class_type *pThis = new class_type(); \
- if (!pThis) \
- return E_OUTOFMEMORY; \
- pThis->m_hObj = hObj; \
- HRESULT hr = pThis->OnCreate(); \
- if (FAILED(hr)) \
- { \
- DestroyInstance(pThis); \
- return hr; \
- } \
- *ppvObj = pThis; \
- return S_OK; \
- } \
- \
- static HRESULT APIENTRY DestroyInstance(void *pvObj) \
- { \
- class_type *pThis = (class_type *) pvObj; \
- delete pThis; \
- return S_OK; \
- } \
-}
-
-CREATE_CLASS(CRetroArchMain, L"RetroArchMain");
-
-CRetroArch app;
-
-wchar_t strw_buffer[PATH_MAX_LENGTH];
-
-/* Register custom classes */
-HRESULT CRetroArch::RegisterXuiClasses (void)
-{
- CRetroArchMain::Register();
-
- return 0;
-}
-
-/* Unregister custom classes */
-HRESULT CRetroArch::UnregisterXuiClasses (void)
-{
- XuiUnregisterClass(L"RetroArchMain");
-
- return 0;
-}
-
-HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
-{
- GetChildById(L"XuiMenuList", &m_menulist);
- GetChildById(L"XuiTxtTitle", &m_menutitle);
- GetChildById(L"XuiTxtBottom", &m_menutitlebottom);
- GetChildById(L"XuiBackground", &m_background);
-
- if (XuiHandleIsValid(m_menutitlebottom))
- {
- char str[PATH_MAX_LENGTH] = {0};
-
- menu_entries_get_core_title(str, sizeof(str));
- mbstowcs(strw_buffer, str, sizeof(strw_buffer) / sizeof(wchar_t));
- XuiTextElementSetText(m_menutitlebottom, strw_buffer);
- }
-
- return 0;
-}
-
-HRESULT XuiTextureLoader(IXuiDevice *pDevice, LPCWSTR szFileName,
- XUIImageInfo *pImageInfo, IDirect3DTexture9 **ppTex)
-{
- D3DXIMAGE_INFO pSrc;
- CONST BYTE *pbTextureData = 0;
- UINT cbTextureData = 0;
- HXUIRESOURCE hResource = 0;
- BOOL bIsMemoryResource = FALSE;
- IDirect3DDevice9 * d3dDevice = NULL;
- HRESULT hr =
- XuiResourceOpenNoLoc(szFileName, &hResource, &bIsMemoryResource);
-
- if (FAILED(hr))
- return hr;
-
- if (bIsMemoryResource)
- {
- hr = XuiResourceGetBuffer(hResource, &pbTextureData);
- if (FAILED(hr))
- goto cleanup;
- cbTextureData = XuiResourceGetTotalSize(hResource);
- }
- else
- {
- hr = XuiResourceRead(hResource, NULL, 0, &cbTextureData);
- if (FAILED(hr))
- goto cleanup;
-
- pbTextureData = (BYTE *)XuiAlloc(cbTextureData);
- if (pbTextureData == 0)
- {
- hr = E_OUTOFMEMORY;
- goto cleanup;
- }
-
- hr = XuiResourceRead(hResource,
- (BYTE*)pbTextureData, cbTextureData, &cbTextureData);
- if (FAILED(hr))
- goto cleanup;
-
- XuiResourceClose(hResource);
- hResource = 0;
-
- }
-
- /* Cast our d3d device into our IDirect3DDevice9* interface */
- d3dDevice = (IDirect3DDevice9*)pDevice->GetD3DDevice();
- if (!d3dDevice)
- goto cleanup;
-
- /* Create our texture based on our conditions */
- hr = D3DXCreateTextureFromFileInMemoryEx(
- d3dDevice,
- pbTextureData,
- cbTextureData,
- D3DX_DEFAULT_NONPOW2,
- D3DX_DEFAULT_NONPOW2,
- 1,
- D3DUSAGE_CPU_CACHED_MEMORY,
- (D3DFORMAT)d3d9_get_argb8888_format(),
- D3DPOOL_DEFAULT,
- D3DX_FILTER_NONE,
- D3DX_FILTER_NONE,
- 0,
- &pSrc,
- NULL,
- ppTex
- );
-
- if (hr != D3DXERR_INVALIDDATA )
- {
- pImageInfo->Depth = pSrc.Depth;
- pImageInfo->Format = pSrc.Format;
- pImageInfo->Height = pSrc.Height;
- pImageInfo->ImageFileFormat = pSrc.ImageFileFormat;
- pImageInfo->MipLevels = pSrc.MipLevels;
- pImageInfo->ResourceType = pSrc.ResourceType;
- pImageInfo->Width = pSrc.Width;
- }
- else
- RARCH_ERR("D3DXERR_INVALIDDATA Encountered\n");
-
-cleanup:
-
- if (bIsMemoryResource && hResource != 0)
- XuiResourceReleaseBuffer(hResource, pbTextureData);
- else
- XuiFree((LPVOID)pbTextureData);
-
- if (hResource != 0)
- XuiResourceClose(hResource);
- return hr;
-}
-
-void d3d9_make_d3dpp(void *data, const video_info_t *info, void *_d3dpp);
-
-static void* xui_init(void **userdata, bool video_is_threaded)
-{
- HRESULT hr;
- d3d9_video_t *d3d = NULL;
- D3DPRESENT_PARAMETERS d3dpp = {0};
- video_info_t video_info = {0};
- TypefaceDescriptor typeface = {0};
- settings_t *settings = config_get_ptr();
- menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu));
-
- if (!menu)
- return NULL;
-
- d3d = (d3d9_video_t*)video_driver_get_ptr(false);
-
- if (d3d->resolution_hd_enable)
- RARCH_LOG("HD menus enabled.\n");
-
- video_info.vsync = settings->bools.video_vsync;
- video_info.force_aspect = false;
- video_info.smooth = settings->bools.video_smooth;
- video_info.input_scale = 2;
- video_info.fullscreen = true;
- video_info.rgb32 = false;
-
- d3d9_make_d3dpp(d3d, &video_info, &d3dpp);
-
- hr = app.InitShared((D3DDevice*)d3d->dev, &d3dpp,
- (PFN_XUITEXTURELOADER)XuiTextureLoader);
-
- if (FAILED(hr))
- {
- RARCH_ERR("Failed initializing XUI application.\n");
- goto error;
- }
-
- /* Register font */
- typeface.szTypeface = L"Arial Unicode MS";
- typeface.szLocator = L"file://game:/media/rarch.ttf";
- typeface.szReserved1 = NULL;
-
- hr = XuiRegisterTypeface( &typeface, TRUE );
- if (FAILED(hr))
- {
- RARCH_ERR("Failed to register default typeface.\n");
- goto error;
- }
-
- hr = XuiLoadVisualFromBinary(
- L"file://game:/media/rarch_scene_skin.xur", NULL);
- if (FAILED(hr))
- {
- RARCH_ERR("Failed to load skin.\n");
- goto error;
- }
-
- hr = XuiSceneCreate(d3d->resolution_hd_enable ?
- L"file://game:/media/hd/" : L"file://game:/media/sd/",
- L"rarch_main.xur", NULL, &root_menu);
- if (FAILED(hr))
- {
- RARCH_ERR("Failed to create scene 'rarch_main.xur'.\n");
- goto error;
- }
-
- current_menu = root_menu;
- hr = XuiSceneNavigateFirst(app.GetRootObj(),
- current_menu, XUSER_INDEX_FOCUS);
- if (FAILED(hr))
- {
- RARCH_ERR("XuiSceneNavigateFirst failed.\n");
- goto error;
- }
-
- video_driver_set_texture_frame(NULL,
- true, 0, 0, 1.0f);
-
- xui_msg_queue = msg_queue_new(16);
-
- return menu;
-
-error:
- free(menu);
- return NULL;
-}
-
-static void xui_free(void *data)
-{
- (void)data;
- app.Uninit();
-
- if (xui_msg_queue)
- msg_queue_free(xui_msg_queue);
-}
-
-static void xui_render_message(const char *msg)
-{
- struct font_params font_parms = {0};
- size_t i = 0;
- size_t j = 0;
- struct string_list *list = NULL;
- d3d9_video_t *d3d = (d3d9_video_t*)video_driver_get_ptr(false);
-
- if (!d3d)
- return;
-
- list = string_split(msg, "\n");
-
- if (!list)
- return;
-
- if (list->elems == 0)
- goto end;
-
- for (i = 0; i < list->size; i++, j++)
- {
- char *msg = (char*)list->elems[i].data;
- unsigned msglen = strlen(msg);
- float msg_width = d3d->resolution_hd_enable ? 160 : 100;
- float msg_height = 120;
- float msg_offset = 32;
-
- font_parms.x = msg_width;
- font_parms.y = msg_height + (msg_offset * j);
- font_parms.scale = 21;
-
- video_driver_set_osd_msg(msg, &font_parms, NULL);
- }
-
-end:
- string_list_free(list);
-}
-
-static void xui_frame(void *data, video_frame_info_t *video_info)
-{
- XUIMessage msg;
- XUIMessageRender msgRender;
- D3DXMATRIX matOrigView;
- const char *message = NULL;
- D3DVIEWPORT9 vp_full = {0};
- d3d9_video_t *d3d = (d3d9_video_t*)video_driver_get_ptr(false);
-
- if (!d3d)
- return;
-
- gfx_display_set_viewport(video_info->width, video_info->height);
-
- app.RunFrame();
- XuiTimersRun();
- XuiRenderBegin( app.GetDC(), D3DCOLOR_ARGB( 255, 0, 0, 0 ) );
-
- XuiRenderGetViewTransform( app.GetDC(), &matOrigView );
-
- XuiMessageRender( &msg, &msgRender,
- app.GetDC(), 0xffffffff, XUI_BLEND_NORMAL );
- XuiSendMessage( app.GetRootObj(), &msg );
-
- XuiRenderSetViewTransform( app.GetDC(), &matOrigView );
-
-#if 0
- /* TODO/FIXME - update this code */
- rarch_ctl(RARCH_CTL_MSG_QUEUE_PULL, &message);
-
- if (message)
- xui_render_message(message);
- else
- {
- rarch_ctl(RARCH_CTL_MSG_QUEUE_PULL, &message);
-
- if (message)
- xui_render_message(message);
- }
-#endif
-
- XuiRenderEnd( app.GetDC() );
-
- gfx_display_unset_viewport(video_info->width, video_info->height);
-}
-
-static void blit_line(int x, int y, const char *message, bool green)
-{
-}
-
-static void xui_render_background(void)
-{
- XuiElementSetShow(m_background, TRUE);
-}
-
-static void xui_render_messagebox(void *data, const char *message)
-{
- msg_queue_clear(xui_msg_queue);
- msg_queue_push(xui_msg_queue, message, 2, 1);
-}
-
-static void xui_set_list_text(int index, const wchar_t* leftText,
- const wchar_t* rightText)
-{
- LPCWSTR currText;
- float width, height;
- XUIRect pRect;
- D3DXVECTOR3 textPos, rightEdgePos;
- HXUIOBJ hVisual = NULL, hControl = NULL, hTextLeft = NULL,
- hTextRight = NULL, hRightEdge = NULL;
-
- hControl = XuiListGetItemControl(m_menulist, index);
-
- if (XuiHandleIsValid(hControl))
- XuiControlGetVisual(hControl, &hVisual);
-
- if (!XuiHandleIsValid(hVisual))
- return;
-
- XuiElementGetChildById(hVisual, L"LeftText", &hTextLeft);
-
- if (!XuiHandleIsValid(hTextLeft))
- return;
-
- currText = XuiTextElementGetText(hTextLeft);
- XuiElementGetBounds(hTextLeft, &width, &height);
-
- if (!currText || wcscmp(currText, leftText) || width <= 5)
- {
- XuiTextElementMeasureText(hTextLeft, leftText, &pRect);
- XuiElementSetBounds(hTextLeft, pRect.GetWidth(), height);
- }
-
- XuiTextElementSetText(hTextLeft, leftText);
- XuiElementGetChildById(hVisual, L"RightText", &hTextRight);
-
- if (XuiHandleIsValid(hTextRight))
- {
- currText = XuiTextElementGetText(hTextRight);
- XuiElementGetBounds(hTextRight, &width, &height);
-
- if (!currText || wcscmp(currText, rightText) || width <= 5)
- {
- XuiTextElementMeasureText(hTextRight, rightText, &pRect);
- XuiElementSetBounds(hTextRight, pRect.GetWidth(), height);
- XuiElementGetPosition(hTextLeft, &textPos);
-
- XuiElementGetChildById(hVisual, L"graphic_CapRight", &hRightEdge);
- XuiElementGetPosition(hRightEdge, &rightEdgePos);
-
- textPos.x = rightEdgePos.x - (pRect.GetWidth() + textPos.x);
- XuiElementSetPosition(hTextRight, &textPos);
- }
-
- XuiTextElementSetText(hTextRight, rightText);
- }
-}
-
-static void xui_render(void *data,
- unsigned width, unsigned height,
- bool is_idle)
-{
- size_t end, i, selection, fb_pitch;
- unsigned fb_width, fb_height;
- char title[PATH_MAX_LENGTH] = {0};
- const char *dir = NULL;
- const char *label = NULL;
- unsigned menu_type = 0;
- bool msg_force = gfx_display_get_msg_force();
- settings_t *settings = config_get_ptr();
-
- gfx_display_get_fb_size(&fb_width, &fb_height,
- &fb_pitch);
-
- if (
- menu_entries_ctl(MENU_ENTRIES_CTL_NEEDS_REFRESH, NULL)
- && !msg_force
- )
- return;
-
- gfx_display_unset_framebuffer_dirty_flag();
- gfx_animation_ctl(MENU_ANIMATION_CTL_CLEAR_ACTIVE, NULL);
-
- xui_render_background();
-
- if (XuiHandleIsValid(m_menutitle))
- {
- gfx_animation_ctx_ticker_t ticker;
- menu_entries_get_title(title, sizeof(title));
- mbstowcs(strw_buffer, title, sizeof(strw_buffer) / sizeof(wchar_t));
- XuiTextElementSetText(m_menutitle, strw_buffer);
-
- /* Initial ticker configuration */
- ticker.type_enum = settings->uints.menu_ticker_type;
- ticker.spacer = NULL;
-
- ticker.s = title;
- ticker.len = RXUI_TERM_WIDTH(fb_width) - 3;
- ticker.idx = gfx_animation_get_ticker_idx();
- ticker.str = title;
- ticker.selected = true;
-
- gfx_animation_ticker(&ticker);
- }
-
- if (XuiHandleIsValid(m_menutitle))
- {
- menu_entries_get_core_title(title, sizeof(title));
- mbstowcs(strw_buffer, title, sizeof(strw_buffer) / sizeof(wchar_t));
- XuiTextElementSetText(m_menutitlebottom, strw_buffer);
- }
-
- end = menu_entries_get_size();
- for (i = 0; i < end; i++)
- {
- menu_entry_t entry;
- const char *entry_path = NULL;
- const char *entry_value = NULL;
- wchar_t msg_right[PATH_MAX_LENGTH] = {0};
- wchar_t msg_left[PATH_MAX_LENGTH] = {0};
-
- menu_entry_init(&entry);
- menu_entry_get(&entry, 0, i, NULL, true);
-
- menu_entry_get_value(&entry, &entry_value);
- menu_entry_get_path(&entry, &entry_path);
-
- mbstowcs(msg_left, entry_path, sizeof(msg_left) / sizeof(wchar_t));
- mbstowcs(msg_right, entry_value, sizeof(msg_right) / sizeof(wchar_t));
- xui_set_list_text(i, msg_left, msg_right);
- }
-
- selection = menu_navigation_get_selection();
-
- XuiListSetCurSelVisible(m_menulist, selection);
-
- if (menu_input_dialog_get_display_kb())
- {
- char msg[1024] = {0};
- const char *str = menu_input_dialog_get_buffer();
- const char *label = menu_input_dialog_get_label_buffer();
-
- snprintf(msg, sizeof(msg), "%s\n%s", label, str);
- xui_render_messagebox(NULL, msg);
- }
-}
-
-static void xui_populate_entries(void *data,
- const char *path,
- const char *label, unsigned i)
-{
- size_t selection = menu_navigation_get_selection();
- XuiListSetCurSelVisible(m_menulist, selection);
-}
-
-static void xui_navigation_clear(void *data, bool pending_push)
-{
- size_t selection = menu_navigation_get_selection();
- XuiListSetCurSelVisible(m_menulist, selection);
-}
-
-static void xui_navigation_set_visible(void *data)
-{
- size_t selection = menu_navigation_get_selection();
- XuiListSetCurSelVisible(m_menulist, selection);
-}
-
-static void xui_navigation_alphabet(void *data, size_t *ptr_out)
-{
- XuiListSetCurSelVisible(m_menulist, *ptr_out);
-}
-
-static void xui_list_insert(void *data,
- file_list_t *list,
- const char *path,
- const char *fullpath,
- const char *unused,
- size_t list_size,
- unsigned entry_type)
-{
- wchar_t buf[PATH_MAX_LENGTH] = {0};
-
- XuiListInsertItems(m_menulist, list_size, 1);
- mbstowcs(buf, path, sizeof(buf) / sizeof(wchar_t));
- XuiListSetText(m_menulist, list_size, buf);
-}
-
-static void xui_list_free(
- file_list_t *list, size_t idx,
- size_t list_size)
-{
- int x = XuiListGetItemCount( m_menulist );
-
- (void)idx;
-
- if (list_size > (unsigned)x)
- list_size = x;
- if (list_size > 0)
- XuiListDeleteItems(m_menulist, 0, list_size);
-}
-
-static void xui_list_clear(file_list_t *list)
-{
- XuiListDeleteItems(m_menulist,
- 0, XuiListGetItemCount(m_menulist));
-}
-
-static void xui_list_set_selection(void *data, file_list_t *list)
-{
- if (list)
- XuiListSetCurSel(m_menulist,
- file_list_get_directory_ptr(list));
-}
-
-static int xui_environ(enum menu_environ_cb type, void *data, void *userdata)
-{
- switch (type)
- {
- case 0:
- default:
- return -1;
- }
-
- return 0;
-}
-
-menu_ctx_driver_t menu_ctx_xui = {
- NULL,
- xui_render_messagebox,
- NULL, /* iterate */
- xui_render,
- xui_frame,
- xui_init,
- xui_free,
- NULL, /* context_reset */
- NULL, /* context_destroy */
- xui_populate_entries,
- NULL, /* toggle */
- xui_navigation_clear,
- xui_navigation_set_visible,
- xui_navigation_set_visible,
- xui_navigation_clear,
- xui_navigation_set_visible,
- xui_navigation_alphabet,
- xui_navigation_alphabet,
- NULL, /* init_list */
- xui_list_insert,
- NULL, /* list_prepend */
- xui_list_free,
- xui_list_clear,
- NULL, /* list_cache */
- NULL, /* list_push */
- NULL, /* list_get_selection */
- NULL, /* list_get_size */
- NULL, /* list_get_entry */
- xui_list_set_selection,
- NULL, /* bind_init */
- NULL, /* load_image */
- "xui",
- xui_environ,
- NULL, /* update_thumbnail_path */
- NULL, /* update_thumbnail_image */
- NULL, /* refresh_thumbnail_image */
- NULL, /* set_thumbnail_system */
- NULL, /* get_thumbnail_system */
- NULL, /* set_thumbnail_content */
- NULL, /* osk_ptr_at_pos */
- NULL, /* update_savestate_thumbnail_path */
- NULL, /* update_savestate_thumbnail_image */
- NULL, /* pointer_down */
- NULL, /* pointer_up */
- NULL, /* get_load_content_animation_data */
- generic_menu_entry_action
-};
diff --git a/menu/menu_driver.c b/menu/menu_driver.c
index 8ad59e8498..acf6286b67 100644
--- a/menu/menu_driver.c
+++ b/menu/menu_driver.c
@@ -575,9 +575,6 @@ static const menu_ctx_driver_t *menu_ctx_drivers[] = {
#endif
#if defined(HAVE_XMB)
&menu_ctx_xmb,
-#endif
-#if defined(HAVE_XUI)
- &menu_ctx_xui,
#endif
&menu_ctx_null,
NULL