]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix warnings about implicit float or double to int conversions in wxMSW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Jul 2013 14:12:31 +0000 (14:12 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Jul 2013 14:12:31 +0000 (14:12 +0000)
Make the conversions explicit as these warnings are harmless.

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

include/wx/msw/bitmap.h
src/generic/spinctlg.cpp
src/msw/spinctrl.cpp
src/msw/uiaction.cpp

index f4e6cb4f7831d2f7c1ecd1b8bc4998a3366d7a3f..3f7ca535a18ea25b6952982f25bd86cb6d2b6ea7 100644 (file)
@@ -13,6 +13,7 @@
 #define _WX_BITMAP_H_
 
 #include "wx/msw/gdiimage.h"
+#include "wx/math.h"
 #include "wx/palette.h"
 
 class WXDLLIMPEXP_FWD_CORE wxBitmap;
@@ -145,7 +146,7 @@ public:
     virtual bool Create(int width, int height, const wxDC& dc);
     virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1);
     virtual bool CreateScaled(int w, int h, int d, double logicalScale)
-        { return Create(w*logicalScale,h*logicalScale,d); }
+        { return Create(wxRound(w*logicalScale), wxRound(h*logicalScale), d); }
 
     virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
     virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const;
@@ -175,7 +176,7 @@ public:
     virtual double GetScaledWidth() const { return GetWidth() / GetScaleFactor(); }
     virtual double GetScaledHeight() const { return GetHeight() / GetScaleFactor(); }
     virtual wxSize GetScaledSize() const
-    { return wxSize(GetScaledWidth(), GetScaledHeight()); }
+        { return wxSize(wxRound(GetScaledWidth()), wxRound(GetScaledHeight())); }
 
     // implementation only from now on
     // -------------------------------
index ffeacd88b054e2c05c65286d0139f5231ffb0187..90d087da873d24c7424f918c13edbea39f213431 100644 (file)
@@ -284,7 +284,7 @@ wxSize wxSpinCtrlGenericBase::DoGetSizeFromTextSize(int xlen, int ylen) const
 
     wxSize tsize(xlen + sizeBtn.x + MARGIN, totalS.y);
 #if defined(__WXMSW__)
-    tsize.IncBy(0.4 * totalS.y + 4, 0);
+    tsize.IncBy(4*totalS.y/10 + 4, 0);
 #elif defined(__WXGTK__)
     tsize.IncBy(totalS.y + 10, 0);
 #endif // MSW GTK
index 038d2986246bfe3fd9e0210257a8e64552e2dc85..8cea79bf7b944dc9cdeb222a8c5eff091e95a19d 100644 (file)
@@ -731,7 +731,7 @@ wxSize wxSpinCtrl::DoGetSizeFromTextSize(int xlen, int ylen) const
     // that's too big. So never use the height calculated
     // from wxSpinButton::DoGetBestSize().
 
-    wxSize tsize(xlen + sizeBtn.x + MARGIN_BETWEEN + 0.3 * y + 10,
+    wxSize tsize(xlen + sizeBtn.x + MARGIN_BETWEEN + 3*y/10 + 10,
                  EDIT_HEIGHT_FROM_CHAR_HEIGHT(y));
 
     // Check if the user requested a non-standard height.
index 5aff359052527b1f53867bc8eec7a167997de887..bc5bde1ad118437b883b4a098905e0578ab9c3d6 100644 (file)
@@ -65,8 +65,10 @@ bool wxUIActionSimulator::MouseMove(long x, long y)
     int displayx, displayy;
     wxDisplaySize(&displayx, &displayy);
 
-    int scaledx = ceil((float)x * 65535.0 / (displayx-1));
-    int scaledy = ceil((float)y * 65535.0 / (displayy-1));
+    // Casts are safe because x and y are supposed to be less than the display
+    // size, so there is no danger of overflow.
+    DWORD scaledx = static_cast<DWORD>(ceil(x * 65535.0 / (displayx-1)));
+    DWORD scaledy = static_cast<DWORD>(ceil(y * 65535.0 / (displayy-1)));
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, scaledx, scaledy, 0, 0);
 
     return true;