From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Sun, 20 Feb 2005 00:12:01 +0000 (+0000)
Subject: added OnSysColourChanged() (modified patch 1103439)
X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/afad4a880e65b7a496c03e09b71c40772c816004

added OnSysColourChanged() (modified patch 1103439)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---

diff --git a/include/wx/univ/frame.h b/include/wx/univ/frame.h
index 8a5617f53e..03f550957e 100644
--- a/include/wx/univ/frame.h
+++ b/include/wx/univ/frame.h
@@ -69,6 +69,7 @@ public:
 
 protected:
     void OnSize(wxSizeEvent& event);
+    void OnSysColourChanged(wxSysColourChangedEvent& event);
 
     virtual void DoGetClientSize(int *width, int *height) const;
     virtual void DoSetClientSize(int width, int height);
diff --git a/src/univ/framuniv.cpp b/src/univ/framuniv.cpp
index f2fe6fdc37..7f179b0eee 100644
--- a/src/univ/framuniv.cpp
+++ b/src/univ/framuniv.cpp
@@ -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