Eliminate need to call Connect() in wxPGEditor::CreateControls()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2008-11-23 11:00:40 +00:00
parent eb6a8d695e
commit b0996c3da0
7 changed files with 57 additions and 142 deletions

View File

@@ -114,17 +114,10 @@ public:
@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,

View File

@@ -495,8 +495,8 @@ enum wxPG_KEYBOARD_ACTIONS
#define wxPG_MAN_FL_PAGE_INSERTED 0x02000000
// Active editor control is abnormally large
#define wxPG_FL_ABNORMAL_EDITOR 0x04000000
// Recursion guard for OnCustomEditorEvent
#define wxPG_FL_IN_ONCUSTOMEDITOREVENT 0x08000000
// Recursion guard for HandleCustomEditorEvent
#define wxPG_FL_IN_HANDLECUSTOMEDITOREVENT 0x08000000
#define wxPG_FL_VALUE_CHANGE_IN_EVENT 0x10000000
// Editor control width should not change on resize
#define wxPG_FL_FIXED_WIDTH_EDITOR 0x20000000
@@ -1179,6 +1179,9 @@ public:
return m_wndEditor2;
}
// Events from editor controls are forward to this function
void HandleCustomEditorEvent( wxEvent &event );
#ifndef SWIG
/**
@@ -1196,22 +1199,6 @@ public:
// Mostly useful for page switching.
void SwitchState( wxPropertyGridPageState* pNewState );
/**
When creating custom property editors, connect required editor events to
this function. For instance:
@code
control->Connect(control->GetId(), wxEVT_COMMAND_TEXT_UPDATED,
wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
NULL, propgrid);
@endcode
@remarks You should never need to call this function directly!
@see wxPGEditor::CreateControls(), wxEvtHandler::Connect()
*/
void OnCustomEditorEvent( wxEvent &event );
long GetInternalFlags() const { return m_iFlags; }
bool HasInternalFlag( long flag ) const
{ return (m_iFlags & flag) ? true : false; }
@@ -1327,7 +1314,6 @@ public:
*/
bool UnfocusEditor();
virtual bool ProcessEvent(wxEvent& event);
virtual void SetWindowStyleFlag( long style );
protected: