]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/containr.h
allow compilation with wxUSE_CHOICEDLG set to 0
[wxWidgets.git] / include / wx / containr.h
index d6df418e25ccd78aa09c7def9da5517b7a2cd7b6..cd308a23069439f246521c436fdcc24d484069b8 100644 (file)
@@ -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,10 +92,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);
 
 // ----------------------------------------------------------------------------
@@ -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(); \
 }