]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch 1586499: wxCoordRound function
authorJulian Smart <julian@anthemion.co.uk>
Sun, 29 Oct 2006 17:01:34 +0000 (17:01 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 29 Oct 2006 17:01:34 +0000 (17:01 +0000)
Centralises rounding and adds nearest-value rounding to
prntbase.cpp.
by Robert J. Lang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/function.tex
include/wx/defs.h
include/wx/dfb/dc.h
include/wx/gtk/gnome/gprint.h
include/wx/gtk1/dc.h
include/wx/mac/carbon/dc.h
include/wx/mac/classic/dc.h
include/wx/mgl/dc.h
include/wx/x11/dc.h
src/common/prntbase.cpp
src/mac/carbon/dccg.cpp

index 96b383f984442cc513b5b3ac76200d2a40f35fc2..47d46b1b40c634db6d6d7e4e2e32fd038c2e05a2 100644 (file)
@@ -58,6 +58,7 @@ the corresponding topic.
 \helpref{wxCONCAT}{wxconcat}\\
 \helpref{wxConcatFiles}{wxconcatfiles}\\
 \helpref{wxConstCast}{wxconstcast}\\
 \helpref{wxCONCAT}{wxconcat}\\
 \helpref{wxConcatFiles}{wxconcatfiles}\\
 \helpref{wxConstCast}{wxconstcast}\\
+\helpref{wxCoordRound}{wxcoordround}\\
 \helpref{wxCopyFile}{wxcopyfile}\\
 \helpref{wxCreateDynamicObject}{wxcreatedynamicobject}\\
 \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}\\
 \helpref{wxCopyFile}{wxcopyfile}\\
 \helpref{wxCreateDynamicObject}{wxcreatedynamicobject}\\
 \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}\\
@@ -2846,6 +2847,21 @@ code which might have to be compiled with an old compiler without support for
 this language feature but still take advantage of it when it is available.
 
 
 this language feature but still take advantage of it when it is available.
 
 
+
+\membersection{::wxCoordRound}\label{wxcoordround}
+
+\func{wxCoord}{wxCoordRound}{\param{const float\& }{f}}
+
+\func{wxCoord}{wxCoordRound}{\param{const double\& }{f}}
+
+Convert \em{f} to a wxCoord, using round-to-nearest. This is commonly used
+in scaling calculations.
+
+\wxheading{Include files}
+
+<wx/defs.h>
+
+
 \membersection{::wxGetKeyState}\label{wxgetkeystate}
 
 \func{bool}{wxGetKeyState}{\param{wxKeyCode }{key}}
 \membersection{::wxGetKeyState}\label{wxgetkeystate}
 
 \func{bool}{wxGetKeyState}{\param{wxKeyCode }{key}}
index 8082fe9d2af50074eab902950328693a643f24c8..831f870c5ea0361f920d6f9dde725d64fa18a660 100644 (file)
@@ -658,6 +658,18 @@ typedef int wxCoord;
 
 enum {  wxDefaultCoord = -1 };
 
 
 enum {  wxDefaultCoord = -1 };
 
+/*  round-to-nearest (used in scaling) */
+#ifdef __cplusplus
+inline wxCoord wxCoordRound(const float& f)
+{
+    return (f > 0) ? (wxCoord)(f + 0.5) : (f < 0) ? (wxCoord)(f - 0.5) : 0;
+}
+inline wxCoord wxCoordRound(const double& f)
+{
+    return (f > 0) ? (wxCoord)(f + 0.5) : (f < 0) ? (wxCoord)(f - 0.5) : 0;
+}
+#endif
+
 /*  ---------------------------------------------------------------------------- */
 /*  define fixed length types */
 /*  ---------------------------------------------------------------------------- */
 /*  ---------------------------------------------------------------------------- */
 /*  define fixed length types */
 /*  ---------------------------------------------------------------------------- */
index 92abb84e3979148591dee822118679e08f26d6bf..0f189d4eebc8e69860c104526be9a28fcb50e725 100644 (file)
@@ -80,63 +80,35 @@ public:
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
-        wxCoord new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) / m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
-        wxCoord new_y = y - m_deviceOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-        else
-            return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) / m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
-        wxCoord new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-        else
-            return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) * m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
-        wxCoord new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-        else
-            return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
 
     // Returns the surface (and increases its ref count)
     }
 
     // Returns the surface (and increases its ref count)
