split wxRegion(wxBitmap) ctor into two ctors with clearer semantics
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -48,8 +48,10 @@ provided array. {\it fillStyle} parameter may have values
|
|||||||
|
|
||||||
{\bf NB:} This constructor is only implemented for Win32 and GTK+ wxWidgets ports.
|
{\bf NB:} This constructor is only implemented for Win32 and GTK+ wxWidgets ports.
|
||||||
|
|
||||||
|
\func{}{wxRegion}{\param{const wxBitmap\&}{ bmp}}
|
||||||
|
|
||||||
\func{}{wxRegion}{\param{const wxBitmap\&}{ bmp},
|
\func{}{wxRegion}{\param{const wxBitmap\&}{ bmp},
|
||||||
\param{const wxColour\&}{ transColour = wxNullColour},
|
\param{const wxColour\&}{ transColour},
|
||||||
\param{int}{ tolerance = 0}}
|
\param{int}{ tolerance = 0}}
|
||||||
|
|
||||||
Constructs a region using the non-transparent pixels of a bitmap. See
|
Constructs a region using the non-transparent pixels of a bitmap. See
|
||||||
@@ -183,13 +185,19 @@ Finds the union of this region and another, rectangular region.
|
|||||||
|
|
||||||
Finds the union of this region and another region.
|
Finds the union of this region and another region.
|
||||||
|
|
||||||
|
\func{bool}{Union}{\param{const wxBitmap\&}{ bmp}}
|
||||||
|
|
||||||
|
Finds the union of this region and the the non-transparent pixels of a
|
||||||
|
bitmap. Bitmap's mask is used to determine transparency. If the bitmap doesn't
|
||||||
|
have a mask, solid rectangle of bitmap's dimensions is used.
|
||||||
|
|
||||||
\func{bool}{Union}{\param{const wxBitmap\&}{ bmp},
|
\func{bool}{Union}{\param{const wxBitmap\&}{ bmp},
|
||||||
\param{const wxColour\&}{ transColour = wxNullColour},
|
\param{const wxColour\&}{ transColour},
|
||||||
\param{int}{ tolerance = 0}}
|
\param{int}{ tolerance = 0}}
|
||||||
|
|
||||||
Finds the union of this region and the the non-transparent pixels of a
|
Finds the union of this region and the the non-transparent pixels of a
|
||||||
bitmap. If the bitmap has a mask then it will be used, otherwise the
|
bitmap. Colour to be treated as transparent is specified in the
|
||||||
colour to be treated as transparent may be specified, along with an
|
\arg{transColour} argument, along with an
|
||||||
optional colour tolerance value.
|
optional colour tolerance value.
|
||||||
|
|
||||||
\wxheading{Return value}
|
\wxheading{Return value}
|
||||||
|
@@ -30,13 +30,13 @@ public:
|
|||||||
: wxRegionGeneric(rect)
|
: wxRegionGeneric(rect)
|
||||||
{}
|
{}
|
||||||
wxRegion() {}
|
wxRegion() {}
|
||||||
wxRegion(const wxBitmap& bmp,
|
wxRegion(const wxBitmap& bmp)
|
||||||
const wxColour& transColour = wxNullColour,
|
|
||||||
int tolerance = 0)
|
|
||||||
: wxRegionGeneric()
|
: wxRegionGeneric()
|
||||||
{
|
{ Union(bmp); }
|
||||||
Union(bmp, transColour, tolerance);
|
wxRegion(const wxBitmap& bmp,
|
||||||
}
|
const wxColour& transColour, int tolerance = 0)
|
||||||
|
: wxRegionGeneric()
|
||||||
|
{ Union(bmp, transColour, tolerance); }
|
||||||
~wxRegion() {}
|
~wxRegion() {}
|
||||||
wxRegion(const wxRegion& r)
|
wxRegion(const wxRegion& r)
|
||||||
: wxRegionGeneric(r)
|
: wxRegionGeneric(r)
|
||||||
@@ -49,13 +49,13 @@ public:
|
|||||||
wxRegion(const NSRect *rects, int count);
|
wxRegion(const NSRect *rects, int count);
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
// NOTE: implemented in common/rgncmn.cpp
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
/* And because of function hiding: */
|
/* And because of function hiding: */
|
||||||
bool Union(long x, long y, long width, long height)
|
bool Union(long x, long y, long width, long height)
|
||||||
{ return wxRegionGeneric::Union(x,y,width,height); }
|
{ return wxRegionGeneric::Union(x,y,width,height); }
|
||||||
|
@@ -72,9 +72,12 @@ public:
|
|||||||
|
|
||||||
wxRegion( size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
wxRegion( size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
||||||
|
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -127,12 +130,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@@ -72,9 +72,12 @@ public:
|
|||||||
|
|
||||||
wxRegion( size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
wxRegion( size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
||||||
|
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -127,12 +130,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@@ -45,9 +45,12 @@ public:
|
|||||||
wxRegion(const wxRect& rect);
|
wxRegion(const wxRect& rect);
|
||||||
wxRegion( WXHRGN hRegion );
|
wxRegion( WXHRGN hRegion );
|
||||||
wxRegion();
|
wxRegion();
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion(const wxBitmap& bmp)
|
||||||
const wxColour& transColour = wxNullColour,
|
{
|
||||||
int tolerance = 0)
|
Union(bmp);
|
||||||
|
}
|
||||||
|
wxRegion(const wxBitmap& bmp,
|
||||||
|
const wxColour& transColour, int tolerance = 0)
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -122,12 +125,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
// Internal
|
// Internal
|
||||||
bool Combine(long x, long y, long width, long height, wxRegionOp op);
|
bool Combine(long x, long y, long width, long height, wxRegionOp op);
|
||||||
|
@@ -45,9 +45,12 @@ public:
|
|||||||
wxRegion(const wxRect& rect);
|
wxRegion(const wxRect& rect);
|
||||||
wxRegion( WXHRGN hRegion );
|
wxRegion( WXHRGN hRegion );
|
||||||
wxRegion();
|
wxRegion();
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -122,12 +125,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
// Internal
|
// Internal
|
||||||
bool Combine(long x, long y, long width, long height, wxRegionOp op);
|
bool Combine(long x, long y, long width, long height, wxRegionOp op);
|
||||||
|
@@ -41,9 +41,12 @@ public:
|
|||||||
wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight);
|
wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight);
|
||||||
wxRegion(const wxRect& rect);
|
wxRegion(const wxRect& rect);
|
||||||
wxRegion(const MGLRegion& region);
|
wxRegion(const MGLRegion& region);
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -108,12 +111,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
|
|
||||||
// implementation from now on:
|
// implementation from now on:
|
||||||
|
@@ -48,9 +48,12 @@ public:
|
|||||||
wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight);
|
wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight);
|
||||||
wxRegion(const wxRect& rect);
|
wxRegion(const wxRect& rect);
|
||||||
wxRegion();
|
wxRegion();
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -112,12 +115,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
// Internal
|
// Internal
|
||||||
bool Combine(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxRegionOp op);
|
bool Combine(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxRegionOp op);
|
||||||
|
@@ -48,9 +48,12 @@ public:
|
|||||||
wxRegion(const wxRect& rect);
|
wxRegion(const wxRect& rect);
|
||||||
wxRegion(WXHRGN hRegion); // Hangs on to this region
|
wxRegion(WXHRGN hRegion); // Hangs on to this region
|
||||||
wxRegion(size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
wxRegion(size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -119,12 +122,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
// Internal
|
// Internal
|
||||||
bool Combine(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxRegionOp op);
|
bool Combine(wxCoord x, wxCoord y, wxCoord width, wxCoord height, wxRegionOp op);
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
#include "wx/list.h"
|
#include "wx/list.h"
|
||||||
#include "wx/gdiobj.h"
|
#include "wx/gdiobj.h"
|
||||||
#include "wx/gdicmn.h"
|
#include "wx/gdicmn.h"
|
||||||
|
#include "wx/bitmap.h"
|
||||||
#include "wx/os2/private.h"
|
#include "wx/os2/private.h"
|
||||||
|
|
||||||
class WXDLLEXPORT wxRect;
|
class WXDLLEXPORT wxRect;
|
||||||
@@ -45,6 +46,15 @@ public:
|
|||||||
);
|
);
|
||||||
wxRegion(const wxRect& rRect);
|
wxRegion(const wxRect& rRect);
|
||||||
wxRegion(WXHRGN hRegion, WXHDC hPS); // Hangs on to this region
|
wxRegion(WXHRGN hRegion, WXHDC hPS); // Hangs on to this region
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
|
wxRegion( const wxBitmap& bmp,
|
||||||
|
const wxColour& transColour, int tolerance = 0)
|
||||||
|
{
|
||||||
|
Union(bmp, transColour, tolerance);
|
||||||
|
}
|
||||||
|
|
||||||
wxRegion();
|
wxRegion();
|
||||||
~wxRegion();
|
~wxRegion();
|
||||||
@@ -179,13 +189,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap(void) const;
|
wxBitmap ConvertToBitmap(void) const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
bool Union( const wxBitmap& rBmp
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
,const wxColour& rTransColour = wxNullColour
|
bool Union(const wxBitmap& bmp);
|
||||||
,int nTolerance = 0
|
bool Union(const wxBitmap& bmp,
|
||||||
);
|
const wxColour& transColour, int tolerance = 0);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Does the region contain the point pt?
|
// Does the region contain the point pt?
|
||||||
|
@@ -74,9 +74,12 @@ public:
|
|||||||
|
|
||||||
wxRegion( size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
wxRegion( size_t n, const wxPoint *points, int fillStyle = wxODDEVEN_RULE );
|
||||||
|
|
||||||
|
wxRegion( const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
Union(bmp);
|
||||||
|
}
|
||||||
wxRegion( const wxBitmap& bmp,
|
wxRegion( const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0)
|
||||||
int tolerance = 0)
|
|
||||||
{
|
{
|
||||||
Union(bmp, transColour, tolerance);
|
Union(bmp, transColour, tolerance);
|
||||||
}
|
}
|
||||||
@@ -127,12 +130,13 @@ public:
|
|||||||
wxBitmap ConvertToBitmap() const;
|
wxBitmap ConvertToBitmap() const;
|
||||||
|
|
||||||
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
// Use the non-transparent pixels of a wxBitmap for the region to combine
|
||||||
// with this region. If the bitmap has a mask then it will be used,
|
// with this region. First version takes transparency from bitmap's mask,
|
||||||
// otherwise the colour to be treated as transparent may be specified,
|
// second lets the user specify the colour to be treated as transparent
|
||||||
// along with an optional tolerance value.
|
// along with an optional tolerance value.
|
||||||
|
// NOTE: implemented in common/rgncmn.cpp
|
||||||
|
bool Union(const wxBitmap& bmp);
|
||||||
bool Union(const wxBitmap& bmp,
|
bool Union(const wxBitmap& bmp,
|
||||||
const wxColour& transColour = wxNullColour,
|
const wxColour& transColour, int tolerance = 0);
|
||||||
int tolerance = 0);
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@@ -51,38 +51,15 @@ wxBitmap wxRegion::ConvertToBitmap() const
|
|||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
bool wxRegion::Union(const wxBitmap& bmp,
|
static bool DoRegionUnion(wxRegion& region,
|
||||||
const wxColour& transColour,
|
const wxImage& image,
|
||||||
int tolerance)
|
unsigned char loR,
|
||||||
#else
|
unsigned char loG,
|
||||||
bool wxRegion::Union(const wxBitmap& WXUNUSED(bmp),
|
unsigned char loB,
|
||||||
const wxColour& WXUNUSED(transColour),
|
int tolerance)
|
||||||
int WXUNUSED(tolerance))
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#if wxUSE_IMAGE
|
|
||||||
unsigned char loR, loG, loB;
|
|
||||||
unsigned char hiR, hiG, hiB;
|
unsigned char hiR, hiG, hiB;
|
||||||
|
|
||||||
wxCHECK_MSG((bmp.GetMask() != NULL) || transColour.Ok(),
|
|
||||||
FALSE,
|
|
||||||
wxT("Either the bitmap should have a mask or a colour should be given."));
|
|
||||||
|
|
||||||
wxImage image = bmp.ConvertToImage();
|
|
||||||
|
|
||||||
if (image.HasMask())
|
|
||||||
{
|
|
||||||
loR = image.GetMaskRed();
|
|
||||||
loG = image.GetMaskGreen();
|
|
||||||
loB = image.GetMaskBlue();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
loR = transColour.Red();
|
|
||||||
loG = transColour.Green();
|
|
||||||
loB = transColour.Blue();
|
|
||||||
}
|
|
||||||
|
|
||||||
hiR = wxMin(0xFF, loR + tolerance);
|
hiR = wxMin(0xFF, loR + tolerance);
|
||||||
hiG = wxMin(0xFF, loG + tolerance);
|
hiG = wxMin(0xFF, loG + tolerance);
|
||||||
hiB = wxMin(0xFF, loB + tolerance);
|
hiB = wxMin(0xFF, loB + tolerance);
|
||||||
@@ -117,16 +94,61 @@ bool wxRegion::Union(const wxBitmap& WXUNUSED(bmp),
|
|||||||
if (x > x0) {
|
if (x > x0) {
|
||||||
rect.x = x0;
|
rect.x = x0;
|
||||||
rect.width = x - x0;
|
rect.width = x - x0;
|
||||||
Union(rect);
|
region.Union(rect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
#else
|
}
|
||||||
// No wxImage support
|
|
||||||
return false;
|
|
||||||
#endif
|
bool wxRegion::Union(const wxBitmap& bmp)
|
||||||
|
{
|
||||||
|
if (bmp.GetMask())
|
||||||
|
{
|
||||||
|
wxImage image = bmp.ConvertToImage();
|
||||||
|
wxASSERT_MSG( image.HasMask(), _T("wxBitmap::ConvertToImage doesn't preserve mask?") );
|
||||||
|
return DoRegionUnion(*this, image,
|
||||||
|
image.GetMaskRed(),
|
||||||
|
image.GetMaskGreen(),
|
||||||
|
image.GetMaskBlue(),
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Union(0, 0, bmp.GetWidth(), bmp.GetHeight());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxRegion::Union(const wxBitmap& bmp,
|
||||||
|
const wxColour& transColour,
|
||||||
|
int tolerance)
|
||||||
|
{
|
||||||
|
wxImage image = bmp.ConvertToImage();
|
||||||
|
return DoRegionUnion(*this, image,
|
||||||
|
transColour.Red(),
|
||||||
|
transColour.Green(),
|
||||||
|
transColour.Blue(),
|
||||||
|
tolerance);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
bool wxRegion::Union(const wxBitmap& WXUNUSED(bmp))
|
||||||
|
{
|
||||||
|
// No wxImage support
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxRegion::Union(const wxBitmap& WXUNUSED(bmp),
|
||||||
|
const wxColour& WXUNUSED(transColour),
|
||||||
|
int WXUNUSED(tolerance))
|
||||||
|
{
|
||||||
|
// No wxImage support
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
@@ -150,10 +150,7 @@ void wxTaskBarIconArea::SetTrayIcon(const wxBitmap& bmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
wxRegion region;
|
wxRegion region;
|
||||||
if (m_bmp.GetMask())
|
region.Union(m_bmp);
|
||||||
region.Union(m_bmp);
|
|
||||||
else
|
|
||||||
region.Union(0,0, iconsize.x, iconsize.y);
|
|
||||||
|
|
||||||
// if the bitmap is smaller than the window, offset it:
|
// if the bitmap is smaller than the window, offset it:
|
||||||
if (winsize != iconsize)
|
if (winsize != iconsize)
|
||||||
|
Reference in New Issue
Block a user