module Fox
  #
  # Option Menu Button
  #
  # === Events
  #
  # The following messages are sent by FXOption 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_COMMAND+::		sent when this option is clicked; the message data is an FXEvent instance.
  #
  # === Style options
  #
  # +OPTIONMENU_TOOLBAR+:: Toolbar style button [flat look]
  # +OPTIONMENU_NOGLYPH+:: Do not display a glyph
  #
  class FXOption < FXLabel
    # Selection background color [FXColor]
    attr_accessor :selBackColor
    
    # Selection text color [FXColor]
    attr_accessor :selTextColor

    #
    # Returns an initialized FXOption instance.
    #
    def initialize(p, text, ic=nil, target=nil, selector=0, opts=JUSTIFY_NORMAL|ICON_BEFORE_TEXT, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: theOption
    end
  end

  #
  # Option Menu
  #
  # === Events
  #
  # The following messages are sent by FXOptionMenu 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_COMMAND+::		sent when this an option is selected; the message data is the option number.
  #
  class FXOptionMenu < FXLabel
  
    # The current option, or +nil+ if none [FXOption]
    attr_accessor :current
    
    # The current option number, or -1 if none [Integer]
    attr_accessor :currentNo
    
    # The pane which will be popped up [FXPopup]
    attr_accessor :menu
    
    #
    # Returns an initialized FXOptionMenu instance.
    #
    def initialize(p, pup=nil, opts=JUSTIFY_NORMAL|ICON_BEFORE_TEXT, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: theOptionMenu
    end
  
    #
    # Return the option item (an FXOption instance) at the given index.
    #
    def getItem(index); end
    
    #
    # Set the current option.
    #
    def setCurrent(win, notify=false); end
    
    #
    # Return a reference to the current option (an FXOption instance).
    #
    def getCurrent(); end
  
    #
    # Set the current option number.
    #
    def setCurrentNo(no, notify=false); end
    
    #
    # Get the current option number.
    #
    def getCurrentNo(); end

    # Return +true+ if popped up
    def popped?; end
  end
end

