Eliminated last property generation macros from props.h (colour property gen ones, now use subclassing facilities present in wx(System)ColourProperty)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -26,144 +26,9 @@ class wxArrayEditorDialog;
|
||||
// Property class implementation helper macros.
|
||||
//
|
||||
|
||||
// Adds constructor function as well.
|
||||
#define WX_PG_IMPLEMENT_PROPERTY_CLASS2(NAME,CLASSNAME,\
|
||||
UPCLASS,T,T_AS_ARG,EDITOR) \
|
||||
#define WX_PG_IMPLEMENT_PROPERTY_CLASS(NAME, UPCLASS, T, T_AS_ARG, EDITOR) \
|
||||
IMPLEMENT_DYNAMIC_CLASS(NAME, UPCLASS) \
|
||||
WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME,T,EDITOR)
|
||||
|
||||
// A regular property
|
||||
#define WX_PG_IMPLEMENT_PROPERTY_CLASS(NAME,UPNAME,T,T_AS_ARG,EDITOR) \
|
||||
WX_PG_IMPLEMENT_PROPERTY_CLASS2(NAME,NAME,UPNAME,T,T_AS_ARG,EDITOR)
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
#define WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_WITH_DECL(CLASSNAME, DECL) \
|
||||
DECL CLASSNAME : public wxSystemColourProperty \
|
||||
{ \
|
||||
DECLARE_DYNAMIC_CLASS(CLASSNAME) \
|
||||
public: \
|
||||
CLASSNAME( const wxString& label = wxPG_LABEL, \
|
||||
const wxString& name = wxPG_LABEL, \
|
||||
const wxColourPropertyValue& value = wxColourPropertyValue() ); \
|
||||
virtual ~CLASSNAME(); \
|
||||
virtual wxColour GetColour( int index ) const; \
|
||||
};
|
||||
|
||||
#define WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY(CLASSNAME) \
|
||||
WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_WITH_DECL(CLASSNAME, class)
|
||||
|
||||
#define WX_PG_IMPLEMENT_CUSTOM_COLOUR_PROPERTY(CLASSNAME,\
|
||||
LABELS,VALUES,COLOURS) \
|
||||
static wxPGChoices gs_##CLASSNAME##_choicesCache; \
|
||||
IMPLEMENT_DYNAMIC_CLASS(CLASSNAME, wxSystemColourProperty) \
|
||||
CLASSNAME::CLASSNAME( const wxString& label, const wxString& name, \
|
||||
const wxColourPropertyValue& value ) \
|
||||
: wxSystemColourProperty(label, name, LABELS, VALUES, \
|
||||
&gs_##CLASSNAME##_choicesCache, value ) \
|
||||
{ \
|
||||
m_flags |= wxPG_PROP_TRANSLATE_CUSTOM; \
|
||||
} \
|
||||
CLASSNAME::~CLASSNAME () { } \
|
||||
wxColour CLASSNAME::GetColour ( int index ) const \
|
||||
{ \
|
||||
if ( !m_choices.HasValue(index) ) \
|
||||
{ \
|
||||
wxASSERT( index < (int)m_choices.GetCount() ); \
|
||||
return COLOURS[index]; \
|
||||
} \
|
||||
return COLOURS[m_choices.GetValue(index)]; \
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
#define WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR_WITH_DECL(CLASSNAME,\
|
||||
DECL) \
|
||||
DECL CLASSNAME : public wxSystemColourProperty \
|
||||
{ \
|
||||
WX_PG_DECLARE_PROPERTY_CLASS(CLASSNAME) \
|
||||
public: \
|
||||
CLASSNAME( const wxString& label = wxPG_LABEL, \
|
||||
const wxString& name = wxPG_LABEL, \
|
||||
const wxColour& value = wxColour() ); \
|
||||
virtual ~CLASSNAME(); \
|
||||
virtual wxString GetValueAsString( int argFlags ) const; \
|
||||
virtual wxColour GetColour( int index ) const; \
|
||||
virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const; \
|
||||
void Init( wxColour colour ); \
|
||||
};
|
||||
|
||||
#define WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR(CLASSNAME) \
|
||||
WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR_WITH_DECL(CLASSNAME, class)
|
||||
|
||||
#define WX_PG_IMPLEMENT_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR2(CLASSNAME, \
|
||||
LABELS, \
|
||||
VALUES, \
|
||||
COLOURS, \
|
||||
EDITOR) \
|
||||
static wxPGChoices gs_##CLASSNAME##_choicesCache; \
|
||||
WX_PG_IMPLEMENT_PROPERTY_CLASS(CLASSNAME, wxSystemColourProperty, \
|
||||
wxColour, const wxColour&,EDITOR) \
|
||||
CLASSNAME::CLASSNAME( const wxString& label, \
|
||||
const wxString& name, \
|
||||
const wxColour& value ) \
|
||||
: wxSystemColourProperty(label, name, LABELS, VALUES, \
|
||||
&gs_##CLASSNAME##_choicesCache, value ) \
|
||||
{ \
|
||||
if ( &value ) \
|
||||
Init( value ); \
|
||||
else \
|
||||
Init( *wxWHITE ); \
|
||||
m_flags |= wxPG_PROP_TRANSLATE_CUSTOM; \
|
||||
} \
|
||||
CLASSNAME::~CLASSNAME() { } \
|
||||
void CLASSNAME::Init( wxColour colour ) \
|
||||
{ \
|
||||
if ( !colour.Ok() ) \
|
||||
colour = *wxWHITE; \
|
||||
wxVariant variant; \
|
||||
variant << colour; \
|
||||
m_value = variant; \
|
||||
int ind = ColToInd(colour); \
|
||||
if ( ind < 0 ) \
|
||||
ind = m_choices.GetCount() - 1; \
|
||||
SetIndex( ind ); \
|
||||
} \
|
||||
wxString CLASSNAME::GetValueAsString( int argFlags ) const \
|
||||
{ \
|
||||
const wxPGEditor* editor = GetEditorClass(); \
|
||||
if ( editor != wxPGEditor_Choice && \
|
||||
editor != wxPGEditor_ChoiceAndButton && \
|
||||
editor != wxPGEditor_ComboBox ) \
|
||||
argFlags |= wxPG_PROPERTY_SPECIFIC; \
|
||||
return wxSystemColourProperty::GetValueAsString(argFlags); \
|
||||
} \
|
||||
wxColour CLASSNAME::GetColour( int index ) const \
|
||||
{ \
|
||||
if ( !m_choices.HasValue(index) ) \
|
||||
{ \
|
||||
wxASSERT( index < (int)GetItemCount() ); \
|
||||
return COLOURS[index]; \
|
||||
} \
|
||||
return COLOURS[m_choices.GetValue(index)]; \
|
||||
} \
|
||||
wxVariant CLASSNAME::DoTranslateVal( wxColourPropertyValue& v ) const \
|
||||
{ \
|
||||
wxVariant variant; \
|
||||
variant << v.m_colour; \
|
||||
return variant; \
|
||||
}
|
||||
|
||||
|
||||
#define WX_PG_IMPLEMENT_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR(CLASSNAME, \
|
||||
LABELS, \
|
||||
VALUES, \
|
||||
COLOURS) \
|
||||
WX_PG_IMPLEMENT_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR2(CLASSNAME, \
|
||||
LABELS, \
|
||||
VALUES, \
|
||||
COLOURS, \
|
||||
Choice)
|
||||
WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, T, EDITOR)
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
|
Reference in New Issue
Block a user