]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/themes/win32.cpp
Added event Clone functions
[wxWidgets.git] / src / univ / themes / win32.cpp
index 540676b5ea5c4ebf046988b74f803c3bb67a9bdb..3261e10239f09a7652bb784ef810147096d1c75b 100644 (file)
@@ -600,7 +600,7 @@ public:
     wxWin32Theme();
     virtual ~wxWin32Theme();
 
-    virtual wxRenderer *GetRenderer() { return m_renderer; }
+    virtual wxRenderer *GetRenderer();
     virtual wxInputHandler *GetInputHandler(const wxString& control);
     virtual wxColourScheme *GetColourScheme();
 
@@ -1111,8 +1111,8 @@ WX_IMPLEMENT_THEME(wxWin32Theme, win32, wxTRANSLATE("Win32 theme"));
 
 wxWin32Theme::wxWin32Theme()
 {
-    m_scheme = new wxWin32ColourScheme;
-    m_renderer = new wxWin32Renderer(m_scheme);
+    m_scheme = NULL;
+    m_renderer = NULL;
     m_handlerDefault = NULL;
 }
 
@@ -1131,6 +1131,16 @@ wxWin32Theme::~wxWin32Theme()
     delete m_scheme;
 }
 
+wxRenderer *wxWin32Theme::GetRenderer()
+{
+    if ( !m_renderer )
+    {
+        m_renderer = new wxWin32Renderer(GetColourScheme());
+    }
+
+    return m_renderer;
+}
+
 wxInputHandler *wxWin32Theme::GetDefaultInputHandler()
 {
     if ( !m_handlerDefault )
@@ -1209,6 +1219,10 @@ wxInputHandler *wxWin32Theme::GetInputHandler(const wxString& control)
 
 wxColourScheme *wxWin32Theme::GetColourScheme()
 {
+    if ( !m_scheme )
+    {
+        m_scheme = new wxWin32ColourScheme;
+    }
     return m_scheme;
 }
 
@@ -4054,8 +4068,8 @@ bool wxWin32StatusBarInputHandler::IsOnGrip(wxWindow *statbar,
     {
         wxSize sizeSbar = statbar->GetSize();
 
-        return (sizeSbar.x - pt.x) < STATUSBAR_GRIP_SIZE &&
-               (sizeSbar.y - pt.y) < STATUSBAR_GRIP_SIZE;
+        return (sizeSbar.x - pt.x) < (wxCoord)STATUSBAR_GRIP_SIZE &&
+               (sizeSbar.y - pt.y) < (wxCoord)STATUSBAR_GRIP_SIZE;
     }
 
     return FALSE;