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] attr_writer :editable # 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] attr_reader :numItems # 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