]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 730697 ] wxRect::AlignIn member
authorJulian Smart <julian@anthemion.co.uk>
Sun, 1 Jun 2003 15:53:00 +0000 (15:53 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 1 Jun 2003 15:53:00 +0000 (15:53 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/rect.tex
include/wx/gdicmn.h

index 63216a5bbf71e8da9fcc10fdedaab0b0a1f103a5..8d86603975e64466bbb83630cf2fe4b6b8987ac9 100644 (file)
@@ -176,6 +176,14 @@ boundary) and {\tt false} otherwise.
 Returns {\tt true} if this rectangle has a non empty intersection with the
 rectangle {\it rect} and {\tt false} otherwise.
 
 Returns {\tt true} if this rectangle has a non empty intersection with the
 rectangle {\it rect} and {\tt false} otherwise.
 
+\membersection{wxRect::AlignIn}\label{wxrectalignin}
+
+\func{void}{AlignIn}{\param{const wxRect\& }{rect}, \param{int }{align}}
+
+Aligns the rectangle in another rectangle, according to the alignment flags.
+Supports combinations of horizontal and vertical centering, plus left, right,
+top and bottom justification.
+
 \membersection{wxRect::Offset}\label{wxrectoffset}
 
 \func{void}{Offset}{\param{wxCoord }{dx}, \param{wxCoord }{dy}}
 \membersection{wxRect::Offset}\label{wxrectoffset}
 
 \func{void}{Offset}{\param{wxCoord }{dx}, \param{wxCoord }{dy}}
index 2df4124c47bdad9ab69194728bdb7af6568be4b8..fbbe12fa966dc2ede350f01c0e44cc19d0f60b3f 100644 (file)
@@ -365,6 +365,18 @@ public:
     // return TRUE if the rectangles have a non empty intersection
     bool Intersects(const wxRect& rect) const;
 
     // return TRUE if the rectangles have a non empty intersection
     bool Intersects(const wxRect& rect) const;
 
+    // align in another rectangle according to WX alignment flags.
+    void AlignIn(const wxRect& rect, int align)
+    {
+        if (align & wxALIGN_CENTER_HORIZONTAL) x = rect.x + (rect.width-width)/2;
+        else if (align & wxALIGN_RIGHT) x = rect.x+rect.width - width;
+        else x = rect.x;
+
+        if (align & wxALIGN_CENTER_VERTICAL) y = rect.y + (rect.height-height)/2;
+        else if (align & wxALIGN_BOTTOM) y = rect.y+rect.height - height;
+        else y = rect.y;
+    }
+
 public:
     int x, y, width, height;
 };
 public:
     int x, y, width, height;
 };