X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d61d8cffa928c7b25cfada5618b987be2ec5e052..f54e5c1a4f6952c62ed4480f7d26feddc20f98ba:/include/wx/propgrid/props.h diff --git a/include/wx/propgrid/props.h b/include/wx/propgrid/props.h index 6609bdbb3a..5517f8acd9 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" + // ----------------------------------------------------------------------- // @@ -35,7 +41,7 @@ WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, T, EDITOR) // // These macros help creating DoGetValidator #define WX_PG_DOGETVALIDATOR_ENTRY() \ - static wxValidator* s_ptr = (wxValidator*) NULL; \ + static wxValidator* s_ptr = NULL; \ if ( s_ptr ) return s_ptr; // Common function exit @@ -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,22 +423,12 @@ 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; - } + virtual void OnValidationFailure( wxVariant& pendingValue ); protected: @@ -415,63 +449,7 @@ private: // Relies on ValidateValue being called always before OnSetValue static int ms_nextIndex; -}; - -// ----------------------------------------------------------------------- - -// 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; } + static int ms_prevIndex; }; // ----------------------------------------------------------------------- @@ -553,7 +531,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 +578,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 +607,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 +617,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 +662,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 +741,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; @@ -870,17 +850,13 @@ WX_PG_IMPLEMENT_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAME, \ DELIMCHAR, \ CUSTBUTTXT) \ wxValidator* PROPNAME::DoGetValidator () const \ -{ return (wxValidator*) NULL; } +{ return NULL; } // ----------------------------------------------------------------------- // wxArrayEditorDialog // ----------------------------------------------------------------------- -#include "wx/button.h" -#include "wx/dialog.h" -#include "wx/listbox.h" - #define wxAEDIALOG_STYLE \ (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK | wxCANCEL | wxCENTRE) @@ -931,7 +907,7 @@ public: */ virtual wxValidator* GetTextCtrlValidator() const { - return (wxValidator*) NULL; + return NULL; } // Returns true if array was actually modified