]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/props.h
Resolve GCC's 'type-punned pointer will break strict-aliasing rules' warning by break...
[wxWidgets.git] / include / wx / propgrid / props.h
index f7247bc81515db318d022b0d8a271529e296f07d..eacb908f316422150ee03f4103f938d1165a3b86 100644 (file)
@@ -41,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
@@ -52,8 +52,6 @@ WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, T, EDITOR)
 
 // -----------------------------------------------------------------------
 
-#ifndef SWIG
-
 /** @class wxPGInDialogValidator
     @ingroup classes
     Creates and manages a temporary wxTextCtrl for validation purposes.
@@ -81,8 +79,6 @@ private:
     wxTextCtrl*         m_textCtrl;
 };
 
-#endif  // SWIG
-
 
 // -----------------------------------------------------------------------
 // Property classes
@@ -126,10 +122,9 @@ protected:
 
 // -----------------------------------------------------------------------
 
-#ifndef SWIG
 /** Constants used with DoValidation() methods.
 */
-enum
+enum wxPGDoValidationConstants
 {
     /** Instead of modifying the value, show an error message.
     */
@@ -143,7 +138,6 @@ enum
     */
     wxPG_PROPERTY_VALIDATION_WRAP               = 2
 };
-#endif
 
 // -----------------------------------------------------------------------
 
@@ -314,9 +308,6 @@ protected:
 
 // -----------------------------------------------------------------------
 
-// Exclude class from wxPython bindings
-#ifndef SWIG
-
 /** @class wxBoolProperty
     @ingroup classes
     Basic property with boolean value.
@@ -343,8 +334,6 @@ public:
     virtual bool DoSetAttribute( const wxString& name, wxVariant& value );
 };
 
-#endif  // !SWIG
-
 // -----------------------------------------------------------------------
 
 // If set, then selection of choices is static and should not be
@@ -370,7 +359,7 @@ public:
 #ifndef SWIG
     wxEnumProperty( const wxString& label = wxPG_LABEL,
                     const wxString& name = wxPG_LABEL,
-                    const wxChar** labels = NULL,
+                    const wxChar* const* labels = NULL,
                     const long* values = NULL,
                     int value = 0 );
     wxEnumProperty( const wxString& label,
@@ -381,7 +370,7 @@ public:
     // Special constructor for caching choices (used by derived class)
     wxEnumProperty( const wxString& label,
                     const wxString& name,
-                    const wxChar** labels,
+                    const wxChar* const* labels,
                     const long* values,
                     wxPGChoices* choicesCache,
                     int value = 0 );
@@ -428,6 +417,8 @@ public:
     // this take advantage of it.
     virtual int GetChoiceSelection() const { return m_index; }
 
+    virtual void OnValidationFailure( wxVariant& pendingValue );
+
 protected:
 
     int GetIndex() const;
@@ -466,7 +457,7 @@ public:
 
     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,
@@ -482,7 +473,7 @@ public:
     // 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 );
@@ -512,7 +503,7 @@ public:
 #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,
@@ -532,10 +523,11 @@ public:
     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.
@@ -681,9 +673,6 @@ protected:
 // -----------------------------------------------------------------------
 
 
-// Exclude class from wxPython bindings
-#ifndef SWIG
-
 /** @class wxDirProperty
     @ingroup classes
     Like wxLongStringProperty, but the button triggers dir selector instead.
@@ -693,9 +682,7 @@ protected:
 */
 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,
@@ -711,8 +698,6 @@ protected:
     wxString    m_dlgMessage;
 };
 
-#endif  // !SWIG
-
 // -----------------------------------------------------------------------
 
 // wxBoolProperty specific flags
@@ -757,10 +742,8 @@ public:
                                 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.
@@ -847,7 +830,7 @@ WX_PG_IMPLEMENT_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAME, \
                                                     DELIMCHAR, \
                                                     CUSTBUTTXT) \
 wxValidator* PROPNAME::DoGetValidator () const \
-{ return (wxValidator*) NULL; }
+{ return NULL; }
 
 
 // -----------------------------------------------------------------------
@@ -904,7 +887,7 @@ public:
     */
     virtual wxValidator* GetTextCtrlValidator() const
     {
-        return (wxValidator*) NULL;
+        return NULL;
     }
 
     // Returns true if array was actually modified
@@ -951,10 +934,8 @@ protected:
     virtual void ArraySwap( size_t first, size_t second ) = 0;
 
 private:
-#ifndef SWIG
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxArrayEditorDialog)
     DECLARE_EVENT_TABLE()
-#endif
 };
 
 // -----------------------------------------------------------------------
@@ -1001,10 +982,8 @@ protected:
     virtual void ArraySwap( size_t first, size_t second );
 
 private:
-#ifndef SWIG
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayStringEditorDialog)
     DECLARE_EVENT_TABLE()
-#endif
 };
 
 // -----------------------------------------------------------------------