#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"
+
// -----------------------------------------------------------------------
//
//
// 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
// -----------------------------------------------------------------------
-#ifndef SWIG
-
-#include "wx/textctrl.h"
-
/** @class wxPGInDialogValidator
@ingroup classes
Creates and manages a temporary wxTextCtrl for validation purposes.
wxTextCtrl* m_textCtrl;
};
-#endif // SWIG
-
// -----------------------------------------------------------------------
// Property classes
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;
// -----------------------------------------------------------------------
-#ifndef SWIG
/** Constants used with DoValidation() methods.
*/
-enum
+enum wxPGDoValidationConstants
{
/** Instead of modifying the value, show an error message.
*/
*/
wxPG_PROPERTY_VALIDATION_WRAP = 2
};
-#endif
// -----------------------------------------------------------------------
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;
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;
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;
wxPGValidationInfo* pValidationInfo,
int mode =
wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE );
+ virtual wxValidator* DoGetValidator () const;
protected:
int m_precision;
- virtual wxValidator* DoGetValidator () const;
};
// -----------------------------------------------------------------------
-// Exclude class from wxPython bindings
-#ifndef SWIG
-
/** @class wxBoolProperty
@ingroup classes
Basic property with boolean value.
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;
virtual bool DoSetAttribute( const wxString& name, wxVariant& value );
};
-#endif // !SWIG
-
// -----------------------------------------------------------------------
-/** @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
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* const* 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* const* 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;
// 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:
// -----------------------------------------------------------------------
-// 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.
wxEditEnumProperty( const wxString& label,
const wxString& name,
- const wxChar** labels,
+ const wxChar* const* labels,
const long* values,
const wxString& value );
wxEditEnumProperty( const wxString& label = wxPG_LABEL,
// Special constructor for caching choices (used by derived class)
wxEditEnumProperty( const wxString& label,
const wxString& name,
- const wxChar** labels,
+ const wxChar* const* labels,
const long* values,
wxPGChoices* choicesCache,
const wxString& value );
#ifndef SWIG
wxFlagsProperty( const wxString& label,
const wxString& name,
- const wxChar** labels,
+ const wxChar* const* labels,
const long* values = NULL,
long value = 0 );
wxFlagsProperty( const wxString& label,
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;
- virtual void ChildChanged( wxVariant& thisValue,
- int childIndex,
- wxVariant& childValue ) const;
+ virtual wxVariant ChildChanged( wxVariant& thisValue,
+ int childIndex,
+ wxVariant& childValue ) const;
virtual void RefreshChildren();
+ virtual bool DoSetAttribute( const wxString& name, wxVariant& value );
// GetChoiceSelection needs to overridden since m_choices is
// used and value is integer, but it is not index.
// -----------------------------------------------------------------------
-#include "wx/filename.h"
-
// Indicates first bit useable by derived properties.
#define wxPG_PROP_SHOW_FULL_FILENAME wxPG_PROP_CLASS_SPECIFIC_1
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;
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
};
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;
// -----------------------------------------------------------------------
-// Exclude class from wxPython bindings
-#ifndef SWIG
-
/** @class wxDirProperty
@ingroup classes
Like wxLongStringProperty, but the button triggers dir selector instead.
*/
class WXDLLIMPEXP_PROPGRID wxDirProperty : public wxLongStringProperty
{
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS(wxDirProperty)
-#endif
public:
wxDirProperty( const wxString& name = wxPG_LABEL,
const wxString& label = wxPG_LABEL,
wxString m_dlgMessage;
};
-#endif // !SWIG
-
// -----------------------------------------------------------------------
// wxBoolProperty specific flags
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;
wxWindow* primary,
const wxChar* cbt );
-#ifndef SWIG
// Creates wxArrayEditorDialog for string editing. Called in OnButtonClick.
virtual wxArrayEditorDialog* CreateEditorDialog();
-#endif
protected:
wxString m_display; // Cache for displayed text.
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)
*/
virtual wxValidator* GetTextCtrlValidator() const
{
- return (wxValidator*) NULL;
+ return NULL;
}
// Returns true if array was actually modified
virtual void ArraySwap( size_t first, size_t second ) = 0;
private:
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS_NO_COPY(wxArrayEditorDialog)
DECLARE_EVENT_TABLE()
-#endif
};
// -----------------------------------------------------------------------
virtual void ArraySwap( size_t first, size_t second );
private:
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayStringEditorDialog)
DECLARE_EVENT_TABLE()
-#endif
};
// -----------------------------------------------------------------------