index 4cdb6d999c368edcd6ef8f3e8c0cd460af92ff8d..8490d504c28238ed694ba0e4e151fc18039120d8 100644 (file)
@@ -296,63 +296,35 @@ private:
 private:
     wxCoord XDEV2LOG(wxCoord x) const
     {
 private:
     wxCoord XDEV2LOG(wxCoord x) const
     {
-        wxCoord new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) / m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
-        wxCoord new_y = y - m_deviceOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-        else
-            return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) / m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
-        wxCoord new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-        else
-            return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) * m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
-        wxCoord new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-        else
-            return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
 private:
     DECLARE_DYNAMIC_CLASS(wxGnomePrintDC)
     }
 private:
     DECLARE_DYNAMIC_CLASS(wxGnomePrintDC)
index 82f2ae49e788599b5eb045e3980f542187e03460..fe00bef38fa2a01409ac998ae0f338647657bc93 100644 (file)
@@ -70,63 +70,35 @@ public:
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
-        wxCoord new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) / m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
-        wxCoord new_y = y - m_deviceOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-        else
-            return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) / m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
-        wxCoord new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-        else
-            return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) * m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
-        wxCoord new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-        else
-            return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
 
 protected:
     }
 
 protected:
index 2b40a0daa08c8c4a3f213d387d6bef56b25b7049..6b10ee2093a30b96f6ec5686c24b82ebcb8020f8 100644 (file)
@@ -158,88 +158,45 @@ public:
 public:
     wxCoord XDEV2LOG(wxCoord x) const
     {
 public:
     wxCoord XDEV2LOG(wxCoord x) const
     {
-        long new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)new_x / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)new_x / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     }
-
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)x / m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)x / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     }
-
     wxCoord YDEV2LOG(wxCoord y) const
     {
     wxCoord YDEV2LOG(wxCoord y) const
     {
-        long new_y = y - m_deviceOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)new_y / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-        else
-            return (wxCoord)((double)new_y / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     }
-
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)y / m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)y / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     }
-
     wxCoord XLOG2DEV(wxCoord x) const
     {
     wxCoord XLOG2DEV(wxCoord x) const
     {
-        long new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)new_x * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-        else
-            return (wxCoord)((double)new_x * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     }
-
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)x * m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)x * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     }
-
     wxCoord YLOG2DEV(wxCoord y) const
     {
     wxCoord YLOG2DEV(wxCoord y) const
     {
-        long new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)new_y * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-        else
-            return (wxCoord)((double)new_y * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     }
-
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)y * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)y * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
 
     wxCoord XLOG2DEVMAC(wxCoord x) const
     {
     }
 
     wxCoord XLOG2DEVMAC(wxCoord x) const
     {
-        long new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)new_x * m_scaleX + 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
-        else
-            return (wxCoord)((double)new_x * m_scaleX - 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
     }
 
     wxCoord YLOG2DEVMAC(wxCoord y) const
     {
     }
 
     wxCoord YLOG2DEVMAC(wxCoord y) const
     {
-        long new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)new_y * m_scaleY + 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
-        else
-            return (wxCoord)((double)new_y * m_scaleY - 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
     }
 
 #if wxMAC_USE_CORE_GRAPHICS
     }
 
 #if wxMAC_USE_CORE_GRAPHICS
index 88b7dacfb3e0adf1ef3a0f35e17d0a1888b2f886..392b4f7a1947dba3c1af0927cd1f3c722108e50a 100644 (file)
@@ -105,79 +105,45 @@ class WXDLLEXPORT wxDC: public wxDCBase
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
-      long new_x = x - m_deviceOriginX ;
-      if (new_x > 0)
-        return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-      else
-        return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-      if (x > 0)
-        return (wxCoord)((double)(x) / m_scaleX + 0.5);
-      else
-        return (wxCoord)((double)(x) / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
-      long new_y = y - m_deviceOriginY ;
-      if (new_y > 0)
-        return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-      else
-        return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-      if (y > 0)
-        return (wxCoord)((double)(y) / m_scaleY + 0.5);
-      else
-        return (wxCoord)((double)(y) / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
-      long new_x = x - m_logicalOriginX;
-      if (new_x > 0)
-        return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX  ;
-      else
-        return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX ;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-      if (x > 0)
-        return (wxCoord)((double)(x) * m_scaleX + 0.5);
-      else
-        return (wxCoord)((double)(x) * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
-      long new_y = y - m_logicalOriginY ;
-      if (new_y > 0)
-        return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY ;
-      else
-        return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY ;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-      if (y > 0)
-        return (wxCoord)((double)(y) * m_scaleY + 0.5);
-      else
-        return (wxCoord)((double)(y) * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
     }
+
     wxCoord XLOG2DEVMAC(wxCoord x) const
     {
     wxCoord XLOG2DEVMAC(wxCoord x) const
     {
-      long new_x = x - m_logicalOriginX;
-      if (new_x > 0)
-        return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x ;
-      else
-        return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX + m_macLocalOrigin.x ;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX + m_macLocalOrigin.x;
     }
     }
+
     wxCoord YLOG2DEVMAC(wxCoord y) const
     {
     wxCoord YLOG2DEVMAC(wxCoord y) const
     {
-      long new_y = y - m_logicalOriginY ;
-      if (new_y > 0)
-        return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y ;
-      else
-        return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y ;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY + m_macLocalOrigin.y;
     }
 
     WXHRGN MacGetCurrentClipRgn() { return m_macCurrentClipRgn ; }
     }
 
     WXHRGN MacGetCurrentClipRgn() { return m_macCurrentClipRgn ; }
index 192a729417d77545a6a5f232a2b3f3dd21c71f9e..a838fcd724491e5a52844665a909a6ba1df39447 100644 (file)
@@ -101,63 +101,35 @@ public:
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
-        wxCoord new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) / m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
-        wxCoord new_y = y - m_deviceOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-        else
-            return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) / m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
-        wxCoord new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-        else
-            return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) * m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
-        wxCoord new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-        else
-            return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
 
     MGLDevCtx *GetMGLDC() const { return m_MGLDC; }
     }
 
     MGLDevCtx *GetMGLDC() const { return m_MGLDC; }
