From: Alex T. <ale...@us...> - 2005-08-24 13:57:41
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5046 Modified Files: multiresourceEditor.py Log Message: Convert from CtlKey to CmdKey (== ctl on Win, == meta on Mac). Better handling of marquee selection when cursor leaves window : should always delete marquee rectangle if mouse is released while outside the window, acts like a mouse-release (but not until mouse re-enters window). Index: multiresourceEditor.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/resourceEditor/multiresourceEditor.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** multiresourceEditor.py 16 Aug 2005 10:17:07 -0000 1.4 --- multiresourceEditor.py 24 Aug 2005 13:57:27 -0000 1.5 *************** *** 14,17 **** --- 14,19 ---- import wx + import time + from PythonCard import about, clipboard, configuration, dialog, graphic, log from PythonCard import menu, model, registry, resource, util *************** *** 168,171 **** --- 170,175 ---- wx.EVT_LEFT_UP(self.panel, self.on_mouseUp) wx.EVT_MOTION(self.panel, self.on_mouseDrag) + wx.EVT_LEAVE_WINDOW(self.panel, self.on_mouseLeaveWindow) + wx.EVT_ENTER_WINDOW(self.panel, self.on_mouseEnterWindow) wx.EVT_CHAR(self.panel, self.on_keyPress) *************** *** 577,581 **** globalPosition = wx.GetMousePosition() ! ctlKey = event.ControlDown() control = event.GetEventObject() --- 581,585 ---- globalPosition = wx.GetMousePosition() ! cmdKey = event.CmdDown() control = event.GetEventObject() *************** *** 604,608 **** return else: ! #print control.name, ctlKey clientPosition = self.panel.ScreenToClient(wx.GetMousePosition()) # AGT 04-2005 --- 608,612 ---- return else: ! #print control.name, cmdKey clientPosition = self.panel.ScreenToClient(wx.GetMousePosition()) # AGT 04-2005 *************** *** 636,640 **** # so we must have selected one of the user's components ! if ctlKey: if self.startName == target.name: return #print "ctl-select", target.name, self.multipleComponents --- 640,644 ---- # so we must have selected one of the user's components ! if cmdKey: if self.startName == target.name: return #print "ctl-select", target.name, self.multipleComponents *************** *** 724,730 **** self.drawTheRect() self.movingComponent = True ! def on_mouseDrag(self, event): - ##print "on_mouseDrag", event.Dragging() # protect against double-clicks in the open file dialog # when switching rsrc.py files --- 728,744 ---- self.drawTheRect() self.movingComponent = True ! ! def on_mouseLeaveWindow(self, event): ! #print "leave" ! pass ! ! def on_mouseEnterWindow(self, event): ! if not self.marquee: return ! #rint "enter window", event.LeftIsDown() ! if not event.LeftIsDown(): ! # mouse has been released ! self.terminate_marquee(event.CmdDown(), event.m_shiftDown) ! def on_mouseDrag(self, event): # protect against double-clicks in the open file dialog # when switching rsrc.py files *************** *** 842,846 **** def on_keyPress(self, event): keyCode = event.GetKeyCode() ! ctlKey = event.ControlDown() shiftKey = event.ShiftDown() keyDeltas = {wx.WXK_LEFT: (-1,0), wx.WXK_UP: (0,-1), --- 856,860 ---- def on_keyPress(self, event): keyCode = event.GetKeyCode() ! cmdKey = event.CmdDown() shiftKey = event.ShiftDown() keyDeltas = {wx.WXK_LEFT: (-1,0), wx.WXK_UP: (0,-1), *************** *** 852,856 **** grid = False step = 1 ! if ctlKey or self.alignToGrid: step = 2 grid = True --- 866,870 ---- grid = False step = 1 ! if cmdKey or self.alignToGrid: step = 2 grid = True *************** *** 861,929 **** ! def on_mouseUp(self, event): ! # protect against double-clicks in the open file dialog ! # when switching rsrc.py files ! ####print "on_mouseUp BEFORE", self.rect ! ctlKey = event.ControlDown() ! shiftKey = event.ShiftDown() ! if self.marquee: ! # erase the last rect ## print self.marqueeSize ! self.dc.DrawRectanglePointSize((self.marqueeBase[0], self.marqueeBase[1]), ! (self.marqueeSize[0], self.marqueeSize[1])) ! if self.marqueeSize == (0,0) and not shiftKey and not ctlKey: ! # just a click - deselect anything ! if self.multipleSelected: ! self.clearMultipleComponentSelection() ! # but remain in multi mode ! # self.multipleSelected = False ! ## and switch back to single-mode, with the last select comp if known. ! self.multipleSelected = False ! self.propertyEditorWindow.clearComponentList() ! self.propertyEditorWindow.displayComponents(self.components) ! if self.startName: ! name = self.startName else: ! s = self.lastSelection ! if s: ! name, klass = s.split(" : ") ! else: ! name = None ! if self.startName <> name: ! self.startName = name ! if self.application.pw is not None and name: ! self.application.pw.selectComponentsList(name, klass) ! # KEA 2002-02-23 ! if name: self.propertyEditorWindow.selectComponentList(name, klass) - elif self.startName: - self.hideSizingHandles() - self.startName = None - return - #print "selct anything within", self.startGlobalPosition, self.marqueeSize - res = self.controlInRect(self.startGlobalPosition, self.marqueeSize) - self.marquee = False - #print "we found", res - if res == []: return - self.switchToMultipleMode() ! # new selection - delete any existing selections ! if not shiftKey and not ctlKey: ! self.clearMultipleComponentSelection() ! ! for name in res: ! index = self.prefixIndexForComp(name) ! if index == -1: # not already there - add unless "remove only" ! if not (ctlKey and shiftKey): self.multipleComponents.append( (name, self.makeNewHandles(name))) ! else: # already there - remove if toggle or remove ! if ctlKey: ! prefix = self.multipleComponents[index][1] ! for sizingHandle in self.sizingHandleNames: ! del self.components[prefix+sizingHandle] ! del self.multipleComponents[index] ! ! self.propertyEditorWindow.updateComponentList() return --- 875,949 ---- ! def terminate_marquee(self, cmdKey, shiftKey): ! # erase the last rect ## print self.marqueeSize ! self.dc.DrawRectanglePointSize((self.marqueeBase[0], self.marqueeBase[1]), ! (self.marqueeSize[0], self.marqueeSize[1])) ! if self.marqueeSize == (0,0) and not shiftKey and not cmdKey: ! # just a click - deselect anything ! if self.multipleSelected: ! self.clearMultipleComponentSelection() ! # but remain in multi mode ! # self.multipleSelected = False ! ## and switch back to single-mode, with the last select comp if known. ! self.multipleSelected = False ! self.propertyEditorWindow.clearComponentList() ! self.propertyEditorWindow.displayComponents(self.components) ! if self.startName: ! name = self.startName ! else: ! s = self.lastSelection ! if s: ! name, klass = s.split(" : ") else: ! name = None ! if self.startName <> name: ! self.startName = name ! if self.application.pw is not None and name: ! self.application.pw.selectComponentsList(name, klass) ! # KEA 2002-02-23 ! if name: self.propertyEditorWindow.selectComponentList(name, klass) ! ! ! elif self.startName: ! self.hideSizingHandles() ! self.startName = None ! return ! #print "selct anything within", self.startGlobalPosition, self.marqueeSize ! res = self.controlInRect(self.startGlobalPosition, self.marqueeSize) ! self.marquee = False ! #print "we found", res ! if res == []: return ! ! self.switchToMultipleMode() ! ! # new selection - delete any existing selections ! if not shiftKey and not cmdKey: ! self.clearMultipleComponentSelection() ! ! for name in res: ! index = self.prefixIndexForComp(name) ! if index == -1: # not already there - add unless "remove only" ! if not (cmdKey and shiftKey): self.multipleComponents.append( (name, self.makeNewHandles(name))) ! else: # already there - remove if toggle or remove ! if cmdKey: ! prefix = self.multipleComponents[index][1] ! for sizingHandle in self.sizingHandleNames: ! del self.components[prefix+sizingHandle] ! del self.multipleComponents[index] + self.propertyEditorWindow.updateComponentList() + return ! def on_mouseUp(self, event): ! # protect against double-clicks in the open file dialog ! # when switching rsrc.py files ! ####print "on_mouseUp BEFORE", self.rect ! cmdKey = event.CmdDown() ! shiftKey = event.ShiftDown() ! if self.marquee: ! self.terminate_marquee(cmdKey, shiftKey) return |