X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3251b8346678b487755102e2ddb5f2071ee1f1ca..0fdc2321bc8a1ccf967c26b656b207cae9d03925:/include/wx/containr.h

diff --git a/include/wx/containr.h b/include/wx/containr.h
index fd3ba533ce..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(__APPLE__)
-    #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()); \