index 7c80e92e198c9bd6883fdbd542d22c95e15c93ea..99ba4178b9bc2a12fd70c02a66806d709318ef95 100644 (file)
@@ -65,63 +65,35 @@ public:
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
-        wxCoord new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+        return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
     }
     wxCoord XDEV2LOGREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) / m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) / m_scaleX - 0.5);
+        return wxCoordRound((double)(x) / m_scaleX);
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
     }
     wxCoord YDEV2LOG(wxCoord y) const
     {
-        wxCoord new_y = y - m_deviceOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-        else
-            return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+        return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
     }
     wxCoord YDEV2LOGREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) / m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) / m_scaleY - 0.5);
+        return wCoordRound((double)(y) / m_scaleY);
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
     }
     wxCoord XLOG2DEV(wxCoord x) const
     {
-        wxCoord new_x = x - m_logicalOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-        else
-            return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+        return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
     }
     wxCoord XLOG2DEVREL(wxCoord x) const
     {
-        if (x > 0)
-            return (wxCoord)((double)(x) * m_scaleX + 0.5);
-        else
-            return (wxCoord)((double)(x) * m_scaleX - 0.5);
+        return wxCoordRound((double)(x) * m_scaleX);
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
     }
     wxCoord YLOG2DEV(wxCoord y) const
     {
-        wxCoord new_y = y - m_logicalOriginY;
-        if (new_y > 0)
-            return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-        else
-            return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+        return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
     }
     wxCoord YLOG2DEVREL(wxCoord y) const
     {
-        if (y > 0)
-            return (wxCoord)((double)(y) * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)(y) * m_scaleY - 0.5);
+        return wxCoordRound((double)(y) * m_scaleY);
     }
 
 public:
     }
 
 public:
