}
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
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
}
};
dc.DrawLine(p3, p4);
dc.DrawLine(p4, p1);
-#ifdef __WXMSW__
+ dc.SetBrush(wxBrush(m_col, wxSOLID));
dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER);
-#endif
}
};
dc.DrawEllipse(m_pos, m_size);
-#ifdef __WXMSW__
+ dc.SetBrush(wxBrush(m_col, wxSOLID));
dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER);
-#endif
}
};
{
// 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);