Skip to content
Snippets Groups Projects
FXListBox.rb 5.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • module Fox
      #
      # The List Box is a control to select one of a list of options.  It looks
      # similar to a Combo Box except that List Box yields integer numbers only.
      # When an option is selected, List Box will send an SEL_COMMAND with the
      # index of the opton.  While manipulating the list, it may send SEL_CHANGED
      # messages to indicate which option the cursor is hovering over.
      # The List Box is able to receive ID_GETINTVALUE and ID_SETINTVALUE which
      # will retrieve the current option or change the selected option.
      #
      # === Events
      #
      # The following messages are sent by FXListBox to its target:
      #
      # +SEL_COMMAND+::
      #   sent when a new list item is clicked; the message data is the index of the selected item.
      # +SEL_CHANGED+::
      #   sent when a new list item is clicked.
      #
      # === List Box styles
      #
    
      #
      # === Message identifiers
      #
      # +ID_LIST+
      # +ID_FIELD+
      #
      class FXListBox < FXPacker
    
        # Number of items in the list [Integer]
        attr_reader :numItems
    
        # Number of visible items [Integer]
        attr_accessor :numVisible
    
        # Current item's index, or -1 if no current item [Integer]
        attr_accessor :currentItem
    
        # Text font {FXFont}
    
        attr_accessor :font
    
        # Background color {FXColor}
    
        attr_reader :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
    
        #
        # Returns an initialized FXListBox instance.
        #
        def initialize(p, target=nil, selector=0, opts=FRAME_SUNKEN|FRAME_THICK|LISTBOX_NORMAL, x=0, y=0, width=0, height=0, padLeft=DEFAULT_PAD, padRight=DEFAULT_PAD, padTop=DEFAULT_PAD, padBottom=DEFAULT_PAD) # :yields: theListBox
        end
    
        #
        # Return +true+ if _index_ is the index of 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_,
        # _icon_ and _data_.
        # Raises IndexError if _index_ is out of bounds.
        #
        def setItem(index, text, icon=nil, ptr=nil); end
    
        #
        # Fill list by appending items from array of strings, and return the number
        # items added.
        #
        def fillItems(strings, icon=nil, ptr=nil); end
    
        #
        # Insert a new item at index.
        # Raises IndexError if _index_ is out of bounds.
        #
        def insertItem(index, text, icon=nil, ptr=nil); end
    
        # Add an item to the end of the list.
    
        def appendItem(text, icon=nil, ptr=nil); end
    
        # Prepend an item to the list
        def prependItem(text, icon=nil, ptr=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
    
        #
        # Extract item from list and return a reference to the item.
        # Raises IndexError if _index_ is out of bounds.
        #
        def extractItem(index); end
    
        #
        # Remove this item 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 items by _text_, beginning from item _start_. If the start
        # item is -1 the search will start at the first item in the list.
        # 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 text.
        # Return -1 if no matching item is found.
        #
        def findItem(text, start=-1, flags=SEARCH_FORWARD|SEARCH_WRAP); end
    
        #
        # Search items by associated user _data_, beginning from item _start_. If the
        # start item is -1 the search will start at the first item in the list.
        # 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.
        #
        def findItemByData(data, start=-1, flags=SEARCH_FORWARD|SEARCH_WRAP); end
    
        #
        # Set text for specified item to _text_.
        # Raises IndexError if _index_ is out of bounds.
        #
        def setItemText(index, text); end
    
        #
        # Return text for specified item.
        # Raises IndexError if _index_ is out of bounds.
        #
        def getItemText(index); end
    
        #
        # Set icon for specified item to _icon_.
        # Raises IndexError if _index_ is out of bounds.
        #
        def setItemIcon(index, icon, owned=false); end
    
        #
        # Return icon for specified item.
        # Raises IndexError if _index_ is out of bounds.
        #
        def getItemIcon(index); end
    
        #
        # Set user data object for specified item to _ptr_.
        # Raises IndexError if _index_ is out of bounds.
        #
        def setItemData(index, ptr); end
    
        #
        # Return user data object for specified item.
        # 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
    
        alias appendItem <<
      end
    end