wxRegion should work with wxCoord, not long
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: region.h
|
// Name: wx/gtk/region.h
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: Robert Roebling
|
// Author: Robert Roebling
|
||||||
// Id: $Id$
|
// Id: $Id$
|
||||||
// Copyright: (c) 1998 Robert Roebling
|
// Copyright: (c) 1998 Robert Roebling
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef __REGIONH__
|
#ifndef _WX_GTK_REGION_H_
|
||||||
#define __REGIONH__
|
#define _WX_GTK_REGION_H_
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma interface
|
#pragma interface
|
||||||
@@ -28,7 +28,7 @@ class wxRegion;
|
|||||||
// constants
|
// constants
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
enum wxRegionContain
|
enum wxRegionContain
|
||||||
{
|
{
|
||||||
wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2
|
wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2
|
||||||
};
|
};
|
||||||
@@ -46,13 +46,13 @@ wxRGN_XOR // Creates the union of two combined regions except for any
|
|||||||
// wxRegion
|
// wxRegion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class wxRegion : public wxGDIObject
|
class wxRegion : public wxGDIObject
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxRegion);
|
DECLARE_DYNAMIC_CLASS(wxRegion);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
wxRegion( long x, long y, long w, long h );
|
wxRegion( wxCoord x, wxCoord y, wxCoord w, wxCoord h );
|
||||||
wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight );
|
wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight );
|
||||||
wxRegion( const wxRect& rect );
|
wxRegion( const wxRect& rect );
|
||||||
wxRegion();
|
wxRegion();
|
||||||
@@ -65,43 +65,43 @@ class wxRegion : public wxGDIObject
|
|||||||
|
|
||||||
bool operator == ( const wxRegion& region );
|
bool operator == ( const wxRegion& region );
|
||||||
bool operator != ( const wxRegion& region );
|
bool operator != ( const wxRegion& region );
|
||||||
|
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
bool Union( long x, long y, long width, long height );
|
bool Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Union( const wxRect& rect );
|
bool Union( const wxRect& rect );
|
||||||
bool Union( const wxRegion& region );
|
bool Union( const wxRegion& region );
|
||||||
|
|
||||||
bool Intersect( long x, long y, long width, long height );
|
bool Intersect( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Intersect( const wxRect& rect );
|
bool Intersect( const wxRect& rect );
|
||||||
bool Intersect( const wxRegion& region );
|
bool Intersect( const wxRegion& region );
|
||||||
|
|
||||||
bool Subtract( long x, long y, long width, long height );
|
bool Subtract( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Subtract( const wxRect& rect );
|
bool Subtract( const wxRect& rect );
|
||||||
bool Subtract( const wxRegion& region );
|
bool Subtract( const wxRegion& region );
|
||||||
|
|
||||||
bool Xor( long x, long y, long width, long height );
|
bool Xor( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Xor( const wxRect& rect );
|
bool Xor( const wxRect& rect );
|
||||||
bool Xor( const wxRegion& region );
|
bool Xor( const wxRegion& region );
|
||||||
|
|
||||||
void GetBox( long& x, long& y, long&w, long &h ) const;
|
void GetBox( wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h ) const;
|
||||||
wxRect GetBox() const ;
|
wxRect GetBox() const ;
|
||||||
|
|
||||||
bool Empty() const;
|
bool Empty() const;
|
||||||
bool IsEmpty() const { return Empty(); }
|
bool IsEmpty() const { return Empty(); }
|
||||||
|
|
||||||
wxRegionContain Contains( long x, long y ) const;
|
wxRegionContain Contains( wxCoord x, wxCoord y ) const;
|
||||||
wxRegionContain Contains( long x, long y, long w, long h ) const;
|
wxRegionContain Contains( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) const;
|
||||||
wxRegionContain Contains(const wxPoint& pt) const;
|
wxRegionContain Contains(const wxPoint& pt) const;
|
||||||
wxRegionContain Contains(const wxRect& rect) const;
|
wxRegionContain Contains(const wxRect& rect) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
wxList *GetRectList() const;
|
wxList *GetRectList() const;
|
||||||
GdkRegion *GetRegion() const;
|
GdkRegion *GetRegion() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
class wxRegionIterator: public wxObject
|
class wxRegionIterator: public wxObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxRegionIterator();
|
wxRegionIterator();
|
||||||
@@ -134,4 +134,4 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// __REGIONH__
|
// _WX_GTK_REGION_H_
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: region.h
|
// Name: wx/gtk/region.h
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: Robert Roebling
|
// Author: Robert Roebling
|
||||||
// Id: $Id$
|
// Id: $Id$
|
||||||
// Copyright: (c) 1998 Robert Roebling
|
// Copyright: (c) 1998 Robert Roebling
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef __REGIONH__
|
#ifndef _WX_GTK_REGION_H_
|
||||||
#define __REGIONH__
|
#define _WX_GTK_REGION_H_
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma interface
|
#pragma interface
|
||||||
@@ -28,7 +28,7 @@ class wxRegion;
|
|||||||
// constants
|
// constants
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
enum wxRegionContain
|
enum wxRegionContain
|
||||||
{
|
{
|
||||||
wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2
|
wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2
|
||||||
};
|
};
|
||||||
@@ -46,13 +46,13 @@ wxRGN_XOR // Creates the union of two combined regions except for any
|
|||||||
// wxRegion
|
// wxRegion
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class wxRegion : public wxGDIObject
|
class wxRegion : public wxGDIObject
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxRegion);
|
DECLARE_DYNAMIC_CLASS(wxRegion);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
wxRegion( long x, long y, long w, long h );
|
wxRegion( wxCoord x, wxCoord y, wxCoord w, wxCoord h );
|
||||||
wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight );
|
wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight );
|
||||||
wxRegion( const wxRect& rect );
|
wxRegion( const wxRect& rect );
|
||||||
wxRegion();
|
wxRegion();
|
||||||
@@ -65,43 +65,43 @@ class wxRegion : public wxGDIObject
|
|||||||
|
|
||||||
bool operator == ( const wxRegion& region );
|
bool operator == ( const wxRegion& region );
|
||||||
bool operator != ( const wxRegion& region );
|
bool operator != ( const wxRegion& region );
|
||||||
|
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
bool Union( long x, long y, long width, long height );
|
bool Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Union( const wxRect& rect );
|
bool Union( const wxRect& rect );
|
||||||
bool Union( const wxRegion& region );
|
bool Union( const wxRegion& region );
|
||||||
|
|
||||||
bool Intersect( long x, long y, long width, long height );
|
bool Intersect( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Intersect( const wxRect& rect );
|
bool Intersect( const wxRect& rect );
|
||||||
bool Intersect( const wxRegion& region );
|
bool Intersect( const wxRegion& region );
|
||||||
|
|
||||||
bool Subtract( long x, long y, long width, long height );
|
bool Subtract( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Subtract( const wxRect& rect );
|
bool Subtract( const wxRect& rect );
|
||||||
bool Subtract( const wxRegion& region );
|
bool Subtract( const wxRegion& region );
|
||||||
|
|
||||||
bool Xor( long x, long y, long width, long height );
|
bool Xor( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
|
||||||
bool Xor( const wxRect& rect );
|
bool Xor( const wxRect& rect );
|
||||||
bool Xor( const wxRegion& region );
|
bool Xor( const wxRegion& region );
|
||||||
|
|
||||||
void GetBox( long& x, long& y, long&w, long &h ) const;
|
void GetBox( wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h ) const;
|
||||||
wxRect GetBox() const ;
|
wxRect GetBox() const ;
|
||||||
|
|
||||||
bool Empty() const;
|
bool Empty() const;
|
||||||
bool IsEmpty() const { return Empty(); }
|
bool IsEmpty() const { return Empty(); }
|
||||||
|
|
||||||
wxRegionContain Contains( long x, long y ) const;
|
wxRegionContain Contains( wxCoord x, wxCoord y ) const;
|
||||||
wxRegionContain Contains( long x, long y, long w, long h ) const;
|
wxRegionContain Contains( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) const;
|
||||||
wxRegionContain Contains(const wxPoint& pt) const;
|
wxRegionContain Contains(const wxPoint& pt) const;
|
||||||
wxRegionContain Contains(const wxRect& rect) const;
|
wxRegionContain Contains(const wxRect& rect) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
wxList *GetRectList() const;
|
wxList *GetRectList() const;
|
||||||
GdkRegion *GetRegion() const;
|
GdkRegion *GetRegion() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
class wxRegionIterator: public wxObject
|
class wxRegionIterator: public wxObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxRegionIterator();
|
wxRegionIterator();
|
||||||
@@ -134,4 +134,4 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// __REGIONH__
|
// _WX_GTK_REGION_H_
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: region.cpp
|
// Name: gtk/region.cpp
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: Robert Roebling
|
// Author: Robert Roebling
|
||||||
// Id: $Id$
|
// Id: $Id$
|
||||||
// Copyright: (c) 1998 Robert Roebling
|
// Copyright: (c) 1998 Robert Roebling
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
@@ -26,7 +26,7 @@ class wxRegionRefData: public wxObjectRefData
|
|||||||
public:
|
public:
|
||||||
wxRegionRefData();
|
wxRegionRefData();
|
||||||
~wxRegionRefData();
|
~wxRegionRefData();
|
||||||
|
|
||||||
GdkRegion *m_region;
|
GdkRegion *m_region;
|
||||||
wxList m_rects;
|
wxList m_rects;
|
||||||
};
|
};
|
||||||
@@ -39,7 +39,7 @@ wxRegionRefData::wxRegionRefData()
|
|||||||
wxRegionRefData::~wxRegionRefData()
|
wxRegionRefData::~wxRegionRefData()
|
||||||
{
|
{
|
||||||
if (m_region) gdk_region_destroy( m_region );
|
if (m_region) gdk_region_destroy( m_region );
|
||||||
|
|
||||||
wxNode *node = m_rects.First();
|
wxNode *node = m_rects.First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -54,8 +54,8 @@ wxRegionRefData::~wxRegionRefData()
|
|||||||
#define M_REGIONDATA ((wxRegionRefData *)m_refData)
|
#define M_REGIONDATA ((wxRegionRefData *)m_refData)
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxRegion,wxGDIObject);
|
IMPLEMENT_DYNAMIC_CLASS(wxRegion,wxGDIObject);
|
||||||
|
|
||||||
wxRegion::wxRegion( long x, long y, long w, long h )
|
wxRegion::wxRegion( wxCoord x, wxCoord y, wxCoord w, wxCoord h )
|
||||||
{
|
{
|
||||||
m_refData = new wxRegionRefData();
|
m_refData = new wxRegionRefData();
|
||||||
GdkRegion *reg = gdk_region_new();
|
GdkRegion *reg = gdk_region_new();
|
||||||
@@ -94,7 +94,7 @@ wxRegion::wxRegion( const wxRect& rect )
|
|||||||
g_rect.height = rect.height;
|
g_rect.height = rect.height;
|
||||||
M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &g_rect );
|
M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &g_rect );
|
||||||
gdk_region_destroy( reg );
|
gdk_region_destroy( reg );
|
||||||
|
|
||||||
wxNode *node = M_REGIONDATA->m_rects.First();
|
wxNode *node = M_REGIONDATA->m_rects.First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -116,12 +116,12 @@ wxRegion::~wxRegion()
|
|||||||
|
|
||||||
bool wxRegion::operator == ( const wxRegion& region )
|
bool wxRegion::operator == ( const wxRegion& region )
|
||||||
{
|
{
|
||||||
return m_refData == region.m_refData;
|
return m_refData == region.m_refData;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::operator != ( const wxRegion& region )
|
bool wxRegion::operator != ( const wxRegion& region )
|
||||||
{
|
{
|
||||||
return m_refData != region.m_refData;
|
return m_refData != region.m_refData;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRegion::Clear()
|
void wxRegion::Clear()
|
||||||
@@ -131,7 +131,7 @@ void wxRegion::Clear()
|
|||||||
M_REGIONDATA->m_region = gdk_region_new();
|
M_REGIONDATA->m_region = gdk_region_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Union( long x, long y, long width, long height )
|
bool wxRegion::Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
rect.x = x;
|
rect.x = x;
|
||||||
@@ -164,7 +164,7 @@ bool wxRegion::Union( const wxRegion& region )
|
|||||||
GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() );
|
GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() );
|
||||||
gdk_region_destroy( M_REGIONDATA->m_region );
|
gdk_region_destroy( M_REGIONDATA->m_region );
|
||||||
M_REGIONDATA->m_region = reg;
|
M_REGIONDATA->m_region = reg;
|
||||||
|
|
||||||
wxNode *node = region.GetRectList()->First();
|
wxNode *node = region.GetRectList()->First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -172,11 +172,11 @@ bool wxRegion::Union( const wxRegion& region )
|
|||||||
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Intersect( long x, long y, long width, long height )
|
bool wxRegion::Intersect( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
wxRegion reg( x, y, width, height );
|
wxRegion reg( x, y, width, height );
|
||||||
Intersect( reg );
|
Intersect( reg );
|
||||||
@@ -198,7 +198,7 @@ bool wxRegion::Intersect( const wxRegion& region )
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Subtract( long x, long y, long width, long height )
|
bool wxRegion::Subtract( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
wxRegion reg( x, y, width, height );
|
wxRegion reg( x, y, width, height );
|
||||||
Subtract( reg );
|
Subtract( reg );
|
||||||
@@ -220,7 +220,7 @@ bool wxRegion::Subtract( const wxRegion& region )
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Xor( long x, long y, long width, long height )
|
bool wxRegion::Xor( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
wxRegion reg( x, y, width, height );
|
wxRegion reg( x, y, width, height );
|
||||||
Xor( reg );
|
Xor( reg );
|
||||||
@@ -239,7 +239,7 @@ bool wxRegion::Xor( const wxRegion& region )
|
|||||||
GdkRegion *reg = gdk_regions_xor( M_REGIONDATA->m_region, region.GetRegion() );
|
GdkRegion *reg = gdk_regions_xor( M_REGIONDATA->m_region, region.GetRegion() );
|
||||||
gdk_region_destroy( M_REGIONDATA->m_region );
|
gdk_region_destroy( M_REGIONDATA->m_region );
|
||||||
M_REGIONDATA->m_region = reg;
|
M_REGIONDATA->m_region = reg;
|
||||||
|
|
||||||
wxNode *node = region.GetRectList()->First();
|
wxNode *node = region.GetRectList()->First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -247,11 +247,11 @@ bool wxRegion::Xor( const wxRegion& region )
|
|||||||
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const
|
void wxRegion::GetBox( wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h ) const
|
||||||
{
|
{
|
||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
@@ -267,10 +267,10 @@ void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const
|
|||||||
|
|
||||||
wxRect wxRegion::GetBox() const
|
wxRect wxRegion::GetBox() const
|
||||||
{
|
{
|
||||||
long x = 0;
|
wxCoord x = 0;
|
||||||
long y = 0;
|
wxCoord y = 0;
|
||||||
long w = -1;
|
wxCoord w = -1;
|
||||||
long h = -1;
|
wxCoord h = -1;
|
||||||
GetBox( x, y, w, h );
|
GetBox( x, y, w, h );
|
||||||
return wxRect( x, y, w, h );
|
return wxRect( x, y, w, h );
|
||||||
}
|
}
|
||||||
@@ -280,7 +280,7 @@ bool wxRegion::Empty() const
|
|||||||
return gdk_region_empty( M_REGIONDATA->m_region );
|
return gdk_region_empty( M_REGIONDATA->m_region );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionContain wxRegion::Contains( long x, long y ) const
|
wxRegionContain wxRegion::Contains( wxCoord x, wxCoord y ) const
|
||||||
{
|
{
|
||||||
if (gdk_region_point_in( M_REGIONDATA->m_region, x, y ))
|
if (gdk_region_point_in( M_REGIONDATA->m_region, x, y ))
|
||||||
return wxInRegion;
|
return wxInRegion;
|
||||||
@@ -288,7 +288,7 @@ wxRegionContain wxRegion::Contains( long x, long y ) const
|
|||||||
return wxOutRegion;
|
return wxOutRegion;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionContain wxRegion::Contains( long x, long y, long w, long h ) const
|
wxRegionContain wxRegion::Contains( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) const
|
||||||
{
|
{
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
rect.x = x;
|
rect.x = x;
|
||||||
@@ -330,7 +330,7 @@ wxList *wxRegion::GetRectList() const
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject);
|
IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject);
|
||||||
|
|
||||||
wxRegionIterator::wxRegionIterator()
|
wxRegionIterator::wxRegionIterator()
|
||||||
{
|
{
|
||||||
m_current = 0;
|
m_current = 0;
|
||||||
@@ -348,14 +348,14 @@ void wxRegionIterator::Reset( const wxRegion& region )
|
|||||||
m_current = 0;
|
m_current = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionIterator::operator bool () const
|
wxRegionIterator::operator bool () const
|
||||||
{
|
{
|
||||||
return m_current < m_region.GetRectList()->Number();
|
return m_current < m_region.GetRectList()->Number();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegionIterator::HaveRects() const
|
bool wxRegionIterator::HaveRects() const
|
||||||
{
|
{
|
||||||
return m_current < m_region.GetRectList()->Number();
|
return m_current < m_region.GetRectList()->Number();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRegionIterator::operator ++ ()
|
void wxRegionIterator::operator ++ ()
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: region.cpp
|
// Name: gtk/region.cpp
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Author: Robert Roebling
|
// Author: Robert Roebling
|
||||||
// Id: $Id$
|
// Id: $Id$
|
||||||
// Copyright: (c) 1998 Robert Roebling
|
// Copyright: (c) 1998 Robert Roebling
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
@@ -26,7 +26,7 @@ class wxRegionRefData: public wxObjectRefData
|
|||||||
public:
|
public:
|
||||||
wxRegionRefData();
|
wxRegionRefData();
|
||||||
~wxRegionRefData();
|
~wxRegionRefData();
|
||||||
|
|
||||||
GdkRegion *m_region;
|
GdkRegion *m_region;
|
||||||
wxList m_rects;
|
wxList m_rects;
|
||||||
};
|
};
|
||||||
@@ -39,7 +39,7 @@ wxRegionRefData::wxRegionRefData()
|
|||||||
wxRegionRefData::~wxRegionRefData()
|
wxRegionRefData::~wxRegionRefData()
|
||||||
{
|
{
|
||||||
if (m_region) gdk_region_destroy( m_region );
|
if (m_region) gdk_region_destroy( m_region );
|
||||||
|
|
||||||
wxNode *node = m_rects.First();
|
wxNode *node = m_rects.First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -54,8 +54,8 @@ wxRegionRefData::~wxRegionRefData()
|
|||||||
#define M_REGIONDATA ((wxRegionRefData *)m_refData)
|
#define M_REGIONDATA ((wxRegionRefData *)m_refData)
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxRegion,wxGDIObject);
|
IMPLEMENT_DYNAMIC_CLASS(wxRegion,wxGDIObject);
|
||||||
|
|
||||||
wxRegion::wxRegion( long x, long y, long w, long h )
|
wxRegion::wxRegion( wxCoord x, wxCoord y, wxCoord w, wxCoord h )
|
||||||
{
|
{
|
||||||
m_refData = new wxRegionRefData();
|
m_refData = new wxRegionRefData();
|
||||||
GdkRegion *reg = gdk_region_new();
|
GdkRegion *reg = gdk_region_new();
|
||||||
@@ -94,7 +94,7 @@ wxRegion::wxRegion( const wxRect& rect )
|
|||||||
g_rect.height = rect.height;
|
g_rect.height = rect.height;
|
||||||
M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &g_rect );
|
M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &g_rect );
|
||||||
gdk_region_destroy( reg );
|
gdk_region_destroy( reg );
|
||||||
|
|
||||||
wxNode *node = M_REGIONDATA->m_rects.First();
|
wxNode *node = M_REGIONDATA->m_rects.First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -116,12 +116,12 @@ wxRegion::~wxRegion()
|
|||||||
|
|
||||||
bool wxRegion::operator == ( const wxRegion& region )
|
bool wxRegion::operator == ( const wxRegion& region )
|
||||||
{
|
{
|
||||||
return m_refData == region.m_refData;
|
return m_refData == region.m_refData;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::operator != ( const wxRegion& region )
|
bool wxRegion::operator != ( const wxRegion& region )
|
||||||
{
|
{
|
||||||
return m_refData != region.m_refData;
|
return m_refData != region.m_refData;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRegion::Clear()
|
void wxRegion::Clear()
|
||||||
@@ -131,7 +131,7 @@ void wxRegion::Clear()
|
|||||||
M_REGIONDATA->m_region = gdk_region_new();
|
M_REGIONDATA->m_region = gdk_region_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Union( long x, long y, long width, long height )
|
bool wxRegion::Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
rect.x = x;
|
rect.x = x;
|
||||||
@@ -164,7 +164,7 @@ bool wxRegion::Union( const wxRegion& region )
|
|||||||
GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() );
|
GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() );
|
||||||
gdk_region_destroy( M_REGIONDATA->m_region );
|
gdk_region_destroy( M_REGIONDATA->m_region );
|
||||||
M_REGIONDATA->m_region = reg;
|
M_REGIONDATA->m_region = reg;
|
||||||
|
|
||||||
wxNode *node = region.GetRectList()->First();
|
wxNode *node = region.GetRectList()->First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -172,11 +172,11 @@ bool wxRegion::Union( const wxRegion& region )
|
|||||||
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Intersect( long x, long y, long width, long height )
|
bool wxRegion::Intersect( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
wxRegion reg( x, y, width, height );
|
wxRegion reg( x, y, width, height );
|
||||||
Intersect( reg );
|
Intersect( reg );
|
||||||
@@ -198,7 +198,7 @@ bool wxRegion::Intersect( const wxRegion& region )
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Subtract( long x, long y, long width, long height )
|
bool wxRegion::Subtract( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
wxRegion reg( x, y, width, height );
|
wxRegion reg( x, y, width, height );
|
||||||
Subtract( reg );
|
Subtract( reg );
|
||||||
@@ -220,7 +220,7 @@ bool wxRegion::Subtract( const wxRegion& region )
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegion::Xor( long x, long y, long width, long height )
|
bool wxRegion::Xor( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
|
||||||
{
|
{
|
||||||
wxRegion reg( x, y, width, height );
|
wxRegion reg( x, y, width, height );
|
||||||
Xor( reg );
|
Xor( reg );
|
||||||
@@ -239,7 +239,7 @@ bool wxRegion::Xor( const wxRegion& region )
|
|||||||
GdkRegion *reg = gdk_regions_xor( M_REGIONDATA->m_region, region.GetRegion() );
|
GdkRegion *reg = gdk_regions_xor( M_REGIONDATA->m_region, region.GetRegion() );
|
||||||
gdk_region_destroy( M_REGIONDATA->m_region );
|
gdk_region_destroy( M_REGIONDATA->m_region );
|
||||||
M_REGIONDATA->m_region = reg;
|
M_REGIONDATA->m_region = reg;
|
||||||
|
|
||||||
wxNode *node = region.GetRectList()->First();
|
wxNode *node = region.GetRectList()->First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
@@ -247,11 +247,11 @@ bool wxRegion::Xor( const wxRegion& region )
|
|||||||
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) );
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const
|
void wxRegion::GetBox( wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h ) const
|
||||||
{
|
{
|
||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
@@ -267,10 +267,10 @@ void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const
|
|||||||
|
|
||||||
wxRect wxRegion::GetBox() const
|
wxRect wxRegion::GetBox() const
|
||||||
{
|
{
|
||||||
long x = 0;
|
wxCoord x = 0;
|
||||||
long y = 0;
|
wxCoord y = 0;
|
||||||
long w = -1;
|
wxCoord w = -1;
|
||||||
long h = -1;
|
wxCoord h = -1;
|
||||||
GetBox( x, y, w, h );
|
GetBox( x, y, w, h );
|
||||||
return wxRect( x, y, w, h );
|
return wxRect( x, y, w, h );
|
||||||
}
|
}
|
||||||
@@ -280,7 +280,7 @@ bool wxRegion::Empty() const
|
|||||||
return gdk_region_empty( M_REGIONDATA->m_region );
|
return gdk_region_empty( M_REGIONDATA->m_region );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionContain wxRegion::Contains( long x, long y ) const
|
wxRegionContain wxRegion::Contains( wxCoord x, wxCoord y ) const
|
||||||
{
|
{
|
||||||
if (gdk_region_point_in( M_REGIONDATA->m_region, x, y ))
|
if (gdk_region_point_in( M_REGIONDATA->m_region, x, y ))
|
||||||
return wxInRegion;
|
return wxInRegion;
|
||||||
@@ -288,7 +288,7 @@ wxRegionContain wxRegion::Contains( long x, long y ) const
|
|||||||
return wxOutRegion;
|
return wxOutRegion;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionContain wxRegion::Contains( long x, long y, long w, long h ) const
|
wxRegionContain wxRegion::Contains( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) const
|
||||||
{
|
{
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
rect.x = x;
|
rect.x = x;
|
||||||
@@ -330,7 +330,7 @@ wxList *wxRegion::GetRectList() const
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject);
|
IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject);
|
||||||
|
|
||||||
wxRegionIterator::wxRegionIterator()
|
wxRegionIterator::wxRegionIterator()
|
||||||
{
|
{
|
||||||
m_current = 0;
|
m_current = 0;
|
||||||
@@ -348,14 +348,14 @@ void wxRegionIterator::Reset( const wxRegion& region )
|
|||||||
m_current = 0;
|
m_current = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionIterator::operator bool () const
|
wxRegionIterator::operator bool () const
|
||||||
{
|
{
|
||||||
return m_current < m_region.GetRectList()->Number();
|
return m_current < m_region.GetRectList()->Number();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxRegionIterator::HaveRects() const
|
bool wxRegionIterator::HaveRects() const
|
||||||
{
|
{
|
||||||
return m_current < m_region.GetRectList()->Number();
|
return m_current < m_region.GetRectList()->Number();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRegionIterator::operator ++ ()
|
void wxRegionIterator::operator ++ ()
|
||||||
|
Reference in New Issue
Block a user