*/
#define wxPG_ATTR_INLINE_HELP wxS("InlineHelp")
+/** Universal, wxArrayString. Set to enable auto-completion in any
+ wxTextCtrl-based property editor.
+*/
+#define wxPG_ATTR_AUTOCOMPLETE wxS("AutoComplete")
+
/** wxBoolProperty specific, int, default 0. When 1 sets bool property to
use checkbox instead of choice.
*/
#define wxPG_DATE_FORMAT wxS("DateFormat")
/** Sets wxDatePickerCtrl window style used with wxDateProperty. Default
- is wxDP_DEFAULT | wxDP_SHOWCENTURY.
+ is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE will enable
+ better unspecified value support in the editor.
*/
#define wxPG_DATE_PICKER_STYLE wxS("PickerStyle")
*/
#define wxPG_ATTR_SPINCTRL_WRAP wxS("Wrap")
+/** SpinCtrl editor, bool. If @true, value can also by changed by moving
+ mouse when left mouse button is being pressed.
+*/
+#define wxPG_ATTR_SPINCTRL_MOTIONSPIN wxS("MotionSpin")
+
/** wxMultiChoiceProperty, int. If 0, no user strings allowed. If 1, user strings
appear before list strings. If 2, user strings appear after list string.
*/
Simple string property. wxPG_STRING_PASSWORD attribute may be used
to echo value as asterisks and use wxTE_PASSWORD for wxTextCtrl.
+ wxPG_ATTR_AUTOCOMPLETE attribute may be used to enable auto-completion
+ (use a wxArrayString value), and is also supported by any property that
+ happens to use a wxTextCtrl-based editor.
@remarks wxStringProperty has a special trait: if it has value of
"<composed>", and also has child properties, then its displayed
string wxDateTime::Format uses (altough default is recommended as it is
locale-dependant), and wxPG_DATE_PICKER_STYLE allows changing window
style given to DatePickerCtrl (default is wxDP_DEFAULT|wxDP_SHOWCENTURY).
+ Using wxDP_ALLOWNONE will enable better unspecified value support.
@subsection wxEditEnumProperty
variant << value;
SetValue(variant);
- // If has private child properties then create them here. For example:
- // AddChild( new wxStringProperty( "Subprop 1", wxPG_LABEL, value.GetSubProp1() ) );
+ // If has private child properties then create them here.
+ // For example:
+ // AddPrivateChild( new wxStringProperty("Subprop 1",
+ // wxPG_LABEL,
+ // value.GetSubProp1()));
}
@endcode
*/
virtual wxPGEditorDialogAdapter* GetEditorDialog() const;
+ /**
+ Called whenever validation has failed with given pending value.
+
+ @remarks If you implement this in your custom property class, please
+ remember to call the baser implementation as well, since they
+ may use it to revert property into pre-change state.
+ */
+ virtual void OnValidationFailure( wxVariant& pendingValue );
+
/**
Append a new choice to property's list of choices.
int AddChoice( const wxString& label, int value = wxPG_INVALID_VALUE );
/**
- Adds a child property. If you use this instead of
- wxPropertyGridInterface::Insert() or
- wxPropertyGridInterface::AppendIn(), then you must set up
- property's parental type before making the call. To do this,
- call property's SetParentalType() function with either
- wxPG_PROP_MISC_PARENT (normal, public children) or with
- wxPG_PROP_AGGREGATE (private children for subclassed property).
- For instance:
+ Adds a private child property.
- @code
- wxPGProperty* prop = new wxStringProperty(wxS("Property"));
- prop->SetParentalType(wxPG_PROP_MISC_PARENT);
- wxPGProperty* prop2 = new wxStringProperty(wxS("Property2"));
- prop->AddChild(prop2);
- @endcode
+ @deprecated Use AddPrivateChild() instead.
+
+ @see AddPrivateChild()
+ */
+ wxDEPRECATED( void AddChild( wxPGProperty* prop ) );
+
+ /**
+ Adds a private child property. If you use this instead of
+ wxPropertyGridInterface::Insert() or
+ wxPropertyGridInterface::AppendIn(), then property's parental
+ type will automatically be set up to wxPG_PROP_AGGREGATE. In other
+ words, all properties of this property will become private.
*/
- void AddChild( wxPGProperty* property );
+ void AddPrivateChild( wxPGProperty* prop );
/**
Adapts list variant into proper value using consecutive
*/
void AdaptListToValue( wxVariant& list, wxVariant* value ) const;
+ /**
+ Use this member function to add independent (ie. regular) children to
+ a property.
+
+ @return Appended childProperty.
+
+ @remarks wxPropertyGrid is not automatically refreshed by this
+ function.
+
+ @see InsertChild(), AddPrivateChild()
+ */
+ wxPGProperty* AppendChild( wxPGProperty* childProperty );
+
/**
Determines, recursively, if all children are not unspecified.
*/
bool AreChildrenComponents() const;
+ /**
+ Deletes children of the property.
+ */
+ void DeleteChildren();
+
/**
Removes entry from property's wxPGChoices and editor control (if it is active).
*/
int Index( const wxPGProperty* p ) const;
+ /**
+ Use this member function to add independent (ie. regular) children to
+ a property.
+
+ @return Inserted childProperty.
+
+ @remarks wxPropertyGrid is not automatically refreshed by this
+ function.
+
+ @see AppendChild(), AddPrivateChild()
+ */
+ wxPGProperty* InsertChild( int index, wxPGProperty* childProperty );
+
/**
Inserts a new choice to property's list of choices.
*/
bool SetChoices( wxPGChoices& choices );
- /**
- If property has choices and they are not yet exclusive, new such copy
- of them will be created.
- */
- void SetChoicesExclusive();
-
/**
Sets client data (void*) of a property.
wxPG_PROP_AGGREGATE (for derived property classes with private
children).
- @remarks You only need to call this if you use AddChild() to add
- child properties. Adding properties with
- wxPropertyGridInterface::Insert() or
- wxPropertyGridInterface::AppendIn() will automatically set
- property to use wxPG_PROP_MISC_PARENT style.
+ @remarks You generally do not need to call this function.
*/
void SetParentalType( int flag );
Pointer to list variant that contains child values. Used to indicate
which children should be marked as modified. Usually you just use @NULL.
@param flags
- Use wxPG_SETVAL_REFRESH_EDITOR to update editor control, if it
- was selected.
+ wxPG_SETVAL_REFRESH_EDITOR is set by default, to refresh editor
+ and redraw properties.
*/
- void SetValue( wxVariant value, wxVariant* pList = NULL, int flags = 0 );
+ void SetValue( wxVariant value, wxVariant* pList = NULL,
+ int flags = wxPG_SETVAL_REFRESH_EDITOR );
/**
Set wxBitmap in front of the value. This bitmap may be ignored
@class wxPGChoices
Helper class for managing choices of wxPropertyGrid properties.
- Each entry can have label, value, bitmap, text colour, and background colour.
+ Each entry can have label, value, bitmap, text colour, and background
+ colour.
+
+ wxPGChoices uses reference counting, similar to other wxWidgets classes.
+ This means that assignment operator and copy constructor only copy the
+ reference and not the actual data. Use Copy() member function to create a
+ real copy.
+
+ @remarks If you do not specify value for entry, index is used.
@library{wxpropgrid}
@category{propgrid}
*/
wxPGChoices();
- /** Copy constructor. */
+ /**
+ Copy constructor, uses reference counting. To create a real copy,
+ use Copy() member function instead.
+ */
wxPGChoices( const wxPGChoices& a );
/** Constructor. */
wxPGChoiceEntry& AddAsSorted( const wxString& label, int value = wxPG_INVALID_VALUE );
/**
- Assigns data from another set of choices.
+ Assigns choices data, using reference counting. To create a real copy,
+ use Copy() member function instead.
*/
void Assign( const wxPGChoices& a );
*/
void Clear();
+ /**
+ Returns a real copy of the choices.
+ */
+ wxPGChoices Copy() const;
+
/**
Returns labe of item.
*/
/**
Creates exclusive copy of current choices.
*/
- void SetExclusive();
+ void AllocExclusive();
/**
Returns array of choice labels.