IUP::Dial - [GUI element] dial for regulating a given angular variable
Creates a dial for regulating a given angular variable.
$dial = IUP::Dial->new( ORIENTATION=>"VERTICAL" );
Returns: the identifier of the created element, or undef if an error occurs.
undef
NOTE: You can pass to new() other ATTRIBUTE=>'value' or CALLBACKNAME=>\&func pairs relevant to this element - see IUP::Manual::02_Elements.
new()
ATTRIBUTE=>'value'
CALLBACKNAME=>\&func
For more info about concept of attributes (setting/getting values etc.) see IUP::Manual::03_Attributes. Attributes specific to this element:
Number of lines per pixel in the handle of the dial. Default is "0.2".
The default is "NO".
Foreground color. The default value is "64 64 64". Not used for the circular dial.
(non inheritable)
The initial size is "16x80", "80x16" or "40x35" according to the dial orientation. Set to undef to allow the automatic layout use smaller values.
(creation only) (non inheritable)
Dial layout configuration "VERTICAL", "HORIZONTAL" or "CIRCULAR". Default: "HORIZONTAL".
Unit of the angle. Can be "DEGREES" or "RADIANS". Default is "RADIANS". Used only in the callbacks.
The dial angular value in radians. 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.
ORIENTATION="CIRCULAR"
The following common attributes are also accepted:
ACTIVE, BGCOLOR, FONT, SCREENPOSITION, POSITION, MINSIZE, MAXSIZE, WID, TIP, RASTERSIZE, ZORDER, VISIBLE
For more info about concept of callbacks (setting callback handlers etc.) see IUP::Manual::04_Callbacks. Callbacks specific to this element:
Called when the user presses the left mouse button over the dial. The angle here is always zero, except for the circular dial.
Callback handler prototype:
sub button_press_cb_handler { my ($self, $angle) = @_; #... }
$self: reference to the element (IUP::Dial) that activated the event
$angle: the dial value converted according to UNIT.
Called when the user releases the left mouse button after pressing it over the dial.
sub button_release_cb_handler { my ($self, $angle) = @_; #... }
Called each time the user moves the dial with the mouse button pressed. The angle the dial rotated since it was initialized is passed as a parameter.
sub mousemove_cb_handler { my ($self, $angle) = @_; #... }
Called after the value was interactively changed by the user. It is called whenever a BUTTON_PRESS_CB, a BUTTON_RELEASE_CB or a MOUSEMOVE_CB would also be called, but if defined those callbacks will not be called.
sub valuechanged_cb_handler { my ($self) = @_; #... }
The following common callbacks are also accepted:
MAP_CB, UNMAP_CB, GETFOCUS_CB, KILLFOCUS_CB, ENTERWINDOW_CB, LEAVEWINDOW_CB, K_ANY, HELP_CB
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.
The element IUP::Dial is used in the following sample scripts:
0-basic/dial.pl - IUP::Dial example
0-basic/plot_advanced.pl - Plot controls
1-apps/app-plot-demo.pl - dials for zooming
IUP::Canvas
The original doc: iupdial.html
To install IUP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IUP
CPAN shell
perl -MCPAN -e shell install IUP
For more information on module installation, please visit the detailed CPAN module installation guide.