X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ea5af9c5356676a5c4d81b4d4915ad32ca3c9c6e..ac10ea91c9bff4a8daae3313063867647c1e1079:/include/wx/propgrid/props.h diff --git a/include/wx/propgrid/props.h b/include/wx/propgrid/props.h index 5c38115056..965de7dc7a 100644 --- a/include/wx/propgrid/props.h +++ b/include/wx/propgrid/props.h @@ -26,181 +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 wxPG_NO_ESCAPE wxPG_PROP_NO_ESCAPE // No escape sequences -#define wxPG_ESCAPE 0 // Escape sequences - -#define WX_PG_DECLARE_STRING_PROPERTY_WITH_DECL(NAME, DECL) \ -DECL NAME : public wxLongStringProperty \ -{ \ - DECLARE_DYNAMIC_CLASS(NAME) \ -public: \ - NAME( const wxString& name = wxPG_LABEL, \ - const wxString& label = wxPG_LABEL, \ - const wxString& value = wxEmptyString); \ - virtual ~NAME(); \ - virtual bool OnButtonClick( wxPropertyGrid* propgrid, wxString& value ); \ - virtual wxValidator* DoGetValidator() const; \ -}; - -#define WX_PG_DECLARE_STRING_PROPERTY(NAME) \ -WX_PG_DECLARE_STRING_PROPERTY_WITH_DECL(NAME, class) \ - -#define WX_PG_IMPLEMENT_STRING_PROPERTY_WITH_VALIDATOR(NAME, FLAGS) \ -IMPLEMENT_DYNAMIC_CLASS(NAME,wxLongStringProperty) \ -NAME::NAME( const wxString& name, \ - const wxString& label, \ - const wxString& value ) \ - : wxLongStringProperty(name,label,value) \ -{ \ - m_flags |= FLAGS; \ -} \ -NAME::~NAME() { } - -#define WX_PG_IMPLEMENT_STRING_PROPERTY(NAME, FLAGS) \ -WX_PG_IMPLEMENT_STRING_PROPERTY_WITH_VALIDATOR(NAME,FLAGS) \ -wxValidator* NAME::DoGetValidator () const \ -{ return (wxValidator*) NULL; } - -// ----------------------------------------------------------------------- - -#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 != wxPG_EDITOR(Choice) && \ - editor != wxPG_EDITOR(ChoiceAndButton) && \ - editor != wxPG_EDITOR(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) // ----------------------------------------------------------------------- @@ -278,7 +106,7 @@ public: const wxString& value = wxEmptyString ); virtual ~wxStringProperty(); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -368,7 +196,7 @@ public: wxIntProperty( const wxString& label, const wxString& name, const wxLongLong& value ); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -422,7 +250,7 @@ public: wxUIntProperty( const wxString& label, const wxString& name, const wxULongLong& value ); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -459,7 +287,7 @@ public: double value = 0.0 ); virtual ~wxFloatProperty(); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -502,7 +330,7 @@ public: bool value = false ); virtual ~wxBoolProperty(); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -532,7 +360,7 @@ public: const wxString& name = wxPG_LABEL ); virtual void OnSetValue(); - virtual wxString GetValueAsString( int argFlags ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -725,7 +553,7 @@ public: virtual ~wxFlagsProperty (); virtual void OnSetValue(); - virtual wxString GetValueAsString( int argFlags ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int flags ) const; @@ -803,7 +631,7 @@ public: virtual ~wxFileProperty (); virtual void OnSetValue(); - virtual wxString GetValueAsString( int argFlags ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -813,12 +641,16 @@ public: static wxValidator* GetClassValidator(); virtual wxValidator* DoGetValidator() const; + /** + Returns filename to file represented by current value. + */ + wxFileName GetFileName() const; + protected: wxString m_wildcard; wxString m_basePath; // If set, then show path relative to it wxString m_initialPath; // If set, start the file dialog here wxString m_dlgTitle; // If set, used as title for file dialog - wxFileName m_filename; // used as primary storage int m_indFilter; // index to the selected filter }; @@ -854,7 +686,7 @@ public: const wxString& value = wxEmptyString ); virtual ~wxLongStringProperty(); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const; @@ -933,7 +765,7 @@ public: virtual ~wxArrayStringProperty(); virtual void OnSetValue(); - virtual wxString GetValueAsString( int argFlags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue( wxVariant& variant, const wxString& text, int argFlags = 0 ) const;