]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/framecmn.cpp
linking fixes
[wxWidgets.git] / src / common / framecmn.cpp
index 5782c231eff4c8304a89d89d41ff6f1af5707dd5..714400961b79e4c75d29b2b904ce625f4248fe60 100644 (file)
     #pragma hdrstop
 #endif
 
-#include "wx/frame.h"
-#include "wx/menu.h"
-#include "wx/menuitem.h"
-#include "wx/dcclient.h"
+#ifndef WX_PRECOMP
+    #include "wx/frame.h"
+    #include "wx/menu.h"
+    #include "wx/menuitem.h"
+    #include "wx/dcclient.h"
+#endif // WX_PRECOMP
 
 #if wxUSE_TOOLBAR
     #include "wx/toolbar.h"
@@ -60,7 +62,9 @@ END_EVENT_TABLE()
 
 wxFrameBase::wxFrameBase()
 {
+#if wxUSE_MENUS
     m_frameMenuBar = NULL;
+#endif // wxUSE_MENUS
 
 #if wxUSE_TOOLBAR
     m_frameToolBar = NULL;
@@ -94,11 +98,13 @@ wxFrame *wxFrameBase::New(wxWindow *parent,
 
 void wxFrameBase::DeleteAllBars()
 {
+#if wxUSE_MENUS
     if ( m_frameMenuBar )
     {
         delete m_frameMenuBar;
         m_frameMenuBar = (wxMenuBar *) NULL;
     }
+#endif // wxUSE_MENUS
 
 #if wxUSE_STATUSBAR
     if ( m_frameStatusBar )
@@ -117,6 +123,26 @@ void wxFrameBase::DeleteAllBars()
 #endif // wxUSE_TOOLBAR
 }
 
+bool wxFrameBase::IsOneOfBars(const wxWindow *win) const
+{
+#if wxUSE_MENUS
+    if ( win == GetMenuBar() )
+        return TRUE;
+#endif // wxUSE_MENUS
+
+#if wxUSE_STATUSBAR
+    if ( win == GetStatusBar() )
+        return TRUE;
+#endif // wxUSE_STATUSBAR
+
+#if wxUSE_TOOLBAR
+    if ( win == GetToolBar() )
+        return TRUE;
+#endif // wxUSE_TOOLBAR
+
+    return FALSE;
+}
+
 // ----------------------------------------------------------------------------
 // wxFrame size management: we exclude the areas taken by menu/status/toolbars
 // from the client area, so the client area is what's really available for the
@@ -192,6 +218,7 @@ void wxFrameBase::MakeModal(bool modal)
 
 bool wxFrameBase::ProcessCommand(int id)
 {
+#if wxUSE_MENUS
     wxMenuBar *bar = GetMenuBar();
     if ( !bar )
         return FALSE;
@@ -209,6 +236,9 @@ bool wxFrameBase::ProcessCommand(int id)
     }
 
     return GetEventHandler()->ProcessEvent(commandEvent);
+#else // !wxUSE_MENUS
+    return FALSE;
+#endif // wxUSE_MENUS/!wxUSE_MENUS
 }
 
 // ----------------------------------------------------------------------------
@@ -226,7 +256,7 @@ void wxFrameBase::OnSize(wxSizeEvent& WXUNUSED(event))
         Layout();
     }
     else
-#endif
+#endif // wxUSE_CONSTRAINTS
     {
         // do we have _exactly_ one child?
         wxWindow *child = (wxWindow *)NULL;
@@ -239,14 +269,7 @@ void wxFrameBase::OnSize(wxSizeEvent& WXUNUSED(event))
             // exclude top level and managed windows (status bar isn't
             // currently in the children list except under wxMac anyhow, but
             // it makes no harm to test for it)
-            if ( !win->IsTopLevel()
-#if wxUSE_STATUSBAR
-                    && (win != GetStatusBar())
-#endif // wxUSE_STATUSBAR
-#if wxUSE_TOOLBAR
-                    && (win != GetToolBar())
-#endif // wxUSE_TOOLBAR
-               )
+            if ( !win->IsTopLevel() && !IsOneOfBars(win) )
             {
                 if ( child )
                 {
@@ -427,9 +450,13 @@ wxToolBar* wxFrameBase::OnCreateToolBar(long style,
 
 void wxFrameBase::OnIdle(wxIdleEvent& WXUNUSED(event) )
 {
+#if wxUSE_MENUS
     DoMenuUpdates();
+#endif // wxUSE_MENUS
 }
 
+#if wxUSE_MENUS
+
 // update all menus
 void wxFrameBase::DoMenuUpdates()
 {
@@ -478,3 +505,5 @@ void wxFrameBase::DoMenuUpdates(wxMenu* menu, wxWindow* focusWin)
         node = node->GetNext();
     }
 }
+
+#endif // wxUSE_MENUS