summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-11-20 11:04:42 +0100
committer couriersud <couriersud@gmx.org>2019-11-20 11:05:17 +0100
commitcdfe37d9558ae2e45635cf25ae033819c830dbd4 (patch)
tree6cb88744075479cbfba1ac6700b7648f6440bf04 /src/frontend
parentfd96868a5571bcea568685e84405c2e4d749ba18 (diff)
sliders.cpp: Support PORT_CONDITION for PORT_ADJUSTER [Couriersud]
PORT_CONDITION can now enabled/disabled the display of PORT_ADJUSTER sliders in the UI, i.e. PORT_START("SOMEPORT") PORT_ADJUSTER(...) PORT_CONDITION("OTHERPORT", ...)
Diffstat (limited to 'src/frontend')
-rw-r--r--src/frontend/mame/ui/sliders.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/frontend/mame/ui/sliders.cpp b/src/frontend/mame/ui/sliders.cpp
index 50c74c46497..4aef9f0d10b 100644
--- a/src/frontend/mame/ui/sliders.cpp
+++ b/src/frontend/mame/ui/sliders.cpp
@@ -156,13 +156,19 @@ void menu_sliders::populate(float &customtop, float &custombottom)
if (item.type == menu_item_type::SLIDER)
{
slider_state* slider = reinterpret_cast<slider_state *>(item.ref);
- int32_t curval = slider->update(machine(), slider->arg, slider->id, &tempstring, SLIDER_NOCHANGE);
- uint32_t flags = 0;
- if (curval > slider->minval)
- flags |= FLAG_LEFT_ARROW;
- if (curval < slider->maxval)
- flags |= FLAG_RIGHT_ARROW;
- item_append(slider->description, tempstring, flags, (void *)slider, menu_item_type::SLIDER);
+ bool display(true);
+ if (slider->id >= SLIDER_ID_ADJUSTER && slider->id <= SLIDER_ID_ADJUSTER_LAST)
+ display = reinterpret_cast<ioport_field *>(slider->arg)->enabled();
+ if (display)
+ {
+ int32_t curval = slider->update(machine(), slider->arg, slider->id, &tempstring, SLIDER_NOCHANGE);
+ uint32_t flags = 0;
+ if (curval > slider->minval)
+ flags |= FLAG_LEFT_ARROW;
+ if (curval < slider->maxval)
+ flags |= FLAG_RIGHT_ARROW;
+ item_append(slider->description, tempstring, flags, (void *)slider, menu_item_type::SLIDER);
+ }
}
else
{