]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/editors.h
rebaked makefiles with 0.2.4
[wxWidgets.git] / include / wx / propgrid / editors.h
index 0d6ff4db6e568bbe19350fa053b2d38cb47ae2b3..912d888397a8702da8204497cc3a95bb701d4bfa 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Jaakko Salli
 // Modified by:
 // Created:     2007-04-14
-// RCS-ID:      $Id:
+// RCS-ID:      $Id$
 // Copyright:   (c) Jaakko Salli
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
@@ -92,10 +92,11 @@ public:
 
     /**
         Returns pointer to the name of the editor. For example,
-        wxPG_EDITOR(TextCtrl) has name "TextCtrl". This method is autogenerated
-        for custom editors.
+        wxPGEditor_TextCtrl has name "TextCtrl". If you dont' need to access
+        your custom editor by string name, then you do not need to implement
+        this function.
     */
-    virtual wxString GetName() const = 0;
+    virtual wxString GetName() const;
 
     /**
         Instantiates editor controls.
@@ -129,10 +130,6 @@ public:
                                           wxPGProperty* property,
                                           const wxPoint& pos,
                                           const wxSize& size) const = 0;
-    #define wxPG_DECLARE_CREATECONTROLS \
-        virtual wxPGWindowList \
-            CreateControls( wxPropertyGrid* propgrid, wxPGProperty* property, \
-        const wxPoint& pos, const wxSize& sz ) const;
 
     /** Loads value from property to the control. */
     virtual void UpdateControl( wxPGProperty* property,
@@ -218,41 +215,13 @@ public:
 };
 
 
-//
-// Note that we don't use this macro in this file because
-// otherwise doxygen gets confused.
-//
-#define WX_PG_DECLARE_EDITOR_CLASS(CLASSNAME) \
-    DECLARE_DYNAMIC_CLASS(CLASSNAME) \
-public: \
-    virtual wxString GetName() const; \
-private:
-
-
-#define WX_PG_IMPLEMENT_EDITOR_CLASS(EDITOR,CLASSNAME,BASECLASS) \
+#define WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(EDITOR,CLASSNAME,BASECLASS) \
 IMPLEMENT_DYNAMIC_CLASS(CLASSNAME, BASECLASS) \
 wxString CLASSNAME::GetName() const \
 { \
     return wxS(#EDITOR); \
 } \
-wxPGEditor* wxPGEditor_##EDITOR = (wxPGEditor*) NULL; \
-wxPGEditor* wxPGConstruct##EDITOR##EditorClass() \
-{ \
-    wxASSERT( !wxPGEditor_##EDITOR ); \
-    return new CLASSNAME(); \
-}
-
-
-#define WX_PG_IMPLEMENT_EDITOR_CLASS_STD_METHODS() \
-wxPG_DECLARE_CREATECONTROLS \
-virtual void UpdateControl( wxPGProperty* property, wxWindow* ctrl ) const; \
-virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, \
-    wxWindow* primary, wxEvent& event ) const; \
-virtual bool GetValueFromControl( wxVariant& variant, \
-                                  wxPGProperty* property, \
-                                  wxWindow* ctrl ) const; \
-virtual void SetValueToUnspecified( wxPGProperty* property, \
-                                    wxWindow* ctrl ) const;
+wxPGEditor* wxPGEditor_##EDITOR = (wxPGEditor*) NULL;
 
 
 //
@@ -268,7 +237,22 @@ public:
     wxPGTextCtrlEditor() {}
     virtual ~wxPGTextCtrlEditor();
 
-    WX_PG_IMPLEMENT_EDITOR_CLASS_STD_METHODS()
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
+    virtual void UpdateControl( wxPGProperty* property,
+                                wxWindow* ctrl ) const;
+    virtual bool OnEvent( wxPropertyGrid* propgrid,
+                          wxPGProperty* property,
+                          wxWindow* primaryCtrl,
+                          wxEvent& event ) const;
+    virtual bool GetValueFromControl( wxVariant& variant,
+                                      wxPGProperty* property,
+                                      wxWindow* ctrl ) const;
+    virtual void SetValueToUnspecified( wxPGProperty* property,
+                                        wxWindow* ctrl ) const;
+
     virtual wxString GetName() const;
 
     //virtual wxPGCellRenderer* GetCellRenderer() const;
@@ -300,7 +284,21 @@ public:
     wxPGChoiceEditor() {}
     virtual ~wxPGChoiceEditor();
 
-    WX_PG_IMPLEMENT_EDITOR_CLASS_STD_METHODS()
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
+    virtual void UpdateControl( wxPGProperty* property,
+                                wxWindow* ctrl ) const;
+    virtual bool OnEvent( wxPropertyGrid* propgrid,
+                          wxPGProperty* property,
+                          wxWindow* primaryCtrl,
+                          wxEvent& event ) const;
+    virtual bool GetValueFromControl( wxVariant& variant,
+                                      wxPGProperty* property,
+                                      wxWindow* ctrl ) const;
+    virtual void SetValueToUnspecified( wxPGProperty* property,
+                                        wxWindow* ctrl ) const;
     virtual wxString GetName() const;
 
     virtual void SetControlIntValue( wxPGProperty* property,
@@ -335,8 +333,10 @@ public:
     wxPGComboBoxEditor() {}
     virtual ~wxPGComboBoxEditor();
 
-    // Macro is used for convenience due to different signature with wxPython
-    wxPG_DECLARE_CREATECONTROLS
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
 
     virtual wxString GetName() const;
 
@@ -364,8 +364,10 @@ public:
     virtual ~wxPGChoiceAndButtonEditor();
     virtual wxString GetName() const;
 
-    // Macro is used for convenience due to different signature with wxPython
-    wxPG_DECLARE_CREATECONTROLS
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
 
     DECLARE_DYNAMIC_CLASS(wxPGChoiceAndButtonEditor)
 };
@@ -377,7 +379,11 @@ public:
     wxPGTextCtrlAndButtonEditor() {}
     virtual ~wxPGTextCtrlAndButtonEditor();
     virtual wxString GetName() const;
-    wxPG_DECLARE_CREATECONTROLS
+
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
 
     DECLARE_DYNAMIC_CLASS(wxPGTextCtrlAndButtonEditor)
 };
