]>
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$ | |
526954c5 | 6 | // Licence: wxWindows licence |
23324ae1 FM |
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 | */ | |
382f12e4 | 43 | virtual unsigned int GetCount() const = 0; |
bf84f3e2 VS |
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 | */ |
382f12e4 | 61 | virtual wxString GetString(unsigned int n) const = 0; |
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 | */ |
382f12e4 | 76 | virtual void SetString(unsigned int n, const wxString& string) = 0; |
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 | */ |
382f12e4 | 109 | virtual void SetSelection(int n) = 0; |
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 | */ |
382f12e4 | 123 | virtual int GetSelection() const = 0; |
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 | */ | |
882678eb | 250 | int Append(const wxArrayString& items); |
bf84f3e2 VS |
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 | */ | |
882678eb | 264 | int Append(const wxArrayString& items, void **clientData); |
bf84f3e2 VS |
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 | */ | |
882678eb | 278 | int Append(const wxArrayString& items, wxClientData **clientData); |
bf84f3e2 VS |
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 | */ | |
882678eb | 291 | int Append(unsigned int n, const wxString* items); |
bf84f3e2 VS |
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 | */ | |
882678eb FM |
307 | int Append(unsigned int n, const wxString* items, |
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 | */ | |
882678eb | 324 | int 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 | 349 | |
9c99919a | 350 | |
ab989357 VZ |
351 | /** |
352 | Returns the client object associated with the given item and transfers | |
353 | its ownership to the caller. | |
354 | ||
355 | This method, unlike GetClientObject(), expects the caller to delete the | |
356 | returned pointer. It also replaces the internally stored pointer with | |
357 | @NULL, i.e. completely detaches the client object pointer from the | |
358 | control. | |
359 | ||
360 | It's an error to call this method unless HasClientObjectData() returns | |
361 | @true. | |
362 | ||
363 | @param n | |
364 | The zero-based item index. | |
365 | @return The associated client object pointer to be deleted by caller or | |
366 | @NULL. | |
367 | ||
368 | @since 2.9.2 | |
369 | */ | |
370 | wxClientData *DetachClientObject(unsigned int n); | |
371 | ||
9c99919a RR |
372 | /** |
373 | Returns true, if either untyped data (@c void*) or object data (wxClientData*) | |
374 | is associated with the items of the control. | |
375 | */ | |
376 | bool HasClientData() const; | |
ab989357 | 377 | |
9c99919a | 378 | /** |
ab989357 VZ |
379 | Returns true, if object data is associated with the items of the |
380 | control. | |
381 | ||
382 | Object data pointers have the type @c wxClientData* instead of @c void* | |
383 | and, importantly, are owned by the control, i.e. will be deleted by it, | |
384 | unlike their untyped counterparts. | |
9c99919a RR |
385 | */ |
386 | bool HasClientObjectData() const; | |
387 | ||
388 | /** | |
ab989357 | 389 | Returns true, if untyped data (@c void*) |
9c99919a RR |
390 | is associated with the items of the control. |
391 | */ | |
392 | bool HasClientUntypedData() const; | |
393 | ||
394 | ||
23324ae1 | 395 | //@{ |
bf84f3e2 | 396 | |
23324ae1 | 397 | /** |
bf84f3e2 VS |
398 | Returns a pointer to the client data associated with the given item (if |
399 | any). It is an error to call this function for a control which doesn't | |
400 | have untyped client data at all although it is OK to call it even if | |
401 | the given item doesn't have any client data associated with it (but | |
402 | other items do). | |
3c4f71cc | 403 | |
7c913512 | 404 | @param n |
bf84f3e2 VS |
405 | The zero-based position of the item. |
406 | ||
d29a9a8a | 407 | @return A pointer to the client data, or @NULL if not present. |
23324ae1 | 408 | */ |
bf84f3e2 VS |
409 | void* GetClientData(unsigned int n) const; |
410 | ||
411 | /** | |
412 | Returns a pointer to the client data associated with the given item (if | |
413 | any). It is an error to call this function for a control which doesn't | |
414 | have typed client data at all although it is OK to call it even if the | |
415 | given item doesn't have any client data associated with it (but other | |
416 | items do). | |
417 | ||
ab989357 VZ |
418 | Notice that the returned pointer is still owned by the control and will |
419 | be deleted by it, use DetachClientObject() if you want to remove the | |
420 | pointer from the control. | |
421 | ||
bf84f3e2 VS |
422 | @param n |
423 | The zero-based position of the item. | |
424 | ||
d29a9a8a | 425 | @return A pointer to the client data, or @NULL if not present. |
bf84f3e2 VS |
426 | */ |
427 | wxClientData* GetClientObject(unsigned int n) const; | |
23324ae1 FM |
428 | |
429 | /** | |
bf84f3e2 VS |
430 | Associates the given untyped client data pointer with the given item. |
431 | Note that it is an error to call this function if any typed client data | |
432 | pointers had been associated with the control items before. | |
3c4f71cc | 433 | |
7c913512 | 434 | @param n |
4cc4bfaf | 435 | The zero-based item index. |
7c913512 | 436 | @param data |
4cc4bfaf | 437 | The client data to associate with the item. |
23324ae1 | 438 | */ |
4cc4bfaf | 439 | void SetClientData(unsigned int n, void* data); |
23324ae1 FM |
440 | |
441 | /** | |
442 | Associates the given typed client data pointer with the given item: the | |
bf84f3e2 VS |
443 | @a data object will be deleted when the item is deleted (either |
444 | explicitly by using Delete() or implicitly when the control itself is | |
445 | destroyed). Note that it is an error to call this function if any | |
446 | untyped client data pointers had been associated with the control items | |
447 | before. | |
3c4f71cc | 448 | |
7c913512 | 449 | @param n |
4cc4bfaf | 450 | The zero-based item index. |
7c913512 | 451 | @param data |
4cc4bfaf | 452 | The client data to associate with the item. |
23324ae1 | 453 | */ |
4cc4bfaf | 454 | void SetClientObject(unsigned int n, wxClientData* data); |
23324ae1 | 455 | |
bf84f3e2 VS |
456 | //@} |
457 | ||
458 | //@{ | |
459 | ||
460 | /** | |
461 | Inserts item into the control. | |
462 | ||
463 | @param item | |
464 | String to add. | |
465 | @param pos | |
466 | Position to insert item before, zero based. | |
467 | ||
d29a9a8a BP |
468 | @return The return value is the index of the newly inserted item. |
469 | If the insertion failed for some reason, -1 is returned. | |
bf84f3e2 VS |
470 | */ |
471 | int Insert(const wxString& item, unsigned int pos); | |
472 | ||
473 | /** | |
474 | Inserts item into the control. | |
475 | ||
476 | @param item | |
477 | String to add. | |
478 | @param pos | |
479 | Position to insert item before, zero based. | |
480 | @param clientData | |
481 | Pointer to client data to associate with the new item. | |
482 | ||
d29a9a8a BP |
483 | @return The return value is the index of the newly inserted item. |
484 | If the insertion failed for some reason, -1 is returned. | |
bf84f3e2 VS |
485 | */ |
486 | int Insert(const wxString& item, unsigned int pos, void* clientData); | |
487 | ||
488 | /** | |
489 | Inserts item into the control. | |
490 | ||
491 | @param item | |
492 | String to add. | |
493 | @param pos | |
494 | Position to insert item before, zero based. | |
495 | @param clientData | |
496 | Pointer to client data to associate with the new item. | |
497 | ||
d29a9a8a BP |
498 | @return The return value is the index of the newly inserted item. |
499 | If the insertion failed for some reason, -1 is returned. | |
bf84f3e2 VS |
500 | */ |
501 | int Insert(const wxString& item, unsigned int pos, | |
502 | wxClientData* clientData); | |
503 | ||
504 | /** | |
505 | Inserts several items at once into the control. | |
506 | ||
507 | Notice that calling this method is usually much faster than inserting | |
508 | them one by one if you need to insert a lot of items. | |
509 | ||
510 | @param items | |
511 | Array of strings to insert. | |
512 | @param pos | |
513 | Position to insert the items before, zero based. | |
514 | */ | |
882678eb | 515 | int Insert(const wxArrayString& items, unsigned int pos); |
bf84f3e2 VS |
516 | |
517 | /** | |
518 | Inserts several items at once into the control. | |
519 | ||
520 | Notice that calling this method is usually much faster than inserting | |
521 | them one by one if you need to insert a lot of items. | |
522 | ||
523 | @param items | |
524 | Array of strings to insert. | |
525 | @param pos | |
526 | Position to insert the items before, zero based. | |
527 | @param clientData | |
528 | Array of client data pointers of the same size as @a items to | |
529 | associate with the new items. | |
530 | */ | |
882678eb | 531 | int Insert(const wxArrayString& items, unsigned int pos, |
bf84f3e2 VS |
532 | void **clientData); |
533 | ||
23324ae1 | 534 | /** |
bf84f3e2 VS |
535 | Inserts several items at once into the control. |
536 | ||
537 | Notice that calling this method is usually much faster than inserting | |
538 | them one by one if you need to insert a lot of items. | |
539 | ||
540 | @param items | |
541 | Array of strings to insert. | |
542 | @param pos | |
543 | Position to insert the items before, zero based. | |
544 | @param clientData | |
545 | Array of client data pointers of the same size as @a items to | |
546 | associate with the new items. | |
547 | */ | |
882678eb | 548 | int Insert(const wxArrayString& items, unsigned int pos, |
bf84f3e2 VS |
549 | wxClientData **clientData); |
550 | ||
551 | /** | |
552 | Inserts several items at once into the control. | |
553 | ||
554 | Notice that calling this method is usually much faster than inserting | |
555 | them one by one if you need to insert a lot of items. | |
3c4f71cc | 556 | |
7c913512 | 557 | @param n |
bf84f3e2 VS |
558 | Number of items in the @a items array. |
559 | @param items | |
560 | Array of strings of size @a n. | |
561 | @param pos | |
562 | Position to insert the items before, zero based. | |
563 | */ | |
882678eb | 564 | int Insert(unsigned int n, const wxString* items, |
bf84f3e2 | 565 | unsigned int pos); |
3c4f71cc | 566 | |
bf84f3e2 VS |
567 | /** |
568 | Inserts several items at once into the control. | |
569 | ||
570 | Notice that calling this method is usually much faster than inserting | |
571 | them one by one if you need to insert a lot of items. | |
572 | ||
573 | @param n | |
574 | Number of items in the @a items array. | |
575 | @param items | |
576 | Array of strings of size @a n. | |
577 | @param pos | |
578 | Position to insert the new items before, zero based. | |
579 | @param clientData | |
580 | Array of client data pointers of size @a n to associate with the | |
581 | new items. | |
23324ae1 | 582 | */ |
882678eb | 583 | int Insert(unsigned int n, const wxString* items, |
bf84f3e2 VS |
584 | unsigned int pos, |
585 | void** clientData); | |
23324ae1 FM |
586 | |
587 | /** | |
bf84f3e2 VS |
588 | Inserts several items at once into the control. |
589 | ||
590 | Notice that calling this method is usually much faster than inserting | |
591 | them one by one if you need to insert a lot of items. | |
3c4f71cc | 592 | |
7c913512 | 593 | @param n |
bf84f3e2 VS |
594 | Number of items in the @a items array. |
595 | @param items | |
596 | Array of strings of size @a n. | |
597 | @param pos | |
598 | Position to insert the new items before, zero based. | |
599 | @param clientData | |
600 | Array of client data pointers of size @a n to associate with the | |
601 | new items. | |
23324ae1 | 602 | */ |
882678eb | 603 | int Insert(unsigned int n, const wxString* items, |
bf84f3e2 VS |
604 | unsigned int pos, |
605 | wxClientData** clientData); | |
606 | //@} | |
23324ae1 | 607 | |
bf84f3e2 | 608 | //@{ |
23324ae1 | 609 | /** |
bf84f3e2 | 610 | Replaces the current control contents with the given items. |
3c4f71cc | 611 | |
bf84f3e2 VS |
612 | Notice that calling this method is usually much faster than appending |
613 | them one by one if you need to add a lot of items. | |
3c4f71cc | 614 | |
bf84f3e2 VS |
615 | @param items |
616 | Array of strings to insert. | |
23324ae1 | 617 | */ |
bf84f3e2 VS |
618 | void Set(const wxArrayString& items); |
619 | ||
620 | /** | |
621 | Replaces the current control contents with the given items. | |
622 | ||
623 | Notice that calling this method is usually much faster than appending | |
624 | them one by one if you need to add a lot of items. | |
625 | ||
626 | @param items | |
627 | Array of strings to insert. | |
628 | @param clientData | |
629 | Array of client data pointers of the same size as @a items to | |
630 | associate with the new items. | |
631 | */ | |
632 | void Set(const wxArrayString& items, void **clientData); | |
633 | ||
634 | /** | |
635 | Replaces the current control contents with the given items. | |
636 | ||
637 | Notice that calling this method is usually much faster than appending | |
638 | them one by one if you need to add a lot of items. | |
639 | ||
640 | @param items | |
641 | Array of strings to insert. | |
642 | @param clientData | |
643 | Array of client data pointers of the same size as @a items to | |
644 | associate with the new items. | |
645 | */ | |
646 | void Set(const wxArrayString& items, wxClientData **clientData); | |
647 | ||
648 | /** | |
649 | Replaces the current control contents with the given items. | |
650 | ||
651 | Notice that calling this method is usually much faster than appending | |
652 | them one by one if you need to add a lot of items. | |
653 | ||
654 | @param n | |
655 | Number of items in the @a items array. | |
656 | @param items | |
657 | Array of strings of size @a n. | |
658 | */ | |
659 | void Set(unsigned int n, const wxString* items); | |
660 | ||
661 | /** | |
662 | Replaces the current control contents with the given items. | |
663 | ||
664 | Notice that calling this method is usually much faster than appending | |
665 | them one by one if you need to add a lot of items. | |
666 | ||
667 | @param n | |
668 | Number of items in the @a items array. | |
669 | @param items | |
670 | Array of strings of size @a n. | |
671 | @param clientData | |
672 | Array of client data pointers of size @a n to associate with the | |
673 | new items. | |
674 | */ | |
675 | void Set(unsigned int n, const wxString* items, void** clientData); | |
676 | ||
677 | /** | |
678 | Replaces the current control contents with the given items. | |
679 | ||
680 | Notice that calling this method is usually much faster than appending | |
681 | them one by one if you need to add a lot of items. | |
682 | ||
683 | @param n | |
684 | Number of items in the @a items array. | |
685 | @param items | |
686 | Array of strings of size @a n. | |
687 | @param clientData | |
688 | Array of client data pointers of size @a n to associate with the | |
689 | new items. | |
690 | */ | |
691 | void Set(unsigned int n, const wxString* items, wxClientData** clientData); | |
692 | //@} | |
693 | }; | |
694 | ||
695 | ||
696 | /** | |
697 | @class wxControlWithItems | |
bf84f3e2 VS |
698 | |
699 | This is convenience class that derives from both wxControl and | |
700 | wxItemContainer. It is used as basis for some wxWidgets controls | |
701 | (wxChoice and wxListBox). | |
702 | ||
703 | @library{wxcore} | |
704 | @category{ctrl} | |
705 | ||
706 | @see wxItemContainer, wxItemContainerImmutable | |
707 | */ | |
708 | class wxControlWithItems : public wxControl, public wxItemContainer | |
709 | { | |
23324ae1 | 710 | }; |
e54c96f1 | 711 |