]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxLongLong::ToDouble()
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 28 Aug 2005 00:03:30 +0000 (00:03 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 28 Aug 2005 00:03:30 +0000 (00:03 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
docs/latex/wx/longlong.tex
include/wx/longlong.h
src/common/longlong.cpp

index 88c82907001846373bf2c4f4c7a33166ebc8d76c..1f873e4e2a9b42817ce7165b54397a3289de23fe 100644 (file)
@@ -15,6 +15,7 @@ All:
 - Added wxImage::RotateHue() and RGB <-> HSV conversions (John Anderson).
 - Fixed compilation with IBM xlC compiler.
 - wxABI_VERSION, see 'Backward Compatibility' topic overview in the manual.
+- Added wxLongLong::ToDouble()
 
 All (GUI):
 
index 9676ca6152428d5be840d440c67971956f317f10..68ed4dfa6a2d9dfec72fa376593b8eef85110650 100644 (file)
@@ -46,18 +46,21 @@ No base class
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongdef}
 
 \func{}{wxLongLong}{\void}
 
 Default constructor initializes the object to 0.
 
+
 \membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongll}
 
 \func{}{wxLongLong}{\param{wxLongLong\_t }{ll}}
 
 Constructor from native long long (only for compilers supporting it).
 
+
 \membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglong}
 
 \func{}{wxLongLong}{\param{long }{hi}, \param{unsigned long }{lo}}
@@ -65,12 +68,14 @@ Constructor from native long long (only for compilers supporting it).
 Constructor from 2 longs: the high and low part are combined into one
 wxLongLong.
 
+
 \membersection{wxLongLong::operator=}\label{wxlonglongoperatorassign}
 
 \func{wxLongLong\& operator}{operator=}{\param{wxLongLong\_t }{ll}}
 
 Assignment operator from native long long (only for compilers supporting it).
 
+
 \membersection{wxLongLong::Abs}\label{wxlonglongabs}
 
 \constfunc{wxLongLong}{Abs}{\void}
@@ -80,6 +85,7 @@ Assignment operator from native long long (only for compilers supporting it).
 Returns an absolute value of wxLongLong - either making a copy (const version)
 or modifying it in place (the second one).  Not in wxULongLong.
 
+
 \membersection{wxLongLong::Assign}\label{wxlonglongassign}
 
 \func{wxLongLong\&}{Assign}{\param{double }{d}}
@@ -88,24 +94,35 @@ This allows to convert a double value to wxLongLong type. Such conversion is
 not always possible in which case the result will be silently truncated in a
 platform-dependent way.  Not in wxULongLong.
 
+
 \membersection{wxLongLong::GetHi}\label{wxlonglonggethi}
 
 \constfunc{long}{GetHi}{\void}
 
 Returns the high 32 bits of 64 bit integer.
 
+
 \membersection{wxLongLong::GetLo}\label{wxlonglonggetlo}
 
 \constfunc{unsigned long}{GetLo}{\void}
 
 Returns the low 32 bits of 64 bit integer.
 
+
 \membersection{wxLongLong::GetValue}\label{wxlonglonggetvalue}
 
 \constfunc{wxLongLong\_t}{GetValue}{\void}
 
 Convert to native long long (only for compilers supporting it)
 
+
+\membersection{wxLongLong::ToDouble}\label{wxlonglonggetdouble}
+
+\constfunc{double}{ToDouble}{\void}
+
+Returns the value as \texttt{double}.
+
+
 \membersection{wxLongLong::ToLong}\label{wxlonglongtolong}
 
 \constfunc{long}{ToLong}{\void}
@@ -114,24 +131,28 @@ Truncate wxLongLong to long. If the conversion loses data (i.e. the wxLongLong
 value is outside the range of built-in long type), an assert will be triggered
 in debug mode.
 
+
 \membersection{wxLongLong::ToString}\label{wxlonglongtostring}
 
 \constfunc{wxString}{ToString}{\void}
 
 Returns the string representation of a wxLongLong.
 
+
 \membersection{wxLongLong::operator$+$}\label{wxlonglongoperatorplus}
 
 \constfunc{wxLongLong}{operator$+$}{\param{const wxLongLong\& }{ll}}
 
 Adds 2 wxLongLongs together and returns the result.
 
+
 \membersection{wxLongLong::operator$+=$}\label{wxlonglongoperatorplusassign}
 
 \func{wxLongLong\&}{operator+}{\param{const wxLongLong\& }{ll}}
 
 Add another wxLongLong to this one.
 
+
 \membersection{wxLongLong::operator$++$}\label{wxlonglongoperatorinc}
 
 \func{wxLongLong\&}{operator$++$}{\void}
@@ -140,24 +161,28 @@ Add another wxLongLong to this one.
 
 Pre/post increment operator.
 
+
 \membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorunaryminus}
 
 \constfunc{wxLongLong}{operator$-$}{\void}
 
 Returns the value of this wxLongLong with opposite sign.  Not in wxULongLong.
 
+
 \membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorminus}
 
 \constfunc{wxLongLong}{operator$-$}{\param{const wxLongLong\& }{ll}}
 
 Subtracts 2 wxLongLongs and returns the result.
 
+
 \membersection{wxLongLong::operator$-=$}\label{wxlonglongoperatorminusassign}
 
 \func{wxLongLong\&}{operator-}{\param{const wxLongLong\& }{ll}}
 
 Subtracts another wxLongLong from this one.
 
+
 \membersection{wxLongLong::operator$--$}\label{wxlonglongoperatordec}
 
 \func{wxLongLong\&}{operator$--$}{\void}
index 3adf4335b8b1c7961dd2f4fdc73d47cbafa6f1e0..27cf9e8d1a97e74f17074077310c6acbdbfb2aa8 100644 (file)
@@ -164,6 +164,9 @@ public:
         return (long)m_ll;
     }
 
+        // convert to double
+    double ToDouble() const { return m_ll; }
+
     // don't provide implicit conversion to wxLongLong_t or we will have an
     // ambiguity for all arithmetic operations
     //operator wxLongLong_t() const { return m_ll; }
@@ -590,6 +593,9 @@ public:
         return (long)m_lo;
     }
 
+        // convert to double
+    double ToDouble() const;
+
     // operations
         // addition
     wxLongLongWx operator+(const wxLongLongWx& ll) const;
index 4646ce0d7b29d3b648eb51f4b17313ad3e97051c..aa5207c3f8a74c70055f0aaaeb1a7fa6721cafee 100644 (file)
@@ -134,6 +134,19 @@ wxLongLongWx& wxLongLongWx::Assign(double d)
     return *this;
 }
 
+double wxLongLongWx::ToDouble() const
+{
+    double d = m_hi;
+    d *= 1.0 + (double)ULONG_MAX;
+    d += m_lo;
+
+#ifdef wxLONGLONG_TEST_MODE
+    wxASSERT( d == m_ll );
+#endif // wxLONGLONG_TEST_MODE
+
+    return d;
+}
+
 wxLongLongWx wxLongLongWx::operator<<(int shift) const
 {
     wxLongLongWx ll(*this);