From cc4f194e485e639a02480ec12d083381a193dd46 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Sat, 2 Dec 2006 14:11:15 +0000
Subject: [PATCH] added Get(MultiLine)TextEvent() overloads returning wxSize
 which are used by wxPackageManager (patch 1595123)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/latex/wx/dc.tex | 51 ++++++++++++++++++++++++++++++++++++++++----
 include/wx/dc.h      | 16 +++++++++++++-
 2 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/docs/latex/wx/dc.tex b/docs/latex/wx/dc.tex
index c7242bf74f..b6c7feed01 100644
--- a/docs/latex/wx/dc.tex
+++ b/docs/latex/wx/dc.tex
@@ -662,6 +662,33 @@ Gets the current logical function (see \helpref{wxDC::SetLogicalFunction}{wxdcse
 Gets the {\it mapping mode} for the device context (see \helpref{wxDC::SetMapMode}{wxdcsetmapmode}).
 
 
+\membersection{wxDC::GetMultiLineTextExtent}\label{wxdcgetmultilinetextextent}
+
+\constfunc{void}{GetMultiLineTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w},\\
+  \param{wxCoord *}{h}, \param{wxCoord *}{heightLine = NULL}, \param{wxFont *}{font = NULL}}
+
+\constfunc{wxSize}{GetMultiLineTextExtent}{\param{const wxString\& }{string}}
+
+Gets the dimensions of the string using the currently selected font.
+\rtfsp{\it string} is the text string to measure, {\it heightLine}, if non NULL,
+is where to store the height of a single line.
+
+The text extent is returned in {\it w} and {\it h} pointers (first form) or as
+a \helpref{wxSize}{wxsize} object (second form).
+
+If the optional parameter {\it font} is specified and valid, then it is used
+for the text extent calculation. Otherwise the currently selected font is.
+
+Note that this function works both with single-line and multi-line strings.
+
+\wxheading{See also}
+
+\helpref{wxFont}{wxfont},\rtfsp
+\helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp
+\helpref{wxDC::GetPartialTextExtents}{wxdcgetpartialtextextents},\rtfsp
+\helpref{wxDC::GetTextExtent}{wxdcgettextextent}
+
+
 \membersection{wxDC::GetPartialTextExtents}\label{wxdcgetpartialtextextents}
 
 \constfunc{bool}{GetPartialTextExtents}{\param{const wxString\&  }{text}, 
@@ -675,6 +702,11 @@ various platforms have a native API function that is faster or more
 accurate than the generic implementation then it should be used
 instead. 
 
+\wxheading{See also}
+
+\helpref{wxDC::GetMultiLineTextExtent}{wxdcgetmultilinetextextent},\rtfsp
+\helpref{wxDC::GetTextExtent}{wxdcgettextextent}
+
 \pythonnote{This method only takes the {\it text} parameter and
   returns a Python list of integers.}
 
@@ -760,20 +792,31 @@ Gets the current text background colour (see \helpref{wxDC::SetTextBackground}{w
 
 \membersection{wxDC::GetTextExtent}\label{wxdcgettextextent}
 
-\func{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\
+\constfunc{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\
   \param{wxCoord *}{descent = NULL}, \param{wxCoord *}{externalLeading = NULL}, \param{wxFont *}{font = NULL}}
 
+\constfunc{wxSize}{GetTextExtent}{\param{const wxString\& }{string}}
+
 Gets the dimensions of the string using the currently selected font.
-\rtfsp{\it string} is the text string to measure, {\it w} and {\it h} are
-the total width and height respectively, {\it descent} is the
+\rtfsp{\it string} is the text string to measure, {\it descent} is the
 dimension from the baseline of the font to the bottom of the
 descender, and {\it externalLeading} is any extra vertical space added
 to the font by the font designer (usually is zero).
 
+The text extent is returned in {\it w} and {\it h} pointers (first form) or as
+a \helpref{wxSize}{wxsize} object (second form).
+
 If the optional parameter {\it font} is specified and valid, then it is used
 for the text extent calculation. Otherwise the currently selected font is.
 
-See also \helpref{wxFont}{wxfont}, \helpref{wxDC::SetFont}{wxdcsetfont}.
+Note that this function only works with single-line strings.
+
+\wxheading{See also}
+
+\helpref{wxFont}{wxfont},\rtfsp
+\helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp
+\helpref{wxDC::GetPartialTextExtents}{wxdcgetpartialtextextents},\rtfsp
+\helpref{wxDC::GetMultiLineTextExtent}{wxdcgetmultilinetextextent}
 
 \pythonnote{The following methods are implemented in wxPython:\par
 \indented{2cm}{\begin{twocollist}
diff --git a/include/wx/dc.h b/include/wx/dc.h
index da5bc5fde0..57e23f8aad 100644
--- a/include/wx/dc.h
+++ b/include/wx/dc.h
@@ -441,13 +441,27 @@ public:
                        wxFont *theFont = NULL) const
         { DoGetTextExtent(string, x, y, descent, externalLeading, theFont); }
 
+    wxSize GetTextExtent(const wxString& string) const
+    {
+        wxCoord w, h;
+        DoGetTextExtent(string, &w, &h);
+        return wxSize(w, h);
+    }
+
     // works for single as well as multi-line strings
-    virtual void GetMultiLineTextExtent(const wxString& text,
+    virtual void GetMultiLineTextExtent(const wxString& string,
                                         wxCoord *width,
                                         wxCoord *height,
                                         wxCoord *heightLine = NULL,
                                         wxFont *font = NULL) const;
 
+    wxSize GetMultiLineTextExtent(const wxString& string) const
+    {
+        wxCoord w, h;
+        GetMultiLineTextExtent(string, &w, &h);
+        return wxSize(w, h);
+    }
+
     // Measure cumulative width of text after each character
     bool GetPartialTextExtents(const wxString& text, wxArrayInt& widths) const
         { return DoGetPartialTextExtents(text, widths); }
-- 
2.47.2

