]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/propgrid/propgridiface.h
automated ifacecheck fixes
[wxWidgets.git] / interface / wx / propgrid / propgridiface.h
CommitLineData
1c4293cb
VZ
1/////////////////////////////////////////////////////////////////////////////
2// Name: property.h
3// Purpose: interface of wxPGProperty
4// Author: wxWidgets team
de003797 5// RCS-ID: $Id$
1c4293cb
VZ
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9// -----------------------------------------------------------------------
10
effb029c
JS
11/**
12 @class wxPropertyGridInterface
1c4293cb
VZ
13
14 Most of the shared property manipulation interface shared by wxPropertyGrid,
15 wxPropertyGridPage, and wxPropertyGridManager is defined in this class.
16
17 @remarks
effb029c
JS
18 - In separate wxPropertyGrid component this class was known as
19 wxPropertyContainerMethods.
1c4293cb 20
bba3f9b5
JS
21 - wxPropertyGridInterface's property operation member functions all accept
22 a special wxPGPropArg id argument, using which you can refer to properties
23 either by their pointer (for performance) or by their name (for conveniency).
24
1c4293cb
VZ
25 @library{wxpropgrid}
26 @category{propgrid}
27*/
28class WXDLLIMPEXP_PROPGRID wxPropertyGridInterface
29{
30public:
31
32 /** Destructor */
33 virtual ~wxPropertyGridInterface() { }
34
effb029c
JS
35 /**
36 Appends property to the list. wxPropertyGrid assumes ownership of the
37 object. Becomes child of most recently added category.
38
1c4293cb
VZ
39 @remarks
40 - wxPropertyGrid takes the ownership of the property pointer.
effb029c
JS
41 - If appending a category with name identical to a category already in
42 the wxPropertyGrid, then newly created category is deleted, and most
43 recently added category (under which properties are appended) is set
44 to the one with same name. This allows easier adding of items to same
45 categories in multiple passes.
46 - Does not automatically redraw the control, so you may need to call
47 Refresh() when calling this function after control has been shown for
48 the first time.
1c4293cb
VZ
49 */
50 wxPGProperty* Append( wxPGProperty* property );
51
effb029c
JS
52 /**
53 Same as Append(), but appends under given parent property.
54
55 @param id
56 Name or pointer to parent property.
57
58 @param newProperty
59 Property to be added.
60 */
61 wxPGProperty* AppendIn( wxPGPropArg id, wxPGProperty* newProperty );
62
63 /**
64 In order to add new items into a property with private children (for
0ad10f30
FM
65 instance, wxFlagsProperty), you need to call this method.
66 After populating has been finished, you need to call EndAddChildren().
1c4293cb 67
effb029c 68 @see EndAddChildren()
1c4293cb
VZ
69 */
70 void BeginAddChildren( wxPGPropArg id );
71
effb029c
JS
72 /**
73 Deletes all properties.
1c4293cb
VZ
74 */
75 virtual void Clear() = 0;
76
effb029c
JS
77 /**
78 Deselect current selection, if any.
79
80 @return Returns @true if success (ie. validator did not intercept).
81 */
1c4293cb
VZ
82 bool ClearSelection();
83
effb029c
JS
84 /**
85 Resets modified status of all properties.
1c4293cb 86 */
effb029c
JS
87 void ClearModifiedStatus();
88
89 /**
90 Collapses given category or property with children.
1c4293cb 91
effb029c 92 @return Returns @true if actually collapsed.
1c4293cb
VZ
93 */
94 bool Collapse( wxPGPropArg id );
95
effb029c
JS
96 /**
97 Collapses all items that can be collapsed.
1c4293cb 98
effb029c
JS
99 @return Returns @false if failed (may fail if value in active
100 editor cannot be validated).
1c4293cb 101 */
effb029c 102 bool CollapseAll();
1c4293cb 103
effb029c
JS
104 /**
105 Changes value of a property, as if by user. Use this instead of
106 SetPropertyValue() if you need the value to run through validation
107 process, and also send the property change event.
1c4293cb 108
effb029c 109 @return Returns @true if value was successfully changed.
1c4293cb
VZ
110 */
111 bool ChangePropertyValue( wxPGPropArg id, wxVariant newValue );
112
effb029c
JS
113 /**
114 Deletes a property.
115 */
1c4293cb
VZ
116 void DeleteProperty( wxPGPropArg id );
117
effb029c
JS
118 /**
119 Disables a property.
120 */
121 bool DisableProperty( wxPGPropArg id );
1c4293cb 122
effb029c 123 /**
0ad10f30
FM
124 Returns @true if all property grid data changes have been committed. Usually
125 only returns @false if value in active editor has been invalidated by a
1c4293cb
VZ
126 wxValidator.
127 */
128 bool EditorValidate();
129
effb029c
JS
130 /**
131 Enables or disables property.
132
133 @param id
134 Name or pointer to a property.
effb029c
JS
135 @param enable
136 If @false, property is disabled instead.
137 */
1c4293cb
VZ
138 bool EnableProperty( wxPGPropArg id, bool enable = true );
139
effb029c
JS
140 /**
141 Called after population of property with fixed children has finished.
142
143 @see BeginAddChildren()
1c4293cb
VZ
144 */
145 void EndAddChildren( wxPGPropArg id );
146
effb029c
JS
147 /**
148 Expands given category or property with children.
149
150 @return Returns @true if actually expanded.
1c4293cb
VZ
151 */
152 bool Expand( wxPGPropArg id );
153
effb029c
JS
154 /**
155 Expands all items that can be expanded.
1c4293cb
VZ
156 */
157 bool ExpandAll( bool expand = true );
158
effb029c
JS
159 /**
160 Returns id of first child of given property.
1c4293cb 161
effb029c
JS
162 @remarks Does not return private children!
163 */
164 wxPGProperty* GetFirstChild( wxPGPropArg id );
1c4293cb
VZ
165
166 //@{
0ad10f30
FM
167 /**
168 Returns iterator class instance.
bba3f9b5 169
1c4293cb 170 @param flags
bba3f9b5
JS
171 See @ref propgrid_iterator_flags. Value wxPG_ITERATE_DEFAULT causes
172 iteration over everything except private child properties.
1c4293cb 173 @param firstProp
0ad10f30 174 Property to start iteration from. If @NULL, then first child of root
effb029c 175 is used.
bba3f9b5 176
0ad10f30
FM
177 @beginWxPythonOnly
178 <b>wxPython Note:</b> Instead of ++ operator, use Next() method, and
179 instead of * operator, use GetProperty() method.
180 @endWxPythonOnly
181 */
182 wxPropertyGridIterator GetIterator( int flags = wxPG_ITERATE_DEFAULT,
183 wxPGProperty* firstProp = NULL );
184 wxPropertyGridConstIterator GetIterator( int flags = wxPG_ITERATE_DEFAULT,
185 wxPGProperty* firstProp = NULL ) const;
186 //@}
187
188 //@{
189 /**
190 Returns iterator class instance.
191
192 @param flags
193 See @ref propgrid_iterator_flags. Value wxPG_ITERATE_DEFAULT causes
194 iteration over everything except private child properties.
1c4293cb 195 @param startPos
effb029c
JS
196 Either wxTOP or wxBOTTOM. wxTOP will indicate that iterations start
197 from the first property from the top, and wxBOTTOM means that the
198 iteration will instead begin from bottommost valid item.
199
0ad10f30 200 @beginWxPythonOnly
effb029c
JS
201 <b>wxPython Note:</b> Instead of ++ operator, use Next() method, and
202 instead of * operator, use GetProperty() method.
0ad10f30 203 @endWxPythonOnly
effb029c 204 */
effb029c
JS
205 wxPropertyGridIterator GetIterator( int flags, int startPos );
206 wxPropertyGridConstIterator GetIterator( int flags, int startPos ) const;
1c4293cb
VZ
207 //@}
208
effb029c
JS
209 /**
210 Returns id of first item that matches given criteria.
211
1c4293cb 212 @param flags
effb029c 213 See @ref propgrid_iterator_flags.
1c4293cb 214 */
effb029c 215 wxPGProperty* GetFirst( int flags = wxPG_ITERATE_ALL );
1c4293cb 216
effb029c
JS
217 /**
218 Returns id of property with given name (case-sensitive).
1c4293cb 219 */
0ad10f30 220 wxPGProperty* GetProperty( const wxString& name ) const;
1c4293cb 221
effb029c 222 /**
0ad10f30
FM
223 Adds to 'targetArr' pointers to properties that have given flags 'flags' set.
224 However, if @a 'inverse' is set to @true, then only properties without
225 given flags are stored.
effb029c 226
0ad10f30
FM
227 @param targetArr
228 @todo docme
1c4293cb 229 @param flags
effb029c 230 Property flags to use.
0ad10f30
FM
231 @param inverse
232 @todo docme
1c4293cb 233 @param iterFlags
effb029c
JS
234 Iterator flags to use. Default is everything expect private children.
235 See @ref propgrid_iterator_flags.
1c4293cb
VZ
236 */
237 void GetPropertiesWithFlag( wxArrayPGProperty* targetArr,
238 wxPGProperty::FlagType flags,
239 bool inverse = false,
240 int iterFlags = (wxPG_ITERATE_PROPERTIES|wxPG_ITERATE_HIDDEN|wxPG_ITERATE_CATEGORIES) ) const;
241
effb029c
JS
242 /**
243 Returns value of given attribute. If none found, returns wxNullVariant.
1c4293cb 244 */
effb029c 245 wxVariant GetPropertyAttribute( wxPGPropArg id, const wxString& attrName ) const;
1c4293cb 246
effb029c
JS
247 /**
248 Returns pointer of property's nearest parent category. If no category
0ad10f30 249 found, returns @NULL.
1c4293cb 250 */
effb029c 251 wxPropertyCategory* GetPropertyCategory( wxPGPropArg id ) const;
1c4293cb
VZ
252
253 /** Returns client data (void*) of a property. */
effb029c 254 void* GetPropertyClientData( wxPGPropArg id ) const;
1c4293cb 255
effb029c 256 /**
0ad10f30 257 Returns first property which label matches given string. @NULL if none
effb029c
JS
258 found. Note that this operation is very slow when compared to
259 GetPropertyByName().
1c4293cb
VZ
260 */
261 wxPGProperty* GetPropertyByLabel( const wxString& label ) const;
262
effb029c 263 /**
0ad10f30 264 Returns property with given name. @NULL if none found.
1c4293cb
VZ
265 */
266 wxPGProperty* GetPropertyByName( const wxString& name ) const;
267
effb029c
JS
268 /**
269 Returns child property 'subname' of property 'name'. Same as
1c4293cb
VZ
270 calling GetPropertyByName("name.subname"), albeit slightly faster.
271 */
effb029c
JS
272 wxPGProperty* GetPropertyByName( const wxString& name,
273 const wxString& subname ) const;
1c4293cb 274
effb029c
JS
275 /**
276 Returns property's editor.
277 */
278 const wxPGEditor* GetPropertyEditor( wxPGPropArg id ) const;
1c4293cb 279
effb029c
JS
280 /**
281 Returns help string associated with a property.
282 */
283 wxString GetPropertyHelpString( wxPGPropArg id ) const;
1c4293cb 284
effb029c 285 /**
0ad10f30 286 Returns property's custom value image (@NULL of none).
effb029c
JS
287 */
288 wxBitmap* GetPropertyImage( wxPGPropArg id ) const;
1c4293cb
VZ
289
290 /** Returns label of a property. */
effb029c 291 const wxString& GetPropertyLabel( wxPGPropArg id );
1c4293cb 292
effb029c
JS
293 /** Returns property's name, by which it is globally accessible. */
294 wxString GetPropertyName( wxPGProperty* property );
1c4293cb 295
effb029c
JS
296 /**
297 Returns validator of a property as a reference, which you
1c4293cb
VZ
298 can pass to any number of SetPropertyValidator.
299 */
effb029c 300 wxValidator* GetPropertyValidator( wxPGPropArg id );
1c4293cb 301
effb029c
JS
302 /**
303 Returns property's value as wxVariant.
1c4293cb
VZ
304
305 If property value is unspecified, Null variant is returned.
306 */
effb029c 307 wxVariant GetPropertyValue( wxPGPropArg id );
1c4293cb 308
effb029c
JS
309 /** Return's property's value as wxArrayInt. */
310 wxArrayInt GetPropertyValueAsArrayInt( wxPGPropArg id ) const;
311
312 /** Returns property's value as wxArrayString. */
313 wxArrayString GetPropertyValueAsArrayString( wxPGPropArg id ) const;
314
315 /** Returns property's value as bool */
1c4293cb 316 bool GetPropertyValueAsBool( wxPGPropArg id ) const;
1c4293cb 317
effb029c
JS
318 /** Return's property's value as wxDateTime. */
319 wxDateTime GetPropertyValueAsDateTime( wxPGPropArg id ) const;
1c4293cb 320
effb029c
JS
321 /** Returns property's value as double-precision floating point number. */
322 double GetPropertyValueAsDouble( wxPGPropArg id ) const;
1c4293cb 323
effb029c
JS
324 /** Returns property's value as integer */
325 int GetPropertyValueAsInt( wxPGPropArg id ) const;
1c4293cb 326
effb029c
JS
327 /** Returns property's value as integer */
328 long GetPropertyValueAsLong( wxPGPropArg id ) const;
1c4293cb 329
effb029c
JS
330 /** Returns property's value as native signed 64-bit integer. */
331 wxLongLong_t GetPropertyValueAsLongLong( wxPGPropArg id ) const;
1c4293cb 332
effb029c
JS
333 /**
334 Returns property's value as wxString. If property does not
335 use string value type, then its value is converted using
336 wxPGProperty::GetValueAsString().
337 */
338 wxString GetPropertyValueAsString( wxPGPropArg id ) const;
1c4293cb 339
effb029c
JS
340 /** Returns property's value as unsigned integer */
341 unsigned long GetPropertyValueAsULong( wxPGPropArg id ) const;
1c4293cb 342
effb029c
JS
343 /** Returns property's value as native unsigned 64-bit integer. */
344 wxULongLong_t GetPropertyValueAsULongLong( wxPGPropArg id ) const;
345
346 /**
347 Returns a wxVariant list containing wxVariant versions of all
1c4293cb 348 property values. Order is not guaranteed.
effb029c 349
0ad10f30
FM
350 @param listname
351 @todo docme
352 @param baseparent
353 @todo docme
1c4293cb 354 @param flags
effb029c
JS
355 Use wxPG_KEEP_STRUCTURE to retain category structure; each sub
356 category will be its own wxVariantList of wxVariant.
357
358 Use wxPG_INC_ATTRIBUTES to include property attributes as well.
359 Each attribute will be stored as list variant named
360 "@@<propname>@@attr."
1c4293cb
VZ
361 */
362 wxVariant GetPropertyValues( const wxString& listname = wxEmptyString,
0ad10f30 363 wxPGProperty* baseparent = NULL, long flags = 0 ) const;
1c4293cb
VZ
364
365 /** Returns currently selected property. */
effb029c 366 wxPGProperty* GetSelection() const;
1c4293cb 367
effb029c
JS
368 /**
369 Similar to GetIterator(), but instead returns wxPGVIterator instance,
1c4293cb
VZ
370 which can be useful for forward-iterating through arbitrary property
371 containers.
372
373 @param flags
bba3f9b5
JS
374 See @ref propgrid_iterator_flags.
375
effb029c
JS
376 <b>wxPython Note:</b> Instead of ++ operator, use Next() method, and
377 instead of * operator, use GetProperty() method.
1c4293cb
VZ
378 */
379 virtual wxPGVIterator GetVIterator( int flags ) const;
380
effb029c
JS
381 /**
382 Hides or reveals a property.
383
0ad10f30
FM
384 @param id
385 @todo docme
1c4293cb 386 @param hide
effb029c 387 If @true, hides property, otherwise reveals it.
1c4293cb 388 @param flags
effb029c
JS
389 By default changes are applied recursively. Set this parameter
390 wxPG_DONT_RECURSE to prevent this.
1c4293cb
VZ
391 */
392 bool HideProperty( wxPGPropArg id, bool hide = true, int flags = wxPG_RECURSE );
393
effb029c
JS
394 /**
395 Initializes *all* property types. Causes references to most object
1c4293cb
VZ
396 files in the library, so calling this may cause significant increase
397 in executable size when linking with static library.
398 */
399 static void InitAllTypeHandlers();
400
0ad10f30
FM
401 /**
402 Inserts property to the property container.
1c4293cb
VZ
403
404 @param priorThis
effb029c
JS
405 New property is inserted just prior to this. Available only
406 in the first variant. There are two versions of this function
407 to allow this parameter to be either an id or name to
408 a property.
effb029c
JS
409 @param newProperty
410 Pointer to the inserted property. wxPropertyGrid will take
411 ownership of this object.
1c4293cb 412
effb029c 413 @return Returns newProperty.
1c4293cb
VZ
414
415 @remarks
416
417 - wxPropertyGrid takes the ownership of the property pointer.
418
419 - While Append may be faster way to add items, make note that when
420 both types of data storage (categoric and
421 non-categoric) are active, Insert becomes even more slow. This is
422 especially true if current mode is non-categoric.
423
424 Example of use:
425
426 @code
427
428 // append category
429 wxPGProperty* my_cat_id = propertygrid->Append( new wxPropertyCategory("My Category") );
430
431 ...
432
433 // insert into category - using second variant
434 wxPGProperty* my_item_id_1 = propertygrid->Insert( my_cat_id, 0, new wxStringProperty("My String 1") );
435
436 // insert before to first item - using first variant
437 wxPGProperty* my_item_id_2 = propertygrid->Insert( my_item_id, new wxStringProperty("My String 2") );
438
439 @endcode
1c4293cb 440 */
effb029c 441 wxPGProperty* Insert( wxPGPropArg priorThis, wxPGProperty* newProperty );
0ad10f30
FM
442
443 /**
444 Inserts property to the property container.
445 See the other overload for more details.
446
447 @param parent
448 New property is inserted under this category. Available only
449 in the second variant. There are two versions of this function
450 to allow this parameter to be either an id or name to
451 a property.
452 @param index
453 Index under category. Available only in the second variant.
454 If index is < 0, property is appended in category.
455 @param newProperty
456 Pointer to the inserted property. wxPropertyGrid will take
457 ownership of this object.
458
459 @return Returns newProperty.
460 */
effb029c 461 wxPGProperty* Insert( wxPGPropArg parent, int index, wxPGProperty* newProperty );
1c4293cb 462
effb029c
JS
463 /** Returns @true if property is a category. */
464 bool IsPropertyCategory( wxPGPropArg id ) const;
1c4293cb 465
effb029c
JS
466 /** Returns @true if property is enabled. */
467 bool IsPropertyEnabled( wxPGPropArg id ) const;
1c4293cb 468
effb029c 469 /**
0ad10f30 470 Returns @true if given property is expanded. Naturally, always returns
effb029c 471 @false for properties that cannot be expanded.
1c4293cb
VZ
472 */
473 bool IsPropertyExpanded( wxPGPropArg id ) const;
474
effb029c
JS
475 /**
476 Returns @true if property has been modified after value set or modify
477 flag clear by software.
1c4293cb 478 */
effb029c 479 bool IsPropertyModified( wxPGPropArg id ) const;
1c4293cb 480
effb029c 481 /**
0ad10f30 482 Returns @true if property is shown (ie. HideProperty() with @true not
effb029c 483 called for it).
1c4293cb 484 */
effb029c 485 bool IsPropertyShown( wxPGPropArg id ) const;
1c4293cb 486
effb029c 487 /**
0ad10f30 488 Returns @true if property value is set to unspecified.
1c4293cb 489 */
effb029c 490 bool IsPropertyValueUnspecified( wxPGPropArg id ) const;
1c4293cb 491
effb029c
JS
492 /**
493 Disables (limit = @true) or enables (limit = @false) wxTextCtrl editor
494 of a property, if it is not the sole mean to edit the value.
1c4293cb 495 */
effb029c 496 void LimitPropertyEditing( wxPGPropArg id, bool limit = true );
1c4293cb 497
effb029c
JS
498 /**
499 Initializes additional property editors (SpinCtrl etc.). Causes
500 references to most object files in the library, so calling this may
501 cause significant increase in executable size when linking with static
502 library.
1c4293cb
VZ
503 */
504 static void RegisterAdditionalEditors();
505
effb029c
JS
506 /**
507 Replaces property with id with newly created one. For example,
1c4293cb
VZ
508 this code replaces existing property named "Flags" with one that
509 will have different set of items:
effb029c 510
1c4293cb
VZ
511 @code
512 pg->ReplaceProperty("Flags",
513 wxFlagsProperty("Flags", wxPG_LABEL, newItems))
514 @endcode
effb029c
JS
515
516 @see Insert()
1c4293cb
VZ
517 */
518 wxPGProperty* ReplaceProperty( wxPGPropArg id, wxPGProperty* property );
519
effb029c
JS
520 /**
521 @anchor propgridinterface_editablestate_flags
1c4293cb
VZ
522
523 Flags for wxPropertyGridInterface::SaveEditableState() and
524 wxPropertyGridInterface::RestoreEditableState().
525 */
526 enum EditableStateFlags
527 {
528 /** Include selected property. */
529 SelectionState = 0x01,
530 /** Include expanded/collapsed property information. */
531 ExpandedState = 0x02,
532 /** Include scrolled position. */
533 ScrollPosState = 0x04,
effb029c
JS
534 /** Include selected page information. Only applies to
535 wxPropertyGridManager. */
1c4293cb
VZ
536 PageState = 0x08,
537 /** Include splitter position. Stored for each page. */
538 SplitterPosState = 0x10,
62805170
JS
539 /** Include description box size.
540 Only applies to wxPropertyGridManager. */
541 DescBoxState = 0x20,
542
543 /**
544 Include all supported user editable state information.
545 This is usually the default value. */
546 AllStates = SelectionState |
547 ExpandedState |
548 ScrollPosState |
549 PageState |
550 SplitterPosState |
551 DescBoxState
1c4293cb
VZ
552 };
553
effb029c
JS
554 /**
555 Restores user-editable state. See also wxPropertyGridInterface::SaveEditableState().
1c4293cb
VZ
556
557 @param src
558 String generated by SaveEditableState.
559
560 @param restoreStates
561 Which parts to restore from source string. See @ref propgridinterface_editablestate_flags
562 "list of editable state flags".
563
effb029c 564 @return Returns @false if there was problem reading the string.
1c4293cb 565
effb029c
JS
566 @remarks If some parts of state (such as scrolled or splitter position)
567 fail to restore correctly, please make sure that you call this
568 function after wxPropertyGrid size has been set (this may
569 sometimes be tricky when sizers are used).
1c4293cb
VZ
570 */
571 bool RestoreEditableState( const wxString& src,
572 int restoreStates = AllStates );
573
effb029c
JS
574 /**
575 Used to acquire user-editable state (selected property, expanded
576 properties, scrolled position, splitter positions).
1c4293cb
VZ
577
578 @param includedStates
579 Which parts of state to include. See @ref propgridinterface_editablestate_flags
580 "list of editable state flags".
581 */
582 wxString SaveEditableState( int includedStates = AllStates ) const;
583
effb029c
JS
584 /**
585 Sets strings listed in the choice dropdown of a wxBoolProperty.
586
587 Defaults are "True" and "False", so changing them to, say, "Yes" and
588 "No" may be useful in some less technical applications.
1c4293cb 589 */
effb029c
JS
590 static void SetBoolChoices( const wxString& trueChoice,
591 const wxString& falseChoice );
592
effb029c
JS
593 /**
594 Sets an attribute for this property.
595
0ad10f30
FM
596 @param id
597 @todo docme
598 @param attrName
effb029c 599 Text identifier of attribute. See @ref propgrid_property_attributes.
1c4293cb 600 @param value
effb029c 601 Value of attribute.
1c4293cb 602 @param argFlags
0ad10f30
FM
603 Optional.
604 Use wxPG_RECURSE to set the attribute to child properties recursively.
1802a91d
JS
605
606 @remarks Setting attribute's value to Null variant will simply remove it
0ad10f30 607 from property's set of attributes.
1c4293cb 608 */
effb029c
JS
609 void SetPropertyAttribute( wxPGPropArg id, const wxString& attrName,
610 wxVariant value, long argFlags = 0 );
1c4293cb 611
effb029c
JS
612 /**
613 Sets property attribute for all applicapple properties.
3c26d11b
JS
614 Be sure to use this method only after all properties have been
615 added to the grid.
616 */
617 void SetPropertyAttributeAll( const wxString& attrName, wxVariant value );
618
effb029c
JS
619 /**
620 Sets text, bitmap, and colours for given column's cell.
1c4293cb
VZ
621
622 @remarks
effb029c 623 - You can set label cell by using column 0.
1c4293cb
VZ
624 - You can use wxPG_LABEL as text to use default text for column.
625 */
626 void SetPropertyCell( wxPGPropArg id,
627 int column,
628 const wxString& text = wxEmptyString,
629 const wxBitmap& bitmap = wxNullBitmap,
630 const wxColour& fgCol = wxNullColour,
effb029c
JS
631 const wxColour& bgCol = wxNullColour );
632
633 /**
634 Sets client data (void*) of a property.
1c4293cb 635
1c4293cb
VZ
636 @remarks
637 This untyped client data has to be deleted manually.
638 */
effb029c 639 void SetPropertyClientData( wxPGPropArg id, void* clientData );
1c4293cb 640
effb029c
JS
641 /**
642 Sets editor for a property.
1c4293cb 643
0ad10f30
FM
644 @param id
645 @todo docme
1c4293cb 646 @param editor
effb029c
JS
647 For builtin editors, use wxPGEditor_X, where X is builtin editor's
648 name (TextCtrl, Choice, etc. see wxPGEditor documentation for full
649 list).
1c4293cb
VZ
650
651 For custom editors, use pointer you received from wxPropertyGrid::RegisterEditorClass().
652 */
effb029c 653 void SetPropertyEditor( wxPGPropArg id, const wxPGEditor* editor );
1c4293cb 654
effb029c
JS
655 /**
656 Sets editor control of a property. As editor argument, use
1c4293cb
VZ
657 editor name string, such as "TextCtrl" or "Choice".
658 */
effb029c 659 void SetPropertyEditor( wxPGPropArg id, const wxString& editorName );
1c4293cb 660
effb029c
JS
661 /**
662 Sets label of a property.
258ccb95 663
1c4293cb 664 @remarks
258ccb95
JS
665 - Properties under same parent may have same labels. However,
666 property names must still remain unique.
1c4293cb
VZ
667 */
668 void SetPropertyLabel( wxPGPropArg id, const wxString& newproplabel );
669
020b0041
JS
670 /**
671 Sets name of a property.
672
673 @param id
674 Name or pointer of property which name to change.
675
676 @param newName
677 New name for property.
678 */
679 void SetPropertyName( wxPGPropArg id, const wxString& newName );
680
effb029c
JS
681 /**
682 Sets property (and, recursively, its children) to have read-only value.
683 In other words, user cannot change the value in the editor, but they can
684 still copy it.
685
686 @remarks This is mainly for use with textctrl editor. Only some other
687 editors fully support it.
688
689 @param id
690 Property name or pointer.
691
692 @param set
693 Use @true to enable read-only, @false to disable it.
1c4293cb 694
1c4293cb 695 @param flags
effb029c
JS
696 By default changes are applied recursively. Set this parameter
697 wxPG_DONT_RECURSE to prevent this.
1c4293cb 698 */
effb029c
JS
699 void SetPropertyReadOnly( wxPGPropArg id, bool set = true,
700 int flags = wxPG_RECURSE );
1c4293cb 701
effb029c
JS
702 /**
703 Sets property's value to unspecified. If it has children (it may be
704 category), then the same thing is done to them.
1c4293cb
VZ
705 */
706 void SetPropertyValueUnspecified( wxPGPropArg id );
707
effb029c
JS
708 /**
709 Sets various property values from a list of wxVariants. If property with
710 name is missing from the grid, new property is created under given
711 default category (or root if omitted).
1c4293cb 712 */
effb029c
JS
713 void SetPropertyValues( const wxVariantList& list,
714 wxPGPropArg defaultCategory = wxNullProperty );
1c4293cb 715
effb029c
JS
716 void SetPropertyValues( const wxVariant& list,
717 wxPGPropArg defaultCategory = wxNullProperty );
1c4293cb 718
effb029c
JS
719 /**
720 Associates the help string with property.
721
722 @remarks By default, text is shown either in the manager's "description"
723 text box or in the status bar. If extra window style
724 wxPG_EX_HELP_AS_TOOLTIPS is used, then the text will appear as
725 a tooltip.
1c4293cb 726 */
effb029c 727 void SetPropertyHelpString( wxPGPropArg id, const wxString& helpString );
1c4293cb 728
effb029c
JS
729 /**
730 Set wxBitmap in front of the value.
731
732 @remarks Bitmap will be scaled to a size returned by
733 wxPropertyGrid::GetImageSize();
1c4293cb 734 */
effb029c 735 void SetPropertyImage( wxPGPropArg id, wxBitmap& bmp );
1c4293cb 736
effb029c
JS
737 /**
738 Sets max length of property's text.
1c4293cb
VZ
739 */
740 bool SetPropertyMaxLength( wxPGPropArg id, int maxLen );
741
effb029c
JS
742 /**
743 Sets validator of a property.
1c4293cb 744 */
effb029c 745 void SetPropertyValidator( wxPGPropArg id, const wxValidator& validator );
1c4293cb 746
effb029c
JS
747 /** Sets value (integer) of a property. */
748 void SetPropertyValue( wxPGPropArg id, long value );
1c4293cb 749
effb029c
JS
750 /** Sets value (integer) of a property. */
751 void SetPropertyValue( wxPGPropArg id, int value );
1c4293cb 752
effb029c
JS
753 /** Sets value (floating point) of a property. */
754 void SetPropertyValue( wxPGPropArg id, double value );
1c4293cb 755
effb029c
JS
756 /** Sets value (bool) of a property. */
757 void SetPropertyValue( wxPGPropArg id, bool value );
1c4293cb 758
effb029c
JS
759 /** Sets value (string) of a property. */
760 void SetPropertyValue( wxPGPropArg id, const wxString& value );
1c4293cb 761
effb029c
JS
762 /** Sets value (wxArrayString) of a property. */
763 void SetPropertyValue( wxPGPropArg id, const wxArrayString& value );
1c4293cb 764
effb029c
JS
765 /** Sets value (wxDateTime) of a property. */
766 void SetPropertyValue( wxPGPropArg id, const wxDateTime& value );
1c4293cb 767
effb029c
JS
768 /** Sets value (wxObject*) of a property. */
769 void SetPropertyValue( wxPGPropArg id, wxObject* value );
1c4293cb 770
effb029c
JS
771 /** Sets value (wxObject&) of a property. */
772 void SetPropertyValue( wxPGPropArg id, wxObject& value );
773
774 /** Sets value (native 64-bit int) of a property. */
775 void SetPropertyValue( wxPGPropArg id, wxLongLong_t value );
776
777 /** Sets value (native 64-bit unsigned int) of a property. */
778 void SetPropertyValue( wxPGPropArg id, wxULongLong_t value );
779
780 /** Sets value (wxArrayInt&) of a property. */
781 void SetPropertyValue( wxPGPropArg id, const wxArrayInt& value );
782
783 /**
784 Sets value (wxString) of a property.
785
786 @remarks This method uses wxPGProperty::SetValueFromString(), which all
787 properties should implement. This means that there should not be
788 a type error, and instead the string is converted to property's
789 actual value type.
1c4293cb
VZ
790 */
791 void SetPropertyValueString( wxPGPropArg id, const wxString& value );
792
effb029c
JS
793 /**
794 Sets value (wxVariant&) of a property.
bba3f9b5 795
effb029c
JS
796 @remarks Use wxPropertyGrid::ChangePropertyValue() instead if you need to
797 run through validation process and send property change event.
1c4293cb 798 */
effb029c 799 void SetPropertyValue( wxPGPropArg id, wxVariant value );
1c4293cb 800
effb029c
JS
801 /**
802 Adjusts how wxPropertyGrid behaves when invalid value is entered
1c4293cb 803 in a property.
effb029c 804
1c4293cb 805 @param vfbFlags
effb029c 806 See @ref propgrid_vfbflags for possible values.
1c4293cb
VZ
807 */
808 void SetValidationFailureBehavior( int vfbFlags );
809
effb029c
JS
810 /**
811 Returns editor pointer of editor with given name;
812 */
1c4293cb 813 static wxPGEditor* GetEditorByName( const wxString& editorName );
1c4293cb
VZ
814};
815