summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/chainmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/bgfx/chainmanager.cpp')
-rw-r--r--src/osd/modules/render/bgfx/chainmanager.cpp38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/osd/modules/render/bgfx/chainmanager.cpp b/src/osd/modules/render/bgfx/chainmanager.cpp
index c15aa84d1cd..5eaf6fc1378 100644
--- a/src/osd/modules/render/bgfx/chainmanager.cpp
+++ b/src/osd/modules/render/bgfx/chainmanager.cpp
@@ -10,6 +10,9 @@
//============================================================
#include "emu.h"
+#include "ui/ui.h"
+#include "ui/menu.h"
+
#include "osdcore.h"
#include "modules/osdwindow.h"
@@ -29,8 +32,6 @@
#include "target.h"
#include "slider.h"
-#include "ui/ui.h"
-
#include "sliderdirtynotifier.h"
using namespace rapidjson;
@@ -367,7 +368,13 @@ void chain_manager::create_selection_slider(uint32_t screen_index)
state->id = screen_index;
strcpy(state->description, description.c_str());
- m_selection_sliders.push_back(state);
+ ui_menu_item item;
+ item.text = state->description;
+ item.subtext = "";
+ item.flags = 0;
+ item.ref = state;
+ item.type = ui_menu_item_type::UI_MENU_ITEM_TYPE_SLIDER;
+ m_selection_sliders.push_back(item);
}
uint32_t chain_manager::handle_screen_chains(uint32_t view, render_primitive *starting_prim, osd_window& window)
@@ -419,9 +426,9 @@ bool chain_manager::needs_sliders()
return m_screen_count > 0 && m_available_chains.size() > 1;
}
-std::vector<slider_state*> chain_manager::get_slider_list()
+std::vector<ui_menu_item> chain_manager::get_slider_list()
{
- std::vector<slider_state*> sliders;
+ std::vector<ui_menu_item> sliders;
if (!needs_sliders())
{
@@ -441,12 +448,29 @@ std::vector<slider_state*> chain_manager::get_slider_list()
std::vector<bgfx_slider*> chain_sliders = chain->sliders();
for (bgfx_slider* slider : chain_sliders)
{
- sliders.push_back(slider->core_slider());
+ slider_state* core_slider = slider->core_slider();
+
+ ui_menu_item item;
+ item.text = core_slider->description;
+ item.subtext = "";
+ item.flags = 0;
+ item.ref = core_slider;
+ item.type = ui_menu_item_type::UI_MENU_ITEM_TYPE_SLIDER;
+ m_selection_sliders.push_back(item);
+
+ sliders.push_back(item);
}
if (chain_sliders.size() > 0)
{
- sliders.push_back(nullptr);
+ ui_menu_item item;
+ item.text = MENU_SEPARATOR_ITEM;
+ item.subtext = "";
+ item.flags = 0;
+ item.ref = nullptr;
+ item.type = ui_menu_item_type::UI_MENU_ITEM_TYPE_SEPARATOR;
+
+ sliders.push_back(item);
}
}