// headers
// ---------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "dc.h"
#endif
#endif
#include "wx/fontutil.h"
+#include "wx/encinfo.h"
#include "wx/fontmap.h"
#include "wx/mgl/private.h"
#include "wx/log.h"
}
}
-void wxDC::DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, int style)
-{
- if (GetBrush().GetStyle() == wxTRANSPARENT)
- {
- wxLogDebug(wxT("In FloodFill, Current Brush is transparent, no filling done"));
- return ;
- }
- int height = 0;
- int width = 0;
- this->GetSize(&width, &height);
- //it would be nice to fail if we don't get a sensible size...
- if (width < 1 || height < 1)
- {
- wxLogError(wxT("In FloodFill, dc.GetSize routine failed, method not supported by this DC"));
- return ;
- }
+extern bool wxDoFloodFill(wxDC *dc, wxCoord x, wxCoord y,
+ const wxColour & col, int style);
- //this is much faster than doing the individual pixels
- wxMemoryDC memdc;
- wxBitmap bitmap(width, height);
- memdc.SelectObject(bitmap);
- memdc.Blit(0, 0, width, height, (wxDC*) this, 0, 0);
- memdc.SelectObject(wxNullBitmap);
-
- wxImage image(bitmap);
- image.DoFloodFill (x,y, GetBrush(), col, style, GetLogicalFunction());
- bitmap = wxBitmap(image);
- memdc.SelectObject(bitmap);
- this->Blit(0, 0, width, height, &memdc, 0, 0);
- memdc.SelectObject(wxNullBitmap);
+bool wxDC::DoFloodFill(wxCoord x, wxCoord y,
+ const wxColour& col, int style)
+{
+ return wxDoFloodFill(this, x, y, col, style);
}
bool wxDC::DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const