From fde9bb6d410dfa31528d5aa2650f935d490ffc09 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Sun, 12 May 2019 12:49:38 +0200 Subject: [PATCH] Make wxPG_COLOUR_ALLOW_CUSTOM a Boolean property So far it was implemented as property which could take int values 0/1 so it was acting essentially as a Boolean property. Implementing it explicitly as a Boolean one will make it more intuitive. Legacy code setting 0/1 int values shouldn't be affected because conversion from int to bool is implicit. --- interface/wx/propgrid/advprops.h | 11 +++++++++++ interface/wx/propgrid/property.h | 6 +++--- src/propgrid/advprops.cpp | 6 +++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/interface/wx/propgrid/advprops.h b/interface/wx/propgrid/advprops.h index 38bfa51889..7917df020f 100644 --- a/interface/wx/propgrid/advprops.h +++ b/interface/wx/propgrid/advprops.h @@ -95,6 +95,9 @@ public: @ingroup classes Has dropdown list of wxWidgets system colours. Value used is of wxColourPropertyValue type. + + Supported special attributes: + ::wxPG_COLOUR_ALLOW_CUSTOM, ::wxPG_COLOUR_HAS_ALPHA */ class wxSystemColourProperty : public wxEnumProperty { @@ -168,6 +171,14 @@ protected: +/** @class wxColourProperty + @ingroup classes + Allows to select a colour from the list or with colour dialog. Value used + is of wxColourPropertyValue type. + + Supported special attributes: + ::wxPG_COLOUR_ALLOW_CUSTOM, ::wxPG_COLOUR_HAS_ALPHA +*/ class wxColourProperty : public wxSystemColourProperty { public: diff --git a/interface/wx/propgrid/property.h b/interface/wx/propgrid/property.h index 2cab67c25a..b0748f2601 100644 --- a/interface/wx/propgrid/property.h +++ b/interface/wx/propgrid/property.h @@ -206,9 +206,9 @@ struct wxPGPaintData */ #define wxPG_ATTR_MULTICHOICE_USERSTRINGMODE wxS("UserStringMode") -/** Built-in attribute of wxColourProperty and its kind, type of @c int, - default value is 1. Setting this attribute to 0 hides custom colour - from property's list of choices. +/** Built-in attribute of wxColourProperty and its kind, type of @c bool, + default value is @true. Setting this attribute to @false hides custom + colour from property's list of choices. */ #define wxPG_COLOUR_ALLOW_CUSTOM wxS("AllowCustom") diff --git a/src/propgrid/advprops.cpp b/src/propgrid/advprops.cpp index 1d84ae5c9a..852d91790f 100644 --- a/src/propgrid/advprops.cpp +++ b/src/propgrid/advprops.cpp @@ -1571,16 +1571,16 @@ bool wxSystemColourProperty::DoSetAttribute( const wxString& name, wxVariant& va { if ( name == wxPG_COLOUR_ALLOW_CUSTOM ) { - int ival = value.GetLong(); + bool allow = value.GetBool(); - if ( ival && (m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + if ( allow && (m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) { // Show custom choice /* TRANSLATORS: Custom colour choice entry */ m_choices.Add(_("Custom"), wxPG_COLOUR_CUSTOM); m_flags &= ~(wxPG_PROP_HIDE_CUSTOM_COLOUR); } - else if ( !ival && !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + else if ( !allow && !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) { // Hide custom choice m_choices.RemoveAt(GetCustomColourIndex());