// Author:
// RCS-ID: $Id$
// Copyright:
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
static bool LINKAGEMODE MatchPixel(wxImage *img, int x, int y, int w, int h, const wxColour& c)
{
- if ((x<0)||(x>=w)||(y<0)||(y>=h)) return FALSE;
+ if ((x<0)||(x>=w)||(y<0)||(y>=h)) return false;
unsigned char r = img->GetRed(x,y);
unsigned char g = img->GetGreen(x,y);
static bool LINKAGEMODE MatchBoundaryPixel(wxImage *img, int x, int y, int w, int h, const wxColour & fill, const wxColour& bound)
{
- if ((x<0)||(x>=w)||(y<0)||(y>=h)) return TRUE;
+ if ((x<0)||(x>=w)||(y<0)||(y>=h)) return true;
unsigned char r = img->GetRed(x,y);
unsigned char g = img->GetGreen(x,y);
unsigned char b = img->GetBlue(x,y);
if ( fill.Red() == r && fill.Green() == g && fill.Blue() == b )
- return TRUE;
+ return true;
if ( bound.Red() == r && bound.Green() == g && bound.Blue() == b )
- return TRUE;
- return FALSE;
+ return true;
+ return false;
}
}
-bool wxDoFloodFill(wxDC *dc, wxCoord x, wxCoord y,
- const wxColour& col, int style)
-{
- if (dc->GetBrush().GetStyle() == wxTRANSPARENT)
- return TRUE;
-
- int height = 0;
- int width = 0;
- dc->GetSize(&width, &height);
-
- //it would be nice to fail if we don't get a sensible size...
- wxCHECK_MSG(width >= 1 && height >= 1, FALSE,
- wxT("In FloodFill, dc.GetSize routine failed, method not supported by this DC"));
-
- //this is much faster than doing the individual pixels
- wxMemoryDC memdc;
- wxBitmap bitmap(width, height);
- memdc.SelectObject(bitmap);
- memdc.Blit(0, 0, width, height, dc, 0, 0);
- memdc.SelectObject(wxNullBitmap);
-
- wxImage image = bitmap.ConvertToImage();
- wxImageFloodFill(&image, x,y, dc->GetBrush(), col, style,
- dc->GetLogicalFunction());
- bitmap = wxBitmap(image);
- memdc.SelectObject(bitmap);
- dc->Blit(0, 0, width, height, &memdc, 0, 0);
- memdc.SelectObject(wxNullBitmap);
-
- return TRUE;
-}
-
#endif // wxUSE_IMAGE
+