Skip to content
Snippets Groups Projects
FXComboBox.rb 7.98 KiB
Newer Older
  • Learn to ignore specific revisions
  • module Fox
      #
      # An FXComboBox provides a way to select a string from a list of strings.
      # Unless +COMBOBOX_STATIC+ is passed, it also allows the user to enter a new
      # string into the text field, for example if the desired entry is not in the
      # list of strings.  Passing +COMBOBOX_REPLACE+, +COMBOBOX_INSERT_BEFORE+, +COMBOBOX_INSERT_AFTER+,
      # +COMBOBOX_INSERT_FIRST+, or +COMBOBOX_INSERT_LAST+ causes a newly entered text to replace the
      # current one in the list, or be added before or after the current entry, or to be added at
      # the beginning or end of the list.
      # FXComboBox is intended to enter text; if you need to enter a choice from a list of
      # options, it is recommended that the FXListBox widget is used instead.
      # When the text in the field is changed, a +SEL_COMMAND+ will be send to the target.
      # The FXComboBox can also receive +ID_GETSTRINGVALUE+ and +ID_SETSTRINGVALUE+ and so
      # on, which will behave similar to FXTextField in that they will retrieve or update
      # the value of the field.
      #
      # === Events
      #
      # The following messages are sent by FXComboBox to its target:
      #
    
      # +SEL_CHANGED+::  sent when the text in the text field changes; the message data is a String containing the new text.
      # +SEL_COMMAND+::  sent when a new item is selected from the list, or when a command message is sent from the text field; the message data is a String containing the new text.
    
      #
      # === ComboBox styles
      #
      # +COMBOBOX_NO_REPLACE+::     Leave the list the same
      # +COMBOBOX_REPLACE+::        Replace current item with typed text
      # +COMBOBOX_INSERT_BEFORE+::  Typed text inserted before current
      # +COMBOBOX_INSERT_AFTER+::   Typed text inserted after current
      # +COMBOBOX_INSERT_FIRST+::   Typed text inserted at begin of list
      # +COMBOBOX_INSERT_LAST+::    Typed text inserted at end of list
      # +COMBOBOX_STATIC+::         Unchangable text box
      # +COMBOBOX_NORMAL+::         Default options for comboboxes
      #
      # === Message identifiers
      #
    
      # +ID_LIST+::   identifier associated with the embedded FXList instance
      # +ID_TEXT+::   identifier associated with the embedded FXTextField instance
    
      #
      class FXComboBox < FXPacker
    
        # Editable state [Boolean]
    
        # Text [String]
        attr_accessor :text
    
        # Number of columns [Integer]
        attr_accessor :numColumns
    
        # Text justification mode; default is +JUSTIFY_LEFT+ [Integer]
        attr_accessor :justify
    
        # Number of items in the list [Integer]
    
        # Number of visible items in the drop-down list [Integer]
        attr_accessor :numVisible
    
        # Index of current item, or -1 if no current item [Integer]
        attr_accessor :currentItem
    
        # Text font [FXFont]
        attr_accessor :font
    
        # Combo box style [Integer]
        attr_accessor :comboStyle
    
        # Window background color [FXColor]
        attr_accessor :backColor
    
        # Text color [FXColor]
        attr_accessor :textColor
    
        # Background color for selected items [FXColor]
        attr_accessor :selBackColor
    
        # Text color for selected items [FXColor]
        attr_accessor :selTextColor
    
        # Status line help text [String]
        attr_accessor :helpText
    
        # Tool tip message [String]
        attr_accessor :tipText
    
        #
        # Return an initialized FXComboBox instance, with room to display _cols_ columns of text.
        #
        # ==== Parameters:
        #
    
        # +p+:: the parent widget for this combo-box [FXComposite]
        # +cols+:: number of columns [Integer]
        # +target+:: message target [FXObject]
        # +selector+:: message identifier [Integer]
        # +opts+:: the options [Integer]
        # +x+:: initial x-position [Integer]
        # +y+:: initial y-position [Integer]
        # +width+:: initial width [Integer]
        # +height+:: initial height [Integer]
        # +padLeft+:: left-side padding, in pixels [Integer]
        # +padRight+:: right-side padding, in pixels [Integer]
        # +padTop+:: top-side padding, in pixels [Integer]
        # +padBottom+:: bottom-side padding, in pixels [Integer]
    
        #
        def initialize(p, cols, target=nil, selector=0, opts=COMBOBOX_NORMAL, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: theComboBox
        end
    
    
        # Return the combo box text
        def to_s; end
    
        # Return +true+ if combobox is editable
        def editable?() ; end
    
        # Return +true+ if the item at _index_ is the current item.
        # Raises IndexError if _index_ is out of bounds.
        def itemCurrent?(index) ; end
    
        # Return the text of the item at the given _index_.
        # Raises IndexError if _index_ is out of bounds.
        def retrieveItem(index) ; end
    
        # Replace the item at _index_ with a new item with the specified _text_ and user _data_.
        # Raises IndexError if _index_ is out of bounds.
        def setItem(index, text, data=nil) ; end
    
        #
        # Fill combo box by appending items from _strings_, where _strings_ is
        # an array of strings. Return the number of items added.
        #
        def fillItems(strings); end
    
        # Insert a new item at _index_, with the specified _text_ and user _data_.
        # Raises IndexError if _index_ is out of bounds.
        def insertItem(index, text, data=nil) ; end
    
        # Append a new item to the list with the specified _text_ and user _data_.
        def appendItem(text, data=nil) ; end
    
        # Prepend an item to the list with the specified _text_ and user _data_
        def prependItem(text, data=nil) ; end
    
        #
        # Move item from _oldIndex_ to _newIndex_ and return the new index of the item.
        # Raises IndexError if either _oldIndex_ or _newIndex_ is out of bounds.
        #
        def moveItem(newIndex, oldIndex); end
    
        # Remove the item at _index_ from the list.
        # Raises IndexError if _index_ is out of bounds.
        def removeItem(index) ; end
    
        # Remove all items from the list
        def clearItems() ; end
    
        #
        # Search for items by name, beginning from the item with index _start_.
        # If the start item is -1, the search will start at the first item in the
        # list. The search _flags_ may be +SEARCH_FORWARD+ or +SEARCH_BACKWARD+, to
        # control the search direction; this can be combined with +SEARCH_NOWRAP+ or
        # +SEARCH_WRAP+ to control whether the search wraps at the start or end of
        # the list.
        # The option +SEARCH_IGNORECASE+ causes a case-insensitive match.
        # Finally, passing +SEARCH_PREFIX+ causes searching for a prefix of the
        # item name.
        # Returns the index of the first matching item, or -1 if no matching item
        # is found.
        #
        def findItem(text, start=-1, flags=SEARCH_FORWARD|SEARCH_WRAP); end
    
        #
        # Search for items by associated user data, beginning from the item with
        # index _start_.
        # If the start item is -1, the search will start at the first item in the
        # list.
        # The search _flags_ may be +SEARCH_FORWARD+ or +SEARCH_BACKWARD+, to
        # control the search direction; this can be combined with +SEARCH_NOWRAP+ or
        # +SEARCH_WRAP+ to control whether the search wraps at the start or end of
        # the list.
        # Returns the index of the first matching item, or -1 if no matching item
        # is found.
        #
        def findItemByData(data, start=-1, flags=SEARCH_FORWARD|SEARCH_WRAP); end
    
        # Set text for the item at _index_.
        # Raises IndexError if _index_ is out of bounds.
        def setItemText(index, text) ; end
    
        # Get text for the item at _index_.
        # Raises IndexError if _index_ is out of bounds.
        def getItemText(index) ; end
    
        # Set user _data_ for the item at _index_.
        # Raises IndexError if _index_ is out of bounds.
        def setItemData(index, data) ; end
    
        # Get data pointer for the item at _index_.
        # Raises IndexError if _index_ is out of bounds.
        def getItemData(index) ; end
    
        # Return +true+ if the pane is shown.
        def paneShown?() ; end
    
        # Sort items using current sort function
        def sortItems() ; end
    
        #
        # Set current item to _index_, where _index_ is the zero-based index of
        # the item. If _notify_ is +true+, a +SEL_COMMAND+ message is sent
        # to the combo box's message target.
        #
        def setCurrentItem(index, notify=false); end
      end
    end