]>
Commit | Line | Data |
---|---|---|
23324ae1 FM |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: gdicmn.h | |
e54c96f1 | 3 | // Purpose: interface of wxRealPoint |
23324ae1 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
698d17c3 FM |
9 | |
10 | /** | |
11 | Bitmap flags. | |
12 | */ | |
13 | enum wxBitmapType | |
14 | { | |
15 | wxBITMAP_TYPE_INVALID, | |
16 | wxBITMAP_TYPE_BMP, | |
17 | wxBITMAP_TYPE_BMP_RESOURCE, | |
18 | wxBITMAP_TYPE_RESOURCE = wxBITMAP_TYPE_BMP_RESOURCE, | |
19 | wxBITMAP_TYPE_ICO, | |
20 | wxBITMAP_TYPE_ICO_RESOURCE, | |
21 | wxBITMAP_TYPE_CUR, | |
22 | wxBITMAP_TYPE_CUR_RESOURCE, | |
23 | wxBITMAP_TYPE_XBM, | |
24 | wxBITMAP_TYPE_XBM_DATA, | |
25 | wxBITMAP_TYPE_XPM, | |
26 | wxBITMAP_TYPE_XPM_DATA, | |
27 | wxBITMAP_TYPE_TIF, | |
28 | wxBITMAP_TYPE_TIF_RESOURCE, | |
29 | wxBITMAP_TYPE_GIF, | |
30 | wxBITMAP_TYPE_GIF_RESOURCE, | |
31 | wxBITMAP_TYPE_PNG, | |
32 | wxBITMAP_TYPE_PNG_RESOURCE, | |
33 | wxBITMAP_TYPE_JPEG, | |
34 | wxBITMAP_TYPE_JPEG_RESOURCE, | |
35 | wxBITMAP_TYPE_PNM, | |
36 | wxBITMAP_TYPE_PNM_RESOURCE, | |
37 | wxBITMAP_TYPE_PCX, | |
38 | wxBITMAP_TYPE_PCX_RESOURCE, | |
39 | wxBITMAP_TYPE_PICT, | |
40 | wxBITMAP_TYPE_PICT_RESOURCE, | |
41 | wxBITMAP_TYPE_ICON, | |
42 | wxBITMAP_TYPE_ICON_RESOURCE, | |
43 | wxBITMAP_TYPE_ANI, | |
44 | wxBITMAP_TYPE_IFF, | |
45 | wxBITMAP_TYPE_TGA, | |
46 | wxBITMAP_TYPE_MACCURSOR, | |
47 | wxBITMAP_TYPE_MACCURSOR_RESOURCE, | |
48 | wxBITMAP_TYPE_ANY = 50 | |
49 | }; | |
50 | ||
51 | /** | |
52 | Standard cursors. | |
53 | */ | |
54 | enum wxStockCursor | |
55 | { | |
56 | wxCURSOR_NONE, | |
57 | wxCURSOR_ARROW, | |
58 | wxCURSOR_RIGHT_ARROW, | |
59 | wxCURSOR_BULLSEYE, | |
60 | wxCURSOR_CHAR, | |
61 | wxCURSOR_CROSS, | |
62 | wxCURSOR_HAND, | |
63 | wxCURSOR_IBEAM, | |
64 | wxCURSOR_LEFT_BUTTON, | |
65 | wxCURSOR_MAGNIFIER, | |
66 | wxCURSOR_MIDDLE_BUTTON, | |
67 | wxCURSOR_NO_ENTRY, | |
68 | wxCURSOR_PAINT_BRUSH, | |
69 | wxCURSOR_PENCIL, | |
70 | wxCURSOR_POINT_LEFT, | |
71 | wxCURSOR_POINT_RIGHT, | |
72 | wxCURSOR_QUESTION_ARROW, | |
73 | wxCURSOR_RIGHT_BUTTON, | |
74 | wxCURSOR_SIZENESW, | |
75 | wxCURSOR_SIZENS, | |
76 | wxCURSOR_SIZENWSE, | |
77 | wxCURSOR_SIZEWE, | |
78 | wxCURSOR_SIZING, | |
79 | wxCURSOR_SPRAYCAN, | |
80 | wxCURSOR_WAIT, | |
81 | wxCURSOR_WATCH, | |
82 | wxCURSOR_BLANK, | |
83 | wxCURSOR_DEFAULT, //!< standard X11 cursor | |
84 | wxCURSOR_COPY_ARROW , //!< MacOS Theme Plus arrow | |
85 | // Not yet implemented for Windows | |
86 | wxCURSOR_CROSS_REVERSE, | |
87 | wxCURSOR_DOUBLE_ARROW, | |
88 | wxCURSOR_BASED_ARROW_UP, | |
89 | wxCURSOR_BASED_ARROW_DOWN, | |
90 | wxCURSOR_ARROWWAIT, | |
91 | wxCURSOR_MAX | |
92 | }; | |
93 | ||
94 | ||
95 | ||
23324ae1 FM |
96 | /** |
97 | @class wxRealPoint | |
98 | @wxheader{gdicmn.h} | |
7c913512 | 99 | |
23324ae1 FM |
100 | A @b wxRealPoint is a useful data structure for graphics operations. |
101 | It contains floating point @e x and @e y members. | |
102 | See also wxPoint for an integer version. | |
7c913512 | 103 | |
23324ae1 FM |
104 | @library{wxcore} |
105 | @category{data} | |
7c913512 | 106 | |
e54c96f1 | 107 | @see wxPoint |
23324ae1 | 108 | */ |
7c913512 | 109 | class wxRealPoint |
23324ae1 FM |
110 | { |
111 | public: | |
112 | //@{ | |
113 | /** | |
114 | Create a point. | |
23324ae1 | 115 | double x |
23324ae1 | 116 | double y |
23324ae1 FM |
117 | Members of the @b wxRealPoint object. |
118 | */ | |
119 | wxRealPoint(); | |
7c913512 | 120 | wxRealPoint(double x, double y); |
23324ae1 FM |
121 | //@} |
122 | }; | |
123 | ||
124 | ||
e54c96f1 | 125 | |
23324ae1 FM |
126 | /** |
127 | @class wxRect | |
128 | @wxheader{gdicmn.h} | |
7c913512 | 129 | |
23324ae1 | 130 | A class for manipulating rectangles. |
7c913512 | 131 | |
23324ae1 FM |
132 | @library{wxcore} |
133 | @category{data} | |
7c913512 | 134 | |
e54c96f1 | 135 | @see wxPoint, wxSize |
23324ae1 | 136 | */ |
7c913512 | 137 | class wxRect |
23324ae1 FM |
138 | { |
139 | public: | |
140 | //@{ | |
141 | /** | |
142 | Creates a wxRect object from size values at the origin. | |
143 | */ | |
144 | wxRect(); | |
7c913512 FM |
145 | wxRect(int x, int y, int width, int height); |
146 | wxRect(const wxPoint& topLeft, const wxPoint& bottomRight); | |
147 | wxRect(const wxPoint& pos, const wxSize& size); | |
148 | wxRect(const wxSize& size); | |
23324ae1 FM |
149 | //@} |
150 | ||
151 | //@{ | |
152 | /** | |
153 | Returns the rectangle having the same size as this one but centered relatively | |
154 | to the given rectangle @e r. By default, rectangle is centred in both | |
4cc4bfaf | 155 | directions but if @a dir includes only @c wxVERTICAL or only |
23324ae1 FM |
156 | @c wxHORIZONTAL flag, then it is only centered in this direction while |
157 | the other component of its position remains unchanged. | |
158 | */ | |
328f5751 FM |
159 | wxRect CentreIn(const wxRect& r, int dir = wxBOTH) const; |
160 | const wxRect CenterIn(const wxRect& r, int dir = wxBOTH) const; | |
23324ae1 FM |
161 | //@} |
162 | ||
163 | //@{ | |
164 | /** | |
165 | Returns @true if the given rectangle is completely inside this rectangle | |
166 | (or touches its boundary) and @false otherwise. | |
167 | */ | |
328f5751 FM |
168 | bool Contains(int x, int y) const; |
169 | const bool Contains(const wxPoint& pt) const; | |
170 | const bool Contains(const wxRect& rect) const; | |
23324ae1 FM |
171 | //@} |
172 | ||
173 | //@{ | |
174 | /** | |
175 | Decrease the rectangle size. | |
23324ae1 FM |
176 | This method is the opposite from Inflate(): |
177 | Deflate(a, b) is equivalent to Inflate(-a, -b). | |
178 | Please refer to Inflate() for full description. | |
179 | ||
4cc4bfaf | 180 | @see Inflate() |
23324ae1 | 181 | */ |
328f5751 FM |
182 | void Deflate(wxCoord dx, wxCoord dy) const; |
183 | void Deflate(const wxSize& diff) const; | |
184 | void Deflate(wxCoord diff) const; | |
185 | wxRect Deflate(wxCoord dx, wxCoord dy) const; | |
23324ae1 FM |
186 | //@} |
187 | ||
188 | /** | |
189 | Gets the bottom point of the rectangle. | |
190 | */ | |
328f5751 | 191 | int GetBottom() const; |
23324ae1 FM |
192 | |
193 | /** | |
194 | Gets the position of the bottom left corner. | |
195 | */ | |
328f5751 | 196 | wxPoint GetBottomLeft() const; |
23324ae1 FM |
197 | |
198 | /** | |
199 | Gets the position of the bottom right corner. | |
200 | */ | |
328f5751 | 201 | wxPoint GetBottomRight() const; |
23324ae1 FM |
202 | |
203 | /** | |
204 | Gets the height member. | |
205 | */ | |
328f5751 | 206 | int GetHeight() const; |
23324ae1 FM |
207 | |
208 | /** | |
209 | Gets the left point of the rectangle (the same as wxRect::GetX). | |
210 | */ | |
328f5751 | 211 | int GetLeft() const; |
23324ae1 FM |
212 | |
213 | /** | |
214 | Gets the position. | |
215 | */ | |
328f5751 | 216 | wxPoint GetPosition() const; |
23324ae1 FM |
217 | |
218 | /** | |
219 | Gets the right point of the rectangle. | |
220 | */ | |
328f5751 | 221 | int GetRight() const; |
23324ae1 FM |
222 | |
223 | /** | |
224 | Gets the size. | |
225 | ||
4cc4bfaf | 226 | @see SetSize() |
23324ae1 | 227 | */ |
328f5751 | 228 | wxSize GetSize() const; |
23324ae1 FM |
229 | |
230 | /** | |
231 | Gets the top point of the rectangle (the same as wxRect::GetY). | |
232 | */ | |
328f5751 | 233 | int GetTop() const; |
23324ae1 FM |
234 | |
235 | /** | |
7c913512 | 236 | Gets the position of the top left corner of the rectangle, same as |
23324ae1 FM |
237 | GetPosition(). |
238 | */ | |
328f5751 | 239 | wxPoint GetTopLeft() const; |
23324ae1 FM |
240 | |
241 | /** | |
242 | Gets the position of the top right corner. | |
243 | */ | |
328f5751 | 244 | wxPoint GetTopRight() const; |
23324ae1 FM |
245 | |
246 | /** | |
247 | Gets the width member. | |
248 | */ | |
328f5751 | 249 | int GetWidth() const; |
23324ae1 FM |
250 | |
251 | /** | |
252 | Gets the x member. | |
253 | */ | |
328f5751 | 254 | int GetX() const; |
23324ae1 FM |
255 | |
256 | /** | |
257 | Gets the y member. | |
258 | */ | |
328f5751 | 259 | int GetY() const; |
23324ae1 FM |
260 | |
261 | //@{ | |
262 | /** | |
263 | Increases the size of the rectangle. | |
4cc4bfaf | 264 | The second form uses the same @a diff for both @a dx and @e dy. |
23324ae1 FM |
265 | The first two versions modify the rectangle in place, the last one returns a |
266 | new rectangle leaving this one unchanged. | |
23324ae1 FM |
267 | The left border is moved farther left and the right border is moved farther |
268 | right by @e dx. The upper border is moved farther up and the bottom border | |
269 | is moved farther down by @e dy. (Note the the width and height of the | |
4cc4bfaf FM |
270 | rectangle thus change by 2*@a dx and 2*@e dy, respectively.) If one or |
271 | both of @a dx and @a dy are negative, the opposite happens: the rectangle | |
23324ae1 | 272 | size decreases in the respective direction. |
23324ae1 FM |
273 | Inflating and deflating behaves "naturally''. Defined more precisely, that |
274 | means: | |
4cc4bfaf | 275 | "Real'' inflates (that is, @a dx and/or @a dy = 0) are not |
23324ae1 FM |
276 | constrained. Thus inflating a rectangle can cause its upper left corner |
277 | to move into the negative numbers. (the versions prior to 2.5.4 forced | |
278 | the top left coordinate to not fall below (0, 0), which implied a | |
279 | forced move of the rectangle.) | |
23324ae1 FM |
280 | Deflates are clamped to not reduce the width or height of the |
281 | rectangle below zero. In such cases, the top-left corner is nonetheless | |
282 | handled properly. For example, a rectangle at (10, 10) with size (20, | |
283 | 40) that is inflated by (-15, -15) will become located at (20, 25) at | |
284 | size (0, 10). Finally, observe that the width and height are treated | |
285 | independently. In the above example, the width is reduced by 20, | |
286 | whereas the height is reduced by the full 30 (rather than also stopping | |
287 | at 20, when the width reached zero). | |
288 | ||
4cc4bfaf | 289 | @see Deflate() |
23324ae1 | 290 | */ |
328f5751 FM |
291 | void Inflate(wxCoord dx, wxCoord dy) const; |
292 | void Inflate(const wxSize& diff) const; | |
293 | void Inflate(wxCoord diff) const; | |
294 | wxRect Inflate(wxCoord dx, wxCoord dy) const; | |
23324ae1 FM |
295 | //@} |
296 | ||
297 | //@{ | |
298 | /** | |
299 | Modifies the rectangle to contain the overlapping box of this rectangle and the | |
300 | one passed in as parameter. The const version returns the new rectangle, the | |
301 | other one modifies this rectangle in place. | |
302 | */ | |
303 | wxRect Intersect(const wxRect& rect); | |
328f5751 | 304 | const wxRect& Intersect(const wxRect& rect); |
23324ae1 FM |
305 | //@} |
306 | ||
307 | /** | |
308 | Returns @true if this rectangle has a non-empty intersection with the | |
4cc4bfaf | 309 | rectangle @a rect and @false otherwise. |
23324ae1 | 310 | */ |
328f5751 | 311 | bool Intersects(const wxRect& rect) const; |
23324ae1 FM |
312 | |
313 | /** | |
7c913512 | 314 | Returns @true if this rectangle has a width or height less than or equal to |
23324ae1 FM |
315 | 0 and @false otherwise. |
316 | */ | |
328f5751 | 317 | bool IsEmpty() const; |
23324ae1 FM |
318 | |
319 | //@{ | |
320 | /** | |
4cc4bfaf FM |
321 | Moves the rectangle by the specified offset. If @a dx is positive, the |
322 | rectangle is moved to the right, if @a dy is positive, it is moved to the | |
23324ae1 FM |
323 | bottom, otherwise it is moved to the left or top respectively. |
324 | */ | |
325 | void Offset(wxCoord dx, wxCoord dy); | |
7c913512 | 326 | void Offset(const wxPoint& pt); |
23324ae1 FM |
327 | //@} |
328 | ||
329 | /** | |
330 | Sets the height. | |
331 | */ | |
332 | void SetHeight(int height); | |
333 | ||
334 | /** | |
335 | Sets the size. | |
336 | ||
4cc4bfaf | 337 | @see GetSize() |
23324ae1 FM |
338 | */ |
339 | void SetSize(const wxSize& s); | |
340 | ||
341 | /** | |
342 | Sets the width. | |
343 | */ | |
344 | void SetWidth(int width); | |
345 | ||
346 | /** | |
347 | Sets the x position. | |
348 | */ | |
4cc4bfaf | 349 | void SetX(int x); |
23324ae1 FM |
350 | |
351 | /** | |
352 | Sets the y position. | |
353 | */ | |
4cc4bfaf | 354 | void SetY(int y); |
23324ae1 FM |
355 | |
356 | //@{ | |
357 | /** | |
358 | Modifies the rectangle to contain the bounding box of this rectangle and the | |
359 | one passed in as parameter. The const version returns the new rectangle, the | |
360 | other one modifies this rectangle in place. | |
361 | */ | |
362 | wxRect Union(const wxRect& rect); | |
328f5751 | 363 | const wxRect& Union(const wxRect& rect); |
23324ae1 FM |
364 | //@} |
365 | ||
366 | /** | |
367 | int height | |
23324ae1 FM |
368 | Height member. |
369 | */ | |
370 | ||
371 | ||
372 | //@{ | |
373 | /** | |
374 | Returns the intersection of two rectangles (which may be empty). | |
375 | */ | |
376 | bool operator !=(const wxRect& r1, const wxRect& r2); | |
7c913512 FM |
377 | wxRect operator +(const wxRect& r1, const wxRect& r2); |
378 | wxRect operator +=(const wxRect& r); | |
379 | See also wxRect operator *(const wxRect& r1, | |
380 | const wxRect& r2); | |
381 | wxRect operator *=(const wxRect& r); | |
23324ae1 FM |
382 | //@} |
383 | ||
384 | /** | |
385 | Assignment operator. | |
386 | */ | |
387 | void operator =(const wxRect& rect); | |
388 | ||
389 | /** | |
390 | Equality operator. | |
391 | */ | |
392 | bool operator ==(const wxRect& r1, const wxRect& r2); | |
393 | ||
394 | /** | |
395 | int width | |
23324ae1 FM |
396 | Width member. |
397 | */ | |
398 | ||
399 | ||
400 | /** | |
401 | int x | |
23324ae1 FM |
402 | x coordinate of the top-level corner of the rectangle. |
403 | */ | |
404 | ||
405 | ||
406 | /** | |
407 | int y | |
23324ae1 FM |
408 | y coordinate of the top-level corner of the rectangle. |
409 | */ | |
410 | }; | |
411 | ||
412 | ||
e54c96f1 | 413 | |
23324ae1 FM |
414 | /** |
415 | @class wxBrushList | |
416 | @wxheader{gdicmn.h} | |
7c913512 | 417 | |
23324ae1 | 418 | A brush list is a list containing all brushes which have been created. |
7c913512 | 419 | |
23324ae1 FM |
420 | @library{wxcore} |
421 | @category{gdi} | |
7c913512 | 422 | |
e54c96f1 | 423 | @see wxBrush |
23324ae1 FM |
424 | */ |
425 | class wxBrushList : public wxList | |
426 | { | |
427 | public: | |
428 | /** | |
429 | Constructor. The application should not construct its own brush list: | |
430 | use the object pointer @b wxTheBrushList. | |
431 | */ | |
432 | wxBrushList(); | |
433 | ||
434 | /** | |
435 | Finds a brush with the specified attributes and returns it, else creates a new | |
436 | brush, adds it | |
437 | to the brush list, and returns it. | |
438 | ||
7c913512 | 439 | @param colour |
4cc4bfaf | 440 | Colour object. |
7c913512 | 441 | @param style |
4cc4bfaf | 442 | Brush style. See wxBrush::SetStyle for a list of styles. |
23324ae1 | 443 | */ |
4cc4bfaf FM |
444 | wxBrush* FindOrCreateBrush(const wxColour& colour, |
445 | int style = wxSOLID); | |
23324ae1 FM |
446 | }; |
447 | ||
448 | ||
e54c96f1 | 449 | |
23324ae1 FM |
450 | /** |
451 | @class wxPoint | |
452 | @wxheader{gdicmn.h} | |
7c913512 | 453 | |
23324ae1 FM |
454 | A @b wxPoint is a useful data structure for graphics operations. |
455 | It simply contains integer @e x and @e y members. | |
7c913512 | 456 | |
23324ae1 | 457 | See also wxRealPoint for a floating point version. |
7c913512 | 458 | |
23324ae1 FM |
459 | @library{wxcore} |
460 | @category{data} | |
7c913512 | 461 | |
e54c96f1 | 462 | @see wxRealPoint |
23324ae1 | 463 | */ |
7c913512 | 464 | class wxPoint |
23324ae1 FM |
465 | { |
466 | public: | |
467 | //@{ | |
468 | /** | |
469 | Create a point. | |
470 | */ | |
471 | wxPoint(); | |
7c913512 | 472 | wxPoint(int x, int y); |
23324ae1 FM |
473 | //@} |
474 | ||
475 | //@{ | |
476 | /** | |
477 | Operators for sum and subtraction between a wxPoint object and a | |
478 | wxSize object. | |
479 | */ | |
480 | void operator =(const wxPoint& pt); | |
7c913512 FM |
481 | bool operator ==(const wxPoint& p1, const wxPoint& p2); |
482 | bool operator !=(const wxPoint& p1, const wxPoint& p2); | |
483 | wxPoint operator +(const wxPoint& p1, const wxPoint& p2); | |
484 | wxPoint operator -(const wxPoint& p1, const wxPoint& p2); | |
485 | wxPoint operator +=(const wxPoint& pt); | |
486 | wxPoint operator -=(const wxPoint& pt); | |
487 | wxPoint operator +(const wxPoint& pt, const wxSize& sz); | |
488 | wxPoint operator -(const wxPoint& pt, const wxSize& sz); | |
489 | wxPoint operator +(const wxSize& sz, const wxPoint& pt); | |
490 | wxPoint operator -(const wxSize& sz, const wxPoint& pt); | |
491 | wxPoint operator +=(const wxSize& sz); | |
492 | wxPoint operator -=(const wxSize& sz); | |
23324ae1 FM |
493 | //@} |
494 | ||
495 | /** | |
496 | int x | |
23324ae1 FM |
497 | x member. |
498 | */ | |
499 | ||
500 | ||
501 | /** | |
502 | int y | |
23324ae1 FM |
503 | y member. |
504 | */ | |
505 | }; | |
506 | ||
507 | ||
e54c96f1 | 508 | |
23324ae1 FM |
509 | /** |
510 | @class wxColourDatabase | |
511 | @wxheader{gdicmn.h} | |
7c913512 | 512 | |
23324ae1 FM |
513 | wxWidgets maintains a database of standard RGB colours for a predefined |
514 | set of named colours (such as "BLACK'', "LIGHT GREY''). The | |
515 | application may add to this set if desired by using | |
516 | wxColourDatabase::AddColour and may use it to look up | |
517 | colours by names using wxColourDatabase::Find or find the names | |
518 | for the standard colour suing wxColourDatabase::FindName. | |
7c913512 | 519 | |
23324ae1 FM |
520 | There is one predefined instance of this class called |
521 | @b wxTheColourDatabase. | |
7c913512 | 522 | |
23324ae1 FM |
523 | @library{wxcore} |
524 | @category{FIXME} | |
7c913512 | 525 | |
e54c96f1 | 526 | @see wxColour |
23324ae1 | 527 | */ |
7c913512 | 528 | class wxColourDatabase |
23324ae1 FM |
529 | { |
530 | public: | |
531 | /** | |
532 | Constructs the colour database. It will be initialized at the first use. | |
533 | */ | |
534 | wxColourDatabase(); | |
535 | ||
536 | //@{ | |
537 | /** | |
538 | Adds a colour to the database. If a colour with the same name already exists, | |
539 | it is replaced. | |
23324ae1 FM |
540 | Please note that the overload taking a pointer is deprecated and will be |
541 | removed in the next wxWidgets version, please don't use it. | |
542 | */ | |
543 | void AddColour(const wxString& colourName, | |
544 | const wxColour& colour); | |
7c913512 | 545 | void AddColour(const wxString& colourName, wxColour* colour); |
23324ae1 FM |
546 | //@} |
547 | ||
548 | /** | |
549 | Finds a colour given the name. Returns an invalid colour object (that is, such | |
550 | that its @ref wxColour::isok Ok method returns @false) if the colour wasn't | |
551 | found in the database. | |
552 | */ | |
553 | wxColour Find(const wxString& colourName); | |
554 | ||
555 | /** | |
556 | Finds a colour name given the colour. Returns an empty string if the colour is | |
557 | not found in the database. | |
558 | */ | |
328f5751 | 559 | wxString FindName(const wxColour& colour) const; |
23324ae1 FM |
560 | }; |
561 | ||
562 | ||
e54c96f1 | 563 | |
23324ae1 FM |
564 | /** |
565 | @class wxFontList | |
566 | @wxheader{gdicmn.h} | |
7c913512 | 567 | |
23324ae1 FM |
568 | A font list is a list containing all fonts which have been created. There |
569 | is only one instance of this class: @b wxTheFontList. Use this object to search | |
570 | for a previously created font of the desired type and create it if not already | |
571 | found. | |
572 | In some windowing systems, the font may be a scarce resource, so it is best to | |
573 | reuse old resources if possible. When an application finishes, all fonts will | |
574 | be | |
575 | deleted and their resources freed, eliminating the possibility of 'memory | |
576 | leaks'. | |
7c913512 | 577 | |
23324ae1 FM |
578 | @library{wxcore} |
579 | @category{gdi} | |
7c913512 | 580 | |
e54c96f1 | 581 | @see wxFont |
23324ae1 FM |
582 | */ |
583 | class wxFontList : public wxList | |
584 | { | |
585 | public: | |
586 | /** | |
587 | Constructor. The application should not construct its own font list: | |
588 | use the object pointer @b wxTheFontList. | |
589 | */ | |
590 | wxFontList(); | |
591 | ||
592 | /** | |
593 | Finds a font of the given specification, or creates one and adds it to the | |
594 | list. See the @ref wxFont::ctor "wxFont constructor" for | |
595 | details of the arguments. | |
596 | */ | |
4cc4bfaf FM |
597 | wxFont* FindOrCreateFont(int point_size, int family, int style, |
598 | int weight, | |
599 | bool underline = false, | |
600 | const wxString& facename = NULL, | |
601 | wxFontEncoding encoding = wxFONTENCODING_DEFAULT); | |
23324ae1 FM |
602 | }; |
603 | ||
604 | ||
e54c96f1 | 605 | |
23324ae1 FM |
606 | /** |
607 | @class wxSize | |
608 | @wxheader{gdicmn.h} | |
7c913512 | 609 | |
23324ae1 FM |
610 | A @b wxSize is a useful data structure for graphics operations. |
611 | It simply contains integer @e width and @e height members. | |
7c913512 | 612 | |
23324ae1 FM |
613 | wxSize is used throughout wxWidgets as well as wxPoint which, although almost |
614 | equivalent to wxSize, has a different meaning: wxPoint represents a position | |
615 | while wxSize - the size. | |
7c913512 | 616 | |
23324ae1 FM |
617 | @b wxPython note: wxPython defines aliases for the @c x and @c y members |
618 | named @c width and @c height since it makes much more sense for | |
619 | sizes. | |
7c913512 FM |
620 | |
621 | ||
23324ae1 FM |
622 | @library{wxcore} |
623 | @category{data} | |
7c913512 | 624 | |
e54c96f1 | 625 | @see wxPoint, wxRealPoint |
23324ae1 | 626 | */ |
7c913512 | 627 | class wxSize |
23324ae1 FM |
628 | { |
629 | public: | |
630 | //@{ | |
631 | /** | |
632 | Creates a size object. | |
633 | */ | |
634 | wxSize(); | |
7c913512 | 635 | wxSize(int width, int height); |
23324ae1 FM |
636 | //@} |
637 | ||
638 | //@{ | |
639 | /** | |
640 | Decreases the size in x- and y- directions | |
23324ae1 | 641 | By @e size.x and @e size.y for the first overload |
4cc4bfaf FM |
642 | By @a dx and @a dy for the second one |
643 | By @a d and @a d for the third one | |
23324ae1 | 644 | |
4cc4bfaf | 645 | @see IncBy() |
23324ae1 FM |
646 | */ |
647 | void DecBy(const wxSize& size); | |
7c913512 FM |
648 | void DecBy(int dx, int dy); |
649 | void DecBy(int d); | |
23324ae1 FM |
650 | //@} |
651 | ||
652 | /** | |
653 | Decrements this object so that both of its dimensions are not greater than the | |
654 | corresponding dimensions of the @e size. | |
655 | ||
4cc4bfaf | 656 | @see IncTo() |
23324ae1 FM |
657 | */ |
658 | void DecTo(const wxSize& size); | |
659 | ||
660 | /** | |
661 | Gets the height member. | |
662 | */ | |
328f5751 | 663 | int GetHeight() const; |
23324ae1 FM |
664 | |
665 | /** | |
666 | Gets the width member. | |
667 | */ | |
328f5751 | 668 | int GetWidth() const; |
23324ae1 FM |
669 | |
670 | //@{ | |
671 | /** | |
672 | Increases the size in x- and y- directions | |
23324ae1 | 673 | By @e size.x and @e size.y for the first overload |
4cc4bfaf FM |
674 | By @a dx and @a dy for the second one |
675 | By @a d and @a d for the third one | |
23324ae1 | 676 | |
4cc4bfaf | 677 | @see DecBy() |
23324ae1 FM |
678 | */ |
679 | void IncBy(const wxSize& size); | |
7c913512 FM |
680 | void IncBy(int dx, int dy); |
681 | void IncBy(int d); | |
23324ae1 FM |
682 | //@} |
683 | ||
684 | /** | |
685 | Increments this object so that both of its dimensions are not less than the | |
686 | corresponding dimensions of the @e size. | |
687 | ||
4cc4bfaf | 688 | @see DecTo() |
23324ae1 FM |
689 | */ |
690 | void IncTo(const wxSize& size); | |
691 | ||
692 | /** | |
693 | Returns @true if neither of the size object components is equal to -1, which | |
694 | is used as default for the size values in wxWidgets (hence the predefined | |
695 | @c wxDefaultSize has both of its components equal to -1). | |
23324ae1 FM |
696 | This method is typically used before calling |
697 | SetDefaults(). | |
698 | */ | |
328f5751 | 699 | bool IsFullySpecified() const; |
23324ae1 FM |
700 | |
701 | //@{ | |
702 | /** | |
703 | Operators for division and multiplication between a wxSize object and an | |
704 | integer. | |
705 | */ | |
706 | void operator =(const wxSize& sz); | |
7c913512 FM |
707 | bool operator ==(const wxSize& s1, const wxSize& s2); |
708 | bool operator !=(const wxSize& s1, const wxSize& s2); | |
709 | wxSize operator +(const wxSize& s1, const wxSize& s2); | |
710 | wxSize operator -(const wxSize& s1, const wxSize& s2); | |
711 | wxSize operator +=(const wxSize& sz); | |
712 | wxSize operator -=(const wxSize& sz); | |
713 | wxSize operator /(const wxSize& sz, int factor); | |
714 | wxSize operator *(const wxSize& sz, int factor); | |
715 | wxSize operator *(int factor, const wxSize& sz); | |
716 | wxSize operator /=(int factor); | |
717 | wxSize operator *=(int factor); | |
23324ae1 FM |
718 | //@} |
719 | ||
720 | /** | |
721 | Scales the dimensions of this object by the given factors. | |
722 | If you want to scale both dimensions by the same factor you can also use | |
723 | the @ref operators() "operator *=" | |
23324ae1 FM |
724 | Returns a reference to this object (so that you can concatenate other |
725 | operations in the same line). | |
726 | */ | |
727 | wxSize Scale(float xscale, float yscale); | |
728 | ||
729 | /** | |
730 | Sets the width and height members. | |
731 | */ | |
4cc4bfaf | 732 | void Set(int width, int height); |
23324ae1 FM |
733 | |
734 | /** | |
735 | Combine this size object with another one replacing the default (i.e. equal | |
736 | to -1) components of this object with those of the other. It is typically | |
737 | used like this: | |
738 | ||
4cc4bfaf | 739 | @see IsFullySpecified() |
23324ae1 FM |
740 | */ |
741 | void SetDefaults(const wxSize& sizeDefault); | |
742 | ||
743 | /** | |
744 | Sets the height. | |
745 | */ | |
746 | void SetHeight(int height); | |
747 | ||
748 | /** | |
749 | Sets the width. | |
750 | */ | |
751 | void SetWidth(int width); | |
752 | }; | |
753 | ||
754 | ||
e54c96f1 | 755 | |
23324ae1 FM |
756 | /** |
757 | @class wxPenList | |
758 | @wxheader{gdicmn.h} | |
7c913512 | 759 | |
23324ae1 FM |
760 | There is only one instance of this class: @b wxThePenList. Use |
761 | this object to search for a previously created pen of the desired | |
762 | type and create it if not already found. In some windowing systems, | |
763 | the pen may be a scarce resource, so it can pay to reuse old | |
764 | resources if possible. When an application finishes, all pens will | |
765 | be deleted and their resources freed, eliminating the possibility of | |
766 | 'memory leaks'. However, it is best not to rely on this automatic | |
767 | cleanup because it can lead to double deletion in some circumstances. | |
7c913512 | 768 | |
23324ae1 FM |
769 | There are two mechanisms in recent versions of wxWidgets which make the |
770 | pen list less useful than it once was. Under Windows, scarce resources | |
771 | are cleaned up internally if they are not being used. Also, a referencing | |
772 | counting mechanism applied to all GDI objects means that some sharing | |
773 | of underlying resources is possible. You don't have to keep track of pointers, | |
774 | working out when it is safe delete a pen, because the referencing counting does | |
775 | it for you. For example, you can set a pen in a device context, and then | |
776 | immediately delete the pen you passed, because the pen is 'copied'. | |
7c913512 | 777 | |
23324ae1 FM |
778 | So you may find it easier to ignore the pen list, and instead create |
779 | and copy pens as you see fit. If your Windows resource meter suggests | |
780 | your application is using too many resources, you can resort to using | |
781 | GDI lists to share objects explicitly. | |
7c913512 | 782 | |
23324ae1 FM |
783 | The only compelling use for the pen list is for wxWidgets to keep |
784 | track of pens in order to clean them up on exit. It is also kept for | |
785 | backward compatibility with earlier versions of wxWidgets. | |
7c913512 | 786 | |
23324ae1 FM |
787 | @library{wxcore} |
788 | @category{gdi} | |
7c913512 | 789 | |
e54c96f1 | 790 | @see wxPen |
23324ae1 | 791 | */ |
7c913512 | 792 | class wxPenList |
23324ae1 FM |
793 | { |
794 | public: | |
795 | /** | |
796 | Constructor. The application should not construct its own pen list: | |
797 | use the object pointer @b wxThePenList. | |
798 | */ | |
799 | wxPenList(); | |
800 | ||
801 | //@{ | |
802 | /** | |
803 | Finds a pen with the specified attributes and returns it, else creates a new | |
804 | pen, adds it | |
805 | to the pen list, and returns it. | |
806 | ||
7c913512 | 807 | @param colour |
4cc4bfaf | 808 | Colour object. |
7c913512 | 809 | @param colourName |
4cc4bfaf | 810 | Colour name, which should be in the colour database. |
7c913512 | 811 | @param width |
4cc4bfaf | 812 | Width of pen. |
7c913512 | 813 | @param style |
4cc4bfaf | 814 | Pen style. See wxPen::wxPen for a list of styles. |
23324ae1 FM |
815 | */ |
816 | wxPen* FindOrCreatePen(const wxColour& colour, int width, | |
817 | int style); | |
7c913512 FM |
818 | wxPen* FindOrCreatePen(const wxString& colourName, int width, |
819 | int style); | |
23324ae1 FM |
820 | //@} |
821 | }; | |
822 | ||
823 | ||
e54c96f1 | 824 | |
23324ae1 FM |
825 | // ============================================================================ |
826 | // Global functions/macros | |
827 | // ============================================================================ | |
828 | ||
3db7c3b1 | 829 | /** @ingroup group_funcmacro_gdi */ |
23324ae1 | 830 | //@{ |
c83e60aa | 831 | |
23324ae1 FM |
832 | /** |
833 | Returns the dimensions of the work area on the display. On Windows | |
834 | this means the area not covered by the taskbar, etc. Other platforms | |
835 | are currently defaulting to the whole display until a way is found to | |
836 | provide this info for all window managers, etc. | |
837 | */ | |
4cc4bfaf FM |
838 | void wxClientDisplayRect(int* x, int* y, int* width, |
839 | int* height); | |
7c913512 | 840 | wxRect wxGetClientDisplayRect(); |
23324ae1 | 841 | |
23324ae1 FM |
842 | /** |
843 | Returns the display size in pixels. | |
844 | */ | |
4cc4bfaf | 845 | void wxDisplaySize(int* width, int* height); |
7c913512 | 846 | wxSize wxGetDisplaySize(); |
23324ae1 | 847 | |
23324ae1 FM |
848 | /** |
849 | Returns the display size in millimeters. | |
850 | */ | |
4cc4bfaf | 851 | void wxDisplaySizeMM(int* width, int* height); |
7c913512 | 852 | wxSize wxGetDisplaySizeMM(); |
23324ae1 FM |
853 | |
854 | /** | |
855 | This macro loads an icon from either application resources (on the platforms | |
856 | for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to | |
857 | avoid using @c #ifdefs when creating icons. | |
7c913512 | 858 | |
e54c96f1 | 859 | @see @ref overview_wxbitmapoverview, wxBITMAP() |
23324ae1 | 860 | */ |
4cc4bfaf | 861 | wxICON(); |
23324ae1 FM |
862 | |
863 | /** | |
864 | Returns @true if the display is colour, @false otherwise. | |
865 | */ | |
866 | bool wxColourDisplay(); | |
867 | ||
868 | /** | |
869 | This macro loads a bitmap from either application resources (on the platforms | |
870 | for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to | |
871 | avoid using @c #ifdefs when creating bitmaps. | |
7c913512 | 872 | |
e54c96f1 | 873 | @see @ref overview_wxbitmapoverview, wxICON() |
23324ae1 | 874 | */ |
c83e60aa | 875 | #define wxBITMAP() /* implementation is private */ |
23324ae1 FM |
876 | |
877 | /** | |
878 | Returns the depth of the display (a value of 1 denotes a monochrome display). | |
879 | */ | |
880 | int wxDisplayDepth(); | |
881 | ||
c83e60aa BP |
882 | //@} |
883 |