Mercurial > projects > qtd
comparison qt/d2/qt/core/QRect.d @ 188:7dd099050621
initial commit for D2 support
author | eldar |
---|---|
date | Sun, 12 Jul 2009 18:58:03 +0000 |
parents | |
children | 6aeaf24018d7 |
comparison
equal
deleted
inserted
replaced
187:34fe79a9915b | 188:7dd099050621 |
---|---|
1 module qt.core.QRect; | |
2 | |
3 public import qt.QGlobal; | |
4 public import qt.core.Qt; | |
5 | |
6 public import qt.core.QDataStream; | |
7 public import qt.core.QSize; | |
8 public import qt.core.QPoint; | |
9 | |
10 | |
11 public struct QRect | |
12 { | |
13 public static QRect opCall() { | |
14 QRect rt; | |
15 rt.x1 = rt.y1 = 0; | |
16 rt.x2 = rt.y2 = -1; | |
17 return rt; | |
18 } | |
19 | |
20 public this(int aleft, int atop, int awidth, int aheight) | |
21 { | |
22 x1 = aleft; | |
23 y1 = atop; | |
24 x2 = (aleft + awidth - 1); | |
25 y2 = (atop + aheight - 1); | |
26 } | |
27 | |
28 public this(QPoint atopLeft, QPoint abottomRight) | |
29 { | |
30 x1 = atopLeft.x(); | |
31 y1 = atopLeft.y(); | |
32 x2 = abottomRight.x(); | |
33 y2 = abottomRight.y(); | |
34 } | |
35 | |
36 public this(ref QPoint atopLeft, ref QSize asize) | |
37 { | |
38 x1 = atopLeft.x(); | |
39 y1 = atopLeft.y(); | |
40 x2 = (x1+asize.width() - 1); | |
41 y2 = (y1+asize.height() - 1); | |
42 } | |
43 | |
44 bool isNull() // const | |
45 { return x2 == x1 - 1 && y2 == y1 - 1; } | |
46 | |
47 bool isEmpty() // const | |
48 { return x1 > x2 || y1 > y2; } | |
49 | |
50 bool isValid() // const | |
51 { return x1 <= x2 && y1 <= y2; } | |
52 | |
53 int left() // const | |
54 { return x1; } | |
55 | |
56 int top() // const | |
57 { return y1; } | |
58 | |
59 int right() // const | |
60 { return x2; } | |
61 | |
62 int bottom() // const | |
63 { return y2; } | |
64 | |
65 int x() // const | |
66 { return x1; } | |
67 | |
68 int y() // const | |
69 { return y1; } | |
70 | |
71 void left(int pos) | |
72 { x1 = pos; } | |
73 | |
74 void top(int pos) | |
75 { y1 = pos; } | |
76 | |
77 void right(int pos) | |
78 { x2 = pos; } | |
79 | |
80 void bottom(int pos) | |
81 { y2 = pos; } | |
82 | |
83 void setLeft(int pos) | |
84 { x1 = pos; } | |
85 | |
86 void setTop(int pos) | |
87 { y1 = pos; } | |
88 | |
89 void setRight(int pos) | |
90 { x2 = pos; } | |
91 | |
92 void setBottom(int pos) | |
93 { y2 = pos; } | |
94 | |
95 void setTopLeft(ref QPoint p) | |
96 { x1 = p.x(); y1 = p.y(); } | |
97 | |
98 void setBottomRight(ref QPoint p) | |
99 { x2 = p.x(); y2 = p.y(); } | |
100 | |
101 void setTopRight(ref QPoint p) | |
102 { x2 = p.x(); y1 = p.y(); } | |
103 | |
104 void setBottomLeft(ref QPoint p) | |
105 { x1 = p.x(); y2 = p.y(); } | |
106 | |
107 void setX(int ax) | |
108 { x1 = ax; } | |
109 | |
110 void setY(int ay) | |
111 { y1 = ay; } | |
112 | |
113 QPoint topLeft() // const | |
114 { return QPoint(x1, y1); } | |
115 | |
116 QPoint bottomRight() // const | |
117 { return QPoint(x2, y2); } | |
118 | |
119 QPoint topRight() // const | |
120 { return QPoint(x2, y1); } | |
121 | |
122 QPoint bottomLeft() // const | |
123 { return QPoint(x1, y2); } | |
124 | |
125 QPoint center() // const | |
126 { return QPoint((x1+x2)/2, (y1+y2)/2); } | |
127 | |
128 int width() // const | |
129 { return x2 - x1 + 1; } | |
130 | |
131 int height() // const | |
132 { return y2 - y1 + 1; } | |
133 | |
134 QSize size() // const | |
135 { return QSize(width(), height()); } | |
136 | |
137 void translate(int dx, int dy) | |
138 { | |
139 x1 += dx; | |
140 y1 += dy; | |
141 x2 += dx; | |
142 y2 += dy; | |
143 } | |
144 | |
145 void translate(ref QPoint p) | |
146 { | |
147 x1 += p.x(); | |
148 y1 += p.y(); | |
149 x2 += p.x(); | |
150 y2 += p.y(); | |
151 } | |
152 | |
153 QRect translated(int dx, int dy) // const | |
154 { return QRect(QPoint(x1 + dx, y1 + dy), QPoint(x2 + dx, y2 + dy)); } | |
155 | |
156 QRect translated(ref QPoint p) // const | |
157 { return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); } | |
158 | |
159 void moveTo(int ax, int ay) | |
160 { | |
161 x2 += ax - x1; | |
162 y2 += ay - y1; | |
163 x1 = ax; | |
164 y1 = ay; | |
165 } | |
166 | |
167 void moveTo(ref QPoint p) | |
168 { | |
169 x2 += p.x() - x1; | |
170 y2 += p.y() - y1; | |
171 x1 = p.x(); | |
172 y1 = p.y(); | |
173 } | |
174 | |
175 void moveLeft(int pos) | |
176 { x2 += (pos - x1); x1 = pos; } | |
177 | |
178 void moveTop(int pos) | |
179 { y2 += (pos - y1); y1 = pos; } | |
180 | |
181 void moveRight(int pos) | |
182 { | |
183 x1 += (pos - x2); | |
184 x2 = pos; | |
185 } | |
186 | |
187 void moveBottom(int pos) | |
188 { | |
189 y1 += (pos - y2); | |
190 y2 = pos; | |
191 } | |
192 | |
193 void moveTopLeft(ref QPoint p) | |
194 { | |
195 moveLeft(p.x()); | |
196 moveTop(p.y()); | |
197 } | |
198 | |
199 void moveBottomRight(ref QPoint p) | |
200 { | |
201 moveRight(p.x()); | |
202 moveBottom(p.y()); | |
203 } | |
204 | |
205 void moveTopRight(ref QPoint p) | |
206 { | |
207 moveRight(p.x()); | |
208 moveTop(p.y()); | |
209 } | |
210 | |
211 void moveBottomLeft(ref QPoint p) | |
212 { | |
213 moveLeft(p.x()); | |
214 moveBottom(p.y()); | |
215 } | |
216 | |
217 void getRect(int *ax, int *ay, int *aw, int *ah) // const | |
218 { | |
219 *ax = x1; | |
220 *ay = y1; | |
221 *aw = x2 - x1 + 1; | |
222 *ah = y2 - y1 + 1; | |
223 } | |
224 | |
225 void setRect(int ax, int ay, int aw, int ah) | |
226 { | |
227 x1 = ax; | |
228 y1 = ay; | |
229 x2 = (ax + aw - 1); | |
230 y2 = (ay + ah - 1); | |
231 } | |
232 | |
233 void getCoords(int *xp1, int *yp1, int *xp2, int *yp2) // const | |
234 { | |
235 *xp1 = x1; | |
236 *yp1 = y1; | |
237 *xp2 = x2; | |
238 *yp2 = y2; | |
239 } | |
240 | |
241 void setCoords(int xp1, int yp1, int xp2, int yp2) | |
242 { | |
243 x1 = xp1; | |
244 y1 = yp1; | |
245 x2 = xp2; | |
246 y2 = yp2; | |
247 } | |
248 | |
249 QRect adjusted(int xp1, int yp1, int xp2, int yp2) // const | |
250 { return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); } | |
251 | |
252 void adjust(int dx1, int dy1, int dx2, int dy2) | |
253 { | |
254 x1 += dx1; | |
255 y1 += dy1; | |
256 x2 += dx2; | |
257 y2 += dy2; | |
258 } | |
259 | |
260 void setWidth(int w) | |
261 { x2 = (x1 + w - 1); } | |
262 | |
263 void setHeight(int h) | |
264 { y2 = (y1 + h - 1); } | |
265 | |
266 void setSize(ref QSize s) | |
267 { | |
268 x2 = (s.width() + x1 - 1); | |
269 y2 = (s.height() + y1 - 1); | |
270 } | |
271 | |
272 bool contains(int ax, int ay, bool aproper) // const | |
273 { | |
274 return contains(QPoint(ax, ay), aproper); | |
275 } | |
276 | |
277 bool contains(int ax, int ay) // const | |
278 { | |
279 return contains(QPoint(ax, ay), false); | |
280 } | |
281 | |
282 QRect opOrAssign(ref QRect r) | |
283 { | |
284 this = this | r; | |
285 return this; | |
286 } | |
287 | |
288 QRect opAndAssign(ref QRect r) | |
289 { | |
290 this = this & r; | |
291 return this; | |
292 } | |
293 | |
294 QRect intersected(ref QRect other) // const | |
295 { | |
296 return this & other; | |
297 } | |
298 | |
299 QRect united(ref QRect r) // const | |
300 { | |
301 return this | r; | |
302 } | |
303 | |
304 bool opEquals(ref QRect r) | |
305 { | |
306 return x1==r.x1 && x2==r.x2 && y1==r.y1 && y2==r.y2; | |
307 } | |
308 | |
309 public final void writeTo(QDataStream arg__1) { | |
310 qtd_QRect_writeTo_QDataStream(&this, arg__1 is null ? null : arg__1.nativeId); | |
311 } | |
312 | |
313 public final void readFrom(QDataStream arg__1) { | |
314 qtd_QRect_readFrom_QDataStream(&this, arg__1 is null ? null : arg__1.nativeId); | |
315 } | |
316 | |
317 public final QRect opAnd(ref QRect r) { | |
318 return qtd_QRect_operator_and_QRect(&this, &r); | |
319 } | |
320 | |
321 public final QRect opOr(ref QRect r) { | |
322 return qtd_QRect_operator_or_QRect(&this, &r); | |
323 } | |
324 | |
325 public final bool contains(QPoint p, bool proper = false) { | |
326 return qtd_QRect_contains_QPoint_bool(&this, &p, proper); | |
327 } | |
328 | |
329 public final bool contains(QRect r, bool proper = false) { | |
330 return qtd_QRect_contains_QRect_bool(&this, &r, proper); | |
331 } | |
332 | |
333 public final bool intersects(QRect r) { | |
334 return qtd_QRect_intersects_QRect(&this, &r); | |
335 } | |
336 | |
337 public final QRect normalized() { | |
338 return qtd_QRect_normalized(&this); | |
339 } | |
340 | |
341 private: | |
342 version(OSX) | |
343 { | |
344 int y1; | |
345 int x1; | |
346 int y2; | |
347 int x2; | |
348 } | |
349 else | |
350 { | |
351 int x1; | |
352 int y1; | |
353 int x2; | |
354 int y2; | |
355 } | |
356 } | |
357 | |
358 | |
359 // C wrappers | |
360 private extern(C) bool qtd_QRect_contains_QPoint_bool(void* __this_nativeId, | |
361 void* p0, | |
362 bool proper1); | |
363 private extern(C) bool qtd_QRect_contains_QRect_bool(void* __this_nativeId, | |
364 void* r0, | |
365 bool proper1); | |
366 private extern(C) bool qtd_QRect_intersects_QRect(void* __this_nativeId, | |
367 void* r0); | |
368 private extern(C) QRect qtd_QRect_normalized(void* __this_nativeId); | |
369 private extern(C) void qtd_QRect_writeTo_QDataStream(void* __this_nativeId, | |
370 void* arg__1); | |
371 private extern(C) void qtd_QRect_readFrom_QDataStream(void* __this_nativeId, | |
372 void* arg__1); | |
373 private extern(C) QRect qtd_QRect_operator_and_QRect(void* __this_nativeId, | |
374 void* r0); | |
375 private extern(C) QRect qtd_QRect_operator_or_QRect(void* __this_nativeId, | |
376 void* r0); |