# wxPGEditor Class Reference
[wxPropertyGrid]

`#include <wx/propgrid/editors.h>`

Inheritance diagram for wxPGEditor:
[legend]

## Detailed Description

Base class for custom wxPropertyGrid editors.

Remarks:
  - Names of built-in property editors are: TextCtrl, Choice, ComboBox, CheckBox, TextCtrlAndButton, and ChoiceAndButton. Additional editors include SpinCtrl and DatePickerCtrl, but using them requires calling wxPropertyGrid::RegisterAdditionalEditors() prior use.

- Pointer to built-in editor is available as wxPGEditor_EditorName (eg. wxPGEditor_TextCtrl).

- Before you start using new editor you just created, you need to register it using static function wxPropertyGrid::RegisterEditorClass(), with code like this:

                  wxPGEditor* editorPointer = wxPropertyGrid::RegisterEditorClass(new MyEditorClass(), "MyEditor");

  After that, wxPropertyGrid will take ownership of the given object, but you should still store editorPointer somewhere, so you can pass it to wxPGProperty::SetEditor(), or return it from wxPGEditor::DoGetEditorClass().

##

Library: wxPropertyGrid

Category: wxPropertyGrid

## Public Member Functions
| wxPGEditor ()
| Constructor.
virtual | ~wxPGEditor ()
| Destructor.
virtual wxString | GetName () const
| Returns pointer to the name of the editor.
virtual wxPGWindowList | CreateControls (wxPropertyGrid *propgrid, wxPGProperty *property, const wxPoint &pos, const wxSize &size) const =0
| Instantiates editor controls.
virtual void | UpdateControl (wxPGProperty *property, wxWindow *ctrl) const =0
| Loads value from property to the control.
virtual void | DrawValue (wxDC &dc, const wxRect &rect, wxPGProperty *property, const wxString &text) const
| Draws value for given property.
virtual bool | OnEvent (wxPropertyGrid *propgrid, wxPGProperty *property, wxWindow *wnd_primary, wxEvent &event) const =0
| Handles events.
virtual bool | GetValueFromControl (wxVariant &variant, wxPGProperty *property, wxWindow *ctrl) const
| Returns value from control, via parameter 'variant'.
virtual void | SetValueToUnspecified (wxPGProperty *property, wxWindow *ctrl) const =0
| Sets value in control to unspecified.
virtual void | SetControlAppearance (wxPropertyGrid *pg, wxPGProperty *property, wxWindow *ctrl, const wxPGCell &appearance, const wxPGCell &oldAppearance, bool unspecified) const
| Called by property grid to set new appearance for the control.
virtual void | SetControlStringValue (wxPGProperty *property, wxWindow *ctrl, const wxString &txt) const
| Sets control's value specifically from string.
virtual void | SetControlIntValue (wxPGProperty *property, wxWindow *ctrl, int value) const
| Sets control's value specifically from int (applies to choice etc.
virtual int | InsertItem (wxWindow *ctrl, const wxString &label, int index) const
| Inserts item to existing control.
virtual void | DeleteItem (wxWindow *ctrl, int index) const
| Deletes item from existing control.
virtual void | OnFocus (wxPGProperty *property, wxWindow *wnd) const
| Extra processing when control gains focus.
virtual bool | CanContainCustomImage () const
| Returns true if control itself can contain the custom image.

List of all members.

## Constructor & Destructor Documentation

wxPGEditor::wxPGEditor | ( |  | ) |

Constructor.

virtual wxPGEditor::~wxPGEditor | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

virtual bool wxPGEditor::CanContainCustomImage | ( |  | ) | const`[virtual]`

Returns true if control itself can contain the custom image.

Default implementation returns false.

virtual wxPGWindowList wxPGEditor::CreateControls | ( | wxPropertyGrid * | propgrid,
|  | wxPGProperty * | property,
|  | const wxPoint & | pos,
|  | const wxSize & | size |
| ) |  |  | const`[pure virtual]`

Instantiates editor controls.

Parameters:

  | propgrid | wxPropertyGrid to which the property belongs (use as parent for control).
  | property | Property for which this method is called.
  | pos | Position, inside wxPropertyGrid, to create control(s) to.
  | size | Initial size for control(s).

Remarks:
  - Primary control shall use id wxPG_SUBID1, and secondary (button) control shall use wxPG_SUBID2.
  - 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 void wxPGEditor::DeleteItem | ( | wxWindow * | ctrl,
|  | int | index |
| ) |  |  | const`[virtual]`

Deletes item from existing control.

Default implementation does nothing.

virtual void wxPGEditor::DrawValue | ( | wxDC & | dc,
|  | const wxRect & | rect,
|  | wxPGProperty * | property,
|  | const wxString & | text |
| ) |  |  | const`[virtual]`

Draws value for given property.

virtual wxString wxPGEditor::GetName | ( |  | ) | const`[virtual]`

Returns pointer to the name of the editor.

For example, 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 bool wxPGEditor::GetValueFromControl | ( | wxVariant & | variant,
|  | wxPGProperty * | property,
|  | wxWindow * | ctrl |
| ) |  |  | const`[virtual]`

Returns value from control, via parameter 'variant'.

Usually ends up calling property's StringToValue() or IntToValue(). Returns true if value was different.

virtual int wxPGEditor::InsertItem | ( | wxWindow * | ctrl,
|  | const wxString & | label,
|  | int | index |
| ) |  |  | const`[virtual]`

Inserts item to existing control.

Index -1 means end of list. Default implementation does nothing. Returns index of item added.

virtual bool wxPGEditor::OnEvent | ( | wxPropertyGrid * | propgrid,
|  | wxPGProperty * | property,
|  | wxWindow * | wnd_primary,
|  | wxEvent & | event |
| ) |  |  | const`[pure virtual]`

Handles events.

Returns true if value in control was modified (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 property value being modified. This happens regardless of editor type (ie. behaviour is same for any wxTextCtrl and wxComboBox based editor).

virtual void wxPGEditor::OnFocus | ( | wxPGProperty * | property,
|  | wxWindow * | wnd |
| ) |  |  | const`[virtual]`

Extra processing when control gains focus.

For example, wxTextCtrl based controls should select all text.

virtual void wxPGEditor::SetControlAppearance | ( | wxPropertyGrid * | pg,
|  | wxPGProperty * | property,
|  | wxWindow * | ctrl,
|  | const wxPGCell & | appearance,
|  | const wxPGCell & | oldAppearance,
|  | bool | unspecified |
| ) |  |  | const`[virtual]`

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 appearance represents the new appearance to be applied.

The parameter 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 unspecified if true tells this function that the new appearance represents an unspecified property value.

virtual void wxPGEditor::SetControlIntValue | ( | wxPGProperty * | property,
|  | wxWindow * | ctrl,
|  | int | value |
| ) |  |  | const`[virtual]`

Sets control's value specifically from int (applies to choice etc.

).

virtual void wxPGEditor::SetControlStringValue | ( | wxPGProperty * | property,
|  | wxWindow * | ctrl,
|  | const wxString & | txt |
| ) |  |  | const`[virtual]`

Sets control's value specifically from string.

virtual void wxPGEditor::SetValueToUnspecified | ( | wxPGProperty * | property,
|  | wxWindow * | ctrl |
| ) |  |  | const`[pure virtual]`

Sets value in control to unspecified.

virtual void wxPGEditor::UpdateControl | ( | wxPGProperty * | property,
|  | wxWindow * | ctrl |
| ) |  |  | const`[pure virtual]`

Loads value from property to the control.

|  | [ top ]