]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/longlong.h
avoid infinite recursion for richtooltops, (hopefully) fixes #15070
[wxWidgets.git] / interface / wx / longlong.h
index e3eaef7ec65814e4db6f7e0229149b4fc81d2111..83049f4b1cc43ee39a428ae93591e22049bcb149 100644 (file)
@@ -3,12 +3,11 @@
 // Purpose:     interface of wxLongLong
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
     @class wxLongLong
-    @wxheader{longlong.h}
 
     This class represents a signed 64 bit long number. It is implemented using the
     native 64 bit type where available (machines with 64 bit longs or compilers
@@ -18,8 +17,8 @@
 
     wxLongLong defines all usual arithmetic operations such as addition,
     subtraction, bitwise shifts and logical operations as well as multiplication
-    and division (not yet for the machines without native @e long long). It
-    also has operators for implicit construction from and conversion to the native
+    and division (not yet for the machines without native @e long long).
+    It also has operators for implicit construction from and conversion to the native
     @e long long type if it exists and @e long.
 
     You would usually use this type in exactly the same manner as any other
     If a native (i.e. supported directly by the compiler) 64 bit integer type was
     found to exist, @e wxLongLong_t macro will be defined to correspond to it.
     Also, in this case only, two additional macros will be defined:
-    wxLongLongFmtSpec() for printing 64 bit integers
-    using the standard @c printf() function (but see also
-    wxLongLong::ToString for a more portable solution) and
-    wxLL() for defining 64 bit integer compile-time constants.
+    - wxLongLongFmtSpec() for printing 64 bit integers using the standard @c printf()
+      function (but see also wxLongLong::ToString for a more portable solution);
+    - wxLL() for defining 64 bit integer compile-time constants.
 
     @library{wxbase}
     @category{data}
 class wxLongLong
 {
 public:
+    /**
+        Default constructor initializes the object to 0.
+    */
+    wxLongLong();
+
+    /**
+        Constructor from native long long (only for compilers supporting it).
+    */
+    wxLongLong(wxLongLong_t ll);
+
     /**
         Constructor from 2 longs: the high and low part are combined into one
         wxLongLong.
@@ -50,16 +58,17 @@ public:
     //@{
     /**
         Returns an absolute value of wxLongLong - either making a copy (const version)
-        or modifying it in place (the second one).  Not in wxULongLong.
+        or modifying it in place (the second one). Not in wxULongLong.
     */
-    wxLongLong Abs();
-    const wxLongLong&  Abs();
+    wxLongLong Abs() const;
+    wxLongLong& Abs();
     //@}
 
     /**
-        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.
+        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.
     */
     wxLongLong Assign(double d);
 
@@ -74,7 +83,7 @@ public:
     unsigned long GetLo() const;
 
     /**
-        Convert to native long long (only for compilers supporting it)
+        Convert to native long long (only for compilers supporting it).
     */
     wxLongLong_t GetValue() const;
 
@@ -95,57 +104,107 @@ public:
     */
     wxString ToString() const;
 
+
     /**
         Adds 2 wxLongLongs together and returns the result.
     */
     wxLongLong operator+(const wxLongLong& ll) const;
 
-    //@{
-    /**
-        Pre/post increment operator.
-    */
-    wxLongLong operator++();
-    wxLongLong operator++(int );
-    //@}
-
     /**
         Add another wxLongLong to this one.
     */
-    wxLongLong operator+(const wxLongLong& ll);
+    wxLongLong& operator+(const wxLongLong& ll);
+
 
     /**
         Subtracts 2 wxLongLongs and returns the result.
     */
     wxLongLong operator-(const wxLongLong& ll) const;
 
+    /**
+        Subtracts another wxLongLong from this one.
+    */
+    wxLongLong& operator-(const wxLongLong& ll);
+
+
+    //@{
+    /**
+        Pre/post increment operator.
+    */
+    wxLongLong operator++();
+    wxLongLong operator++(int);
+    //@}
+
     //@{
     /**
         Pre/post decrement operator.
     */
     wxLongLong operator--();
-    wxLongLong operator--(int );
+    wxLongLong operator--(int);
     //@}
 
     /**
-        Subtracts another wxLongLong from this one.
+        Returns the value of this wxLongLong with opposite sign. Not in wxULongLong.
     */
-    wxLongLong operator-(const wxLongLong& ll);
+    wxLongLong operator-() const;
 
     /**
         Assignment operator from unsigned long long. The sign bit will be copied too.
 
         @since 2.7.0
     */
-    wxLongLong& operator operator=(const wxULongLong& ll);
+    wxLongLong& operator=(const wxULongLong& ll);
+
+    /**
+        Assignment operator from native long long (only for compilers supporting it).
+    */
+    wxLongLong& operator=(wxLongLong_t ll);
+
+    /**
+        Assignment operator from native unsigned long long (only for compilers supporting it).
+
+        @since 2.7.0
+    */
+    wxLongLong& operator=(wxULongLong_t ll);
+
+    /**
+        Assignment operator from long.
+
+        @since 2.7.0
+    */
+    wxLongLong& operator=(long l);
+
+    /**
+        Assignment operator from unsigned long.
+
+        @since 2.7.0
+    */
+    wxLongLong& operator=(unsigned long l);
+
 };
 
 
+/**
+    @class wxULongLong
+
+    This class represents an unsigned 64 bit long number.
+
+    Since wxULongLong has exactly the same API as wxLongLong, please refer
+    to wxLongLong documentation (this page exists only as redirection).
+
+    @library{wxbase}
+    @category{data}
+*/
+class wxULongLong
+{
+};
+
 
 // ============================================================================
 // Global functions/macros
 // ============================================================================
 
-/** @ingroup group_funcmacro_misc */
+/** @addtogroup group_funcmacro_misc */
 //@{
 
 /**