index 0620e82bdf99239b5e21178b56eeced50c485649..94b3de2a3922836f16e000c981bd71b060dd7ec7 100644 (file)
@@ -617,10 +617,10 @@ void wxPrintout::FitThisSizeToPageMargins(const wxSize& imageSize, const wxPageS
     GetPageSizeMM(&mw, &mh);
     float mmToDeviceX = float(pw) / mw;
     float mmToDeviceY = float(ph) / mh;
     GetPageSizeMM(&mw, &mh);
     float mmToDeviceX = float(pw) / mw;
     float mmToDeviceY = float(ph) / mh;
-    wxRect pageMarginsRect(paperRect.x + wxCoord(mmToDeviceX * topLeft.x),
-        paperRect.y + wxCoord(mmToDeviceY * topLeft.y),
-        paperRect.width - wxCoord(mmToDeviceX * (topLeft.x + bottomRight.x)),
-        paperRect.height - wxCoord(mmToDeviceY * (topLeft.y + bottomRight.y)));
+    wxRect pageMarginsRect(paperRect.x + wxCoordRound(mmToDeviceX * topLeft.x),
+        paperRect.y + wxCoordRound(mmToDeviceY * topLeft.y),
+        paperRect.width - wxCoordRound(mmToDeviceX * (topLeft.x + bottomRight.x)),
+        paperRect.height - wxCoordRound(mmToDeviceY * (topLeft.y + bottomRight.y)));
     wxCoord w, h;
     m_printoutDC->GetSize(&w, &h);
     float scaleX = (float(pageMarginsRect.width) * w) / (float(pw) * imageSize.x);
     wxCoord w, h;
     m_printoutDC->GetSize(&w, &h);
     float scaleX = (float(pageMarginsRect.width) * w) / (float(pw) * imageSize.x);
@@ -708,10 +708,10 @@ wxRect wxPrintout::GetLogicalPaperRect() const
     // This DC doesn't match the printed page, so we have to scale.
     float scaleX = float(w) / pw;
     float scaleY = float(h) / ph;
     // This DC doesn't match the printed page, so we have to scale.
     float scaleX = float(w) / pw;
     float scaleY = float(h) / ph;
-    return wxRect(m_printoutDC->DeviceToLogicalX(wxCoord(paperRect.x * scaleX)), 
-        m_printoutDC->DeviceToLogicalY(wxCoord(paperRect.y * scaleY)), 
-        m_printoutDC->DeviceToLogicalXRel(wxCoord(paperRect.width * scaleX)), 
-        m_printoutDC->DeviceToLogicalYRel(wxCoord(paperRect.height * scaleY)));
+    return wxRect(m_printoutDC->DeviceToLogicalX(wxCoordRound(paperRect.x * scaleX)), 
+        m_printoutDC->DeviceToLogicalY(wxCoordRound(paperRect.y * scaleY)), 
+        m_printoutDC->DeviceToLogicalXRel(wxCoordRound(paperRect.width * scaleX)), 
+        m_printoutDC->DeviceToLogicalYRel(wxCoordRound(paperRect.height * scaleY)));
 }
 
 wxRect wxPrintout::GetLogicalPageRect() const
 }
 
 wxRect wxPrintout::GetLogicalPageRect() const
