Minimize use of editor class macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -499,13 +499,15 @@ protected:
|
|||||||
// used for event handling here.
|
// used for event handling here.
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor
|
class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor
|
||||||
{
|
{
|
||||||
WX_PG_DECLARE_EDITOR_CLASS(wxPGSpinCtrlEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGSpinCtrlEditor)
|
||||||
public:
|
public:
|
||||||
virtual ~wxPGSpinCtrlEditor();
|
virtual ~wxPGSpinCtrlEditor();
|
||||||
|
|
||||||
// See below for short explanations of what these are suppposed to do.
|
wxString GetName() const;
|
||||||
wxPG_DECLARE_CREATECONTROLS
|
virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
|
||||||
|
wxPGProperty* property,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size) const;
|
||||||
virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
|
virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
|
||||||
wxWindow* wnd, wxEvent& event ) const;
|
wxWindow* wnd, wxEvent& event ) const;
|
||||||
|
|
||||||
|
@@ -130,10 +130,6 @@ public:
|
|||||||
wxPGProperty* property,
|
wxPGProperty* property,
|
||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
const wxSize& size) const = 0;
|
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. */
|
/** Loads value from property to the control. */
|
||||||
virtual void UpdateControl( wxPGProperty* property,
|
virtual void UpdateControl( wxPGProperty* property,
|
||||||
@@ -219,41 +215,13 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//
|
#define WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(EDITOR,CLASSNAME,BASECLASS) \
|
||||||
// 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) \
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(CLASSNAME, BASECLASS) \
|
IMPLEMENT_DYNAMIC_CLASS(CLASSNAME, BASECLASS) \
|
||||||
wxString CLASSNAME::GetName() const \
|
wxString CLASSNAME::GetName() const \
|
||||||
{ \
|
{ \
|
||||||
return wxS(#EDITOR); \
|
return wxS(#EDITOR); \
|
||||||
} \
|
} \
|
||||||
wxPGEditor* wxPGEditor_##EDITOR = (wxPGEditor*) NULL; \
|
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;
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -269,7 +237,22 @@ public:
|
|||||||
wxPGTextCtrlEditor() {}
|
wxPGTextCtrlEditor() {}
|
||||||
virtual ~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 wxString GetName() const;
|
||||||
|
|
||||||
//virtual wxPGCellRenderer* GetCellRenderer() const;
|
//virtual wxPGCellRenderer* GetCellRenderer() const;
|
||||||
@@ -301,7 +284,21 @@ public:
|
|||||||
wxPGChoiceEditor() {}
|
wxPGChoiceEditor() {}
|
||||||
virtual ~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 wxString GetName() const;
|
||||||
|
|
||||||
virtual void SetControlIntValue( wxPGProperty* property,
|
virtual void SetControlIntValue( wxPGProperty* property,
|
||||||
@@ -336,8 +333,10 @@ public:
|
|||||||
wxPGComboBoxEditor() {}
|
wxPGComboBoxEditor() {}
|
||||||
virtual ~wxPGComboBoxEditor();
|
virtual ~wxPGComboBoxEditor();
|
||||||
|
|
||||||
// Macro is used for convenience due to different signature with wxPython
|
virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
|
||||||
wxPG_DECLARE_CREATECONTROLS
|
wxPGProperty* property,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size) const;
|
||||||
|
|
||||||
virtual wxString GetName() const;
|
virtual wxString GetName() const;
|
||||||
|
|
||||||
@@ -365,8 +364,10 @@ public:
|
|||||||
virtual ~wxPGChoiceAndButtonEditor();
|
virtual ~wxPGChoiceAndButtonEditor();
|
||||||
virtual wxString GetName() const;
|
virtual wxString GetName() const;
|
||||||
|
|
||||||
// Macro is used for convenience due to different signature with wxPython
|
virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
|
||||||
wxPG_DECLARE_CREATECONTROLS
|
wxPGProperty* property,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size) const;
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPGChoiceAndButtonEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGChoiceAndButtonEditor)
|
||||||
};
|
};
|
||||||
@@ -378,7 +379,11 @@ public:
|
|||||||
wxPGTextCtrlAndButtonEditor() {}
|
wxPGTextCtrlAndButtonEditor() {}
|
||||||
virtual ~wxPGTextCtrlAndButtonEditor();
|
virtual ~wxPGTextCtrlAndButtonEditor();
|
||||||
virtual wxString GetName() const;
|
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)
|
DECLARE_DYNAMIC_CLASS(wxPGTextCtrlAndButtonEditor)
|
||||||
};
|
};
|
||||||
@@ -402,7 +407,21 @@ public:
|
|||||||
virtual ~wxPGCheckBoxEditor();
|
virtual ~wxPGCheckBoxEditor();
|
||||||
|
|
||||||
virtual wxString GetName() const;
|
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,
|
virtual void DrawValue( wxDC& dc,
|
||||||
const wxRect& rect,
|
const wxRect& rect,
|
||||||
@@ -419,27 +438,15 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// Editor class registeration macros
|
// Editor class registeration macro (mostly for internal use)
|
||||||
|
|
||||||
#define wxPGRegisterEditorClass(EDITOR) \
|
#define wxPGRegisterEditorClass(EDITOR) \
|
||||||
if ( wxPGEditor_##EDITOR == (wxPGEditor*) NULL ) \
|
if ( wxPGEditor_##EDITOR == (wxPGEditor*) NULL ) \
|
||||||
{ \
|
{ \
|
||||||
wxPGEditor_##EDITOR = wxPropertyGrid::RegisterEditorClass( \
|
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
|
/** @class wxPGEditorDialogAdapter
|
||||||
|
@@ -113,9 +113,9 @@ bool operator == (const wxArrayInt& array1, const wxArrayInt& array2)
|
|||||||
#if wxUSE_SPINBTN
|
#if wxUSE_SPINBTN
|
||||||
|
|
||||||
|
|
||||||
// This macro also defines global wxPGEditor_SpinCtrl for storing
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(SpinCtrl,
|
||||||
// the singleton class instance.
|
wxPGSpinCtrlEditor,
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(SpinCtrl,wxPGSpinCtrlEditor,wxPGEditor)
|
wxPGEditor)
|
||||||
|
|
||||||
|
|
||||||
// Trivial destructor.
|
// Trivial destructor.
|
||||||
@@ -286,12 +286,15 @@ bool wxPGSpinCtrlEditor::OnEvent( wxPropertyGrid* propgrid, wxPGProperty* proper
|
|||||||
|
|
||||||
class wxPGDatePickerCtrlEditor : public wxPGEditor
|
class wxPGDatePickerCtrlEditor : public wxPGEditor
|
||||||
{
|
{
|
||||||
WX_PG_DECLARE_EDITOR_CLASS(wxPGDatePickerCtrlEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGDatePickerCtrlEditor)
|
||||||
public:
|
public:
|
||||||
virtual ~wxPGDatePickerCtrlEditor();
|
virtual ~wxPGDatePickerCtrlEditor();
|
||||||
|
|
||||||
wxPG_DECLARE_CREATECONTROLS
|
wxString GetName() const;
|
||||||
|
virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
|
||||||
|
wxPGProperty* property,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size) const;
|
||||||
virtual void UpdateControl( wxPGProperty* property, wxWindow* wnd ) const;
|
virtual void UpdateControl( wxPGProperty* property, wxWindow* wnd ) const;
|
||||||
virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
|
virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
|
||||||
wxWindow* wnd, wxEvent& event ) const;
|
wxWindow* wnd, wxEvent& event ) const;
|
||||||
@@ -300,7 +303,9 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(DatePickerCtrl,wxPGDatePickerCtrlEditor,wxPGEditor)
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(DatePickerCtrl,
|
||||||
|
wxPGDatePickerCtrlEditor,
|
||||||
|
wxPGEditor)
|
||||||
|
|
||||||
|
|
||||||
wxPGDatePickerCtrlEditor::~wxPGDatePickerCtrlEditor()
|
wxPGDatePickerCtrlEditor::~wxPGDatePickerCtrlEditor()
|
||||||
|
@@ -214,7 +214,7 @@ bool wxPGEditor::CanContainCustomImage() const
|
|||||||
// wxPGTextCtrlEditor
|
// wxPGTextCtrlEditor
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(TextCtrl,wxPGTextCtrlEditor,wxPGEditor)
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(TextCtrl,wxPGTextCtrlEditor,wxPGEditor)
|
||||||
|
|
||||||
|
|
||||||
wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid,
|
wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid,
|
||||||
@@ -391,7 +391,7 @@ wxPGTextCtrlEditor::~wxPGTextCtrlEditor() { }
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(Choice,wxPGChoiceEditor,wxPGEditor)
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(Choice,wxPGChoiceEditor,wxPGEditor)
|
||||||
|
|
||||||
|
|
||||||
// This is a special enhanced double-click processor class.
|
// This is a special enhanced double-click processor class.
|
||||||
@@ -1007,7 +1007,9 @@ wxPGChoiceEditor::~wxPGChoiceEditor() { }
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(ComboBox,wxPGComboBoxEditor,wxPGChoiceEditor)
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(ComboBox,
|
||||||
|
wxPGComboBoxEditor,
|
||||||
|
wxPGChoiceEditor)
|
||||||
|
|
||||||
|
|
||||||
void wxPGComboBoxEditor::UpdateControl( wxPGProperty* property, wxWindow* ctrl ) const
|
void wxPGComboBoxEditor::UpdateControl( wxPGProperty* property, wxWindow* ctrl ) const
|
||||||
@@ -1086,8 +1088,9 @@ wxPGComboBoxEditor::~wxPGComboBoxEditor() { }
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
// This simpler implement_editor macro doesn't define class body.
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(ChoiceAndButton,
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(ChoiceAndButton,wxPGChoiceAndButtonEditor,wxPGChoiceEditor)
|
wxPGChoiceAndButtonEditor,
|
||||||
|
wxPGChoiceEditor)
|
||||||
|
|
||||||
|
|
||||||
wxPGWindowList wxPGChoiceAndButtonEditor::CreateControls( wxPropertyGrid* propGrid,
|
wxPGWindowList wxPGChoiceAndButtonEditor::CreateControls( wxPropertyGrid* propGrid,
|
||||||
@@ -1136,9 +1139,9 @@ wxPGChoiceAndButtonEditor::~wxPGChoiceAndButtonEditor() { }
|
|||||||
// wxPGTextCtrlAndButtonEditor
|
// wxPGTextCtrlAndButtonEditor
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(TextCtrlAndButton,
|
||||||
// This simpler implement_editor macro doesn't define class body.
|
wxPGTextCtrlAndButtonEditor,
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(TextCtrlAndButton,wxPGTextCtrlAndButtonEditor,wxPGTextCtrlEditor)
|
wxPGTextCtrlEditor)
|
||||||
|
|
||||||
|
|
||||||
wxPGWindowList wxPGTextCtrlAndButtonEditor::CreateControls( wxPropertyGrid* propGrid,
|
wxPGWindowList wxPGTextCtrlAndButtonEditor::CreateControls( wxPropertyGrid* propGrid,
|
||||||
@@ -1163,7 +1166,9 @@ wxPGTextCtrlAndButtonEditor::~wxPGTextCtrlAndButtonEditor() { }
|
|||||||
|
|
||||||
#if wxPG_INCLUDE_CHECKBOX
|
#if wxPG_INCLUDE_CHECKBOX
|
||||||
|
|
||||||
WX_PG_IMPLEMENT_EDITOR_CLASS(CheckBox,wxPGCheckBoxEditor,wxPGEditor)
|
WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(CheckBox,
|
||||||
|
wxPGCheckBoxEditor,
|
||||||
|
wxPGEditor)
|
||||||
|
|
||||||
|
|
||||||
// state argument: 0x01 = set if checked
|
// state argument: 0x01 = set if checked
|
||||||
|
@@ -5351,6 +5351,14 @@ wxPGEditor* wxPropertyGrid::RegisterEditorClass( wxPGEditor* editorClass,
|
|||||||
return editorClass;
|
return editorClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use this in RegisterDefaultEditors.
|
||||||
|
#define wxPGRegisterDefaultEditorClass(EDITOR) \
|
||||||
|
if ( wxPGEditor_##EDITOR == (wxPGEditor*) NULL ) \
|
||||||
|
{ \
|
||||||
|
wxPGEditor_##EDITOR = wxPropertyGrid::RegisterEditorClass( \
|
||||||
|
new wxPG##EDITOR##Editor, true ); \
|
||||||
|
}
|
||||||
|
|
||||||
// Registers all default editor classes
|
// Registers all default editor classes
|
||||||
void wxPropertyGrid::RegisterDefaultEditors()
|
void wxPropertyGrid::RegisterDefaultEditors()
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user