OSDN Git Service

moved from CVS
[tombo/Tombo.git] / Src / YAEdit / Region.h
1 #ifndef REGION_H\r
2 #define REGION_H\r
3 \r
4 class Coordinate {\r
5 public:\r
6         DWORD col;\r
7         DWORD row;\r
8 \r
9         Coordinate() : col(0), row(0) {}\r
10         Coordinate(DWORD c, DWORD r) : col(c), row(r) {}\r
11         void Set(DWORD c, DWORD r) { col = c; row = r; }\r
12 };\r
13 \r
14 inline int operator==(const Coordinate &pos1, const Coordinate &pos2) { return pos1.col == pos2.col && pos1.row == pos2.row; }\r
15 inline int operator!=(const Coordinate &pos1, const Coordinate &pos2) { return !(pos1 == pos2); }\r
16 inline int operator<(const Coordinate &pos1, const Coordinate &pos2) { return pos1.row < pos2.row || (pos1.row == pos2.row && pos1.col < pos2.col); }\r
17 inline int operator>(const Coordinate &pos1, const Coordinate &pos2) { return pos2 < pos1; }\r
18 \r
19 class Region {\r
20 public:\r
21         enum { COL_EOL = 0xFFFFFFFF, ROW_MAX = 0xFFFFFFFF };\r
22 \r
23         Coordinate posStart;\r
24         Coordinate posEnd;\r
25 \r
26         Region() { posStart.Set(0, 0); posEnd.Set(0, 0); }\r
27         Region(const Region& r) { posStart = r.posStart; posEnd = r.posEnd; }\r
28         Region(DWORD cs, DWORD rs, DWORD ce, DWORD re) { posStart.Set(cs, rs); posEnd.Set(ce, re); }\r
29 \r
30         BOOL IsEmptyRegion() const { return posStart == posEnd; }\r
31 \r
32 };\r
33 \r
34 inline int operator==(const Region &r1, const Region &r2) { return (r1.posStart == r2.posStart) && (r1.posEnd == r2.posEnd); }\r
35 \r
36 #endif