X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14946ce13c15b729fb9e1f679e117a702db55861..2028c33ab5a39a12bd410ac953731a56ad6377ba:/interface/wx/propgrid/property.h diff --git a/interface/wx/propgrid/property.h b/interface/wx/propgrid/property.h index 95493ad7b4..762f6a37f1 100644 --- a/interface/wx/propgrid/property.h +++ b/interface/wx/propgrid/property.h @@ -168,6 +168,149 @@ */ +/** @section propgrid_propflags wxPGProperty Flags + @{ +*/ + +enum wxPGPropertyFlags +{ + +/** Indicates bold font. +*/ +wxPG_PROP_MODIFIED = 0x0001, + +/** Disables ('greyed' text and editor does not activate) property. +*/ +wxPG_PROP_DISABLED = 0x0002, + +/** Hider button will hide this property. +*/ +wxPG_PROP_HIDDEN = 0x0004, + +/** This property has custom paint image just in front of its value. + If property only draws custom images into a popup list, then this + flag should not be set. +*/ +wxPG_PROP_CUSTOMIMAGE = 0x0008, + +/** Do not create text based editor for this property (but button-triggered + dialog and choice are ok). +*/ +wxPG_PROP_NOEDITOR = 0x0010, + +/** Property is collapsed, ie. it's children are hidden. +*/ +wxPG_PROP_COLLAPSED = 0x0020, + +/** + If property is selected, then indicates that validation failed for pending + value. + + If property is not selected, then indicates that the the actual property + value has failed validation (NB: this behavior is not currently supported, + but may be used in future). +*/ +wxPG_PROP_INVALID_VALUE = 0x0040, + +// 0x0080, + +/** Switched via SetWasModified(). Temporary flag - only used when + setting/changing property value. +*/ +wxPG_PROP_WAS_MODIFIED = 0x0200, + +/** + If set, then child properties (if any) are private, and should be + "invisible" to the application. +*/ +wxPG_PROP_AGGREGATE = 0x0400, + +/** If set, then child properties (if any) are copies and should not + be deleted in dtor. +*/ +wxPG_PROP_CHILDREN_ARE_COPIES = 0x0800, + +/** + Classifies this item as a non-category. + + Used for faster item type identification. +*/ +wxPG_PROP_PROPERTY = 0x1000, + +/** + Classifies this item as a category. + + Used for faster item type identification. +*/ +wxPG_PROP_CATEGORY = 0x2000, + +/** Classifies this item as a property that has children, but is not aggregate + (ie children are not private). +*/ +wxPG_PROP_MISC_PARENT = 0x4000, + +/** Property is read-only. Editor is still created for wxTextCtrl-based + property editors. For others, editor is not usually created because + they do implement wxTE_READONLY style or equivalent. +*/ +wxPG_PROP_READONLY = 0x8000, + +// +// NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS +// + +/** Property's value is composed from values of child properties. + @remarks + This flag cannot be used with property iterators. +*/ +wxPG_PROP_COMPOSED_VALUE = 0x00010000, + +/** Common value of property is selectable in editor. + @remarks + This flag cannot be used with property iterators. +*/ +wxPG_PROP_USES_COMMON_VALUE = 0x00020000, + +/** Property can be set to unspecified value via editor. + Currently, this applies to following properties: + - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty: + Clear the text field + + @remarks + This flag cannot be used with property iterators. +*/ +wxPG_PROP_AUTO_UNSPECIFIED = 0x00040000, + +/** Indicates the bit useable by derived properties. +*/ +wxPG_PROP_CLASS_SPECIFIC_1 = 0x00080000, + +/** Indicates the bit useable by derived properties. +*/ +wxPG_PROP_CLASS_SPECIFIC_2 = 0x00100000, + +/** Indicates that the property is being deleted and should be ignored. +*/ +wxPG_PROP_BEING_DELETED = 0x00200000 + +}; + +/** Topmost flag. +*/ +#define wxPG_PROP_MAX wxPG_PROP_AUTO_UNSPECIFIED + +/** Property with children must have one of these set, otherwise iterators + will not work correctly. + Code should automatically take care of this, however. +*/ +#define wxPG_PROP_PARENTAL_FLAGS \ + ((wxPGPropertyFlags)(wxPG_PROP_AGGREGATE | \ + wxPG_PROP_CATEGORY | \ + wxPG_PROP_MISC_PARENT)) + +/** @} +*/ + /** @class wxPGProperty @@ -987,6 +1130,13 @@ public: */ bool AreChildrenComponents() const; + /** + Sets or clears given property flag. + + @see propgrid_propflags + */ + void ChangeFlag( wxPGPropertyFlags flag, bool set ); + /** Deletes children of the property. */ @@ -1105,6 +1255,11 @@ public: */ const wxPGEditor* GetEditorClass() const; + /** + Returns property flags. + */ + FlagType GetFlags() const; + /** Returns property grid where property lies. */ wxPropertyGrid* GetGrid() const; @@ -1209,6 +1364,13 @@ public: */ int GetY() const; + /** + Returns non-zero if property has given flag set. + + @see propgrid_propflags + */ + FlagType HasFlag( wxPGPropertyFlags flag ) const; + /** Returns @true if property has even one visible child. */ @@ -1364,9 +1526,10 @@ public: void SetCell( int column, const wxPGCell& cell ); /** - Sets new set of choices for property. + Sets new set of choices for the property. - @remarks This operation clears the property value. + @remarks This operation deselects the property and clears its + value. */ bool SetChoices( wxPGChoices& choices ); @@ -1397,6 +1560,20 @@ public: */ void SetDefaultValue( wxVariant& value ); + /** + Sets given property flag. + + @see propgrid_propflags + */ + void SetFlag( wxPGPropertyFlags flag ); + + /** + Sets or clears given property flag, recursively. + + @see propgrid_propflags + */ + void SetFlagRecursively( wxPGPropertyFlags flag, bool set ); + /** Sets property's help string, which is shown, for example, in wxPropertyGridManager's description text box.