]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/propgrid/editors.h
adding a app-defined event seems to quit inner eventloops like eg the popup of the...
[wxWidgets.git] / interface / wx / propgrid / editors.h
index 29738a5c22ee858211196d9d47c76d035dacd49f..8f563a05d735cd4a28444a18a4c867d5a831e875 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,9 +94,9 @@ 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
                  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,
                  wxComboBox based editor).
     */
     virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
@@ -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,