@@ -401,7 +407,21 @@ public:
     virtual ~wxPGCheckBoxEditor();
 
     virtual wxString GetName() const;
-    WX_PG_IMPLEMENT_EDITOR_CLASS_STD_METHODS()
+    virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
+                                          wxPGProperty* property,
+                                          const wxPoint& pos,
+                                          const wxSize& size) const;
+    virtual void UpdateControl( wxPGProperty* property,
+                                wxWindow* ctrl ) const;
+    virtual bool OnEvent( wxPropertyGrid* propgrid,
+                          wxPGProperty* property,
+                          wxWindow* primaryCtrl,
+                          wxEvent& event ) const;
+    virtual bool GetValueFromControl( wxVariant& variant,
+                                      wxPGProperty* property,
+                                      wxWindow* ctrl ) const;
+    virtual void SetValueToUnspecified( wxPGProperty* property,
+                                        wxWindow* ctrl ) const;
 
     virtual void DrawValue( wxDC& dc,
                             const wxRect& rect,
@@ -418,27 +438,15 @@ public:
 
 
 // -----------------------------------------------------------------------
-// Editor class registeration macros
+// Editor class registeration macro (mostly for internal use)
 
 #define wxPGRegisterEditorClass(EDITOR) \
     if ( wxPGEditor_##EDITOR == (wxPGEditor*) NULL ) \
     { \
         wxPGEditor_##EDITOR = wxPropertyGrid::RegisterEditorClass( \
-                wxPGConstruct##EDITOR##EditorClass() ); \
+                new wxPG##EDITOR##Editor ); \
     }
 
-// Use this in RegisterDefaultEditors.
-#define wxPGRegisterDefaultEditorClass(EDITOR) \
-if ( wxPGEditor_##EDITOR == (wxPGEditor*) NULL ) \
-    { \
-        wxPGEditor_##EDITOR = wxPropertyGrid::RegisterEditorClass( \
-                wxPGConstruct##EDITOR##EditorClass(), true ); \
-    }
-
-#define wxPG_INIT_REQUIRED_EDITOR(T) \
-    wxPGRegisterEditorClass(T)
-
-
 // -----------------------------------------------------------------------
 
 /** @class wxPGEditorDialogAdapter