module Fox
#
# The Dial widget is a valuator widget which is able to provide a cyclic
# value range when the DIAL_CYCLIC is passed, or a simple linear value range.
# While being turned, the dial sends a SEL_CHANGED message to its target;
# at the end of the interaction, a SEL_COMMAND message is sent.
# The message data represents the current value (an integer). The options
# DIAL_VERTICAL and DIAL_HORIZONTAL control the orientation of the dial.
# An optional notch can be used to indicate the zero-position of
# the dial; display of the notch is controlled by the DIAL_HAS_NOTCH option.
#
# === Events
#
# The following messages are sent by FXDial to its target:
#
# +SEL_KEYPRESS+:: sent when a key goes down; the message data is an FXEvent instance.
# +SEL_KEYRELEASE+:: sent when a key goes up; the message data is an FXEvent instance.
# +SEL_LEFTBUTTONPRESS+:: sent when the left mouse button goes down; the message data is an FXEvent instance.
# +SEL_LEFTBUTTONRELEASE+:: sent when the left mouse button goes up; the message data is an FXEvent instance.
# +SEL_CHANGED+:: sent when the dial's value changes; the message data is the new value (an integer).
# +SEL_COMMAND+:: sent when the user stops changing the dial's value and releases the mouse button; the message data is the new value (an integer).
#
# === Dial style options
#
# +DIAL_VERTICAL+:: Vertically oriented
# +DIAL_HORIZONTAL+:: Horizontal oriented
# +DIAL_CYCLIC+:: Value wraps around
# +DIAL_HAS_NOTCH+:: Dial has a Center Notch
# +DIAL_NORMAL+:: same a +DIAL_VERTICAL+
#
class FXDial < FXFrame
# Dial value [Integer]
attr_accessor :value
# Dial range [Range]
attr_accessor :range
#
# The revolution increment is the amount of change in the position
# for revolution of the dial; the dial may go through multiple revolutions
# to go through its whole range. By default it takes one 360 degree turn of
# the dial to go from the lower to the upper range. [Integer]
#
attr_accessor :revolutionIncrement
#
# The spacing for the small notches; this should be set
# in tenths of degrees in the range [1,3600], and the value should
# be a divisor of 3600, so as to make the notches come out evenly. [Integer]
#
attr_accessor :notchSpacing
#
# The notch offset is the position of the center notch; the value should
# be tenths of degrees in the range [-3600,3600]. [Integer]
#
attr_accessor :notchOffset
# Current dial style [Integer]
attr_accessor :dialStyle
# Center notch color [FXColor]
attr_accessor :notchColor
# Status line help text for this dial [String]
attr_accessor :helpText
# Tool tip message for this dial
attr_accessor :tipText
#
# Construct a dial widget
#
# ==== Parameters:
#
# +p+:: parent widget for this dial [FXComposite]
# +tgt+:: message target object for this dial [FXObject]
# +sel+:: message identifier [Integer]
# +opts+::
# +x+::
# +y+::
# +w+::
# +h+::
# +pl+::
# +pr+::
# +pt+::
# +pb+::
#
def initialize(p, tgt=nil, sel=0, opts=DIAL_NORMAL, x=0, y=0, w=0, h=0, pl=DEFAULT_PAD, pr=DEFAULT_PAD, pt=DEFAULT_PAD, pb=DEFAULT_PAD) # :yields: theDial
end
#
# Set the dial value. If _notify_ is +true+, a +SEL_COMMAND+ message is
# sent to the dial's message target after the value is changed.
#
def setValue(value, notify=false); end
#
# Set the dial's range. If _notify_ is +true+, and the range modification
# causes the dial's value to change, a +SEL_COMMAND+ message is sent
# to the dial's message target after the value is changed.
#
def setRange(range, notify=false); end
end
end