diff options
author | couriersud <couriersud@gmx.org> | 2019-11-20 11:04:42 +0100 |
---|---|---|
committer | couriersud <couriersud@gmx.org> | 2019-11-20 11:05:17 +0100 |
commit | cdfe37d9558ae2e45635cf25ae033819c830dbd4 (patch) | |
tree | 6cb88744075479cbfba1ac6700b7648f6440bf04 /src/frontend | |
parent | fd96868a5571bcea568685e84405c2e4d749ba18 (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.cpp | 20 |
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 { |