Use explicit wxPGPropertyFlags enum type with wxPGProperty::SetFlag() and similar member functions (thus preventing use of incorrect set of flags). Also now document wxPGProperty flags.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -367,7 +367,7 @@ protected:
|
|||||||
@{
|
@{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum wxPG_PROPERTY_FLAGS
|
enum wxPGPropertyFlags
|
||||||
{
|
{
|
||||||
|
|
||||||
/** Indicates bold font.
|
/** Indicates bold font.
|
||||||
@@ -499,7 +499,9 @@ wxPG_PROP_BEING_DELETED = 0x00200000
|
|||||||
Code should automatically take care of this, however.
|
Code should automatically take care of this, however.
|
||||||
*/
|
*/
|
||||||
#define wxPG_PROP_PARENTAL_FLAGS \
|
#define wxPG_PROP_PARENTAL_FLAGS \
|
||||||
(wxPG_PROP_AGGREGATE|wxPG_PROP_CATEGORY|wxPG_PROP_MISC_PARENT)
|
((wxPGPropertyFlags)(wxPG_PROP_AGGREGATE | \
|
||||||
|
wxPG_PROP_CATEGORY | \
|
||||||
|
wxPG_PROP_MISC_PARENT))
|
||||||
|
|
||||||
/** @}
|
/** @}
|
||||||
*/
|
*/
|
||||||
@@ -1679,7 +1681,12 @@ public:
|
|||||||
return m_value.IsNull();
|
return m_value.IsNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
FlagType HasFlag( FlagType flag ) const
|
/**
|
||||||
|
Returns non-zero if property has given flag set.
|
||||||
|
|
||||||
|
@see propgrid_propflags
|
||||||
|
*/
|
||||||
|
FlagType HasFlag( wxPGPropertyFlags flag ) const
|
||||||
{
|
{
|
||||||
return ( m_flags & flag );
|
return ( m_flags & flag );
|
||||||
}
|
}
|
||||||
@@ -1695,6 +1702,9 @@ public:
|
|||||||
*/
|
*/
|
||||||
wxVariant GetAttributesAsList() const;
|
wxVariant GetAttributesAsList() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns property flags.
|
||||||
|
*/
|
||||||
FlagType GetFlags() const
|
FlagType GetFlags() const
|
||||||
{
|
{
|
||||||
return m_flags;
|
return m_flags;
|
||||||
@@ -2009,14 +2019,25 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets given property flag(s).
|
Sets given property flag.
|
||||||
|
|
||||||
|
@see propgrid_propflags
|
||||||
*/
|
*/
|
||||||
void SetFlag( FlagType flag ) { m_flags |= flag; }
|
void SetFlag( wxPGPropertyFlags flag )
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// NB: While using wxPGPropertyFlags here makes it difficult to
|
||||||
|
// combine different flags, it usefully prevents user from
|
||||||
|
// using incorrect flags (say, wxWindow styles).
|
||||||
|
m_flags |= flag;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets or clears given property flag(s).
|
Sets or clears given property flag.
|
||||||
|
|
||||||
|
@see propgrid_propflags
|
||||||
*/
|
*/
|
||||||
void ChangeFlag( FlagType flag, bool set )
|
void ChangeFlag( wxPGPropertyFlags flag, bool set )
|
||||||
{
|
{
|
||||||
if ( set )
|
if ( set )
|
||||||
m_flags |= flag;
|
m_flags |= flag;
|
||||||
@@ -2024,7 +2045,12 @@ public:
|
|||||||
m_flags &= ~flag;
|
m_flags &= ~flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetFlagRecursively( FlagType flag, bool set );
|
/**
|
||||||
|
Sets or clears given property flag, recursively.
|
||||||
|
|
||||||
|
@see propgrid_propflags
|
||||||
|
*/
|
||||||
|
void SetFlagRecursively( wxPGPropertyFlags flag, bool set );
|
||||||
|
|
||||||
void SetHelpString( const wxString& helpString )
|
void SetHelpString( const wxString& helpString )
|
||||||
{
|
{
|
||||||
|
@@ -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
|
@class wxPGProperty
|
||||||
@@ -987,6 +1130,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool AreChildrenComponents() const;
|
bool AreChildrenComponents() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets or clears given property flag.
|
||||||
|
|
||||||
|
@see propgrid_propflags
|
||||||
|
*/
|
||||||
|
void ChangeFlag( wxPGPropertyFlags flag, bool set );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Deletes children of the property.
|
Deletes children of the property.
|
||||||
*/
|
*/
|
||||||
@@ -1105,6 +1255,11 @@ public:
|
|||||||
*/
|
*/
|
||||||
const wxPGEditor* GetEditorClass() const;
|
const wxPGEditor* GetEditorClass() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns property flags.
|
||||||
|
*/
|
||||||
|
FlagType GetFlags() const;
|
||||||
|
|
||||||
/** Returns property grid where property lies. */
|
/** Returns property grid where property lies. */
|
||||||
wxPropertyGrid* GetGrid() const;
|
wxPropertyGrid* GetGrid() const;
|
||||||
|
|
||||||
@@ -1209,6 +1364,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
int GetY() const;
|
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.
|
Returns @true if property has even one visible child.
|
||||||
*/
|
*/
|
||||||
@@ -1398,6 +1560,20 @@ public:
|
|||||||
*/
|
*/
|
||||||
void SetDefaultValue( wxVariant& value );
|
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
|
Sets property's help string, which is shown, for example, in
|
||||||
wxPropertyGridManager's description text box.
|
wxPropertyGridManager's description text box.
|
||||||
|
@@ -1067,7 +1067,8 @@ bool wxPGProperty::StringToValue( wxVariant& variant, const wxString& text, int
|
|||||||
|
|
||||||
// Add only if editable or setting programmatically
|
// Add only if editable or setting programmatically
|
||||||
if ( (argFlags & wxPG_PROGRAMMATIC_VALUE) ||
|
if ( (argFlags & wxPG_PROGRAMMATIC_VALUE) ||
|
||||||
!child->HasFlag(wxPG_PROP_DISABLED|wxPG_PROP_READONLY) )
|
(!child->HasFlag(wxPG_PROP_DISABLED) &&
|
||||||
|
!child->HasFlag(wxPG_PROP_READONLY)) )
|
||||||
{
|
{
|
||||||
if ( len > 0 )
|
if ( len > 0 )
|
||||||
{
|
{
|
||||||
@@ -1147,7 +1148,8 @@ bool wxPGProperty::StringToValue( wxVariant& variant, const wxString& text, int
|
|||||||
wxVariant variant(oldChildValue);
|
wxVariant variant(oldChildValue);
|
||||||
|
|
||||||
if ( (argFlags & wxPG_PROGRAMMATIC_VALUE) ||
|
if ( (argFlags & wxPG_PROGRAMMATIC_VALUE) ||
|
||||||
!child->HasFlag(wxPG_PROP_DISABLED|wxPG_PROP_READONLY) )
|
(!child->HasFlag(wxPG_PROP_DISABLED) &&
|
||||||
|
!child->HasFlag(wxPG_PROP_READONLY)) )
|
||||||
{
|
{
|
||||||
wxString childName = child->GetBaseName();
|
wxString childName = child->GetBaseName();
|
||||||
|
|
||||||
@@ -1427,7 +1429,7 @@ void wxPGProperty::SetValueInEvent( wxVariant value ) const
|
|||||||
GetGrid()->ValueChangeInEvent(value);
|
GetGrid()->ValueChangeInEvent(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxPGProperty::SetFlagRecursively( FlagType flag, bool set )
|
void wxPGProperty::SetFlagRecursively( wxPGPropertyFlags flag, bool set )
|
||||||
{
|
{
|
||||||
ChangeFlag(flag, set);
|
ChangeFlag(flag, set);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user