X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/036da5e37479c4e2bc3493d3a7a37ac629757515..400a9e419b229cd511d73922bd5506aaab3b120e:/include/wx/containr.h diff --git a/include/wx/containr.h b/include/wx/containr.h index d6df418e25..99049e718c 100644 --- a/include/wx/containr.h +++ b/include/wx/containr.h @@ -13,7 +13,7 @@ #ifndef _WX_CONTAINR_H_ #define _WX_CONTAINR_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "containr.h" #endif @@ -69,6 +69,9 @@ public: // the focus and the default processing should take place bool DoSetFocus(); + // can our child get the focus? + bool AcceptsFocus() const; + // called from OnChildFocus() handler, i.e. when one of our (grand) // children gets the focus void SetLastFocus(wxWindow *win); @@ -89,6 +92,9 @@ 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) }; @@ -111,6 +117,7 @@ public: \ virtual wxWindow *GetDefaultItem() const; \ virtual wxWindow *SetDefaultItem(wxWindow *child); \ virtual void SetTmpDefaultItem(wxWindow *win); \ + virtual bool AcceptsFocus() const; \ \ protected: \ wxControlContainer m_container @@ -164,6 +171,10 @@ void classname::OnChildFocus(wxChildFocusEvent& event) \ void classname::OnFocus(wxFocusEvent& event) \ { \ m_container.HandleOnFocus(event); \ +} \ +bool classname::AcceptsFocus() const \ +{ \ + return m_container.AcceptsFocus(); \ }