]>
Commit | Line | Data |
---|---|---|
23324ae1 FM |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: ctrlsub.h | |
e54c96f1 | 3 | // Purpose: interface of wxControlWithItems |
23324ae1 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
bf84f3e2 | 9 | |
23324ae1 | 10 | /** |
dc215c81 | 11 | @class wxItemContainerImmutable |
7c913512 | 12 | |
bf84f3e2 VS |
13 | wxItemContainer defines an interface which is implemented by all controls |
14 | which have string subitems each of which may be selected. | |
7c913512 | 15 | |
bf84f3e2 VS |
16 | It is decomposed in wxItemContainerImmutable which omits all methods |
17 | adding/removing items and is used by wxRadioBox and wxItemContainer itself. | |
7c913512 | 18 | |
bf84f3e2 VS |
19 | Note that this is not a control, it's a mixin interface that classes |
20 | have to derive from in addition to wxControl or wxWindow. | |
21 | ||
22 | Examples: wxListBox, wxCheckListBox, wxChoice and wxComboBox (which | |
23 | implements an extended interface deriving from this one) | |
7c913512 | 24 | |
23324ae1 | 25 | @library{wxcore} |
bf84f3e2 | 26 | @category{ctrl} |
7c913512 | 27 | |
bf84f3e2 | 28 | @see wxControlWithItems, wxItemContainer |
23324ae1 | 29 | */ |
bf84f3e2 | 30 | class wxItemContainerImmutable |
23324ae1 FM |
31 | { |
32 | public: | |
bf84f3e2 VS |
33 | /// Constructor |
34 | wxItemContainerImmutable(); | |
35 | ||
23324ae1 | 36 | //@{ |
bf84f3e2 | 37 | |
23324ae1 | 38 | /** |
bf84f3e2 VS |
39 | Returns the number of items in the control. |
40 | ||
41 | @see IsEmpty() | |
42 | */ | |
43 | virtual unsigned int GetCount() const; | |
44 | ||
45 | /** | |
46 | Returns @true if the control is empty or @false if it has some items. | |
47 | ||
48 | @see GetCount() | |
49 | */ | |
50 | bool IsEmpty() const; | |
51 | ||
bf84f3e2 VS |
52 | /** |
53 | Returns the label of the item with the given index. | |
3c4f71cc | 54 | |
7c913512 | 55 | @param n |
bf84f3e2 | 56 | The zero-based index. |
3c4f71cc | 57 | |
d29a9a8a BP |
58 | @return The label of the item or an empty string if the position was |
59 | invalid. | |
23324ae1 | 60 | */ |
bf84f3e2 | 61 | virtual wxString GetString(unsigned int n) const; |
23324ae1 FM |
62 | |
63 | /** | |
bf84f3e2 | 64 | Returns the array of the labels of all items in the control. |
23324ae1 | 65 | */ |
bf84f3e2 | 66 | wxArrayString GetStrings() const; |
23324ae1 FM |
67 | |
68 | /** | |
bf84f3e2 | 69 | Sets the label for the given item. |
3c4f71cc | 70 | |
7c913512 | 71 | @param n |
4cc4bfaf | 72 | The zero-based item index. |
bf84f3e2 VS |
73 | @param string |
74 | The label to set. | |
23324ae1 | 75 | */ |
76e9224e | 76 | virtual void SetString(unsigned int n, const wxString& string); |
23324ae1 FM |
77 | |
78 | /** | |
79 | Finds an item whose label matches the given string. | |
3c4f71cc | 80 | |
7c913512 | 81 | @param string |
4cc4bfaf | 82 | String to find. |
7c913512 | 83 | @param caseSensitive |
4cc4bfaf | 84 | Whether search is case sensitive (default is not). |
3c4f71cc | 85 | |
d29a9a8a BP |
86 | @return The zero-based position of the item, or wxNOT_FOUND if the |
87 | string was not found. | |
23324ae1 | 88 | */ |
76e9224e | 89 | virtual int FindString(const wxString& string, bool caseSensitive = false) const; |
3c4f71cc | 90 | |
bf84f3e2 | 91 | //@} |
3c4f71cc | 92 | |
dc215c81 | 93 | /// @name Selection |
bf84f3e2 | 94 | //@{ |
23324ae1 FM |
95 | |
96 | /** | |
bf84f3e2 VS |
97 | Sets the selection to the given item @a n or removes the selection |
98 | entirely if @a n == @c wxNOT_FOUND. | |
3c4f71cc | 99 | |
bf84f3e2 VS |
100 | Note that this does not cause any command events to be emitted nor does |
101 | it deselect any other items in the controls which support multiple | |
102 | selections. | |
23324ae1 | 103 | |
bf84f3e2 VS |
104 | @param n |
105 | The string position to select, starting from zero. | |
3c4f71cc | 106 | |
bf84f3e2 | 107 | @see SetString(), SetStringSelection() |
23324ae1 | 108 | */ |
bf84f3e2 | 109 | virtual void SetSelection(int n); |
23324ae1 FM |
110 | |
111 | /** | |
112 | Returns the index of the selected item or @c wxNOT_FOUND if no item is | |
113 | selected. | |
3c4f71cc | 114 | |
d29a9a8a | 115 | @return The position of the current selection. |
3c4f71cc | 116 | |
23324ae1 | 117 | @remarks This method can be used with single selection list boxes only, |
bf84f3e2 | 118 | you should use wxListBox::GetSelections() for the list |
4cc4bfaf | 119 | boxes with wxLB_MULTIPLE style. |
3c4f71cc | 120 | |
4cc4bfaf | 121 | @see SetSelection(), GetStringSelection() |
23324ae1 | 122 | */ |
bf84f3e2 | 123 | virtual int GetSelection() const; |
23324ae1 FM |
124 | |
125 | /** | |
bf84f3e2 VS |
126 | Selects the item with the specified string in the control. This doesn't |
127 | cause any command events to be emitted. | |
3c4f71cc | 128 | |
bf84f3e2 VS |
129 | @param string |
130 | The string to select. | |
3c4f71cc | 131 | |
d29a9a8a BP |
132 | @return @true if the specified string has been selected, @false if it |
133 | wasn't found in the control. | |
23324ae1 | 134 | */ |
bf84f3e2 | 135 | bool SetStringSelection(const wxString& string); |
23324ae1 FM |
136 | |
137 | /** | |
138 | Returns the label of the selected item or an empty string if no item is | |
139 | selected. | |
3c4f71cc | 140 | |
4cc4bfaf | 141 | @see GetSelection() |
23324ae1 | 142 | */ |
bf84f3e2 | 143 | virtual wxString GetStringSelection() const; |
23324ae1 FM |
144 | |
145 | /** | |
bf84f3e2 VS |
146 | This is the same as SetSelection() and exists only because it is |
147 | slightly more natural for controls which support multiple selection. | |
23324ae1 | 148 | */ |
bf84f3e2 VS |
149 | void Select(int n); |
150 | ||
151 | //@} | |
152 | }; | |
153 | ||
154 | ||
155 | /** | |
dc215c81 | 156 | @class wxItemContainer |
bf84f3e2 VS |
157 | |
158 | This class is an abstract base class for some wxWidgets controls which | |
159 | contain several items such as wxListBox, wxCheckListBox, wxComboBox or | |
160 | wxChoice. It defines an interface which is implemented by all controls | |
161 | which have string subitems each of which may be selected. | |
23324ae1 | 162 | |
bf84f3e2 VS |
163 | wxItemContainer extends wxItemContainerImmutable interface with methods |
164 | for adding/removing items. | |
165 | ||
166 | It defines the methods for accessing the controls items and although each | |
167 | of the derived classes implements them differently, they still all conform | |
168 | to the same interface. | |
169 | ||
170 | The items in a wxItemContainer have (non-empty) string labels and, | |
171 | optionally, client data associated with them. Client data may be of two | |
172 | different kinds: either simple untyped (@c void *) pointers which are | |
173 | simply stored by the control but not used in any way by it, or typed | |
174 | pointers (wxClientData*) which are owned by the control meaning that the | |
175 | typed client data (and only it) will be deleted when an item is deleted | |
dc215c81 BP |
176 | using Delete() or the entire control is cleared using Clear(), which also |
177 | happens when it is destroyed. | |
bf84f3e2 VS |
178 | |
179 | Finally note that in the same control all items must have client data of | |
180 | the same type (typed or untyped), if any. This type is determined by the | |
dc215c81 BP |
181 | first call to Append() (the version with client data pointer) or |
182 | SetClientData(). | |
bf84f3e2 VS |
183 | |
184 | Note that this is not a control, it's a mixin interface that classes | |
185 | have to derive from in addition to wxControl or wxWindow. Convenience | |
186 | class wxControlWithItems is provided for this purpose. | |
187 | ||
188 | @library{wxcore} | |
189 | @category{ctrl} | |
190 | ||
191 | @see wxControlWithItems, wxItemContainerImmutable | |
192 | */ | |
193 | class wxItemContainer : public wxItemContainerImmutable | |
194 | { | |
195 | public: | |
23324ae1 | 196 | //@{ |
bf84f3e2 | 197 | |
23324ae1 | 198 | /** |
bf84f3e2 VS |
199 | Appends item into the control. |
200 | ||
201 | @param item | |
202 | String to add. | |
203 | ||
d29a9a8a BP |
204 | @return The return value is the index of the newly inserted item. |
205 | Note that this may be different from the last one if the | |
206 | control is sorted (e.g. has @c wxLB_SORT or @c wxCB_SORT | |
207 | style). | |
bf84f3e2 VS |
208 | */ |
209 | int Append(const wxString& item); | |
210 | ||
211 | /** | |
212 | Appends item into the control. | |
3c4f71cc | 213 | |
7c913512 | 214 | @param item |
4cc4bfaf | 215 | String to add. |
7c913512 | 216 | @param clientData |
bf84f3e2 | 217 | Pointer to client data to associate with the new item. |
3c4f71cc | 218 | |
d29a9a8a BP |
219 | @return The return value is the index of the newly inserted item. |
220 | Note that this may be different from the last one if the | |
221 | control is sorted (e.g. has @c wxLB_SORT or @c wxCB_SORT | |
222 | style). | |
23324ae1 | 223 | */ |
bf84f3e2 VS |
224 | int Append(const wxString& item, void* clientData); |
225 | ||
226 | /** | |
227 | Appends item into the control. | |
228 | ||
229 | @param item | |
230 | String to add. | |
231 | @param clientData | |
232 | Pointer to client data to associate with the new item. | |
233 | ||
d29a9a8a BP |
234 | @return The return value is the index of the newly inserted item. |
235 | Note that this may be different from the last one if the | |
236 | control is sorted (e.g. has @c wxLB_SORT or @c wxCB_SORT | |
237 | style). | |
bf84f3e2 VS |
238 | */ |
239 | int Append(const wxString& item, wxClientData* clientData); | |
240 | ||
241 | /** | |
242 | Appends several items at once into the control. | |
243 | ||
244 | Notice that calling this method is usually much faster than appending | |
245 | them one by one if you need to add a lot of items. | |
246 | ||
247 | @param items | |
248 | Array of strings to insert. | |
249 | */ | |
250 | void Append(const wxArrayString& items); | |
251 | ||
252 | /** | |
253 | Appends several items at once into the control. | |
254 | ||
255 | Notice that calling this method is usually much faster than appending | |
256 | them one by one if you need to add a lot of items. | |
257 | ||
258 | @param items | |
259 | Array of strings to insert. | |
260 | @param clientData | |
261 | Array of client data pointers of the same size as @a items to | |
262 | associate with the new items. | |
263 | */ | |
264 | void Append(const wxArrayString& items, void **clientData); | |
265 | ||
266 | /** | |
267 | Appends several items at once into the control. | |
268 | ||
269 | Notice that calling this method is usually much faster than appending | |
270 | them one by one if you need to add a lot of items. | |
271 | ||
272 | @param items | |
273 | Array of strings to insert. | |
274 | @param clientData | |
275 | Array of client data pointers of the same size as @a items to | |
276 | associate with the new items. | |
277 | */ | |
278 | void Append(const wxArrayString& items, wxClientData **clientData); | |
279 | ||
280 | /** | |
281 | Appends several items at once into the control. | |
282 | ||
283 | Notice that calling this method is usually much faster than appending | |
284 | them one by one if you need to add a lot of items. | |
285 | ||
286 | @param n | |
287 | Number of items in the @a items array. | |
288 | @param items | |
289 | Array of strings of size @a n. | |
290 | */ | |
291 | void Append(unsigned int n, const wxString* items); | |
292 | ||
293 | /** | |
294 | Appends several items at once into the control. | |
295 | ||
296 | Notice that calling this method is usually much faster than appending | |
297 | them one by one if you need to add a lot of items. | |
298 | ||
299 | @param n | |
300 | Number of items in the @a items array. | |
301 | @param items | |
302 | Array of strings of size @a n. | |
303 | @param clientData | |
304 | Array of client data pointers of size @a n to associate with the | |
305 | new items. | |
306 | */ | |
307 | void Append(unsigned int n, const wxString* items, | |
4cc4bfaf | 308 | void** clientData); |
bf84f3e2 VS |
309 | |
310 | /** | |
311 | Appends several items at once into the control. | |
312 | ||
313 | Notice that calling this method is usually much faster than appending | |
314 | them one by one if you need to add a lot of items. | |
315 | ||
316 | @param n | |
317 | Number of items in the @a items array. | |
318 | @param items | |
319 | Array of strings of size @a n. | |
320 | @param clientData | |
321 | Array of client data pointers of size @a n to associate with the | |
322 | new items. | |
323 | */ | |
324 | void Append(unsigned int n, const wxString* items, | |
4cc4bfaf | 325 | wxClientData** clientData); |
23324ae1 FM |
326 | //@} |
327 | ||
328 | /** | |
bf84f3e2 VS |
329 | Removes all items from the control. |
330 | Clear() also deletes the client data of the existing items if it is | |
331 | owned by the control. | |
23324ae1 | 332 | */ |
bf84f3e2 | 333 | void Clear(); |
23324ae1 FM |
334 | |
335 | /** | |
bf84f3e2 VS |
336 | Deletes an item from the control. |
337 | ||
338 | The client data associated with the item will be also deleted if it is | |
339 | owned by the control. Note that it is an error (signalled by an assert | |
340 | failure in debug builds) to remove an item with the index negative or | |
341 | greater or equal than the number of items in the control. | |
342 | ||
343 | @param n | |
344 | The zero-based item index. | |
345 | ||
346 | @see Clear() | |
23324ae1 | 347 | */ |
bf84f3e2 | 348 | void Delete(unsigned int n); |
23324ae1 FM |
349 | |
350 | //@{ | |
bf84f3e2 | 351 | |
23324ae1 | 352 | /** |
bf84f3e2 VS |
353 | Returns a pointer to the client data associated with the given item (if |
354 | any). It is an error to call this function for a control which doesn't | |
355 | have untyped client data at all although it is OK to call it even if | |
356 | the given item doesn't have any client data associated with it (but | |
357 | other items do). | |
3c4f71cc | 358 | |
7c913512 | 359 | @param n |
bf84f3e2 VS |
360 | The zero-based position of the item. |
361 | ||
d29a9a8a | 362 | @return A pointer to the client data, or @NULL if not present. |
23324ae1 | 363 | */ |
bf84f3e2 VS |
364 | void* GetClientData(unsigned int n) const; |
365 | ||
366 | /** | |
367 | Returns a pointer to the client data associated with the given item (if | |
368 | any). It is an error to call this function for a control which doesn't | |
369 | have typed client data at all although it is OK to call it even if the | |
370 | given item doesn't have any client data associated with it (but other | |
371 | items do). | |
372 | ||
373 | @param n | |
374 | The zero-based position of the item. | |
375 | ||
d29a9a8a | 376 | @return A pointer to the client data, or @NULL if not present. |
bf84f3e2 VS |
377 | */ |
378 | wxClientData* GetClientObject(unsigned int n) const; | |
23324ae1 FM |
379 | |
380 | /** | |
bf84f3e2 VS |
381 | Associates the given untyped client data pointer with the given item. |
382 | Note that it is an error to call this function if any typed client data | |
383 | pointers had been associated with the control items before. | |
3c4f71cc | 384 | |
7c913512 | 385 | @param n |
4cc4bfaf | 386 | The zero-based item index. |
7c913512 | 387 | @param data |
4cc4bfaf | 388 | The client data to associate with the item. |
23324ae1 | 389 | */ |
4cc4bfaf | 390 | void SetClientData(unsigned int n, void* data); |
23324ae1 FM |
391 | |
392 | /** | |
393 | Associates the given typed client data pointer with the given item: the | |
bf84f3e2 VS |
394 | @a data object will be deleted when the item is deleted (either |
395 | explicitly by using Delete() or implicitly when the control itself is | |
396 | destroyed). Note that it is an error to call this function if any | |
397 | untyped client data pointers had been associated with the control items | |
398 | before. | |
3c4f71cc | 399 | |
7c913512 | 400 | @param n |
4cc4bfaf | 401 | The zero-based item index. |
7c913512 | 402 | @param data |
4cc4bfaf | 403 | The client data to associate with the item. |
23324ae1 | 404 | */ |
4cc4bfaf | 405 | void SetClientObject(unsigned int n, wxClientData* data); |
23324ae1 | 406 | |
bf84f3e2 VS |
407 | //@} |
408 | ||
409 | //@{ | |
410 | ||
411 | /** | |
412 | Inserts item into the control. | |
413 | ||
414 | @param item | |
415 | String to add. | |
416 | @param pos | |
417 | Position to insert item before, zero based. | |
418 | ||
d29a9a8a BP |
419 | @return The return value is the index of the newly inserted item. |
420 | If the insertion failed for some reason, -1 is returned. | |
bf84f3e2 VS |
421 | */ |
422 | int Insert(const wxString& item, unsigned int pos); | |
423 | ||
424 | /** | |
425 | Inserts item into the control. | |
426 | ||
427 | @param item | |
428 | String to add. | |
429 | @param pos | |
430 | Position to insert item before, zero based. | |
431 | @param clientData | |
432 | Pointer to client data to associate with the new item. | |
433 | ||
d29a9a8a BP |
434 | @return The return value is the index of the newly inserted item. |
435 | If the insertion failed for some reason, -1 is returned. | |
bf84f3e2 VS |
436 | */ |
437 | int Insert(const wxString& item, unsigned int pos, void* clientData); | |
438 | ||
439 | /** | |
440 | Inserts item into the control. | |
441 | ||
442 | @param item | |
443 | String to add. | |
444 | @param pos | |
445 | Position to insert item before, zero based. | |
446 | @param clientData | |
447 | Pointer to client data to associate with the new item. | |
448 | ||
d29a9a8a BP |
449 | @return The return value is the index of the newly inserted item. |
450 | If the insertion failed for some reason, -1 is returned. | |
bf84f3e2 VS |
451 | */ |
452 | int Insert(const wxString& item, unsigned int pos, | |
453 | wxClientData* clientData); | |
454 | ||
455 | /** | |
456 | Inserts several items at once into the control. | |
457 | ||
458 | Notice that calling this method is usually much faster than inserting | |
459 | them one by one if you need to insert a lot of items. | |
460 | ||
461 | @param items | |
462 | Array of strings to insert. | |
463 | @param pos | |
464 | Position to insert the items before, zero based. | |
465 | */ | |
466 | void Insert(const wxArrayString& items, unsigned int pos); | |
467 | ||
468 | /** | |
469 | Inserts several items at once into the control. | |
470 | ||
471 | Notice that calling this method is usually much faster than inserting | |
472 | them one by one if you need to insert a lot of items. | |
473 | ||
474 | @param items | |
475 | Array of strings to insert. | |
476 | @param pos | |
477 | Position to insert the items before, zero based. | |
478 | @param clientData | |
479 | Array of client data pointers of the same size as @a items to | |
480 | associate with the new items. | |
481 | */ | |
482 | void Insert(const wxArrayString& items, unsigned int pos, | |
483 | void **clientData); | |
484 | ||
23324ae1 | 485 | /** |
bf84f3e2 VS |
486 | Inserts several items at once into the control. |
487 | ||
488 | Notice that calling this method is usually much faster than inserting | |
489 | them one by one if you need to insert a lot of items. | |
490 | ||
491 | @param items | |
492 | Array of strings to insert. | |
493 | @param pos | |
494 | Position to insert the items before, zero based. | |
495 | @param clientData | |
496 | Array of client data pointers of the same size as @a items to | |
497 | associate with the new items. | |
498 | */ | |
499 | void Insert(const wxArrayString& items, unsigned int pos, | |
500 | wxClientData **clientData); | |
501 | ||
502 | /** | |
503 | Inserts several items at once into the control. | |
504 | ||
505 | Notice that calling this method is usually much faster than inserting | |
506 | them one by one if you need to insert a lot of items. | |
3c4f71cc | 507 | |
7c913512 | 508 | @param n |
bf84f3e2 VS |
509 | Number of items in the @a items array. |
510 | @param items | |
511 | Array of strings of size @a n. | |
512 | @param pos | |
513 | Position to insert the items before, zero based. | |
514 | */ | |
515 | void Insert(unsigned int n, const wxString* items, | |
516 | unsigned int pos); | |
3c4f71cc | 517 | |
bf84f3e2 VS |
518 | /** |
519 | Inserts several items at once into the control. | |
520 | ||
521 | Notice that calling this method is usually much faster than inserting | |
522 | them one by one if you need to insert a lot of items. | |
523 | ||
524 | @param n | |
525 | Number of items in the @a items array. | |
526 | @param items | |
527 | Array of strings of size @a n. | |
528 | @param pos | |
529 | Position to insert the new items before, zero based. | |
530 | @param clientData | |
531 | Array of client data pointers of size @a n to associate with the | |
532 | new items. | |
23324ae1 | 533 | */ |
bf84f3e2 VS |
534 | void Insert(unsigned int n, const wxString* items, |
535 | unsigned int pos, | |
536 | void** clientData); | |
23324ae1 FM |
537 | |
538 | /** | |
bf84f3e2 VS |
539 | Inserts several items at once into the control. |
540 | ||
541 | Notice that calling this method is usually much faster than inserting | |
542 | them one by one if you need to insert a lot of items. | |
3c4f71cc | 543 | |
7c913512 | 544 | @param n |
bf84f3e2 VS |
545 | Number of items in the @a items array. |
546 | @param items | |
547 | Array of strings of size @a n. | |
548 | @param pos | |
549 | Position to insert the new items before, zero based. | |
550 | @param clientData | |
551 | Array of client data pointers of size @a n to associate with the | |
552 | new items. | |
23324ae1 | 553 | */ |
bf84f3e2 VS |
554 | void Insert(unsigned int n, const wxString* items, |
555 | unsigned int pos, | |
556 | wxClientData** clientData); | |
557 | //@} | |
23324ae1 | 558 | |
bf84f3e2 | 559 | //@{ |
23324ae1 | 560 | /** |
bf84f3e2 | 561 | Replaces the current control contents with the given items. |
3c4f71cc | 562 | |
bf84f3e2 VS |
563 | Notice that calling this method is usually much faster than appending |
564 | them one by one if you need to add a lot of items. | |
3c4f71cc | 565 | |
bf84f3e2 VS |
566 | @param items |
567 | Array of strings to insert. | |
23324ae1 | 568 | */ |
bf84f3e2 VS |
569 | void Set(const wxArrayString& items); |
570 | ||
571 | /** | |
572 | Replaces the current control contents with the given items. | |
573 | ||
574 | Notice that calling this method is usually much faster than appending | |
575 | them one by one if you need to add a lot of items. | |
576 | ||
577 | @param items | |
578 | Array of strings to insert. | |
579 | @param clientData | |
580 | Array of client data pointers of the same size as @a items to | |
581 | associate with the new items. | |
582 | */ | |
583 | void Set(const wxArrayString& items, void **clientData); | |
584 | ||
585 | /** | |
586 | Replaces the current control contents with the given items. | |
587 | ||
588 | Notice that calling this method is usually much faster than appending | |
589 | them one by one if you need to add a lot of items. | |
590 | ||
591 | @param items | |
592 | Array of strings to insert. | |
593 | @param clientData | |
594 | Array of client data pointers of the same size as @a items to | |
595 | associate with the new items. | |
596 | */ | |
597 | void Set(const wxArrayString& items, wxClientData **clientData); | |
598 | ||
599 | /** | |
600 | Replaces the current control contents with the given items. | |
601 | ||
602 | Notice that calling this method is usually much faster than appending | |
603 | them one by one if you need to add a lot of items. | |
604 | ||
605 | @param n | |
606 | Number of items in the @a items array. | |
607 | @param items | |
608 | Array of strings of size @a n. | |
609 | */ | |
610 | void Set(unsigned int n, const wxString* items); | |
611 | ||
612 | /** | |
613 | Replaces the current control contents with the given items. | |
614 | ||
615 | Notice that calling this method is usually much faster than appending | |
616 | them one by one if you need to add a lot of items. | |
617 | ||
618 | @param n | |
619 | Number of items in the @a items array. | |
620 | @param items | |
621 | Array of strings of size @a n. | |
622 | @param clientData | |
623 | Array of client data pointers of size @a n to associate with the | |
624 | new items. | |
625 | */ | |
626 | void Set(unsigned int n, const wxString* items, void** clientData); | |
627 | ||
628 | /** | |
629 | Replaces the current control contents with the given items. | |
630 | ||
631 | Notice that calling this method is usually much faster than appending | |
632 | them one by one if you need to add a lot of items. | |
633 | ||
634 | @param n | |
635 | Number of items in the @a items array. | |
636 | @param items | |
637 | Array of strings of size @a n. | |
638 | @param clientData | |
639 | Array of client data pointers of size @a n to associate with the | |
640 | new items. | |
641 | */ | |
642 | void Set(unsigned int n, const wxString* items, wxClientData** clientData); | |
643 | //@} | |
644 | }; | |
645 | ||
646 | ||
647 | /** | |
648 | @class wxControlWithItems | |
bf84f3e2 VS |
649 | |
650 | This is convenience class that derives from both wxControl and | |
651 | wxItemContainer. It is used as basis for some wxWidgets controls | |
652 | (wxChoice and wxListBox). | |
653 | ||
654 | @library{wxcore} | |
655 | @category{ctrl} | |
656 | ||
657 | @see wxItemContainer, wxItemContainerImmutable | |
658 | */ | |
659 | class wxControlWithItems : public wxControl, public wxItemContainer | |
660 | { | |
23324ae1 | 661 | }; |
e54c96f1 | 662 |