Mercurial > projects > qtd
comparison qt/d2/qt/core/QRectF.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.QRectF; | |
2 | |
3 public import qt.QGlobal; | |
4 public import qt.core.Qt; | |
5 public import qt.core.QPointF; | |
6 public import qt.core.QRect; | |
7 public import qt.core.QSizeF; | |
8 public import qt.core.QDataStream; | |
9 | |
10 public struct QRectF | |
11 { | |
12 | |
13 public static QRectF opCall() | |
14 { | |
15 QRectF rt; | |
16 rt.xp = rt.yp = 0.; | |
17 rt.w = rt.h = 0.; | |
18 return rt; | |
19 } | |
20 | |
21 public this(qreal aleft, qreal atop, qreal awidth, qreal aheight) | |
22 { | |
23 xp = aleft; | |
24 yp = atop; | |
25 w = awidth; | |
26 h = aheight; | |
27 } | |
28 | |
29 public this(QPointF atopLeft, QSizeF asize) | |
30 { | |
31 xp = atopLeft.x(); | |
32 yp = atopLeft.y(); | |
33 w = asize.width(); | |
34 h = asize.height(); | |
35 } | |
36 | |
37 public this(QPointF atopLeft, QPointF abottomRight) | |
38 { | |
39 xp = atopLeft.x(); | |
40 yp = atopLeft.y(); | |
41 w = abottomRight.x() - xp; | |
42 h = abottomRight.y() - yp; | |
43 } | |
44 | |
45 public this(QRect r) | |
46 { | |
47 xp = r.x(); | |
48 yp = r.y(); | |
49 w = r.width(); | |
50 h = r.height(); | |
51 } | |
52 | |
53 bool isNull() // conts | |
54 { return qIsNull(w) && qIsNull(h); } | |
55 | |
56 bool isEmpty() // conts | |
57 { return w <= 0. || h <= 0.; } | |
58 | |
59 bool isValid() // conts | |
60 { return w > 0. && h > 0.; } | |
61 | |
62 qreal x() // conts | |
63 { return xp; } | |
64 | |
65 qreal y() // conts | |
66 { return yp; } | |
67 | |
68 qreal left() // const | |
69 { return xp; } | |
70 | |
71 qreal top() // const | |
72 { return yp; } | |
73 | |
74 qreal right() // const | |
75 { return xp + w; } | |
76 | |
77 qreal bottom() // const | |
78 { return yp + h; } | |
79 | |
80 QPointF topLeft() // const | |
81 { return QPointF(xp, yp); } | |
82 | |
83 QPointF bottomRight() // const | |
84 { return QPointF(xp+w, yp+h); } | |
85 | |
86 QPointF topRight() // const | |
87 { return QPointF(xp+w, yp); } | |
88 | |
89 QPointF bottomLeft() // const | |
90 { return QPointF(xp, yp+h); } | |
91 | |
92 void setLeft(qreal pos) { qreal diff = pos - xp; xp += diff; w -= diff; } | |
93 | |
94 void setRight(qreal pos) { w = pos - xp; } | |
95 | |
96 void setTop(qreal pos) { qreal diff = pos - yp; yp += diff; h -= diff; } | |
97 | |
98 void setBottom(qreal pos) { h = pos - yp; } | |
99 | |
100 void setTopLeft(ref QPointF p) { setLeft(p.x()); setTop(p.y()); } | |
101 | |
102 void setTopRight(ref QPointF p) { setRight(p.x()); setTop(p.y()); } | |
103 | |
104 void setBottomLeft(ref QPointF p) { setLeft(p.x()); setBottom(p.y()); } | |
105 | |
106 void setBottomRight(ref QPointF p) { setRight(p.x()); setBottom(p.y()); } | |
107 | |
108 QPointF center() // conts | |
109 { return QPointF(xp + w/2, yp + h/2); } | |
110 | |
111 void moveLeft(qreal pos) { xp = pos; } | |
112 | |
113 void moveTop(qreal pos) { yp = pos; } | |
114 | |
115 void moveRight(qreal pos) { xp = pos - w; } | |
116 | |
117 void moveBottom(qreal pos) { yp = pos - h; } | |
118 | |
119 void moveTopLeft(ref QPointF p) { moveLeft(p.x()); moveTop(p.y()); } | |
120 | |
121 void moveTopRight(ref QPointF p) { moveRight(p.x()); moveTop(p.y()); } | |
122 | |
123 void moveBottomLeft(ref QPointF p) { moveLeft(p.x()); moveBottom(p.y()); } | |
124 | |
125 void moveBottomRight(ref QPointF p) { moveRight(p.x()); moveBottom(p.y()); } | |
126 | |
127 void moveCenter(ref QPointF p) { xp = p.x() - w/2; yp = p.y() - h/2; } | |
128 | |
129 qreal width() // conts | |
130 { return w; } | |
131 | |
132 qreal height() // conts | |
133 { return h; } | |
134 | |
135 QSizeF size() // conts | |
136 { return QSizeF(w, h); } | |
137 | |
138 void translate(qreal dx, qreal dy) | |
139 { | |
140 xp += dx; | |
141 yp += dy; | |
142 } | |
143 | |
144 void translate(ref QPointF p) | |
145 { | |
146 xp += p.x(); | |
147 yp += p.y(); | |
148 } | |
149 | |
150 void moveTo(qreal ax, qreal ay) | |
151 { | |
152 xp = ax; | |
153 yp = ay; | |
154 } | |
155 | |
156 void moveTo(ref QPointF p) | |
157 { | |
158 xp = p.x(); | |
159 yp = p.y(); | |
160 } | |
161 | |
162 QRectF translated(qreal dx, qreal dy) // conts | |
163 { return QRectF(xp + dx, yp + dy, w, h); } | |
164 | |
165 QRectF translated(ref QPointF p) // conts | |
166 { return QRectF(xp + p.x(), yp + p.y(), w, h); } | |
167 | |
168 void getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) // conts | |
169 { | |
170 *ax = this.xp; | |
171 *ay = this.yp; | |
172 *aaw = this.w; | |
173 *aah = this.h; | |
174 } | |
175 | |
176 void setRect(qreal ax, qreal ay, qreal aaw, qreal aah) | |
177 { | |
178 this.xp = ax; | |
179 this.yp = ay; | |
180 this.w = aaw; | |
181 this.h = aah; | |
182 } | |
183 | |
184 void getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) // conts | |
185 { | |
186 *xp1 = xp; | |
187 *yp1 = yp; | |
188 *xp2 = xp + w; | |
189 *yp2 = yp + h; | |
190 } | |
191 | |
192 void setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2) | |
193 { | |
194 xp = xp1; | |
195 yp = yp1; | |
196 w = xp2 - xp1; | |
197 h = yp2 - yp1; | |
198 } | |
199 | |
200 void adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2) | |
201 { xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; } | |
202 | |
203 QRectF adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) // conts | |
204 { return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); } | |
205 | |
206 void setWidth(qreal aw) // for convenience | |
207 { this.w = aw; } | |
208 | |
209 void setHeight(qreal ah) // for convenience | |
210 { this.h = ah; } | |
211 | |
212 void setSize(ref QSizeF s) // for convenience | |
213 { | |
214 w = s.width(); | |
215 h = s.height(); | |
216 } | |
217 | |
218 void width(qreal aw) | |
219 { this.w = aw; } | |
220 | |
221 void height(qreal ah) | |
222 { this.h = ah; } | |
223 | |
224 void size(ref QSizeF s) | |
225 { | |
226 w = s.width(); | |
227 h = s.height(); | |
228 } | |
229 | |
230 bool contains(qreal ax, qreal ay) // conts | |
231 { | |
232 return contains(QPointF(ax, ay)); | |
233 } | |
234 | |
235 QRectF opOrAssign(ref QRectF r) | |
236 { | |
237 this = this | r; | |
238 return this; | |
239 } | |
240 | |
241 QRectF opAndAssign(ref QRectF r) | |
242 { | |
243 this = this & r; | |
244 return this; | |
245 } | |
246 | |
247 QRectF intersected(ref QRectF r) // conts | |
248 { | |
249 return this & r; | |
250 } | |
251 | |
252 QRectF united(ref QRectF r) // conts | |
253 { | |
254 return this | r; | |
255 } | |
256 | |
257 bool opEquals(ref QRectF r) | |
258 { | |
259 return qFuzzyCompare(xp, r.xp) && qFuzzyCompare(yp, r.yp) | |
260 && qFuzzyCompare(w, r.w) && qFuzzyCompare(h, r.h); | |
261 } | |
262 | |
263 QRect toRect() // conts | |
264 { | |
265 return QRect(qRound(xp), qRound(yp), qRound(w), qRound(h)); | |
266 } | |
267 | |
268 public final bool contains(QPointF p) { | |
269 return qtd_QRectF_contains_QPointF(&this, &p); | |
270 } | |
271 | |
272 public final bool contains(QRectF r) { | |
273 return qtd_QRectF_contains_QRectF(&this, &r); | |
274 } | |
275 | |
276 public final bool intersects(QRectF r) { | |
277 return qtd_QRectF_intersects_QRectF(&this, &r); | |
278 } | |
279 | |
280 public final QRectF normalized() { | |
281 return qtd_QRectF_normalized(&this); | |
282 } | |
283 | |
284 public final QRectF opAnd(ref QRectF r) { | |
285 return qtd_QRectF_operator_and_QRectF(&this, &r); | |
286 } | |
287 | |
288 public final void writeTo(QDataStream arg__1) { | |
289 qtd_QRectF_writeTo_QDataStream(&this, arg__1 is null ? null : arg__1.nativeId); | |
290 } | |
291 | |
292 public final void readFrom(QDataStream arg__1) { | |
293 qtd_QRectF_readFrom_QDataStream(&this, arg__1 is null ? null : arg__1.nativeId); | |
294 } | |
295 | |
296 public final QRectF opOr(ref QRectF r) { | |
297 return qtd_QRectF_operator_or_QRectF(&this, &r); | |
298 } | |
299 | |
300 public final QRect toAlignedRect() // const | |
301 { | |
302 return qtd_QRectF_toAlignedRect(&this); | |
303 } | |
304 | |
305 private: | |
306 qreal xp; | |
307 qreal yp; | |
308 qreal w; | |
309 qreal h; | |
310 } | |
311 | |
312 | |
313 // C wrappers | |
314 private extern(C) bool qtd_QRectF_contains_QPointF(void* __this_nativeId, | |
315 void* p0); | |
316 private extern(C) bool qtd_QRectF_contains_QRectF(void* __this_nativeId, | |
317 void* r0); | |
318 private extern(C) bool qtd_QRectF_intersects_QRectF(void* __this_nativeId, | |
319 void* r0); | |
320 private extern(C) QRectF qtd_QRectF_normalized(void* __this_nativeId); | |
321 private extern(C) QRectF qtd_QRectF_operator_and_QRectF(void* __this_nativeId, | |
322 void* r0); | |
323 private extern(C) void qtd_QRectF_writeTo_QDataStream(void* __this_nativeId, | |
324 void* arg__1); | |
325 private extern(C) void qtd_QRectF_readFrom_QDataStream(void* __this_nativeId, | |
326 void* arg__1); | |
327 private extern(C) QRectF qtd_QRectF_operator_or_QRectF(void* __this_nativeId, | |
328 void* r0); | |
329 private extern(C) QRect qtd_QRectF_toAlignedRect(void* __this_nativeId); |