]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/framuniv.cpp
The mmedia contrib requires sys/soundcard.h on unix, so disable it on unix
[wxWidgets.git] / src / univ / framuniv.cpp
index 5ee90213f6bf01d01da5ac5a9d2d258db4e28a9b..7f179b0eeed275ea678e5735f7168db5c242ca2d 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ---------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "univframe.h"
 #endif
 
@@ -32,6 +32,7 @@
 #ifndef WX_PRECOMP
     #include "wx/frame.h"
     #include "wx/statusbr.h"
+    #include "wx/settings.h"
     #include "wx/toolbar.h"
 #endif // WX_PRECOMP
 
@@ -41,6 +42,7 @@
 
 BEGIN_EVENT_TABLE(wxFrame, wxFrameBase)
     EVT_SIZE(wxFrame::OnSize)
+    EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
 END_EVENT_TABLE()
 
 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
@@ -57,9 +59,22 @@ bool wxFrame::Create(wxWindow *parent,
                 long style,
                 const wxString& name)
 {
-    return wxTopLevelWindow::Create(parent, id, title, pos, size, style, name);
+    if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
+        return false;
+
+    SetOwnBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
+
+    return true;
 }
 
+// Responds to colour changes, and passes event on to children.
+void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event)
+{
+    SetOwnBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
+    Refresh();
+
+    event.Skip();
+}
 
 // ----------------------------------------------------------------------------
 // menu support
@@ -98,16 +113,19 @@ void wxFrame::PositionMenuBar()
         wxCoord heightMbar = m_frameMenuBar->GetSize().y;
 
         wxCoord heightTbar = 0;
-        if (m_frameToolBar)
+
+#if wxUSE_TOOLBAR
+        if ( m_frameToolBar )
             heightTbar = m_frameToolBar->GetSize().y;
+#endif // wxUSE_TOOLBAR
 
-        m_frameMenuBar->SetSize(0, 
-#ifdef __WXPM__         // FIXME -- remove this, make wxOS2/Univ behave as
+        m_frameMenuBar->SetSize(0,
+#ifdef __WXPM__   // FIXME -- remove this, make wxOS2/Univ behave as
                  //          the rest of the world!!!
                                 GetClientSize().y - heightMbar - heightTbar,
 #else
                                 - (heightMbar + heightTbar),
-#endif                         
+#endif
                                 GetClientSize().x, heightMbar);
     }
 }
@@ -133,7 +151,7 @@ void wxFrame::PositionStatusBar()
     if ( m_frameStatusBar )
     {
         wxSize size = GetClientSize();
-        m_frameStatusBar->SetSize(0, size.y, size.x, -1);
+        m_frameStatusBar->SetSize(0, size.y, size.x, wxDefaultCoord);
     }
 }
 
@@ -195,8 +213,7 @@ wxPoint wxFrame::GetClientAreaOrigin() const
     }
 #endif // wxUSE_MENUS
 
-   // This is done in wxFrameBase already
-#if 0 // wxUSE_TOOLBAR
+#if wxUSE_TOOLBAR
     if ( m_frameToolBar )
     {
         if ( m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL )
@@ -257,7 +274,9 @@ void wxFrame::DoSetClientSize(int width, int height)
 #if wxUSE_TOOLBAR
     if ( m_frameToolBar )
     {
+#if wxUSE_STATUSBAR
         height += m_frameStatusBar->GetSize().y;
+#endif // wxUSE_STATUSBAR
 
         if ( m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL )
             width += m_frameToolBar->GetSize().x;
@@ -305,7 +324,7 @@ int wxFrame::GetMinHeight() const
         height += m_frameStatusBar->GetSize().y;
     }
 #endif // wxUSE_STATUSBAR
-    
+
     if ( height )
         return height + wxMax(0, wxFrameBase::GetMinHeight());
     else
@@ -315,10 +334,10 @@ int wxFrame::GetMinHeight() const
 bool wxFrame::Enable(bool enable)
 {
     if (!wxFrameBase::Enable(enable))
-       return FALSE;
+        return false;
 #ifdef __WXMICROWIN__
     if (m_frameMenuBar)
         m_frameMenuBar->Enable(enable);
 #endif
-    return TRUE;
+    return true;
 }