X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12028905135250524409f1e7b9bfa9c55e5ce16b..a552d1201fd615730d7c0662a65df306fe18c274:/include/wx/containr.h diff --git a/include/wx/containr.h b/include/wx/containr.h index e5399b71ce..cd79e5dd5b 100644 --- a/include/wx/containr.h +++ b/include/wx/containr.h @@ -13,10 +13,6 @@ #ifndef _WX_CONTAINR_H_ #define _WX_CONTAINR_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "containr.h" -#endif - class WXDLLEXPORT wxFocusEvent; class WXDLLEXPORT wxNavigationKeyEvent; class WXDLLEXPORT wxWindow; @@ -65,7 +61,7 @@ public: 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(); @@ -92,10 +88,13 @@ protected: // 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); // ---------------------------------------------------------------------------- @@ -110,6 +109,7 @@ public: \ 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); \ @@ -160,6 +160,11 @@ void classname::SetFocus() \ wxWindow::SetFocus(); \ } \ \ +void classname::SetFocusIgnoringChildren() \ +{ \ + wxWindow::SetFocus(); \ +} \ + \ void classname::OnChildFocus(wxChildFocusEvent& event) \ { \ m_container.SetLastFocus(event.GetWindow()); \