]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/renderer.cpp
don't cache the result of IsAlwaysConnected() and don't call IsOnline() unnecessarily...
[wxWidgets.git] / src / univ / renderer.cpp
index eebe8b30626e160de416d6a6429cb8a8fc0bcf8a..13db530ddb9e79476de7535b64d37812e1a1d76e 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     15.08.00
 // RCS-ID:      $Id$
-// Copyright:   (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
 // Licence:     wxWindows license
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "wx/univ/renderer.h"
 #include "wx/univ/colschem.h"
 
+#if wxUSE_GAUGE
+#include "wx/gauge.h"
+#endif
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -413,6 +417,7 @@ wxControlRenderer::wxControlRenderer(wxWindow *window,
 void wxControlRenderer::DrawLabel(const wxBitmap& bitmap,
                                   wxCoord marginX, wxCoord marginY)
 {
+    m_dc.SetBackgroundMode(wxTRANSPARENT);
     m_dc.SetFont(m_window->GetFont());
     m_dc.SetTextForeground(m_window->GetForegroundColour());
 
@@ -423,6 +428,10 @@ void wxControlRenderer::DrawLabel(const wxBitmap& bitmap,
         if ( bitmap.Ok() )
         {
             rectLabel.Inflate(-marginX, -marginY);
+            
+            // I don't know why this is necessary. RR.
+            rectLabel.x ++;
+            rectLabel.y ++;
         }
 
         wxControl *ctrl = wxStaticCast(m_window, wxControl);
@@ -459,7 +468,8 @@ void wxControlRenderer::DrawButtonBorder()
 
     m_renderer->DrawButtonBorder(m_dc, m_rect, flags, &m_rect);
 
-    m_renderer->DrawBackground(m_dc, wxTHEME_BG_COLOUR(m_window), m_rect, flags);
+    // Why do this here?
+    // m_renderer->DrawButtonSurface(m_dc, wxTHEME_BG_COLOUR(m_window), m_rect, flags );
 }
 
 void wxControlRenderer::DrawBitmap(const wxBitmap& bitmap)
@@ -502,7 +512,7 @@ void wxControlRenderer::DrawBitmap(wxDC &dc,
     else if ( stretch & wxEXPAND )
     {
         // stretch bitmap to fill the entire control
-        bmp = wxImage(bmp).Scale(rect.width, rect.height).ConvertToBitmap();
+        bmp = wxBitmap(wxImage(bmp.ConvertToImage()).Scale(rect.width, rect.height));
     }
     else // not stretched, not tiled
     {
@@ -767,7 +777,9 @@ void wxControlRenderer::DrawProgressBar(const wxGauge *gauge)
     wxRect rect = m_rect;
     rect.Deflate(1); // FIXME this depends on the border width
 
-    m_dc.SetBrush(wxBrush(m_window->GetForegroundColour(), wxSOLID));
+    wxColour col = m_window->UseFgCol() ? m_window->GetForegroundColour()
+                                        : wxTHEME_COLOUR(GAUGE);
+    m_dc.SetBrush(wxBrush(col, wxSOLID));
 
     if ( gauge->IsSmooth() )
     {