]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/calendar.py
put wx in the shell's namespace too
[wxWidgets.git] / wxPython / wx / lib / calendar.py
index 38342c115f12fc59629c9524dfc62a6a972b380a..b5bcd353e7819c66cbddf7812f610f5e76ff4650 100644 (file)
 #
 # 12/10/2006 - Walter Barnes walter_barnes05@yahoo.com
 # o Fixed CalDraw to properly render months that start on a Sunday.
+#
+# 21/10/2006 - Walter Barnes walter_barnes05@yahoo.com
+# o Fixed a bug in Calendar: Shift and Control key status was only recorded for
+#   left-down events.
+# o Added handlers for wxEVT_MIDDLE_DOWN and wxEVT_MIDDLE_DCLICK to generate
+#   EVT_CALENDAR for these mouse events.
 
 
 import wx
@@ -707,6 +713,8 @@ class Calendar( wx.PyControl ):
         self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDEvent)
         self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightEvent)
         self.Bind(wx.EVT_RIGHT_DCLICK, self.OnRightDEvent)
+        self.Bind(wx.EVT_MIDDLE_DOWN, self.OnMiddleEvent)
+        self.Bind(wx.EVT_MIDDLE_DCLICK, self.OnMiddleDEvent)
         self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
         self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
         self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
@@ -743,7 +751,10 @@ class Calendar( wx.PyControl ):
     # determine the calendar rectangle click area and draw a selection
 
     def ProcessClick(self, event):
+        self.SetFocus()
         self.x, self.y = event.GetX(), event.GetY()
+        self.shiftkey = event.ShiftDown()
+        self.ctrlkey = event.ControlDown()
         key = self.GetDayHit(self.x, self.y)
         self.SelectDay(key)
 
@@ -751,8 +762,6 @@ class Calendar( wx.PyControl ):
 
     def OnLeftEvent(self, event):
         self.click = 'LEFT'
-        self.shiftkey = event.ShiftDown()
-        self.ctrlkey = event.ControlDown()
         self.ProcessClick(event)
 
     def OnLeftDEvent(self, event):
@@ -767,6 +776,14 @@ class Calendar( wx.PyControl ):
         self.click = 'DRIGHT'
         self.ProcessClick(event)
 
+    def OnMiddleEvent(self, event):
+        self.click = 'MIDDLE'
+        self.ProcessClick(event)
+
+    def OnMiddleDEvent(self, event):
+        self.click = 'DMIDDLE'
+        self.ProcessClick(event)
+
     def OnSetFocus(self, event):
         self.hasFocus = True
         self.DrawFocusIndicator(True)