]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/editors.h
A better fix for wxHash{Map,Set} with g++ 4.7.
[wxWidgets.git] / include / wx / propgrid / editors.h
index 37c22eb99ede3c22f07f467e0397132bad49ca22..d9ab664eba4072377aad25b7f1914c3ce9b4d714 100644 (file)
@@ -6,14 +6,20 @@
 // Created:     2007-04-14
 // RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_PROPGRID_EDITORS_H_
 #define _WX_PROPGRID_EDITORS_H_
 
+#include "wx/defs.h"
+
 #if wxUSE_PROPGRID
 
+class WXDLLIMPEXP_FWD_PROPGRID wxPGCell;
+class WXDLLIMPEXP_FWD_PROPGRID wxPGProperty;
+class WXDLLIMPEXP_FWD_PROPGRID wxPropertyGrid;
+
 // -----------------------------------------------------------------------
 // wxPGWindowList contains list of editor windows returned by CreateControls.
 
@@ -30,7 +36,6 @@ public:
     wxWindow*   m_primary;
     wxWindow*   m_secondary;
 
-#ifndef SWIG
     wxPGWindowList( wxWindow* a )
     {
         m_primary = a;
@@ -41,7 +46,6 @@ public:
         m_primary = a;
         m_secondary = b;
     };
-#endif
 };
 
 // -----------------------------------------------------------------------
@@ -147,13 +151,12 @@ public:
         @remarks wxPropertyGrid will automatically unfocus the editor when
                 wxEVT_COMMAND_TEXT_ENTER is received and when it results in
                 property value being modified. This happens regardless of
-                editor type (ie. behavior is same for any wxTextCtrl and
+                editor type (ie. behaviour is same for any wxTextCtrl and
                 wxComboBox based editor).
     */
     virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
         wxWindow* wnd_primary, wxEvent& event ) const = 0;
 
-#if !defined(SWIG) || defined(CREATE_VCW)
     /** Returns value from control, via parameter 'variant'.
         Usually ends up calling property's StringToValue or IntToValue.
         Returns true if value was different.
@@ -161,11 +164,36 @@ public:
     virtual bool GetValueFromControl( wxVariant& variant,
                                       wxPGProperty* property,
                                       wxWindow* ctrl ) const;
-#endif
 
-    /** Sets value in control to unspecified. */
+    /**
+        Sets new appearance for the control. Default implementation
+        sets foreground colour, background colour, font, plus text
+        for wxTextCtrl and wxComboCtrl.
+
+        @param appearance
+            New appearance to be applied.
+
+        @param oldAppearance
+            Previously applied appearance. Used to detect which
+            control attributes need to be changed (e.g. so we only
+            change background colour if really needed).
+
+        @param unspecified
+            @true if the new appearance represents an unspecified
+            property value.
+    */
+    virtual void SetControlAppearance( wxPropertyGrid* pg,
+                                       wxPGProperty* property,
+                                       wxWindow* ctrl,
+                                       const wxPGCell& appearance,
+                                       const wxPGCell& oldAppearance,
+                                       bool unspecified ) const;
+
+    /**
+        Sets value in control to unspecified.
+    */
     virtual void SetValueToUnspecified( wxPGProperty* property,
-                                        wxWindow* ctrl ) const = 0;
+                                        wxWindow* ctrl ) const;
 
     /** Sets control's value specifically from string. */
     virtual void SetControlStringValue( wxPGProperty* property,
@@ -239,8 +267,6 @@ public:
     virtual bool GetValueFromControl( wxVariant& variant,
                                       wxPGProperty* property,
                                       wxWindow* ctrl ) const;
-    virtual void SetValueToUnspecified( wxPGProperty* property,
-                                        wxWindow* ctrl ) const;
 
     virtual wxString GetName() const;
 
@@ -339,9 +365,6 @@ public:
 };
 
 
-// Exclude classes from being able to be derived from in wxPython bindings
-#ifndef SWIG
-
 class WXDLLIMPEXP_PROPGRID wxPGChoiceAndButtonEditor : public wxPGChoiceEditor
 {
 public:
@@ -373,8 +396,6 @@ public:
     DECLARE_DYNAMIC_CLASS(wxPGTextCtrlAndButtonEditor)
 };
 
-#endif  // !SWIG
-
 
 #if wxPG_INCLUDE_CHECKBOX