X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d61d8cffa928c7b25cfada5618b987be2ec5e052..8d4ff849370781952d46cd78eb628a575ab3c688:/include/wx/propgrid/props.h diff --git a/include/wx/propgrid/props.h b/include/wx/propgrid/props.h index 6609bdbb3a..f7247bc815 100644 --- a/include/wx/propgrid/props.h +++ b/include/wx/propgrid/props.h @@ -20,6 +20,12 @@ class wxArrayEditorDialog; #include "wx/propgrid/editors.h" +#include "wx/filename.h" +#include "wx/dialog.h" +#include "wx/textctrl.h" +#include "wx/button.h" +#include "wx/listbox.h" + // ----------------------------------------------------------------------- // @@ -48,8 +54,6 @@ WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, T, EDITOR) #ifndef SWIG -#include "wx/textctrl.h" - /** @class wxPGInDialogValidator @ingroup classes Creates and manages a temporary wxTextCtrl for validation purposes. @@ -106,7 +110,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; @@ -196,7 +200,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; @@ -250,7 +254,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; @@ -287,7 +291,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; @@ -302,10 +306,10 @@ public: wxPGValidationInfo* pValidationInfo, int mode = wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE ); + virtual wxValidator* DoGetValidator () const; protected: int m_precision; - virtual wxValidator* DoGetValidator () const; }; // ----------------------------------------------------------------------- @@ -330,7 +334,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; @@ -343,9 +347,14 @@ public: // ----------------------------------------------------------------------- -/** @class wxBaseEnumProperty +// If set, then selection of choices is static and should not be +// changed (i.e. returns NULL in GetPropertyChoices). +#define wxPG_PROP_STATIC_CHOICES wxPG_PROP_CLASS_SPECIFIC_1 + +/** @class wxEnumProperty @ingroup classes - Derive dynamic custom properties with choices from this class. + You can derive custom properties with choices from this class. See + wxBaseEnumProperty for remarks. @remarks - Updating private index is important. You can do this either by calling @@ -353,14 +362,49 @@ public: be called (by not implementing it, or by calling super class function in it) -OR- you can just call SetIndex in OnSetValue. */ -class WXDLLIMPEXP_PROPGRID wxBaseEnumProperty : public wxPGProperty +class WXDLLIMPEXP_PROPGRID wxEnumProperty : public wxPGProperty { + WX_PG_DECLARE_PROPERTY_CLASS(wxEnumProperty) public: - wxBaseEnumProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL ); + +#ifndef SWIG + wxEnumProperty( const wxString& label = wxPG_LABEL, + const wxString& name = wxPG_LABEL, + const wxChar** labels = NULL, + const long* values = NULL, + int value = 0 ); + wxEnumProperty( const wxString& label, + const wxString& name, + wxPGChoices& choices, + int value = 0 ); + + // Special constructor for caching choices (used by derived class) + wxEnumProperty( const wxString& label, + const wxString& name, + const wxChar** labels, + const long* values, + wxPGChoices* choicesCache, + int value = 0 ); + + wxEnumProperty( const wxString& label, + const wxString& name, + const wxArrayString& labels, + const wxArrayInt& values = wxArrayInt(), + int value = 0 ); +#else + wxEnumProperty( const wxString& label = wxPG_LABEL, + const wxString& name = wxPG_LABEL, + const wxArrayString& labels = wxArrayString(), + const wxArrayInt& values = wxArrayInt(), + int value = 0 ); +#endif + + virtual ~wxEnumProperty(); + + size_t GetItemCount() const { return m_choices.GetCount(); } 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; @@ -379,23 +423,11 @@ public: // This must be overridden to have non-index based value virtual int GetIndexForValue( int value ) const; - // This returns string and value for index - // Returns NULL if beyond last item - // pvalue is never NULL - always set it. - virtual const wxString* GetEntry( size_t index, int* pvalue ) const = 0; - // GetChoiceSelection needs to overridden since m_index is // the true index, and various property classes derived from // this take advantage of it. virtual int GetChoiceSelection() const { return m_index; } - int GetValueForIndex( size_t index ) const - { - int v; - GetEntry( index, &v ); - return v; - } - protected: int GetIndex() const; @@ -419,63 +451,6 @@ private: // ----------------------------------------------------------------------- -// If set, then selection of choices is static and should not be -// changed (i.e. returns NULL in GetPropertyChoices). -#define wxPG_PROP_STATIC_CHOICES wxPG_PROP_CLASS_SPECIFIC_1 - -/** @class wxEnumProperty - @ingroup classes - You can derive custom properties with choices from this class. See - wxBaseEnumProperty for remarks. -*/ -class WXDLLIMPEXP_PROPGRID wxEnumProperty : public wxBaseEnumProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxEnumProperty) -public: - -#ifndef SWIG - wxEnumProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxChar** labels = NULL, - const long* values = NULL, - int value = 0 ); - wxEnumProperty( const wxString& label, - const wxString& name, - wxPGChoices& choices, - int value = 0 ); - - // Special constructor for caching choices (used by derived class) - wxEnumProperty( const wxString& label, - const wxString& name, - const wxChar** labels, - const long* values, - wxPGChoices* choicesCache, - int value = 0 ); - - wxEnumProperty( const wxString& label, - const wxString& name, - const wxArrayString& labels, - const wxArrayInt& values = wxArrayInt(), - int value = 0 ); -#else - wxEnumProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxArrayString& labels = wxArrayString(), - const wxArrayInt& values = wxArrayInt(), - int value = 0 ); -#endif - - virtual ~wxEnumProperty(); - - virtual int GetIndexForValue( int value ) const; - virtual const wxString* GetEntry( size_t index, int* pvalue ) const; - - size_t GetItemCount() const { return m_choices.GetCount(); } - const wxPGChoices& GetChoices() const { return m_choices; } -}; - -// ----------------------------------------------------------------------- - /** @class wxEditEnumProperty @ingroup classes wxEnumProperty with wxString value and writable combo box editor. @@ -553,7 +528,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; @@ -600,8 +575,6 @@ public: // ----------------------------------------------------------------------- -#include "wx/filename.h" - // Indicates first bit useable by derived properties. #define wxPG_PROP_SHOW_FULL_FILENAME wxPG_PROP_CLASS_SPECIFIC_1 @@ -631,7 +604,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; @@ -641,12 +614,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 }; @@ -682,7 +659,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; @@ -761,7 +738,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; @@ -877,10 +854,6 @@ wxValidator* PROPNAME::DoGetValidator () const \ // wxArrayEditorDialog // ----------------------------------------------------------------------- -#include "wx/button.h" -#include "wx/dialog.h" -#include "wx/listbox.h" - #define wxAEDIALOG_STYLE \ (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK | wxCANCEL | wxCENTRE)