How could look and behave a “knob” control to be the most native?
Visually, but also regarding interaction?
I guess supporting mouse wheel, maybe also some mouse move tracking like up and down, left - right. What about keyboard control? arrow, home, end, page up and down ? A quicky way to (re)set to the middle value of a range will be great too.
I know it’s not a widget that useful in most apps.
But in certain fields it’s quite the expected way to control some parameters, where setting a precise discrete value is not necessary what’s important, but being able to quickly change it, while not doing major mouse moves.
It’s a kind of control which clearly needs “live feedback” for the value.
Our BSlider can do that, true, but they’re not occupying a squarish surface, so quickly using sliders enforce you to layout your UI either vertically or horizontally, while knobs could be layout in a more compact way, into grid for instance more easily.
Native Haiku widgets being what they are, I’m looking for idea to make such Knob coherent with other native Haiku native controls…
Hi. The actual volume knob in MediaPlayer support scroll wheel if you hover the mouse pointer over it. I guess that one is the expected behavior.
If you look for other examples, the volume knob in SoundPlay cames to my mind. But I am almost sure do not support mouse wheel (I need to check again to be sure).
One knob UI control I use (as end user) is one from “Equalizer APO” on Win10, where it’s used for adjustment of parametric filters, pre-amps, and such. I’m not sure if that’s a custom control, or something straight from Qt.
Not sure I remember what SoundPlay looks like, as it’s not more included in Haiku.
MediaPlayer: well, that’s a slider, not a knob. Custom looking slider, supporting mouse wheel, but still a too space-needing widget for what I’m looking for.
The knob from this Equalizer APO app could be a good start. I guess using some radial gradiant to look similar to the subtile gradiant we already have for buttons (I’m talking default/stock control look here).
I don’t know th first thing about API development. Couldn’t the new knob control be a BSlider with a special flag? A knob is a kind of radial slider IMO. All the features you mentioned are either already available or would be equally useful for a linear slider.
Having an optional text field to see or enter specific values would be nice.
I seem to remember that the SoundPlay one is really a slider, but looks like a rotary knob. When you click and hold it you can slide the knob left and right to turn it. I feel like it supported the wheel too but can’t be sure on that.
FWIW it always felt very BeOS even though it wasn’t part of the BeAPI itself. I did just boot my old PC to try it but I forgot that for some reason I don’t understand it always locks up a few seconds after booting under BeOS
So, visually, a circular “button” with the same kind of gradiant shades than current BButton, but with over it a smaller circle, a bit embossed, to show current position of the knob will do it.
Maybe an embossed “line” will be a bit better, will try that.
Thanks for suggestions and prior art to look at, guys.