// Author: Jaakko Salli
// Modified by:
// Created: 2007-04-14
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
/**
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.
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,
};
-//
-// 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;
//
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;
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,
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;
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)
};
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)
};
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,
// -----------------------------------------------------------------------
-// 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