Hi Jules,
what do you think about to add a menu item to the slider popupMenu to set the current value as DoubleClickReturnValue (if this mode is enabled)?
Like this (bold == newCode):
void showPopupMenu() { PopupMenu m; m.setLookAndFeel (&owner.getLookAndFeel()); m.addItem (1, TRANS ("Velocity-sensitive mode"), true, isVelocityBased); m.addSeparator(); if (isRotary()) { PopupMenu rotaryMenu; rotaryMenu.addItem (2, TRANS ("Use circular dragging"), true, style == Rotary); rotaryMenu.addItem (3, TRANS ("Use left-right dragging"), true, style == RotaryHorizontalDrag); rotaryMenu.addItem (4, TRANS ("Use up-down dragging"), true, style == RotaryVerticalDrag); rotaryMenu.addItem (5, TRANS ("Use left-right/up-down dragging"), true, style == RotaryHorizontalVerticalDrag); m.addSubMenu (TRANS ("Rotary mode"), rotaryMenu); } if( doubleClickToValue ) { m.addSeparator(); m.addItem (6, TRANS ("Set current value as new return"), true, lastCurrentValue == doubleClickReturnValue ); } m.showMenuAsync (PopupMenu::Options(), ModalCallbackFunction::forComponent (sliderMenuCallback, &owner)); } static void sliderMenuCallback (const int result, Slider* slider) { if (slider != nullptr) { switch (result) { case 1: slider->setVelocityBasedMode (! slider->getVelocityBasedMode()); break; case 2: slider->setSliderStyle (Rotary); break; case 3: slider->setSliderStyle (RotaryHorizontalDrag); break; case 4: slider->setSliderStyle (RotaryVerticalDrag); break; case 5: slider->setSliderStyle (RotaryHorizontalVerticalDrag); break; case 6: slider->setDoubleClickReturnValue ( true, slider->getValue() ); break; default: break; } } }
Cheers