turn off right-click on params?

is there an easy way to turn off the right-click behavior of parameters to set the value manually?

for example, a parameter that has voices:

  • sine
  • triangle
  • saw
  • square

that displays tooltips for the parameters (instead of 0, 1, 2, 3) shows the display value when right-clicking, which is preferred, rather than the accepted values:

31%20PM

I’d rather just turn off the ability to right-click the parameter, since those values are invalid anyways.

is there an easy way to do this?

You should not turn it off. Although it might be clunky, the user expects this behavior. Also see Rack development blog

that is still really weird behavior for when you’re allowing the choice between, say, 10-20 things. it makes the experience extremely clunky from a ux position.

so, once again, is there an easy way to simply turn that behavior off? when it becomes cumbersome, that would likely be the preferred behavior.

The parameter context menu (called ParamTooltip in C++) offers functionality other than simply setting the parameter value. It allows viewing and unsetting MIDI maps (ParamHandle in C++) as well as any other future functionality that has not been invented yet.

It’s pretty well accepted that combo/dropdown boxes don’t scale well when the number of choices get large. The pretty standard solution these days is auto-complete text boxes

What about momentary buttons?

Currently my code assumes that only one momentary button can be pressed at a time, but by using right click, multiple such buttons can be set at the same time.

Should this really be possible? Is multi-touch support coming that we have to worry about?

I don’t get how right-clicking lets you set multiple buttons at once. There’s only one param tooltip that can be opened. Could you explain what are you trying to achieve?

If you are using regular param buttons, users will be able to map the buttons to midi as well, making it possible to press multiple of them at once even without having multi-touch. I guess you need to make a custom widget that handles this group of buttons or be “defensive” about simultaneous pressing in your code.

If I right click on a momentary button and set it to 1, it will remain in that state. Then I can repeat this process on any number of other momentary buttons and they will all be set too.

Looks like I need to review my code and see how much work it is to turn it defensive.

Oh I see, I didn’t know momentary buttons would stay set to 1 if you did it by the tooltip.
I feel this shouldn’t work like this, maybe report it to github issues?

It also turns out that if momentary buttons are set to 1 using right click, they don’t even get cleared when the module is initialized.

Yeah, they work the same as any other param internally, the momentary aspect only exists on the UI side.

@Vortico

Hi,

About configButton(… from module constructor, if the string is empty, I don’t understand why #2 or similar is displayed (v2.3.0).

configButton(MY_BUTTON, “”); // Empty string, it’s a momentary button.

Display/edit parameters are - IMHO - useless for momentary buttons (and continuous encoders), except if I’m wrong…

Thanks in advance to consider it.

The buttons still have a function even if they are momentary, the text should describe that function and is also used for the tooltips when the mouse hovers over the button. The display defaults to the ID of the button within the module if the developer does not supply the description. You could probably create your own momentary button class that overrides the right click functionality if you really want to stop the right click action.

1 Like