void HandleOnFocus(wxFocusEvent& event);
void HandleOnWindowDestroy(wxWindowBase *child);
- // should be called from SetFocus(), returns FALSE if we did nothing with
+ // should be called from SetFocus(), returns false if we did nothing with
// the focus and the default processing should take place
bool DoSetFocus();
// a temporary override of m_winDefault, use the latter if NULL
wxWindow *m_winTmpDefault;
+ // a guard against infinite recursion
+ bool m_inSetFocus;
+
DECLARE_NO_COPY_CLASS(wxControlContainer)
};
-// this function is for wxWindows internal use only
+// this function is for wxWidgets internal use only
extern bool wxSetFocusToChild(wxWindow *win, wxWindow **child);
// ----------------------------------------------------------------------------
void OnFocus(wxFocusEvent& event); \
virtual void OnChildFocus(wxChildFocusEvent& event); \
virtual void SetFocus(); \
+ virtual void SetFocusIgnoringChildren(); \
virtual void RemoveChild(wxWindowBase *child); \
virtual wxWindow *GetDefaultItem() const; \
virtual wxWindow *SetDefaultItem(wxWindow *child); \
wxWindow::SetFocus(); \
} \
\
+void classname::SetFocusIgnoringChildren() \
+{ \
+ wxWindow::SetFocus(); \
+} \
+ \
void classname::OnChildFocus(wxChildFocusEvent& event) \
{ \
m_container.SetLastFocus(event.GetWindow()); \