added wxLongLong::ToDouble()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-08-28 00:03:30 +00:00
parent 0f71b9da7f
commit e7aaf2dedd
4 changed files with 45 additions and 0 deletions

View 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):

View 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}

View 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;

View 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);