Class: Fox::FXComboBox
- Inherits:
-
FXPacker
- Object
- FXObject
- FXId
- FXDrawable
- FXWindow
- FXComposite
- FXPacker
- Fox::FXComboBox
- Includes:
- Enumerable
- Defined in:
- rdoc-sources/FXComboBox.rb,
lib/fox16/iterators.rb
Overview
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
Instance Attribute Summary collapse
-
#backColor ⇒ Object
Window background color FXColor.
-
#comboStyle ⇒ Object
Combo box style [Integer].
-
#currentItem ⇒ Object
Index of current item, or -1 if no current item [Integer].
-
#editable ⇒ Object
writeonly
Editable state [Boolean].
-
#font ⇒ Object
Text font FXFont.
-
#helpText ⇒ Object
Status line help text [String].
-
#justify ⇒ Object
Text justification mode; default is
JUSTIFY_LEFT
[Integer]. -
#numColumns ⇒ Object
Number of columns [Integer].
-
#numItems ⇒ Object
readonly
Number of items in the list [Integer].
-
#numVisible ⇒ Object
Number of visible items in the drop-down list [Integer].
-
#selBackColor ⇒ Object
Background color for selected items FXColor.
-
#selTextColor ⇒ Object
Text color for selected items FXColor.
-
#text ⇒ Object
Text [String].
-
#textColor ⇒ Object
Text color FXColor.
-
#tipText ⇒ Object
Tool tip message [String].
Attributes inherited from FXPacker
#baseColor, #borderColor, #borderWidth, #frameStyle, #hSpacing, #hiliteColor, #packingHints, #padBottom, #padLeft, #padRight, #padTop, #shadowColor, #vSpacing
Attributes inherited from FXWindow
#accelTable, #defaultCursor, #dragCursor, #focus, #key, #last, #layoutHints, #next, #numChildren, #owner, #parent, #prev, #root, #selector, #shell, #target, #x, #y
Attributes inherited from FXDrawable
Attributes inherited from FXId
Instance Method Summary collapse
-
#appendItem(text, data = nil) ⇒ Object
Append a new item to the list with the specified text and user data.
-
#clearItems ⇒ Object
Remove all items from the list.
-
#each ⇒ Object
Calls block once for each item in the list, passing the item’s text and user data as parameters.
-
#editable? ⇒ Boolean
Return
true
if combobox is editable. -
#fillItems(strings) ⇒ Object
Fill combo box by appending items from strings, where strings is an array of strings.
-
#findItem(text, start = -1,, flags = SEARCH_FORWARD|SEARCH_WRAP) ⇒ Object
Search for items by name, beginning from the item with index start.
-
#findItemByData(data, start = -1,, flags = SEARCH_FORWARD|SEARCH_WRAP) ⇒ Object
Search for items by associated user data, beginning from the item with index start.
-
#first ⇒ Object
Override Enumerable#first with FXWindow#first for backwards compatibility.
-
#getItemData(index) ⇒ Object
Get data pointer for the item at index.
-
#getItemText(index) ⇒ Object
Get text for the item at index.
-
#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) ⇒ FXComboBox
constructor
Return an initialized FXComboBox instance, with room to display cols columns of text.
-
#insertItem(index, text, data = nil) ⇒ Object
Insert a new item at index, with the specified text and user data.
-
#itemCurrent?(index) ⇒ Boolean
Return
true
if the item at index is the current item. -
#moveItem(newIndex, oldIndex) ⇒ Object
Move item from oldIndex to newIndex and return the new index of the item.
-
#paneShown? ⇒ Boolean
Return
true
if the pane is shown. -
#prependItem(text, data = nil) ⇒ Object
Prepend an item to the list with the specified text and user data.
-
#removeItem(index) ⇒ Object
Remove the item at index from the list.
-
#retrieveItem(index) ⇒ Object
Return the text of the item at the given index.
-
#setCurrentItem(index, notify = false) ⇒ Object
Set current item to index, where index is the zero-based index of the item.
-
#setItem(index, text, data = nil) ⇒ Object
Replace the item at index with a new item with the specified text and user data.
-
#setItemData(index, data) ⇒ Object
Set user data for the item at index.
-
#setItemText(index, text) ⇒ Object
Set text for the item at index.
-
#sortItems ⇒ Object
Sort items using current sort function.
-
#to_s ⇒ Object
Return the combo box text.
Methods inherited from FXComposite
#maxChildHeight, #maxChildWidth
Methods inherited from FXWindow
#acceptDrop, #acquireClipboard, #acquireSelection, #active?, #addHotKey, #after?, after?, #before?, before?, #beginDrag, #canFocus?, #changeFocus, #childAtIndex, #childOf?, #children, #clearDragRectangle, #clearShape, colorType, colorTypeName, commonAncestor, #composeContext, #composite?, #contains?, #containsChild?, #create, #createComposeContext, #cursorPosition, #default?, #defaultHeight, #defaultWidth, deleteType, deleteTypeName, #destroy, #destroyComposeContext, #detach, #didAccept, #disable, #doesSaveUnder?, #dragging?, #dropDisable, #dropEnable, #dropEnabled?, #dropFinished, #dropTarget?, #each_child, #each_child_recursive, #enable, #enabled?, #endDrag, #forceRefresh, #getChildAt, #getDNDData, #getHeightForWidth, #getWidthForHeight, #grab, #grabKeyboard, #grabbed?, #grabbedKeyboard?, #handleDrag, #hasClipboard?, #hasFocus?, #hasSelection?, #height, #height=, #hide, imageType, #inFocusChain?, #indexOfChild, #initial?, #inquireDNDAction, #inquireDNDTypes, #killFocus, #layout, #linkAfter, #linkBefore, #lower, #move, octetType, octetTypeName, #offeredDNDType?, #position, #raiseWindow, #recalc, #releaseClipboard, #releaseSelection, #remHotKey, #removeChild, #repaint, #reparent, #resize, #scroll, #setCursorPosition, #setDNDData, #setDefault, #setDragRectangle, #setFocus, #setInitial, #setShape, #shell?, #show, #shown?, stringType, textType, textTypeName, #tr, #translateCoordinatesFrom, #translateCoordinatesTo, #underCursor?, #ungrab, #ungrabKeyboard, #update, urilistType, urilistTypeName, utf16Type, utf16TypeName, utf8Type, utf8TypeName, #visible=, #width, #width=
Methods included from Responder2
Methods inherited from FXDrawable
Methods inherited from FXId
#create, #created?, #destroy, #detach, #runOnUiThread
Methods inherited from FXObject
#bind, #handle, #load, #save, subclasses
Constructor Details
#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) ⇒ FXComboBox
Return an initialized FXComboBox instance, with room to display cols columns of text.
Parameters:
p
-
the parent widget for this combo-box Fox::FXComposite
cols
-
number of columns [Integer]
target
-
message target Fox::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]
106 107 |
# File 'rdoc-sources/FXComboBox.rb', line 106 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 |
Instance Attribute Details
#backColor ⇒ Object
Window background color Fox::FXColor
70 71 72 |
# File 'rdoc-sources/FXComboBox.rb', line 70 def backColor @backColor end |
#comboStyle ⇒ Object
Combo box style [Integer]
67 68 69 |
# File 'rdoc-sources/FXComboBox.rb', line 67 def comboStyle @comboStyle end |
#currentItem ⇒ Object
Index of current item, or -1 if no current item [Integer]
61 62 63 |
# File 'rdoc-sources/FXComboBox.rb', line 61 def currentItem @currentItem end |
#editable=(value) ⇒ Object (writeonly)
Editable state [Boolean]
43 44 45 |
# File 'rdoc-sources/FXComboBox.rb', line 43 def editable=(value) @editable = value end |
#font ⇒ Object
Text font Fox::FXFont
64 65 66 |
# File 'rdoc-sources/FXComboBox.rb', line 64 def font @font end |
#helpText ⇒ Object
Status line help text [String]
82 83 84 |
# File 'rdoc-sources/FXComboBox.rb', line 82 def helpText @helpText end |
#justify ⇒ Object
Text justification mode; default is JUSTIFY_LEFT
[Integer]
52 53 54 |
# File 'rdoc-sources/FXComboBox.rb', line 52 def justify @justify end |
#numColumns ⇒ Object
Number of columns [Integer]
49 50 51 |
# File 'rdoc-sources/FXComboBox.rb', line 49 def numColumns @numColumns end |
#numItems ⇒ Object (readonly)
Number of items in the list [Integer]
55 56 57 |
# File 'rdoc-sources/FXComboBox.rb', line 55 def numItems @numItems end |
#numVisible ⇒ Object
Number of visible items in the drop-down list [Integer]
58 59 60 |
# File 'rdoc-sources/FXComboBox.rb', line 58 def numVisible @numVisible end |
#selBackColor ⇒ Object
Background color for selected items Fox::FXColor
76 77 78 |
# File 'rdoc-sources/FXComboBox.rb', line 76 def selBackColor @selBackColor end |
#selTextColor ⇒ Object
Text color for selected items Fox::FXColor
79 80 81 |
# File 'rdoc-sources/FXComboBox.rb', line 79 def selTextColor @selTextColor end |
#text ⇒ Object
Text [String]
46 47 48 |
# File 'rdoc-sources/FXComboBox.rb', line 46 def text @text end |
#textColor ⇒ Object
Text color Fox::FXColor
73 74 75 |
# File 'rdoc-sources/FXComboBox.rb', line 73 def textColor @textColor end |
#tipText ⇒ Object
Tool tip message [String]
85 86 87 |
# File 'rdoc-sources/FXComboBox.rb', line 85 def tipText @tipText end |
Instance Method Details
#appendItem(text, data = nil) ⇒ Object
Append a new item to the list with the specified text and user data.
138 |
# File 'rdoc-sources/FXComboBox.rb', line 138 def appendItem(text, data=nil) ; end |
#clearItems ⇒ Object
Remove all items from the list
154 |
# File 'rdoc-sources/FXComboBox.rb', line 154 def clearItems() ; end |
#each ⇒ Object
Calls block once for each item in the list, passing the item’s text and user data as parameters.
18 19 20 21 22 23 |
# File 'lib/fox16/iterators.rb', line 18 def each # :yields: itemText, itemData 0.upto(numItems - 1) do |i| yield getItemText(i), getItemData(i) end self end |
#editable? ⇒ Boolean
Return true
if combobox is editable
113 |
# File 'rdoc-sources/FXComboBox.rb', line 113 def editable?() ; end |
#fillItems(strings) ⇒ Object
Fill combo box by appending items from strings, where strings is an array of strings. Return the number of items added.
131 |
# File 'rdoc-sources/FXComboBox.rb', line 131 def fillItems(strings); end |
#findItem(text, start = -1,, flags = SEARCH_FORWARD|SEARCH_WRAP) ⇒ Object
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.
169 |
# File 'rdoc-sources/FXComboBox.rb', line 169 def findItem(text, start=-1, flags=SEARCH_FORWARD|SEARCH_WRAP); end |
#findItemByData(data, start = -1,, flags = SEARCH_FORWARD|SEARCH_WRAP) ⇒ Object
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.
183 |
# File 'rdoc-sources/FXComboBox.rb', line 183 def findItemByData(data, start=-1, flags=SEARCH_FORWARD|SEARCH_WRAP); end |
#first ⇒ Object
Override Enumerable#first with FXWindow#first for backwards compatibility.
10 11 12 |
# File 'lib/fox16/iterators.rb', line 10 def first getFirst end |
#getItemData(index) ⇒ Object
Get data pointer for the item at index. Raises IndexError if index is out of bounds.
199 |
# File 'rdoc-sources/FXComboBox.rb', line 199 def getItemData(index) ; end |
#getItemText(index) ⇒ Object
Get text for the item at index. Raises IndexError if index is out of bounds.
191 |
# File 'rdoc-sources/FXComboBox.rb', line 191 def getItemText(index) ; end |
#insertItem(index, text, data = nil) ⇒ Object
Insert a new item at index, with the specified text and user data. Raises IndexError if index is out of bounds.
135 |
# File 'rdoc-sources/FXComboBox.rb', line 135 def insertItem(index, text, data=nil) ; end |
#itemCurrent?(index) ⇒ Boolean
Return true
if the item at index is the current item. Raises IndexError if index is out of bounds.
117 |
# File 'rdoc-sources/FXComboBox.rb', line 117 def itemCurrent?(index) ; end |
#moveItem(newIndex, oldIndex) ⇒ Object
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.
147 |
# File 'rdoc-sources/FXComboBox.rb', line 147 def moveItem(newIndex, oldIndex); end |
#paneShown? ⇒ Boolean
Return true
if the pane is shown.
202 |
# File 'rdoc-sources/FXComboBox.rb', line 202 def paneShown?() ; end |
#prependItem(text, data = nil) ⇒ Object
Prepend an item to the list with the specified text and user data
141 |
# File 'rdoc-sources/FXComboBox.rb', line 141 def prependItem(text, data=nil) ; end |
#removeItem(index) ⇒ Object
Remove the item at index from the list. Raises IndexError if index is out of bounds.
151 |
# File 'rdoc-sources/FXComboBox.rb', line 151 def removeItem(index) ; end |
#retrieveItem(index) ⇒ Object
Return the text of the item at the given index. Raises IndexError if index is out of bounds.
121 |
# File 'rdoc-sources/FXComboBox.rb', line 121 def retrieveItem(index) ; end |
#setCurrentItem(index, notify = false) ⇒ Object
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.
212 |
# File 'rdoc-sources/FXComboBox.rb', line 212 def setCurrentItem(index, notify=false); end |
#setItem(index, text, data = nil) ⇒ Object
Replace the item at index with a new item with the specified text and user data. Raises IndexError if index is out of bounds.
125 |
# File 'rdoc-sources/FXComboBox.rb', line 125 def setItem(index, text, data=nil) ; end |
#setItemData(index, data) ⇒ Object
Set user data for the item at index. Raises IndexError if index is out of bounds.
195 |
# File 'rdoc-sources/FXComboBox.rb', line 195 def setItemData(index, data) ; end |
#setItemText(index, text) ⇒ Object
Set text for the item at index. Raises IndexError if index is out of bounds.
187 |
# File 'rdoc-sources/FXComboBox.rb', line 187 def setItemText(index, text) ; end |
#sortItems ⇒ Object
Sort items using current sort function
205 |
# File 'rdoc-sources/FXComboBox.rb', line 205 def sortItems() ; end |
#to_s ⇒ Object
Return the combo box text
110 |
# File 'rdoc-sources/FXComboBox.rb', line 110 def to_s; end |