Version: 3.3.0
wxEnumProperty Class Reference

#include <wx/propgrid/props.h>

+ Inheritance diagram for wxEnumProperty:

Detailed Description

You can derive custom properties with choices from this class.

See wxBaseEnumProperty for remarks.

Remarks
  • Updating private index is important. You can do this either by calling SetIndex() in IntToValue, and then letting wxBaseEnumProperty::OnSetValue be called (by not implementing it, or by calling super class function in it) -OR- you can just call SetIndex in OnSetValue.

Public Member Functions

 wxEnumProperty (const wxString &label=wxPG_LABEL, const wxString &name=wxPG_LABEL, const wxChar *const *labels=nullptr, const long *values=nullptr, int value=0)
 
 wxEnumProperty (const wxString &label, const wxString &name, wxPGChoices &choices, int value=0)
 
 wxEnumProperty (const wxString &label, const wxString &name, const wxChar *const *labels, const long *values, wxPGChoices *choicesCache, int value=0)
 
 wxEnumProperty (const wxString &label, const wxString &name, const wxArrayString &labels, const wxArrayInt &values=wxArrayInt(), int value=0)
 
virtual ~wxEnumProperty ()
 
size_t GetItemCount () const
 
virtual void OnSetValue ()
 This virtual function is called after m_value has been set. More...
 
virtual wxString ValueToString (wxVariant &value, wxPGPropValFormatFlags flags=wxPGPropValFormatFlags::Null) const
 Converts property value into a text representation. More...
 
virtual bool StringToValue (wxVariant &variant, const wxString &text, wxPGPropValFormatFlags flags=wxPGPropValFormatFlags::Null) const
 Converts text into wxVariant value appropriate for this property. More...
 
virtual bool ValidateValue (wxVariant &value, wxPGValidationInfo &validationInfo) const
 Implement this function in derived class to check the value. More...
 
virtual bool IntToValue (wxVariant &variant, int number, wxPGPropValFormatFlags flags=wxPGPropValFormatFlags::Null) const
 If wxPGPropValFormatFlags::FullValue is not set in flags, then the value is interpreted as index to choices list. More...
 
virtual int GetIndexForValue (int value) const
 
virtual int GetChoiceSelection () const
 Returns which choice is currently selected. More...
 
- Public Member Functions inherited from wxPGProperty
virtual ~wxPGProperty ()
 Virtual destructor. More...
 
virtual wxVariant DoGetValue () const
 Override this to return something else than m_value as the value. More...
 
bool SetValueFromString (const wxString &text, wxPGPropValFormatFlags flags=wxPGPropValFormatFlags::ProgrammaticValue)
 Converts string to a value, and if successful, calls SetValue() on it. More...
 
bool SetValueFromInt (long value, wxPGPropValFormatFlags flags=wxPGPropValFormatFlags::Null)
 Converts integer to a value, and if successful, calls SetValue() on it. More...
 
virtual wxSize OnMeasureImage (int item=-1) const
 Returns size of the custom painted image in front of property. More...
 
virtual bool OnEvent (wxPropertyGrid *propgrid, wxWindow *wnd_primary, wxEvent &event)
 Events received by editor widgets are processed here. More...
 
virtual wxVariant ChildChanged (wxVariant &thisValue, int childIndex, wxVariant &childValue) const
 Called after value of a child property has been altered. More...
 
virtual const wxPGEditorDoGetEditorClass () const
 Returns pointer to an instance of used editor. More...
 
virtual wxValidatorDoGetValidator () const
 Returns pointer to the wxValidator that should be used with the editor of this property (nullptr for no validator). More...
 
virtual void OnCustomPaint (wxDC &dc, const wxRect &rect, wxPGPaintData &paintdata)
 Override to paint an image in front of the property value text or drop-down list item (but only if wxPGProperty::OnMeasureImage is overridden as well). More...
 
virtual wxPGCellRendererGetCellRenderer (int column) const
 Returns used wxPGCellRenderer instance for given property column (label=0, value=1). More...
 
virtual void RefreshChildren ()
 Refresh values of child properties. More...
 
