X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5e885a580a735716af33b47b0743b5fa04a0cb9f..046d682f0f684977b7ba933a128f5c84e06ded0e:/src/univ/framuniv.cpp diff --git a/src/univ/framuniv.cpp b/src/univ/framuniv.cpp index 727b476ace..7f179b0eee 100644 --- a/src/univ/framuniv.cpp +++ b/src/univ/framuniv.cpp @@ -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); } } @@ -256,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; @@ -304,7 +324,7 @@ int wxFrame::GetMinHeight() const height += m_frameStatusBar->GetSize().y; } #endif // wxUSE_STATUSBAR - + if ( height ) return height + wxMax(0, wxFrameBase::GetMinHeight()); else @@ -314,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; }