@@ -740,10 +740,10 @@ wxRect wxPrintout::GetLogicalPageMarginsRect(const wxPageSetupDialogData& pageSe
     GetPageSizeMM(&mw, &mh);
     float mmToDeviceX = float(pw) / mw;
     float mmToDeviceY = float(ph) / mh;
     GetPageSizeMM(&mw, &mh);
     float mmToDeviceX = float(pw) / mw;
     float mmToDeviceY = float(ph) / mh;
-    wxRect pageMarginsRect(paperRect.x + wxCoord(mmToDeviceX * topLeft.x),
-        paperRect.y + wxCoord(mmToDeviceY * topLeft.y),
-        paperRect.width - wxCoord(mmToDeviceX * (topLeft.x + bottomRight.x)),
-        paperRect.height - wxCoord(mmToDeviceY * (topLeft.y + bottomRight.y)));
+    wxRect pageMarginsRect(paperRect.x + wxCoordRound(mmToDeviceX * topLeft.x),
+        paperRect.y + wxCoordRound(mmToDeviceY * topLeft.y),
+        paperRect.width - wxCoordRound(mmToDeviceX * (topLeft.x + bottomRight.x)),
+        paperRect.height - wxCoordRound(mmToDeviceY * (topLeft.y + bottomRight.y)));
     wxCoord w, h;
     m_printoutDC->GetSize(&w, &h);
     if (w == pw && h == ph) {
     wxCoord w, h;
     m_printoutDC->GetSize(&w, &h);
     if (w == pw && h == ph) {
@@ -756,10 +756,10 @@ wxRect wxPrintout::GetLogicalPageMarginsRect(const wxPageSetupDialogData& pageSe
     // This DC doesn't match the printed page, so we have to scale.
     float scaleX = float(w) / pw;
     float scaleY = float(h) / ph;
     // This DC doesn't match the printed page, so we have to scale.
     float scaleX = float(w) / pw;
     float scaleY = float(h) / ph;
-    return wxRect(m_printoutDC->DeviceToLogicalX(wxCoord(pageMarginsRect.x * scaleX)), 
-        m_printoutDC->DeviceToLogicalY(wxCoord(pageMarginsRect.y * scaleY)), 
-        m_printoutDC->DeviceToLogicalXRel(wxCoord(pageMarginsRect.width * scaleX)), 
-        m_printoutDC->DeviceToLogicalYRel(wxCoord(pageMarginsRect.height * scaleY)));
+    return wxRect(m_printoutDC->DeviceToLogicalX(wxCoordRound(pageMarginsRect.x * scaleX)), 
+        m_printoutDC->DeviceToLogicalY(wxCoordRound(pageMarginsRect.y * scaleY)), 
+        m_printoutDC->DeviceToLogicalXRel(wxCoordRound(pageMarginsRect.width * scaleX)), 
+        m_printoutDC->DeviceToLogicalYRel(wxCoordRound(pageMarginsRect.height * scaleY)));
 }
 
 void wxPrintout::SetLogicalOrigin(wxCoord x, wxCoord y)
 }
 
 void wxPrintout::SetLogicalOrigin(wxCoord x, wxCoord y)
index 01514f90f2048112d38b9ba761af2a45c2213767..2d2f2e27a4b31b852872c02a0b677caeec0c1636 100755 (executable)
@@ -2286,70 +2286,42 @@ void wxDC::Clear(void)
 */ // TODO
 wxCoord wxDCBase::DeviceToLogicalX(wxCoord x) const
 {
 */ // TODO
 wxCoord wxDCBase::DeviceToLogicalX(wxCoord x) const
 {
-        long new_x = x - m_deviceOriginX;
-        if (new_x > 0)
-            return (wxCoord)((double)new_x / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
-        else
-            return (wxCoord)((double)new_x / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+    return wxCoordRound((double)(x - m_deviceOriginX) / m_scaleX) * m_signX + m_logicalOriginX;
 }
 
 wxCoord wxDCBase::DeviceToLogicalY(wxCoord y) const
 {
 }
 
 wxCoord wxDCBase::DeviceToLogicalY(wxCoord y) const
 {
-       long new_y = y - m_deviceOriginY;
-       if (new_y > 0)
-               return (wxCoord)((double)new_y / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
-       else
-               return (wxCoord)((double)new_y / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+    return wxCoordRound((double)(y - m_deviceOriginY) / m_scaleY) * m_signY + m_logicalOriginY;
 }
 
 wxCoord wxDCBase::DeviceToLogicalXRel(wxCoord x) const
 {
 }
 
 wxCoord wxDCBase::DeviceToLogicalXRel(wxCoord x) const
 {
-       if (x > 0)
-               return (wxCoord)((double)x / m_scaleX + 0.5);
-       else
-               return (wxCoord)((double)x / m_scaleX - 0.5);
+    return wxCoordRound((double)(x) / m_scaleX);
 }
 
 wxCoord wxDCBase::DeviceToLogicalYRel(wxCoord y) const
 {
 }
 
 wxCoord wxDCBase::DeviceToLogicalYRel(wxCoord y) const
 {
-       if (y > 0)
-               return (wxCoord)((double)y / m_scaleY + 0.5);
-       else
-               return (wxCoord)((double)y / m_scaleY - 0.5);
+    return wxCoordRound((double)(y) / m_scaleY);
 }
 
 wxCoord wxDCBase::LogicalToDeviceX(wxCoord x) const
 {
 }
 
 wxCoord wxDCBase::LogicalToDeviceX(wxCoord x) const
 {
-       long new_x = x - m_logicalOriginX;
-       if (new_x > 0)
-               return (wxCoord)((double)new_x * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
-       else
-               return (wxCoord)((double)new_x * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+    return wxCoordRound((double)(x - m_logicalOriginX) * m_scaleX) * m_signX + m_deviceOriginX;
 }
 
 wxCoord wxDCBase::LogicalToDeviceY(wxCoord y) const
 {
 }
 
 wxCoord wxDCBase::LogicalToDeviceY(wxCoord y) const
 {
-       long new_y = y - m_logicalOriginY;
-       if (new_y > 0)
-               return (wxCoord)((double)new_y * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
-       else
-               return (wxCoord)((double)new_y * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+    return wxCoordRound((double)(y - m_logicalOriginY) * m_scaleY) * m_signY + m_deviceOriginY;
 }
 
 wxCoord wxDCBase::LogicalToDeviceXRel(wxCoord x) const
 {
 }
 
 wxCoord wxDCBase::LogicalToDeviceXRel(wxCoord x) const
 {
-       if (x > 0)
-               return (wxCoord)((double)x * m_scaleX + 0.5);
-       else
-               return (wxCoord)((double)x * m_scaleX - 0.5);
+    return wxCoordRound((double)(x) * m_scaleX);
 }
 
 wxCoord wxDCBase::LogicalToDeviceYRel(wxCoord y) const
 {
 }
 
 wxCoord wxDCBase::LogicalToDeviceYRel(wxCoord y) const
 {
-        if (y > 0)
-            return (wxCoord)((double)y * m_scaleY + 0.5);
-        else
-            return (wxCoord)((double)y * m_scaleY - 0.5);
+    return wxCoordRound((double)(y) * m_scaleY);
 }
 
 #endif // wxMAC_USE_CORE_GRAPHICS
 }
 
 #endif // wxMAC_USE_CORE_GRAPHICS