virtual bool DoSetAttribute (const wxString &name, wxVariant &value)
 Reimplement this member function to add special handling for attributes of this property. More...
 
virtual wxVariant DoGetAttribute (const wxString &name) const
 Returns value of an attribute. More...
 
virtual wxPGEditorDialogAdapterGetEditorDialog () const
 Returns instance of a new wxPGEditorDialogAdapter instance, which is used when user presses the (optional) button next to the editor control;. More...
 
virtual void OnValidationFailure (wxVariant &pendingValue)
 Called whenever validation has failed with given pending value. More...
 
int AddChoice (const wxString &label, int value=wxPG_INVALID_VALUE)
 Append a new choice to property's list of choices. More...
 
void AddChild (wxPGProperty *prop)
 Adds a private child property. More...
 
void AddPrivateChild (wxPGProperty *prop)
 Adds a private child property. More...
 
void AdaptListToValue (wxVariant &list, wxVariant *value) const
 Adapts list variant into proper value using consecutive ChildChanged() calls. More...
 
wxPGPropertyAppendChild (wxPGProperty *childProperty)
 Use this member function to add independent (i.e. More...
 
bool AreAllChildrenSpecified (const wxVariant *pendingList=nullptr) const
 Determines, recursively, if all children are not unspecified. More...
 
bool AreChildrenComponents () const
 Returns true if children of this property are component values (for instance, points size, face name, and is_underlined are component values of a font). More...
 
void ChangeFlag (wxPGPropertyFlags flag, bool set)
 Sets or clears given property flag. More...
 
void DeleteChildren ()
 Deletes children of the property. More...
 
void DeleteChoice (int index)
 Removes entry from property's wxPGChoices and editor control (if it is active). More...
 
void Enable (bool enable=true)
 Enables or disables the property. More...
 
void EnableCommonValue (bool enable=true)
 Call to enable or disable usage of common value (integer value that can be selected for properties instead of their normal values) for this property. More...
 
wxString GenerateComposedValue () const
 Composes text from values of child properties. More...
 
const wxStringGetLabel () const
 Returns property's label. More...
 
wxVariant GetAttribute (const wxString &name) const
 Returns property attribute value, null variant if not found. More...
 
wxString GetAttribute (const wxString &name, const wxString &defVal) const
 Returns named attribute, as string, if found. More...
 
long GetAttributeAsLong (const wxString &name, long defVal) const
 Returns named attribute, as long, if found. More...
 
double GetAttributeAsDouble (const wxString &name, double defVal) const
 Returns named attribute, as double, if found. More...
 
const wxPGAttributeStorageGetAttributes () const
 Returns map-like storage of property's attributes. More...
 
wxVariant GetAttributesAsList () const
 Returns attributes as list wxVariant. More...
 
const wxPGEditorGetColumnEditor (int column) const
 Returns editor used for given column. More...
 
const wxStringGetBaseName () const
 Returns property's base name (i.e. More...
 
const wxPGCellGetCell (unsigned int column) const
 Returns wxPGCell of given column. More...
 
wxPGCellGetCell (unsigned int column)
 Returns wxPGCell of given column, creating one if necessary. More...
 
wxPGCellGetOrCreateCell (unsigned int column)
 Returns wxPGCell of given column, creating one if necessary. More...
 
unsigned int GetChildCount () const
 Returns number of child properties. More...
 
bool HasAnyChild () const
 Checks if there is any child property. More...
 
int GetChildrenHeight (int lh, int iMax=-1) const
 Returns height of children, recursively, and by taking expanded/collapsed status into account. More...
 
const wxPGChoicesGetChoices () const
 Returns read-only reference to property's list of choices. More...
 
void * GetClientData () const
 Returns client data (void*) of a property. More...
 
wxClientDataGetClientObject () const
 Gets managed client object of a property. More...
 
wxVariant GetDefaultValue () const
 Returns property's default value. More...
 
int GetCommonValue () const
 Returns common value selected for this property. More...
 
unsigned int GetDepth () const
 
int GetDisplayedCommonValueCount () const
 Return number of displayed common values for this property. More...
 
wxString GetDisplayedString () const
 Returns property's displayed text. More...
 
const wxPGEditorGetEditorClass () const
 Returns wxPGEditor that will be used and created when property becomes selected. More...
 
wxString GetHintText () const
 Returns property's hint text (shown in empty value cell). More...
 
wxPropertyGridGetGrid () const
 Returns property grid where property lies. More...
 
wxPropertyGridGetGridIfDisplayed () const
 Returns owner wxPropertyGrid, but only if one is currently on a page displaying this property. More...
 
const wxStringGetHelpString () const
 Returns property's help or description text. More...
 
wxString GetFlagsAsString (wxPGPropertyFlags flagsMask) const
 Gets flags as a'|' delimited string. More...
 
unsigned int GetIndexInParent () const
 Returns position in parent's array. More...
 
const wxPGPropertyGetLastVisibleSubItem () const
 Returns last visible child property, recursively. More...
 
wxPGPropertyGetMainParent () const
 Returns highest level non-category, non-root parent. More...
 
int GetMaxLength () const
 Returns maximum allowed length of the text the user can enter in the property text editor. More...
 
wxString GetName () const
 Returns property's name with all (non-category, non-root) parents. More...
 
wxPGPropertyGetParent () const
 Return parent of property. More...
 
wxPGPropertyGetPropertyByName (const wxString &name) const
 Returns (direct) child property with given name (or nullptr if not found). More...
 
wxValidatorGetValidator () const
 Gets assignable version of property's validator. More...
 
wxVariant GetValue () const
 Returns property's value. More...
 
wxBitmapGetValueImage () const
 Returns bitmap that appears next to value text. More...
 
virtual wxString GetValueAsString (wxPGPropValFormatFlags flags=wxPGPropValFormatFlags::Null) const
 Returns text representation of property's value. More...
 
wxString GetValueType () const
 Returns value type used by this property. More...
 
int GetY () const
 Returns coordinate to the top y of the property. More...
 
int GetImageOffset (int imageWidth) const
 Converts image width into full image offset, with margins. More...
 
wxPGPropertyGetItemAtY (unsigned int y) const
 Returns property at given virtual y coordinate. More...
 
bool HasFlag (wxPGPropertyFlags flag) const
 Returns true if property has given flag set. More...
 
bool HasFlagsExact (wxPGPropertyFlags flags) const
 Returns true if property has all given flags set. More...
 
bool HasVisibleChildren () const
 Returns true if property has even one visible child. More...
 
bool Hide (bool hide, wxPGPropertyValuesFlags flags=wxPGPropertyValuesFlags::Recurse)
 Hides or reveals the property. More...
 
int Index (const wxPGProperty *p) const
 Returns index of given child property. More...
 
wxPGPropertyInsertChild (int index, wxPGProperty *childProperty)
 Use this member function to add independent (i.e. More...
 
int InsertChoice (const wxString &label, int index, int value=wxPG_INVALID_VALUE)
 Inserts a new choice to property's list of choices. More...
 
bool IsCategory () const
 Returns true if this property is actually a wxPropertyCategory. More...
 
bool IsEnabled () const
 Returns true if property is enabled. More...
 
bool IsExpanded () const
 Returns true if property has visible children. More...
 
bool IsRoot () const
 Returns true if this property is actually a wxRootProperty. More...
 
bool IsSubProperty () const
 Returns true if this is a sub-property. More...
 
bool IsSomeParent (wxPGProperty *candidateParent) const
 Returns true if candidateParent is some parent of this property. More...
 
bool IsTextEditable () const
 Returns true if property has editable wxTextCtrl when selected. More...
 
bool IsValueUnspecified () const
 Returns true if property's value is considered unspecified. More...
 
bool IsVisible () const
 Returns true if all parents expanded. More...
 
wxPGPropertyItem (unsigned int i) const
 Returns child property at index i. More...
 
wxPGPropertyLast () const
 Returns last sub-property. More...
 
bool RecreateEditor ()
 If property's editor is created this forces its recreation. More...
 
void RefreshEditor ()
 If property's editor is active, then update it's value. More...
 
void SetAttribute (const wxString &name, wxVariant value)
 Sets an attribute for this property. More...
 
void SetAttributes (const wxPGAttributeStorage &attributes)
 
void SetAutoUnspecified (bool enable=true)
 Set if user can change the property's value to unspecified by modifying the value of the editor control (usually by clearing it). More...
 
void SetBackgroundColour (const wxColour &colour, wxPGPropertyValuesFlags flags=wxPGPropertyValuesFlags::Recurse)
 Sets property's background colour. More...
 
void SetEditor (const wxPGEditor *editor)
 Sets editor for a property. More...
 
void SetEditor (const wxString &editorName)
 Sets editor for a property, by editor name. More...
 
void SetCell (int column, const wxPGCell &cell)
 Sets cell information for given column. More...
 
void SetCommonValue (int commonValue)
 Sets common value selected for this property. More...
 
bool SetChoices (wxPGChoices &choices)
 Sets new set of choices for the property. More...
 
void SetClientData (void *clientData)
 Sets client data (void*) of a property. More...
 
void SetClientObject (wxClientData *clientObject)
 Sets client object of a property. More...
 
void SetChoiceSelection (int newValue)
 Sets selected choice and changes property value. More...
 
void SetDefaultValue (wxVariant &value)
 Set default value of a property. More...
 
void SetExpanded (bool expanded)
 
void SetFlagsFromString (const wxString &str)
 Sets flags from a '|' delimited string. More...
 
void SetFlagRecursively (wxPGPropertyFlags flag, bool set)
 Sets or clears given property flag, recursively. More...
 
void SetHelpString (const wxString &helpString)
 Sets property's help string, which is shown, for example, in wxPropertyGridManager's description text box. More...
 
void SetLabel (const wxString &label)
 Sets property's label. More...
 
bool SetMaxLength (int maxLen)
 Set maximum length of the text the user can enter in the text editor associated with property. More...
 
void SetModifiedStatus (bool modified)
 Sets property's "is it modified?" flag. More...
 
void SetName (const wxString &newName)
 Sets new (base) name for property. More...
 
void SetParentalType (wxPGPropertyFlags flag)
 Changes what sort of parent this property is for its children. More...
 
void SetTextColour (const wxColour &colour, wxPGPropertyValuesFlags flags=wxPGPropertyValuesFlags::Recurse)
 Sets property's text colour. More...
 
void SetDefaultColours (wxPGPropertyValuesFlags flags=wxPGPropertyValuesFlags::Recurse)
 Sets property's default text and background colours. More...
 
void SetValidator (const wxValidator &validator)
 Sets wxValidator for a property. More...
 
void SetValue (wxVariant value, wxVariant *pList=nullptr, wxPGSetValueFlags flags=wxPGSetValueFlags::RefreshEditor)
 Call this to set value of the property. More...
 
void SetValueImage (wxBitmapBundle &bmp)
 Set wxBitmap taken from wxBitmapBundle in front of the value. More...
 
void SetValueInEvent (const wxVariant &value) const
 Call this function in OnEvent(), OnButtonClick() etc. More...
 
void SetValueToUnspecified ()
 Sets property's value to unspecified (i.e. More...
 
void SetWasModified (bool set=true)
 Call with false in OnSetValue() to cancel value changes after all (i.e. More...
 
wxPGPropertyUpdateParentValues ()
 Updates composed values of parent non-category properties, recursively. More...
 
bool UsesAutoUnspecified () const
 Returns true if containing grid uses wxPG_EX_AUTO_UNSPECIFIED_VALUES. More...
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to nullptr the internal reference data. More...
 
 wxObject (const wxObject &other)
 Copy ctor. More...
 
virtual ~wxObject ()
 Destructor. More...
 
virtual wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
 
wxObjectRefDataGetRefData () const
 Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More...
 
bool IsKindOf (const wxClassInfo *info) const
 Determines whether this class is a subclass of (or the same class as) the given class. More...
 
bool IsSameAs (const wxObject &obj) const
 Returns true if this object has the same data pointer as obj. More...
 
void Ref (const wxObject &clone)
 Makes this object refer to the data in clone. More...
 
void SetRefData (wxObjectRefData *data)
 Sets the wxObject::m_refData pointer. More...
 
void UnRef ()
 Decrements the reference count in the associated data, and if it is zero, deletes the data. More...
 
void UnShare ()
 This is the same of AllocExclusive() but this method is public. More...
 
void operator delete (void *buf)
 The delete operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 
void * operator new (size_t size, const wxString &filename=nullptr, int lineNum=0)
 The new operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 

Protected Member Functions

int GetIndex () const
 
void SetIndex (int index)
 
bool ValueFromString_ (wxVariant &value, int *pIndex, const wxString &text, wxPGPropValFormatFlags flags) const
 
bool ValueFromInt_ (wxVariant &value, int *pIndex, int intVal, wxPGPropValFormatFlags flags) const
 
- Protected Member Functions inherited from wxPGProperty
 wxPGProperty ()
 Default constructor. More...
 
 wxPGProperty (const wxString &label, const wxString &name)
 Constructor. More...
 
void AdaptiveSetCell (unsigned int firstCol, unsigned int lastCol, const wxPGCell &preparedCell, const wxPGCell &srcData, wxPGCellData *unmodCellData, wxPGPropertyFlags ignoreWithFlags, bool recursively)
 Sets property cell in fashion that reduces number of exclusive copies of cell data. More...
 
void ClearCells (wxPGPropertyFlags ignoreWithFlags, bool recursively)
 Clear cells associated with property. More...
 
void EnsureCells (unsigned int column)
 Makes sure m_cells has size of column+1 (or more). More...
 
wxPGPropertyGetPropertyByNameWH (const wxString &name, unsigned int hintIndex) const
 Returns (direct) child property with given name (or nullptr if not found), with hint index. More...
 
void DoAddChild (wxPGProperty *prop, int index=-1, bool correct_mode=true)
 This is used by Insert etc. More...
 
void Empty ()
 Deletes all child properties. More...
 
bool IsChildSelected (bool recursive=false) const
 Returns true if child property is selected. More...
 
- Protected Member Functions inherited from wxObject
void AllocExclusive ()
 Ensure that this object's data is not shared with any other object. More...
 
virtual wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (const wxObjectRefData *data) const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More...
 

Additional Inherited Members

- Public Attributes inherited from wxPGProperty
void * m_clientData
 This member is public so scripting language bindings wrapper code can access it freely. More...
 
- Protected Attributes inherited from wxObject
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data. More...
 

Constructor & Destructor Documentation

◆ wxEnumProperty() [1/4]

wxEnumProperty::wxEnumProperty ( const wxString label = wxPG_LABEL,
const wxString name = wxPG_LABEL,
const wxChar *const *  labels = nullptr,
const long *  values = nullptr,
int  value = 0 
)

◆ wxEnumProperty() [2/4]

wxEnumProperty::wxEnumProperty ( const wxString label,
const wxString name,
wxPGChoices choices,
int  value = 0 
)

◆ wxEnumProperty() [3/4]

wxEnumProperty::wxEnumProperty ( const wxString label,
const wxString name,
const wxChar *const *  labels,
const long *  values,
wxPGChoices choicesCache,
int  value = 0 
)

◆ wxEnumProperty() [4/4]

wxEnumProperty::wxEnumProperty ( const wxString label,
const wxString name,
const wxArrayString labels,
const wxArrayInt values = wxArrayInt(),
int  value = 0 
)

◆ ~wxEnumProperty()

virtual wxEnumProperty::~wxEnumProperty ( )
virtual

Member Function Documentation

◆ GetChoiceSelection()

virtual int wxEnumProperty::GetChoiceSelection ( ) const
virtual

Returns which choice is currently selected.

Only applies to properties which have choices.

Needs to reimplemented in derived class if property value does not map directly to a choice. Integer as index, bool, and string usually do.

Reimplemented from wxPGProperty.

◆ GetIndex()

int wxEnumProperty::GetIndex ( ) const
protected

◆ GetIndexForValue()

virtual int wxEnumProperty::GetIndexForValue ( int  value) const
virtual

◆ GetItemCount()

size_t wxEnumProperty::GetItemCount ( ) const

◆ IntToValue()

virtual bool wxEnumProperty::IntToValue ( wxVariant variant,
int  number,
wxPGPropValFormatFlags  flags = wxPGPropValFormatFlags::Null 
) const
virtual

If wxPGPropValFormatFlags::FullValue is not set in flags, then the value is interpreted as index to choices list.

Otherwise, it is actual value.

Reimplemented from wxPGProperty.

Reimplemented in wxSystemColourProperty.

◆ OnSetValue()

virtual void wxEnumProperty::OnSetValue ( )
virtual

This virtual function is called after m_value has been set.

Remarks
  • If m_value was set to Null variant (i.e. unspecified value), OnSetValue() will not be called.
  • m_value may be of any variant type. Typically properties internally support only one variant type, and as such OnSetValue() provides a good opportunity to convert supported values into internal type.
  • Default implementation does nothing.

Reimplemented from wxPGProperty.

Reimplemented in wxEditEnumProperty, and wxSystemColourProperty.

◆ SetIndex()

void wxEnumProperty::SetIndex ( int  index)
protected

◆ StringToValue()

virtual bool wxEnumProperty::StringToValue ( wxVariant variant,
const wxString text,
wxPGPropValFormatFlags  flags = wxPGPropValFormatFlags::Null 
) const
virtual

Converts text into wxVariant value appropriate for this property.

Parameters
variantOn function entry this is the old value (should not be null wxVariant in normal cases). Translated value must be assigned back to it.
textText to be translated into variant.
flagsIf wxPGPropValFormatFlags::FullValue is set, returns complete, storable value instead of displayable one (they may be different). If wxPGPropValFormatFlags::CompositeFragment is set, text is interpreted as a part of composite property string value (as generated by ValueToString() called with this same flag).
Returns
Returns true if resulting wxVariant value was different.
Remarks
Default implementation converts semicolon delimited tokens into child values. Only works for properties with children.

You might want to take into account that m_value is Null variant if property value is unspecified (which is usually only case if you explicitly enabled that sort behaviour).

Reimplemented from wxPGProperty.

Reimplemented in wxEditEnumProperty, and wxSystemColourProperty.

◆ ValidateValue()

virtual bool wxEnumProperty::ValidateValue ( wxVariant value,
wxPGValidationInfo validationInfo 
) const
virtual

Implement this function in derived class to check the value.

Return true if it is ok. Returning false prevents property change events from occurring.

Remarks
  • Default implementation always returns true.

Reimplemented from wxPGProperty.

Reimplemented in wxEditEnumProperty.

◆ ValueFromInt_()

bool wxEnumProperty::ValueFromInt_ ( wxVariant value,
int *  pIndex,
int  intVal,
wxPGPropValFormatFlags  flags 
) const
protected

◆ ValueFromString_()

bool wxEnumProperty::ValueFromString_ ( wxVariant value,
int *  pIndex,
const wxString text,
wxPGPropValFormatFlags  flags 
) const
protected

◆ ValueToString()

virtual wxString wxEnumProperty::ValueToString ( wxVariant value,
wxPGPropValFormatFlags  flags = wxPGPropValFormatFlags::Null 
) const
virtual

Converts property value into a text representation.

Parameters
valueValue to be converted.
flagsIf wxPGPropValFormatFlags::Null (default value), then displayed string is returned. If wxPGPropValFormatFlags::FullValue is set, returns complete, storable string value instead of displayable. If wxPGPropValFormatFlags::EditableValue is set, returns string value that must be editable in textctrl. If wxPGPropValFormatFlags::CompositeFragment is set, returns text that is appropriate to display as a part of string property's composite text representation.
Remarks
Default implementation calls GenerateComposedValue().

Reimplemented from wxPGProperty.

Reimplemented in wxCursorProperty, wxColourProperty, and wxSystemColourProperty.