100 lines
2.9 KiB
C
100 lines
2.9 KiB
C
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: region.h
|
||
|
// Purpose:
|
||
|
// Author: Robert Roebling
|
||
|
// Created: 01/02/97
|
||
|
// Id:
|
||
|
// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
|
||
|
// Licence: wxWindows licence
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef __REGIONH__
|
||
|
#define __REGIONH__
|
||
|
|
||
|
#ifdef __GNUG__
|
||
|
#pragma interface
|
||
|
#endif
|
||
|
|
||
|
#include "wx/list.h"
|
||
|
#include "wx/gdiobj.h"
|
||
|
#include "wx/gdicmn.h"
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// classes
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
class wxRegion;
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// constants
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
enum wxRegionContain
|
||
|
{
|
||
|
wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2
|
||
|
};
|
||
|
|
||
|
// So far, for internal use only
|
||
|
enum wxRegionOp {
|
||
|
wxRGN_AND, // Creates the intersection of the two combined regions.
|
||
|
wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1.
|
||
|
wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2.
|
||
|
wxRGN_OR, // Creates the union of two combined regions.
|
||
|
wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas.
|
||
|
};
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// wxRegion
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
class wxRegion : public wxGDIObject
|
||
|
{
|
||
|
DECLARE_DYNAMIC_CLASS(wxRegion);
|
||
|
|
||
|
public:
|
||
|
|
||
|
wxRegion( long x, long y, long w, long h );
|
||
|
wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight );
|
||
|
wxRegion( const wxRect& rect );
|
||
|
wxRegion(void);
|
||
|
~wxRegion(void);
|
||
|
|
||
|
inline wxRegion( const wxRegion& r )
|
||
|
{ Ref(r); }
|
||
|
inline wxRegion& operator = ( const wxRegion& r )
|
||
|
{ Ref(r); return (*this); }
|
||
|
|
||
|
void Clear(void);
|
||
|
|
||
|
bool Union( long x, long y, long width, long height );
|
||
|
bool Union( const wxRect& rect );
|
||
|
bool Union( const wxRegion& region );
|
||
|
|
||
|
bool Intersect( long x, long y, long width, long height );
|
||
|
bool Intersect( const wxRect& rect );
|
||
|
bool Intersect( const wxRegion& region );
|
||
|
|
||
|
bool Subtract( long x, long y, long width, long height );
|
||
|
bool Subtract( const wxRect& rect );
|
||
|
bool Subtract( const wxRegion& region );
|
||
|
|
||
|
bool Xor( long x, long y, long width, long height );
|
||
|
bool Xor( const wxRect& rect );
|
||
|
bool Xor( const wxRegion& region );
|
||
|
|
||
|
void GetBox( long& x, long& y, long&w, long &h ) const;
|
||
|
wxRect GetBox(void) const ;
|
||
|
|
||
|
bool Empty(void) const;
|
||
|
|
||
|
wxRegionContain Contains( long x, long y ) const;
|
||
|
wxRegionContain Contains( long x, long y, long w, long h ) const;
|
||
|
|
||
|
public:
|
||
|
|
||
|
GdkRegion *GetRegion(void) const;
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
// __REGIONH__
|