Changeset 730
- Timestamp:
- 10/23/03 17:19:46 (5 years ago)
- Files:
-
- trunk/RBSkinning/RBSkinning/wxPythonSkin/bitmap.py (modified) (2 diffs)
- trunk/RBSkinning/RBSkinning/wxPythonSkin/bitmap_button.py (modified) (4 diffs)
- trunk/RBSkinning/RBSkinning/wxPythonSkin/rollover_bitmap.py (added)
- trunk/RBSkinning/RBSkinning/wxPythonSkin/toggle_bitmap_button.py (added)
- trunk/RBSkinning/RBSkinning/wxTools/wxFrameMover.py (modified) (2 diffs)
- trunk/RBSkinning/RBSkinning/wxTools/wxRolloverEvents.py (modified) (2 diffs)
- trunk/RBSkinning/demo/wxPythonSkin/widgets/widgets.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBSkinning/RBSkinning/wxPythonSkin/bitmap.py
r528 r730 30 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 31 32 class wxStaticBitmapWithRollover(wx.wxStaticBitmap):33 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~34 #~ Constants / Variables / Etc.35 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~36 37 _rollover_events = None38 _rollover_bitmap = None39 _nonrollover_bitmap = None40 41 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~42 #~ Public Methods43 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~44 45 def SetBitmapRollover(self, rollover):46 if not self._rollover_events:47 from RBFoundation.BindCallable import BindCallable48 from RBSkinning.wxTools.wxRolloverEvents import wxRolloverEvents49 self._rollover_events = wxRolloverEvents()50 self._rollover_events.OnMouseEnter = BindCallable(self._SetRolloverBitmap)51 self._rollover_events.OnMouseLeave = BindCallable(self._SetNonRolloverBitmap)52 self.PushEventHandler(self._rollover_events)53 self._rollover_bitmap = rollover54 55 def GetBitmapRollover(self):56 return self._rollover_bitmap57 58 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~59 #~ Protected Methods60 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~61 62 def _SetRolloverBitmap(self, evt):63 self._nonrollover_bitmap = self.GetBitmap()64 self.SetBitmap(self._rollover_bitmap)65 #self.Refresh()66 evt.Skip()67 68 def _SetNonRolloverBitmap(self, evt):69 if self._nonrollover_bitmap:70 self.SetBitmap(self._nonrollover_bitmap)71 self._nonrollover_bitmap = None72 #self.Refresh()73 evt.Skip()74 75 76 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~77 78 32 class bitmap(wxSkinLayoutObject, wxSkinObjectNoData): 79 33 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 95 49 kwSettings = self.wxSettingDict(['wxid', 'style', 'pos', 'size'], ['name']) 96 50 kwSettings['bitmap'] = wx.wxEmptyBitmap(*kwSettings['size']) 97 #self.object = wx.wxStaticBitmap(winParent, **kwSettings) 98 self.object = wxStaticBitmapWithRollover(winParent, **kwSettings) 51 self.object = wx.wxStaticBitmap(winParent, **kwSettings) 99 52 self.wxInitialStandardOptions() 100 53 trunk/RBSkinning/RBSkinning/wxPythonSkin/bitmap_button.py
r528 r730 25 25 26 26 from wxSkinLayoutObject import wx, wxSkinLayoutObject, wxSkinObjectNoData 27 from RBSkinning.wxTools.wxRolloverEvents import wxRolloverMixin 27 28 28 29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 30 31 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 32 32 class wxBitmapButtonWithRollover(wx.wxBitmapButton): 33 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 34 #~ Constants / Variables / Etc. 35 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 37 _rollover_events = None 38 _rollover_bitmap = None 39 _nonrollover_bitmap = None 40 41 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 #~ Public Methods 43 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 45 def SetBitmapRollover(self, rollover): 46 if not self._rollover_events: 47 from RBFoundation.BindCallable import BindCallable 48 from RBSkinning.wxTools.wxRolloverEvents import wxRolloverEvents 49 self._rollover_events = wxRolloverEvents() 50 self._rollover_events.OnMouseEnter = BindCallable(self._SetRolloverBitmap) 51 self._rollover_events.OnMouseLeave = BindCallable(self._SetNonRolloverBitmap) 52 self.PushEventHandler(self._rollover_events) 53 self._rollover_bitmap = rollover 54 55 def GetBitmapRollover(self): 56 return self._rollover_bitmap 57 58 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59 #~ Protected Methods 60 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 class wxBitmapButtonWithRollover(wxRolloverMixin, wx.wxBitmapButton): 34 def _SetupDefaultRollovers(self): 35 if self.GetBitmapRollover() is None: 36 self.SetBitmapRollover(self.GetBitmapSelected()) 37 if self.GetBitmapNonRollover() is None: 38 self.SetBitmapNonRollover(self.GetBitmapLabel()) 61 39 62 40 def _SetRolloverBitmap(self, evt): 63 self._nonrollover_bitmap = self.GetBitmapLabel() 64 self.SetBitmapLabel(self._rollover_bitmap) 41 self.SetBitmapLabel(self.GetBitmapRollover()) 65 42 self.Refresh() 66 43 evt.Skip() 67 44 68 45 def _SetNonRolloverBitmap(self, evt): 69 if self._nonrollover_bitmap: 70 self.SetBitmapLabel(self._nonrollover_bitmap) 71 self._nonrollover_bitmap = None 72 self.Refresh() 46 self.SetBitmapLabel(self.GetBitmapNonRollover()) 47 self.Refresh() 73 48 evt.Skip() 74 49 … … 86 61 'default': '0', 87 62 }) 63 BitmapButtonFactory = wxBitmapButtonWithRollover 88 64 89 65 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 95 71 kwSettings = self.wxSettingDict(['wxid', 'style', 'pos', 'size'], ['name']) 96 72 kwSettings['bitmap'] = wx.wxEmptyBitmap(*kwSettings['size']) 97 #self.object = wx.wxBitmapButton(winParent, **kwSettings) 98 self.object = wxBitmapButtonWithRollover(winParent, **kwSettings) 73 self.object = self.BitmapButtonFactory(winParent, **kwSettings) 99 74 if self.wxEval('default'): 100 75 self.object.SetDefault() 101 76 self.wxInitialStandardOptions() 77 self.object._SetupEvents() 102 78 103 79 def SkinFinalize(self): 104 80 self.wxFinalStandardOptions() 81 self.object._SetupDefaultRollovers() 105 82 trunk/RBSkinning/RBSkinning/wxTools/wxFrameMover.py
r676 r730 57 57 58 58 def OnMouseEvents(self, evt): 59 evt.Skip() 59 60 if evt.ButtonDown(self.MouseButtonId): 60 61 self.OnMouseDown(evt) … … 63 64 elif evt.Dragging(): 64 65 self.OnMouseMotion(evt) 65 evt.Skip()66 66 67 67 def OnMouseDown(self, evt): 68 evt.Skip()69 68 if not self.Captured: 70 69 self.Captured = True 71 70 EO = evt.GetEventObject() 72 EO.CaptureMouse()73 71 self.OffsetPos = EO.ClientToScreen(evt.GetPosition()) 74 72 self.strategy.OnMouseDown(evt) 73 EO.CaptureMouse() 75 74 76 75 def OnMouseUp(self, evt): 77 evt.Skip()78 76 if self.Captured: 79 77 self.Captured = False 80 evt.GetEventObject().ReleaseMouse() 78 81 79 del self.OffsetPos 82 80 self.strategy.OnMouseUp(evt) 83 81 82 evt.GetEventObject().ReleaseMouse() 83 84 84 def OnMouseMotion(self, evt): 85 evt.Skip()86 85 if self.Captured: 87 86 self.strategy.OnMouseMotion(evt) trunk/RBSkinning/RBSkinning/wxTools/wxRolloverEvents.py
r528 r730 35 35 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 36 37 class wxRollover Events(wx.wxEvtHandler):37 class wxRolloverMixin: 38 38 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 #~ Special39 #~ Constants / Variables / Etc. 40 40 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41 41 42 def __init__(self): 43 wx.wxEvtHandler.__init__(self) 44 self._CaptrueEvents() 45 46 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47 #~ Protected Methods 48 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49 50 def _CaptrueEvents(self): 51 wx.EVT_ENTER_WINDOW(self, BindCallable(self._OnMouseEnter)) 52 wx.EVT_LEAVE_WINDOW(self, BindCallable(self._OnMouseLeave)) 53 54 def _OnMouseEnter(self, evt): 55 evt.GetEventObject().CaptureMouse() 56 return self.OnMouseEnter(evt) 57 58 def _OnMouseLeave(self, evt): 59 evt.GetEventObject().ReleaseMouse() 60 return self.OnMouseLeave(evt) 42 _rollover_bitmap = None 43 _nonrollover_bitmap = None 61 44 62 45 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 64 47 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 65 48 66 def OnMouseLeave(self, evt): 67 evt.Skip() 49 def _SetupEvents(self): 50 self._eventhandler = wx.wxEvtHandler() 51 wx.EVT_ENTER_WINDOW(self._eventhandler, BindCallable(self._SetRolloverBitmap)) 52 wx.EVT_LEAVE_WINDOW(self._eventhandler, BindCallable(self._SetNonRolloverBitmap)) 53 self.PushEventHandler(self._eventhandler) 54 return self._eventhandler 68 55 69 def OnMouseEnter(self, evt): 70 evt.Skip() 56 def GetBitmapRollover(self): 57 return self._rollover_bitmap 58 def SetBitmapRollover(self, rollover): 59 self._rollover_bitmap = rollover 71 60 61 def GetBitmapNonRollover(self): 62 return self._nonrollover_bitmap 63 def SetBitmapNonRollover(self, nonrollover): 64 self._nonrollover_bitmap = nonrollover 65 66 def _SetRolloverBitmap(self, evt): 67 raise NotImplementedError 68 69 def _SetNonRolloverBitmap(self, evt): 70 raise NotImplementedError 71 trunk/RBSkinning/demo/wxPythonSkin/widgets/widgets.py
r718 r730 74 74 <text size='100,100' /> 75 75 <spacer size='10' /> 76 < bitmap>76 <rollover_bitmap> 77 77 <image name='test_image.jpg' /> 78 78 <image call='Rollover' name='test_image_dn.jpg' /> 79 </bitmap> 79 </rollover_bitmap> 80 <spacer size='10' /> 81 <bitmap_button> 82 <image name='test_image.jpg' /> 83 <image call='Selected' name='test_image_dn.jpg' /> 84 </bitmap_button> 85 <spacer size='10' /> 86 <toggle_bitmap_button> 87 <image call='Up' name='test_image.jpg' /> 88 <image call='Down' name='test_image_dn.jpg' /> 89 </toggle_bitmap_button> 80 90 </layout> 81 91 <spacer size='10' />
