]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/gdicmn.h
added wxHeaderCtrl::OnColumnCountChanging()
[wxWidgets.git] / interface / wx / gdicmn.h
CommitLineData
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/**
3d2cf884 11 Bitmap type flags. See wxBitmap and wxImage classes.
698d17c3
FM
12*/
13enum 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/**
3d2cf884 52 Standard cursors. See wxCursor.
698d17c3
FM
53*/
54enum wxStockCursor
55{
56 wxCURSOR_NONE,
3d2cf884
BP
57 wxCURSOR_ARROW, ///< A standard arrow cursor.
58 wxCURSOR_RIGHT_ARROW, ///< A standard arrow cursor pointing to the right.
59 wxCURSOR_BULLSEYE, ///< Bullseye cursor.
60 wxCURSOR_CHAR, ///< Rectangular character cursor.
61 wxCURSOR_CROSS, ///< A cross cursor.
62 wxCURSOR_HAND, ///< A hand cursor.
63 wxCURSOR_IBEAM, ///< An I-beam cursor (vertical line).
64 wxCURSOR_LEFT_BUTTON, ///< Represents a mouse with the left button depressed.
65 wxCURSOR_MAGNIFIER, ///< A magnifier icon.
66 wxCURSOR_MIDDLE_BUTTON, ///< Represents a mouse with the middle button depressed.
67 wxCURSOR_NO_ENTRY, ///< A no-entry sign cursor.
68 wxCURSOR_PAINT_BRUSH, ///< A paintbrush cursor.
69 wxCURSOR_PENCIL, ///< A pencil cursor.
70 wxCURSOR_POINT_LEFT, ///< A cursor that points left.
71 wxCURSOR_POINT_RIGHT, ///< A cursor that points right.
72 wxCURSOR_QUESTION_ARROW, ///< An arrow and question mark.
73 wxCURSOR_RIGHT_BUTTON, ///< Represents a mouse with the right button depressed.
74 wxCURSOR_SIZENESW, ///< A sizing cursor pointing NE-SW.
75 wxCURSOR_SIZENS, ///< A sizing cursor pointing N-S.
76 wxCURSOR_SIZENWSE, ///< A sizing cursor pointing NW-SE.
77 wxCURSOR_SIZEWE, ///< A sizing cursor pointing W-E.
78 wxCURSOR_SIZING, ///< A general sizing cursor.
79 wxCURSOR_SPRAYCAN, ///< A spraycan cursor.
80 wxCURSOR_WAIT, ///< A wait cursor.
81 wxCURSOR_WATCH, ///< A watch cursor.
82 wxCURSOR_BLANK, ///< Transparent cursor.
83 wxCURSOR_DEFAULT, ///< Standard X11 cursor (only in wxGTK).
84 wxCURSOR_COPY_ARROW , ///< MacOS Theme Plus arrow (only in wxMac).
85 wxCURSOR_CROSS_REVERSE, ///< Only available on wxX11.
86 wxCURSOR_DOUBLE_ARROW, ///< Only available on wxX11.
87 wxCURSOR_BASED_ARROW_UP, ///< Only available on wxX11.
88 wxCURSOR_BASED_ARROW_DOWN, ///< Only available on wxX11.
89 wxCURSOR_ARROWWAIT, ///< A wait cursor with a standard arrow.
698d17c3
FM
90 wxCURSOR_MAX
91};
92
93
94
23324ae1
FM
95/**
96 @class wxRealPoint
7c913512 97
3d2cf884 98 A wxRealPoint is a useful data structure for graphics operations.
65874118 99
3d2cf884
BP
100 It contains floating point @e x and @e y members. See wxPoint for an
101 integer version.
7c913512 102
23324ae1
FM
103 @library{wxcore}
104 @category{data}
7c913512 105
e54c96f1 106 @see wxPoint
23324ae1 107*/
7c913512 108class wxRealPoint
23324ae1
FM
109{
110public:
65874118
FM
111 wxRealPoint();
112
23324ae1 113 /**
65874118 114 Initializes the point with the given coordinates.
23324ae1 115 */
7c913512 116 wxRealPoint(double x, double y);
65874118
FM
117
118 /**
119 X coordinate of this point.
120 */
121 double x;
122
123 /**
124 Y coordinate of this point.
125 */
126 double y;
23324ae1
FM
127};
128
129
e54c96f1 130
23324ae1
FM
131/**
132 @class wxRect
7c913512 133
23324ae1 134 A class for manipulating rectangles.
7c913512 135
23324ae1
FM
136 @library{wxcore}
137 @category{data}
7c913512 138
e54c96f1 139 @see wxPoint, wxSize
23324ae1 140*/
7c913512 141class wxRect
23324ae1
FM
142{
143public:
23324ae1 144 /**
3d2cf884 145 Default constructor.
23324ae1
FM
146 */
147 wxRect();
3d2cf884
BP
148 /**
149 Creates a wxRect object from @a x, @a y, @a width and @a height values.
150 */
7c913512 151 wxRect(int x, int y, int width, int height);
3d2cf884
BP
152 /**
153 Creates a wxRect object from top-left and bottom-right points.
154 */
7c913512 155 wxRect(const wxPoint& topLeft, const wxPoint& bottomRight);
3d2cf884
BP
156 /**
157 Creates a wxRect object from position and @a size values.
158 */
7c913512 159 wxRect(const wxPoint& pos, const wxSize& size);
3d2cf884
BP
160 /**
161 Creates a wxRect object from @a size values at the origin.
162 */
7c913512 163 wxRect(const wxSize& size);
23324ae1
FM
164
165 //@{
166 /**
3d2cf884
BP
167 Returns the rectangle having the same size as this one but centered
168 relatively to the given rectangle @a r. By default, rectangle is
169 centred in both directions but if @a dir includes only @c wxVERTICAL or
170 only @c wxHORIZONTAL, then it is only centered in this direction while
23324ae1
FM
171 the other component of its position remains unchanged.
172 */
328f5751 173 wxRect CentreIn(const wxRect& r, int dir = wxBOTH) const;
3d2cf884 174 wxRect CenterIn(const wxRect& r, int dir = wxBOTH) const;
23324ae1
FM
175 //@}
176
23324ae1 177 /**
3d2cf884
BP
178 Returns @true if the given point is inside the rectangle (or on its
179 boundary) and @false otherwise.
23324ae1 180 */
328f5751 181 bool Contains(int x, int y) const;
3d2cf884
BP
182 /**
183 Returns @true if the given point is inside the rectangle (or on its
184 boundary) and @false otherwise.
185 */
186 bool Contains(const wxPoint& pt) const;
187 /**
188 Returns @true if the given rectangle is completely inside this
189 rectangle (or touches its boundary) and @false otherwise.
190 */
191 bool Contains(const wxRect& rect) const;
23324ae1
FM
192
193 //@{
194 /**
195 Decrease the rectangle size.
8024723d 196
3d2cf884
BP
197 This method is the opposite from Inflate(): Deflate(a, b) is equivalent
198 to Inflate(-a, -b). Please refer to Inflate() for full description.
23324ae1 199 */
3d2cf884
BP
200 void Deflate(wxCoord dx, wxCoord dy);
201 void Deflate(const wxSize& diff);
202 void Deflate(wxCoord diff);
328f5751 203 wxRect Deflate(wxCoord dx, wxCoord dy) const;
23324ae1
FM
204 //@}
205
206 /**
207 Gets the bottom point of the rectangle.
208 */
328f5751 209 int GetBottom() const;
23324ae1
FM
210
211 /**
212 Gets the position of the bottom left corner.
213 */
328f5751 214 wxPoint GetBottomLeft() const;
23324ae1
FM
215
216 /**
217 Gets the position of the bottom right corner.
218 */
328f5751 219 wxPoint GetBottomRight() const;
23324ae1
FM
220
221 /**
222 Gets the height member.
223 */
328f5751 224 int GetHeight() const;
23324ae1
FM
225
226 /**
3d2cf884 227 Gets the left point of the rectangle (the same as GetX()).
23324ae1 228 */
328f5751 229 int GetLeft() const;
23324ae1
FM
230
231 /**
232 Gets the position.
233 */
328f5751 234 wxPoint GetPosition() const;
23324ae1
FM
235
236 /**
237 Gets the right point of the rectangle.
238 */
328f5751 239 int GetRight() const;
23324ae1
FM
240
241 /**
242 Gets the size.
8024723d 243
4cc4bfaf 244 @see SetSize()
23324ae1 245 */
328f5751 246 wxSize GetSize() const;
23324ae1
FM
247
248 /**
3d2cf884 249 Gets the top point of the rectangle (the same as GetY()).
23324ae1 250 */
328f5751 251 int GetTop() const;
23324ae1
FM
252
253 /**
7c913512 254 Gets the position of the top left corner of the rectangle, same as
23324ae1
FM
255 GetPosition().
256 */
328f5751 257 wxPoint GetTopLeft() const;
23324ae1
FM
258
259 /**
260 Gets the position of the top right corner.
261 */
328f5751 262 wxPoint GetTopRight() const;
23324ae1
FM
263
264 /**
265 Gets the width member.
266 */
328f5751 267 int GetWidth() const;
23324ae1
FM
268
269 /**
270 Gets the x member.
271 */
328f5751 272 int GetX() const;
23324ae1
FM
273
274 /**
275 Gets the y member.
276 */
328f5751 277 int GetY() const;
23324ae1
FM
278
279 //@{
280 /**
281 Increases the size of the rectangle.
3d2cf884
BP
282
283 The left border is moved farther left and the right border is moved
284 farther right by @a dx. The upper border is moved farther up and the
285 bottom border is moved farther down by @a dy. (Note the the width and
286 height of the rectangle thus change by 2*dx and 2*dy, respectively.) If
287 one or both of @a dx and @a dy are negative, the opposite happens: the
288 rectangle size decreases in the respective direction.
289
290 Inflating and deflating behaves "naturally". Defined more precisely,
291 that means:
292 -# "Real" inflates (that is, @a dx and/or @a dy = 0) are not
293 constrained. Thus inflating a rectangle can cause its upper left
294 corner to move into the negative numbers. (2.5.4 and older forced
295 the top left coordinate to not fall below (0, 0), which implied a
296 forced move of the rectangle.)
297 -# Deflates are clamped to not reduce the width or height of the
298 rectangle below zero. In such cases, the top-left corner is
299 nonetheless handled properly. For example, a rectangle at (10, 10)
300 with size (20, 40) that is inflated by (-15, -15) will become
301 located at (20, 25) at size (0, 10). Finally, observe that the width
302 and height are treated independently. In the above example, the
303 width is reduced by 20, whereas the height is reduced by the full 30
304 (rather than also stopping at 20, when the width reached zero).
8024723d 305
4cc4bfaf 306 @see Deflate()
23324ae1 307 */
3d2cf884
BP
308 void Inflate(wxCoord dx, wxCoord dy);
309 void Inflate(const wxSize& diff);
310 void Inflate(wxCoord diff);
328f5751 311 wxRect Inflate(wxCoord dx, wxCoord dy) const;
23324ae1
FM
312 //@}
313
23324ae1 314 /**
c909e907 315 Modifies this rectangle to contain the overlapping portion of this rectangle
3d2cf884 316 and the one passed in as parameter.
c909e907
FM
317
318 @return This rectangle, modified.
23324ae1 319 */
3d2cf884 320 wxRect& Intersect(const wxRect& rect);
c909e907
FM
321
322 /**
323 Returns the overlapping portion of this rectangle and the one passed in as
324 parameter.
325 */
326 wxRect Intersect(const wxRect& rect) const;
23324ae1
FM
327
328 /**
329 Returns @true if this rectangle has a non-empty intersection with the
4cc4bfaf 330 rectangle @a rect and @false otherwise.
23324ae1 331 */
328f5751 332 bool Intersects(const wxRect& rect) const;
23324ae1
FM
333
334 /**
3d2cf884
BP
335 Returns @true if this rectangle has a width or height less than or
336 equal to 0 and @false otherwise.
23324ae1 337 */
328f5751 338 bool IsEmpty() const;
23324ae1
FM
339
340 //@{
341 /**
4cc4bfaf
FM
342 Moves the rectangle by the specified offset. If @a dx is positive, the
343 rectangle is moved to the right, if @a dy is positive, it is moved to the
23324ae1
FM
344 bottom, otherwise it is moved to the left or top respectively.
345 */
346 void Offset(wxCoord dx, wxCoord dy);
7c913512 347 void Offset(const wxPoint& pt);
23324ae1
FM
348 //@}
349
350 /**
351 Sets the height.
352 */
353 void SetHeight(int height);
354
355 /**
356 Sets the size.
8024723d 357
4cc4bfaf 358 @see GetSize()
23324ae1
FM
359 */
360 void SetSize(const wxSize& s);
361
362 /**
363 Sets the width.
364 */
365 void SetWidth(int width);
366
367 /**
368 Sets the x position.
369 */
4cc4bfaf 370 void SetX(int x);
23324ae1
FM
371
372 /**
373 Sets the y position.
374 */
4cc4bfaf 375 void SetY(int y);
23324ae1
FM
376
377 //@{
378 /**
3d2cf884
BP
379 Modifies the rectangle to contain the bounding box of this rectangle
380 and the one passed in as parameter.
23324ae1 381 */
3d2cf884
BP
382 wxRect Union(const wxRect& rect) const;
383 wxRect& Union(const wxRect& rect);
23324ae1
FM
384 //@}
385
386 /**
3d2cf884 387 Inequality operator.
23324ae1 388 */
3d2cf884 389 bool operator !=(const wxRect& r1, const wxRect& r2);
23324ae1 390
3d2cf884
BP
391 //@{
392 /**
393 Like Union(), but doesn't treat empty rectangles specially.
394 */
395 wxRect operator +(const wxRect& r1, const wxRect& r2);
396 wxRect& operator +=(const wxRect& r);
397 //@}
23324ae1
FM
398
399 //@{
400 /**
401 Returns the intersection of two rectangles (which may be empty).
402 */
3d2cf884
BP
403 wxRect operator *(const wxRect& r1, const wxRect& r2);
404 wxRect& operator *=(const wxRect& r);
23324ae1
FM
405 //@}
406
407 /**
408 Assignment operator.
409 */
5267aefd 410 wxRect& operator=(const wxRect& rect);
23324ae1
FM
411
412 /**
413 Equality operator.
414 */
415 bool operator ==(const wxRect& r1, const wxRect& r2);
416
417 /**
3d2cf884 418 Height member.
23324ae1 419 */
3d2cf884 420 int height;
23324ae1 421
3d2cf884
BP
422 /**
423 Width member.
424 */
425 int width;
23324ae1
FM
426
427 /**
23324ae1
FM
428 x coordinate of the top-level corner of the rectangle.
429 */
3d2cf884 430 int x;
23324ae1
FM
431
432 /**
23324ae1
FM
433 y coordinate of the top-level corner of the rectangle.
434 */
3d2cf884 435 int y;
23324ae1
FM
436};
437
438
e54c96f1 439
23324ae1
FM
440/**
441 @class wxPoint
7c913512 442
3d2cf884 443 A wxPoint is a useful data structure for graphics operations.
7c913512 444
3d2cf884
BP
445 It contains integer @e x and @e y members. See wxRealPoint for a floating
446 point version.
7c913512 447
23324ae1
FM
448 @library{wxcore}
449 @category{data}
7c913512 450
65874118
FM
451 @stdobjects
452 ::wxDefaultPosition
453
e54c96f1 454 @see wxRealPoint
23324ae1 455*/
7c913512 456class wxPoint
23324ae1
FM
457{
458public:
459 //@{
460 /**
3d2cf884 461 Constructs a point.
23324ae1
FM
462 */
463 wxPoint();
7c913512 464 wxPoint(int x, int y);
23324ae1
FM
465 //@}
466
23324ae1 467 /**
3d2cf884 468 Assignment operator.
23324ae1 469 */
5267aefd 470 wxPoint& operator=(const wxPoint& pt);
3d2cf884 471
7c913512
FM
472 bool operator ==(const wxPoint& p1, const wxPoint& p2);
473 bool operator !=(const wxPoint& p1, const wxPoint& p2);
3d2cf884 474
7c913512
FM
475 wxPoint operator +(const wxPoint& p1, const wxPoint& p2);
476 wxPoint operator -(const wxPoint& p1, const wxPoint& p2);
3d2cf884
BP
477
478 wxPoint& operator +=(const wxPoint& pt);
479 wxPoint& operator -=(const wxPoint& pt);
480
7c913512
FM
481 wxPoint operator +(const wxPoint& pt, const wxSize& sz);
482 wxPoint operator -(const wxPoint& pt, const wxSize& sz);
483 wxPoint operator +(const wxSize& sz, const wxPoint& pt);
484 wxPoint operator -(const wxSize& sz, const wxPoint& pt);
3d2cf884
BP
485
486 wxPoint& operator +=(const wxSize& sz);
487 wxPoint& operator -=(const wxSize& sz);
23324ae1
FM
488
489 /**
23324ae1
FM
490 x member.
491 */
3d2cf884 492 int x;
23324ae1
FM
493
494 /**
23324ae1
FM
495 y member.
496 */
3d2cf884 497 int y;
23324ae1
FM
498};
499
65874118 500/**
3d2cf884 501 Global istance of a wxPoint initialized with values (-1,-1).
65874118
FM
502*/
503wxPoint wxDefaultPosition;
23324ae1 504
e54c96f1 505
23324ae1
FM
506/**
507 @class wxColourDatabase
7c913512 508
23324ae1 509 wxWidgets maintains a database of standard RGB colours for a predefined
3d2cf884
BP
510 set of named colours. The application may add to this set if desired by
511 using AddColour() and may use it to look up colours by names using Find()
512 or find the names for the standard colour using FindName().
513
514 There is one predefined, global instance of this class called
515 ::wxTheColourDatabase.
516
517 The standard database contains at least the following colours:
518
519 @beginTable
520 <tr><td>
521 AQUAMARINE
522 @n BLACK
523 @n BLUE
524 @n BLUE VIOLET
525 @n BROWN
526 @n CADET BLUE
527 @n CORAL
528 @n CORNFLOWER BLUE
529 @n CYAN
530 @n DARK GREY
531 @n DARK GREEN
532 @n DARK OLIVE GREEN
533 @n DARK ORCHID
534 @n DARK SLATE BLUE
535 @n DARK SLATE GREY
536 @n DARK TURQUOISE
537 @n DIM GREY
538 </td><td>
539 FIREBRICK
540 @n FOREST GREEN
541 @n GOLD
542 @n GOLDENROD
543 @n GREY
544 @n GREEN
545 @n GREEN YELLOW
546 @n INDIAN RED
547 @n KHAKI
548 @n LIGHT BLUE
549 @n LIGHT GREY
550 @n LIGHT STEEL BLUE
551 @n LIME GREEN
552 @n MAGENTA
553 @n MAROON
554 @n MEDIUM AQUAMARINE
555 @n MEDIUM BLUE
556 </td><td>
557 MEDIUM FOREST GREEN
558 @n MEDIUM GOLDENROD
559 @n MEDIUM ORCHID
560 @n MEDIUM SEA GREEN
561 @n MEDIUM SLATE BLUE
562 @n MEDIUM SPRING GREEN
563 @n MEDIUM TURQUOISE
564 @n MEDIUM VIOLET RED
565 @n MIDNIGHT BLUE
566 @n NAVY
567 @n ORANGE
568 @n ORANGE RED
569 @n ORCHID
570 @n PALE GREEN
571 @n PINK
572 @n PLUM
573 @n PURPLE
574 </td><td>
575 RED
576 @n SALMON
577 @n SEA GREEN
578 @n SIENNA
579 @n SKY BLUE
580 @n SLATE BLUE
581 @n SPRING GREEN
582 @n STEEL BLUE
583 @n TAN
584 @n THISTLE
585 @n TURQUOISE
586 @n VIOLET
587 @n VIOLET RED
588 @n WHEAT
589 @n WHITE
590 @n YELLOW
591 @n YELLOW GREEN
592 </td></tr>
593 @endTable
7c913512 594
23324ae1 595 @library{wxcore}
3d2cf884 596 @category{gdi}
7c913512 597
e54c96f1 598 @see wxColour
23324ae1 599*/
7c913512 600class wxColourDatabase
23324ae1
FM
601{
602public:
603 /**
3d2cf884
BP
604 Constructs the colour database. It will be initialized at the first
605 use.
23324ae1
FM
606 */
607 wxColourDatabase();
608
23324ae1 609 /**
3d2cf884
BP
610 Adds a colour to the database. If a colour with the same name already
611 exists, it is replaced.
23324ae1 612 */
3d2cf884 613 void AddColour(const wxString& colourName, const wxColour& colour);
23324ae1
FM
614
615 /**
3d2cf884
BP
616 Finds a colour given the name. Returns an invalid colour object (that
617 is, wxColour::IsOk() will return @false) if the colour wasn't found in
618 the database.
23324ae1 619 */
adaaa686 620 wxColour Find(const wxString& colourName) const;
23324ae1
FM
621
622 /**
3d2cf884
BP
623 Finds a colour name given the colour. Returns an empty string if the
624 colour is not found in the database.
23324ae1 625 */
328f5751 626 wxString FindName(const wxColour& colour) const;
23324ae1
FM
627};
628
629
23324ae1
FM
630/**
631 @class wxSize
7c913512 632
3d2cf884
BP
633 A wxSize is a useful data structure for graphics operations. It simply
634 contains integer @e width and @e height members.
7c913512 635
3d2cf884
BP
636 wxSize is used throughout wxWidgets as well as wxPoint which, although
637 almost equivalent to wxSize, has a different meaning: wxPoint represents a
638 position while wxSize represents the size.
7c913512 639
3d2cf884
BP
640 @beginWxPythonOnly
641 wxPython defines aliases for the @e x and @e y members named @e width and
642 @e height since it makes much more sense for sizes.
643 @endWxPythonOnly
7c913512 644
23324ae1
FM
645 @library{wxcore}
646 @category{data}
7c913512 647
65874118
FM
648 @stdobjects
649 ::wxDefaultSize
650
e54c96f1 651 @see wxPoint, wxRealPoint
23324ae1 652*/
7c913512 653class wxSize
23324ae1
FM
654{
655public:
656 //@{
657 /**
658 Creates a size object.
659 */
660 wxSize();
7c913512 661 wxSize(int width, int height);
23324ae1
FM
662 //@}
663
664 //@{
665 /**
3d2cf884 666 Decreases the size in both x and y directions.
8024723d 667
4cc4bfaf 668 @see IncBy()
23324ae1
FM
669 */
670 void DecBy(const wxSize& size);
7c913512
FM
671 void DecBy(int dx, int dy);
672 void DecBy(int d);
23324ae1
FM
673 //@}
674
675 /**
3d2cf884
BP
676 Decrements this object so that both of its dimensions are not greater
677 than the corresponding dimensions of the @a size.
8024723d 678
4cc4bfaf 679 @see IncTo()
23324ae1
FM
680 */
681 void DecTo(const wxSize& size);
682
683 /**
684 Gets the height member.
685 */
328f5751 686 int GetHeight() const;
23324ae1
FM
687
688 /**
689 Gets the width member.
690 */
328f5751 691 int GetWidth() const;
23324ae1
FM
692
693 //@{
694 /**
3d2cf884 695 Increases the size in both x and y directions.
8024723d 696
4cc4bfaf 697 @see DecBy()
23324ae1
FM
698 */
699 void IncBy(const wxSize& size);
7c913512
FM
700 void IncBy(int dx, int dy);
701 void IncBy(int d);
23324ae1
FM
702 //@}
703
704 /**
3d2cf884
BP
705 Increments this object so that both of its dimensions are not less than
706 the corresponding dimensions of the @a size.
8024723d 707
4cc4bfaf 708 @see DecTo()
23324ae1
FM
709 */
710 void IncTo(const wxSize& size);
711
712 /**
3d2cf884
BP
713 Returns @true if neither of the size object components is equal to -1,
714 which is used as default for the size values in wxWidgets (hence the
715 predefined ::wxDefaultSize has both of its components equal to -1).
716
717 This method is typically used before calling SetDefaults().
23324ae1 718 */
328f5751 719 bool IsFullySpecified() const;
23324ae1 720
23324ae1 721 /**
3d2cf884
BP
722 Scales the dimensions of this object by the given factors. If you want
723 to scale both dimensions by the same factor you can also use
724 operator*=().
23324ae1 725
d29a9a8a 726 @return A reference to this object (so that you can concatenate other
3d2cf884 727 operations in the same line).
23324ae1 728 */
3d2cf884 729 wxSize& Scale(float xscale, float yscale);
23324ae1
FM
730
731 /**
732 Sets the width and height members.
733 */
4cc4bfaf 734 void Set(int width, int height);
23324ae1
FM
735
736 /**
3d2cf884
BP
737 Combine this size object with another one replacing the default (i.e.
738 equal to -1) components of this object with those of the other. It is
739 typically used like this:
740
741 @code
742 if ( !size.IsFullySpecified() )
743 {
744 size.SetDefaults(GetDefaultSize());
745 }
746 @endcode
8024723d 747
4cc4bfaf 748 @see IsFullySpecified()
23324ae1
FM
749 */
750 void SetDefaults(const wxSize& sizeDefault);
751
752 /**
753 Sets the height.
754 */
755 void SetHeight(int height);
756
757 /**
758 Sets the width.
759 */
760 void SetWidth(int width);
3d2cf884
BP
761
762 /**
763 Assignment operator.
764 */
5267aefd 765 wxSize& operator=(const wxSize& sz);
3d2cf884
BP
766
767 bool operator ==(const wxSize& s1, const wxSize& s2);
768 bool operator !=(const wxSize& s1, const wxSize& s2);
769
770 wxSize operator +(const wxSize& s1, const wxSize& s2);
771 wxSize operator -(const wxSize& s1, const wxSize& s2);
772 wxSize& operator +=(const wxSize& sz);
773 wxSize& operator -=(const wxSize& sz);
774
775 wxSize operator /(const wxSize& sz, int factor);
776 wxSize operator *(const wxSize& sz, int factor);
777 wxSize operator *(int factor, const wxSize& sz);
778 wxSize& operator /=(int factor);
779 wxSize& operator *=(int factor);
23324ae1
FM
780};
781
65874118 782/**
3d2cf884 783 Global instance of a wxSize object initialized to (-1,-1).
65874118
FM
784*/
785wxSize wxDefaultSize;
23324ae1 786
e54c96f1 787
23324ae1 788
e54c96f1 789
23324ae1
FM
790// ============================================================================
791// Global functions/macros
792// ============================================================================
793
3db7c3b1 794/** @ingroup group_funcmacro_gdi */
23324ae1 795//@{
c83e60aa 796
23324ae1 797/**
a055a116
BP
798 This macro loads a bitmap from either application resources (on the
799 platforms for which they exist, i.e. Windows and OS2) or from an XPM file.
800 This can help to avoid using @ifdef_ when creating bitmaps.
801
802 @see @ref overview_bitmap, wxICON()
803
804 @header{wx/gdicmn.h}
23324ae1 805*/
a055a116 806#define wxBITMAP(bitmapName)
23324ae1 807
23324ae1 808/**
a055a116
BP
809 This macro loads an icon from either application resources (on the
810 platforms for which they exist, i.e. Windows and OS2) or from an XPM file.
811 This can help to avoid using @ifdef_ when creating icons.
812
813 @see @ref overview_bitmap, wxBITMAP()
814
815 @header{wx/gdicmn.h}
23324ae1 816*/
a055a116 817wxICON();
23324ae1 818
23324ae1 819/**
a055a116
BP
820 Returns @true if the display is colour, @false otherwise.
821
822 @header{wx/gdicmn.h}
23324ae1 823*/
a055a116 824bool wxColourDisplay();
23324ae1
FM
825
826/**
a055a116
BP
827 Returns the depth of the display (a value of 1 denotes a monochrome
828 display).
7c913512 829
a055a116 830 @header{wx/gdicmn.h}
23324ae1 831*/
a055a116 832int wxDisplayDepth();
23324ae1
FM
833
834/**
a055a116
BP
835 Globally sets the cursor; only has an effect on Windows, Mac and GTK+. You
836 should call this function with wxNullCursor to restore the system cursor.
837
838 @see wxCursor, wxWindow::SetCursor()
839
840 @header{wx/gdicmn.h}
23324ae1 841*/
a055a116 842void wxSetCursor(const wxCursor& cursor);
23324ae1 843
a055a116
BP
844//@}
845
846/** @ingroup group_funcmacro_gdi */
847//@{
23324ae1 848/**
a055a116
BP
849 Returns the dimensions of the work area on the display. On Windows this
850 means the area not covered by the taskbar, etc. Other platforms are
851 currently defaulting to the whole display until a way is found to provide
852 this info for all window managers, etc.
7c913512 853
a055a116 854 @header{wx/gdicmn.h}
23324ae1 855*/
a055a116
BP
856void wxClientDisplayRect(int* x, int* y, int* width, int* height);
857wxRect wxGetClientDisplayRect();
858//@}
23324ae1 859
40fcf546
VS
860/** @ingroup group_funcmacro_gdi */
861//@{
862/**
863 Returns the display resolution in pixels per inch.
864
ed9dd914
VZ
865 The @c x component of the returned wxSize object contains the horizontal
866 resolution and the @c y one -- the vertical resolution.
867
40fcf546
VS
868 @header{wx/gdicmn.h}
869
870 @since 2.9.0
871*/
872wxSize wxGetDisplayPPI();
873//@}
874
a055a116
BP
875/** @ingroup group_funcmacro_gdi */
876//@{
23324ae1 877/**
a055a116
BP
878 Returns the display size in pixels.
879
ed9dd914
VZ
880 For the version taking @a width and @a header arguments, either of them
881 can be @NULL if the caller is not interested in the returned value.
882
a055a116 883 @header{wx/gdicmn.h}
23324ae1 884*/
a055a116
BP
885void wxDisplaySize(int* width, int* height);
886wxSize wxGetDisplaySize();
887//@}
888
889/** @ingroup group_funcmacro_gdi */
890//@{
891/**
892 Returns the display size in millimeters.
23324ae1 893
ed9dd914
VZ
894 For the version taking @a width and @a header arguments, either of them
895 can be @NULL if the caller is not interested in the returned value.
896
897 @see wxGetDisplayPPI()
898
a055a116
BP
899 @header{wx/gdicmn.h}
900*/
901void wxDisplaySizeMM(int* width, int* height);
902wxSize wxGetDisplaySizeMM();
c83e60aa
BP
903//@}
904