]> git.saurik.com Git - wxWidgets.git/commitdiff
Added FloodFill patch for samples
authorJulian Smart <julian@anthemion.co.uk>
Mon, 1 Apr 2002 21:47:02 +0000 (21:47 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 1 Apr 2002 21:47:02 +0000 (21:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/dnd/dnd.cpp
samples/drawing/drawing.cpp

index 9af14885d2bec1d2f95d4fb80758f9197d80f622..7788cfdc7dc568047e43aa5633156ada8090e1eb 100644 (file)
@@ -332,9 +332,10 @@ public:
     }
 
 protected:
+    //get a point 1 up and 1 left, otherwise the mid-point of a triangle is on the line
     wxPoint GetCentre() const
-        { return wxPoint(m_pos.x + m_size.x / 2, m_pos.y + m_size.y / 2); }
-
+         { return wxPoint(m_pos.x + m_size.x / 2 - 1, m_pos.y + m_size.y / 2 - 1); }
+         
     struct ShapeDump
     {
         int x, y,       // position
@@ -379,9 +380,9 @@ public:
         dc.DrawLine(p2, p3);
         dc.DrawLine(p3, p1);
 
-#ifdef __WXMSW__
+        //works in multicolor modes; on GTK (at least) will fail in 16-bit color
+        dc.SetBrush(wxBrush(m_col, wxSOLID));       
         dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER);
-#endif
     }
 };
 
@@ -416,9 +417,8 @@ public:
         dc.DrawLine(p3, p4);
         dc.DrawLine(p4, p1);
 
-#ifdef __WXMSW__
+        dc.SetBrush(wxBrush(m_col, wxSOLID));
         dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER);
-#endif
     }
 };
 
@@ -445,9 +445,8 @@ public:
 
         dc.DrawEllipse(m_pos, m_size);
 
-#ifdef __WXMSW__
+        dc.SetBrush(wxBrush(m_col, wxSOLID));
         dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER);
-#endif
     }
 };
 
index b8c1079ae33f309bfad89f5985c1fc08f5715b0d..5c71ee2b096971e5c04c2ddd013dd27ca761bc76 100644 (file)
@@ -475,10 +475,12 @@ void MyCanvas::DrawDefault(wxDC& dc)
 {
     // mark the origin
     dc.DrawCircle(0, 0, 10);
-#if !(defined __WXGTK__) && !(defined __WXX11__) && !(defined __WXMOTIF__) && !(defined __WXMGL__)
-    // not implemented in wxGTK or wxMOTIF or wxX11 :-(
-    dc.FloodFill(0, 0, wxColour(255, 0, 0));
-#endif //
+
+    //flood fill using brush, starting at 1,1 and replacing whatever colour we find there
+    dc.SetBrush(wxBrush(wxColour(128,128,0), wxSOLID));
+    wxColour tmpColour ;
+    dc.GetPixel(1,1, &tmpColour);
+    dc.FloodFill(1,1, tmpColour, wxFLOOD_SURFACE);
 
     dc.DrawCheckMark(5, 80, 15, 15);
     dc.DrawCheckMark(25, 80, 30, 30);