From 173d0796810bb65de9bdfdc6941d24a04628f6c2 Mon Sep 17 00:00:00 2001 From: Scott Talbert Date: Wed, 1 Dec 2021 14:19:00 -0500 Subject: [PATCH] Fix a bunch of Python 3.10 issues with pure-Python classes and demos In Python 3.10, a change[1] was implemented where extension functions that take integer arguments will no longer silently accept non-integer arguments (e.g., floats) that can only be converted to integers with a loss of precision. This PR fixes most of these issues in the pure-Python classes and demos by explicitly converting the parameters to int before passing them to wxWidgets. There is loss of precision, but this was happening before (automatically) anyway as most wxWidgets DeviceContext functions operate using integers. Additionally, the PR fixes a few sizing issues, mostly with SpinCtrls being too small on GTK3. This is an example of the relevant exception: Traceback (most recent call last): File "/usr/lib64/python3.10/site-packages/wx/lib/agw/pygauge.py", line 355, in OnPaint r.width = w TypeError: 'float' object cannot be interpreted as an integer Fixes #2038. [1] https://bugs.python.org/issue37999 --- demo/GridLabelRenderer.py | 4 +- demo/Mask.py | 4 +- demo/Overlay.py | 1 - demo/PenAndBrushStyles.py | 2 +- demo/PopupWindow.py | 2 +- demo/PrintFramework.py | 2 +- demo/PropertyGrid.py | 2 +- demo/Sizers.py | 2 +- demo/UIActionSimulator.py | 2 +- demo/agw/AUI.py | 32 +++---- demo/agw/MacLargeDemo.py | 4 +- demo/agw/PeakMeter.py | 6 +- demo/agw/PersistentControls.py | 2 +- demo/agw/RibbonBar.py | 2 +- demo/agw/SpeedMeter.py | 2 +- demo/agw/SuperToolTip.py | 3 +- demo/agw/ThumbDemoConfig.py | 1 + demo/agw/UltimateReportDemo.py | 8 +- demo/agw/Windows7Explorer_Contents.py | 16 ++-- demo/agw/ZoomBar.py | 2 +- wx/lib/agw/advancedsplash.py | 2 +- wx/lib/agw/aui/aui_utilities.py | 4 +- wx/lib/agw/aui/auibook.py | 4 +- wx/lib/agw/balloontip.py | 4 +- wx/lib/agw/flatmenu.py | 62 ++++++------- wx/lib/agw/flatnotebook.py | 10 +-- wx/lib/agw/floatspin.py | 2 +- wx/lib/agw/gradientbutton.py | 8 +- wx/lib/agw/hypertreelist.py | 2 +- wx/lib/agw/knobctrl.py | 12 +-- wx/lib/agw/labelbook.py | 32 +++---- wx/lib/agw/peakmeter.py | 2 +- wx/lib/agw/pygauge.py | 4 +- wx/lib/agw/ribbon/art_aui.py | 22 ++--- wx/lib/agw/ribbon/art_internal.py | 12 +-- wx/lib/agw/ribbon/art_msw.py | 88 +++++++++---------- wx/lib/agw/ribbon/bar.py | 4 +- wx/lib/agw/ribbon/buttonbar.py | 6 +- wx/lib/agw/ribbon/gallery.py | 8 +- wx/lib/agw/ribbon/panel.py | 16 ++-- wx/lib/agw/ribbon/toolbar.py | 2 +- wx/lib/agw/scrolledthumbnail.py | 24 +++--- wx/lib/agw/shapedbutton.py | 10 +-- wx/lib/agw/speedmeter.py | 70 ++++++++------- wx/lib/agw/supertooltip.py | 20 ++--- wx/lib/agw/toasterbox.py | 4 +- wx/lib/agw/ultimatelistctrl.py | 20 ++--- wx/lib/agw/xlsgrid.py | 4 +- wx/lib/agw/zoombar.py | 10 +-- wx/lib/analogclock/analogclock.py | 2 +- wx/lib/analogclock/helpers.py | 22 ++--- wx/lib/analogclock/setup.py | 6 +- wx/lib/buttons.py | 10 +-- wx/lib/colourchooser/pycolourchooser.py | 4 +- wx/lib/colourchooser/pypalette.py | 2 +- wx/lib/floatcanvas/FCObjects.py | 8 +- wx/lib/gizmos/ledctrl.py | 8 +- wx/lib/imagebrowser.py | 4 +- wx/lib/ogl/basic.py | 10 +-- wx/lib/ogl/bmpshape.py | 2 +- wx/lib/ogl/composit.py | 4 +- wx/lib/ogl/divided.py | 2 +- wx/lib/ogl/lines.py | 2 +- wx/lib/ogl/oglmisc.py | 4 +- wx/lib/plot/examples/demo.py | 4 +- wx/lib/plot/plotcanvas.py | 110 ++++++++++++------------ wx/lib/plot/polyobjects.py | 22 +++-- wx/lib/popupctl.py | 2 +- wx/lib/scrolledpanel.py | 2 +- wx/lib/throbber.py | 6 +- wx/lib/ticker.py | 4 +- 71 files changed, 410 insertions(+), 397 deletions(-) diff --git a/demo/GridLabelRenderer.py b/demo/GridLabelRenderer.py index 794dd64e..1440ef41 100644 --- a/demo/GridLabelRenderer.py +++ b/demo/GridLabelRenderer.py @@ -46,8 +46,8 @@ class MyCornerLabelRenderer(glr.GridLabelRenderer): self._bmp = images.Smiles.GetBitmap() def Draw(self, grid, dc, rect, rc): - x = rect.left + (rect.width - self._bmp.GetWidth()) / 2 - y = rect.top + (rect.height - self._bmp.GetHeight()) / 2 + x = rect.left + (rect.width - self._bmp.GetWidth()) // 2 + y = rect.top + (rect.height - self._bmp.GetHeight()) // 2 dc.DrawBitmap(self._bmp, x, y, True) diff --git a/demo/Mask.py b/demo/Mask.py index 109b8f30..e924f95b 100644 --- a/demo/Mask.py +++ b/demo/Mask.py @@ -90,9 +90,9 @@ class TestMaskWindow(wx.ScrolledWindow): for text, code in logicList: x,y = 120+150*(i%4), 20+100*(i/4) - dc.DrawText(text, x, y-20) + dc.DrawText(text, x, int(y-20)) mdc.SelectObject(self.bmp_withcolourmask) - dc.Blit(x,y, cx,cy, mdc, 0,0, code, True) + dc.Blit(x,int(y), cx,cy, mdc, 0,0, code, True) i = i + 1 diff --git a/demo/Overlay.py b/demo/Overlay.py index 65164cd8..fa65be00 100644 --- a/demo/Overlay.py +++ b/demo/Overlay.py @@ -56,7 +56,6 @@ class TestPanel(wx.Panel): self.penstylesCombo.SetToolTip('Pen Style') self.overlayPenWidth = wx.SpinCtrl(self, -1, value='', - size=(75, -1), style=wx.SP_ARROW_KEYS, min=1, max=24, initial=1) self.overlayPenWidth.SetToolTip('Pen Width') diff --git a/demo/PenAndBrushStyles.py b/demo/PenAndBrushStyles.py index 24040b1f..1183f684 100644 --- a/demo/PenAndBrushStyles.py +++ b/demo/PenAndBrushStyles.py @@ -100,7 +100,7 @@ class PenPanel(BasePanel): dc.SetPen(pen) y = labelHeight + (height - labelHeight)/2 - dc.DrawLine(5, y, width-5, y) + dc.DrawLine(5, int(y), width-5, int(y)) class BrushPanel(BasePanel): diff --git a/demo/PopupWindow.py b/demo/PopupWindow.py index d8e17557..b54b9870 100644 --- a/demo/PopupWindow.py +++ b/demo/PopupWindow.py @@ -89,7 +89,7 @@ class TestTransientPopup(wx.PopupTransientWindow): "(or its first child) loses focus in \n" "any other way.") btn = wx.Button(panel, -1, "Press Me") - spin = wx.SpinCtrl(panel, -1, "Hello", size=(100,-1)) + spin = wx.SpinCtrl(panel, -1, "Hello") btn.Bind(wx.EVT_BUTTON, self.OnButton) sizer = wx.BoxSizer(wx.VERTICAL) diff --git a/demo/PrintFramework.py b/demo/PrintFramework.py index e7a29a07..f0873ae9 100644 --- a/demo/PrintFramework.py +++ b/demo/PrintFramework.py @@ -81,7 +81,7 @@ class MyPrintout(wx.Printout): #------------------------------------------- self.canvas.DoDrawing(dc, True) - dc.DrawText("Page: %d" % page, marginX/2, maxY-marginY) + dc.DrawText("Page: %d" % page, marginX//2, maxY-marginY) return True diff --git a/demo/PropertyGrid.py b/demo/PropertyGrid.py index c56e08b6..fbef29e3 100644 --- a/demo/PropertyGrid.py +++ b/demo/PropertyGrid.py @@ -150,7 +150,7 @@ class SizeProperty(wxpg.PGProperty): """ Utility convert arbitrary value to a real wx.Size. """ import collections - if isinstance(value, collections.Sequence) or hasattr(value, '__getitem__'): + if isinstance(value, collections.abc.Sequence) or hasattr(value, '__getitem__'): value = wx.Size(*value) return value diff --git a/demo/Sizers.py b/demo/Sizers.py index 6ababede..a025050f 100644 --- a/demo/Sizers.py +++ b/demo/Sizers.py @@ -45,7 +45,7 @@ class SampleWindow(wx.Window): dc = wx.PaintDC(self) w,h = dc.GetTextExtent(self.text) dc.Clear() - dc.DrawText(self.text, (sz.width-w)/2, (sz.height-h)/2) + dc.DrawText(self.text, (sz.width-w)//2, (sz.height-h)//2) def OnSize(self, evt): self.Refresh() diff --git a/demo/UIActionSimulator.py b/demo/UIActionSimulator.py index cbba14f5..0a6fd023 100644 --- a/demo/UIActionSimulator.py +++ b/demo/UIActionSimulator.py @@ -88,7 +88,7 @@ class TestPanel(wx.Panel): def _setNextKeyEvent(self): evtType, key, modifiers, milli = self._playbackEvents.pop(0) - milli = max(milli/2, 1) # play back faster than it was recorded + milli = max(milli//2, 1) # play back faster than it was recorded print(evtType, key, modifiers, milli) wx.CallLater(milli, self._playbackKey, evtType, key, modifiers) diff --git a/demo/agw/AUI.py b/demo/agw/AUI.py index 7c219686..b38313c8 100644 --- a/demo/agw/AUI.py +++ b/demo/agw/AUI.py @@ -393,7 +393,7 @@ class SizeReportCtrl(wx.Control): dc.SetPen(wx.LIGHT_GREY_PEN) dc.DrawLine(0, 0, size.x, size.y) dc.DrawLine(0, size.y, size.x, 0) - dc.DrawText(s, (size.x-w)/2, (size.y-height*5)/2) + dc.DrawText(s, (size.x-w)//2, (size.y-height*5)//2) if self._mgr: @@ -401,19 +401,19 @@ class SizeReportCtrl(wx.Control): s = "Layer: %d"%pi.dock_layer w, h = dc.GetTextExtent(s) - dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*1)) + dc.DrawText(s, (size.x-w)//2, ((size.y-(height*5))//2)+(height*1)) s = "Dock: %d Row: %d"%(pi.dock_direction, pi.dock_row) w, h = dc.GetTextExtent(s) - dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*2)) + dc.DrawText(s, (size.x-w)//2, ((size.y-(height*5))//2)+(height*2)) s = "Position: %d"%pi.dock_pos w, h = dc.GetTextExtent(s) - dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*3)) + dc.DrawText(s, (size.x-w)//2, ((size.y-(height*5))//2)+(height*3)) s = "Proportion: %d"%pi.dock_proportion w, h = dc.GetTextExtent(s) - dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*4)) + dc.DrawText(s, (size.x-w)//2, ((size.y-(height*5))//2)+(height*4)) def OnEraseBackground(self, event): @@ -435,7 +435,7 @@ class SettingsPanel(wx.Panel): s1 = wx.BoxSizer(wx.HORIZONTAL) self._border_size = wx.SpinCtrl(self, ID_PaneBorderSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE), - wx.DefaultPosition, wx.Size(50, 20), wx.SP_ARROW_KEYS, 0, 100, + wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE)) s1.Add((1, 1), 1, wx.EXPAND) s1.Add(wx.StaticText(self, -1, "Pane Border Size:")) @@ -445,7 +445,7 @@ class SettingsPanel(wx.Panel): s2 = wx.BoxSizer(wx.HORIZONTAL) self._sash_size = wx.SpinCtrl(self, ID_SashSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE), wx.DefaultPosition, - wx.Size(50, 20), wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE)) + wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_SASH_SIZE)) s2.Add((1, 1), 1, wx.EXPAND) s2.Add(wx.StaticText(self, -1, "Sash Size:")) s2.Add(self._sash_size) @@ -454,7 +454,7 @@ class SettingsPanel(wx.Panel): s3 = wx.BoxSizer(wx.HORIZONTAL) self._caption_size = wx.SpinCtrl(self, ID_CaptionSize, "%d"%frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE), - wx.DefaultPosition, wx.Size(50, 20), wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE)) + wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 100, frame.GetDockArt().GetMetric(aui.AUI_DOCKART_CAPTION_SIZE)) s3.Add((1, 1), 1, wx.EXPAND) s3.Add(wx.StaticText(self, -1, "Caption Size:")) s3.Add(self._caption_size) @@ -807,9 +807,9 @@ class ProgressGauge(wx.Window): # We take the percent way of the colour from colour -> white i = percent - r = colour.Red() + ((i*rd*100)/high)/100 - g = colour.Green() + ((i*gd*100)/high)/100 - b = colour.Blue() + ((i*bd*100)/high)/100 + r = colour.Red() + ((i*rd*100)//high)//100 + g = colour.Green() + ((i*gd*100)//high)//100 + b = colour.Blue() + ((i*bd*100)//high)//100 return wx.Colour(r, g, b) @@ -826,10 +826,10 @@ class ProgressGauge(wx.Window): x, y, width, height = clientRect x, width = self._pos, interval - gradientRect.SetHeight(gradientRect.GetHeight()/2) + gradientRect.SetHeight(gradientRect.GetHeight()//2) topStart, topEnd = self._topStartColour, self._topEndColour - rc1 = wx.Rect(x, y, width, height/2) + rc1 = wx.Rect(int(x), y, int(width), height//2) path1 = self.GetPath(gc, rc1, 8) br1 = gc.CreateLinearGradientBrush(x, y, x, y+height/2, topStart, topEnd) gc.SetBrush(br1) @@ -845,14 +845,14 @@ class ProgressGauge(wx.Window): bottomStart, bottomEnd = self._bottomStartColour, self._bottomEndColour - rc3 = wx.Rect(x, y+height/2, width, height/2) + rc3 = wx.Rect(int(x), y+height//2, int(width), height//2) path3 = self.GetPath(gc, rc3, 8) br3 = gc.CreateLinearGradientBrush(x, y+height/2, x, y+height, bottomStart, bottomEnd) gc.SetBrush(br3) gc.FillPath(path3) #draw main path4 = gc.CreatePath() - path4.AddRectangle(x, y+height/2, width, 8) + path4.AddRectangle(x, y+height//2, width, 8) path4.CloseSubpath() gc.SetBrush(br3) gc.FillPath(path4) @@ -2613,7 +2613,7 @@ class AuiFrame(wx.Frame): flex.Add(wx.TextCtrl(panel, -1, "", wx.DefaultPosition, wx.Size(100, -1)), 1, wx.ALL|wx.ALIGN_CENTRE, 5) flex.Add(wx.StaticText(panel, -1, "wxSpinCtrl:"), 0, wx.ALL|wx.ALIGN_CENTRE, 5) - flex.Add(wx.SpinCtrl(panel, -1, "5", wx.DefaultPosition, wx.Size(100, -1), + flex.Add(wx.SpinCtrl(panel, -1, "5", wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 5, 50, 5), 0, wx.ALL|wx.ALIGN_CENTRE, 5) flex.Add((5, 5)) flex.Add((5, 5)) diff --git a/demo/agw/MacLargeDemo.py b/demo/agw/MacLargeDemo.py index 4d967a54..a5b8a0e2 100644 --- a/demo/agw/MacLargeDemo.py +++ b/demo/agw/MacLargeDemo.py @@ -223,12 +223,12 @@ class MacRenderer(object): mdc.SelectObject(wx.NullBitmap) # Center the progress bar vertically in the box supplied - y = y + (h - PIPE_HEIGHT)/2 + y = y + (h - PIPE_HEIGHT)//2 if percent == 0: middle = 0 else: - middle = (w * percent)/100 + middle = int((w * percent)/100) if w < 1: return diff --git a/demo/agw/PeakMeter.py b/demo/agw/PeakMeter.py index a7c9a6f5..e9dab711 100644 --- a/demo/agw/PeakMeter.py +++ b/demo/agw/PeakMeter.py @@ -149,10 +149,10 @@ class PeakMeterCtrlDemo(wx.Panel): def OnStart(self, event): - self.timer.Start(1000/2) # 2 fps + self.timer.Start(1000//2) # 2 fps - self.vertPeak.Start(1000/18) # 18 fps - self.horzPeak.Start(1000/20) # 20 fps + self.vertPeak.Start(1000//18) # 18 fps + self.horzPeak.Start(1000//20) # 20 fps def OnStop(self, event): diff --git a/demo/agw/PersistentControls.py b/demo/agw/PersistentControls.py index f19cc4a9..cf97dd9f 100644 --- a/demo/agw/PersistentControls.py +++ b/demo/agw/PersistentControls.py @@ -234,7 +234,7 @@ class PersistentFrame1(wx.Frame): sizer_1.Add(label_1, 0, wx.ALL, 5) sizer_1.Add(combo, 0, wx.LEFT|wx.RIGHT, 5) sizer_1.Add((20, 20), 1) - box2.Add(sizer_1, 1, wx.EXPAND|wx.ALIGN_CENTER, 0) + box2.Add(sizer_1, 1, wx.EXPAND, 0) box2.Add((0, 0), 1, 1) otherPanel.SetSizer(box2) diff --git a/demo/agw/RibbonBar.py b/demo/agw/RibbonBar.py index 7103e9d8..d28a2c66 100644 --- a/demo/agw/RibbonBar.py +++ b/demo/agw/RibbonBar.py @@ -799,7 +799,7 @@ class RibbonFrame(wx.Frame): (c.Blue() + 192) % 256) dc.SetTextForeground(foreground) - dc.DrawText(colour, (iWidth - size.GetWidth() + 1) / 2, (iHeight - size.GetHeight()) / 2) + dc.DrawText(colour, (iWidth - size.GetWidth() + 1) // 2, (iHeight - size.GetHeight()) // 2) dc.SelectObjectAsSource(wx.NullBitmap) item = gallery.Append(bitmap, wx.ID_ANY) diff --git a/demo/agw/SpeedMeter.py b/demo/agw/SpeedMeter.py index 9f0fdebb..575e84a8 100644 --- a/demo/agw/SpeedMeter.py +++ b/demo/agw/SpeedMeter.py @@ -418,7 +418,7 @@ class SpeedMeterDemo(wx.Panel): bsizer3 = wx.BoxSizer(wx.VERTICAL) hsizer3 = wx.BoxSizer(wx.HORIZONTAL) - sc = wx.SpinCtrl(panel3, -1, size=(60,20)) + sc = wx.SpinCtrl(panel3, -1) sc.SetRange(1, 250) sc.SetValue(50) diff --git a/demo/agw/SuperToolTip.py b/demo/agw/SuperToolTip.py index 5e65f06b..88728e54 100644 --- a/demo/agw/SuperToolTip.py +++ b/demo/agw/SuperToolTip.py @@ -43,7 +43,7 @@ class SuperToolTipDemo(wx.Frame): self.topColourPicker = wx.ColourPickerCtrl(self.mainPanel, colour=wx.WHITE) system = wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION) r, g, b, a = system - self.middleColourPicker = wx.ColourPickerCtrl(self.mainPanel, colour=wx.Colour((255-r)/2, (255-g)/2, (255-b)/2)) + self.middleColourPicker = wx.ColourPickerCtrl(self.mainPanel, colour=wx.Colour((255-r)//2, (255-g)//2, (255-b)//2)) self.bottomColourPicker = wx.ColourPickerCtrl(self.mainPanel, colour=system) self.headerCheck = wx.CheckBox(self.mainPanel, -1, "Show Header") self.headerText = wx.TextCtrl(self.mainPanel, -1, "Merge And Center") @@ -233,7 +233,6 @@ class SuperToolTipDemo(wx.Frame): frameSizer.Add(self.mainPanel, 1, wx.EXPAND, 0) self.SetSizer(frameSizer) frameSizer.Layout() - frameSizer.Fit(self) self.Layout() wx.CallAfter(mainSizer.Layout) diff --git a/demo/agw/ThumbDemoConfig.py b/demo/agw/ThumbDemoConfig.py index 392192d5..d4751e50 100644 --- a/demo/agw/ThumbDemoConfig.py +++ b/demo/agw/ThumbDemoConfig.py @@ -4,6 +4,7 @@ import wx import os import images +import wx.lib.agw.scrolledthumbnail as TC from wx.lib.agw.scrolledthumbnail import (ScrolledThumbnail, Thumb, NativeImageHandler, diff --git a/demo/agw/UltimateReportDemo.py b/demo/agw/UltimateReportDemo.py index 40f49cb8..ad455847 100644 --- a/demo/agw/UltimateReportDemo.py +++ b/demo/agw/UltimateReportDemo.py @@ -216,7 +216,7 @@ class UltimateRenderer_1(object): mdc.SetFont(wx.Font(8, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)) text = "%d Mb"%self.progressValue textWidth, dummy = mdc.GetTextExtent(text) - mdc.DrawText(text, rect.width/2 - textWidth/2, rect.height/2 - dummy/2) + mdc.DrawText(text, rect.width//2 - textWidth//2, rect.height//2 - dummy//2) dc.SetClippingRegion(rect.x, rect.y, rect.width, rect.height) dc.Blit(rect.x+3, rect.y, rect.width-6, rect.height, mdc, 0, 0) dc.DestroyClippingRegion() @@ -279,12 +279,12 @@ class UltimateRenderer_1(object): mdc.SelectObject(wx.NullBitmap) # Center the progress bar vertically in the box supplied - y = y + (h - PIPE_HEIGHT)/2 + y = y + (h - PIPE_HEIGHT)//2 if percent == 0: middle = 0 else: - middle = (w * percent)/100 + middle = (w * percent)//100 if middle == 0: # not started bitmap = self.REMAINING_BITMAP.GetSubBitmap((1, 0, w, PIPE_HEIGHT)) @@ -335,7 +335,7 @@ class UltimateRenderer_2(object): colours = [wx.RED, wx.WHITE, wx.GREEN, wx.Colour("SKY BLUE")] w, h = dc.GetTextExtent("Hg") x = rect.x + 1 - y = rect.y + rect.height/2 - h/2 + y = rect.y + rect.height//2 - h//2 for ch in self.text: dc.SetTextForeground(random.choice(colours)) diff --git a/demo/agw/Windows7Explorer_Contents.py b/demo/agw/Windows7Explorer_Contents.py index f754d787..b23df0e1 100644 --- a/demo/agw/Windows7Explorer_Contents.py +++ b/demo/agw/Windows7Explorer_Contents.py @@ -127,13 +127,13 @@ class FirstColumnRenderer(object): """Draw a custom progress bar using double buffering to prevent flicker""" bmpWidth, bmpHeight = self.icon.GetWidth(), self.icon.GetHeight() - dc.DrawIcon(self.icon, rect.x+5, rect.y+(rect.height-bmpHeight)/2) + dc.DrawIcon(self.icon, rect.x+5, rect.y+(rect.height-bmpHeight)//2) dc.SetFont(self.normalFont) textWidth, textHeight = dc.GetTextExtent(self.text) dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNTEXT)) - dc.DrawText(self.text, rect.x+bmpWidth+10, rect.y+(rect.height - textHeight)/4) + dc.DrawText(self.text, rect.x+bmpWidth+10, rect.y+(rect.height - textHeight)//4) if not self.description: return @@ -144,10 +144,10 @@ class FirstColumnRenderer(object): textWidth, textHeight = dc.GetTextExtent("Type: " + self.description) dc.SetTextForeground(self.greyColour) - dc.DrawText("Type: ", rect.x+bmpWidth+10, rect.y+3*(rect.height - textHeight)/4) + dc.DrawText("Type: ", rect.x+bmpWidth+10, rect.y+3*(rect.height - textHeight)//4) dc.SetTextForeground(wx.BLACK) - dc.DrawText(self.description, rect.x+bmpWidth+dummy1+10, rect.y+3*(rect.height - textHeight)/4) + dc.DrawText(self.description, rect.x+bmpWidth+dummy1+10, rect.y+3*(rect.height - textHeight)//4) def GetLineHeight(self): @@ -207,10 +207,10 @@ class SecondColumnRenderer(object): textWidth, textHeight = dc.GetTextExtent("Date modified: " + date) dc.SetTextForeground(self.greyColour) - dc.DrawText("Date modified: ", rect.x+5, rect.y+(rect.height - textHeight)/4) + dc.DrawText("Date modified: ", rect.x+5, rect.y+(rect.height - textHeight)//4) dc.SetTextForeground(wx.BLACK) - dc.DrawText(date, rect.x+dummy1+5, rect.y+(rect.height - textHeight)/4) + dc.DrawText(date, rect.x+dummy1+5, rect.y+(rect.height - textHeight)//4) if not self.size: return @@ -218,10 +218,10 @@ class SecondColumnRenderer(object): dummy1, dummy2= dc.GetTextExtent("Size: ") dc.SetTextForeground(self.greyColour) - dc.DrawText("Size: ", rect.x+5, rect.y+3*(rect.height - textHeight)/4) + dc.DrawText("Size: ", rect.x+5, rect.y+3*(rect.height - textHeight)//4) dc.SetTextForeground(wx.BLACK) - dc.DrawText(self.size, rect.x+dummy1+5, rect.y+3*(rect.height - textHeight)/4) + dc.DrawText(self.size, rect.x+dummy1+5, rect.y+3*(rect.height - textHeight)//4) def GetLineHeight(self): diff --git a/demo/agw/ZoomBar.py b/demo/agw/ZoomBar.py index 376ce349..14b0278e 100644 --- a/demo/agw/ZoomBar.py +++ b/demo/agw/ZoomBar.py @@ -55,7 +55,7 @@ class TestPanel(wx.Panel): reflections = glob.glob(bitmapDir + "/*96Flip40.png") separatorImage = bitmapDir + "/separator.gif" - separatorReflection = bitmapDir + "/separatorFlip.png" + separatorReflection = bitmapDir + "/separatorflip.png" count = 0 for std, ref in zip(standard, reflections): diff --git a/wx/lib/agw/advancedsplash.py b/wx/lib/agw/advancedsplash.py index 1f8c32df..d351ea06 100644 --- a/wx/lib/agw/advancedsplash.py +++ b/wx/lib/agw/advancedsplash.py @@ -438,7 +438,7 @@ class AdvancedSplash(wx.Frame): if font is None: self._textfont = wx.Font(1, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False) - self._textsize = 10.0 + self._textsize = 10 self._textfont.SetPointSize(self._textsize) else: self._textfont = font diff --git a/wx/lib/agw/aui/aui_utilities.py b/wx/lib/agw/aui/aui_utilities.py index 7bad7351..230b0dcb 100644 --- a/wx/lib/agw/aui/aui_utilities.py +++ b/wx/lib/agw/aui/aui_utilities.py @@ -585,12 +585,12 @@ def RescaleScreenShot(bmp, thumbnail_size=200): if bmpW > bmpH: if bmpW > thumbnail_size: ratio = bmpW/thumbnail_size - newW, newH = bmpW//ratio, bmpH//ratio + newW, newH = int(bmpW//ratio), int(bmpH//ratio) img.Rescale(newW, newH, wx.IMAGE_QUALITY_HIGH) else: if bmpH > thumbnail_size: ratio = bmpH/thumbnail_size - newW, newH = bmpW//ratio, bmpH//ratio + newW, newH = int(bmpW//ratio), int(bmpH//ratio) img.Rescale(newW, newH, wx.IMAGE_QUALITY_HIGH) newBmp = img.ConvertToBitmap() diff --git a/wx/lib/agw/aui/auibook.py b/wx/lib/agw/aui/auibook.py index ba7cf472..f5ad2a56 100644 --- a/wx/lib/agw/aui/auibook.py +++ b/wx/lib/agw/aui/auibook.py @@ -3452,8 +3452,8 @@ class AuiNotebook(wx.Panel): # should happen around the middle if tab_ctrl_count < 2: new_split_size = self.GetClientSize() - new_split_size.x /= 2 - new_split_size.y /= 2 + new_split_size.x //= 2 + new_split_size.y //= 2 else: diff --git a/wx/lib/agw/balloontip.py b/wx/lib/agw/balloontip.py index b4155d74..57baca72 100644 --- a/wx/lib/agw/balloontip.py +++ b/wx/lib/agw/balloontip.py @@ -615,7 +615,7 @@ class BalloonTip(object): if delay < 1: raise Exception("\nERROR: Delay Time For BalloonTip Creation Should Be Greater Than 1 ms") - self._startdelaytime = float(delay) + self._startdelaytime = int(delay) def GetStartDelay(self): @@ -640,7 +640,7 @@ class BalloonTip(object): if delay < 1: raise Exception("\nERROR: Delay Time For BalloonTip Destruction Should Be Greater Than 1 ms") - self._enddelaytime = float(delay) + self._enddelaytime = int(delay) def GetEndDelay(self): diff --git a/wx/lib/agw/flatmenu.py b/wx/lib/agw/flatmenu.py index 5ba28e58..85f295b8 100644 --- a/wx/lib/agw/flatmenu.py +++ b/wx/lib/agw/flatmenu.py @@ -736,8 +736,8 @@ class FMRenderer(object): """ dcsaver = DCSaver(dc) - sepRect1 = wx.Rect(xCoord + textX, yCoord + 1, sepWidth/2, 1) - sepRect2 = wx.Rect(xCoord + textX + sepWidth/2, yCoord + 1, sepWidth/2-1, 1) + sepRect1 = wx.Rect(xCoord + textX, yCoord + 1, sepWidth//2, 1) + sepRect2 = wx.Rect(xCoord + textX + sepWidth//2, yCoord + 1, sepWidth//2-1, 1) artMgr = ArtManager.Get() backColour = artMgr.GetMenuFaceColour() @@ -817,11 +817,11 @@ class FMRenderer(object): imgWidth = bmp.GetWidth() if imageMarginX == 0: - xx = rect.x + (leftMarginWidth - imgWidth)/2 + xx = rect.x + (leftMarginWidth - imgWidth)//2 else: - xx = rect.x + ((leftMarginWidth - rect.height) - imgWidth)/2 + rect.height + xx = rect.x + ((leftMarginWidth - rect.height) - imgWidth)//2 + rect.height - yy = rect.y + (rect.height - imgHeight)/2 + yy = rect.y + (rect.height - imgHeight)//2 dc.DrawBitmap(bmp, xx, yy, True) if item.GetKind() == wx.ITEM_CHECK: @@ -837,7 +837,7 @@ class FMRenderer(object): if not selected and self.highlightCheckAndRadio: self.DrawButton(dc, rr, ControlFocus) - dc.DrawBitmap(item._checkMarkBmp, rr.x + (rr.width - 16)/2, rr.y + (rr.height - 16)/2, True) + dc.DrawBitmap(item._checkMarkBmp, rr.x + (rr.width - 16)//2, rr.y + (rr.height - 16)//2, True) if item.GetKind() == wx.ITEM_RADIO: @@ -852,7 +852,7 @@ class FMRenderer(object): if not selected and self.highlightCheckAndRadio: self.DrawButton(dc, rr, ControlFocus) - dc.DrawBitmap(item._radioMarkBmp, rr.x + (rr.width - 16)/2, rr.y + (rr.height - 16)/2, True) + dc.DrawBitmap(item._radioMarkBmp, rr.x + (rr.width - 16)//2, rr.y + (rr.height - 16)//2, True) # Draw text - without accelerators text = item.GetLabel() @@ -890,7 +890,7 @@ class FMRenderer(object): w3, dummy = dc.GetTextExtent(text3) posx = xCoord + textX + borderXSize - posy = (itemHeight - h)/2 + yCoord + posy = (itemHeight - h)//2 + yCoord # Draw first part dc.DrawText(text1, posx, posy) @@ -912,7 +912,7 @@ class FMRenderer(object): else: w, h = dc.GetTextExtent(text) - dc.DrawText(text, xCoord + textX + borderXSize, (itemHeight - h)/2 + yCoord) + dc.DrawText(text, xCoord + textX + borderXSize, (itemHeight - h)//2 + yCoord) # Now draw accelerator @@ -920,7 +920,7 @@ class FMRenderer(object): if item.GetAccelString(): accelWidth, accelHeight = dc.GetTextExtent(item.GetAccelString()) - dc.DrawText(item.GetAccelString(), xCoord + rightMarginX - accelWidth, (itemHeight - accelHeight)/2 + yCoord) + dc.DrawText(item.GetAccelString(), xCoord + rightMarginX - accelWidth, (itemHeight - accelHeight)//2 + yCoord) # Check if this item has sub-menu - if it does, draw # right arrow on the right margin @@ -932,7 +932,7 @@ class FMRenderer(object): xx = xCoord + rightMarginX + borderXSize rr = wx.Rect(xx, rect.y + 1, rect.height-2, rect.height-2) - dc.DrawBitmap(rightArrowBmp, rr.x + 4, rr.y +(rr.height-16)/2, True) + dc.DrawBitmap(rightArrowBmp, rr.x + 4, rr.y +(rr.height-16)//2, True) def DrawMenuBarButton(self, dc, rect, state): @@ -1142,7 +1142,7 @@ class FMRenderer(object): # Get the menu item rect textWidth, textHeight = dc.GetTextExtent(fixedText) #rect = wx.Rect(posx+menubar._spacer/2, posy, textWidth, textHeight) - rect = wx.Rect(posx+padding/2, posy, textWidth, textHeight) + rect = wx.Rect(posx+padding//2, posy, textWidth, textHeight) # Can we draw more?? # the +DROP_DOWN_ARROW_WIDTH is the width of the drop down arrow @@ -1172,7 +1172,7 @@ class FMRenderer(object): dc.SetTextForeground(textColour) ww, hh = dc.GetTextExtent(labelOnly) - textOffset = (rect.width - ww) / 2 + textOffset = (rect.width - ww) // 2 if not menubar._isLCD and item.GetTextBitmap().IsOk() and not selected: dc.DrawBitmap(item.GetTextBitmap(), rect.x, rect.y, True) @@ -1505,8 +1505,8 @@ class FMRendererMSOffice2007(FMRenderer): baseColour = colour # Define the middle points - leftPt = wx.Point(rect.x, rect.y + (rect.height / 2)) - rightPt = wx.Point(rect.x + rect.width-1, rect.y + (rect.height / 2)) + leftPt = wx.Point(rect.x, rect.y + (rect.height // 2)) + rightPt = wx.Point(rect.x + rect.width-1, rect.y + (rect.height // 2)) # Define the top region top = wx.Rect((rect.GetLeft(), rect.GetTop()), rightPt) @@ -1572,11 +1572,11 @@ class FMRendererMSOffice2007(FMRenderer): factor = artMgr.GetMenuBgFactor() - leftPt1 = wx.Point(rect.x, rect.y + (rect.height / factor)) - leftPt2 = wx.Point(rect.x, rect.y + (rect.height / factor)*(factor-1)) + leftPt1 = wx.Point(rect.x, rect.y + (rect.height // factor)) + leftPt2 = wx.Point(rect.x, rect.y + (rect.height // factor)*(factor-1)) - rightPt1 = wx.Point(rect.x + rect.width, rect.y + (rect.height / factor)) - rightPt2 = wx.Point(rect.x + rect.width, rect.y + (rect.height / factor)*(factor-1)) + rightPt1 = wx.Point(rect.x + rect.width, rect.y + (rect.height // factor)) + rightPt2 = wx.Point(rect.x + rect.width, rect.y + (rect.height // factor)*(factor-1)) # Define the top region topReg = [wx.Point() for ii in range(7)] @@ -2707,7 +2707,7 @@ class FlatMenuBar(wx.Panel): elif tbItem.IsCustomControl(): control = tbItem.GetCustomControl() ctrlSize = control.GetSize() - ctrlPos = wx.Point(xx, rect.y + (rect.height - ctrlSize.y)/2) + ctrlPos = wx.Point(xx, rect.y + (rect.height - ctrlSize.y)//2) if control.GetPosition() != ctrlPos: control.SetPosition(ctrlPos) @@ -2727,9 +2727,9 @@ class FlatMenuBar(wx.Panel): # Draw the toolbar image if bmp.IsOk(): - x = xx - self._toolbarSpacer/2 + x = xx - self._toolbarSpacer//2 #y = rect.y + (rect.height - bmp.GetHeight())/2 - 1 - y = rect.y + self._toolbarMargin/2 + y = rect.y + self._toolbarMargin//2 buttonRect = wx.Rect(x, y, highlight_width, highlight_height) @@ -2745,8 +2745,8 @@ class FlatMenuBar(wx.Panel): else: self._tbButtons[i]._state = ControlNormal - imgx = buttonRect.x + (buttonRect.width - bmp.GetWidth())/2 - imgy = buttonRect.y + (buttonRect.height - bmp.GetHeight())/2 + imgx = buttonRect.x + (buttonRect.width - bmp.GetWidth())//2 + imgy = buttonRect.y + (buttonRect.height - bmp.GetHeight())//2 if self._tbButtons[i]._state == ControlFocus and not self._tbButtons[i]._tbItem.IsSelected(): @@ -2827,8 +2827,8 @@ class FlatMenuBar(wx.Panel): dropArrowBmp = self.GetRenderer()._bitmaps["arrow_down"] # Calc the image coordinates - xx = rect.x + (DROP_DOWN_ARROW_WIDTH - dropArrowBmp.GetWidth())/2 - yy = rect.y + (rect.height - dropArrowBmp.GetHeight())/2 + xx = rect.x + (DROP_DOWN_ARROW_WIDTH - dropArrowBmp.GetWidth())//2 + yy = rect.y + (rect.height - dropArrowBmp.GetHeight())//2 dc.DrawBitmap(dropArrowBmp, xx, yy + self._spacer, True) self._dropDownButtonState = state @@ -3269,8 +3269,8 @@ class FlatMenuBar(wx.Panel): # draw the bitmap over the highlight buttonRect = wx.Rect(*rect) - x = rect.x + (buttonRect.width - self._tbButtons[idx]._tbItem.GetBitmap().GetWidth())/2 - y = rect.y + (buttonRect.height - self._tbButtons[idx]._tbItem.GetBitmap().GetHeight())/2 + x = rect.x + (buttonRect.width - self._tbButtons[idx]._tbItem.GetBitmap().GetWidth())//2 + y = rect.y + (buttonRect.height - self._tbButtons[idx]._tbItem.GetBitmap().GetHeight())//2 if state == ControlFocus: @@ -3784,7 +3784,7 @@ class FlatMenuBar(wx.Panel): pn.Name("flat_menu_bar") pn.Caption("Menu Bar") pn.Top() - pn.MinSize(wx.Size(xx/2, self._barHeight)) + pn.MinSize(wx.Size(xx//2, self._barHeight)) pn.LeftDockable(False) pn.RightDockable(False) pn.ToolbarPane() @@ -3997,8 +3997,8 @@ class FlatMenuButton(object): """ rect = wx.Rect(self._pos, self._size) - xx = rect.x + (rect.width - self._normalBmp.GetWidth())/2 - yy = rect.y + (rect.height - self._normalBmp.GetHeight())/2 + xx = rect.x + (rect.width - self._normalBmp.GetWidth())//2 + yy = rect.y + (rect.height - self._normalBmp.GetHeight())//2 self._parent.GetRenderer().DrawScrollButton(dc, rect, self._state) dc.DrawBitmap(self._normalBmp, xx, yy, True) diff --git a/wx/lib/agw/flatnotebook.py b/wx/lib/agw/flatnotebook.py index f5e5200b..561749b8 100644 --- a/wx/lib/agw/flatnotebook.py +++ b/wx/lib/agw/flatnotebook.py @@ -858,9 +858,9 @@ def PaintStraightGradientBox(dc, rect, startColour, endColour, vertical=True): for i in range(high+1): - r = startColour.Red() + ((i*rd*100)/high)/100 - g = startColour.Green() + ((i*gd*100)/high)/100 - b = startColour.Blue() + ((i*bd*100)/high)/100 + r = startColour.Red() + ((i*rd*100)//high)//100 + g = startColour.Green() + ((i*gd*100)//high)//100 + b = startColour.Blue() + ((i*bd*100)//high)//100 p = wx.Pen(wx.Colour(r, g, b)) dc.SetPen(p) @@ -2631,9 +2631,9 @@ class FNBRendererDefault(FNBRenderer): imageYCoord = (pc.HasAGWFlag(FNB_BOTTOM) and [6] or [8])[0] if hasImage: - textOffset = 2*pc._pParent._nPadding + 16 + shapePoints/2 + textOffset = 2*pc._pParent._nPadding + 16 + shapePoints//2 else: - textOffset = pc._pParent._nPadding + shapePoints/2 + textOffset = pc._pParent._nPadding + shapePoints//2 textOffset += 2 diff --git a/wx/lib/agw/floatspin.py b/wx/lib/agw/floatspin.py index bdbaf85e..4559eb5d 100644 --- a/wx/lib/agw/floatspin.py +++ b/wx/lib/agw/floatspin.py @@ -336,7 +336,7 @@ class FloatSpin(wx.Control): """ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, - size=(95,-1), style=0, value=0.0, min_val=None, max_val=None, + size=wx.DefaultSize, style=0, value=0.0, min_val=None, max_val=None, increment=1.0, digits=-1, agwStyle=FS_LEFT, name="FloatSpin"): """ diff --git a/wx/lib/agw/gradientbutton.py b/wx/lib/agw/gradientbutton.py index c4633b29..58625c50 100644 --- a/wx/lib/agw/gradientbutton.py +++ b/wx/lib/agw/gradientbutton.py @@ -412,14 +412,14 @@ class GradientButton(wx.Control): x, y, width, height = clientRect - gradientRect.SetHeight(gradientRect.GetHeight()/2 + ((capture==self and [1] or [0])[0])) + gradientRect.SetHeight(gradientRect.GetHeight()//2 + ((capture==self and [1] or [0])[0])) if capture != self: if self._mouseAction == HOVER: topStart, topEnd = self.LightColour(self._topStartColour, 10), self.LightColour(self._topEndColour, 10) else: topStart, topEnd = self._topStartColour, self._topEndColour - rc1 = wx.Rect(x, y, width, height/2) + rc1 = wx.Rect(x, y, width, height//2) path1 = self.GetPath(gc, rc1, 8) br1 = gc.CreateLinearGradientBrush(x, y, x, y+height/2, topStart, topEnd) gc.SetBrush(br1) @@ -448,7 +448,7 @@ class GradientButton(wx.Control): else: bottomStart, bottomEnd = self._bottomStartColour, self._bottomEndColour - rc3 = wx.Rect(x, y+height/2, width, height/2) + rc3 = wx.Rect(x, y+height//2, width, height//2) path3 = self.GetPath(gc, rc3, 8) br3 = gc.CreateLinearGradientBrush(x, y+height/2, x, y+height, bottomStart, bottomEnd) gc.SetBrush(br3) @@ -463,7 +463,7 @@ class GradientButton(wx.Control): shadowOffset = 0 else: - rc2 = wx.Rect(x+1, gradientRect.height/2, gradientRect.width, gradientRect.height) + rc2 = wx.Rect(x+1, gradientRect.height//2, gradientRect.width, gradientRect.height) path2 = self.GetPath(gc, rc2, 8) gc.SetPen(wx.Pen(self._pressedBottomColour)) gc.SetBrush(wx.Brush(self._pressedBottomColour)) diff --git a/wx/lib/agw/hypertreelist.py b/wx/lib/agw/hypertreelist.py index 12302f3b..377ac012 100644 --- a/wx/lib/agw/hypertreelist.py +++ b/wx/lib/agw/hypertreelist.py @@ -3437,7 +3437,7 @@ class TreeListMainWindow(CustomTreeCtrl): if not self.HasAGWFlag(wx.TR_NO_LINES) and children: last_child = children[-1] - Y1 = last_child.GetY() + last_child.GetHeight() / 2 + Y1 = last_child.GetY() + last_child.GetHeight() // 2 dc.DrawLine(x, oldY, x, Y1) return y, x_maincol diff --git a/wx/lib/agw/knobctrl.py b/wx/lib/agw/knobctrl.py index 742097b0..1e5045ff 100644 --- a/wx/lib/agw/knobctrl.py +++ b/wx/lib/agw/knobctrl.py @@ -325,7 +325,7 @@ class BufferedWindow(wx.Window): memory.Clear() minradius = min(0.9*self.Width/2.0, 0.9*self.Height/2.0) - memory.DrawCircle(self.Width//2, self.Height//2, minradius) + memory.DrawCircle(self.Width//2, self.Height//2, int(minradius)) memory.SelectObject(wx.NullBitmap) self._region = wx.Region(self._Buffer, self.GetBackgroundColour()) self._minradius = minradius @@ -645,8 +645,8 @@ class KnobCtrl(BufferedWindow): dxi = math.cos(angle)*((width - xshift + tagLen - 6)/2.0 - tagLen) dyi = math.sin(angle)*((height - yshift + tagLen - 6)/2.0 - tagLen) - dc.DrawLine(width//2 - sxi, height//2 - syi, - width//2 - dxi, height//2 - dyi) + dc.DrawLine(int(width//2 - sxi), int(height//2 - syi), + int(width//2 - dxi), int(height//2 - dyi)) def DrawDiagonalGradient(self, dc, size): @@ -759,8 +759,8 @@ class KnobCtrl(BufferedWindow): p1 = wx.Pen(self.OffsetColour(pencolour, -70), 2) p2 = wx.Pen(self.OffsetColour(pencolour, 10), 1) - pt1 = wx.Point(cx-r*math.sqrt(2)/2.0, cy+r*math.sqrt(2)/2.0) - pt2 = wx.Point(cx+r*math.sqrt(2)/2.0, cy-r*math.sqrt(2)/2.0) + pt1 = wx.Point(int(cx-r*math.sqrt(2)/2.0), int(cy+r*math.sqrt(2)/2.0)) + pt2 = wx.Point(int(cx+r*math.sqrt(2)/2.0), int(cy-r*math.sqrt(2)/2.0)) dc.SetPen(p2) dc.DrawArc(pt1, pt2, (cx, cy)) @@ -779,7 +779,7 @@ class KnobCtrl(BufferedWindow): radius = 0.9*min(size.x, size.y)/2.0 dc.SetBrush(wx.TRANSPARENT_BRUSH) dc.SetPen(wx.Pen(self._boundingcolour)) - dc.DrawCircle(self.Width//2, self.Height//2, radius) + dc.DrawCircle(self.Width//2, self.Height//2, int(radius)) def CircleCoords(self, radius, angle, centerX, centerY): diff --git a/wx/lib/agw/labelbook.py b/wx/lib/agw/labelbook.py index b716df3a..f8c9cd54 100644 --- a/wx/lib/agw/labelbook.py +++ b/wx/lib/agw/labelbook.py @@ -1376,13 +1376,13 @@ class ImageContainer(ImageContainerBase): if bUseYcoord: - imgXcoord = self._nImgSize / 2 - imgYcoord = (style & INB_SHOW_ONLY_IMAGES and [pos + self._nImgSize / 2] or [pos + imgTopPadding])[0] + imgXcoord = self._nImgSize // 2 + imgYcoord = (style & INB_SHOW_ONLY_IMAGES and [pos + self._nImgSize // 2] or [pos + imgTopPadding])[0] else: - imgXcoord = pos + (rectWidth / 2) - (self._nImgSize / 2) - imgYcoord = (style & INB_SHOW_ONLY_IMAGES and [self._nImgSize / 2] or [imgTopPadding])[0] + imgXcoord = pos + (rectWidth // 2) - (self._nImgSize // 2) + imgYcoord = (style & INB_SHOW_ONLY_IMAGES and [self._nImgSize // 2] or [imgTopPadding])[0] self._ImageList.Draw(self._pagesInfoVec[i].GetImageIndex(), dc, imgXcoord, imgYcoord, @@ -1408,15 +1408,15 @@ class ImageContainer(ImageContainerBase): if bUseYcoord: - textOffsetX = ((rectWidth - textWidth) / 2 ) + textOffsetX = ((rectWidth - textWidth) // 2 ) textOffsetY = (not style & INB_SHOW_ONLY_TEXT and [pos + self._nImgSize + imgTopPadding + 3] or \ - [pos + ((self._nImgSize * 2 - textHeight) / 2 )])[0] + [pos + ((self._nImgSize * 2 - textHeight) // 2 )])[0] else: - textOffsetX = (rectWidth - textWidth) / 2 + pos + nTextPaddingLeft + textOffsetX = (rectWidth - textWidth) // 2 + pos + nTextPaddingLeft textOffsetY = (not style & INB_SHOW_ONLY_TEXT and [self._nImgSize + imgTopPadding + 3] or \ - [((self._nImgSize * 2 - textHeight) / 2 )])[0] + [((self._nImgSize * 2 - textHeight) // 2 )])[0] dc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT)) dc.DrawText(fixedText, textOffsetX, textOffsetY) @@ -1591,8 +1591,8 @@ class LabelContainer(ImageContainerBase): # Draw gradient in the background area startColour = self._coloursMap[INB_TAB_AREA_BACKGROUND_COLOUR] endColour = ArtManager.Get().LightColour(self._coloursMap[INB_TAB_AREA_BACKGROUND_COLOUR], 50) - ArtManager.Get().PaintStraightGradientBox(dc, wx.Rect(0, 0, size.x / 2, size.y), startColour, endColour, False) - ArtManager.Get().PaintStraightGradientBox(dc, wx.Rect(size.x / 2, 0, size.x / 2, size.y), endColour, startColour, False) + ArtManager.Get().PaintStraightGradientBox(dc, wx.Rect(0, 0, size.x // 2, size.y), startColour, endColour, False) + ArtManager.Get().PaintStraightGradientBox(dc, wx.Rect(size.x // 2, 0, size.x // 2, size.y), endColour, startColour, False) else: @@ -1638,7 +1638,7 @@ class LabelContainer(ImageContainerBase): if self.HasAGWFlag(INB_SHOW_ONLY_TEXT): font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) - font.SetPointSize(font.GetPointSize() * self.GetParent().GetFontSizeMultiple()) + font.SetPointSize(int(font.GetPointSize() * self.GetParent().GetFontSizeMultiple())) if self.GetParent().GetFontBold(): font.SetWeight(wx.FONTWEIGHT_BOLD) @@ -1954,7 +1954,7 @@ class LabelContainer(ImageContainerBase): # Redraw the text with underlined font underLinedFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) - underLinedFont.SetPointSize(underLinedFont.GetPointSize() * self.GetParent().GetFontSizeMultiple()) + underLinedFont.SetPointSize(int(underLinedFont.GetPointSize() * self.GetParent().GetFontSizeMultiple())) if self.GetParent().GetFontBold(): underLinedFont.SetWeight(wx.FONTWEIGHT_BOLD) elif self.HasAGWFlag(INB_BOLD_TAB_SELECTION) and selected: @@ -2050,7 +2050,7 @@ class LabelContainer(ImageContainerBase): imgRect = wx.Rect(*rect) font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) - font.SetPointSize(font.GetPointSize() * self.GetParent().GetFontSizeMultiple()) + font.SetPointSize(int(font.GetPointSize() * self.GetParent().GetFontSizeMultiple())) if self.GetParent().GetFontBold(): font.SetWeight(wx.FONTWEIGHT_BOLD) @@ -2069,7 +2069,7 @@ class LabelContainer(ImageContainerBase): # Text bounding rectangle textRect.x += nPadding - textRect.y = rect.y + (rect.height - h)/2 + textRect.y = rect.y + (rect.height - h)//2 textRect.width = rect.width - 2 * nPadding if bmp.IsOk() and not self.HasAGWFlag(INB_SHOW_ONLY_TEXT): @@ -2086,7 +2086,7 @@ class LabelContainer(ImageContainerBase): imgRect.x += nPadding imgRect.width = bmp.GetWidth() - imgRect.y = rect.y + (rect.height - bmp.GetHeight())/2 + imgRect.y = rect.y + (rect.height - bmp.GetHeight())//2 imgRect.height = bmp.GetHeight() # Draw bounding rectangle @@ -2496,7 +2496,7 @@ class FlatBookBase(wx.Panel): dc = wx.MemoryDC() dc.SelectObject(wx.Bitmap(1, 1)) font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) - font.SetPointSize(font.GetPointSize()*self._fontSizeMultiple) + font.SetPointSize(int(font.GetPointSize()*self._fontSizeMultiple)) if self.GetFontBold() or agwStyle & INB_BOLD_TAB_SELECTION: font.SetWeight(wx.FONTWEIGHT_BOLD) dc.SetFont(font) diff --git a/wx/lib/agw/peakmeter.py b/wx/lib/agw/peakmeter.py index 055dbef8..a5f88a9d 100644 --- a/wx/lib/agw/peakmeter.py +++ b/wx/lib/agw/peakmeter.py @@ -784,7 +784,7 @@ class PeakMeterCtrl(wx.Control): maxWidth = size.x*horzBands points = [wx.Point() for i in range(2)] points[0].y = rectPrev.GetTopRight().y - yDecal - points[0].x = rectPrev.GetBottomLeft().x + self._meterData[vert]._falloff*maxWidth/self._maxValue + points[0].x = rectPrev.GetBottomLeft().x + self._meterData[vert]._falloff*maxWidth//self._maxValue points[1].y = rectPrev.GetBottomLeft().y + yDecal points[1].x = points[0].x dc.SetPen(pen) diff --git a/wx/lib/agw/pygauge.py b/wx/lib/agw/pygauge.py index bab459a3..b8654436 100644 --- a/wx/lib/agw/pygauge.py +++ b/wx/lib/agw/pygauge.py @@ -344,7 +344,7 @@ class PyGauge(wx.Window): c1,c2 = gradient w = rect.width * (float(self._valueSorted[i]) / self._range) r = copy.copy(rect) - r.width = w + r.width = int(w) dc.GradientFillLinear(r, c1, c2, wx.EAST) else: for i, colour in enumerate(self._barColourSorted): @@ -352,7 +352,7 @@ class PyGauge(wx.Window): dc.SetPen(wx.Pen(colour)) w = rect.width * (float(self._valueSorted[i]) / self._range) r = copy.copy(rect) - r.width = w + r.width = int(w) dc.DrawRectangle(r) diff --git a/wx/lib/agw/ribbon/art_aui.py b/wx/lib/agw/ribbon/art_aui.py index a1d25584..31fedf48 100644 --- a/wx/lib/agw/ribbon/art_aui.py +++ b/wx/lib/agw/ribbon/art_aui.py @@ -390,7 +390,7 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): grad_rect = wx.Rect(*tab.rect) grad_rect.height -= 4 grad_rect.width -= 1 - grad_rect.height /= 2 + grad_rect.height //= 2 grad_rect.y = grad_rect.y + tab.rect.height - grad_rect.height - 1 dc.SetBrush(self._tab_active_top_background_brush) dc.DrawRectangle(tab.rect.x, tab.rect.y + 3, tab.rect.width - 1, grad_rect.y - tab.rect.y - 3) @@ -401,7 +401,7 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): btm_rect = wx.Rect(*tab.rect) btm_rect.height -= 4 btm_rect.width -= 1 - btm_rect.height /= 2 + btm_rect.height //= 2 btm_rect.y = btm_rect.y + tab.rect.height - btm_rect.height - 1 dc.SetBrush(self._tab_hover_background_brush) dc.DrawRectangle(btm_rect.x, btm_rect.y, btm_rect.width, btm_rect.height) @@ -434,8 +434,8 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): icon = tab.page.GetIcon() if self._flags & RIBBON_BAR_SHOW_PAGE_LABELS == 0: if icon.IsOk(): - x = tab.rect.x + (tab.rect.width - icon.GetWidth()) / 2 - dc.DrawBitmap(icon, x, tab.rect.y + 1 + (tab.rect.height - 1 - icon.GetHeight()) / 2, True) + x = tab.rect.x + (tab.rect.width - icon.GetWidth()) // 2 + dc.DrawBitmap(icon, x, tab.rect.y + 1 + (tab.rect.height - 1 - icon.GetHeight()) // 2, True) if self._flags & RIBBON_BAR_SHOW_PAGE_LABELS: label = tab.page.GetLabel() @@ -450,7 +450,7 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): offset += icon.GetWidth() + 2 text_width, text_height = dc.GetTextExtent(label) - x = (tab.rect.width - 2 - text_width - offset) / 2 + x = (tab.rect.width - 2 - text_width - offset) // 2 if x > 8: x = 8 elif x < 1: @@ -458,7 +458,7 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): width = tab.rect.width - x - 2 x += tab.rect.x + offset - y = tab.rect.y + (tab.rect.height - text_height) / 2 + y = tab.rect.y + (tab.rect.height - text_height) // 2 if icon.IsOk(): dc.DrawBitmap(icon, x - offset, tab.rect.y + (tab.rect.height - icon.GetHeight()) / 2, True) @@ -892,8 +892,8 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): self._page_hover_background_gradient_colour, wx.SOUTH) if bitmap.IsOk(): - dc.DrawBitmap(bitmap, preview.x + (preview.width - bitmap.GetWidth()) / 2, - preview.y + (preview.height - bitmap.GetHeight()) / 2, True) + dc.DrawBitmap(bitmap, preview.x + (preview.width - bitmap.GetWidth()) // 2, + preview.y + (preview.height - bitmap.GetHeight()) // 2, True) def DrawPartialPanelBackground(self, dc, wnd, rect): @@ -1024,7 +1024,7 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): dc.DrawRectangle(reduced_rect.x, reduced_rect.y, reduced_rect.width, reduced_rect.height) btn_bitmap = bitmaps[3] - dc.DrawBitmap(btn_bitmap, reduced_rect.x + reduced_rect.width / 2 - 2, (rect.y + rect.height / 2) - 2, True) + dc.DrawBitmap(btn_bitmap, reduced_rect.x + reduced_rect.width // 2 - 2, (rect.y + rect.height // 2) - 2, True) def DrawGalleryItemBackground(self, dc, wnd, rect, item): @@ -1277,7 +1277,7 @@ class RibbonAUIArtProvider(RibbonMSWArtProvider): if is_split_hybrid: dc.DrawLine(rect.x + avail_width + 1, rect.y, rect.x + avail_width + 1, rect.y + rect.height) - dc.DrawBitmap(self._toolbar_drop_bitmap, bg_rect.x + avail_width + 2, bg_rect.y + (bg_rect.height / 2) - 2, True) + dc.DrawBitmap(self._toolbar_drop_bitmap, bg_rect.x + avail_width + 2, bg_rect.y + (bg_rect.height // 2) - 2, True) - dc.DrawBitmap(bitmap, bg_rect.x + (avail_width - bitmap.GetWidth()) / 2, bg_rect.y + (bg_rect.height - bitmap.GetHeight()) / 2, True) + dc.DrawBitmap(bitmap, bg_rect.x + (avail_width - bitmap.GetWidth()) // 2, bg_rect.y + (bg_rect.height - bitmap.GetHeight()) // 2, True) diff --git a/wx/lib/agw/ribbon/art_internal.py b/wx/lib/agw/ribbon/art_internal.py index 4a8dc7ce..78e8f3fe 100644 --- a/wx/lib/agw/ribbon/art_internal.py +++ b/wx/lib/agw/ribbon/art_internal.py @@ -32,9 +32,9 @@ def RibbonInterpolateColour(start_colour, end_colour, position, start_position, r = end_colour.Red() - start_colour.Red() g = end_colour.Green() - start_colour.Green() b = end_colour.Blue() - start_colour.Blue() - r = start_colour.Red() + (((r * position * 100) / end_position) / 100) - g = start_colour.Green() + (((g * position * 100) / end_position) / 100) - b = start_colour.Blue() + (((b * position * 100) / end_position) / 100) + r = start_colour.Red() + (((r * position * 100) // end_position) // 100) + g = start_colour.Green() + (((g * position * 100) // end_position) // 100) + b = start_colour.Blue() + (((b * position * 100) // end_position) // 100) return wx.Colour(r, g, b) @@ -61,9 +61,9 @@ def RibbonDrawParallelGradientLines(dc, nlines, line_origins, stepx, stepy, nums bd = end_colour.Blue() - start_colour.Blue() for step in range(numsteps): - r = start_colour.Red() + (((step*rd*100)/numsteps)/100) - g = start_colour.Green() + (((step*gd*100)/numsteps)/100) - b = start_colour.Blue() + (((step*bd*100)/numsteps)/100) + r = start_colour.Red() + (((step*rd*100)//numsteps)//100) + g = start_colour.Green() + (((step*gd*100)//numsteps)//100) + b = start_colour.Blue() + (((step*bd*100)//numsteps)//100) p = wx.Pen(wx.Colour(r, g, b)) dc.SetPen(p) diff --git a/wx/lib/agw/ribbon/art_msw.py b/wx/lib/agw/ribbon/art_msw.py index e7317d59..00c3dfe2 100644 --- a/wx/lib/agw/ribbon/art_msw.py +++ b/wx/lib/agw/ribbon/art_msw.py @@ -982,7 +982,7 @@ class RibbonMSWArtProvider(object): background.width -= 4 background.height -= 3 h = background.height - background.height /= 2 + background.height //= 2 dc.GradientFillLinear(background, self._tab_hover_background_top_colour, self._tab_hover_background_top_gradient_colour, wx.SOUTH) @@ -1024,9 +1024,9 @@ class RibbonMSWArtProvider(object): if icon.IsOk(): x = tab.rect.x + 4 if self._flags & RIBBON_BAR_SHOW_PAGE_LABELS == 0: - x = tab.rect.x + (tab.rect.width - icon.GetWidth()) / 2 + x = tab.rect.x + (tab.rect.width - icon.GetWidth()) // 2 - dc.DrawBitmap(icon, x, tab.rect.y + 1 + (tab.rect.height - 1 - icon.GetHeight()) / 2, True) + dc.DrawBitmap(icon, x, tab.rect.y + 1 + (tab.rect.height - 1 - icon.GetHeight()) // 2, True) if self._flags & RIBBON_BAR_SHOW_PAGE_LABELS: label = tab.page.GetLabel() @@ -1043,13 +1043,13 @@ class RibbonMSWArtProvider(object): x += 3 + tab.page.GetIcon().GetWidth() width -= 3 + tab.page.GetIcon().GetWidth() - y = tab.rect.y + (tab.rect.height - text_height) / 2 + y = tab.rect.y + (tab.rect.height - text_height) // 2 if width <= text_width: dc.SetClippingRegion(x, tab.rect.y, width, tab.rect.height) dc.DrawText(label, x, y) else: - dc.DrawText(label, x + (width - text_width) / 2 + 1, y) + dc.DrawText(label, x + (width - text_width) // 2 + 1, y) def DrawTabSeparator(self, dc, wnd, rect, visibility): @@ -1093,7 +1093,7 @@ class RibbonMSWArtProvider(object): dc = wx.MemoryDC(self._cached_tab_separator) self.DrawTabCtrlBackground(dc, wnd, rect) - x = rect.x + rect.width / 2 + x = rect.x + rect.width // 2 h = float(rect.height - 1) r1 = self._tab_ctrl_background_brush.GetColour().Red() * (1.0 - visibility) + 0.5 @@ -1146,7 +1146,7 @@ class RibbonMSWArtProvider(object): # upper_rect, lower_rect, paint_rect are all in page co-ordinates upper_rect = wx.Rect(*background) - upper_rect.height /= 5 + upper_rect.height //= 5 lower_rect = wx.Rect(*background) lower_rect.y += upper_rect.height @@ -1229,7 +1229,7 @@ class RibbonMSWArtProvider(object): background.width -= 4 background.height -= 2 - background.height /= 5 + background.height //= 5 dc.GradientFillLinear(background, self._page_background_top_colour, self._page_background_top_gradient_colour, wx.SOUTH) @@ -1493,10 +1493,10 @@ class RibbonMSWArtProvider(object): if clip_label: clip = wx.DCClipper(dc, label_rect) - dc.DrawText(label, label_rect.x, label_rect.y + (label_rect.GetHeight() - label_size.GetHeight()) / 2) + dc.DrawText(label, label_rect.x, label_rect.y + (label_rect.GetHeight() - label_size.GetHeight()) // 2) else: - dc.DrawText(label, label_rect.x + (label_rect.GetWidth() - label_size.GetWidth()) / 2, - label_rect.y + (label_rect.GetHeight() - label_size.GetHeight()) / 2) + dc.DrawText(label, label_rect.x + (label_rect.GetWidth() - label_size.GetWidth()) // 2, + label_rect.y + (label_rect.GetHeight() - label_size.GetHeight()) // 2) if has_ext_button: if wnd.IsExtButtonHovered(): @@ -1577,7 +1577,7 @@ class RibbonMSWArtProvider(object): # Divider between items and buttons dc.DrawLine(rect.x, rect.y + rect.height - 15, rect.x + rect.width, rect.y + rect.height - 15) - up_btn = wx.Rect(rect.x, rect.y + rect.height - 15, rect.width / 3, 15) + up_btn = wx.Rect(rect.x, rect.y + rect.height - 15, rect.width // 3, 15) down_btn = wx.Rect(up_btn.GetRight() + 1, up_btn.GetTop(), up_btn.GetWidth(), up_btn.GetHeight()) dc.DrawLine(down_btn.GetLeft(), down_btn.GetTop(), down_btn.GetLeft(), down_btn.GetBottom()) ext_btn = wx.Rect(down_btn.GetRight() + 1, up_btn.GetTop(), rect.width - up_btn.GetWidth() - down_btn.GetWidth() - 1, up_btn.GetHeight()) @@ -1587,7 +1587,7 @@ class RibbonMSWArtProvider(object): # Divider between items and buttons dc.DrawLine(rect.x + rect.width - 15, rect.y, rect.x + rect.width - 15, rect.y + rect.height) - up_btn = wx.Rect(rect.x + rect.width - 15, rect.y, 15, rect.height / 3) + up_btn = wx.Rect(rect.x + rect.width - 15, rect.y, 15, rect.height // 3) down_btn = wx.Rect(up_btn.GetLeft(), up_btn.GetBottom() + 1, up_btn.GetWidth(), up_btn.GetHeight()) dc.DrawLine(down_btn.GetLeft(), down_btn.GetTop(), down_btn.GetRight(), down_btn.GetTop()) ext_btn = wx.Rect(up_btn.GetLeft(), down_btn.GetBottom() + 1, up_btn.GetWidth(), rect.height - up_btn.GetHeight() - down_btn.GetHeight() - 1) @@ -1633,14 +1633,14 @@ class RibbonMSWArtProvider(object): dc.SetPen(wx.TRANSPARENT_PEN) dc.SetBrush(btn_top_brush) - dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height / 2) + dc.DrawRectangle(rect.x, rect.y, rect.width, rect.height // 2) lower = wx.Rect(*rect) - lower.height = (lower.height + 1) / 2 + lower.height = (lower.height + 1) // 2 lower.y += rect.height - lower.height dc.GradientFillLinear(lower, btn_colour, btn_grad_colour, wx.SOUTH) - dc.DrawBitmap(btn_bitmap, rect.x + rect.width / 2 - 2, lower.y - 2, True) + dc.DrawBitmap(btn_bitmap, rect.x + rect.width // 2 - 2, lower.y - 2, True) def DrawGalleryItemBackground(self, dc, wnd, rect, item): @@ -1691,7 +1691,7 @@ class RibbonMSWArtProvider(object): upper.x += 1 upper.width -= 2 upper.y += 1 - upper.height /= 3 + upper.height //= 3 dc.SetPen(wx.TRANSPARENT_PEN) dc.SetBrush(top_brush) dc.DrawRectangle(upper.x, upper.y, upper.width, upper.height) @@ -1760,7 +1760,7 @@ class RibbonMSWArtProvider(object): client_rect.x += 1 client_rect.width -= 2 client_rect.y += 1 - client_rect.height = (rect.y + rect.height / 5) - client_rect.x + client_rect.height = (rect.y + rect.height // 5) - client_rect.x dc.GradientFillLinear(client_rect, self._panel_active_background_top_colour, self._panel_active_background_top_gradient_colour, wx.SOUTH) @@ -1785,7 +1785,7 @@ class RibbonMSWArtProvider(object): dc.SetPen(wx.TRANSPARENT_PEN) dc.DrawRectangle(preview.x + 1, preview.y + preview.height - 8, preview.width - 2, 7) - mid_pos = rect.y + rect.height / 5 - preview.y + mid_pos = rect.y + rect.height // 5 - preview.y if mid_pos < 0 or mid_pos >= preview.height: full_rect = wx.Rect(*preview) @@ -1816,8 +1816,8 @@ class RibbonMSWArtProvider(object): self._page_hover_background_gradient_colour, wx.SOUTH) if bitmap.IsOk(): - dc.DrawBitmap(bitmap, preview.x + (preview.width - bitmap.GetWidth()) / 2, - preview.y + (preview.height - 7 - bitmap.GetHeight()) / 2, True) + dc.DrawBitmap(bitmap, preview.x + (preview.width - bitmap.GetWidth()) // 2, + preview.y + (preview.height - 7 - bitmap.GetHeight()) // 2, True) self.DrawPanelBorder(dc, preview, self._panel_border_pen, self._panel_border_gradient_pen) self.DrawPanelBorder(dc, true_rect, self._panel_minimised_border_pen, self._panel_minimised_border_gradient_pen) @@ -1829,20 +1829,20 @@ class RibbonMSWArtProvider(object): if self._flags & RIBBON_BAR_FLOW_VERTICAL: preview.x = true_rect.x + 4 - preview.y = true_rect.y + (true_rect.height - preview.height) / 2 + preview.y = true_rect.y + (true_rect.height - preview.height) // 2 else: - preview.x = true_rect.x + (true_rect.width - preview.width) / 2 + preview.x = true_rect.x + (true_rect.width - preview.width) // 2 preview.y = true_rect.y + 4 dc.SetFont(self._panel_label_font) label_width, label_height = dc.GetTextExtent(wnd.GetLabel()) - xpos = true_rect.x + (true_rect.width - label_width + 1) / 2 + xpos = true_rect.x + (true_rect.width - label_width + 1) // 2 ypos = preview.y + preview.height + 5 if self._flags & RIBBON_BAR_FLOW_VERTICAL: xpos = preview.x + preview.width + 5 - ypos = true_rect.y + (true_rect.height - label_height) / 2 + ypos = true_rect.y + (true_rect.height - label_height) // 2 dc.SetTextForeground(self._panel_minimised_label_colour) dc.DrawText(wnd.GetLabel(), xpos, ypos) @@ -1851,12 +1851,12 @@ class RibbonMSWArtProvider(object): if self._flags & RIBBON_BAR_FLOW_VERTICAL: xpos += label_width - arrow_points[0] = wx.Point(xpos + 5, ypos + label_height / 2) + arrow_points[0] = wx.Point(xpos + 5, ypos + label_height // 2) arrow_points[1] = arrow_points[0] + wx.Point(-3, 3) arrow_points[2] = arrow_points[0] + wx.Point(-3, -3) else: ypos += label_height - arrow_points[0] = wx.Point(true_rect.width / 2, ypos + 5) + arrow_points[0] = wx.Point(true_rect.width // 2, ypos + 5) arrow_points[1] = arrow_points[0] + wx.Point(-3, -3) arrow_points[2] = arrow_points[0] + wx.Point( 3, -3) @@ -1967,7 +1967,7 @@ class RibbonMSWArtProvider(object): bg_rect.height -= 2 bg_rect_top = wx.Rect(*bg_rect) - bg_rect_top.height /= 3 + bg_rect_top.height //= 3 bg_rect.y += bg_rect_top.height bg_rect.height -= bg_rect_top.height @@ -2043,7 +2043,7 @@ class RibbonMSWArtProvider(object): if result == RIBBON_BUTTONBAR_BUTTON_LARGE: padding = 2 - dc.DrawBitmap(bitmap_large, rect.x + (rect.width - bitmap_large.GetWidth()) / 2, + dc.DrawBitmap(bitmap_large, rect.x + (rect.width - bitmap_large.GetWidth()) // 2, rect.y + padding, True) ypos = rect.y + padding + bitmap_large.GetHeight() + padding arrow_width = (kind == RIBBON_BUTTON_NORMAL and [0] or [8])[0] @@ -2052,10 +2052,10 @@ class RibbonMSWArtProvider(object): if label_w + 2 * padding <= rect.width: - dc.DrawText(label, rect.x + (rect.width - label_w) / 2, ypos) + dc.DrawText(label, rect.x + (rect.width - label_w) // 2, ypos) if arrow_width != 0: - self.DrawDropdownArrow(dc, rect.x + rect.width / 2, - ypos + (label_h * 3) / 2, + self.DrawDropdownArrow(dc, rect.x + rect.width // 2, + ypos + (label_h * 3) // 2, self._button_bar_label_colour) else: breaki = len(label) @@ -2067,17 +2067,17 @@ class RibbonMSWArtProvider(object): label_w, label_h = dc.GetTextExtent(label_top) if label_w + 2 * padding <= rect.width: - dc.DrawText(label_top, rect.x + (rect.width - label_w) / 2, ypos) + dc.DrawText(label_top, rect.x + (rect.width - label_w) // 2, ypos) ypos += label_h label_bottom = label[breaki:] label_w, label_h = dc.GetTextExtent(label_bottom) label_w += arrow_width - iX = rect.x + (rect.width - label_w) / 2 + iX = rect.x + (rect.width - label_w) // 2 dc.DrawText(label_bottom, iX, ypos) if arrow_width != 0: self.DrawDropdownArrow(dc, iX + 2 +label_w - arrow_width, - ypos + label_h / 2 + 1, + ypos + label_h // 2 + 1, self._button_bar_label_colour) break @@ -2085,14 +2085,14 @@ class RibbonMSWArtProvider(object): elif result == RIBBON_BUTTONBAR_BUTTON_MEDIUM: x_cursor = rect.x + 2 - dc.DrawBitmap(bitmap_small, x_cursor, rect.y + (rect.height - bitmap_small.GetHeight())/2, True) + dc.DrawBitmap(bitmap_small, x_cursor, rect.y + (rect.height - bitmap_small.GetHeight())//2, True) x_cursor += bitmap_small.GetWidth() + 2 label_w, label_h = dc.GetTextExtent(label) - dc.DrawText(label, x_cursor, rect.y + (rect.height - label_h) / 2) + dc.DrawText(label, x_cursor, rect.y + (rect.height - label_h) // 2) x_cursor += label_w + 3 if kind != RIBBON_BUTTON_NORMAL: - self.DrawDropdownArrow(dc, x_cursor, rect.y + rect.height / 2, + self.DrawDropdownArrow(dc, x_cursor, rect.y + rect.height // 2, self._button_bar_label_colour) else: @@ -2184,7 +2184,7 @@ class RibbonMSWArtProvider(object): # Background bg_rect_top = wx.Rect(*bg_rect) - bg_rect_top.height = (bg_rect_top.height * 2) / 5 + bg_rect_top.height = (bg_rect_top.height * 2) // 5 bg_rect_btm = wx.Rect(*bg_rect) bg_rect_btm.y += bg_rect_top.height bg_rect_btm.height -= bg_rect_top.height @@ -2244,10 +2244,10 @@ class RibbonMSWArtProvider(object): dc.DrawLine(rect.x + avail_width + 1, rect.y, rect.x + avail_width + 1, rect.y + rect.height) dc.DrawBitmap(self._toolbar_drop_bitmap, bg_rect.x + avail_width + 2, - bg_rect.y + (bg_rect.height / 2) - 2, True) + bg_rect.y + (bg_rect.height // 2) - 2, True) - dc.DrawBitmap(bitmap, bg_rect.x + (avail_width - bitmap.GetWidth()) / 2, - bg_rect.y + (bg_rect.height - bitmap.GetHeight()) / 2, True) + dc.DrawBitmap(bitmap, bg_rect.x + (avail_width - bitmap.GetWidth()) // 2, + bg_rect.y + (bg_rect.height - bitmap.GetHeight()) // 2, True) def GetBarTabWidth(self, dc, wnd, label, bitmap, ideal=None, small_begin_need_separator=None, @@ -2474,7 +2474,7 @@ class RibbonMSWArtProvider(object): scroll_up.y = size.GetHeight() - 15 scroll_up.height = 15 scroll_up.x = 0 - scroll_up.width = (size.GetWidth() + 2) / 3 + scroll_up.width = (size.GetWidth() + 2) // 3 scroll_down.y = scroll_up.y scroll_down.height = scroll_up.height scroll_down.x = scroll_up.x + scroll_up.width @@ -2491,7 +2491,7 @@ class RibbonMSWArtProvider(object): scroll_up.x = size.GetWidth() - 15 scroll_up.width = 15 scroll_up.y = 0 - scroll_up.height = (size.GetHeight() + 2) / 3 + scroll_up.height = (size.GetHeight() + 2) // 3 scroll_down.x = scroll_up.x scroll_down.width = scroll_up.width scroll_down.y = scroll_up.y + scroll_up.height diff --git a/wx/lib/agw/ribbon/bar.py b/wx/lib/agw/ribbon/bar.py index ae8b6a19..b0d28776 100644 --- a/wx/lib/agw/ribbon/bar.py +++ b/wx/lib/agw/ribbon/bar.py @@ -743,7 +743,7 @@ class RibbonBar(RibbonControl): delta = info.ideal_width - info.small_must_have_separator_width info.rect.x = x info.rect.y = y - info.rect.width = info.small_must_have_separator_width + delta*(width - total_small_width)/total_delta + info.rect.width = info.small_must_have_separator_width + delta*(width - total_small_width)//total_delta info.rect.height = self._tab_height x += info.rect.width + tabsep @@ -797,7 +797,7 @@ class RibbonBar(RibbonControl): delta = smallest_tab_width - info.minimum_width info.rect.x = x info.rect.y = y - info.rect.width = info.minimum_width + delta*(width - total_small_width)/total_delta + info.rect.width = info.minimum_width + delta*(width - total_small_width)//total_delta info.rect.height = self._tab_height x += info.rect.width + tabsep diff --git a/wx/lib/agw/ribbon/buttonbar.py b/wx/lib/agw/ribbon/buttonbar.py index 25ee49a8..4690f483 100644 --- a/wx/lib/agw/ribbon/buttonbar.py +++ b/wx/lib/agw/ribbon/buttonbar.py @@ -354,7 +354,7 @@ class RibbonButtonBar(RibbonControl): self._bitmap_size_large = bitmap.GetSize() if not bitmap_small.IsOk(): w, h = self._bitmap_size_large - self._bitmap_size_small = wx.Size(0.5*w, 0.5*h) + self._bitmap_size_small = wx.Size(w//2, h//2) if bitmap_small.IsOk(): @@ -867,8 +867,8 @@ class RibbonButtonBar(RibbonControl): layout_size = self._layouts[layout_i].overall_size if layout_size.x <= new_size.x and layout_size.y <= new_size.y: - self._layout_offset.x = (new_size.x - layout_size.x)/2 - self._layout_offset.y = (new_size.y - layout_size.y)/2 + self._layout_offset.x = (new_size.x - layout_size.x)//2 + self._layout_offset.y = (new_size.y - layout_size.y)//2 self._current_layout = layout_i break diff --git a/wx/lib/agw/ribbon/gallery.py b/wx/lib/agw/ribbon/gallery.py index b830fab7..b8652886 100644 --- a/wx/lib/agw/ribbon/gallery.py +++ b/wx/lib/agw/ribbon/gallery.py @@ -805,8 +805,8 @@ class RibbonGallery(RibbonControl): if client.GetWidth() < 0 or client.GetHeight() < 0: return relative_to - client.x = (client.x / self._bitmap_padded_size.x) * self._bitmap_padded_size.x - client.y = (client.y / self._bitmap_padded_size.y) * self._bitmap_padded_size.y + client.x = (client.x // self._bitmap_padded_size.x) * self._bitmap_padded_size.x + client.y = (client.y // self._bitmap_padded_size.y) * self._bitmap_padded_size.y size = self._art.GetGallerySize(dc, self, wx.Size(*client)) minimum = self.GetMinSize() @@ -849,8 +849,8 @@ class RibbonGallery(RibbonControl): elif direction == wx.BOTH: client.IncBy(self._bitmap_padded_size) - client.x = (client.x / self._bitmap_padded_size.x) * self._bitmap_padded_size.x - client.y = (client.y / self._bitmap_padded_size.y) * self._bitmap_padded_size.y + client.x = (client.x // self._bitmap_padded_size.x) * self._bitmap_padded_size.x + client.y = (client.y // self._bitmap_padded_size.y) * self._bitmap_padded_size.y size = self._art.GetGallerySize(dc, self, wx.Size(*client)) minimum = self.GetMinSize() diff --git a/wx/lib/agw/ribbon/panel.py b/wx/lib/agw/ribbon/panel.py index 79fd9bc5..901c765b 100644 --- a/wx/lib/agw/ribbon/panel.py +++ b/wx/lib/agw/ribbon/panel.py @@ -584,12 +584,12 @@ class RibbonPanel(RibbonControl): minimum = wx.Size(*self.GetMinSize()) if direction & wx.HORIZONTAL: - current.x = (current.x * 4) / 5 + current.x = (current.x * 4) // 5 if current.x < minimum.x: current.x = minimum.x if direction & wx.VERTICAL: - current.y = (current.y * 4) / 5 + current.y = (current.y * 4) // 5 if current.y < minimum.y: current.y = minimum.y @@ -668,10 +668,10 @@ class RibbonPanel(RibbonControl): current = wx.Size(*relative_to) if direction & wx.HORIZONTAL: - current.x = (current.x * 5 + 3) / 4 + current.x = (current.x * 5 + 3) // 4 if direction & wx.VERTICAL: - current.y = (current.y * 5 + 3) / 4 + current.y = (current.y * 5 + 3) // 4 return current @@ -1076,25 +1076,25 @@ class RibbonPanel(RibbonControl): pos = wx.Point() if direction == wx.NORTH: - pos.x = panel.GetX() + (panel.GetWidth() - expanded_size.GetWidth()) / 2 + pos.x = panel.GetX() + (panel.GetWidth() - expanded_size.GetWidth()) // 2 pos.y = panel.GetY() - expanded_size.GetHeight() primary_x = True secondary_y = 1 elif direction == wx.EAST: pos.x = panel.GetRight() - pos.y = panel.GetY() + (panel.GetHeight() - expanded_size.GetHeight()) / 2 + pos.y = panel.GetY() + (panel.GetHeight() - expanded_size.GetHeight()) // 2 secondary_x = -1 elif direction == wx.SOUTH: - pos.x = panel.GetX() + (panel.GetWidth() - expanded_size.GetWidth()) / 2 + pos.x = panel.GetX() + (panel.GetWidth() - expanded_size.GetWidth()) // 2 pos.y = panel.GetBottom() primary_x = True secondary_y = -1 else: pos.x = panel.GetX() - expanded_size.GetWidth() - pos.y = panel.GetY() + (panel.GetHeight() - expanded_size.GetHeight()) / 2 + pos.y = panel.GetY() + (panel.GetHeight() - expanded_size.GetHeight()) // 2 secondary_x = 1 expanded = wx.Rect(pos, expanded_size) diff --git a/wx/lib/agw/ribbon/toolbar.py b/wx/lib/agw/ribbon/toolbar.py index 1771c650..8c6f8b52 100644 --- a/wx/lib/agw/ribbon/toolbar.py +++ b/wx/lib/agw/ribbon/toolbar.py @@ -1159,7 +1159,7 @@ class RibbonToolBar(RibbonControl): # Set group y positions for group in self._groups: - group.position.y = rowypos[group.position.y] + group.position.y = int(rowypos[group.position.y]) def GetBestSizeForParentSize(self, parentSize): diff --git a/wx/lib/agw/scrolledthumbnail.py b/wx/lib/agw/scrolledthumbnail.py index d10b0ac0..06fa7784 100644 --- a/wx/lib/agw/scrolledthumbnail.py +++ b/wx/lib/agw/scrolledthumbnail.py @@ -1162,8 +1162,8 @@ class ScrolledThumbnail(wx.ScrolledWindow): self._tWidth = width self._tHeight = height self._tBorder = border - self.SetScrollRate((self._tWidth + self._tBorder)/4, - (self._tHeight + self._tBorder)/4) + self.SetScrollRate((self._tWidth + self._tBorder)//4, + (self._tHeight + self._tBorder)//4) self.SetSizeHints(self._tWidth + self._tBorder*2 + 16, self._tHeight + self._tBorder*2 + 8) if self._items: @@ -1588,8 +1588,8 @@ class ScrolledThumbnail(wx.ScrolledWindow): ww = img.GetWidth() hh = img.GetHeight() - imgRect = wx.Rect(x + (self._tWidth - img.GetWidth())/2, - y + (self._tHeight - img.GetHeight())/2, + imgRect = wx.Rect(int(x + (self._tWidth - img.GetWidth())/2), + int(y + (self._tHeight - img.GetHeight())/2), img.GetWidth(), img.GetHeight()) if not thumb._alpha and self._dropShadow: @@ -1626,14 +1626,14 @@ class ScrolledThumbnail(wx.ScrolledWindow): else: ty = y + hh + (self._tHeight-hh)/2 + (self._tTextHeight - sh)/2 + 3 - dc.DrawText(mycaption, tx, ty) + dc.DrawText(mycaption, int(tx), int(ty)) # outline if self._tOutline != THUMB_OUTLINE_NONE and (self._tOutlineNotSelected or self.IsSelected(index)): dotrect = wx.Rect() - dotrect.x = x - 2 - dotrect.y = y - 2 + dotrect.x = int(x) - 2 + dotrect.y = int(y) - 2 dotrect.width = bmp.GetWidth() - self._tBorder + 4 dotrect.height = bmp.GetHeight() - self._tBorder + 4 @@ -1643,8 +1643,8 @@ class ScrolledThumbnail(wx.ScrolledWindow): if self._tOutline == THUMB_OUTLINE_FULL or self._tOutline == THUMB_OUTLINE_RECT: - imgRect.x = x - imgRect.y = y + imgRect.x = int(x) + imgRect.y = int(y) imgRect.width = bmp.GetWidth() - self._tBorder imgRect.height = bmp.GetHeight() - self._tBorder @@ -1708,10 +1708,10 @@ class ScrolledThumbnail(wx.ScrolledWindow): if col == 0: row = row + 1 - xwhite = ((w - self._cols*(self._tWidth + self._tBorder)))/(self._cols+1) + xwhite = ((w - self._cols*(self._tWidth + self._tBorder)))//(self._cols+1) tx = xwhite + col*(self._tWidth + self._tBorder) - ty = self._tBorder/2 + row*(self._tHeight + self._tBorder) + \ + ty = self._tBorder//2 + row*(self._tHeight + self._tBorder) + \ self.GetCaptionHeight(0, row) tw = self._tWidth + self._tBorder th = self._tHeight + self.GetCaptionHeight(row) + self._tBorder @@ -1723,7 +1723,7 @@ class ScrolledThumbnail(wx.ScrolledWindow): self.DrawThumbnail(thmb, self._items[ii], ii) dc.DrawBitmap(thmb, tx, ty) - rect = wx.Rect(xwhite, self._tBorder/2, + rect = wx.Rect(xwhite, self._tBorder//2, self._cols*(self._tWidth + self._tBorder), self._rows*(self._tHeight + self._tBorder) + \ self.GetCaptionHeight(0, self._rows)) diff --git a/wx/lib/agw/shapedbutton.py b/wx/lib/agw/shapedbutton.py index f015d4e3..49523366 100644 --- a/wx/lib/agw/shapedbutton.py +++ b/wx/lib/agw/shapedbutton.py @@ -569,9 +569,9 @@ class SButton(wx.Window): rect2 = w*main//secondary if self._isup: - img = self._mainbuttonup.Scale(rect2, rect3) + img = self._mainbuttonup.Scale(int(rect2), int(rect3)) else: - img = self._mainbuttondown.Scale(rect2, rect3) + img = self._mainbuttondown.Scale(int(rect2), int(rect3)) bmp = img.ConvertToBitmap() @@ -599,7 +599,7 @@ class SButton(wx.Window): ypos = 0 # Draw Finally The Bitmap - dc.DrawBitmap(bmp, xpos, ypos, True) + dc.DrawBitmap(bmp, int(xpos), int(ypos), True) # Store Bitmap Position And Size To Draw An Elliptical Focus Indicator self._xpos = xpos @@ -646,7 +646,7 @@ class SButton(wx.Window): xp = xc - (tw//2)* cos(angle) - (th//2)*sin(angle) yp = yc + (tw//2)*sin(angle) - (th//2)*cos(angle) - dc.DrawRotatedText(label, xp + dw, yp + dh , angle*180/pi) + dc.DrawRotatedText(label, int(xp + dw), int(yp + dh), angle*180/pi) def DrawFocusIndicator(self, dc, width, height): @@ -676,7 +676,7 @@ class SButton(wx.Window): else: # This Is An Ellipse if hasattr(self, "_xpos"): - dc.DrawEllipse(self._xpos + 2, self._ypos + 2, self._imgx - 4, self._imgy - 4) + dc.DrawEllipse(int(self._xpos + 2), int(self._ypos + 2), self._imgx - 4, self._imgy - 4) dc.SetLogicalFunction(wx.COPY) diff --git a/wx/lib/agw/speedmeter.py b/wx/lib/agw/speedmeter.py index f196b51f..606901d2 100644 --- a/wx/lib/agw/speedmeter.py +++ b/wx/lib/agw/speedmeter.py @@ -580,8 +580,8 @@ class SpeedMeter(BufferedWindow): dc.SetBackground(wx.Brush(speedbackground)) dc.Clear() - centerX = self.faceBitmap.GetWidth()/2 - centerY = self.faceBitmap.GetHeight()/2 + centerX = self.faceBitmap.GetWidth()//2 + centerY = self.faceBitmap.GetHeight()//2 self.CenterX = centerX self.CenterY = centerY @@ -681,7 +681,7 @@ class SpeedMeter(BufferedWindow): # Draw The Filler (Both In "Advance" And "Reverse" Directions) dc.SetBrush(wx.Brush(fillercolour)) - dc.DrawArc(xs2, ys2, xe2, ye2, centerX, centerY) + dc.DrawArc(xs2, ys2, xe2, ye2, int(centerX), int(centerY)) if self._agwStyle & SM_DRAW_SECTORS == 0: dc.SetBrush(wx.Brush(speedbackground)) @@ -952,7 +952,7 @@ class SpeedMeter(BufferedWindow): y = y - height/2.0 - height*sin(angis)/2.0 fancytext.RenderToDC(fancystr, dc, x, y) else: - dc.DrawText(strings, x, y) + dc.DrawText(strings, int(x), int(y)) # This Is The Small Rectangle --> Tick Mark rectangle = colourangles[ii] + pi/2.0 @@ -969,6 +969,7 @@ class SpeedMeter(BufferedWindow): y4 = y3 + 3*self.scale*sinrect points = [(x1, y1), (x2, y2), (x4, y4), (x3, y3)] + points = [(int(p[0]), int(p[1])) for p in points] dc.DrawPolygon(points) @@ -1003,6 +1004,7 @@ class SpeedMeter(BufferedWindow): y4 = y3 + self.scale*sinrect points = [(x1, y1), (x2, y2), (x4, y4), (x3, y3)] + points = [(int(p[0]), int(p[1])) for p in points] dc.DrawPolygon(points) @@ -1017,7 +1019,7 @@ class SpeedMeter(BufferedWindow): dc.SetBrush(wx.TRANSPARENT_BRUSH) if self._drawarc: - dc.SetPen(wx.Pen(self.GetArcColour(), 2.0)) + dc.SetPen(wx.Pen(self.GetArcColour(), 2)) # If It's Not A Complete Circle, Draw The Connecting Lines And The Arc if abs(abs(startangle - endangle) - 2*pi) > 1.0/180.0: dc.DrawArc(xstart, ystart, xend, yend, centerX, centerY) @@ -1046,7 +1048,7 @@ class SpeedMeter(BufferedWindow): newx = centerX + 1.5*mw*cos(middleangle) - mw/2.0 newy = centerY - 1.5*mh*sin(middleangle) - mh/2.0 dc.SetTextForeground(middlecolour) - dc.DrawText(middletext, newx, newy) + dc.DrawText(middletext, int(newx), int(newy)) # Here We Draw The Icon In The Middle, Near The Start Of The Arrow (If Present) # This Is Like The "Fuel" Icon In The Cars @@ -1054,8 +1056,8 @@ class SpeedMeter(BufferedWindow): middleicon = self.GetMiddleIcon() middlewidth, middleheight = self.GetMiddleIconDimens() - middleicon.SetWidth(middlewidth*self.scale) - middleicon.SetHeight(middleheight*self.scale) + middleicon.SetWidth(int(middlewidth*self.scale)) + middleicon.SetHeight(int(middleheight*self.scale)) middleangle = (startangle + endangle)/2.0 mw = middleicon.GetWidth() @@ -1064,7 +1066,7 @@ class SpeedMeter(BufferedWindow): newx = centerX + 1.5*mw*cos(middleangle) - mw/2.0 newy = centerY - 1.5*mh*sin(middleangle) - mh/2.0 - dc.DrawIcon(middleicon, newx, newy) + dc.DrawIcon(middleicon, int(newx), int(newy)) # Restore Icon Dimension, If Not Something Strange Happens middleicon.SetWidth(middlewidth) @@ -1109,53 +1111,61 @@ class SpeedMeter(BufferedWindow): if handstyle == "Arrow": # Draw The Shadow shadowcolour = self.GetShadowColour() - dc.SetPen(wx.Pen(shadowcolour, 5*log(self.scale+1))) + dc.SetPen(wx.Pen(shadowcolour, int(5*log(self.scale+1)))) dc.SetBrush(wx.Brush(shadowcolour)) shadowdistance = 2.0*self.scale - dc.DrawLine(newx + shadowdistance, newy + shadowdistance, - xarr + shadowdistance, yarr + shadowdistance) + dc.DrawLine(int(newx + shadowdistance), int(newy + shadowdistance), + int(xarr + shadowdistance), int(yarr + shadowdistance)) - dc.DrawPolygon([(x1+shadowdistance, y1+shadowdistance), - (x2+shadowdistance, y2+shadowdistance), - (x3+shadowdistance, y3+shadowdistance)]) + points = [(x1+shadowdistance, y1+shadowdistance), + (x2+shadowdistance, y2+shadowdistance), + (x3+shadowdistance, y3+shadowdistance)] + points = [(int(p[0]), int(p[1])) for p in points] + dc.DrawPolygon(points) else: # Draw The Shadow shadowcolour = self.GetShadowColour() dc.SetBrush(wx.Brush(shadowcolour)) - dc.SetPen(wx.Pen(shadowcolour, 1.0)) + dc.SetPen(wx.Pen(shadowcolour, 1)) shadowdistance = 1.5*self.scale - dc.DrawPolygon([(x1+shadowdistance, y1+shadowdistance), - (x2+shadowdistance, y2+shadowdistance), - (x3+shadowdistance, y3+shadowdistance), - (x4+shadowdistance, y4+shadowdistance)]) + points = [(x1+shadowdistance, y1+shadowdistance), + (x2+shadowdistance, y2+shadowdistance), + (x3+shadowdistance, y3+shadowdistance), + (x4+shadowdistance, y4+shadowdistance)] + points = [(int(p[0]), int(p[1])) for p in points] + dc.DrawPolygon(points) if handstyle == "Arrow": - dc.SetPen(wx.Pen(handcolour, 1.5)) + dc.SetPen(wx.Pen(handcolour, 1)) # Draw The Small Circle In The Center --> The Hand "Holder" dc.SetBrush(wx.Brush(speedbackground)) - dc.DrawCircle(centerX, centerY, 4*self.scale) + dc.DrawCircle(centerX, centerY, int(4*self.scale)) - dc.SetPen(wx.Pen(handcolour, 5*log(self.scale+1))) + dc.SetPen(wx.Pen(handcolour, int(5*log(self.scale+1)))) # Draw The "Hand", An Arrow - dc.DrawLine(newx, newy, xarr, yarr) + dc.DrawLine(int(newx), int(newy), int(xarr), int(yarr)) # Draw The Arrow Pointer dc.SetBrush(wx.Brush(handcolour)) - dc.DrawPolygon([(x1, y1), (x2, y2), (x3, y3)]) + points = [(x1, y1), (x2, y2), (x3, y3)] + points = [(int(p[0]), int(p[1])) for p in points] + dc.DrawPolygon(points) else: # Draw The Hand Pointer - dc.SetPen(wx.Pen(handcolour, 1.5)) + dc.SetPen(wx.Pen(handcolour, 1)) dc.SetBrush(wx.Brush(handcolour)) - dc.DrawPolygon([(x1, y1), (x2, y2), (x3, y3), (x4, y4)]) + points = [(x1, y1), (x2, y2), (x3, y3), (x4, y4)] + points = [(int(p[0]), int(p[1])) for p in points] + dc.DrawPolygon(points) # Draw The Small Circle In The Center --> The Hand "Holder" dc.SetBrush(wx.Brush(speedbackground)) - dc.DrawCircle(centerX, centerY, 4*self.scale) + dc.DrawCircle(centerX, centerY, int(4*self.scale)) def SetIntervals(self, intervals=None): @@ -1527,7 +1537,7 @@ class SpeedMeter(BufferedWindow): if font is None: self._middletextfont = wx.Font(1, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False) - self._middletextsize = 10.0 + self._middletextsize = 10 self._middletextfont.SetPointSize(self._middletextsize) else: self._middletextfont = font @@ -1599,7 +1609,7 @@ class SpeedMeter(BufferedWindow): x = radius*cos(angle) + centerX y = radius*sin(angle) + centerY - return x, y + return int(x), int(y) def GetIntersection(self, current, intervals): diff --git a/wx/lib/agw/supertooltip.py b/wx/lib/agw/supertooltip.py index a92ce10d..cd0f0c9f 100644 --- a/wx/lib/agw/supertooltip.py +++ b/wx/lib/agw/supertooltip.py @@ -295,8 +295,8 @@ class ToolTipWindowBase(object): # Get the user options for header, bitmaps etc... drawHeader, drawFooter = classParent.GetDrawHeaderLine(), classParent.GetDrawFooterLine() - topRect = wx.Rect(frameRect.x, frameRect.y, frameRect.width, frameRect.height/2) - bottomRect = wx.Rect(frameRect.x, frameRect.y+frameRect.height/2, frameRect.width, frameRect.height/2+1) + topRect = wx.Rect(frameRect.x, frameRect.y, frameRect.width, frameRect.height//2) + bottomRect = wx.Rect(frameRect.x, frameRect.y+frameRect.height//2, frameRect.width, frameRect.height//2+1) # Fill the triple-gradient dc.GradientFillLinear(topRect, topColour, middleColour, wx.SOUTH) dc.GradientFillLinear(bottomRect, middleColour, bottomColour, wx.SOUTH) @@ -324,9 +324,9 @@ class ToolTipWindowBase(object): normalText = classParent.GetTextColour() if header: dc.SetTextForeground(normalText) - dc.DrawText(header, bmpXPos+bmpWidth+self._spacing, (height-textHeight+self._spacing)/2) + dc.DrawText(header, bmpXPos+bmpWidth+self._spacing, (height-textHeight+self._spacing)//2) if headerBmp and headerBmp.IsOk(): - dc.DrawBitmap(headerBmp, bmpXPos, (height-bmpHeight+self._spacing)/2, True) + dc.DrawBitmap(headerBmp, bmpXPos, (height-bmpHeight+self._spacing)//2, True) if header or (headerBmp and headerBmp.IsOk()): yPos += height @@ -376,7 +376,7 @@ class ToolTipWindowBase(object): messageHeight += textHeight xText = (bmpWidth + 2 * self._spacing) if bmpWidth > 0 else self._spacing - yText += textHeight/2+self._spacing + yText += textHeight//2+self._spacing maxWidth = max(xText + textWidth + self._spacing, maxWidth) dc.DrawText(line, xText, yText) if isLink: @@ -412,8 +412,8 @@ class ToolTipWindowBase(object): if drawFooter: # Draw the separator line before the footer dc.SetPen(wx.GREY_PEN) - dc.DrawLine(self._spacing, yPos-self._spacing/2+toAdd, - width-self._spacing, yPos-self._spacing/2+toAdd) + dc.DrawLine(self._spacing, yPos-self._spacing//2+toAdd, + width-self._spacing, yPos-self._spacing//2+toAdd) # Draw the footer and footer bitmap (if any) dc.SetTextForeground(normalText) height = max(textHeight, bmpHeight) @@ -424,7 +424,7 @@ class ToolTipWindowBase(object): maxWidth = max(bmpXPos + bmpWidth + (self._spacing*2) + textWidth, maxWidth) if footerBmp and footerBmp.IsOk(): toAdd = (height - bmpHeight + self._spacing) / 2 - dc.DrawBitmap(footerBmp, bmpXPos, yPos + toAdd, True) + dc.DrawBitmap(footerBmp, bmpXPos, int(yPos + toAdd), True) maxWidth = max(footerBmp.GetSize().GetWidth() + bmpXPos, maxWidth) maxHeight = yPos + height + toAdd @@ -815,7 +815,7 @@ class SuperToolTip(object): :param `delay`: the delay in seconds. """ - self._startDelayTime = float(delay) + self._startDelayTime = int(delay) def GetStartDelay(self): @@ -831,7 +831,7 @@ class SuperToolTip(object): :param `delay`: the delay in seconds. """ - self._endDelayTime = float(delay) + self._endDelayTime = int(delay) def GetEndDelay(self): diff --git a/wx/lib/agw/toasterbox.py b/wx/lib/agw/toasterbox.py index b73429dd..8efb5869 100644 --- a/wx/lib/agw/toasterbox.py +++ b/wx/lib/agw/toasterbox.py @@ -1316,11 +1316,11 @@ class ToasterBoxWindow(wx.Frame): for line in lines: w, h = dc.GetTextExtent(line) fh += h + textPadding - y = (th - fh) / 2; coords = [] + y = (th - fh) // 2; coords = [] for line in lines: w, h = dc.GetTextExtent(line) - x = (tw - w) / 2 + x = (tw - w) // 2 coords.append((x, y)) y += h + textPadding diff --git a/wx/lib/agw/ultimatelistctrl.py b/wx/lib/agw/ultimatelistctrl.py index 14fc41f8..caa5e5cf 100644 --- a/wx/lib/agw/ultimatelistctrl.py +++ b/wx/lib/agw/ultimatelistctrl.py @@ -914,7 +914,7 @@ class PyImageList(object): raise Exception("Wrong index in image list") bmp = self._images[index] - dc.DrawBitmap(bmp, x, y, (flags & wx.IMAGELIST_DRAW_TRANSPARENT) > 0) + dc.DrawBitmap(bmp, x, int(y), (flags & wx.IMAGELIST_DRAW_TRANSPARENT) > 0) return True @@ -4022,7 +4022,7 @@ class UltimateListLineData(object): if item.HasImage(): - self._gi._rectIcon.x = self._gi._rectAll.x + 4 + (self._gi._rectAll.width - self._gi._rectIcon.width)/2 + self._gi._rectIcon.x = self._gi._rectAll.x + 4 + (self._gi._rectAll.width - self._gi._rectIcon.width)//2 self._gi._rectIcon.y = self._gi._rectAll.y + 4 if item.HasText(): @@ -4030,7 +4030,7 @@ class UltimateListLineData(object): if self._gi._rectLabel.width > spacing: self._gi._rectLabel.x = self._gi._rectAll.x + 2 else: - self._gi._rectLabel.x = self._gi._rectAll.x + 2 + (spacing/2) - (self._gi._rectLabel.width/2) + self._gi._rectLabel.x = self._gi._rectAll.x + 2 + (spacing//2) - (self._gi._rectLabel.width//2) self._gi._rectLabel.y = self._gi._rectAll.y + self._gi._rectAll.height + 2 - self._gi._rectLabel.height self._gi._rectHighlight.x = self._gi._rectLabel.x - 2 @@ -4546,7 +4546,7 @@ class UltimateListLineData(object): # We got a checkbox-type item ix, iy = self._owner.GetCheckboxImageSize() checked = item.IsChecked() - self._owner.DrawCheckbox(dc, xOld, y + (height-iy+1)/2, item.GetKind(), checked, enabled) + self._owner.DrawCheckbox(dc, xOld, y + (height-iy+1)//2, item.GetKind(), checked, enabled) xOld += ix width -= ix @@ -4557,7 +4557,7 @@ class UltimateListLineData(object): for img in images: ix, iy = self._owner.GetImageSize([img]) - self._owner.DrawImage(img, dc, xOld, y + (height-iy)/2, enabled) + self._owner.DrawImage(img, dc, xOld, y + (height-iy)//2, enabled) xOld += ix width -= ix @@ -5230,7 +5230,7 @@ class UltimateListHeaderWindow(wx.Control): # We got a checkbox-type item ix, iy = self._owner.GetCheckboxImageSize() # We draw it on the left, always - self._owner.DrawCheckbox(dc, x + HEADER_OFFSET_X, HEADER_OFFSET_Y + (h - 4 - iy)/2, kind, checked, enabled) + self._owner.DrawCheckbox(dc, x + HEADER_OFFSET_X, HEADER_OFFSET_Y + (h - 4 - iy)//2, kind, checked, enabled) wcheck += ix + HEADER_IMAGE_MARGIN_IN_REPORT_MODE cw -= ix + HEADER_IMAGE_MARGIN_IN_REPORT_MODE @@ -6819,7 +6819,7 @@ class UltimateListMainWindow(wx.ScrolledWindow): # We got a checkbox-type item ix, iy = self.GetCheckboxImageSize() LH = self.GetLineHeight(line) - rect = wx.Rect(xOld, lineY + LH/2 - iy/2, ix, iy) + rect = wx.Rect(xOld, lineY + LH//2 - iy//2, ix, iy) if rect.Contains((x, y)): newItem = self.GetParent().GetItem(line, col) return newItem, ULC_HITTEST_ONITEMCHECK @@ -7937,13 +7937,13 @@ class UltimateListMainWindow(wx.ScrolledWindow): while start_y > view_y: start_y -= SCROLL_UNIT_Y - self.Scroll(-1, start_y/SCROLL_UNIT_Y) + self.Scroll(-1, start_y//SCROLL_UNIT_Y) if start_y + height > view_y + client_h: while start_y + height < view_y + client_h: start_y += SCROLL_UNIT_Y - self.Scroll(-1, (start_y+height-client_h+SCROLL_UNIT_Y)/SCROLL_UNIT_Y) + self.Scroll(-1, (start_y+height-client_h+SCROLL_UNIT_Y)//SCROLL_UNIT_Y) else: # !report @@ -7960,7 +7960,7 @@ class UltimateListMainWindow(wx.ScrolledWindow): if rect.y + rect.height - 5 > view_y + client_h: sy = (rect.y + rect.height - client_h + hLine)/hLine - self.Scroll(sx, sy) + self.Scroll(int(sx), int(sy)) # ---------------------------------------------------------------------------- diff --git a/wx/lib/agw/xlsgrid.py b/wx/lib/agw/xlsgrid.py index b505aebb..17267fab 100644 --- a/wx/lib/agw/xlsgrid.py +++ b/wx/lib/agw/xlsgrid.py @@ -965,7 +965,7 @@ class XLSText(object): xp = xc - (text_width/2)*xshift - (text_height/2)*yshift yp = yc + (text_width/2)*yshift - (text_height/2)*xshift - dc.DrawRotatedText(value, xp, yp, self.rotation) + dc.DrawRotatedText(value, int(xp), int(yp), self.rotation) else: @@ -1125,7 +1125,7 @@ class XLSRichText(XLSText): if font.escapement == 1: ypos = ypos - maxH + height - dc.DrawText(chunk, start, ypos) + dc.DrawText(chunk, start, int(ypos)) start += width diff --git a/wx/lib/agw/zoombar.py b/wx/lib/agw/zoombar.py index 1e6ec5da..8c2afd05 100644 --- a/wx/lib/agw/zoombar.py +++ b/wx/lib/agw/zoombar.py @@ -463,7 +463,7 @@ class ZoomBarImage(object): def GetPosition(self): """ Returns the button position. """ - return wx.Point(self._left, self._top) + return wx.Point(int(self._left), int(self._top)) def GetSize(self): @@ -601,7 +601,7 @@ class ImageBar(object): def GetPosition(self): """ Returns the position of :class:`wx.ImageBar`, as a :class:`wx.Point`. """ - return wx.Point(self._left, self._top) + return wx.Point(int(self._left), int(self._top)) def GetSize(self): @@ -660,7 +660,7 @@ class ImageBar(object): if xSize is not None: self._size = wx.Size(xSize, ySize) - bitmap.Rescale(self._size.width, self._size.height/2) + bitmap.Rescale(self._size.width, self._size.height//2) r1, g1, b1 = self._startColour.Red(), self._startColour.Green(), self._startColour.Blue() r2, g2, b2 = colour.Red(), colour.Green(), colour.Blue() @@ -1065,7 +1065,7 @@ class ZoomBar(wx.Control): ySize += yextent if self._showReflections: - ySize += self._buttonSize/2 + ySize += self._buttonSize//2 if self._centerZoom: ySize += self._buttonSize @@ -1240,7 +1240,7 @@ class ZoomBar(wx.Control): textWidth, textHeight = dc.GetTextExtent(label) buttonPos = button.GetPosition() buttonSize = button.GetSize() - xpos = buttonPos.x + (buttonSize.width - textWidth)/2 + xpos = buttonPos.x + (buttonSize.width - textWidth)//2 ypos = buttonPos.y - textHeight - 2 dc.DrawRectangle(xpos-2, ypos-1, textWidth+4, textHeight+2) diff --git a/wx/lib/analogclock/analogclock.py b/wx/lib/analogclock/analogclock.py index 7c4b1897..1ee1d674 100644 --- a/wx/lib/analogclock/analogclock.py +++ b/wx/lib/analogclock/analogclock.py @@ -173,7 +173,7 @@ class AnalogClock(wx.Window): scale = min([float(size.width) / self.basesize.width, float(size.height) / self.basesize.height]) - centre = wx.Point(size.width / 2., size.height / 2.) + centre = wx.Point(size.width // 2, size.height // 2) self.Box.RecalcCoords(size, centre, scale) self.Hands.RecalcCoords(size, centre, scale) diff --git a/wx/lib/analogclock/helpers.py b/wx/lib/analogclock/helpers.py index 88d198be..9674de91 100644 --- a/wx/lib/analogclock/helpers.py +++ b/wx/lib/analogclock/helpers.py @@ -37,7 +37,7 @@ class Element: def _pol2rect(self, m, t): - return m * math.cos(math.radians(t)), m * math.sin(math.radians(t)) + return int(m * math.cos(math.radians(t))), int(m * math.sin(math.radians(t))) def _rect2pol(self, x, y): @@ -174,7 +174,7 @@ class Face(ElementWithDyer): def Draw(self, dc): self.dyer.Select(dc) - dc.DrawCircle(self.pos.x, self.pos.y, self.radius) + dc.DrawCircle(self.pos.x, self.pos.y, int(self.radius)) def RecalcCoords(self, clocksize, centre, scale): @@ -205,7 +205,7 @@ class Hand(ElementWithDyer): m, t = self._rect2pol(x, y) polygon[i] = self._pol2rect(m, t - angle) - dc.DrawPolygon(polygon, centre.x + offset, centre.y + offset) + dc.DrawPolygon(polygon, int(centre.x + offset), int(centre.y + offset)) def RecalcCoords(self, clocksize, centre, scale): @@ -226,7 +226,7 @@ class TickSquare(Element): x = self.pos.x - width / 2. y = self.pos.y - height / 2. - dc.DrawRectangle(x + offset, y + offset, width, height) + dc.DrawRectangle(int(x + offset), int(y + offset), int(width), int(height)) #---------------------------------------------------------------------- @@ -242,7 +242,7 @@ class TickCircle(Element): x = self.pos.x y = self.pos.y - dc.DrawCircle(x + offset, y + offset, radius) + dc.DrawCircle(int(x + offset), int(y + offset), int(radius)) #---------------------------------------------------------------------- @@ -273,7 +273,7 @@ class TickPoly(Element): x = self.pos.x - width / 2. y = self.pos.y - height / 2. - dc.DrawPolygon(polygon, x + offset, y + offset) + dc.DrawPolygon(polygon, int(x + offset), int(y + offset)) def DrawRotated(self, dc, offset=0): @@ -290,7 +290,7 @@ class TickPoly(Element): x = self.pos.x - math.cos(r) * width / 2. - math.sin(r) * height / 2. y = self.pos.y - math.cos(r) * height / 2. + math.sin(r) * width / 2. - dc.DrawPolygon(polygon, x + offset, y + offset) + dc.DrawPolygon(polygon, int(x + offset), int(y + offset)) #---------------------------------------------------------------------- @@ -309,7 +309,7 @@ class TickDecimal(Element): x = self.pos.x - width / 2. y = self.pos.y - height / 2. - dc.DrawText(self.text, x + offset, y + offset) + dc.DrawText(self.text, int(x + offset), int(y + offset)) def DrawRotated(self, dc, offset=0): @@ -321,7 +321,7 @@ class TickDecimal(Element): x = self.pos.x - math.cos(r) * width / 2. - math.sin(r) * height / 2. y = self.pos.y - math.cos(r) * height / 2. + math.sin(r) * width / 2. - dc.DrawRotatedText(self.text, x + offset, y + offset, angle) + dc.DrawRotatedText(self.text, int(x + offset), int(y + offset), int(angle)) #---------------------------------------------------------------------- @@ -656,7 +656,7 @@ class TickSet: # Try to find a 'good' max size for text-based ticks. if a_tick.text is not None: - self.font.SetPointSize(size) + self.font.SetPointSize(int(size)) dc = wx.MemoryDC() dc.SelectObject(wx.Bitmap(*clocksize.Get())) dc.SetFont(self.font) @@ -686,7 +686,7 @@ class TickSet: x = centre.x + radius * math.sin(angle) y = centre.y + radius * math.cos(angle) - tick.SetPosition(wx.Point(x, y)) + tick.SetPosition(wx.Point(int(x), int(y))) def GetSize(self): diff --git a/wx/lib/analogclock/setup.py b/wx/lib/analogclock/setup.py index a83c8639..a7dffb90 100644 --- a/wx/lib/analogclock/setup.py +++ b/wx/lib/analogclock/setup.py @@ -179,7 +179,7 @@ class _Group_1(_GroupBase): p.SetCustomColours(self.customcolours) sizer.Add(p, pos=(0, 1), flag=wx.ALIGN_CENTRE_VERTICAL) - p = self.bw = wx.SpinCtrl(self, size=(75, 21), + p = self.bw = wx.SpinCtrl(self, min=0, max=100, value="75") sizer.Add(p, pos=(0, 2), span=(1, 2), flag=wx.ALIGN_CENTRE_VERTICAL) @@ -193,7 +193,7 @@ class _Group_1(_GroupBase): p = self.ls = wx.StaticText(self, label="Size:") sizer.Add(p, pos=(2, 0), flag=wx.ALIGN_CENTRE_VERTICAL) - p = self.sz = wx.SpinCtrl(self, size=(75, 21), + p = self.sz = wx.SpinCtrl(self, min=0, max=100, value="75") sizer.Add(p, pos=(2, 1), span=(1, 3), flag=wx.ALIGN_CENTRE_VERTICAL) @@ -212,7 +212,7 @@ class _Group_2(_Group_1): p = wx.StaticText(self, label="Offset:") sizer.Add(p, pos=(3, 0), flag=wx.ALIGN_CENTRE_VERTICAL) - p = self.of = wx.SpinCtrl(self, size=(75, 21), + p = self.of = wx.SpinCtrl(self, min=0, max=100, value="75") sizer.Add(p, pos=(3, 1), span=(1, 3), flag=wx.ALIGN_CENTRE_VERTICAL) diff --git a/wx/lib/buttons.py b/wx/lib/buttons.py index 46d1b874..f01a54d4 100644 --- a/wx/lib/buttons.py +++ b/wx/lib/buttons.py @@ -453,7 +453,7 @@ class GenButton(wx.Control): tw, th = dc.GetTextExtent(label) if not self.up: dx = dy = self.labelDelta - dc.DrawText(label, (width-tw)/2+dx, (height-th)/2+dy) + dc.DrawText(label, (width-tw)//2+dx, (height-th)//2+dy) def DrawFocusIndicator(self, dc, w, h): @@ -844,7 +844,7 @@ class GenBitmapButton(GenButton): if not self.up: dx = dy = self.labelDelta hasMask = bmp.GetMask() is not None - dc.DrawBitmap(bmp, (width-bw)/2+dx, (height-bh)/2+dy, hasMask) + dc.DrawBitmap(bmp, (width-bw)//2+dx, (height-bh)//2+dy, hasMask) #---------------------------------------------------------------------- @@ -926,12 +926,12 @@ class GenBitmapTextButton(GenBitmapButton): if not self.up: dx = dy = self.labelDelta - pos_x = (width-bw-tw)/2+dx # adjust for bitmap and text to centre + pos_x = (width-bw-tw)//2+dx # adjust for bitmap and text to centre if bmp is not None: - dc.DrawBitmap(bmp, pos_x, (height-bh)/2+dy, hasMask) # draw bitmap if available + dc.DrawBitmap(bmp, pos_x, (height-bh)//2+dy, hasMask) # draw bitmap if available pos_x = pos_x + 2 # extra spacing from bitmap - dc.DrawText(label, pos_x + dx+bw, (height-th)/2+dy) # draw the text + dc.DrawText(label, pos_x + dx+bw, (height-th)//2+dy) # draw the text #---------------------------------------------------------------------- diff --git a/wx/lib/colourchooser/pycolourchooser.py b/wx/lib/colourchooser/pycolourchooser.py index 61dbc02d..12437648 100644 --- a/wx/lib/colourchooser/pycolourchooser.py +++ b/wx/lib/colourchooser/pycolourchooser.py @@ -188,7 +188,7 @@ class PyColourChooser(wx.Panel): self.colour_slider.Bind(wx.EVT_MOTION, self.onSliderMotion) self.slider = wx.Slider( self, self.idSCROLL, 86, 0, self.colour_slider.HEIGHT - 1, - style=wx.SL_VERTICAL, size=(15, self.colour_slider.HEIGHT) + style=wx.SL_VERTICAL, size=(-1, self.colour_slider.HEIGHT) ) self.Bind(wx.EVT_COMMAND_SCROLL, self.onScroll, self.slider) @@ -338,7 +338,7 @@ class PyColourChooser(wx.Panel): min = self.slider.GetMin() max = self.slider.GetMax() val = (1 - v) * max - self.slider.SetValue(val) + self.slider.SetValue(int(val)) def getVFromSlider(self): """Get the current value of "V" from the v slider.""" diff --git a/wx/lib/colourchooser/pypalette.py b/wx/lib/colourchooser/pypalette.py index ff1fb840..71b9fc2d 100644 --- a/wx/lib/colourchooser/pypalette.py +++ b/wx/lib/colourchooser/pypalette.py @@ -165,7 +165,7 @@ class PyPalette(canvas.Canvas): if self.point: self.buffer.SetPen(wx.BLACK_PEN) self.buffer.SetBrush(wx.TRANSPARENT_BRUSH) - self.buffer.DrawCircle(self.point[0], self.point[1], 3) + self.buffer.DrawCircle(int(self.point[0]), int(self.point[1]), 3) def HighlightPoint(self, x, y): """Highlights an area of the palette with a little circle around diff --git a/wx/lib/floatcanvas/FCObjects.py b/wx/lib/floatcanvas/FCObjects.py index 58becd38..cdf8cc53 100644 --- a/wx/lib/floatcanvas/FCObjects.py +++ b/wx/lib/floatcanvas/FCObjects.py @@ -296,7 +296,7 @@ class DrawObject: else: self.Pen = self.PenList.setdefault( (LineColor, LineStyle, LineWidth), - wx.Pen(LineColor, LineWidth, self.LineStyleList[LineStyle])) + wx.Pen(LineColor, int(LineWidth), self.LineStyleList[LineStyle])) def SetHitBrush(self, HitColor): """ @@ -1202,14 +1202,14 @@ class SquarePoint(XYObjectMixin, ColorOnlyMixin, DrawObject): x = xc - Size/2.0 y = yc - Size/2.0 dc.SetBrush(self.Brush) - dc.DrawRectangle(x, y, Size, Size) + dc.DrawRectangle(int(x), int(y), Size, Size) if HTdc and self.HitAble: HTdc.SetPen(self.HitPen) if self.Size <= 1: HTdc.DrawPoint(xc, xc) else: HTdc.SetBrush(self.HitBrush) - HTdc.DrawRectangle(x, y, Size, Size) + HTdc.DrawRectangle(int(x), int(y), Size, Size) class RectEllipse(XYObjectMixin, LineAndFillMixin, DrawObject): """A RectEllipse draw object.""" @@ -2161,7 +2161,7 @@ class ScaledBitmap(TextObjectMixin, DrawObject): W = H * (self.bmpWidth / self.bmpHeight) if (self.ScaledBitmap is None) or (H != self.ScaledHeight) : self.ScaledHeight = H - Img = self.Image.Scale(W, H) + Img = self.Image.Scale(int(W), int(H)) self.ScaledBitmap = wx.Bitmap(Img) XY = self.ShiftFun(XY[0], XY[1], W, H) diff --git a/wx/lib/gizmos/ledctrl.py b/wx/lib/gizmos/ledctrl.py index f185d510..7f4d3fcf 100644 --- a/wx/lib/gizmos/ledctrl.py +++ b/wx/lib/gizmos/ledctrl.py @@ -293,7 +293,7 @@ class LEDNumberCtrl(wx.Control): if digit & c.COLON: dc.SetBrush(wx.Brush(lineColor)) - centerX = XPos + (self.m_lineLength + self.m_digitMargin) / 2 - radius = self.m_lineWidth / 2 - dc.DrawCircle(centerX, (self.m_lineLength + (self.m_lineMargin * 4)) / 2, radius) - dc.DrawCircle(centerX, (self.m_lineLength * 2 + (self.m_lineMargin * 6)) * 3 / 4, radius) + centerX = XPos + (self.m_lineLength + self.m_digitMargin) // 2 + radius = self.m_lineWidth // 2 + dc.DrawCircle(centerX, (self.m_lineLength + (self.m_lineMargin * 4)) // 2, radius) + dc.DrawCircle(centerX, (self.m_lineLength * 2 + (self.m_lineMargin * 6)) * 3 // 4, radius) diff --git a/wx/lib/imagebrowser.py b/wx/lib/imagebrowser.py index 795e90dc..8e14727e 100644 --- a/wx/lib/imagebrowser.py +++ b/wx/lib/imagebrowser.py @@ -347,8 +347,8 @@ class ImageView(wx.Window): owidth = int(scale*iwidth) oheight = int(scale*iheight) - diffx = (wwidth - owidth)/2 # center calc - diffy = (wheight - oheight)/2 # center calc + diffx = (wwidth - owidth)//2 # center calc + diffy = (wheight - oheight)//2 # center calc if not bmp: if owidth!=iwidth or oheight!=iheight: diff --git a/wx/lib/ogl/basic.py b/wx/lib/ogl/basic.py index b08859ab..0107f21f 100644 --- a/wx/lib/ogl/basic.py +++ b/wx/lib/ogl/basic.py @@ -1051,7 +1051,7 @@ class Shape(ShapeEvtHandler): dc.SetPen(self.GetBackgroundPen()) dc.SetBrush(self.GetBackgroundBrush()) - dc.DrawRectangle(topLeftX - penWidth, topLeftY - penWidth, maxX + penWidth * 2 + 4, maxY + penWidth * 2 + 4) + dc.DrawRectangle(int(topLeftX - penWidth), int(topLeftY - penWidth), int(maxX + penWidth * 2 + 4), int(maxY + penWidth * 2 + 4)) def EraseLinks(self, dc, attachment = -1, recurse = False): """ @@ -2769,9 +2769,9 @@ class RectangleShape(Shape): dc.SetBrush(self._brush) if self._cornerRadius: - dc.DrawRoundedRectangle(x1, y1, self._width, self._height, self._cornerRadius) + dc.DrawRoundedRectangle(int(x1), int(y1), self._width, self._height, self._cornerRadius) else: - dc.DrawRectangle(x1, y1, self._width, self._height) + dc.DrawRectangle(int(x1), int(y1), self._width, self._height) def GetBoundingBoxMin(self): """Get the bounding box minimum.""" @@ -2882,7 +2882,7 @@ class PolygonShape(Shape): # Duplicate the list of points self._points = [] for point in the_points: - new_point = wx.Point(point[0], point[1]) + new_point = wx.Point(int(point[0]), int(point[1])) self._points.append(new_point) self.CalculateBoundingBox() self._originalWidth = self._boundWidth @@ -3444,7 +3444,7 @@ class EllipseShape(Shape): dc.SetPen(self._pen) if self._brush: dc.SetBrush(self._brush) - dc.DrawEllipse(self._xpos - self.GetWidth() / 2.0, self._ypos - self.GetHeight() / 2.0, self.GetWidth(), self.GetHeight()) + dc.DrawEllipse(int(self._xpos - self.GetWidth() / 2.0), int(self._ypos - self.GetHeight() / 2.0), self.GetWidth(), self.GetHeight()) def SetSize(self, x, y, recursive = True): """ diff --git a/wx/lib/ogl/bmpshape.py b/wx/lib/ogl/bmpshape.py index ee285952..e53ddb13 100644 --- a/wx/lib/ogl/bmpshape.py +++ b/wx/lib/ogl/bmpshape.py @@ -32,7 +32,7 @@ class BitmapShape(RectangleShape): x = self._xpos - self._bitmap.GetWidth() / 2.0 y = self._ypos - self._bitmap.GetHeight() / 2.0 - dc.DrawBitmap(self._bitmap, x, y, True) + dc.DrawBitmap(self._bitmap, int(x), int(y), True) def SetSize(self, w, h, recursive = True): """ diff --git a/wx/lib/ogl/composit.py b/wx/lib/ogl/composit.py index c3b62395..eecaafb3 100644 --- a/wx/lib/ogl/composit.py +++ b/wx/lib/ogl/composit.py @@ -1131,11 +1131,11 @@ class DivisionShape(CompositeShape): if self._leftSide: dc.SetPen(self._leftSidePen) - dc.DrawLine(x1, y2, x1, y1) + dc.DrawLine(int(x1), int(y2), int(x1), int(y1)) if self._topSide: dc.SetPen(self._topSidePen) - dc.DrawLine(x1, y1, x2, y1) + dc.DrawLine(int(x1), int(y1), int(x2), int(y1)) # For testing purposes, draw a rectangle so we know # how big the division is. diff --git a/wx/lib/ogl/divided.py b/wx/lib/ogl/divided.py index 0bfb1919..0809be58 100644 --- a/wx/lib/ogl/divided.py +++ b/wx/lib/ogl/divided.py @@ -231,7 +231,7 @@ class DividedShape(RectangleShape): regionPen = region.GetActualPen() if regionPen: dc.SetPen(regionPen) - dc.DrawLine(leftX, y, rightX, y) + dc.DrawLine(int(leftX), int(y), int(rightX), int(y)) currentY = actualY diff --git a/wx/lib/ogl/lines.py b/wx/lib/ogl/lines.py index 948b85d8..50c07e04 100644 --- a/wx/lib/ogl/lines.py +++ b/wx/lib/ogl/lines.py @@ -1200,7 +1200,7 @@ class LineShape(Shape): points = [] for point in self._lineControlPoints: - points.append(wx.Point(point[0], point[1])) + points.append(wx.Point(int(point[0]), int(point[1]))) if self._isSpline: dc.DrawSpline(points) diff --git a/wx/lib/ogl/oglmisc.py b/wx/lib/ogl/oglmisc.py index 8588a72b..a8be3fc5 100644 --- a/wx/lib/ogl/oglmisc.py +++ b/wx/lib/ogl/oglmisc.py @@ -300,10 +300,10 @@ def DrawFormattedText(dc, text_list, xpos, ypos, width, height, formatMode): yoffset = ypos - height / 2.0 # +1 to allow for rounding errors - dc.SetClippingRegion(xpos - width / 2.0, ypos - height / 2.0, width + 1, height + 1) + dc.SetClippingRegion(int(xpos - width / 2.0), int(ypos - height / 2.0), int(width + 1), int(height + 1)) for line in text_list: - dc.DrawText(line.GetText(), xoffset + line.GetX(), yoffset + line.GetY()) + dc.DrawText(line.GetText(), int(xoffset + line.GetX()), int(yoffset + line.GetY())) dc.DestroyClippingRegion() diff --git a/wx/lib/plot/examples/demo.py b/wx/lib/plot/examples/demo.py index 98fbaad3..02bec1d9 100644 --- a/wx/lib/plot/examples/demo.py +++ b/wx/lib/plot/examples/demo.py @@ -984,7 +984,7 @@ class PlotDemoMainFrame(wx.Frame): sx, sy = mDataDict["scaledXY"] # scaled x,y of closest point # 10by10 square centered on point - dc.DrawRectangle(sx - 5, sy - 5, 10, 10) + dc.DrawRectangle(int(sx - 5), int(sy - 5), 10, 10) px, py = mDataDict["pointXY"] cNum = mDataDict["curveNum"] pntIn = mDataDict["pIndex"] @@ -992,7 +992,7 @@ class PlotDemoMainFrame(wx.Frame): # make a string to display s = "Crv# %i, '%s', Pt. (%.2f,%.2f), PtInd %i" % ( cNum, legend, px, py, pntIn) - dc.DrawText(s, sx, sy + 1) + dc.DrawText(s, int(sx), int(sy + 1)) def run_demo(): diff --git a/wx/lib/plot/plotcanvas.py b/wx/lib/plot/plotcanvas.py index dd3f77d5..abee47ef 100644 --- a/wx/lib/plot/plotcanvas.py +++ b/wx/lib/plot/plotcanvas.py @@ -174,24 +174,24 @@ class PlotCanvas(wx.Panel): # Default Pens self._gridPen = wx.Pen(wx.Colour(180, 180, 180, 255), - self._pointSize[0], + int(self._pointSize[0]), wx.PENSTYLE_DOT) self._centerLinePen = wx.Pen(wx.RED, - self._pointSize[0], + int(self._pointSize[0]), wx.PENSTYLE_SHORT_DASH) self._axesPen = wx.Pen(wx.BLACK, - self._pointSize[0], + int(self._pointSize[0]), wx.PENSTYLE_SOLID) self._tickPen = wx.Pen(wx.BLACK, - self._pointSize[0], + int(self._pointSize[0]), wx.PENSTYLE_SOLID) self._tickLength = tuple(-x * 2 for x in self._pointSize) self._diagonalPen = wx.Pen(wx.BLUE, - self._pointSize[0], + int(self._pointSize[0]), wx.PENSTYLE_DOT_DASH) def SetCursor(self, cursor): @@ -1925,10 +1925,10 @@ class PlotCanvas(wx.Panel): # set clipping area so drawing does not occur outside axis box ptx, pty, rectWidth, rectHeight = self._point2ClientCoord(p1, p2) # allow graph to overlap axis lines by adding units to w and h - dc.SetClippingRegion(ptx * self._pointSize[0], - pty * self._pointSize[1], - rectWidth * self._pointSize[0] + 2, - rectHeight * self._pointSize[1] + 1) + dc.SetClippingRegion(int(ptx * self._pointSize[0]), + int(pty * self._pointSize[1]), + int(rectWidth * self._pointSize[0] + 2), + int(rectHeight * self._pointSize[1] + 1)) # Draw the lines and markers # start = _time.perf_counter() graphics.draw(dc) @@ -2280,7 +2280,7 @@ class PlotCanvas(wx.Panel): pnt = ((trhc[0] + legendLHS + legendSymExt[0] + 5 * self._pointSize[0]), trhc[1] + s + lineHeight / 2. - legendTextExt[1] / 2) - dc.DrawText(o.getLegend(), pnt[0], pnt[1]) + dc.DrawText(o.getLegend(), int(pnt[0]), int(pnt[1])) dc.SetFont(self._getFont(self._fontSizeAxis)) # reset def _titleLablesWH(self, dc, graphics): @@ -2329,7 +2329,7 @@ class PlotCanvas(wx.Panel): dc.SetPen(wx.Pen(wx.BLACK)) dc.SetBrush(wx.Brush(wx.WHITE, wx.BRUSHSTYLE_TRANSPARENT)) dc.SetLogicalFunction(wx.INVERT) - dc.DrawRectangle(ptx, pty, rectWidth, rectHeight) + dc.DrawRectangle(int(ptx), int(pty), int(rectWidth), int(rectHeight)) dc.SetLogicalFunction(wx.COPY) def _getFont(self, size): @@ -2423,7 +2423,7 @@ class PlotCanvas(wx.Panel): # increases thickness for printing only pen = self.gridPen penWidth = self.printerScale * pen.GetWidth() - pen.SetWidth(penWidth) + pen.SetWidth(int(penWidth)) dc.SetPen(pen) x, y, width, height = self._point2ClientCoord(p1, p2) @@ -2432,13 +2432,13 @@ class PlotCanvas(wx.Panel): if self.enableGrid[0]: for x, _ in xticks: pt = scale_and_shift_point(x, p1[1], scale, shift) - dc.DrawLine(pt[0], pt[1], pt[0], pt[1] - height) + dc.DrawLine(int(pt[0]), int(pt[1]), int(pt[0]), int(pt[1] - height)) if self._ySpec != 'none': if self.enableGrid[1]: for y, label in yticks: pt = scale_and_shift_point(p1[0], y, scale, shift) - dc.DrawLine(pt[0], pt[1], pt[0] + width, pt[1]) + dc.DrawLine(int(pt[0]), int(pt[1]), int(pt[0] + width), int(pt[1])) @TempStyle('pen') def _drawTicks(self, dc, p1, p2, scale, shift, xticks, yticks): @@ -2471,7 +2471,7 @@ class PlotCanvas(wx.Panel): # increases thickness for printing only pen = self.tickPen penWidth = self.printerScale * pen.GetWidth() - pen.SetWidth(penWidth) + pen.SetWidth(int(penWidth)) dc.SetPen(pen) # lengthen lines for printing @@ -2484,13 +2484,13 @@ class PlotCanvas(wx.Panel): lines = [] for x, label in xticks: pt = scale_and_shift_point(x, p1[1], scale, shift) - lines.append((pt[0], pt[1], pt[0], pt[1] - xTickLength)) + lines.append((int(pt[0]), int(pt[1]), int(pt[0]), int(pt[1] - xTickLength))) dc.DrawLineList(lines) if ticks.top: lines = [] for x, label in xticks: pt = scale_and_shift_point(x, p2[1], scale, shift) - lines.append((pt[0], pt[1], pt[0], pt[1] + xTickLength)) + lines.append((int(pt[0]), int(pt[1]), int(pt[0]), int(pt[1] + xTickLength))) dc.DrawLineList(lines) if self.ySpec != 'none': @@ -2498,13 +2498,13 @@ class PlotCanvas(wx.Panel): lines = [] for y, label in yticks: pt = scale_and_shift_point(p1[0], y, scale, shift) - lines.append((pt[0], pt[1], pt[0] + yTickLength, pt[1])) + lines.append((int(pt[0]), int(pt[1]), int(pt[0] + yTickLength), int(pt[1]))) dc.DrawLineList(lines) if ticks.right: lines = [] for y, label in yticks: pt = scale_and_shift_point(p2[0], y, scale, shift) - lines.append((pt[0], pt[1], pt[0] - yTickLength, pt[1])) + lines.append((int(pt[0]), int(pt[1]), int(pt[0] - yTickLength), int(pt[1]))) dc.DrawLineList(lines) @TempStyle('pen') @@ -2531,25 +2531,25 @@ class PlotCanvas(wx.Panel): # increases thickness for printing only pen = self.centerLinePen penWidth = self.printerScale * pen.GetWidth() - pen.SetWidth(penWidth) + pen.SetWidth(int(penWidth)) dc.SetPen(pen) if self._centerLinesEnabled in ('Horizontal', True): y1 = scale[1] * p1[1] + shift[1] y2 = scale[1] * p2[1] + shift[1] y = (y1 - y2) / 2.0 + y2 - dc.DrawLine(scale[0] * p1[0] + shift[0], - y, - scale[0] * p2[0] + shift[0], - y) + dc.DrawLine(int(scale[0] * p1[0] + shift[0]), + int(y), + int(scale[0] * p2[0] + shift[0]), + int(y)) if self._centerLinesEnabled in ('Vertical', True): x1 = scale[0] * p1[0] + shift[0] x2 = scale[0] * p2[0] + shift[0] x = (x1 - x2) / 2.0 + x2 - dc.DrawLine(x, - scale[1] * p1[1] + shift[1], - x, - scale[1] * p2[1] + shift[1]) + dc.DrawLine(int(x), + int(scale[1] * p1[1] + shift[1]), + int(x), + int(scale[1] * p2[1] + shift[1])) @TempStyle('pen') def _drawDiagonals(self, dc, p1, p2, scale, shift): @@ -2575,19 +2575,19 @@ class PlotCanvas(wx.Panel): """ pen = self.diagonalPen penWidth = self.printerScale * pen.GetWidth() - pen.SetWidth(penWidth) + pen.SetWidth(int(penWidth)) dc.SetPen(pen) if self._diagonalsEnabled in ('Bottomleft-Topright', True): - dc.DrawLine(scale[0] * p1[0] + shift[0], - scale[1] * p1[1] + shift[1], - scale[0] * p2[0] + shift[0], - scale[1] * p2[1] + shift[1]) + dc.DrawLine(int(scale[0] * p1[0] + shift[0]), + int(scale[1] * p1[1] + shift[1]), + int(scale[0] * p2[0] + shift[0]), + int(scale[1] * p2[1] + shift[1])) if self._diagonalsEnabled in ('Bottomright-Topleft', True): - dc.DrawLine(scale[0] * p1[0] + shift[0], - scale[1] * p2[1] + shift[1], - scale[0] * p2[0] + shift[0], - scale[1] * p1[1] + shift[1]) + dc.DrawLine(int(scale[0] * p1[0] + shift[0]), + int(scale[1] * p2[1] + shift[1]), + int(scale[0] * p2[0] + shift[0]), + int(scale[1] * p1[1] + shift[1])) @TempStyle('pen') def _drawAxes(self, dc, p1, p2, scale, shift): @@ -2614,7 +2614,7 @@ class PlotCanvas(wx.Panel): # increases thickness for printing only pen = self.axesPen penWidth = self.printerScale * pen.GetWidth() - pen.SetWidth(penWidth) + pen.SetWidth(int(penWidth)) dc.SetPen(pen) axes = self.enableAxes @@ -2623,24 +2623,24 @@ class PlotCanvas(wx.Panel): lower, upper = p1[0], p2[0] a1 = scale_and_shift_point(lower, p1[1], scale, shift) a2 = scale_and_shift_point(upper, p1[1], scale, shift) - dc.DrawLine(a1[0], a1[1], a2[0], a2[1]) + dc.DrawLine(int(a1[0]), int(a1[1]), int(a2[0]), int(a2[1])) if axes.top: lower, upper = p1[0], p2[0] a1 = scale_and_shift_point(lower, p2[1], scale, shift) a2 = scale_and_shift_point(upper, p2[1], scale, shift) - dc.DrawLine(a1[0], a1[1], a2[0], a2[1]) + dc.DrawLine(int(a1[0]), int(a1[1]), int(a2[0]), int(a2[1])) if self.ySpec != 'none': if axes.left: lower, upper = p1[1], p2[1] a1 = scale_and_shift_point(p1[0], lower, scale, shift) a2 = scale_and_shift_point(p1[0], upper, scale, shift) - dc.DrawLine(a1[0], a1[1], a2[0], a2[1]) + dc.DrawLine(int(a1[0]), int(a1[1]), int(a2[0]), int(a2[1])) if axes.right: lower, upper = p1[1], p2[1] a1 = scale_and_shift_point(p2[0], lower, scale, shift) a2 = scale_and_shift_point(p2[0], upper, scale, shift) - dc.DrawLine(a1[0], a1[1], a2[0], a2[1]) + dc.DrawLine(int(a1[0]), int(a1[1]), int(a2[0]), int(a2[1])) @TempStyle('pen') def _drawAxesValues(self, dc, p1, p2, scale, shift, xticks, yticks): @@ -2686,8 +2686,8 @@ class PlotCanvas(wx.Panel): w = dc.GetTextExtent(label)[0] pt = scale_and_shift_point(x, p1[1], scale, shift) coords.append( - (pt[0] - w/2, - pt[1] + 2 * self._pointSize[1] - xTickLength) + (int(pt[0] - w/2), + int(pt[1] + 2 * self._pointSize[1] - xTickLength)) ) dc.DrawTextList(labels, coords) @@ -2698,8 +2698,8 @@ class PlotCanvas(wx.Panel): w, h = dc.GetTextExtent(label) pt = scale_and_shift_point(x, p2[1], scale, shift) coords.append( - (pt[0] - w/2, - pt[1] - 2 * self._pointSize[1] - h - xTickLength) + (int(pt[0] - w/2), + int(pt[1] - 2 * self._pointSize[1] - h - xTickLength)) ) dc.DrawTextList(labels, coords) @@ -2712,8 +2712,8 @@ class PlotCanvas(wx.Panel): w = dc.GetTextExtent(label)[0] pt = scale_and_shift_point(p1[0], y, scale, shift) coords.append( - (pt[0] - w - 3 * self._pointSize[0] + yTickLength, - pt[1] - 0.5 * h) + (int(pt[0] - w - 3 * self._pointSize[0] + yTickLength), + int(pt[1] - 0.5 * h)) ) dc.DrawTextList(labels, coords) @@ -2725,8 +2725,8 @@ class PlotCanvas(wx.Panel): w = dc.GetTextExtent(label)[0] pt = scale_and_shift_point(p2[0], y, scale, shift) coords.append( - (pt[0] + 3 * self._pointSize[0] + yTickLength, - pt[1] - 0.5 * h) + (int(pt[0] + 3 * self._pointSize[0] + yTickLength), + int(pt[1] - 0.5 * h)) ) dc.DrawTextList(labels, coords) @@ -2785,7 +2785,7 @@ class PlotCanvas(wx.Panel): + (self.plotbox_size[0] - lhsW - rhsW) / 2. - titleWH[0] / 2., self.plotbox_origin[1] - self.plotbox_size[1] ) - dc.DrawText(graphics.title, titlePos[0], titlePos[1]) + dc.DrawText(graphics.title, int(titlePos[0]), int(titlePos[1])) def _drawAxesLabels(self, dc, graphics, lhsW, rhsW, bottomH, topH, xLabelWH, yLabelWH): @@ -2806,7 +2806,7 @@ class PlotCanvas(wx.Panel): + (self.plotbox_size[0] - lhsW - rhsW) / 2. - xLabelWH[0] / 2., self.plotbox_origin[1] - xLabelWH[1] - yTickLength ) - dc.DrawText(graphics.xLabel, xLabelPos[0], xLabelPos[1]) + dc.DrawText(graphics.xLabel, int(xLabelPos[0]), int(xLabelPos[1])) yLabelPos = ( self.plotbox_origin[0] - 3 * self._pointSize[0] + xTickLength, self.plotbox_origin[1] - bottomH @@ -2814,7 +2814,7 @@ class PlotCanvas(wx.Panel): ) if graphics.yLabel: # bug fix for Linux dc.DrawRotatedText( - graphics.yLabel, yLabelPos[0], yLabelPos[1], 90) + graphics.yLabel, int(yLabelPos[0]), int(yLabelPos[1]), 90) @TempStyle('pen') def _drawPlotAreaLabels(self, dc, graphics, lhsW, rhsW, titleWH, @@ -2942,7 +2942,7 @@ class PlotCanvas(wx.Panel): if pos >= 0: pagesize = int((r_current[1] - r_current[0]) / unit) - self.sb_hor.SetScrollbar(pos, pagesize, sbfullrange, pagesize) + self.sb_hor.SetScrollbar(pos, pagesize, int(sbfullrange), pagesize) self._sb_xunit = unit needScrollbars = needScrollbars or (pagesize != sbfullrange) else: @@ -2964,7 +2964,7 @@ class PlotCanvas(wx.Panel): if pos >= 0: pagesize = int((r_current[1] - r_current[0]) / unit) pos = (sbfullrange - 1 - pos - pagesize) - self.sb_vert.SetScrollbar(pos, pagesize, sbfullrange, pagesize) + self.sb_vert.SetScrollbar(int(pos), pagesize, int(sbfullrange), pagesize) self._sb_yunit = unit needScrollbars = needScrollbars or (pagesize != sbfullrange) else: diff --git a/wx/lib/plot/polyobjects.py b/wx/lib/plot/polyobjects.py index 26a54f8f..725b0164 100644 --- a/wx/lib/plot/polyobjects.py +++ b/wx/lib/plot/polyobjects.py @@ -417,7 +417,7 @@ class PolyLine(PolyPoints): if not isinstance(colour, wx.Colour): colour = wx.Colour(colour) - pen = wx.Pen(colour, width, style) + pen = wx.Pen(colour, int(width), style) pen.SetCap(wx.CAP_BUTT) dc.SetPen(pen) if coord is None: @@ -518,7 +518,7 @@ class PolySpline(PolyLine): style = self.attributes['style'] if not isinstance(colour, wx.Colour): colour = wx.Colour(colour) - pen = wx.Pen(colour, width, style) + pen = wx.Pen(colour, int(width), style) pen.SetCap(wx.CAP_ROUND) dc.SetPen(pen) if coord is None: @@ -590,7 +590,7 @@ class PolyMarker(PolyPoints): if fillcolour and not isinstance(fillcolour, wx.Colour): fillcolour = wx.Colour(fillcolour) - dc.SetPen(wx.Pen(colour, width)) + dc.SetPen(wx.Pen(colour, int(width))) if fillcolour: dc.SetBrush(wx.Brush(fillcolour, fillstyle)) else: @@ -618,6 +618,7 @@ class PolyMarker(PolyPoints): dc.DrawEllipseList(rect.astype(np.int32)) def _dot(self, dc, coords, size=1): + coords = [(int(c[0]), int(c[1])) for c in coords] dc.DrawPointList(coords) def _square(self, dc, coords, size=1): @@ -699,7 +700,7 @@ class PolyBarsBase(PolyPoints): if not isinstance(pencolour, wx.Colour): pencolour = wx.Colour(pencolour) - pen = wx.Pen(pencolour, penwidth, penstyle) + pen = wx.Pen(pencolour, int(penwidth), penstyle) pen.SetCap(wx.CAP_BUTT) if not isinstance(fillcolour, wx.Colour): @@ -790,6 +791,7 @@ class PolyBars(PolyBarsBase): raise TypeError(err_str.format(type(barwidth))) rects = [self.calc_rect(x, y, w) for x, y, w in pts] + rects = [(int(r[0]), int(r[1]), int(r[2]), int(r[3])) for r in rects] dc.DrawRectangleList(rects) else: dc.DrawLines(coord) # draw legend line @@ -858,6 +860,8 @@ class PolyHistogram(PolyBarsBase): rects = [self.calc_rect(y, low, high) for y, (low, high) in zip(self.hist, self.bins)] + rects = [(int(r[0]), int(r[1]), int(r[2]), int(r[3])) + for r in rects] dc.DrawRectangleList(rects) else: @@ -1114,10 +1118,10 @@ class PolyBoxPlot(PolyPoints): self.currentShift) # rectangles are drawn (left, top, width, height) so adjust - iqr_box = [iqr_box[0][0], # X (left) - iqr_box[0][1], # Y (top) - iqr_box[1][0] - iqr_box[0][0], # Width - iqr_box[1][1] - iqr_box[0][1]] # Height + iqr_box = [int(iqr_box[0][0]), # X (left) + int(iqr_box[0][1]), # Y (top) + int(iqr_box[1][0] - iqr_box[0][0]), # Width + int(iqr_box[1][1] - iqr_box[0][1])] # Height box_pen = wx.Pen(wx.BLACK, 3, wx.PENSTYLE_SOLID) box_brush = wx.Brush(wx.GREEN, wx.BRUSHSTYLE_SOLID) @@ -1503,7 +1507,7 @@ class PlotPrintout(wx.Printout): self.graph._setSize(plotAreaW, plotAreaH) # Set offset and scale - dc.SetDeviceOrigin(pixLeft, pixTop) + dc.SetDeviceOrigin(int(pixLeft), int(pixTop)) # Thicken up pens and increase marker size for printing ratioW = float(plotAreaW) / clientDcSize[0] diff --git a/wx/lib/popupctl.py b/wx/lib/popupctl.py index 883be5ae..236501f6 100644 --- a/wx/lib/popupctl.py +++ b/wx/lib/popupctl.py @@ -124,7 +124,7 @@ class PopupDialog(wx.Dialog): selfSize = self.GetSize() tcSize = self.ctrl.GetSize() - pos.x -= (selfSize.width - tcSize.width) / 2 + pos.x -= (selfSize.width - tcSize.width) // 2 if pos.x + selfSize.width > dSize.width: pos.x = dSize.width - selfSize.width if pos.x < 0: diff --git a/wx/lib/scrolledpanel.py b/wx/lib/scrolledpanel.py index e4c482af..1f783ea9 100644 --- a/wx/lib/scrolledpanel.py +++ b/wx/lib/scrolledpanel.py @@ -222,4 +222,4 @@ class ScrolledPanel(wx.ScrolledWindow): # if we need to adjust if new_vs_x != -1 or new_vs_y != -1: #print("%s: (%s, %s)" % (self.GetName(), new_vs_x, new_vs_y)) - self.Scroll(new_vs_x, new_vs_y) + self.Scroll(int(new_vs_x), int(new_vs_y)) diff --git a/wx/lib/throbber.py b/wx/lib/throbber.py index 9954d6b2..ee8c5120 100644 --- a/wx/lib/throbber.py +++ b/wx/lib/throbber.py @@ -200,11 +200,11 @@ class Throbber(wx.Panel): """ dc.DrawBitmap(self.submaps[self.sequence[self.current]], 0, 0, True) if self.overlay and self.showOverlay: - dc.DrawBitmap(self.overlay, self.overlayX, self.overlayY, True) + dc.DrawBitmap(self.overlay, int(self.overlayX), int(self.overlayY), True) if self.label and self.showLabel: - dc.DrawText(self.label, self.labelX, self.labelY) + dc.DrawText(self.label, int(self.labelX), int(self.labelY)) dc.SetTextForeground(wx.WHITE) - dc.DrawText(self.label, self.labelX-1, self.labelY-1) + dc.DrawText(self.label, int(self.labelX-1), int(self.labelY-1)) def OnPaint(self, event): diff --git a/wx/lib/ticker.py b/wx/lib/ticker.py index 04abf0d4..4e684b4c 100644 --- a/wx/lib/ticker.py +++ b/wx/lib/ticker.py @@ -86,7 +86,7 @@ class Ticker(wx.Control): def Start(self): """Starts the text moving""" if not self.timer.IsRunning(): - self.timer.Start(1000 / self._fps) + self.timer.Start(1000 // self._fps) def IsTicking(self): @@ -208,7 +208,7 @@ class Ticker(wx.Control): offx = self._offset - self._extent[0] else: offx = self.GetSize()[0] - self._offset - offy = (self.GetSize()[1] - self._extent[1]) / 2 #centered vertically + offy = (self.GetSize()[1] - self._extent[1]) // 2 #centered vertically dc.DrawText(self._text, offx, offy)