]> git.saurik.com Git - wxWidgets.git/commitdiff
removed virtual GetSelectedBitmap() from the base wxDC class, it only makes sense...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 30 Mar 2007 15:27:08 +0000 (15:27 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 30 Mar 2007 15:27:08 +0000 (15:27 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/dc.h
include/wx/gtk/dcmemory.h
src/gtk/dcclient.cpp

index a778ba23db3c0dfec6e7047f8ce170618b9c1c65..19f11b607cc68089a09d96fe5e79bb97cf722d5d 100644 (file)
@@ -95,7 +95,6 @@ public:
     virtual void ComputeScaleAndOrigin();
 
     virtual GdkWindow* GetGDKWindow() const { return NULL; }
-    virtual wxBitmap GetSelectedBitmap() const { return wxNullBitmap; }        
 
 protected:
     // implementation
index 94de61a1f32e12dc99de86bfe343a8e0a1328fb3..a0fb9d6c23b428d246a2f8dda6939b595780ca24 100644 (file)
@@ -35,14 +35,17 @@ public:
     virtual void SetTextBackground( const wxColour &col );
 
     // implementation
-    virtual wxBitmap GetSelectedBitmap() const { return m_selected; }        
+    wxBitmap GetSelectedBitmap() const { return m_selected; }
     wxBitmap  m_selected;
 
 protected:
     void DoGetSize( int *width, int *height ) const;
     virtual void DoSelect(const wxBitmap& bitmap);
-    virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const 
-    { return subrect == NULL ? GetSelectedBitmap() : GetSelectedBitmap().GetSubBitmap(*subrect); }
+    virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const
+    {
+        wxBitmap bmp = GetSelectedBitmap();
+        return subrect ? bmp.GetSubBitmap(*subrect) : bmp;
+    }
 
 private:
     void Init();
index 146afce4042fbe5a0a65a3687b430d830d8e2187..81eaf12861632eff7962c65df9077928d88d29f6 100644 (file)
@@ -1217,8 +1217,14 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest,
     xsrc = source->LogicalToDeviceX(xsrc);
     ysrc = source->LogicalToDeviceY(ysrc);
 
+    wxBitmap selected;
     wxMemoryDC *memDC = wxDynamicCast(source, wxMemoryDC);
-    wxBitmap selected = source->GetSelectedBitmap();
+    if ( memDC )
+    {
+        selected = memDC->GetSelectedBitmap();
+        if ( !selected.IsOk() )
+            return false;
+    }
 
     bool use_bitmap_method = false;
     bool is_mono = false;
@@ -1229,8 +1235,6 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest,
         ysrcMask = ysrc;
     }
 
-    if (memDC && !selected.Ok()) return false;
-
     if (selected.Ok())
     {
         is_mono = (selected.GetDepth() == 1);