Reverted to old method names/signatures for wx.DC, updated lib and
demo to match. Also fixed some deprecation warnings. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -103,11 +103,17 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
|
||||
self.currentTime=None
|
||||
|
||||
size = wx.Size(*size)
|
||||
bestSize = self.GetBestSize()
|
||||
size.x = max(size.x, bestSize.x)
|
||||
size.y = max(size.y, bestSize.y)
|
||||
self.SetSize(size)
|
||||
|
||||
# Make an initial bitmap for the face, it will be updated and
|
||||
# painted at the first EVT_SIZE event.
|
||||
W, H = size
|
||||
self.faceBitmap = wx.EmptyBitmap(max(W,1), max(H,1))
|
||||
|
||||
|
||||
# Set event handlers...
|
||||
self.Bind(wx.EVT_PAINT, self.OnPaint)
|
||||
self.Bind(wx.EVT_ERASE_BACKGROUND, lambda x: None)
|
||||
@@ -117,18 +123,20 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown)
|
||||
self.Bind(wx.EVT_RIGHT_UP, self.OnRightClick)
|
||||
|
||||
|
||||
# Initialize the timer that drives the update of the clock
|
||||
# face. Update every half second to ensure that there is at
|
||||
# least one true update during each realtime second.
|
||||
self.timer = wx.Timer(self)
|
||||
self.timer.Start(500)
|
||||
|
||||
|
||||
def DoGetBestSize(self):
|
||||
return wx.Size(25,25)
|
||||
|
||||
|
||||
def OnPaint(self, event):
|
||||
self._doDrawHands(wx.BufferedPaintDC(self), True)
|
||||
dc = wx.BufferedPaintDC(self)
|
||||
self._doDrawHands(dc, True)
|
||||
|
||||
|
||||
def OnTimerExpire(self, event):
|
||||
@@ -187,6 +195,9 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
# The faceBitmap init is done here, to make sure the buffer is always
|
||||
# the same size as the Window
|
||||
size = self.GetClientSize()
|
||||
if size.x < 1 or size.y < 1:
|
||||
return
|
||||
|
||||
self.faceBitmap = wx.EmptyBitmap(size.width, size.height)
|
||||
|
||||
# Update drawing coordinates...
|
||||
@@ -221,7 +232,7 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
hour, minutes, seconds = currentTime
|
||||
|
||||
# Start by drawing the face bitmap
|
||||
drawDC.DrawBitmap(self.faceBitmap, (0,0))
|
||||
drawDC.DrawBitmap(self.faceBitmap, 0,0)
|
||||
|
||||
|
||||
# NOTE: All this hand drawing code below should be refactored into a helper function.
|
||||
@@ -240,10 +251,10 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetPen(wx.Pen(self.shadowPenColour,
|
||||
int(self.handHoursThickness * self.scale),
|
||||
wx.SOLID))
|
||||
drawDC.DrawLineXY(int(self.centerX + self.shadowDistance),
|
||||
int(self.centerY + self.shadowDistance),
|
||||
int(x + self.shadowDistance),
|
||||
int(y + self.shadowDistance))
|
||||
drawDC.DrawLine(self.centerX + self.shadowDistance,
|
||||
self.centerY + self.shadowDistance,
|
||||
x + self.shadowDistance,
|
||||
y + self.shadowDistance)
|
||||
|
||||
# Draw minutes hand shadow
|
||||
angle = minutes * 6
|
||||
@@ -253,10 +264,10 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetPen(wx.Pen(self.shadowPenColour,
|
||||
int(self.handMinutesThickness * self.scale),
|
||||
wx.SOLID))
|
||||
drawDC.DrawLineXY(int(self.centerX + self.shadowDistance),
|
||||
int(self.centerY + self.shadowDistance),
|
||||
int(x + self.shadowDistance),
|
||||
int(y + self.shadowDistance))
|
||||
drawDC.DrawLine(self.centerX + self.shadowDistance,
|
||||
self.centerY + self.shadowDistance,
|
||||
x + self.shadowDistance,
|
||||
y + self.shadowDistance)
|
||||
|
||||
# Draw seconds hand shadow if required
|
||||
if seconds >= 0:
|
||||
@@ -267,10 +278,10 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetPen(wx.Pen(self.shadowPenColour,
|
||||
int(self.handSecondsThickness * self.scale),
|
||||
wx.SOLID))
|
||||
drawDC.DrawLineXY(int(self.centerX + self.shadowDistance),
|
||||
int(self.centerY + self.shadowDistance),
|
||||
int(x + self.shadowDistance),
|
||||
int(y + self.shadowDistance))
|
||||
drawDC.DrawLine(self.centerX + self.shadowDistance,
|
||||
self.centerY + self.shadowDistance,
|
||||
x + self.shadowDistance,
|
||||
y + self.shadowDistance)
|
||||
|
||||
|
||||
# Draw hours hand
|
||||
@@ -285,7 +296,7 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetPen(wx.Pen(self.handHoursColour,
|
||||
int(self.handHoursThickness * self.scale),
|
||||
wx.SOLID))
|
||||
drawDC.DrawLineXY(int(self.centerX), int(self.centerY), int(x), int(y))
|
||||
drawDC.DrawLine(self.centerX, self.centerY, x, y)
|
||||
|
||||
# Draw minutes hand
|
||||
angle = minutes * 6
|
||||
@@ -295,7 +306,7 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetPen(wx.Pen(self.handMinutesColour,
|
||||
int(self.handMinutesThickness * self.scale),
|
||||
wx.SOLID))
|
||||
drawDC.DrawLineXY(int(self.centerX), int(self.centerY), int(x), int(y))
|
||||
drawDC.DrawLine(self.centerX, self.centerY, x, y)
|
||||
|
||||
# Draw seconds hand if required
|
||||
if seconds >= 0:
|
||||
@@ -305,7 +316,7 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetPen(wx.Pen(self.handSecondsColour,
|
||||
int(self.handSecondsThickness * self.scale),
|
||||
wx.SOLID))
|
||||
drawDC.DrawLineXY(int(self.centerX), int(self.centerY), int(x), int(y))
|
||||
drawDC.DrawLine(self.centerX, self.centerY, x, y)
|
||||
|
||||
|
||||
|
||||
@@ -371,11 +382,11 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
|
||||
if style & TICKS_CIRCLE:
|
||||
x, y = self._center2corner(x, y, tipo)
|
||||
drawDC.DrawEllipse((x, y), (int(size), int(size)))
|
||||
drawDC.DrawEllipse(x, y, size, size)
|
||||
|
||||
elif style & TICKS_SQUARE:
|
||||
x, y = self._center2corner(x, y, tipo)
|
||||
drawDC.DrawRectangle((x, y), (int(size), int(size)))
|
||||
drawDC.DrawRectangle(x, y, size, size)
|
||||
|
||||
elif (style & TICKS_DECIMAL) or (style & TICKS_ROMAN):
|
||||
self._draw_rotate_text(drawDC, x, y, tipo, angle)
|
||||
@@ -398,12 +409,12 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
y = int(y -
|
||||
((math.cos((angle) * radiansPerDegree)*lY) -
|
||||
(math.sin((angle) * radiansPerDegree)*lX)))
|
||||
drawDC.DrawRotatedText(text, (x,y), angle)
|
||||
drawDC.DrawRotatedText(text, x,y, angle)
|
||||
|
||||
else:
|
||||
x = x - lX
|
||||
y = y - lY
|
||||
drawDC.DrawText(text, (x, y))
|
||||
drawDC.DrawText(text, x, y)
|
||||
|
||||
|
||||
def _draw_rotate_polygon(self, drawDC, x, y, tipo, angle):
|
||||
@@ -527,7 +538,7 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
drawDC.SetBrush(self.watchBrush)
|
||||
else:
|
||||
drawDC.SetBrush(wx.Brush(self.GetBackgroundColour(), wx.SOLID))
|
||||
drawDC.DrawCircle((self.centerX, self.centerY), self.radius_watch)
|
||||
drawDC.DrawCircle(self.centerX, self.centerY, self.radius_watch)
|
||||
|
||||
|
||||
def _calcSteps(self):
|
||||
@@ -574,7 +585,7 @@ class AnalogClockWindow(wx.PyWindow):
|
||||
f=False
|
||||
coords["ticks_minutes"][3][i][2]=f
|
||||
|
||||
self.coords=coords
|
||||
self.coords = coords
|
||||
|
||||
|
||||
def _getCoords(self, tipo, angle):
|
||||
|
Reference in New Issue
Block a user