]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/propgrid/editors.h
Add wxNumberFormatter class helping to deal with thousands separators.
[wxWidgets.git] / interface / wx / propgrid / editors.h
index be902a925befebfe223d7fd99b1c7ac801822e41..095f15af0cdb5bff71aba292a089f250f76d9cd9 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxPropertyGrid editors
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Purpose:     interface of wxPropertyGrid editors
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -94,7 +94,7 @@ public:
         (see wxPGProperty::OnEvent() for more information).
 
         @remarks wxPropertyGrid will automatically unfocus the editor when
         (see wxPGProperty::OnEvent() for more information).
 
         @remarks wxPropertyGrid will automatically unfocus the editor when
-                 wxEVT_COMMAND_TEXT_ENTER is received and when it results in
+                 @c 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
                  wxComboBox based editor).
                  property value being modified. This happens regardless of
                  editor type (ie. behavior is same for any wxTextCtrl and
                  wxComboBox based editor).
@@ -114,6 +114,27 @@ public:
     virtual void SetValueToUnspecified( wxPGProperty* property,
                                         wxWindow* ctrl ) const = 0;
 
     virtual void SetValueToUnspecified( wxPGProperty* property,
                                         wxWindow* ctrl ) const = 0;
 
+    /**
+        Called by property grid to set new appearance for the control.
+        Default implementation  sets foreground colour, background colour,
+        font, plus text for wxTextCtrl and wxComboCtrl.
+
+        The parameter @a appearance represents the new appearance to be applied.
+
+        The parameter @a oldAppearance is the previously applied appearance. 
+        Used to detect which control attributes need to be changed (e.g. so we only
+        change background colour if really needed).
+
+        Finally, the parameter @a unspecified if @true tells this function that
+        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 control's value specifically from string. */
     virtual void SetControlStringValue( wxPGProperty* property,
                                         wxWindow* ctrl, const wxString& txt ) const;
     /** Sets control's value specifically from string. */
     virtual void SetControlStringValue( wxPGProperty* property,
                                         wxWindow* ctrl, const wxString& txt ) const;
@@ -163,7 +184,8 @@ public:
 
     class wxSampleMultiButtonEditor : public wxPGTextCtrlEditor
     {
 
     class wxSampleMultiButtonEditor : public wxPGTextCtrlEditor
     {
-        DECLARE_DYNAMIC_CLASS(wxSampleMultiButtonEditor)
+        wxDECLARE_DYNAMIC_CLASS(wxSampleMultiButtonEditor);
+        
     public:
         wxSampleMultiButtonEditor() {}
         virtual ~wxSampleMultiButtonEditor() {}
     public:
         wxSampleMultiButtonEditor() {}
         virtual ~wxSampleMultiButtonEditor() {}
@@ -180,7 +202,7 @@ public:
                               wxEvent& event ) const;
     };
 
                               wxEvent& event ) const;
     };
 
-    IMPLEMENT_DYNAMIC_CLASS(wxSampleMultiButtonEditor, wxPGTextCtrlEditor)
+    wxIMPLEMENT_DYNAMIC_CLASS(wxSampleMultiButtonEditor, wxPGTextCtrlEditor);
 
     wxPGWindowList wxSampleMultiButtonEditor::CreateControls( wxPropertyGrid* propGrid,
                                                               wxPGProperty* property,
 
     wxPGWindowList wxSampleMultiButtonEditor::CreateControls( wxPropertyGrid* propGrid,
                                                               wxPGProperty* property,
@@ -220,18 +242,19 @@ public:
 
             if ( event.GetId() == buttons->GetButtonId(0) )
             {
 
             if ( event.GetId() == buttons->GetButtonId(0) )
             {
-                // Do something when first button is pressed
-                return true;
+                // Do something when the first button is pressed
+                // Return true if the action modified the value in editor.
+                ...
             }
             if ( event.GetId() == buttons->GetButtonId(1) )
             {
             }
             if ( event.GetId() == buttons->GetButtonId(1) )
             {
-                // Do something when second button is pressed
-                return true;
+                // Do something when the second button is pressed
+                ...
             }
             if ( event.GetId() == buttons->GetButtonId(2) )
             {
             }
             if ( event.GetId() == buttons->GetButtonId(2) )
             {
-                // Do something when third button is pressed
-                return true;
+                // Do something when the third button is pressed
+                ...
             }
         }
         return wxPGTextCtrlEditor::OnEvent(propGrid, property, ctrl, event);
             }
         }
         return wxPGTextCtrlEditor::OnEvent(propGrid, property, ctrl, event);