Codebase list ruby-fxruby / run/8a909198-7fff-4596-a78d-571f487fdb51/upstream rdoc-sources / FXRadioButton.rb
run/8a909198-7fff-4596-a78d-571f487fdb51/upstream

Tree @run/8a909198-7fff-4596-a78d-571f487fdb51/upstream (Download .tar.gz)

FXRadioButton.rb @run/8a909198-7fff-4596-a78d-571f487fdb51/upstreamraw · history · blame

module Fox
  #
  # A radio button is a tri-state button.  Normally, it is either
  # +TRUE+ or +FALSE+; a third state +MAYBE+ may be set to indicate that no selection
  # has been made yet by the user, or that the state is ambiguous.
  # When pressed, the radio button sets its state to +TRUE+ and sends a +SEL_COMMAND+
  # message to its target, with the message data set to the state of the radio button.
  # A group of radio buttons can be made mutually exclusive by linking them
  # to a common data target (i.e. an instance of FXDataTarget).
  # Alternatively, an application can implement a common +SEL_UPDATE+ handler to
  # check and uncheck radio buttons as appropriate.
  #
  # === Events
  #
  # The following messages are sent by FXRadioButton to its target:
  #
  # +SEL_COMMAND+::  sent when the radio button is pressed.
  # +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.
  #
  # === RadioButton flags
  #
  # +RADIOBUTTON_AUTOGRAY+:: Automatically gray out when not updated
  # +RADIOBUTTON_AUTOHIDE+:: Automatically hide when not updated
  # +RADIOBUTTON_NORMAL+:: <tt>JUSTIFY_NORMAL|ICON_BEFORE_TEXT</tt>
  #
  class FXRadioButton < FXLabel

    # Radio button state, one of +TRUE+, +FALSE+ or +MAYBE+ [Integer]
    attr_accessor :checkState

    # Radio button style [Integer]
    attr_accessor :radioButtonStyle

    # Radio ball color {FXColor}
    attr_accessor :radioColor

    # Radio disk color {FXColor}
    attr_accessor :diskColor

    #
    # Construct new radio button
    #
    def initialize(parent, text, target=nil, selector=0, opts=RADIOBUTTON_NORMAL, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: theRadioButton
    end

    #
    # Return +true+ if the radio button state is +TRUE+
    #
    def checked?
      self.checkState == Fox::TRUE
    end

    #
    # Return +true+ if the radio button state is +FALSE+
    #
    def unchecked?
      self.checkState == Fox::FALSE
    end

    #
    # Return +true+ if the radio button state is +MAYBE+
    #
    def maybe?
      self.checkState == Fox::MAYBE
    end
  end
end