IupDial
Creates a dial for regulating a given angular variable. It inherits from IupCanvas.
Creation
Ihandle* IupDial(const char *orientation);
orientation: optional dial orientation, can be NULL. See ORIENTATION attribute.
Returns: the identifier of the created element, or NULL if an error occurs.
Attributes
DENSITY: number of lines per pixel in the handle of the dial. Default is "0.2".
EXPAND: the default is "NO".
FLAT: use a 1 pixel flat border instead of a 3-pixel sunken border. Can be YES or NO. Default: YES.
FLATCOLOR: color of the border when FLAT=YES. Default: "160 160 160".
FGCOLOR: foreground color. The default value is "64 64 64".
SIZE (non-inheritable): the initial size is "16x80", "80x16" or "40x36" according to the dial orientation. Set to NULL to allow the automatic layout to use smaller values.
ORIENTATION (creation-only) (non-inheritable): dial layout configuration "VERTICAL", "HORIZONTAL" or "CIRCULAR". Default: "HORIZONTAL". Vertical increments when moved up, and decrements when moved down. Horizontal increments when moved right, and decrements when moved left. Circular increments when moved counter-clock wise, and decrements when moved clock wise.
Used only in the callbacks.
VALUE (non-inheritable): The dial angular value in radians always. The value is reset to zero when the interaction is started, except for ORIENTATION=CIRCULAR. When orientation is vertical or horizontal, the dial measures relative angles. When orientation is circular the dial measure absolute angles, where the origin is at 3 O'clock.
ACTIVE, BGCOLOR, FONT, SCREENPOSITION, POSITION, MINSIZE, MAXSIZE, WID, TIP, RASTERSIZE, ZORDER, VISIBLE, THEME: also accepted.
Callbacks
VALUECHANGED_CB: Called after the value was interactively changed by the user.
int function(Ihandle *ih);
ih: identifier of the element that activated the event.
MAP_CB, UNMAP_CB, DESTROY_CB, GETFOCUS_CB, KILLFOCUS_CB, ENTERWINDOW_CB, LEAVEWINDOW_CB, K_ANY, HELP_CB: All common callbacks are supported.
Notes
When the keyboard arrows are pressed and released, the mouse press and the mouse release callbacks are called in this order. If you hold the key down, the mouse move callback is also called for every repetition.
When the wheel is rotated only the mouse move callback is called, and it increments the last angle the dial was rotated.
In all cases, the value is incremented or decremented by PI/10 (18 degrees).
If you press Shift while using the arrow keys, the increment is reduced to PI/100 (1.8 degrees). Press the Home key in the circular dial to reset to 0.
Examples

Regular

Flat=YES and fgcolor