]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/listbox.tex
define NO_GCC_PRAGMA in wx-config output on Darwin
[wxWidgets.git] / docs / latex / wx / listbox.tex
CommitLineData
a660d684
KB
1\section{\class{wxListBox}}\label{wxlistbox}
2
3A listbox is used to select one or more of a list of strings. The
4strings are displayed in a scrolling box, with the selected string(s)
5marked in reverse video. A listbox can be single selection (if an item
6is selected, the previous selection is removed) or multiple selection
7(clicking an item toggles the item on or off independently of other
8selections).
9
27d029c7
RR
10List box elements are numbered from zero. Their number is limited in
11some platforms (e.g. ca. 2000 on GTK).
a660d684
KB
12
13A listbox callback gets an event wxEVT\_COMMAND\_LISTBOX\_SELECT for single clicks, and
debe6624 14wxEVT\_COMMAND\_LISTBOX\_DOUBLE\_CLICKED for double clicks.
a660d684
KB
15
16\wxheading{Derived from}
17
bed5584e 18\helpref{wxControlWithItems}{wxcontrolwithitems}\\
a660d684
KB
19\helpref{wxControl}{wxcontrol}\\
20\helpref{wxWindow}{wxwindow}\\
21\helpref{wxEvtHandler}{wxevthandler}\\
22\helpref{wxObject}{wxobject}
23
954b8ae6
JS
24\wxheading{Include files}
25
26<wx/listbox.h>
27
a660d684
KB
28\wxheading{Window styles}
29
30\twocolwidtha{5cm}%
31\begin{twocollist}\itemsep=0pt
32\twocolitem{\windowstyle{wxLB\_SINGLE}}{Single-selection list.}
33\twocolitem{\windowstyle{wxLB\_MULTIPLE}}{Multiple-selection list: the user can toggle multiple
34items on and off.}
35\twocolitem{\windowstyle{wxLB\_EXTENDED}}{Extended-selection list: the user can
36select multiple items using the SHIFT key and the mouse or special key combinations.}
37\twocolitem{\windowstyle{wxLB\_HSCROLL}}{Create horizontal scrollbar if contents are too wide (Windows only).}
38\twocolitem{\windowstyle{wxLB\_ALWAYS\_SB}}{Always show a vertical scrollbar.}
39\twocolitem{\windowstyle{wxLB\_NEEDED\_SB}}{Only create a vertical scrollbar if needed.}
3377b962 40\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order.}
a660d684
KB
41\end{twocollist}
42
54081dc5
VZ
43Note that {\tt wxLB\_SINGLE}, {\tt wxLB\_MULTIPLE} and {\tt wxLB\_EXTENDED}
44styles are mutually exclusive and you can specify at most one of them (single
45selection is the default).
46
a660d684
KB
47See also \helpref{window styles overview}{windowstyles}.
48
5de76427
JS
49\wxheading{Event handling}
50
51\twocolwidtha{7cm}
52\begin{twocollist}\itemsep=0pt
53\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED event,
54when an item on the list is selected.}
def172b2 55\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED event,
2edb0bde 56when the listbox is double-clicked.}
5de76427
JS
57\end{twocollist}
58
a660d684
KB
59\wxheading{See also}
60
5de76427
JS
61\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl},
62\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
a660d684
KB
63
64\latexignore{\rtfignore{\wxheading{Members}}}
65
66\membersection{wxListBox::wxListBox}\label{wxlistboxconstr}
67
68\func{}{wxListBox}{\void}
69
70Default constructor.
71
eaaa6a06 72\func{}{wxListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 73\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
eaaa6a06
JS
74\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp
75\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}}
a660d684
KB
76
77Constructor, creating and showing a list box.
78
79\wxheading{Parameters}
80
81\docparam{parent}{Parent window. Must not be NULL.}
82
83\docparam{id}{Window identifier. A value of -1 indicates a default value.}
84
85\docparam{pos}{Window position.}
86
87\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
88appropriately.}
89
90\docparam{n}{Number of strings with which to initialise the control.}
91
92\docparam{choices}{An array of strings with which to initialise the control.}
93
94\docparam{style}{Window style. See \helpref{wxListBox}{wxlistbox}.}
95
96\docparam{validator}{Window validator.}
97
98\docparam{name}{Window name.}
99
100\wxheading{See also}
101
102\helpref{wxListBox::Create}{wxlistboxcreate}, \helpref{wxValidator}{wxvalidator}
103
c9110876
VS
104\pythonnote{The wxListBox constructor in wxPython reduces the {\tt n}
105and {\tt choices} arguments are to a single argument, which is
06d20283
RD
106a list of strings.}
107
5873607e
VZ
108\perlnote{In wxPerl there is just an array reference in place of {\tt n}
109and {\tt choices}.}
06d20283 110
a660d684
KB
111\membersection{wxListBox::\destruct{wxListBox}}
112
113\func{void}{\destruct{wxListBox}}{\void}
114
115Destructor, destroying the list box.
116
a660d684
KB
117\membersection{wxListBox::Create}\label{wxlistboxcreate}
118
eaaa6a06 119\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
a660d684 120\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
eaaa6a06
JS
121\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp
122\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}}
a660d684
KB
123
124Creates the listbox for two-step construction. See \helpref{wxListBox::wxListBox}{wxlistboxconstr}\rtfsp
125for further details.
126
a660d684
KB
127\membersection{wxListBox::Deselect}\label{wxlistboxdeselect}
128
129\func{void}{Deselect}{\param{int}{ n}}
130
131Deselects an item in the list box.
132
133\wxheading{Parameters}
134
135\docparam{n}{The zero-based item to deselect.}
136
137\wxheading{Remarks}
138
139This applies to multiple selection listboxes only.
140
a660d684
KB
141\membersection{wxListBox::GetSelections}\label{wxlistboxgetselections}
142
605d715d 143\constfunc{int}{GetSelections}{\param{wxArrayInt\& }{selections}}
a660d684 144
fd9811b1 145Fill an array of ints with the positions of the currently selected items.
a660d684
KB
146
147\wxheading{Parameters}
148
fd9811b1 149\docparam{selections}{A reference to an wxArrayInt instance that is used to store the result of the query.}
a660d684
KB
150
151\wxheading{Return value}
152
153The number of selections.
154
155\wxheading{Remarks}
156
157Use this with a multiple selection listbox.
158
159\wxheading{See also}
160
bed5584e
VZ
161\helpref{wxControlWithItems::GetSelection}{wxcontrolwithitemsgetselection},\rtfsp
162\helpref{wxControlWithItems::GetStringSelection}{wxcontrolwithitemsgetstringselection},\rtfsp
163\helpref{wxControlWithItems::SetSelection}{wxcontrolwithitemssetselection}
a660d684 164
f899db6d
RD
165\pythonnote{The wxPython version of this method takes no parameters
166and returns a tuple of the selected items.}
167
2edb0bde 168\perlnote{In wxPerl this method takes no parameters and return the
5873607e
VZ
169selected items as a list.}
170
81108288
VZ
171\membersection{wxListBox::InsertItems}\label{wxlistboxinsertitems}
172
2b5f62a0 173\func{void}{InsertItems}{\param{int}{ nItems}, \param{const wxString}{ *items}, \param{int}{ pos}}
81108288
VZ
174
175Insert the given number of strings before the specified position.
176
177\wxheading{Parameters}
178
179\docparam{nItems}{Number of items in the array {\it items}}
180
181\docparam{items}{Labels of items to be inserted}
182
183\docparam{pos}{Position before which to insert the items: for example, if {\it pos} is 0 the items
184will be inserted in the beginning of the listbox}
185
76e1c2de
RD
186\pythonnote{The first two parameters are collapsed into a single
187parameter for wxPython, which is a list of strings.}
188
5873607e
VZ
189\perlnote{In wxPerl there is just an array reference in place of {\tt nItems}
190and {\tt items}.}
191
a660d684
KB
192\membersection{wxListBox::Selected}\label{wxlistboxselected}
193
eaaa6a06 194\constfunc{bool}{Selected}{\param{int}{ n}}
a660d684
KB
195
196Determines whether an item is selected.
197
198\wxheading{Parameters}
199
200\docparam{n}{The zero-based item index.}
201
202\wxheading{Return value}
203
cc81d32f 204true if the given item is selected, false otherwise.
a660d684
KB
205
206\membersection{wxListBox::Set}\label{wxlistboxset}
207
2b5f62a0 208\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}, \param{void}{ **clientData = {\tt NULL}}}
a660d684 209
2b5f62a0
VZ
210\func{void}{Set}{\param{const wxArrayString\&}{ choices}, \param{void}{ **clientData = {\tt NULL}}}
211
212Clears the list box and adds the given strings to it.
a660d684
KB
213
214\wxheading{Parameters}
215
216\docparam{n}{The number of strings to set.}
217
218\docparam{choices}{An array of strings to set.}
219
2b5f62a0
VZ
220\docparam{clientData}{Options array of client data pointers}
221
a660d684
KB
222\wxheading{Remarks}
223
2b5f62a0
VZ
224You may free the array from the calling program after this function has been
225called.
a660d684 226
a660d684
KB
227\membersection{wxListBox::SetFirstItem}\label{wxlistboxsetfirstitem}
228
229\func{void}{SetFirstItem}{\param{int}{ n}}
230
231\func{void}{SetFirstItem}{\param{const wxString\& }{string}}
232
953704c1 233Set the specified item to be the first visible item. Windows only.
a660d684
KB
234
235\wxheading{Parameters}
236
237\docparam{n}{The zero-based item index.}
238
239\docparam{string}{The string that should be visible.}
240