*/
class WXDLLIMPEXP_PROPGRID wxPGEditor : public wxObject
{
-#ifndef SWIG
DECLARE_ABSTRACT_CLASS(wxPGEditor)
-#endif
public:
/** Constructor. */
@remarks
- Primary control shall use id wxPG_SUBID1, and secondary (button)
control shall use wxPG_SUBID2.
- - Implementation shoud connect all necessary events to the
- wxPropertyGrid::OnCustomEditorEvent. For Example:
- @code
- // Relays wxEVT_COMMAND_TEXT_UPDATED events of primary editor
- // control to the OnEvent.
- control->Connect(control->GetId(), wxEVT_COMMAND_TEXT_UPDATED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent),
- NULL, propgrid);
- @endcode
- OnCustomEditorEvent will then forward events, first to
- wxPGEditor::OnEvent() and then to wxPGProperty::OnEvent().
+ - Unlike in previous version of wxPropertyGrid, it is no longer
+ necessary to call wxEvtHandler::Connect() for interesting editor
+ events. Instead, all events from control are now automatically
+ forwarded to wxPGEditor::OnEvent() and wxPGProperty::OnEvent().
*/
virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
wxPGProperty* property,
wxWindow* ctrl ) const;
#endif
- /** Sets value in control to unspecified. */
+ /**
+ Sets new appearance for the control. Default implementation
+ sets foreground colour, background colour, font, plus text
+ for wxTextCtrl and wxComboCtrl.
+
+ @param appearance
+ New appearance to be applied.
+
+ @param oldAppearance
+ Previously applied appearance. Used to detect which
+ control attributes need to be changed (e.g. so we only
+ change background colour if really needed).
+
+ @param unspecified
+ @true if 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 value in control to unspecified.
+ */
virtual void SetValueToUnspecified( wxPGProperty* property,
- wxWindow* ctrl ) const = 0;
+ wxWindow* ctrl ) const;
/** Sets control's value specifically from string. */
virtual void SetControlStringValue( wxPGProperty* property,
{ \
return wxS(#EDITOR); \
} \
-wxPGEditor* wxPGEditor_##EDITOR = (wxPGEditor*) NULL;
+wxPGEditor* wxPGEditor_##EDITOR = NULL;
//
class WXDLLIMPEXP_PROPGRID wxPGTextCtrlEditor : public wxPGEditor
{
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS(wxPGTextCtrlEditor)
-#endif
public:
wxPGTextCtrlEditor() {}
virtual ~wxPGTextCtrlEditor();
virtual bool GetValueFromControl( wxVariant& variant,
wxPGProperty* property,
wxWindow* ctrl ) const;
- virtual void SetValueToUnspecified( wxPGProperty* property,
- wxWindow* ctrl ) const;
virtual wxString GetName() const;
class WXDLLIMPEXP_PROPGRID wxPGChoiceEditor : public wxPGEditor
{
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS(wxPGChoiceEditor)
-#endif
public:
wxPGChoiceEditor() {}
virtual ~wxPGChoiceEditor();
class WXDLLIMPEXP_PROPGRID wxPGComboBoxEditor : public wxPGChoiceEditor
{
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS(wxPGComboBoxEditor)
-#endif
public:
wxPGComboBoxEditor() {}
virtual ~wxPGComboBoxEditor();
#endif // !SWIG
-#if wxPG_INCLUDE_CHECKBOX || defined(DOXYGEN)
+#if wxPG_INCLUDE_CHECKBOX
//
// Use custom check box code instead of native control
//
class WXDLLIMPEXP_PROPGRID wxPGCheckBoxEditor : public wxPGEditor
{
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS(wxPGCheckBoxEditor)
-#endif
public:
wxPGCheckBoxEditor() {}
virtual ~wxPGCheckBoxEditor();
// Editor class registeration macro (mostly for internal use)
#define wxPGRegisterEditorClass(EDITOR) \
- if ( wxPGEditor_##EDITOR == (wxPGEditor*) NULL ) \
+ if ( wxPGEditor_##EDITOR == NULL ) \
{ \
wxPGEditor_##EDITOR = wxPropertyGrid::RegisterEditorClass( \
new wxPG##EDITOR##Editor ); \
*/
class WXDLLIMPEXP_PROPGRID wxPGEditorDialogAdapter : public wxObject
{
-#ifndef SWIG
DECLARE_ABSTRACT_CLASS(wxPGEditorDialogAdapter)
-#endif
public:
wxPGEditorDialogAdapter()
: wxObject()
{
public:
wxPGMultiButton( wxPropertyGrid* pg, const wxSize& sz );
+ virtual ~wxPGMultiButton() {}
wxWindow* GetButton( unsigned int i ) { return (wxWindow*) m_buttons[i]; }
const wxWindow* GetButton( unsigned int i ) const
/** Returns number of buttons.
*/
- int GetCount() const { return m_buttons.Count(); }
+ unsigned int GetCount() const { return (unsigned int) m_buttons.size(); }
void Add( const wxString& label, int id = -2 );
#if wxUSE_BMPBUTTON
void Finalize( wxPropertyGrid* propGrid, const wxPoint& pos );
-#ifndef DOXYGEN
protected:
+ void DoAddButton( wxWindow* button, const wxSize& sz );
+
int GenId( int id ) const;
wxArrayPtrVoid m_buttons;
wxSize m_fullEditorSize;
int m_buttonsWidth;
-#endif // !DOXYGEN
};
// -----------------------------------------------------------------------