From c8552aec0c1405a2461dcdd65788a7090d65a5ab Mon Sep 17 00:00:00 2001 From: Artur Wieczorek <7330332+a-wi@users.noreply.github.com> Date: Sat, 23 Dec 2023 18:45:57 +0100 Subject: [PATCH] Make wxPGPropertyFlags a bitmask To improve type safety of flags. --- include/wx/propgrid/advprops.h | 4 +- include/wx/propgrid/private.h | 22 +- include/wx/propgrid/property.h | 414 +++++++++++++++------- include/wx/propgrid/propgrid.h | 8 +- include/wx/propgrid/propgridiface.h | 28 +- include/wx/propgrid/propgridpagestate.h | 64 ++-- include/wx/propgrid/props.h | 12 +- interface/wx/propgrid/property.h | 296 ++++++++-------- interface/wx/propgrid/propgrid.h | 9 +- interface/wx/propgrid/propgridiface.h | 2 +- interface/wx/propgrid/propgridpagestate.h | 47 ++- src/propgrid/advprops.cpp | 42 +-- src/propgrid/editors.cpp | 36 +- src/propgrid/property.cpp | 130 ++++--- src/propgrid/propgrid.cpp | 56 +-- src/propgrid/propgridiface.cpp | 36 +- src/propgrid/propgridpagestate.cpp | 24 +- src/propgrid/props.cpp | 58 +-- tests/controls/propgridtest.cpp | 90 ++--- 19 files changed, 763 insertions(+), 615 deletions(-) diff --git a/include/wx/propgrid/advprops.h b/include/wx/propgrid/advprops.h index 7ae62397d1..f5375997be 100644 --- a/include/wx/propgrid/advprops.h +++ b/include/wx/propgrid/advprops.h @@ -150,8 +150,8 @@ protected: #if WXWIN_COMPATIBILITY_3_2 // If set, then match from list is searched for a custom colour. -wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_TRANSLATE_CUSTOM is intended for internal use.") -constexpr wxPGPropertyFlags wxPG_PROP_TRANSLATE_CUSTOM = wxPG_PROP_RESERVED_1; +wxDEPRECATED_MSG("wxPG_PROP_TRANSLATE_CUSTOM is intended for internal use.") +constexpr wxPGPropertyFlags wxPG_PROP_TRANSLATE_CUSTOM = wxPGPropertyFlags::Reserved_1; #endif // WXWIN_COMPATIBILITY_3_2 // Has dropdown list of wxWidgets system colours. Value used is diff --git a/include/wx/propgrid/private.h b/include/wx/propgrid/private.h index 67f17edbd5..72c3ca23f9 100644 --- a/include/wx/propgrid/private.h +++ b/include/wx/propgrid/private.h @@ -188,31 +188,29 @@ wxDECLARE_EVENT(wxEVT_PG_COLS_RESIZED, wxPropertyGridEvent); // Flags used only internally // wxBoolProperty, wxFlagsProperty specific flags -constexpr wxPGPropertyFlags wxPG_PROP_USE_CHECKBOX = wxPG_PROP_RESERVED_1; +constexpr wxPGPropertyFlags wxPGPropertyFlags_UseCheckBox = wxPGPropertyFlags::Reserved_1; // DCC = Double Click Cycles -constexpr wxPGPropertyFlags wxPG_PROP_USE_DCC = wxPG_PROP_RESERVED_2; +constexpr wxPGPropertyFlags wxPGPropertyFlags_UseDCC = wxPGPropertyFlags::Reserved_2; // wxStringProperty flag -constexpr wxPGPropertyFlags wxPG_PROP_PASSWORD = wxPG_PROP_RESERVED_2; +constexpr wxPGPropertyFlags wxPGPropertyFlags_Password = wxPGPropertyFlags::Reserved_2; -#if !WXWIN_COMPATIBILITY_3_2 // wxColourProperty flag - if set, then match from list is searched for a custom colour. -constexpr wxPGPropertyFlags wxPG_PROP_TRANSLATE_CUSTOM = wxPG_PROP_RESERVED_1; +constexpr wxPGPropertyFlags wxPGPropertyFlags_TranslateCustom = wxPGPropertyFlags::Reserved_1; // wxCursorProperty, wxSystemColourProperty - If set, then selection of choices is static // and should not be changed (i.e. returns nullptr in GetPropertyChoices). -constexpr wxPGPropertyFlags wxPG_PROP_STATIC_CHOICES = wxPG_PROP_RESERVED_1; +constexpr wxPGPropertyFlags wxPGPropertyFlags_StaticChoices = wxPGPropertyFlags::Reserved_1; -// wxSystemColourProperty - wxEnumProperty based classes cannot use wxPG_PROP_RESERVED_1 -constexpr wxPGPropertyFlags wxPG_PROP_HIDE_CUSTOM_COLOUR = wxPG_PROP_RESERVED_2; -constexpr wxPGPropertyFlags wxPG_PROP_COLOUR_HAS_ALPHA = wxPG_PROP_RESERVED_3; +// wxSystemColourProperty - wxEnumProperty based classes cannot use wxPGPropertyFlags::Reserved_1 +constexpr wxPGPropertyFlags wxPGPropertyFlags_HideCustomColour = wxPGPropertyFlags::Reserved_2; +constexpr wxPGPropertyFlags wxPGPropertyFlags_ColourHasAlpha = wxPGPropertyFlags::Reserved_3; // wxFileProperty - if set, full path is shown in wxFileProperty. -constexpr wxPGPropertyFlags wxPG_PROP_SHOW_FULL_FILENAME = wxPG_PROP_RESERVED_1; +constexpr wxPGPropertyFlags wxPGPropertyFlags_ShowFullFileName = wxPGPropertyFlags::Reserved_1; // wxLongStringProperty - flag used to mark that edit button // should be enabled even in the read-only mode. -constexpr wxPGPropertyFlags wxPG_PROP_ACTIVE_BTN = wxPG_PROP_RESERVED_3; -#endif // !WXWIN_COMPATIBILITY_3_2 +constexpr wxPGPropertyFlags wxPGPropertyFlags_ActiveButton = wxPGPropertyFlags::Reserved_3; #endif // _WX_PROPGRID_PRIVATE_H_ diff --git a/include/wx/propgrid/property.h b/include/wx/propgrid/property.h index 5cfd6f7118..076a0cc58e 100644 --- a/include/wx/propgrid/property.h +++ b/include/wx/propgrid/property.h @@ -304,129 +304,229 @@ protected: std::unordered_map m_map; }; - -// ----------------------------------------------------------------------- - -enum wxPGPropertyFlags +enum class wxPGPropertyFlags : int { + // No flags. + Null = 0, -// Indicates bold font. -wxPG_PROP_MODIFIED = 0x0001, + // Indicates bold font. + Modified = 0x0001, -// Disables ('greyed' text and editor does not activate) property. -wxPG_PROP_DISABLED = 0x0002, + // Disables ('greyed' text and editor does not activate) property. + Disabled = 0x0002, -// Hider button will hide this property. -wxPG_PROP_HIDDEN = 0x0004, + // Hider button will hide this property. + 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, + // 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. + CustomImage = 0x0008, -// Do not create text based editor for this property (but button-triggered -// dialog and choice are ok). -wxPG_PROP_NOEDITOR = 0x0010, + // Do not create text based editor for this property (but button-triggered + // dialog and choice are ok). + NoEditor = 0x0010, -// Property is collapsed, ie. its children are hidden. -wxPG_PROP_COLLAPSED = 0x0020, + // Property is collapsed, ie. it's children are hidden. + Collapsed = 0x0020, -// If property is selected, then indicates that validation failed for pending -// value. -// If property is not selected, that indicates that the actual property -// value has failed validation (NB: this behaviour is not currently supported, -// but may be used in future). -wxPG_PROP_INVALID_VALUE = 0x0040, + // If property is selected, then indicates that validation failed for pending + // value. + // If property is not selected, that indicates that the actual property + // value has failed validation (NB: this behaviour is not currently supported, + // but may be used in future). + InvalidValue = 0x0040, -// 0x0080, + // 0x0080, -// Switched via SetWasModified(). Temporary flag - only used when -// setting/changing property value. -wxPG_PROP_WAS_MODIFIED = 0x0200, + // Switched via SetWasModified(). Temporary flag - only used when + // setting/changing property value. + WasModified = 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 private, and should be + // "invisible" to the application. + Aggregate = 0x0400, -// If set, then child properties (if any) are copies and should not -// be deleted in dtor. -wxPG_PROP_CHILDREN_ARE_COPIES = 0x0800, + // If set, then child properties (if any) are copies and should not + // be deleted in dtor. + ChildrenAreCopies = 0x0800, -// Classifies this item as a non-category. -// Used for faster item type identification. -wxPG_PROP_PROPERTY = 0x1000, + // Classifies this item as a non-category. + // Used for faster item type identification. + Property = 0x1000, -// Classifies this item as a category. -// Used for faster item type identification. -wxPG_PROP_CATEGORY = 0x2000, + // Classifies this item as a category. + // Used for faster item type identification. + Category = 0x2000, -// Classifies this item as a property that has children, -//but is not aggregate (i.e. children are not private). -wxPG_PROP_MISC_PARENT = 0x4000, + // Classifies this item as a property that has children, + //but is not aggregate (i.e. children are not private). + MiscParent = 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, + // 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. + ReadOnly = 0x8000, -// -// NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS -// + // + // NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS + // -// Property's value is composed from values of child properties. -// This flag cannot be used with property iterators. -wxPG_PROP_COMPOSED_VALUE = 0x00010000, + // Property's value is composed from values of child properties. + // This flag cannot be used with property iterators. + ComposedValue = 0x00010000, -// Common value of property is selectable in editor. -// This flag cannot be used with property iterators. -wxPG_PROP_USES_COMMON_VALUE = 0x00020000, + // Common value of property is selectable in editor. + // This flag cannot be used with property iterators. + UsesCommonValue = 0x00020000, -// Property can be set to unspecified value via editor. -// Currently, this applies to following properties: -// - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty: -// Clear the text field -// This flag cannot be used with property iterators. -// See wxPGProperty::SetAutoUnspecified(). -wxPG_PROP_AUTO_UNSPECIFIED = 0x00040000, + // Property can be set to unspecified value via editor. + // Currently, this applxPGies to following properties: + // - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty: + // Clear the text field + // This flag cannot be used with property iterators. + // See wxPGProperty::SetAutoUnspecified(). + AutoUnspecified = 0x00040000, -// For internal use only. -wxPG_PROP_RESERVED_1 = 0x00080000, + // Indicates that the property is being deleted and should be ignored. + BeingDeleted = 0x00080000, -// For internal use only. -wxPG_PROP_RESERVED_2 = 0x00100000, + // If set, full path is shown in wxFileProperty. + ShowFullFileName = 0x00100000, -// Indicates that the property is being deleted and should be ignored. -wxPG_PROP_BEING_DELETED = 0x00200000, + // For internal use only. + Reserved_1 = 0x10000000, -// For internal use only. -wxPG_PROP_RESERVED_3 = 0x00400000 + // For internal use only. + Reserved_2 = 0x20000000, + + // For internal use only. + Reserved_3 = 0x40000000, + + // Topmost flag. + Max = ShowFullFileName, + + // Property with children must have one of these set, otherwise iterators + // will not work correctly. + // Code should automatically take care of this, however. + ParentalFlags = Aggregate | Category | MiscParent, + + // Combination of flags that can be stored by GetFlagsAsString + StringStoredFlags = Disabled | Hidden | NoEditor | Collapsed }; +constexpr wxPGPropertyFlags operator|(wxPGPropertyFlags a, wxPGPropertyFlags b) +{ + return static_cast(static_cast(a) | static_cast(b)); +} + +inline wxPGPropertyFlags operator|=(wxPGPropertyFlags & a, wxPGPropertyFlags b) +{ + return a = a | b; +} + +constexpr wxPGPropertyFlags operator&(wxPGPropertyFlags a, wxPGPropertyFlags b) +{ + return static_cast(static_cast(a) & static_cast(b)); +} + +inline wxPGPropertyFlags operator&=(wxPGPropertyFlags & a, wxPGPropertyFlags b) +{ + return a = a & b; +} + +constexpr wxPGPropertyFlags operator^(wxPGPropertyFlags a, wxPGPropertyFlags b) +{ + return static_cast(static_cast(a) ^ static_cast(b)); +} + +constexpr wxPGPropertyFlags operator~(wxPGPropertyFlags a) +{ + return static_cast(~static_cast(a)); +} + +constexpr bool operator!(wxPGPropertyFlags a) +{ + return static_cast(a) == 0; +} + +// We need these operators with int arguments for interoperability +// with wxPG_ITERATOR_FLAGS as plain enumeration). +// ===== +constexpr int operator<<(wxPGPropertyFlags a, int n) +{ + return static_cast(a) << n; +} + +constexpr int operator|(wxPGPropertyFlags a, int b) +{ + return static_cast(a) | b; +} + +constexpr int operator|(int a, wxPGPropertyFlags b) +{ + return a | static_cast(b); +} + +constexpr int operator&(int a, wxPGPropertyFlags b) +{ + return a & static_cast(b); +} +// ===== + #if WXWIN_COMPATIBILITY_3_2 +wxDEPRECATED_MSG("use wxPGPropertyFlags::Modified instead") +constexpr wxPGPropertyFlags wxPG_PROP_MODIFIED = wxPGPropertyFlags::Modified; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Disabled instead") +constexpr wxPGPropertyFlags wxPG_PROP_DISABLED = wxPGPropertyFlags::Disabled; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Hidden instead") +constexpr wxPGPropertyFlags wxPG_PROP_HIDDEN = wxPGPropertyFlags::Hidden; +wxDEPRECATED_MSG("use wxPGPropertyFlags::CustomImage instead") +constexpr wxPGPropertyFlags wxPG_PROP_CUSTOMIMAGE = wxPGPropertyFlags::CustomImage; +wxDEPRECATED_MSG("use wxPGPropertyFlags::NoEditor instead") +constexpr wxPGPropertyFlags wxPG_PROP_NOEDITOR = wxPGPropertyFlags::NoEditor; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Collapsed instead") +constexpr wxPGPropertyFlags wxPG_PROP_COLLAPSED = wxPGPropertyFlags::Collapsed; +wxDEPRECATED_MSG("use wxPGPropertyFlags::InvalidValue instead") +constexpr wxPGPropertyFlags wxPG_PROP_INVALID_VALUE = wxPGPropertyFlags::InvalidValue; +wxDEPRECATED_MSG("use wxPGPropertyFlags::WasModified instead") +constexpr wxPGPropertyFlags wxPG_PROP_WAS_MODIFIED = wxPGPropertyFlags::WasModified; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Aggregate instead") +constexpr wxPGPropertyFlags wxPG_PROP_AGGREGATE = wxPGPropertyFlags::Aggregate; +wxDEPRECATED_MSG("use wxPGPropertyFlags::ChildrenAreCopies instead") +constexpr wxPGPropertyFlags wxPG_PROP_CHILDREN_ARE_COPIES = wxPGPropertyFlags::ChildrenAreCopies; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Property instead") +constexpr wxPGPropertyFlags wxPG_PROP_PROPERTY = wxPGPropertyFlags::Property; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Category instead") +constexpr wxPGPropertyFlags wxPG_PROP_CATEGORY = wxPGPropertyFlags::Category; +wxDEPRECATED_MSG("use wxPGPropertyFlags::MiscParent instead") +constexpr wxPGPropertyFlags wxPG_PROP_MISC_PARENT = wxPGPropertyFlags::MiscParent; +wxDEPRECATED_MSG("use wxPGPropertyFlags::ReadOnly instead") +constexpr wxPGPropertyFlags wxPG_PROP_READONLY = wxPGPropertyFlags::ReadOnly; +wxDEPRECATED_MSG("use wxPGPropertyFlags::ComposedValue instead") +constexpr wxPGPropertyFlags wxPG_PROP_COMPOSED_VALUE = wxPGPropertyFlags::ComposedValue; +wxDEPRECATED_MSG("use wxPGPropertyFlags::UsesCommonValue instead") +constexpr wxPGPropertyFlags wxPG_PROP_USES_COMMON_VALUE = wxPGPropertyFlags::UsesCommonValue; +wxDEPRECATED_MSG("use wxPGPropertyFlags::AutoUnspecified instead") +constexpr wxPGPropertyFlags wxPG_PROP_AUTO_UNSPECIFIED = wxPGPropertyFlags::AutoUnspecified; +wxDEPRECATED_MSG("use wxPGPropertyFlags::BeingDeleted instead") +constexpr wxPGPropertyFlags wxPG_PROP_BEING_DELETED = wxPGPropertyFlags::BeingDeleted; +wxDEPRECATED_MSG("use wxPGPropertyFlags::ParentalFlags instead") +constexpr wxPGPropertyFlags wxPG_PROP_PARENTAL_FLAGS = wxPGPropertyFlags::ParentalFlags; +wxDEPRECATED_MSG("use wxPGPropertyFlags::StringStoredFlags instead") +constexpr wxPGPropertyFlags wxPG_STRING_STORED_FLAGS = wxPGPropertyFlags::StringStoredFlags; +wxDEPRECATED_MSG("use wxPGPropertyFlags::Max instead") +constexpr wxPGPropertyFlags wxPG_PROP_MAX = wxPGPropertyFlags::Max; + // Indicates bits usable by derived properties. wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_CLASS_SPECIFIC_1 in intended for internal use only.") -constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_1 = wxPG_PROP_RESERVED_1; +constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_1 = wxPGPropertyFlags::Reserved_1; wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_CLASS_SPECIFIC_2 in intended for internal use only.") -constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_2 = wxPG_PROP_RESERVED_2; +constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_2 = wxPGPropertyFlags::Reserved_2; wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_CLASS_SPECIFIC_3 in intended for internal use only.") -constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_3 = wxPG_PROP_RESERVED_3; +constexpr wxPGPropertyFlags wxPG_PROP_CLASS_SPECIFIC_3 = wxPGPropertyFlags::Reserved_3; #endif // WXWIN_COMPATIBILITY_3_2 -// Topmost flag. -constexpr wxPGPropertyFlags 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)) - -// Combination of flags that can be stored by GetFlagsAsString -#define wxPG_STRING_STORED_FLAGS \ - (wxPG_PROP_DISABLED|wxPG_PROP_HIDDEN|wxPG_PROP_NOEDITOR|wxPG_PROP_COLLAPSED) - // ----------------------------------------------------------------------- // Helpers to mark macros as deprecated @@ -950,7 +1050,12 @@ class WXDLLIMPEXP_PROPGRID wxPGProperty : public wxObject wxDECLARE_ABSTRACT_CLASS(wxPGProperty); public: +#if WXWIN_COMPATIBILITY_3_0 typedef wxUint32 FlagType; +#elif WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use wxPGPropertyFlags type instead") + typedef wxUint32 FlagType; +#endif // WXWIN_COMPATIBILITY_3_0, WXWIN_COMPATIBILITY_3_2 // Virtual destructor. // It is customary for derived properties to implement this. @@ -1197,7 +1302,7 @@ public: // values of a font). bool AreChildrenComponents() const { - return (m_flags & (wxPG_PROP_COMPOSED_VALUE|wxPG_PROP_AGGREGATE)) != 0; + return !!(m_flags & (wxPGPropertyFlags::ComposedValue|wxPGPropertyFlags::Aggregate)); } // Deletes children of the property. @@ -1219,7 +1324,7 @@ public: // Common values are disabled by the default for all properties. void EnableCommonValue( bool enable = true ) { - ChangeFlag(wxPG_PROP_USES_COMMON_VALUE, enable); + ChangeFlag(wxPGPropertyFlags::UsesCommonValue, enable); } // Composes text from values of child properties. @@ -1348,25 +1453,35 @@ public: #if WXWIN_COMPATIBILITY_3_0 // Returns non-zero if property has given flag set. - FlagType HasFlag( wxPGPropertyFlags flag ) const + wxDEPRECATED_MSG("use HasFlag() with 'flag' argument as wxPGPropertyFlags") + FlagType HasFlag( FlagType flag ) const { - return ( m_flags & flag ); - } -#else - // Returns true if property has given flag set. - bool HasFlag(wxPGPropertyFlags flag) const - { - return (m_flags & flag) != 0; + return ( static_cast(m_flags) & flag ); } #endif // Returns true if property has given flag set. - bool HasFlag(FlagType flag) const + bool HasFlag(wxPGPropertyFlags flag) const { - return (m_flags & flag) != 0; + return !!(m_flags & flag); } +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use HasFlag() with 'flag' argument as wxPGPropertyFlags") + // Returns true if property has given flag set. + bool HasFlag(int flag) const + { + return HasFlag(static_cast(flag)); + } +#endif // WXWIN_COMPATIBILITY_3_2 // Returns true if property has all given flags set. - bool HasFlagsExact(FlagType flags) const +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use HasFlagExact() with 'flags' argument as wxPGPropertyFlags") + bool HasFlagsExact(int flags) const + { + return HasFlagsExact(static_cast(flags)); + } +#endif // WXWIN_COMPATIBILITY_3_2 + bool HasFlagsExact(wxPGPropertyFlags flags) const { return (m_flags & flags) == flags; } @@ -1385,7 +1500,7 @@ public: wxDEPRECATED_MSG("Use HasFlag or HasFlagsExact functions instead.") FlagType GetFlags() const { - return m_flags; + return static_cast(m_flags); } #endif @@ -1425,7 +1540,7 @@ public: int InsertChoice( const wxString& label, int index, int value = wxPG_INVALID_VALUE ); // Returns true if this property is actually a wxPropertyCategory. - bool IsCategory() const { return (m_flags & wxPG_PROP_CATEGORY) != 0; } + bool IsCategory() const { return !!(m_flags & wxPGPropertyFlags::Category); } // Returns true if this property is actually a wxRootProperty. bool IsRoot() const { return (m_parent == nullptr); } @@ -1467,7 +1582,7 @@ public: // Returns true if containing grid uses wxPG_EX_AUTO_UNSPECIFIED_VALUES. bool UsesAutoUnspecified() const { - return (m_flags & wxPG_PROP_AUTO_UNSPECIFIED) != 0; + return !!(m_flags & wxPGPropertyFlags::AutoUnspecified); } // Returns bitmap that appears next to value text. Only returns non-null @@ -1492,9 +1607,16 @@ public: unsigned int GetDepth() const { return (unsigned int)m_depth; } // Gets flags as a'|' delimited string. Note that flag names are not - // prepended with 'wxPG_PROP_'. + // prepended with 'wxPGPropertyFlags'. // flagmask - String will only be made to include flags combined by this parameter. - wxString GetFlagsAsString( FlagType flagsMask ) const; +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use GetFlagsAsString() with 'flags' argument as wxPGPropertyFlags") + wxString GetFlagsAsString( int flagsMask ) const + { + return GetFlagsAsString(static_cast(flagsMask)); + } +#endif // WXWIN_COMPATIBILITY_3_2 + wxString GetFlagsAsString(wxPGPropertyFlags flagsMask) const; // Returns position in parent's array. unsigned int GetIndexInParent() const @@ -1517,13 +1639,13 @@ public: // Returns true if property has visible children. bool IsExpanded() const - { return (!(m_flags & wxPG_PROP_COLLAPSED) && HasAnyChild()); } + { return (!(m_flags & wxPGPropertyFlags::Collapsed) && HasAnyChild()); } // Returns true if all parents expanded. bool IsVisible() const; // Returns true if property is enabled. - bool IsEnabled() const { return !(m_flags & wxPG_PROP_DISABLED); } + bool IsEnabled() const { return !(m_flags & wxPGPropertyFlags::Disabled); } // If property's editor is created this forces its recreation. // Useful in SetAttribute etc. Returns true if actually did anything. @@ -1549,7 +1671,7 @@ public: // by default). void SetAutoUnspecified( bool enable = true ) { - ChangeFlag(wxPG_PROP_AUTO_UNSPECIFIED, enable); + ChangeFlag(wxPGPropertyFlags::AutoUnspecified, enable); } // Sets property's background colour. @@ -1624,13 +1746,13 @@ public: } // Sets flags from a '|' delimited string. Note that flag names are not - // prepended with 'wxPG_PROP_'. + // prepended with 'wxPGPropertyFlags'. void SetFlagsFromString( const wxString& str ); // Sets property's "is it modified?" flag. Affects children recursively. void SetModifiedStatus( bool modified ) { - SetFlagRecursively(wxPG_PROP_MODIFIED, modified); + SetFlagRecursively(wxPGPropertyFlags::Modified, modified); } // Call in OnEvent(), OnButtonClick() etc. to change the property value @@ -1671,14 +1793,14 @@ public: void SetExpanded( bool expanded ) { - ChangeFlag(wxPG_PROP_COLLAPSED, !expanded); + ChangeFlag(wxPGPropertyFlags::Collapsed, !expanded); } // Sets or clears given property flag. Mainly for internal use. // Setting a property flag never has any side-effect, and is // intended almost exclusively for internal use. So, for // example, if you want to disable a property, call - // Enable(false) instead of setting wxPG_PROP_DISABLED flag. + // Enable(false) instead of setting wxPGPropertyFlags::Disabled flag. void ChangeFlag( wxPGPropertyFlags flag, bool set ) { if ( set ) @@ -1707,14 +1829,21 @@ public: void SetName( const wxString& newName ); // Changes what sort of parent this property is for its children. - // flag - Use one of the following values: wxPG_PROP_MISC_PARENT (for - // generic parents), wxPG_PROP_CATEGORY (for categories), or - // wxPG_PROP_AGGREGATE (for derived property classes with private + // flag - Use one of the following values: wxPGPropertyFlags::MiscParent (for + // generic parents), wxPGPropertyFlags::Category (for categories), or + // wxPGPropertyFlags::Aggregate (for derived property classes with private // children). // You generally do not need to call this function. - void SetParentalType( int flag ) +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use SetParentalType() with 'flag' argument as wxPGPropertyFlags") + void SetParentalType(int flag) { - m_flags &= ~(wxPG_PROP_PROPERTY|wxPG_PROP_PARENTAL_FLAGS); + SetParentalType(static_cast(flag)); + } +#endif // WXWIN_COMPATIBILITY_3_2 + void SetParentalType(wxPGPropertyFlags flag) + { + m_flags &= ~(wxPGPropertyFlags::Property | wxPGPropertyFlags::ParentalFlags); m_flags |= flag; } @@ -1781,7 +1910,7 @@ public: // (i.e. cancel 'true' returned by StringToValue() or IntToValue()). void SetWasModified( bool set = true ) { - ChangeFlag(wxPG_PROP_WAS_MODIFIED, set); + ChangeFlag(wxPGPropertyFlags::WasModified, set); } // Returns property's help or description text. @@ -1801,7 +1930,7 @@ public: // 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 + // type will automatically be set up to wxPGPropertyFlags::Aggregate. In other // words, all properties of this property will become private. void AddPrivateChild( wxPGProperty* prop ); @@ -1910,17 +2039,38 @@ protected: // preparedCell. // ignoreWithFlags - Properties with any one of these flags are skipped. // recursively - If true, apply this operation recursively in child properties. +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use AdaptiveSetCell() with 'ignoreWithFlags' argument as wxPGPropertyFlags") void AdaptiveSetCell( unsigned int firstCol, unsigned int lastCol, const wxPGCell& preparedCell, const wxPGCell& srcData, wxPGCellData* unmodCellData, - FlagType ignoreWithFlags, - bool recursively ); + int ignoreWithFlags, + bool recursively ) + { + AdaptiveSetCell(firstCol, lastCol, preparedCell, srcData, unmodCellData, + static_cast(ignoreWithFlags), recursively); + } +#endif // WXWIN_COMPATIBILITY_3_2 + void AdaptiveSetCell(unsigned int firstCol, + unsigned int lastCol, + const wxPGCell& preparedCell, + const wxPGCell& srcData, + wxPGCellData* unmodCellData, + wxPGPropertyFlags ignoreWithFlags, + bool recursively); // Clear cells associated with property. // recursively - If true, apply this operation recursively in child properties. - void ClearCells(FlagType ignoreWithFlags, bool recursively); +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use ClearCells() with 'ignoreWithFlags' argument as wxPGPropertyFlags") + void ClearCells(int ignoreWithFlags, bool recursively) + { + ClearCells(static_cast(ignoreWithFlags), recursively); + } +#endif // WXWIN_COMPATIBILITY_3_2 + void ClearCells(wxPGPropertyFlags ignoreWithFlags, bool recursively); // Makes sure m_cells has size of column+1 (or more). void EnsureCells( unsigned int column ); @@ -1989,7 +2139,17 @@ protected: m_flags |= flag; } - void ClearFlag( FlagType flag ) { m_flags &= ~(flag); } +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use ClearFlag() with 'flag' argument as wxPGPropertyFlags") + void ClearFlag( int flag ) + { + ClearFlag(static_cast(flag)); + } +#endif // WXWIN_COMPATIBILITY_3_2 + void ClearFlag(wxPGPropertyFlags flag) + { + m_flags &= ~(flag); + } // Called when the property is being removed from the grid and/or // page state (but *not* when it is also deleted). @@ -2041,7 +2201,7 @@ protected: // If not -1, then overrides m_value int m_commonValue; - FlagType m_flags; + wxPGPropertyFlags m_flags; // Maximum length (for string properties). Could be in some sort of // wxBaseStringProperty, but currently, for maximum flexibility and diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 8e8a5ba597..0dd0a0da89 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -250,7 +250,7 @@ wxPG_EX_HELP_AS_TOOLTIPS = 0x00010000, wxPG_EX_NATIVE_DOUBLE_BUFFERING = 0x00080000, // Set this style to let user have ability to set values of properties to -// unspecified state. Same as setting wxPG_PROP_AUTO_UNSPECIFIED for +// unspecified state. Same as setting wxPGPropertyFlags::AutoUnspecified for // all properties. wxPG_EX_AUTO_UNSPECIFIED_VALUES = 0x00200000, @@ -1300,10 +1300,10 @@ public: // Called to indicate property and editor has valid value now. void OnValidationFailureReset( wxPGProperty* property ) { - if ( property && property->HasFlag(wxPG_PROP_INVALID_VALUE) ) + if ( property && property->HasFlag(wxPGPropertyFlags::InvalidValue) ) { DoOnValidationFailureReset(property); - property->ClearFlag(wxPG_PROP_INVALID_VALUE); + property->ClearFlag(wxPGPropertyFlags::InvalidValue); } m_validationInfo.ClearFailureMessage(); } @@ -1337,7 +1337,7 @@ public: wxVariant& invalidValue ); // Override to customize resetting of property validation failure status. - // Property is guaranteed to have flag wxPG_PROP_INVALID_VALUE set. + // Property is guaranteed to have flag wxPGPropertyFlags::InvalidValue set. virtual void DoOnValidationFailureReset( wxPGProperty* property ); int GetSpacingY() const { return m_spacingy; } diff --git a/include/wx/propgrid/propgridiface.h b/include/wx/propgrid/propgridiface.h index ac229bcf2f..40a6c48fc3 100644 --- a/include/wx/propgrid/propgridiface.h +++ b/include/wx/propgrid/propgridiface.h @@ -331,7 +331,7 @@ public: { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) - if ( !p->HasAnyChild() || p->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( !p->HasAnyChild() || p->HasFlag(wxPGPropertyFlags::Aggregate) ) return wxNullProperty; return p->Item(0); @@ -410,12 +410,24 @@ public: // only properties without given flags are stored. // flags - Property flags to use. // iterFlags - Iterator flags to use. Default is everything expect private children. +#if WXWIN_COMPATIBILITY_3_2 + wxDEPRECATED_MSG("use GetPropertiesWithFlag() with 'flags' argument as wxPGPropertyFlags") void GetPropertiesWithFlag( wxArrayPGProperty* targetArr, - wxPGProperty::FlagType flags, + int flags, bool inverse = false, int iterFlags = wxPG_ITERATE_PROPERTIES | wxPG_ITERATE_HIDDEN | - wxPG_ITERATE_CATEGORIES) const; + wxPG_ITERATE_CATEGORIES) const + { + GetPropertiesWithFlag(targetArr, static_cast(flags), inverse, iterFlags); + } +#endif // WXWIN_COMPATIBILITY_3_2 + void GetPropertiesWithFlag(wxArrayPGProperty* targetArr, + wxPGPropertyFlags flags, + bool inverse = false, + int iterFlags = wxPG_ITERATE_PROPERTIES | + wxPG_ITERATE_HIDDEN | + wxPG_ITERATE_CATEGORIES) const; // Returns value of given attribute. If none found, returns null wxVariant. wxVariant GetPropertyAttribute( wxPGPropArg id, @@ -652,7 +664,7 @@ public: bool IsPropertyEnabled( wxPGPropArg id ) const { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return !p->HasFlag(wxPG_PROP_DISABLED); + return !p->HasFlag(wxPGPropertyFlags::Disabled); } // Returns true if given property is expanded. @@ -664,11 +676,7 @@ public: bool IsPropertyModified( wxPGPropArg id ) const { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) -#if WXWIN_COMPATIBILITY_3_0 - return p->HasFlag(wxPG_PROP_MODIFIED)?true:false; -#else - return p->HasFlag(wxPG_PROP_MODIFIED); -#endif + return p->HasFlag(wxPGPropertyFlags::Modified); } // Returns true if property is selected. @@ -683,7 +691,7 @@ public: bool IsPropertyShown( wxPGPropArg id ) const { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return !p->HasFlag(wxPG_PROP_HIDDEN); + return !p->HasFlag(wxPGPropertyFlags::Hidden); } // Returns true if property value is set to unspecified. diff --git a/include/wx/propgrid/propgridpagestate.h b/include/wx/propgrid/propgridpagestate.h index 60904042dd..e6c87c625c 100644 --- a/include/wx/propgrid/propgridpagestate.h +++ b/include/wx/propgrid/propgridpagestate.h @@ -213,54 +213,54 @@ enum wxPG_ITERATOR_FLAGS // Iterate through 'normal' property items (does not include children of // aggregate or hidden items by default). -wxPG_ITERATE_PROPERTIES = wxPG_PROP_PROPERTY | - wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_COLLAPSED | - wxPG_IT_CHILDREN(wxPG_PROP_MISC_PARENT) | - wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY), +wxPG_ITERATE_PROPERTIES = wxPGPropertyFlags::Property | + wxPGPropertyFlags::MiscParent | + wxPGPropertyFlags::Aggregate | + wxPGPropertyFlags::Collapsed | + wxPG_IT_CHILDREN(wxPGPropertyFlags::MiscParent) | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Category), // Iterate children of collapsed parents, and individual items that are hidden. -wxPG_ITERATE_HIDDEN = wxPG_PROP_HIDDEN | - wxPG_IT_CHILDREN(wxPG_PROP_COLLAPSED), +wxPG_ITERATE_HIDDEN = wxPGPropertyFlags::Hidden | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Collapsed), // Iterate children of parent that is an aggregate property (ie has fixed // children). -wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE) | +wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate) | wxPG_ITERATE_PROPERTIES, // Iterate categories. // Note that even without this flag, children of categories are still iterated // through. -wxPG_ITERATE_CATEGORIES = wxPG_PROP_CATEGORY | - wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY) | - wxPG_PROP_COLLAPSED, +wxPG_ITERATE_CATEGORIES = wxPGPropertyFlags::Category | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Category) | + wxPGPropertyFlags::Collapsed, -wxPG_ITERATE_ALL_PARENTS = wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_CATEGORY, +wxPG_ITERATE_ALL_PARENTS = static_cast(wxPGPropertyFlags::MiscParent | + wxPGPropertyFlags::Aggregate | + wxPGPropertyFlags::Category), wxPG_ITERATE_ALL_PARENTS_RECURSIVELY = wxPG_ITERATE_ALL_PARENTS | wxPG_IT_CHILDREN( wxPG_ITERATE_ALL_PARENTS), -wxPG_ITERATOR_FLAGS_ALL = wxPG_PROP_PROPERTY | - wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_HIDDEN | - wxPG_PROP_CATEGORY | - wxPG_PROP_COLLAPSED, +wxPG_ITERATOR_FLAGS_ALL = static_cast(wxPGPropertyFlags::Property | + wxPGPropertyFlags::MiscParent | + wxPGPropertyFlags::Aggregate | + wxPGPropertyFlags::Hidden | + wxPGPropertyFlags::Category | + wxPGPropertyFlags::Collapsed), wxPG_ITERATOR_MASK_OP_ITEM = wxPG_ITERATOR_FLAGS_ALL, -// (wxPG_PROP_MISC_PARENT|wxPG_PROP_AGGREGATE|wxPG_PROP_CATEGORY) +// (wxPGPropertyFlags::MiscParent|wxPGPropertyFlags::Aggregate|wxPGPropertyFlags::Category) wxPG_ITERATOR_MASK_OP_PARENT = wxPG_ITERATOR_FLAGS_ALL, // Combines all flags needed to iterate through visible properties // (ie. hidden properties and children of collapsed parents are skipped). -wxPG_ITERATE_VISIBLE = static_cast(wxPG_ITERATE_PROPERTIES) | - wxPG_PROP_CATEGORY | - wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE), +wxPG_ITERATE_VISIBLE = wxPG_ITERATE_PROPERTIES | + wxPGPropertyFlags::Category | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate), // Iterate all items. wxPG_ITERATE_ALL = wxPG_ITERATE_VISIBLE | @@ -278,10 +278,10 @@ wxPG_ITERATE_DEFAULT = wxPG_ITERATE_NORMAL #define wxPG_ITERATOR_CREATE_MASKS(FLAGS, A, B) \ - A = (FLAGS ^ wxPG_ITERATOR_MASK_OP_ITEM) & \ - wxPG_ITERATOR_MASK_OP_ITEM & 0xFFFF; \ - B = ((FLAGS>>16) ^ wxPG_ITERATOR_MASK_OP_PARENT) & \ - wxPG_ITERATOR_MASK_OP_PARENT & 0xFFFF; + A = static_cast((FLAGS ^ wxPG_ITERATOR_MASK_OP_ITEM) & \ + wxPG_ITERATOR_MASK_OP_ITEM & 0xFFFF); \ + B = static_cast(((FLAGS>>16) ^ wxPG_ITERATOR_MASK_OP_PARENT) & \ + wxPG_ITERATOR_MASK_OP_PARENT & 0xFFFF); // Macro to test if children of PWC should be iterated through @@ -337,8 +337,8 @@ private: wxPGProperty* m_baseParent; // Masks are used to quickly exclude items - wxPGProperty::FlagType m_itemExMask; - wxPGProperty::FlagType m_parentExMask; + wxPGPropertyFlags m_itemExMask; + wxPGPropertyFlags m_parentExMask; }; template @@ -640,7 +640,7 @@ protected: void DoLimitPropertyEditing(wxPGProperty* p, bool limit = true) { - p->SetFlagRecursively(wxPG_PROP_NOEDITOR, limit); + p->SetFlagRecursively(wxPGPropertyFlags::NoEditor, limit); } bool DoSelectProperty(wxPGProperty* p, wxPGSelectPropertyFlags flags = wxPGSelectPropertyFlags::Null); diff --git a/include/wx/propgrid/props.h b/include/wx/propgrid/props.h index 91e6e064ab..cdae89c8e0 100644 --- a/include/wx/propgrid/props.h +++ b/include/wx/propgrid/props.h @@ -335,8 +335,8 @@ public: #if WXWIN_COMPATIBILITY_3_2 // If set, then selection of choices is static and should not be // changed (i.e. returns nullptr in GetPropertyChoices). -wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_STATIC_CHOICES is intended for internal use.") -constexpr wxPGPropertyFlags wxPG_PROP_STATIC_CHOICES = wxPG_PROP_RESERVED_1; +wxDEPRECATED_MSG("wxPG_PROP_STATIC_CHOICES is intended for internal use.") +constexpr wxPGPropertyFlags wxPG_PROP_STATIC_CHOICES = wxPGPropertyFlags::Reserved_1; #endif // WXWIN_COMPATIBILITY_3_2 // Represents a single selection from a list of choices @@ -581,8 +581,8 @@ protected: #if WXWIN_COMPATIBILITY_3_2 // Indicates first bit usable by derived properties. -wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_SHOW_FULL_FILENAME is intended for internal use.") -constexpr wxPGPropertyFlags wxPG_PROP_SHOW_FULL_FILENAME = wxPG_PROP_RESERVED_1; +wxDEPRECATED_MSG("wxPG_PROP_SHOW_FULL_FILENAME is intended for internal use.") +constexpr wxPGPropertyFlags wxPG_PROP_SHOW_FULL_FILENAME = wxPGPropertyFlags::Reserved_1; #endif // WXWIN_COMPATIBILITY_3_2 // Like wxLongStringProperty, but the button triggers file selector instead. @@ -623,8 +623,8 @@ protected: #if WXWIN_COMPATIBILITY_3_2 // Flag used in wxLongStringProperty to mark that edit button // should be enabled even in the read-only mode. -wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_ACTIVE_BTN is intended for internal use.") -constexpr wxPGPropertyFlags wxPG_PROP_ACTIVE_BTN = wxPG_PROP_RESERVED_3; +wxDEPRECATED_MSG("wxPG_PROP_ACTIVE_BTN is intended for internal use.") +constexpr wxPGPropertyFlags wxPG_PROP_ACTIVE_BTN = wxPGPropertyFlags::Reserved_3; #endif // WXWIN_COMPATIBILITY_3_2 // Like wxStringProperty, but has a button that triggers a small text diff --git a/interface/wx/propgrid/property.h b/interface/wx/propgrid/property.h index debf028d9a..191a2fc729 100644 --- a/interface/wx/propgrid/property.h +++ b/interface/wx/propgrid/property.h @@ -235,157 +235,163 @@ struct wxPGPaintData @{ */ -enum wxPGPropertyFlags +enum class wxPGPropertyFlags : int { + /** No flags. + @hideinitializer + */ + Null = 0, -/** Indicates bold font. - @hideinitializer -*/ -wxPG_PROP_MODIFIED = 0x0001, + /** Indicates bold font. + @hideinitializer + */ + Modified = 0x0001, -/** Disables ('greyed' text and editor does not activate) property. - @hideinitializer -*/ -wxPG_PROP_DISABLED = 0x0002, + /** Disables ('greyed' text and editor does not activate) property. + @hideinitializer + */ + Disabled = 0x0002, -/** Hider button will hide this property. - @hideinitializer -*/ -wxPG_PROP_HIDDEN = 0x0004, + /** Hider button will hide this property. + @hideinitializer + */ + 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. - @hideinitializer -*/ -wxPG_PROP_CUSTOMIMAGE = 0x0008, + /** 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. + @hideinitializer + */ + CustomImage = 0x0008, -/** Do not create text based editor for this property (but button-triggered - dialog and choice are ok). - @hideinitializer -*/ -wxPG_PROP_NOEDITOR = 0x0010, + /** Do not create text based editor for this property (but button-triggered + dialog and choice are ok). + @hideinitializer + */ + NoEditor = 0x0010, -/** Property is collapsed, ie. it's children are hidden. - @hideinitializer -*/ -wxPG_PROP_COLLAPSED = 0x0020, + /** Property is collapsed, ie. it's children are hidden. + @hideinitializer + */ + Collapsed = 0x0020, -/** - If property is selected, then indicates that validation failed for pending - value. + /** If property is selected, then indicates that validation failed for pending + value. - If property is not selected, then indicates that the actual property - value has failed validation (NB: this behaviour is not currently supported, - but may be used in the future). - @hideinitializer -*/ -wxPG_PROP_INVALID_VALUE = 0x0040, + If property is not selected, then indicates that the actual property + value has failed validation (NB: this behaviour is not currently supported, + but may be used in the future). + @hideinitializer + */ + InvalidValue = 0x0040, -/** Switched via SetWasModified(). Temporary flag - only used when - setting/changing property value. - @hideinitializer -*/ -wxPG_PROP_WAS_MODIFIED = 0x0200, + /** Switched via SetWasModified(). Temporary flag - only used when + setting/changing property value. + @hideinitializer + */ + WasModified = 0x0200, -/** - If set, then child properties (if any) are private, and should be - "invisible" to the application. - @hideinitializer -*/ -wxPG_PROP_AGGREGATE = 0x0400, + /** If set, then child properties (if any) are private, and should be + "invisible" to the application. + @hideinitializer + */ + Aggregate = 0x0400, -/** If set, then child properties (if any) are copies and should not - be deleted in dtor. - @hideinitializer -*/ -wxPG_PROP_CHILDREN_ARE_COPIES = 0x0800, + /** If set, then child properties (if any) are copies and should not + be deleted in dtor. + @hideinitializer + */ + ChildrenAreCopies = 0x0800, -/** - Classifies this item as a non-category. + /** Classifies this item as a non-category. + Used for faster item type identification. + @hideinitializer + */ + Property = 0x1000, - Used for faster item type identification. - @hideinitializer -*/ -wxPG_PROP_PROPERTY = 0x1000, -/** - Classifies this item as a category. + /** Classifies this item as a category. + Used for faster item type identification. + @hideinitializer + */ + Category = 0x2000, - Used for faster item type identification. - @hideinitializer -*/ -wxPG_PROP_CATEGORY = 0x2000, + /** Classifies this item as a property that has children, but is not aggregate + (i.e. children are not private). + @hideinitializer + */ + MiscParent = 0x4000, -/** Classifies this item as a property that has children, but is not aggregate - (i.e. children are not private). - @hideinitializer -*/ -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. - @hideinitializer -*/ -wxPG_PROP_READONLY = 0x8000, + /** 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. + @hideinitializer + */ + ReadOnly = 0x8000, -// -// NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS -// + // + // 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. - @hideinitializer -*/ -wxPG_PROP_COMPOSED_VALUE = 0x00010000, + /** Property's value is composed from values of child properties. + @remarks + This flag cannot be used with property iterators. + @hideinitializer + */ + ComposedValue = 0x00010000, -/** Common value of property is selectable in editor. - @remarks - This flag cannot be used with property iterators. - @hideinitializer -*/ -wxPG_PROP_USES_COMMON_VALUE = 0x00020000, + /** Common value of property is selectable in editor. + @remarks + This flag cannot be used with property iterators. + @hideinitializer + */ + UsesCommonValue = 0x00020000, -/** Property can be set to unspecified value via editor. - Currently, this applies to following properties: - - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty: - Clear the text field + /** 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. + @remarks + This flag cannot be used with property iterators. - @see wxPGProperty::SetAutoUnspecified() - @hideinitializer -*/ -wxPG_PROP_AUTO_UNSPECIFIED = 0x00040000, + @see wxPGProperty::SetAutoUnspecified() + @hideinitializer + */ -/** Indicates that the property is being deleted and should be ignored. - @hideinitializer -*/ -wxPG_PROP_BEING_DELETED = 0x00200000 + /** Indicates that the property is being deleted and should be ignored. + @remarks + This flag cannot be used with property iterators. + @hideinitializer + */ + BeingDeleted = 0x00080000, + + /** If set, full path is shown in wxFileProperty. + @remarks + This flag cannot be used with property iterators. + @hideinitializer + */ + ShowFullFileName = 0x00100000, + + /** Topmost flag. + @hideinitializer + */ + Max = ShowFullFileName, + + /** Property with children must have one of these set, otherwise iterators + will not work correctly. + Code should automatically take care of this, however. + @hideinitializer + */ + ParentalFlags = Aggregate | Category | MiscParent, + + /** Combination of flags that can be stored by GetFlagsAsString(). + @hideinitializer + */ + StringStoredFlags = Disabled | Hidden | NoEditor | Collapsed }; -/** Topmost flag. - @hideinitializer -*/ -constexpr wxPGPropertyFlags 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)) - -/** Combination of flags that can be stored by GetFlagsAsString(). -*/ -#define wxPG_STRING_STORED_FLAGS \ - (wxPG_PROP_DISABLED|wxPG_PROP_HIDDEN|wxPG_PROP_NOEDITOR|wxPG_PROP_COLLAPSED) - /** @} */ @@ -591,13 +597,6 @@ constexpr wxPGPropertyFlags wxPG_PROP_MAX = wxPG_PROP_AUTO_UNSPECIFIED; } @endcode - Also, if you wish not to have line breaks and tabs translated to - escape sequences, then do following in constructor of your subclass: - - @code - m_flags |= wxPG_PROP_NO_ESCAPE; - @endcode - Supported special attributes: - ::wxPG_DIALOG_TITLE: Sets a specific title for the text editor dialog. @@ -867,8 +866,6 @@ constexpr wxPGPropertyFlags wxPG_PROP_MAX = wxPG_PROP_AUTO_UNSPECIFIED; class wxPGProperty : public wxObject { public: - typedef wxUint32 FlagType; - /** Virtual destructor. It is customary for derived properties to implement this. */ @@ -1285,8 +1282,8 @@ public: 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. + type will automatically be set up to wxPGPropertyFlags::Aggregate. + In other words, all properties of this property will become private. */ void AddPrivateChild( wxPGProperty* prop ); @@ -1331,7 +1328,7 @@ public: intended almost exclusively for internal use. So, for example, if you want to disable a property, call @code Enable(false) @endcode instead of setting - ::wxPG_PROP_DISABLED flag. + wxPGPropertyFlags::Disabled flag. @see HasFlag(), GetFlags() */ @@ -1549,12 +1546,12 @@ public: const wxString& GetHelpString() const; /** Gets flags as a'|' delimited string. Note that flag names are not - prepended with 'wxPG_PROP_'. + prepended with 'wxPGPropertyFlags'. @param flagsMask String will only be made to include flags combined by this parameter. */ - wxString GetFlagsAsString( FlagType flagsMask ) const; + wxString GetFlagsAsString(wxPGPropertyFlags flagsMask) const; /** Returns position in parent's array. @@ -1667,15 +1664,10 @@ public: */ bool HasFlag(wxPGPropertyFlags flag) const; - /** - Returns @true if property has given flag set. - */ - bool HasFlag(FlagType flag) const; - /** Returns @true if property has all given flags set. */ - bool HasFlagsExact(FlagType flags) const; + bool HasFlagsExact(wxPGPropertyFlags flags) const; /** Returns @true if property has even one visible child. @@ -1912,7 +1904,7 @@ public: void SetExpanded( bool expanded ); /** Sets flags from a '|' delimited string. Note that flag names are not - prepended with 'wxPG_PROP_'. + prepended with 'wxPGPropertyFlags'. */ void SetFlagsFromString( const wxString& str ); @@ -1971,14 +1963,14 @@ public: Changes what sort of parent this property is for its children. @param flag - Use one of the following values: ::wxPG_PROP_MISC_PARENT (for generic - parents), ::wxPG_PROP_CATEGORY (for categories), or - ::wxPG_PROP_AGGREGATE (for derived property classes with private - children). + Use one of the following values: wxPGPropertyFlags::MiscParent (for + generic parents), wxPGPropertyFlags::Category (for categories), or + wxPGPropertyFlags::Aggregate (for derived property classes with + private children). @remarks You generally do not need to call this function. */ - void SetParentalType( int flag ); + void SetParentalType(wxPGPropertyFlags flag); /** Sets property's text colour. @@ -2157,7 +2149,7 @@ protected: const wxPGCell& preparedCell, const wxPGCell& srcData, wxPGCellData* unmodCellData, - FlagType ignoreWithFlags, + wxPGPropertyFlags ignoreWithFlags, bool recursively ); /** @@ -2171,7 +2163,7 @@ protected: @since 3.1.0 */ - void ClearCells(FlagType ignoreWithFlags, bool recursively); + void ClearCells(wxPGPropertyFlags ignoreWithFlags, bool recursively); /** Makes sure m_cells has size of column+1 (or more). diff --git a/interface/wx/propgrid/propgrid.h b/interface/wx/propgrid/propgrid.h index 886704a705..29c1e25cbb 100644 --- a/interface/wx/propgrid/propgrid.h +++ b/interface/wx/propgrid/propgrid.h @@ -166,8 +166,8 @@ wxPG_EX_NATIVE_DOUBLE_BUFFERING = 0x00080000, /** Set this style to let user have ability to set values of properties to - unspecified state. Same as setting wxPG_PROP_AUTO_UNSPECIFIED for - all properties. + unspecified state. Same as setting wxPGPropertyFlags::AutoUnspecified + for all properties. @hideinitializer */ wxPG_EX_AUTO_UNSPECIFIED_VALUES = 0x00200000, @@ -897,7 +897,8 @@ public: Note that @a column must not be equal to 1, as the second column is always editable and can be made read-only only on cell-by-cell basis - using @code wxPGProperty::ChangeFlag(wxPG_PROP_READONLY, true) @endcode + using + @code wxPGProperty::ChangeFlag(wxPGPropertyFlags::ReadOnly, true) @endcode @see BeginLabelEdit(), EndLabelEdit() */ @@ -1200,7 +1201,7 @@ public: /** Override to customize resetting of property validation failure status. @remarks - Property is guaranteed to have flag ::wxPG_PROP_INVALID_VALUE set. + Property is guaranteed to have flag wxPGPropertyFlags::InvalidValue set. */ virtual void DoOnValidationFailureReset( wxPGProperty* property ); diff --git a/interface/wx/propgrid/propgridiface.h b/interface/wx/propgrid/propgridiface.h index 35b65c1362..acbb9a4263 100644 --- a/interface/wx/propgrid/propgridiface.h +++ b/interface/wx/propgrid/propgridiface.h @@ -368,7 +368,7 @@ public: See @ref propgrid_iterator_flags. */ void GetPropertiesWithFlag( wxArrayPGProperty* targetArr, - wxPGProperty::FlagType flags, + wxPGPropertyFlags flags, bool inverse = false, int iterFlags = (wxPG_ITERATE_PROPERTIES|wxPG_ITERATE_HIDDEN|wxPG_ITERATE_CATEGORIES) ) const; diff --git a/interface/wx/propgrid/propgridpagestate.h b/interface/wx/propgrid/propgridpagestate.h index 08180fe7c9..8040ab6b36 100644 --- a/interface/wx/propgrid/propgridpagestate.h +++ b/interface/wx/propgrid/propgridpagestate.h @@ -120,26 +120,26 @@ enum wxPG_ITERATOR_FLAGS aggregate or hidden items by default). @hideinitializer */ -wxPG_ITERATE_PROPERTIES = wxPG_PROP_PROPERTY | - wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_COLLAPSED | - wxPG_IT_CHILDREN(wxPG_PROP_MISC_PARENT) | - wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY), +wxPG_ITERATE_PROPERTIES = wxPGPropertyFlags::Property | + wxPGPropertyFlags::MiscParent | + wxPGPropertyFlags::Aggregate | + wxPGPropertyFlags::Collapsed | + wxPG_IT_CHILDREN(wxPGPropertyFlags::MiscParent) | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Category), /** Iterate children of collapsed parents, and individual items that are hidden. @hideinitializer */ -wxPG_ITERATE_HIDDEN = wxPG_PROP_HIDDEN | - wxPG_IT_CHILDREN(wxPG_PROP_COLLAPSED), +wxPG_ITERATE_HIDDEN = wxPGPropertyFlags::Hidden | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Collapsed), /** Iterate children of parent that is an aggregate property (ie has fixed children). @hideinitializer */ -wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE) | +wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate) | wxPG_ITERATE_PROPERTIES, /** Iterate categories. @@ -147,16 +147,16 @@ wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE) | through. @hideinitializer */ -wxPG_ITERATE_CATEGORIES = wxPG_PROP_CATEGORY | - wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY) | - wxPG_PROP_COLLAPSED, +wxPG_ITERATE_CATEGORIES = wxPGPropertyFlags::Category | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Category) | + wxPGPropertyFlags::Collapsed, /** @hideinitializer */ -wxPG_ITERATE_ALL_PARENTS = wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_CATEGORY, +wxPG_ITERATE_ALL_PARENTS = wxPGPropertyFlags::MiscParent | + wxPGPropertyFlags::Aggregate | + wxPGPropertyFlags::Category, /** @hideinitializer @@ -168,19 +168,18 @@ wxPG_ITERATE_ALL_PARENTS_RECURSIVELY = wxPG_ITERATE_ALL_PARENTS | /** @hideinitializer */ -wxPG_ITERATOR_FLAGS_ALL = wxPG_PROP_PROPERTY | - wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_HIDDEN | - wxPG_PROP_CATEGORY | - wxPG_PROP_COLLAPSED, +wxPG_ITERATOR_FLAGS_ALL = wxPGPropertyFlags::Property | + wxPGPropertyFlags::MiscParent | + wxPGPropertyFlags::Aggregate | + wxPGPropertyFlags::Hidden | + wxPGPropertyFlags::Category | + wxPGPropertyFlags::Collapsed, /** @hideinitializer */ wxPG_ITERATOR_MASK_OP_ITEM = wxPG_ITERATOR_FLAGS_ALL, -// (wxPG_PROP_MISC_PARENT|wxPG_PROP_AGGREGATE|wxPG_PROP_CATEGORY) /** @hideinitializer */ @@ -192,8 +191,8 @@ wxPG_ITERATOR_MASK_OP_PARENT = wxPG_ITERATOR_FLAGS_ALL, @hideinitializer */ wxPG_ITERATE_VISIBLE = wxPG_ITERATE_PROPERTIES | - wxPG_PROP_CATEGORY | - wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE), + wxPGPropertyFlags::Category | + wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate), /** Iterate all items. diff --git a/src/propgrid/advprops.cpp b/src/propgrid/advprops.cpp index f7f4ef3f5d..2085242197 100644 --- a/src/propgrid/advprops.cpp +++ b/src/propgrid/advprops.cpp @@ -758,14 +758,6 @@ void wxFontProperty::OnCustomPaint(wxDC& dc, // wxSystemColourProperty // ----------------------------------------------------------------------- -#if WXWIN_COMPATIBILITY_3_2 -// wxEnumProperty based classes cannot use wxPG_PROP_RESERVED_1 -wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_HIDE_CUSTOM_COLOUR is intended for internal use.") -constexpr wxPGPropertyFlags wxPG_PROP_HIDE_CUSTOM_COLOUR = wxPG_PROP_RESERVED_2; -wxDEPRECATED_BUT_USED_INTERNALLY_MSG("wxPG_PROP_COLOUR_HAS_ALPHA is intended for internal use.") -constexpr wxPGPropertyFlags wxPG_PROP_COLOUR_HAS_ALPHA = wxPG_PROP_RESERVED_3; -#endif // if WXWIN_COMPATIBILITY_3_2 - #include "wx/colordlg.h" static const char* const gs_cp_es_syscolour_labels[] = { @@ -846,7 +838,7 @@ void wxSystemColourProperty::Init( int type, const wxColour& colour ) cpv.Init(type, colour.IsOk() ? colour : *wxWHITE); - m_flags |= wxPG_PROP_STATIC_CHOICES; // Colour selection cannot be changed. + m_flags |= wxPGPropertyFlags_StaticChoices; // Colour selection cannot be changed. m_value = WXVARIANT(cpv); @@ -1024,7 +1016,7 @@ void wxSystemColourProperty::OnSetValue() } if ( cpv.m_type < wxPG_COLOUR_WEB_BASE || - (m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + !!(m_flags & wxPGPropertyFlags_HideCustomColour) ) { ind = GetIndexForValue(cpv.m_type); } @@ -1049,7 +1041,7 @@ void wxSystemColourProperty::OnSetValue() ind = ColToInd(col); if ( ind == wxNOT_FOUND && - !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + !(m_flags & wxPGPropertyFlags_HideCustomColour) ) ind = GetCustomColourIndex(); } @@ -1070,7 +1062,7 @@ wxString wxSystemColourProperty::ColourToString( const wxColour& col, if ( index == wxNOT_FOUND ) { - if ( (argFlags & wxPG_FULL_VALUE) || (m_flags & wxPG_PROP_COLOUR_HAS_ALPHA) ) + if ( (argFlags & wxPG_FULL_VALUE) || !!(m_flags & wxPGPropertyFlags_ColourHasAlpha) ) { return wxString::Format(wxS("(%i,%i,%i,%i)"), (int)col.Red(), @@ -1108,7 +1100,7 @@ wxString wxSystemColourProperty::ValueToString( wxVariant& value, // If custom colour was selected, use invalid index, so that // ColourToString() will return properly formatted colour text. if ( index == GetCustomColourIndex() && - !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + !(m_flags & wxPGPropertyFlags_HideCustomColour) ) index = wxNOT_FOUND; } else @@ -1150,7 +1142,7 @@ bool wxSystemColourProperty::QueryColourFromUser( wxVariant& variant ) const wxColourData data; data.SetChooseFull(true); - data.SetChooseAlpha((m_flags & wxPG_PROP_COLOUR_HAS_ALPHA) != 0); + data.SetChooseAlpha(!!(m_flags & wxPGPropertyFlags_ColourHasAlpha)); data.SetColour(val.m_colour); for ( int i = 0; i < wxColourData::NUM_CUSTOM; i++ ) { @@ -1223,7 +1215,7 @@ bool wxSystemColourProperty::OnEvent( wxPropertyGrid* propgrid, int index = cb->GetSelection(); if ( index == GetCustomColourIndex() && - !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + !(m_flags & wxPGPropertyFlags_HideCustomColour) ) askColour = true; } } @@ -1249,7 +1241,7 @@ public: dc.SetPen(*wxBLACK_PEN); if ( item >= 0 && - ( item < (int)(GetCustomColourIndex) || (prop->HasFlag(wxPG_PROP_HIDE_CUSTOM_COLOUR))) + ( item < (int)(GetCustomColourIndex) || (prop->HasFlag(wxPGPropertyFlags_HideCustomColour))) ) { int colInd; @@ -1297,7 +1289,7 @@ void wxSystemColourProperty::OnCustomPaint( wxDC& dc, const wxRect& rect, if ( paintdata.m_choiceItem >= 0 && paintdata.m_choiceItem < (int)m_choices.GetCount() && (paintdata.m_choiceItem != GetCustomColourIndex() || - m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + !!(m_flags & wxPGPropertyFlags_HideCustomColour)) ) { int colInd = m_choices[paintdata.m_choiceItem].GetValue(); col = GetColour( colInd ); @@ -1396,7 +1388,7 @@ bool wxSystemColourProperty::StringToValue( wxVariant& value, const wxString& te } if ( !conversionSuccess && m_choices.GetCount() && - !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) && + !(m_flags & wxPGPropertyFlags_HideCustomColour) && isCustomColour ) { if ( !(argFlags & wxPG_EDITABLE_VALUE )) @@ -1463,24 +1455,24 @@ bool wxSystemColourProperty::DoSetAttribute( const wxString& name, wxVariant& va { bool allow = value.GetBool(); - if ( allow && (m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + if ( allow && !!(m_flags & wxPGPropertyFlags_HideCustomColour) ) { // Show custom choice /* TRANSLATORS: Custom colour choice entry */ m_choices.Add(_("Custom"), wxPG_COLOUR_CUSTOM); - m_flags &= ~(wxPG_PROP_HIDE_CUSTOM_COLOUR); + m_flags &= ~(wxPGPropertyFlags_HideCustomColour); } - else if ( !allow && !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + else if ( !allow && !(m_flags & wxPGPropertyFlags_HideCustomColour) ) { // Hide custom choice m_choices.RemoveAt(GetCustomColourIndex()); - m_flags |= wxPG_PROP_HIDE_CUSTOM_COLOUR; + m_flags |= wxPGPropertyFlags_HideCustomColour; } return true; } else if ( name == wxPG_COLOUR_HAS_ALPHA ) { - ChangeFlag(wxPG_PROP_COLOUR_HAS_ALPHA, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_ColourHasAlpha, value.GetBool()); return true; } return wxEnumProperty::DoSetAttribute(name, value); @@ -1594,7 +1586,7 @@ wxColourProperty::wxColourProperty( const wxString& label, Init( value ); - m_flags |= wxPG_PROP_TRANSLATE_CUSTOM; + m_flags |= wxPGPropertyFlags_TranslateCustom; } void wxColourProperty::Init( wxColour colour ) @@ -1716,7 +1708,7 @@ wxCursorProperty::wxCursorProperty( const wxString& label, const wxString& name, &gs_wxCursorProperty_choicesCache, value ) { - m_flags |= wxPG_PROP_STATIC_CHOICES; // Cursor selection cannot be changed. + m_flags |= wxPGPropertyFlags_StaticChoices; // Cursor selection cannot be changed. } wxString wxCursorProperty::ValueToString(wxVariant& value, int argFlags) const diff --git a/src/propgrid/editors.cpp b/src/propgrid/editors.cpp index b7ba31714e..de9f230bf3 100644 --- a/src/propgrid/editors.cpp +++ b/src/propgrid/editors.cpp @@ -192,7 +192,7 @@ void wxPGEditor::SetControlAppearance( wxPropertyGrid* pg, else if ( oCell.HasText() ) { tcText = property->GetValueAsString( - property->HasFlag(wxPG_PROP_READONLY)?0:wxPG_EDITABLE_VALUE); + property->HasFlag(wxPGPropertyFlags::ReadOnly)?0:wxPG_EDITABLE_VALUE); changeText = true; } @@ -280,18 +280,18 @@ wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid, // // If has children, and limited editing is specified, then don't create. - if ( property->HasFlag(wxPG_PROP_NOEDITOR) && + if ( property->HasFlag(wxPGPropertyFlags::NoEditor) && property->HasAnyChild() ) return nullptr; int argFlags = 0; - if ( !property->HasFlag(wxPG_PROP_READONLY) && + if ( !property->HasFlag(wxPGPropertyFlags::ReadOnly) && !property->IsValueUnspecified() ) argFlags |= wxPG_EDITABLE_VALUE; text = property->GetValueAsString(argFlags); int flags = 0; - if ( property->HasFlag(wxPG_PROP_PASSWORD) && + if ( property->HasFlag(wxPGPropertyFlags_Password) && wxDynamicCast(property, wxStringProperty) ) flags |= wxTE_PASSWORD; @@ -310,7 +310,7 @@ void wxPGTextCtrlEditor::DrawValue( wxDC& dc, wxPGProperty* property, const wxRe // Code below should no longer be needed, as the obfuscation // is now done in GetValueAsString. - /*if ( property->HasFlag(wxPG_PROP_PASSWORD) && + /*if ( property->HasFlag(wxPGPropertyFlags_Password) && wxDynamicCast(property, wxStringProperty) ) { size_t a = drawStr.length(); @@ -435,7 +435,7 @@ void wxPGTextCtrlEditor_OnFocus( wxPGProperty* property, { // Make sure there is correct text (instead of unspecified value // indicator or hint text) - int flags = property->HasFlag(wxPG_PROP_READONLY) ? + int flags = property->HasFlag(wxPGPropertyFlags::ReadOnly) ? 0 : wxPG_EDITABLE_VALUE; wxString correctText = property->GetValueAsString(flags); @@ -494,7 +494,7 @@ protected: wxMilliClock_t t = ::wxGetLocalTimeMillis(); wxEventType evtType = event.GetEventType(); - if ( m_property->HasFlag(wxPG_PROP_USE_DCC) && + if ( m_property->HasFlag(wxPGPropertyFlags_UseDCC) && !m_combo->IsPopupShown() ) { // Just check that it is in the text area @@ -799,11 +799,11 @@ void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb, { renderFlags |= wxPGCellRenderer::Control; - // If wxPG_PROP_CUSTOMIMAGE was set, then that means any custom + // If wxPGPropertyFlags::CustomImage was set, then that means any custom // image will not appear on the control row (it may be too // large to fit, for instance). Also do not draw custom image // if no choice was selected. - if ( !p->HasFlag(wxPG_PROP_CUSTOMIMAGE) ) + if ( !p->HasFlag(wxPGPropertyFlags::CustomImage) ) useCustomPaintProcedure = false; } else @@ -941,7 +941,7 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid, // Since it is not possible (yet) to create a read-only combo box in // the same sense that wxTextCtrl is read-only, simply do not create // the control in this case. - if ( property->HasFlag(wxPG_PROP_READONLY) ) + if ( property->HasFlag(wxPGPropertyFlags::ReadOnly) ) return nullptr; const wxPGChoices& choices = property->GetChoices(); @@ -949,7 +949,7 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid, int index = property->GetChoiceSelection(); int argFlags = 0; - if ( !property->HasFlag(wxPG_PROP_READONLY) && + if ( !property->HasFlag(wxPGPropertyFlags::ReadOnly) && !property->IsValueUnspecified() ) argFlags |= wxPG_EDITABLE_VALUE; defString = property->GetValueAsString(argFlags); @@ -967,7 +967,7 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid, int odcbFlags = extraStyle | wxBORDER_NONE | wxTE_PROCESS_ENTER; - if ( property->HasFlag(wxPG_PROP_USE_DCC) && + if ( property->HasFlag(wxPGPropertyFlags_UseDCC) && wxDynamicCast(property, wxBoolProperty) ) odcbFlags |= wxODCB_DCLICK_CYCLES; @@ -1343,7 +1343,7 @@ wxPGWindowList wxPGTextCtrlAndButtonEditor::CreateControls( wxPropertyGrid* prop { wxWindow* wnd2; wxWindow* wnd = propGrid->GenerateEditorTextCtrlAndButton( pos, sz, &wnd2, - property->HasFlag(wxPG_PROP_NOEDITOR), property); + property->HasFlag(wxPGPropertyFlags::NoEditor), property); return wxPGWindowList(wnd, wnd2); } @@ -1627,7 +1627,7 @@ wxPGWindowList wxPGCheckBoxEditor::CreateControls( wxPropertyGrid* propGrid, const wxPoint& pos, const wxSize& size ) const { - if ( property->HasFlag(wxPG_PROP_READONLY) ) + if ( property->HasFlag(wxPGPropertyFlags::ReadOnly) ) return nullptr; wxPoint pt = pos; @@ -1899,7 +1899,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, int tcFlags = wxTE_PROCESS_ENTER | extraStyle; - if ( prop->HasFlag(wxPG_PROP_READONLY) && forColumn == 1 ) + if ( prop->HasFlag(wxPGPropertyFlags::ReadOnly) && forColumn == 1 ) tcFlags |= wxTE_READONLY; wxPoint p(pos); @@ -1952,7 +1952,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, // This code is repeated from DoSelectProperty(). However, font boldness // must be set before margin is set up below in FixPosForTextCtrl(). if ( forColumn == 1 && - prop->HasFlag(wxPG_PROP_MODIFIED) && + prop->HasFlag(wxPGPropertyFlags::Modified) && HasFlag(wxPG_BOLD_MODIFIED) ) tc->SetFont( m_captionFont ); @@ -2019,7 +2019,7 @@ wxWindow* wxPropertyGrid::GenerateEditorButton( const wxPoint& pos, const wxSize p.x = pos.x + sz.x - s.x; but->Move(p); - if ( selected->HasFlag(wxPG_PROP_READONLY) && !selected->HasFlag(wxPG_PROP_ACTIVE_BTN) ) + if ( selected->HasFlag(wxPGPropertyFlags::ReadOnly) && !selected->HasFlag(wxPGPropertyFlags_ActiveButton) ) but->Disable(); return but; @@ -2048,7 +2048,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrlAndButton( const wxPoint& pos, wxString text; if ( !property->IsValueUnspecified() ) - text = property->GetValueAsString(property->HasFlag(wxPG_PROP_READONLY)?0:wxPG_EDITABLE_VALUE); + text = property->GetValueAsString(property->HasFlag(wxPGPropertyFlags::ReadOnly)?0:wxPG_EDITABLE_VALUE); return GenerateEditorTextCtrl(pos, sz, text, but, 0, property->GetMaxLength()); } diff --git a/src/propgrid/property.cpp b/src/propgrid/property.cpp index d7cc69f623..a78d89d078 100644 --- a/src/propgrid/property.cpp +++ b/src/propgrid/property.cpp @@ -582,7 +582,7 @@ void wxPGProperty::Init() m_maxLen = 0; // infinite maximum length - m_flags = wxPG_PROP_PROPERTY; + m_flags = wxPGPropertyFlags::Property; m_depth = 1; @@ -634,24 +634,24 @@ void wxPGProperty::InitAfterAdded( wxPropertyGridPageState* pageState, // If in hideable adding mode, or if assigned parent is hideable, then // make this one hideable. if ( - ( !parentIsRoot && parent->HasFlag(wxPG_PROP_HIDDEN) ) || + ( !parentIsRoot && parent->HasFlag(wxPGPropertyFlags::Hidden) ) || ( propgrid && (propgrid->HasInternalFlag(wxPropertyGrid::wxPG_FL_ADDING_HIDEABLES)) ) ) - SetFlag( wxPG_PROP_HIDDEN ); + SetFlag(wxPGPropertyFlags::Hidden); // Set custom image flag. int custImgHeight = OnMeasureImage().y; if ( custImgHeight == wxDefaultCoord ) { - SetFlag(wxPG_PROP_CUSTOMIMAGE); + SetFlag(wxPGPropertyFlags::CustomImage); } if ( propgrid && (propgrid->HasFlag(wxPG_LIMITED_EDITING)) ) - SetFlag(wxPG_PROP_NOEDITOR); + SetFlag(wxPGPropertyFlags::NoEditor); // Make sure parent has some parental flags - if ( !parent->HasFlag(wxPG_PROP_PARENTAL_FLAGS) ) - parent->SetParentalType(wxPG_PROP_MISC_PARENT); + if ( !parent->HasFlag(wxPGPropertyFlags::ParentalFlags) ) + parent->SetParentalType(wxPGPropertyFlags::MiscParent); if ( !IsCategory() ) { @@ -707,14 +707,14 @@ void wxPGProperty::InitAfterAdded( wxPropertyGridPageState* pageState, if ( HasAnyChild() ) { // Check parental flags - wxASSERT_MSG( ((m_flags & wxPG_PROP_PARENTAL_FLAGS) == - wxPG_PROP_AGGREGATE) || - ((m_flags & wxPG_PROP_PARENTAL_FLAGS) == - wxPG_PROP_MISC_PARENT), + wxASSERT_MSG( ((m_flags & wxPGPropertyFlags::ParentalFlags) == + wxPGPropertyFlags::Aggregate) || + ((m_flags & wxPGPropertyFlags::ParentalFlags) == + wxPGPropertyFlags::MiscParent), wxS("wxPGProperty parental flags set incorrectly at ") wxS("this time") ); - if ( HasFlag(wxPG_PROP_AGGREGATE) ) + if ( HasFlag(wxPGPropertyFlags::Aggregate) ) { // Properties with private children are not expanded by default. SetExpanded(false); @@ -734,7 +734,7 @@ void wxPGProperty::InitAfterAdded( wxPropertyGridPageState* pageState, } if ( propgrid && propgrid->HasExtraStyle(wxPG_EX_AUTO_UNSPECIFIED_VALUES) ) - SetFlagRecursively(wxPG_PROP_AUTO_UNSPECIFIED, true); + SetFlagRecursively(wxPGPropertyFlags::AutoUnspecified, true); } } @@ -1042,7 +1042,7 @@ void wxPGProperty::DoGenerateComposedValue( wxString& text, if ( !childValue.IsNull() ) { if ( overridesLeft && - curChild->HasFlag(wxPG_PROP_COMPOSED_VALUE) && + curChild->HasFlag(wxPGPropertyFlags::ComposedValue) && childValue.IsType(wxPG_VARIANT_TYPE_LIST) ) { wxVariantList& childList = childValue.GetList(); @@ -1217,8 +1217,8 @@ bool wxPGProperty::StringToValue( wxVariant& v, const wxString& text, int argFla // Add only if editable or setting programmatically if ( (argFlags & wxPG_PROGRAMMATIC_VALUE) || - (!child->HasFlag(wxPG_PROP_DISABLED) && - !child->HasFlag(wxPG_PROP_READONLY)) ) + (!child->HasFlag(wxPGPropertyFlags::Disabled) && + !child->HasFlag(wxPGPropertyFlags::ReadOnly)) ) { if ( len > 0 ) { @@ -1296,8 +1296,8 @@ bool wxPGProperty::StringToValue( wxVariant& v, const wxString& text, int argFla wxVariant variant(oldChildValue); if ( (argFlags & wxPG_PROGRAMMATIC_VALUE) || - (!child->HasFlag(wxPG_PROP_DISABLED) && - !child->HasFlag(wxPG_PROP_READONLY)) ) + (!child->HasFlag(wxPGPropertyFlags::Disabled) && + !child->HasFlag(wxPGPropertyFlags::ReadOnly)) ) { wxString childName = child->GetBaseName(); @@ -1474,7 +1474,7 @@ void wxPGProperty::SetValue( wxVariant value, wxVariant* pList, wxPGSetValueFlag { // // However, situation is different for composed string properties - if ( HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( HasFlag(wxPGPropertyFlags::ComposedValue) ) { tempListVariant = value; pList = &tempListVariant; @@ -1486,7 +1486,7 @@ void wxPGProperty::SetValue( wxVariant value, wxVariant* pList, wxPGSetValueFlag //wxLogDebug(wxS(">> %s.SetValue() adapted list value to type '%s'"),GetName(),value.GetType()); } - if ( HasFlag( wxPG_PROP_AGGREGATE) ) + if ( HasFlag(wxPGPropertyFlags::Aggregate) ) flags |= wxPGSetValueFlags::Aggregated; if ( pList && !pList->IsNull() ) @@ -1511,7 +1511,7 @@ void wxPGProperty::SetValue( wxVariant value, wxVariant* pList, wxPGSetValueFlag //wxLogDebug(wxS("%i: child = %s, childValue.GetType()=%s"),i,child->GetBaseName(),childValue.GetType()); if ( childValue.IsType(wxPG_VARIANT_TYPE_LIST) ) { - if ( child->HasFlag(wxPG_PROP_AGGREGATE) && !(flags & wxPGSetValueFlags::Aggregated) ) + if ( child->HasFlag(wxPGPropertyFlags::Aggregate) && !(flags & wxPGSetValueFlags::Aggregated) ) { wxVariant listRefCopy = childValue; child->SetValue(childValue, &listRefCopy, flags| wxPGSetValueFlags::FromParent); @@ -1526,10 +1526,10 @@ void wxPGProperty::SetValue( wxVariant value, wxVariant* pList, wxPGSetValueFlag { // For aggregate properties, we will trust RefreshChildren() // to update child values. - if ( !HasFlag(wxPG_PROP_AGGREGATE) ) + if ( !HasFlag(wxPGPropertyFlags::Aggregate) ) child->SetValue(childValue, nullptr, flags| wxPGSetValueFlags::FromParent); if ( !!(flags & wxPGSetValueFlags::ByUser) ) - child->SetFlag(wxPG_PROP_MODIFIED); + child->SetFlag(wxPGPropertyFlags::Modified); } } i++; @@ -1549,9 +1549,9 @@ void wxPGProperty::SetValue( wxVariant value, wxVariant* pList, wxPGSetValueFlag } if ( !!(flags & wxPGSetValueFlags::ByUser) ) - SetFlag(wxPG_PROP_MODIFIED); + SetFlag(wxPGPropertyFlags::Modified); - if ( HasFlag(wxPG_PROP_AGGREGATE) ) + if ( HasFlag(wxPGPropertyFlags::Aggregate) ) RefreshChildren(); } else @@ -1683,7 +1683,7 @@ void wxPGProperty::Enable( bool enable ) void wxPGProperty::DoEnable( bool enable ) { - ChangeFlag(wxPG_PROP_DISABLED, !enable); + ChangeFlag(wxPGPropertyFlags::Disabled, !enable); // Apply same to sub-properties as well for ( wxPGProperty* child : m_children ) @@ -1722,7 +1722,7 @@ void wxPGProperty::AdaptiveSetCell( unsigned int firstCol, const wxPGCell& cell, const wxPGCell& srcData, wxPGCellData* unmodCellData, - FlagType ignoreWithFlags, + wxPGPropertyFlags ignoreWithFlags, bool recursively ) { // @@ -1764,7 +1764,7 @@ void wxPGProperty::AdaptiveSetCell( unsigned int firstCol, } } -void wxPGProperty::ClearCells(FlagType ignoreWithFlags, bool recursively) +void wxPGProperty::ClearCells(wxPGPropertyFlags ignoreWithFlags, bool recursively) { if ( !(m_flags & ignoreWithFlags) && !IsRoot() ) { @@ -1835,7 +1835,7 @@ void wxPGProperty::SetBackgroundColour(const wxColour& colour, wxPGPropertyValue newCell, srcCell, firstCellData, - recursively ? wxPG_PROP_CATEGORY : 0, + recursively ? wxPGPropertyFlags::Category : wxPGPropertyFlags::Null, recursively ); } @@ -1870,7 +1870,7 @@ void wxPGProperty::SetTextColour(const wxColour& colour, wxPGPropertyValuesFlags newCell, srcCell, firstCellData, - recursively ? wxPG_PROP_CATEGORY : 0, + recursively ? wxPGPropertyFlags::Category : wxPGPropertyFlags::Null, recursively ); } @@ -1891,7 +1891,7 @@ void wxPGProperty::SetDefaultColours(wxPGPropertyValuesFlags flags) } } - ClearCells(recursively ? wxPG_PROP_CATEGORY : 0, + ClearCells(recursively ? wxPGPropertyFlags::Category : wxPGPropertyFlags::Null, recursively); } @@ -1980,22 +1980,22 @@ wxVariant wxPGProperty::GetAttributesAsList() const // Utility flags are excluded. // Store the literals in the internal representation for better performance. -static const std::array, 4> gs_propFlagToString +static const std::array, 4> gs_propFlagToString { { - { wxPG_PROP_DISABLED, wxS("DISABLED") }, - { wxPG_PROP_HIDDEN, wxS("HIDDEN") }, - { wxPG_PROP_NOEDITOR, wxS("NOEDITOR") }, - { wxPG_PROP_COLLAPSED, wxS("COLLAPSED") } + { wxPGPropertyFlags::Disabled, wxS("DISABLED") }, + { wxPGPropertyFlags::Hidden, wxS("HIDDEN") }, + { wxPGPropertyFlags::NoEditor, wxS("NOEDITOR") }, + { wxPGPropertyFlags::Collapsed, wxS("COLLAPSED") } } }; -wxString wxPGProperty::GetFlagsAsString( FlagType flagsMask ) const +wxString wxPGProperty::GetFlagsAsString(wxPGPropertyFlags flagsMask) const { wxString s; - const FlagType relevantFlags = m_flags & flagsMask & wxPG_STRING_STORED_FLAGS; + const wxPGPropertyFlags relevantFlags = m_flags & flagsMask & wxPGPropertyFlags::StringStoredFlags; for ( auto& item : gs_propFlagToString ) { - if ( relevantFlags & item.first ) + if ( !!(relevantFlags & item.first) ) { if ( !s.empty() ) { @@ -2010,7 +2010,7 @@ wxString wxPGProperty::GetFlagsAsString( FlagType flagsMask ) const void wxPGProperty::SetFlagsFromString( const wxString& str ) { - FlagType flags = 0; + wxPGPropertyFlags flags = wxPGPropertyFlags::Null; WX_PG_TOKENIZER1_BEGIN(str, wxS('|')) for ( auto& item : gs_propFlagToString ) @@ -2023,7 +2023,7 @@ void wxPGProperty::SetFlagsFromString( const wxString& str ) } WX_PG_TOKENIZER1_END() - m_flags = (m_flags & ~wxPG_STRING_STORED_FLAGS) | flags; + m_flags = (m_flags & ~wxPGPropertyFlags::StringStoredFlags) | flags; } wxValidator* wxPGProperty::DoGetValidator() const @@ -2195,7 +2195,7 @@ bool wxPGProperty::Hide( bool hide, wxPGPropertyValuesFlags flags ) bool wxPGProperty::DoHide( bool hide, wxPGPropertyValuesFlags flags ) { - ChangeFlag(wxPG_PROP_HIDDEN, hide); + ChangeFlag(wxPGPropertyFlags::Hidden, hide); if ( !!(flags & wxPGPropertyValuesFlags::Recurse) ) { @@ -2210,7 +2210,7 @@ bool wxPGProperty::HasVisibleChildren() const { for ( wxPGProperty* child : m_children ) { - if ( !child->HasFlag(wxPG_PROP_HIDDEN) ) + if ( !child->HasFlag(wxPGPropertyFlags::Hidden) ) return true; } @@ -2240,12 +2240,12 @@ void wxPGProperty::SetValueImage( const wxBitmapBundle& bmp ) if ( bmp.IsOk() ) { m_valueBitmapBundle = bmp; - m_flags |= wxPG_PROP_CUSTOMIMAGE; + m_flags |= wxPGPropertyFlags::CustomImage; } else { m_valueBitmapBundle = wxBitmapBundle(); - m_flags &= ~(wxPG_PROP_CUSTOMIMAGE); + m_flags &= ~(wxPGPropertyFlags::CustomImage); } } @@ -2278,12 +2278,12 @@ const wxPGProperty* wxPGProperty::GetLastVisibleSubItem() const bool wxPGProperty::IsVisible() const { - if ( HasFlag(wxPG_PROP_HIDDEN) ) + if ( HasFlag(wxPGPropertyFlags::Hidden) ) return false; for (const wxPGProperty* parent = GetParent(); parent != nullptr; parent = parent->GetParent() ) { - if ( !parent->IsExpanded() || parent->HasFlag(wxPG_PROP_HIDDEN) ) + if ( !parent->IsExpanded() || parent->HasFlag(wxPGPropertyFlags::Hidden) ) return false; } @@ -2359,18 +2359,17 @@ void wxPGProperty::DoPreAddChild( int index, wxPGProperty* prop ) int custImgHeight = prop->OnMeasureImage().y; if ( custImgHeight == wxDefaultCoord /*|| custImgHeight > 1*/ ) - prop->m_flags |= wxPG_PROP_CUSTOMIMAGE; + prop->m_flags |= wxPGPropertyFlags::CustomImage; prop->m_parent = this; } void wxPGProperty::AddPrivateChild( wxPGProperty* prop ) { - if ( !(m_flags & wxPG_PROP_PARENTAL_FLAGS) ) - SetParentalType(wxPG_PROP_AGGREGATE); + if ( !(m_flags & wxPGPropertyFlags::ParentalFlags) ) + SetParentalType(wxPGPropertyFlags::Aggregate); - wxASSERT_MSG( (m_flags & wxPG_PROP_PARENTAL_FLAGS) == - wxPG_PROP_AGGREGATE, + wxASSERT_MSG( (m_flags & wxPGPropertyFlags::ParentalFlags) == wxPGPropertyFlags::Aggregate, wxS("Do not mix up AddPrivateChild() calls with other ") wxS("property adders.") ); @@ -2389,11 +2388,10 @@ wxPGProperty* wxPGProperty::InsertChild( int index, } else { - if ( !(m_flags & wxPG_PROP_PARENTAL_FLAGS) ) - SetParentalType(wxPG_PROP_MISC_PARENT); + if ( !(m_flags & wxPGPropertyFlags::ParentalFlags) ) + SetParentalType(wxPGPropertyFlags::MiscParent); - wxASSERT_MSG( (m_flags & wxPG_PROP_PARENTAL_FLAGS) == - wxPG_PROP_MISC_PARENT, + wxASSERT_MSG( (m_flags & wxPGPropertyFlags::ParentalFlags) == wxPGPropertyFlags::MiscParent, wxS("Do not mix up AddPrivateChild() calls with other ") wxS("property adders.") ); @@ -2446,7 +2444,7 @@ void wxPGProperty::AdaptListToValue( wxVariant& list, wxVariant* value ) const // Don't fully update aggregate properties unless all children have // specified value - if ( HasFlag(wxPG_PROP_AGGREGATE) ) + if ( HasFlag(wxPGPropertyFlags::Aggregate) ) allChildrenSpecified = AreAllChildrenSpecified(&list); else allChildrenSpecified = true; @@ -2557,7 +2555,7 @@ int wxPGProperty::GetChildrenHeight( int lh, int iMax ) const { wxPGProperty* pwc = Item(i); - if ( !pwc->HasFlag(wxPG_PROP_HIDDEN) ) + if ( !pwc->HasFlag(wxPGPropertyFlags::Hidden) ) { if ( !pwc->IsExpanded() || !pwc->HasAnyChild() ) @@ -2585,7 +2583,7 @@ wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y, for ( wxPGProperty* pwc : m_children ) { - if ( !pwc->HasFlag(wxPG_PROP_HIDDEN) ) + if ( !pwc->HasFlag(wxPGPropertyFlags::Hidden) ) { // Found? if ( y < iy ) @@ -2630,7 +2628,7 @@ wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y, void wxPGProperty::Empty() { - if ( !HasFlag(wxPG_PROP_CHILDREN_ARE_COPIES) ) + if ( !HasFlag(wxPGPropertyFlags::ChildrenAreCopies) ) { for ( wxPGProperty* child : m_children ) { @@ -2748,7 +2746,7 @@ bool wxPGProperty::AreAllChildrenSpecified( const wxVariant* pendingList ) const wxPGProperty* wxPGProperty::UpdateParentValues() { wxPGProperty* parent = m_parent; - if ( parent && parent->HasFlag(wxPG_PROP_COMPOSED_VALUE) && + if ( parent && parent->HasFlag(wxPGPropertyFlags::ComposedValue) && !parent->IsCategory() && !parent->IsRoot() ) { wxString s; @@ -2761,10 +2759,10 @@ wxPGProperty* wxPGProperty::UpdateParentValues() bool wxPGProperty::IsTextEditable() const { - if ( HasFlag(wxPG_PROP_READONLY) ) + if ( HasFlag(wxPGPropertyFlags::ReadOnly) ) return false; - if ( HasFlag(wxPG_PROP_NOEDITOR) && + if ( HasFlag(wxPGPropertyFlags::NoEditor) && (HasAnyChild() || wxString(GetEditorClass()->GetClassInfo()->GetClassName()).EndsWith(wxS("Button"))) ) @@ -2816,7 +2814,7 @@ wxString wxPGProperty::GetHintText() const int wxPGProperty::GetDisplayedCommonValueCount() const { - if ( HasFlag(wxPG_PROP_USES_COMMON_VALUE) ) + if ( HasFlag(wxPGPropertyFlags::UsesCommonValue) ) { wxPropertyGrid* pg = GetGrid(); if ( pg ) @@ -2871,7 +2869,7 @@ wxPGRootProperty::wxPGRootProperty( const wxString& name ) { m_name = name; m_label = m_name; - SetParentalType(0); + SetParentalType(wxPGPropertyFlags::Null); m_depth = 0; } @@ -2884,7 +2882,7 @@ wxPG_IMPLEMENT_PROPERTY_CLASS(wxPropertyCategory, wxPGProperty, TextCtrl) void wxPropertyCategory::Init() { // don't set colour - prepareadditem method should do this - SetParentalType(wxPG_PROP_CATEGORY); + SetParentalType(wxPGPropertyFlags::Category); m_capFgColIndex = 1; m_textExtent = -1; } diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp index 0d38410cb7..3ea759876c 100644 --- a/src/propgrid/propgrid.cpp +++ b/src/propgrid/propgrid.cpp @@ -943,11 +943,11 @@ void wxPropertyGrid::MakeColumnEditable( unsigned int column, bool editable ) { // The second column is always editable. To make it read-only is a property - // by property decision by setting its wxPG_PROP_READONLY flag. + // by property decision by setting its wxPGPropertyFlags::ReadOnly flag. wxASSERT_MSG ( column != 1, - wxS("Set wxPG_PROP_READONLY property flag instead") + wxS("Set wxPGPropertyFlags::ReadOnly property flag instead") ); if ( editable ) @@ -2158,7 +2158,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc, { const wxPGProperty* p = *it; - if ( !p->HasFlag(wxPG_PROP_HIDDEN) ) + if ( !p->HasFlag(wxPGPropertyFlags::Hidden) ) { visPropArray.push_back(const_cast(p)); @@ -2365,7 +2365,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc, if ( butRect.x > 0 ) butRect.x += IN_CELL_EXPANDER_BUTTON_X_ADJUST; - if ( p->HasFlag(wxPG_PROP_MODIFIED) && + if ( p->HasFlag(wxPGPropertyFlags::Modified) && (windowStyle & wxPG_BOLD_MODIFIED) ) { dc.SetFont(m_captionFont); @@ -3000,7 +3000,7 @@ bool wxPropertyGrid::PerformValidation( wxPGProperty* p, wxVariant& pendingValue wxVariant* pPendingValue = &pendingValue; wxVariant* pList = nullptr; - // If parent has wxPG_PROP_AGGREGATE flag, or uses composite + // If parent has wxPGPropertyFlags::Aggregate flag, or uses composite // string value, then we need treat as it was changed instead // (or, in addition, as is the case with composite string parent). // This includes creating list variant for child values. @@ -3014,7 +3014,7 @@ bool wxPropertyGrid::PerformValidation( wxPGProperty* p, wxVariant& pendingValue listValue.SetName(p->GetBaseName()); while ( pwc && - (pwc->HasFlag(wxPG_PROP_AGGREGATE) || pwc->HasFlag(wxPG_PROP_COMPOSED_VALUE)) ) + (pwc->HasFlag(wxPGPropertyFlags::Aggregate) || pwc->HasFlag(wxPGPropertyFlags::ComposedValue)) ) { wxVariantList tempList; wxVariant lv(tempList, pwc->GetBaseName()); @@ -3022,7 +3022,7 @@ bool wxPropertyGrid::PerformValidation( wxPGProperty* p, wxVariant& pendingValue listValue = lv; pPendingValue = &listValue; - if ( pwc->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( pwc->HasFlag(wxPGPropertyFlags::Aggregate) ) { baseChangedProperty = pwc; bcpPendingList = lv; @@ -3052,9 +3052,9 @@ bool wxPropertyGrid::PerformValidation( wxPGProperty* p, wxVariant& pendingValue { // FIXME: After proper ValueToString()s added, remove // this. It is just a temporary fix, as evt_changing - // will simply not work for wxPG_PROP_COMPOSED_VALUE + // will simply not work for wxPGPropertyFlags::ComposedValue // (unless it is selected, and textctrl editor is open). - if ( changedProperty->HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( changedProperty->HasFlag(wxPGPropertyFlags::ComposedValue) ) { evtChangingProperty = baseChangedProperty; if ( evtChangingProperty != p ) @@ -3067,7 +3067,7 @@ bool wxPropertyGrid::PerformValidation( wxPGProperty* p, wxVariant& pendingValue } } - if ( evtChangingProperty->HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( evtChangingProperty->HasFlag(wxPGPropertyFlags::ComposedValue) ) { if ( changedProperty == GetSelection() ) { @@ -3194,7 +3194,7 @@ bool wxPropertyGrid::OnValidationFailure( wxPGProperty* property, { // When property selection is being changed, do not display any // messages, if some were already shown for this property. - if ( property->HasFlag(wxPG_PROP_INVALID_VALUE) ) + if ( property->HasFlag(wxPGPropertyFlags::InvalidValue) ) { m_validationInfo.SetFailureBehavior( vfb & (~(wxPGVFBFlags::ShowMessage | @@ -3216,7 +3216,7 @@ bool wxPropertyGrid::OnValidationFailure( wxPGProperty* property, property->GetEditorClass()->UpdateControl(property, editor); } - property->SetFlag(wxPG_PROP_INVALID_VALUE); + property->SetFlag(wxPGPropertyFlags::InvalidValue); return res; } @@ -3229,7 +3229,7 @@ bool wxPropertyGrid::DoOnValidationFailure( wxPGProperty* property, wxVariant& W ::wxBell(); if ( !!(vfb & wxPGVFBFlags::MarkCell) && - !property->HasFlag(wxPG_PROP_INVALID_VALUE) ) + !property->HasFlag(wxPGPropertyFlags::InvalidValue) ) { unsigned int colCount = m_pState->GetColumnCount(); @@ -3381,9 +3381,9 @@ bool wxPropertyGrid::DoPropertyChanged( wxPGProperty* p, wxPGSelectPropertyFlags wxWindow* editor = GetEditorControl(); // Set as Modified (not if dragging just began) - if ( !p->HasFlag(wxPG_PROP_MODIFIED) ) + if ( !p->HasFlag(wxPGPropertyFlags::Modified) ) { - p->SetFlag(wxPG_PROP_MODIFIED); + p->SetFlag(wxPGPropertyFlags::Modified); if ( p == selected && (m_windowStyle & wxPG_BOLD_MODIFIED) ) { if ( editor ) @@ -3398,7 +3398,7 @@ bool wxPropertyGrid::DoPropertyChanged( wxPGProperty* p, wxPGSelectPropertyFlags while ( prevPwc != topPaintedProperty ) { - pwc->SetFlag(wxPG_PROP_MODIFIED); + pwc->SetFlag(wxPGPropertyFlags::Modified); if ( pwc == selected && (m_windowStyle & wxPG_BOLD_MODIFIED) ) { @@ -3429,11 +3429,11 @@ bool wxPropertyGrid::DoPropertyChanged( wxPGProperty* p, wxPGSelectPropertyFlags } // Sanity check - wxASSERT( !changedProperty->GetParent()->HasFlag(wxPG_PROP_AGGREGATE) ); + wxASSERT( !changedProperty->GetParent()->HasFlag(wxPGPropertyFlags::Aggregate) ); // If top parent has composite string value, then send to child parents, // starting from baseChangedProperty. - if ( changedProperty->HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( changedProperty->HasFlag(wxPGPropertyFlags::ComposedValue) ) { pwc = m_chgInfo_baseChangedProperty; @@ -3556,7 +3556,7 @@ bool wxPropertyGrid::HandleCustomEditorEvent( wxEvent &event ) // Somehow, event is handled after property has been deselected. // Possibly, but very rare. if ( !selected || - selected->HasFlag(wxPG_PROP_BEING_DELETED) || + selected->HasFlag(wxPGPropertyFlags::BeingDeleted) || m_inOnValidationFailure || // Also don't handle editor event if wxEVT_PG_CHANGED or // similar is currently doing something (showing a @@ -4036,7 +4036,7 @@ bool wxPropertyGrid::DoSelectProperty( wxPGProperty* p, wxPGSelectPropertyFlags prevFirstSel = prevSelection.empty()? nullptr: prevSelection[0]; - if ( prevFirstSel && prevFirstSel->HasFlag(wxPG_PROP_BEING_DELETED) ) + if ( prevFirstSel && prevFirstSel->HasFlag(wxPGPropertyFlags::BeingDeleted) ) prevFirstSel = nullptr; // Always send event, as this is indirect call @@ -4150,7 +4150,7 @@ bool wxPropertyGrid::DoSelectProperty( wxPGProperty* p, wxPGSelectPropertyFlags // // Only create editor for non-disabled non-caption - if ( !p->IsCategory() && !p->HasFlag(wxPG_PROP_DISABLED) ) + if ( !p->IsCategory() && !p->HasFlag(wxPGPropertyFlags::Disabled) ) { // do this for non-caption items @@ -4158,7 +4158,7 @@ bool wxPropertyGrid::DoSelectProperty( wxPGProperty* p, wxPGSelectPropertyFlags // Do we need to paint the custom image, if any? m_iFlags &= ~(wxPG_FL_CUR_USES_CUSTOM_IMAGE); - if ( p->HasFlag(wxPG_PROP_CUSTOMIMAGE) && + if ( p->HasFlag(wxPGPropertyFlags::CustomImage) && !p->GetEditorClass()->CanContainCustomImage() ) m_iFlags |= wxPG_FL_CUR_USES_CUSTOM_IMAGE; @@ -4224,7 +4224,7 @@ bool wxPropertyGrid::DoSelectProperty( wxPGProperty* p, wxPGSelectPropertyFlags // If it has modified status, use bold font // (must be done before capturing m_ctrlXAdjust) - if ( p->HasFlag(wxPG_PROP_MODIFIED) && + if ( p->HasFlag(wxPGPropertyFlags::Modified) && (m_windowStyle & wxPG_BOLD_MODIFIED) ) SetCurControlBoldFont(); // Store x relative to splitter (we'll need it). @@ -4415,7 +4415,7 @@ void wxPropertyGrid::RefreshEditor() // calling UpdateControl(). if ( HasFlag(wxPG_BOLD_MODIFIED) ) { - if ( p->HasFlag(wxPG_PROP_MODIFIED) ) + if ( p->HasFlag(wxPGPropertyFlags::Modified) ) wnd->SetFont(GetCaptionFont()); else wnd->SetFont(GetFont()); @@ -5111,7 +5111,7 @@ bool wxPropertyGrid::HandleMouseMove( int x, unsigned int y, space -= (wxPG_XBEFORETEXT + 1); int tw, th; const wxFont* font = nullptr; - if ( (m_windowStyle & wxPG_BOLD_MODIFIED) && m_propHover->HasFlag(wxPG_PROP_MODIFIED) ) + if ( (m_windowStyle & wxPG_BOLD_MODIFIED) && m_propHover->HasFlag(wxPGPropertyFlags::Modified) ) font = &m_captionFont; if ( cell.GetFont().IsOk() ) font = &cell.GetFont(); @@ -5183,7 +5183,7 @@ bool wxPropertyGrid::HandleMouseMove( int x, unsigned int y, // Since categories cannot be selected along with 'other' // properties, exclude them from iterator flags. - int iterFlags = wxPG_ITERATE_VISIBLE & (~wxPG_PROP_CATEGORY); + int iterFlags = wxPG_ITERATE_VISIBLE & (~wxPGPropertyFlags::Category); for ( int i=(selection.size()-1); i>=0; i-- ) { @@ -5730,7 +5730,7 @@ void wxPropertyGrid::HandleKeyEvent( wxKeyEvent &event, bool fromChild ) if ( action == wxPGKeyboardActions::Edit && !editorFocused ) { // Mark as handled only for editable property - if ( !p->IsCategory() && p->IsEnabled() && !p->HasFlag(wxPG_PROP_READONLY) ) + if ( !p->IsCategory() && p->IsEnabled() && !p->HasFlag(wxPGPropertyFlags::ReadOnly) ) { DoSelectProperty( p, wxPGSelectPropertyFlags::Focus ); wasHandled = true; @@ -6373,7 +6373,7 @@ wxPGProperty* wxPropertyGridPopulator::Add( const wxString& propClass, wxClassInfo* classInfo = wxClassInfo::FindClass(propClass); wxPGProperty* parent = GetCurParent(); - if ( parent->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( parent->HasFlag(wxPGPropertyFlags::Aggregate) ) { ProcessError(wxString::Format(wxS("new children cannot be added to '%s'"),parent->GetName())); return nullptr; diff --git a/src/propgrid/propgridiface.cpp b/src/propgrid/propgridiface.cpp index 0980fcb86a..fe95145514 100644 --- a/src/propgrid/propgridiface.cpp +++ b/src/propgrid/propgridiface.cpp @@ -125,7 +125,7 @@ wxPGProperty* wxPropertyGridInterface::RemoveProperty( wxPGPropArg id ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) - wxCHECK( !p->HasAnyChild() || p->HasFlag(wxPG_PROP_AGGREGATE), + wxCHECK( !p->HasAnyChild() || p->HasFlag(wxPGPropertyFlags::Aggregate), wxNullProperty); wxPropertyGridPageState* state = p->GetParentState(); @@ -228,7 +228,7 @@ bool wxPropertyGridInterface::EnableProperty( wxPGPropArg id, bool enable ) if ( enable ) { - if ( !p->HasFlag(wxPG_PROP_DISABLED) ) + if ( !p->HasFlag(wxPGPropertyFlags::Disabled) ) return false; // If active, Set active Editor. @@ -237,7 +237,7 @@ bool wxPropertyGridInterface::EnableProperty( wxPGPropArg id, bool enable ) } else { - if ( p->HasFlag(wxPG_PROP_DISABLED) ) + if ( p->HasFlag(wxPGPropertyFlags::Disabled) ) return false; // If active, Disable as active Editor. @@ -258,17 +258,17 @@ void wxPropertyGridInterface::SetPropertyReadOnly( wxPGPropArg id, bool set, wxP if ( !!(flags & wxPGPropertyValuesFlags::Recurse) ) { - p->SetFlagRecursively(wxPG_PROP_READONLY, set); + p->SetFlagRecursively(wxPGPropertyFlags::ReadOnly, set); } else { // Do nothing if flag is already set as required. - if ( set && p->HasFlag(wxPG_PROP_READONLY) ) + if ( set && p->HasFlag(wxPGPropertyFlags::ReadOnly) ) return; - if ( !set && !p->HasFlag(wxPG_PROP_READONLY) ) + if ( !set && !p->HasFlag(wxPGPropertyFlags::ReadOnly) ) return; - p->ChangeFlag(wxPG_PROP_READONLY, set); + p->ChangeFlag(wxPGPropertyFlags::ReadOnly, set); } wxPropertyGridPageState* state = p->GetParentState(); @@ -337,7 +337,7 @@ void wxPropertyGridInterface::ClearModifiedStatus() wxPropertyGridPageState* page; while ( (page = GetPageState(pageIndex)) != nullptr ) { - page->DoGetRoot()->SetFlagRecursively(wxPG_PROP_MODIFIED, false); + page->DoGetRoot()->SetFlagRecursively(wxPGPropertyFlags::Modified, false); page->m_anyModified = false; pageIndex++; @@ -456,7 +456,7 @@ void wxPropertyGridInterface::SetPropertyAttributeAll( const wxString& attrName, // ----------------------------------------------------------------------- void wxPropertyGridInterface::GetPropertiesWithFlag( wxArrayPGProperty* targetArr, - wxPGProperty::FlagType flags, + wxPGPropertyFlags flags, bool inverse, int iterFlags ) const { @@ -538,9 +538,9 @@ bool wxPropertyGridInterface::HideProperty(wxPGPropArg id, bool hide, wxPGProper // Do nothing if single property is already hidden/visible as requested. if ( !(flags & wxPGPropertyValuesFlags::Recurse) ) { - if ( hide && p->HasFlag(wxPG_PROP_HIDDEN) ) + if ( hide && p->HasFlag(wxPGPropertyFlags::Hidden) ) return false; - if ( !hide && !p->HasFlag(wxPG_PROP_HIDDEN) ) + if ( !hide && !p->HasFlag(wxPGPropertyFlags::Hidden) ) return false; } @@ -844,9 +844,9 @@ bool wxPropertyGridInterface::ChangePropertyValue( wxPGPropArg id, wxVariant new void wxPropertyGridInterface::BeginAddChildren( wxPGPropArg id ) { wxPG_PROP_ARG_CALL_PROLOG() - wxCHECK_RET( p->HasFlag(wxPG_PROP_AGGREGATE), wxS("only call on properties with fixed children") ); - p->ClearFlag(wxPG_PROP_AGGREGATE); - p->SetFlag(wxPG_PROP_MISC_PARENT); + wxCHECK_RET( p->HasFlag(wxPGPropertyFlags::Aggregate), wxS("only call on properties with fixed children") ); + p->ClearFlag(wxPGPropertyFlags::Aggregate); + p->SetFlag(wxPGPropertyFlags::MiscParent); } // ----------------------------------------------------------------------- @@ -861,9 +861,9 @@ bool wxPropertyGridInterface::EditorValidate() void wxPropertyGridInterface::EndAddChildren( wxPGPropArg id ) { wxPG_PROP_ARG_CALL_PROLOG() - wxCHECK_RET( p->HasFlag(wxPG_PROP_MISC_PARENT), wxS("only call on properties for which BeginAddChildren was called prior") ); - p->ClearFlag(wxPG_PROP_MISC_PARENT); - p->SetFlag(wxPG_PROP_AGGREGATE); + wxCHECK_RET( p->HasFlag(wxPGPropertyFlags::MiscParent), wxS("only call on properties for which BeginAddChildren was called prior") ); + p->ClearFlag(wxPGPropertyFlags::MiscParent); + p->SetFlag(wxPGPropertyFlags::Aggregate); } // ----------------------------------------------------------------------- @@ -952,7 +952,7 @@ wxString wxPropertyGridInterface::SaveEditableState( int includedStates ) const { const wxPGProperty* p = it.GetProperty(); - if ( !p->HasFlag(wxPG_PROP_COLLAPSED) ) + if ( !p->HasFlag(wxPGPropertyFlags::Collapsed) ) result += EscapeDelimiters(p->GetName()); result += wxS(","); diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 558030f6a7..0b6e430ab7 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -226,7 +226,7 @@ void wxPropertyGridPageState::InitNonCatMode() m_abcArray = new wxPGRootProperty(wxS("")); m_abcArray->SetParentState(this); - m_abcArray->SetFlag(wxPG_PROP_CHILDREN_ARE_COPIES); + m_abcArray->SetFlag(wxPGPropertyFlags::ChildrenAreCopies); // Must be called when state::m_properties still points to regularArray. wxPGProperty* oldProperties = m_properties; @@ -402,7 +402,7 @@ wxPGProperty* wxPropertyGridPageState::GetLastItem( int flags ) if ( !m_properties->HasAnyChild() ) return nullptr; - wxPG_ITERATOR_CREATE_MASKS(flags, wxPGProperty::FlagType itemExMask, wxPGProperty::FlagType parentExMask) + wxPG_ITERATOR_CREATE_MASKS(flags, wxPGPropertyFlags itemExMask, wxPGPropertyFlags parentExMask) // First, get last child of last parent wxPGProperty* pwc = m_properties->Last(); @@ -609,7 +609,7 @@ void wxPropertyGridPageState::DoSortChildren(wxPGProperty* p, wxPGPropertyValues return; // Never sort children of aggregate properties - if ( p->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( p->HasFlag(wxPGPropertyFlags::Aggregate) ) return; if ( !!(flags & wxPGPropertyValuesFlags::SortTopLevelOnly) @@ -1385,12 +1385,12 @@ wxVariant wxPropertyGridPageState::DoGetPropertyValues(const wxString& listname, { if ( !!(flags & wxPGPropertyValuesFlags::KeepStructure) ) { - wxASSERT( !pwc->HasFlag(wxPG_PROP_AGGREGATE) ); + wxASSERT( !pwc->HasFlag(wxPGPropertyFlags::Aggregate) ); for ( unsigned int i = 0; i < pwc->GetChildCount(); i++ ) { wxPGProperty* p = pwc->Item(i); - if ( !p->HasAnyChild() || p->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( !p->HasAnyChild() || p->HasFlag(wxPGPropertyFlags::Aggregate) ) { wxVariant variant = p->GetValue(); variant.SetName( p->GetBaseName() ); @@ -1414,7 +1414,7 @@ wxVariant wxPropertyGridPageState::DoGetPropertyValues(const wxString& listname, const wxPGProperty* p = it.GetProperty(); // Use a trick to ignore wxParentProperty itself, but not its sub-properties. - if ( !p->HasAnyChild() || p->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( !p->HasAnyChild() || p->HasFlag(wxPGPropertyFlags::Aggregate) ) { wxVariant variant = p->GetValue(); variant.SetName( p->GetName() ); @@ -1669,7 +1669,7 @@ wxPGProperty* wxPropertyGridPageState::DoInsert( wxPGProperty* parent, int index if ( !parent ) parent = m_properties; - wxCHECK_MSG( !parent->HasFlag(wxPG_PROP_AGGREGATE), + wxCHECK_MSG( !parent->HasFlag(wxPGPropertyFlags::Aggregate), wxNullProperty, wxS("when adding properties to fixed parents, use BeginAddChildren and EndAddChildren.") ); @@ -1739,7 +1739,7 @@ wxPGProperty* wxPropertyGridPageState::DoInsert( wxPGProperty* parent, int index // Update editor controls of all parents if they are containers of composed values. for( wxPGProperty *p = property->GetParent(); - p && !p->IsRoot() && !p->IsCategory() && p->HasFlag(wxPG_PROP_COMPOSED_VALUE); + p && !p->IsRoot() && !p->IsCategory() && p->HasFlag(wxPGPropertyFlags::ComposedValue); p = p->GetParent() ) { p->RefreshEditor(); @@ -1787,7 +1787,7 @@ void wxPropertyGridPageState::DoMarkChildrenAsDeleted(wxPGProperty* p, { wxPGProperty* child = p->Item(i); - child->SetFlag(wxPG_PROP_BEING_DELETED); + child->SetFlag(wxPGPropertyFlags::BeingDeleted); if ( recursive ) { @@ -1890,7 +1890,7 @@ void wxPropertyGridPageState::DoDelete( wxPGProperty* item, bool doDelete ) wxPGProperty* parent = item->GetParent(); - wxCHECK_RET( !parent->HasFlag(wxPG_PROP_AGGREGATE), + wxCHECK_RET( !parent->HasFlag(wxPGPropertyFlags::Aggregate), wxS("wxPropertyGrid: Do not attempt to remove sub-properties.") ); wxASSERT( item->GetParentState() == this ); @@ -1957,13 +1957,13 @@ void wxPropertyGridPageState::DoDelete( wxPGProperty* item, bool doDelete ) wxS("Current category cannot be deleted") ); // Prevent property and its children from being re-selected - item->SetFlag(wxPG_PROP_BEING_DELETED); + item->SetFlag(wxPGPropertyFlags::BeingDeleted); DoMarkChildrenAsDeleted(item, true); unsigned int indinparent = item->GetIndexInParent(); // Delete children - if ( item->HasAnyChild() && !item->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( item->HasAnyChild() && !item->HasFlag(wxPGPropertyFlags::Aggregate) ) { // deleting a category item->DeleteChildren(); diff --git a/src/propgrid/props.cpp b/src/propgrid/props.cpp index 1ac680d1d6..259e4e9d6c 100644 --- a/src/propgrid/props.cpp +++ b/src/propgrid/props.cpp @@ -59,9 +59,9 @@ wxStringProperty::wxStringProperty( const wxString& label, void wxStringProperty::OnSetValue() { if ( !m_value.IsNull() && m_value.GetString() == wxS("") ) - SetFlag(wxPG_PROP_COMPOSED_VALUE); + SetFlag(wxPGPropertyFlags::ComposedValue); - if ( HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( HasFlag(wxPGPropertyFlags::ComposedValue) ) { wxString s; DoGenerateComposedValue(s); @@ -74,7 +74,7 @@ wxString wxStringProperty::ValueToString( wxVariant& value, { wxString s = value.GetString(); - if ( HasAnyChild() && HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( HasAnyChild() && HasFlag(wxPGPropertyFlags::ComposedValue) ) { // Value stored in m_value is non-editable, non-full value if ( (argFlags & wxPG_FULL_VALUE) || @@ -94,7 +94,7 @@ wxString wxStringProperty::ValueToString( wxVariant& value, // If string is password and value is for visual purposes, // then return asterisks instead the actual string. - if ( (m_flags & wxPG_PROP_PASSWORD) && !(argFlags & (wxPG_FULL_VALUE|wxPG_EDITABLE_VALUE)) ) + if ( !!(m_flags & wxPGPropertyFlags_Password) && !(argFlags & (wxPG_FULL_VALUE|wxPG_EDITABLE_VALUE)) ) return wxString(wxS('*'), s.length()); return s; @@ -102,7 +102,7 @@ wxString wxStringProperty::ValueToString( wxVariant& value, bool wxStringProperty::StringToValue( wxVariant& variant, const wxString& text, int argFlags ) const { - if ( HasAnyChild() && HasFlag(wxPG_PROP_COMPOSED_VALUE) ) + if ( HasAnyChild() && HasFlag(wxPGPropertyFlags::ComposedValue) ) return wxPGProperty::StringToValue(variant, text, argFlags); if ( variant != text ) @@ -118,7 +118,7 @@ bool wxStringProperty::DoSetAttribute( const wxString& name, wxVariant& value ) { if ( name == wxPG_STRING_PASSWORD ) { - ChangeFlag(wxPG_PROP_PASSWORD, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_Password, value.GetBool()); RecreateEditor(); return true; } @@ -1031,7 +1031,7 @@ const wxPGEditor* wxBoolProperty::DoGetEditorClass() const { // Select correct editor control. #if wxPG_INCLUDE_CHECKBOX - if ( !(m_flags & wxPG_PROP_USE_CHECKBOX) ) + if ( !(m_flags & wxPGPropertyFlags_UseCheckBox) ) return wxPGEditor_Choice; return wxPGEditor_CheckBox; #else @@ -1046,7 +1046,7 @@ wxBoolProperty::wxBoolProperty( const wxString& label, const wxString& name, boo SetValue(wxVariant(value)); - m_flags |= wxPG_PROP_USE_DCC; + m_flags |= wxPGPropertyFlags_UseDCC; } wxString wxBoolProperty::ValueToString( wxVariant& value, @@ -1124,13 +1124,13 @@ bool wxBoolProperty::DoSetAttribute( const wxString& name, wxVariant& value ) #if wxPG_INCLUDE_CHECKBOX if ( name == wxPG_BOOL_USE_CHECKBOX ) { - ChangeFlag(wxPG_PROP_USE_CHECKBOX, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_UseCheckBox, value.GetBool()); return true; } #endif if ( name == wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING ) { - ChangeFlag(wxPG_PROP_USE_DCC, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_UseDCC, value.GetBool()); return true; } return wxPGProperty::DoSetAttribute(name, value); @@ -1467,8 +1467,8 @@ void wxFlagsProperty::Init(long value) // Relay wxPG_BOOL_USE_CHECKBOX and wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING // to child bool property controls. - bool attrUseCheckBox = (m_flags & wxPG_PROP_USE_CHECKBOX) != 0; - bool attrUseDCC = (m_flags & wxPG_PROP_USE_DCC) != 0; + bool attrUseCheckBox = !!(m_flags & wxPGPropertyFlags_UseCheckBox); + bool attrUseDCC = !!(m_flags & wxPGPropertyFlags_UseDCC); for ( unsigned int i = 0; i < GetItemCount(); i++ ) { bool child_val = (value & m_choices.GetValue(i)) != 0; @@ -1495,7 +1495,7 @@ void wxFlagsProperty::Init(long value) wxFlagsProperty::wxFlagsProperty( const wxString& label, const wxString& name, const wxChar* const* labels, const long* values, long value ) : wxPGProperty(label,name) { - m_flags |= wxPG_PROP_USE_DCC; // same default like wxBoolProperty + m_flags |= wxPGPropertyFlags_UseDCC; // same default like wxBoolProperty if ( labels ) { @@ -1517,7 +1517,7 @@ wxFlagsProperty::wxFlagsProperty( const wxString& label, const wxString& name, const wxArrayString& labels, const wxArrayInt& values, int value ) : wxPGProperty(label,name) { - m_flags |= wxPG_PROP_USE_DCC; // same default like wxBoolProperty + m_flags |= wxPGPropertyFlags_UseDCC; // same default like wxBoolProperty if ( !labels.empty() ) { @@ -1539,7 +1539,7 @@ wxFlagsProperty::wxFlagsProperty( const wxString& label, const wxString& name, wxPGChoices& choices, long value ) : wxPGProperty(label,name) { - m_flags |= wxPG_PROP_USE_DCC; // same default like wxBoolProperty + m_flags |= wxPGPropertyFlags_UseDCC; // same default like wxBoolProperty if ( choices.IsOk() ) { @@ -1580,7 +1580,7 @@ void wxFlagsProperty::OnSetValue() long flag = m_choices.GetValue(i); if ( (newFlags & flag) != (m_oldValue & flag) ) - Item(i)->ChangeFlag( wxPG_PROP_MODIFIED, true ); + Item(i)->ChangeFlag(wxPGPropertyFlags::Modified, true ); } m_oldValue = newFlags; @@ -1681,7 +1681,7 @@ void wxFlagsProperty::RefreshChildren() wxPGProperty* p = Item(i); if ( subVal != (m_oldValue & flag) ) - p->ChangeFlag( wxPG_PROP_MODIFIED, true ); + p->ChangeFlag(wxPGPropertyFlags::Modified, true ); p->SetValue( subVal == flag?true:false ); } @@ -1707,7 +1707,7 @@ bool wxFlagsProperty::DoSetAttribute( const wxString& name, wxVariant& value ) { if ( name == wxPG_BOOL_USE_CHECKBOX ) { - ChangeFlag(wxPG_PROP_USE_CHECKBOX, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_UseCheckBox, value.GetBool()); for ( wxPGProperty* child : m_children ) { @@ -1717,7 +1717,7 @@ bool wxFlagsProperty::DoSetAttribute( const wxString& name, wxVariant& value ) } else if ( name == wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING ) { - ChangeFlag(wxPG_PROP_USE_DCC, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_UseDCC, value.GetBool()); for ( wxPGProperty* child : m_children ) { @@ -1737,7 +1737,7 @@ wxPG_IMPLEMENT_PROPERTY_CLASS(wxDirProperty, wxEditorDialogProperty, TextCtrlAnd wxDirProperty::wxDirProperty( const wxString& label, const wxString& name, const wxString& value ) : wxEditorDialogProperty(label, name) { - m_flags &= ~wxPG_PROP_ACTIVE_BTN; // Property button enabled only in not read-only mode. + m_flags &= ~wxPGPropertyFlags_ActiveButton; // Property button enabled only in not read-only mode. SetValue(value); } @@ -1867,8 +1867,8 @@ wxFileProperty::wxFileProperty( const wxString& label, const wxString& name, const wxString& value ) : wxEditorDialogProperty(label, name) { - m_flags |= wxPG_PROP_SHOW_FULL_FILENAME; - m_flags &= ~wxPG_PROP_ACTIVE_BTN; // Property button enabled only in not read-only mode. + m_flags |= wxPGPropertyFlags_ShowFullFileName; + m_flags &= ~wxPGPropertyFlags_ActiveButton; // Property button enabled only in not read-only mode. m_indFilter = -1; m_wildcard = wxALL_FILES; @@ -1974,7 +1974,7 @@ wxString wxFileProperty::ValueToString( wxVariant& value, { return filename.GetFullPath(); } - else if ( m_flags & wxPG_PROP_SHOW_FULL_FILENAME ) + else if ( !!(m_flags & wxPGPropertyFlags::ShowFullFileName) ) { if ( !m_basePath.empty() ) { @@ -1992,7 +1992,7 @@ bool wxFileProperty::StringToValue( wxVariant& variant, const wxString& text, in { wxFileName filename = variant.GetString(); - if ( (m_flags & wxPG_PROP_SHOW_FULL_FILENAME) || (argFlags & wxPG_FULL_VALUE) ) + if ( !!(m_flags & wxPGPropertyFlags::ShowFullFileName) || (argFlags & wxPG_FULL_VALUE) ) { if ( filename != text ) { @@ -2018,7 +2018,7 @@ bool wxFileProperty::DoSetAttribute( const wxString& name, wxVariant& value ) { if ( name == wxPG_FILE_SHOW_FULL_PATH ) { - ChangeFlag(wxPG_PROP_SHOW_FULL_FILENAME, value.GetBool()); + ChangeFlag(wxPGPropertyFlags_ShowFullFileName, value.GetBool()); return true; } else if ( name == wxPG_FILE_WILDCARD ) @@ -2031,7 +2031,7 @@ bool wxFileProperty::DoSetAttribute( const wxString& name, wxVariant& value ) m_basePath = value.GetString(); // Make sure wxPG_FILE_SHOW_FULL_PATH is also set - m_flags |= wxPG_PROP_SHOW_FULL_FILENAME; + m_flags |= wxPGPropertyFlags_ShowFullFileName; return true; } else if ( name == wxPG_FILE_INITIAL_PATH ) @@ -2095,7 +2095,7 @@ wxLongStringProperty::wxLongStringProperty( const wxString& label, const wxStrin const wxString& value ) : wxEditorDialogProperty(label, name) { - m_flags |= wxPG_PROP_ACTIVE_BTN; // Property button always enabled. + m_flags |= wxPGPropertyFlags_ActiveButton; // Property button always enabled. m_dlgStyle = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxCLIP_CHILDREN; SetValue(value); } @@ -2122,7 +2122,7 @@ bool wxLongStringProperty::DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& va wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* rowsizer = new wxBoxSizer( wxHORIZONTAL ); long edStyle = wxTE_MULTILINE; - if ( HasFlag(wxPG_PROP_READONLY) ) + if ( HasFlag(wxPGPropertyFlags::ReadOnly) ) edStyle |= wxTE_READONLY; wxString strVal; wxPropertyGrid::ExpandEscapeSequences(strVal, value.GetString()); @@ -2135,7 +2135,7 @@ bool wxLongStringProperty::DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& va topsizer->Add(rowsizer, wxSizerFlags(1).Expand()); long btnSizerFlags = wxCANCEL; - if ( !HasFlag(wxPG_PROP_READONLY) ) + if ( !HasFlag(wxPGPropertyFlags::ReadOnly) ) btnSizerFlags |= wxOK; wxStdDialogButtonSizer* buttonSizer = dlg->CreateStdDialogButtonSizer(btnSizerFlags); topsizer->Add(buttonSizer, wxSizerFlags(0).Right().Border(wxBOTTOM|wxRIGHT, spacing)); diff --git a/tests/controls/propgridtest.cpp b/tests/controls/propgridtest.cpp index f1c7e5727f..2314fbd5a5 100644 --- a/tests/controls/propgridtest.cpp +++ b/tests/controls/propgridtest.cpp @@ -507,7 +507,7 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") wxPGProperty* p = it.GetProperty(); if ( p->IsCategory() ) FAIL_CHECK(wxString::Format("'%s' is a category (non-private child property expected)", p->GetLabel()).c_str()); - else if ( p->GetParent()->HasFlag(wxPG_PROP_AGGREGATE) ) + else if ( p->GetParent()->HasFlag(wxPGPropertyFlags::Aggregate) ) FAIL_CHECK(wxString::Format("'%s' is a private child (non-private child property expected)", p->GetLabel()).c_str()); count++; } @@ -527,7 +527,7 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") for ( auto it = pgManager->GetVIterator(wxPG_ITERATE_PROPERTIES | wxPG_ITERATE_CATEGORIES); !it.AtEnd(); it.Next() ) { wxPGProperty* p = it.GetProperty(); - if ( p->GetParent()->HasFlag(wxPG_PROP_AGGREGATE) ) + if ( p->GetParent()->HasFlag(wxPGPropertyFlags::Aggregate) ) FAIL_CHECK(wxString::Format("'%s' is a private child (non-private child property or category expected)", p->GetLabel()).c_str()); count++; } @@ -539,7 +539,7 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") wxPGProperty* p = it.GetProperty(); if ( (p->GetParent() != p->GetGrid()->GetRoot() && !p->GetParent()->IsExpanded()) ) FAIL_CHECK(wxString::Format("'%s' had collapsed parent (only visible properties expected)", p->GetLabel()).c_str()); - else if ( p->HasFlag(wxPG_PROP_HIDDEN) ) + else if ( p->HasFlag(wxPGPropertyFlags::Hidden) ) FAIL_CHECK(wxString::Format("'%s' was hidden (only visible properties expected)", p->GetLabel()).c_str()); count++; } @@ -697,7 +697,7 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") // Delete everything in reverse order std::vector array; - for ( auto it = pgManager->GetVIterator(wxPG_ITERATE_ALL & ~(wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE))); !it.AtEnd(); it.Next() ) + for ( auto it = pgManager->GetVIterator(wxPG_ITERATE_ALL & ~(wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate))); !it.AtEnd(); it.Next() ) { array.push_back(it.GetProperty()); } @@ -710,7 +710,7 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } // Check if grid is empty. - auto it = pgManager->GetVIterator(wxPG_ITERATE_ALL & ~(wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE))); + auto it = pgManager->GetVIterator(wxPG_ITERATE_ALL & ~(wxPG_IT_CHILDREN(wxPGPropertyFlags::Aggregate))); if ( !it.AtEnd() ) { FAIL_CHECK("Not all properties are deleted"); @@ -1597,22 +1597,22 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") wxPGProperty* p = *it; // Save initial flags - wxPGProperty::FlagType oldFlags = 0; - if ( p->HasFlag(wxPG_PROP_COLLAPSED) ) + wxPGPropertyFlags oldFlags = wxPGPropertyFlags::Null; + if ( p->HasFlag(wxPGPropertyFlags::Collapsed) ) { - oldFlags |= wxPG_PROP_COLLAPSED; + oldFlags |= wxPGPropertyFlags::Collapsed; } - if ( p->HasFlag(wxPG_PROP_DISABLED) ) + if ( p->HasFlag(wxPGPropertyFlags::Disabled) ) { - oldFlags |= wxPG_PROP_DISABLED; + oldFlags |= wxPGPropertyFlags::Disabled; } - if ( p->HasFlag(wxPG_PROP_HIDDEN) ) + if ( p->HasFlag(wxPGPropertyFlags::Hidden) ) { - oldFlags |= wxPG_PROP_HIDDEN; + oldFlags |= wxPGPropertyFlags::Hidden; } - if ( p->HasFlag(wxPG_PROP_NOEDITOR) ) + if ( p->HasFlag(wxPGPropertyFlags::NoEditor) ) { - oldFlags |= wxPG_PROP_NOEDITOR; + oldFlags |= wxPGPropertyFlags::NoEditor; } wxString flags; @@ -1652,37 +1652,37 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") // Verify if flags have been properly set if ( flags.Find("COLLAPSED") != wxNOT_FOUND && - !p->HasFlag(wxPG_PROP_COLLAPSED) ) + !p->HasFlag(wxPGPropertyFlags::Collapsed) ) { FAIL_CHECK(wxString::Format("Error setting flag from string 'COLLAPSED' for property '%s'", p->GetName()).c_str()); } if ( flags.Find("COLLAPSED") == wxNOT_FOUND && - p->HasFlag(wxPG_PROP_COLLAPSED) ) + p->HasFlag(wxPGPropertyFlags::Collapsed) ) { FAIL_CHECK(wxString::Format("Error resetting flag from string 'COLLAPSED'for property '%s'", p->GetName()).c_str()); } if ( flags.Find("DISABLED") != wxNOT_FOUND && - !p->HasFlag(wxPG_PROP_DISABLED) ) + !p->HasFlag(wxPGPropertyFlags::Disabled) ) { FAIL_CHECK(wxString::Format("Error setting flag from string 'DISABLED' for property '%s'", p->GetName()).c_str()); } if ( flags.Find("DISABLED") == wxNOT_FOUND && - p->HasFlag(wxPG_PROP_DISABLED) ) + p->HasFlag(wxPGPropertyFlags::Disabled) ) { FAIL_CHECK(wxString::Format("Error resetting flag from string 'DISABLED' for property '%s'", p->GetName()).c_str()); } if ( flags.Find("HIDDEN") != wxNOT_FOUND && - !p->HasFlag(wxPG_PROP_HIDDEN) ) + !p->HasFlag(wxPGPropertyFlags::Hidden) ) { FAIL_CHECK(wxString::Format("Error setting flag from string 'HIDDEN' for property '%s'", p->GetName()).c_str()); } if ( flags.Find("HIDDEN") == wxNOT_FOUND && - p->HasFlag(wxPG_PROP_HIDDEN) ) + p->HasFlag(wxPGPropertyFlags::Hidden) ) { FAIL_CHECK(wxString::Format("Error resetting flag from string 'HIDDEN' for property '%s'", p->GetName()).c_str()); @@ -1691,8 +1691,8 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") // Get individual flags bool ok; - flags = p->GetFlagsAsString(wxPG_PROP_COLLAPSED); - if ( p->HasFlag(wxPG_PROP_COLLAPSED) ) + flags = p->GetFlagsAsString(wxPGPropertyFlags::Collapsed); + if ( p->HasFlag(wxPGPropertyFlags::Collapsed) ) { ok = (flags == "COLLAPSED"); } @@ -1702,12 +1702,12 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_COLLAPSED flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::Collapsed flag for property '%s'", p->GetName()).c_str()); } - flags = p->GetFlagsAsString(wxPG_PROP_DISABLED); - if ( p->HasFlag(wxPG_PROP_DISABLED) ) + flags = p->GetFlagsAsString(wxPGPropertyFlags::Disabled); + if ( p->HasFlag(wxPGPropertyFlags::Disabled) ) { ok = (flags == "DISABLED"); } @@ -1717,12 +1717,12 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_DISABLED flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::Disabled flag for property '%s'", p->GetName()).c_str()); } - flags = p->GetFlagsAsString(wxPG_PROP_HIDDEN); - if ( p->HasFlag(wxPG_PROP_HIDDEN) ) + flags = p->GetFlagsAsString(wxPGPropertyFlags::Hidden); + if ( p->HasFlag(wxPGPropertyFlags::Hidden) ) { ok = (flags == "HIDDEN"); } @@ -1732,12 +1732,12 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_HIDDEN flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::Hidden flag for property '%s'", p->GetName()).c_str()); } - flags = p->GetFlagsAsString(wxPG_PROP_NOEDITOR); - if ( p->HasFlag(wxPG_PROP_NOEDITOR) ) + flags = p->GetFlagsAsString(wxPGPropertyFlags::NoEditor); + if ( p->HasFlag(wxPGPropertyFlags::NoEditor) ) { ok = (flags == "NOEDITOR"); } @@ -1747,13 +1747,13 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_NOEDITOR flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::NoEditor flag for property '%s'", p->GetName()).c_str()); } // Get all flags - flags = p->GetFlagsAsString(wxPG_STRING_STORED_FLAGS); - if ( p->HasFlag(wxPG_PROP_COLLAPSED) ) + flags = p->GetFlagsAsString(wxPGPropertyFlags::StringStoredFlags); + if ( p->HasFlag(wxPGPropertyFlags::Collapsed) ) { ok = (flags.Find("COLLAPSED") != wxNOT_FOUND); } @@ -1763,11 +1763,11 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_COLLAPSED flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::Collapsed flag for property '%s'", p->GetName()).c_str()); } - if ( p->HasFlag(wxPG_PROP_DISABLED) ) + if ( p->HasFlag(wxPGPropertyFlags::Disabled) ) { ok = (flags.Find("DISABLED") != wxNOT_FOUND); } @@ -1777,11 +1777,11 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_DISBALED flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::Disabled flag for property '%s'", p->GetName()).c_str()); } - if ( p->HasFlag(wxPG_PROP_HIDDEN) ) + if ( p->HasFlag(wxPGPropertyFlags::Hidden) ) { ok = (flags.Find("HIDDEN") != wxNOT_FOUND); } @@ -1791,11 +1791,11 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_HIDDEN flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::Hidden flag for property '%s'", p->GetName()).c_str()); } - if ( p->HasFlag(wxPG_PROP_NOEDITOR) ) + if ( p->HasFlag(wxPGPropertyFlags::NoEditor) ) { ok = (flags.Find("NOEDITOR") != wxNOT_FOUND); } @@ -1805,15 +1805,15 @@ TEST_CASE("PropertyGridTestCase", "[propgrid]") } if ( !ok ) { - FAIL_CHECK(wxString::Format("Invalid string for wxPG_PROP_NOEDITOR flag for property '%s'", + FAIL_CHECK(wxString::Format("Invalid string for wxPGPropertyFlags::NoEditor flag for property '%s'", p->GetName()).c_str()); } // Restore original flags - p->ChangeFlag(wxPG_PROP_COLLAPSED, (oldFlags & wxPG_PROP_COLLAPSED) != 0); - p->ChangeFlag(wxPG_PROP_DISABLED, (oldFlags & wxPG_PROP_DISABLED) != 0); - p->ChangeFlag(wxPG_PROP_HIDDEN, (oldFlags & wxPG_PROP_HIDDEN) != 0); - p->ChangeFlag(wxPG_PROP_NOEDITOR, (oldFlags & wxPG_PROP_NOEDITOR) != 0); + p->ChangeFlag(wxPGPropertyFlags::Collapsed, !!(oldFlags & wxPGPropertyFlags::Collapsed)); + p->ChangeFlag(wxPGPropertyFlags::Disabled, !!(oldFlags & wxPGPropertyFlags::Disabled)); + p->ChangeFlag(wxPGPropertyFlags::Hidden, !!(oldFlags & wxPGPropertyFlags::Hidden)); + p->ChangeFlag(wxPGPropertyFlags::NoEditor, !!(oldFlags & wxPGPropertyFlags::NoEditor)); } } }