]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/advprops.h
By default, always refresh editor and redraw properties when property value is changed
[wxWidgets.git] / include / wx / propgrid / advprops.h
index 5c6eb2eb17e191261b5ea8e680a4a408ccfb1d51..9326cc40b99a68ffa91068350f879ac19888b88a 100644 (file)
@@ -23,8 +23,6 @@
 // Additional Value Type Handlers
 //
 #ifndef SWIG
 // Additional Value Type Handlers
 //
 #ifndef SWIG
-bool WXDLLIMPEXP_PROPGRID operator==(const wxFont&, const wxFont&);
-
 bool WXDLLIMPEXP_PROPGRID
 operator==(const wxArrayInt& array1, const wxArrayInt& array2);
 #endif
 bool WXDLLIMPEXP_PROPGRID
 operator==(const wxArrayInt& array1, const wxArrayInt& array2);
 #endif
@@ -128,7 +126,8 @@ public:
 #ifndef SWIG
     void operator=(const wxColourPropertyValue& cpv)
     {
 #ifndef SWIG
     void operator=(const wxColourPropertyValue& cpv)
     {
-        Init( cpv.m_type, cpv.m_colour );
+        if (this != &cpv)
+            Init( cpv.m_type, cpv.m_colour );
     }
 
 private:
     }
 
 private:
@@ -146,7 +145,7 @@ DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID)
 #endif
 
 #ifndef SWIG
 #endif
 
 #ifndef SWIG
-    #define wxPG_EMPTY_CPV          (*((wxColourPropertyValue*)NULL))
+    #define wxPG_EMPTY_CPV          (*(NULL))
     #define wxPG_NORMAL_FONT        (*wxNORMAL_FONT)
 #else
     #define wxPG_EMPTY_CPV          wxCPV_wxPG_EMPTY
     #define wxPG_NORMAL_FONT        (*wxNORMAL_FONT)
 #else
     #define wxPG_EMPTY_CPV          wxCPV_wxPG_EMPTY
@@ -180,7 +179,7 @@ public:
                    const wxFont& value = wxFont());
     virtual ~wxFontProperty();
     virtual void OnSetValue();
                    const wxFont& value = wxFont());
     virtual ~wxFontProperty();
     virtual void OnSetValue();
-    virtual wxString GetValueAsString( int argFlags = 0 ) const;
+    virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
     virtual bool OnEvent( wxPropertyGrid* propgrid,
                           wxWindow* primary, wxEvent& event );
     virtual void ChildChanged( wxVariant& thisValue,
     virtual bool OnEvent( wxPropertyGrid* propgrid,
                           wxWindow* primary, wxEvent& event );
     virtual void ChildChanged( wxVariant& thisValue,
@@ -231,7 +230,7 @@ public:
     */
     virtual int GetCustomColourIndex() const;
 
     */
     virtual int GetCustomColourIndex() const;
 
-    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 StringToValue( wxVariant& variant,
                                 const wxString& text,
                                 int argFlags = 0 ) const;
@@ -282,14 +281,30 @@ protected:
 
 // -----------------------------------------------------------------------
 
 
 // -----------------------------------------------------------------------
 
-WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR_WITH_DECL(
-    wxColourProperty, class WXDLLIMPEXP_PROPGRID)
+class WXDLLIMPEXP_PROPGRID wxColourProperty : public wxSystemColourProperty
+{
+    WX_PG_DECLARE_PROPERTY_CLASS(wxColourProperty)
+public:
+    wxColourProperty( const wxString& label = wxPG_LABEL,
+                      const wxString& name = wxPG_LABEL,
+                      const wxColour& value = *wxWHITE );
+    virtual ~wxColourProperty();
 
 
-// Exclude classes from wxPython bindings
-#ifndef SWIG
+    virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
+    virtual wxColour GetColour( int index ) const;
+
+protected:
+    virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const;
+
+private:
+    void Init( wxColour colour );
+};
 
 // -----------------------------------------------------------------------
 
 
 // -----------------------------------------------------------------------
 
+// Exclude classes from wxPython bindings
+#ifndef SWIG
+
 /** @class wxCursorProperty
     @ingroup classes
     Property representing wxCursor.
 /** @class wxCursorProperty
     @ingroup classes
     Property representing wxCursor.
@@ -377,7 +392,7 @@ public:
     virtual ~wxMultiChoiceProperty();
 
     virtual void OnSetValue();
     virtual ~wxMultiChoiceProperty();
 
     virtual void OnSetValue();
-    virtual wxString GetValueAsString( int flags = 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 StringToValue(wxVariant& variant,
                                const wxString& text,
                                int argFlags = 0) const;
@@ -391,7 +406,7 @@ public:
 
 protected:
 
 
 protected:
 
-    void GenerateValueAsString();
+    void GenerateValueAsString( wxVariant& value, wxString* target ) const;
 
     // Returns translation of values into string indices.
     wxArrayInt GetValueAsIndices() const;
 
     // Returns translation of values into string indices.
     wxArrayInt GetValueAsIndices() const;
@@ -415,7 +430,8 @@ protected:
     <b>Supported special attributes:</b>
     - "DateFormat": Determines displayed date format.
     - "PickerStyle": Determines window style used with wxDatePickerCtrl.
     <b>Supported special attributes:</b>
     - "DateFormat": Determines displayed date format.
     - "PickerStyle": Determines window style used with wxDatePickerCtrl.
-       Default is wxDP_DEFAULT | wxDP_SHOWCENTURY.
+       Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE 
+       enables additional support for unspecified property value.
 */
 class WXDLLIMPEXP_PROPGRID wxDateProperty : public wxPGProperty
 {
 */
 class WXDLLIMPEXP_PROPGRID wxDateProperty : public wxPGProperty
 {
@@ -427,7 +443,8 @@ public:
                     const wxDateTime& value = wxDateTime() );
     virtual ~wxDateProperty();
 
                     const wxDateTime& value = wxDateTime() );
     virtual ~wxDateProperty();
 
-    virtual wxString GetValueAsString( int flags = 0 ) const;
+    virtual void OnSetValue();
+    virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
     virtual bool StringToValue(wxVariant& variant,
                                const wxString& text,
                                int argFlags = 0) const;
     virtual bool StringToValue(wxVariant& variant,
                                const wxString& text,
                                int argFlags = 0) const;
@@ -499,13 +516,15 @@ protected:
 //   used for event handling here.
 class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor
 {
 //   used for event handling here.
 class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor
 {
-    WX_PG_DECLARE_EDITOR_CLASS(wxPGSpinCtrlEditor)
+    DECLARE_DYNAMIC_CLASS(wxPGSpinCtrlEditor)
 public:
     virtual ~wxPGSpinCtrlEditor();
 
 public:
     virtual ~wxPGSpinCtrlEditor();
 
-    // See below for short explanations of what these are suppposed to do.
-    wxPG_DECLARE_CREATECONTROLS
-
+    wxString GetName() const;
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
     virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
         wxWindow* wnd, wxEvent& event ) const;
 
     virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
         wxWindow* wnd, wxEvent& event ) const;