00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FXREGION_H
00025 #define FXREGION_H
00026
00027 namespace FX {
00028
00030 class FXAPI FXRegion {
00031 friend class FXDC;
00032 friend class FXDCWindow;
00033 friend class FXWindow;
00034 private:
00035 void *region;
00036 public:
00037
00039 FXRegion();
00040
00042 FXRegion(const FXRegion& r);
00043
00045 FXRegion(const FXRectangle& rect);
00046
00048 FXRegion(FXint x,FXint y,FXint w,FXint h);
00049
00051 FXRegion(const FXPoint* points,FXuint npoints,bool winding=false);
00052
00054 FXRegion &operator=(const FXRegion& r);
00055
00057 bool empty() const;
00058
00060 bool contains(FXint x,FXint y) const;
00061
00063 bool contains(FXint x,FXint y,FXint w,FXint h) const;
00064
00066 FXRectangle bounds() const;
00067
00069 FXRegion& offset(FXint dx,FXint dy);
00070
00072 bool operator==(const FXRegion& r) const;
00073
00075 bool operator!=(const FXRegion& r) const;
00076
00078 FXRegion& operator+=(const FXRegion& r);
00079
00081 FXRegion& operator*=(const FXRegion& r);
00082
00084 FXRegion& operator-=(const FXRegion& r);
00085
00087 FXRegion& operator^=(const FXRegion& r);
00088
00090 FXRegion operator+(const FXRegion& r) const;
00091
00093 FXRegion operator*(const FXRegion& r) const;
00094
00096 FXRegion operator-(const FXRegion& r) const;
00097
00099 FXRegion operator^(const FXRegion& r) const;
00100
00102 void reset();
00103
00105 ~FXRegion();
00106 };
00107
00108 }
00109
00110 #endif