def onMouseDown(self, sender, x, y): """ catch a mouse down for parent """ ev = DOM.eventGetCurrentEvent() # ignore right-button downs if DOM.eventGetButton(ev) != Event.BUTTON_LEFT: return DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) # parent will capture the mouse and handle the dragging from here self._splitpanel.startSplitterDrag(x, y)
def onKeyDown(self, sender, keycode, modifiers): if keycode == KeyboardListener.KEY_UP: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()); new_value = self.processValue(self.value + self.step) self.setControlPos(new_value) self.setValue(new_value) elif keycode == KeyboardListener.KEY_DOWN: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()); new_value = self.processValue(self.value - self.step) self.setControlPos(new_value) self.setValue(new_value)
def onKeyDown(self, sender, keycode, modifiers): if keycode == KeyboardListener.KEY_UP: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) new_value = self.processValue(self.value + self.step) self.setControlPos(new_value) self.setValue(new_value) elif keycode == KeyboardListener.KEY_DOWN: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) new_value = self.processValue(self.value - self.step) self.setControlPos(new_value) self.setValue(new_value)
def onKeyDown(self, sender, keycode, modifiers): if keycode == KeyboardListener.KEY_UP: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) new_value_x, new_value_y = \ self.processValue((self.value_x + self.step_x, self.value_y + self.step_y)) self.setControlPos((new_value_x,new_value_y)) self.setValue((new_value_x, new_value_y)) elif keycode == KeyboardListener.KEY_DOWN: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) new_value_x, new_value_y = \ self.processValue((self.value_x - self.step_x, self.value_y-self.step_y)) self.setControlPos((new_value_x, new_value_y)) self.setValue((new_value_x, new_value_y))
def onKeyDown(self, sender, keycode, modifiers): evt = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(evt) if self.word_selected_pos is None: return val = chr(keycode) done = False if keycode == KeyboardListener.KEY_DELETE: self.shift_letters_back() done = True elif keycode == KeyboardListener.KEY_BACKSPACE: if not self.nasty_hack(): if self.moveCursor(-1): self.shift_letters_back() done = True elif keycode == KeyboardListener.KEY_LEFT: self.moveCursor(-1) done = True elif keycode == KeyboardListener.KEY_RIGHT: self.moveCursor(1) done = True print "onKeyDown", keycode, val, self.rexp.match(val) if not done: if self.rexp.match(val): self.press_letter(val) for listener in self._keypressListeners: listener.onKeyPressed(sender, keycode, modifiers)
def onMouseMove(self, sender, x, y): event = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(event) # mousing auto re-enables mouse-over hover feedback if not self.theChild.getHoverTouchingEnabled(): self.theChild.setHoverTouchingEnabled(True) self.theChild.update()
def _stopDragging(self): if self._drag_start is not None: # we are no longer dragging self._drag_start = None # deactivate the transparent overlay GlassWidget.hide() # don't let a mouse-up become a click event DOM.eventCancelBubble(DOM.eventGetCurrentEvent(), True)
def onMouseDown(self, sender, x, y): event = DOM.eventGetCurrentEvent() event_button = DOM.eventGetButton(event) if event_button == Event.BUTTON_RIGHT: from edu.uca.renderable.block.MainBlock import MainBlock if not self.original and not isinstance(self, MainBlock): self.buttonRightDown = self DOM.eventStopPropagation(event)
def onMouseUp(self, sender, x, y): event = DOM.eventGetCurrentEvent() eventButton = DOM.eventGetButton(event) if eventButton == Event.BUTTON_LEFT: remote = server.TickeryService() id = remote.login(LoginRedirector(self)) if id < 0: self.setWidget(0, 1, Label('oops: LoginPanel'))
def onClick(self, sender=None): self.setFocus(True) # work out the relative position of cursor event = DOM.eventGetCurrentEvent() mouse_x = DOM.eventGetClientX(event) + Window.getScrollLeft() mouse_y = DOM.eventGetClientY(event) + Window.getScrollTop() self.moveControl(mouse_x - self.getAbsoluteLeft(), mouse_y - self.getAbsoluteTop(), True)
def onClick(self, sender=None): self.setFocus(True); # work out the relative position of cursor event = DOM.eventGetCurrentEvent() mouse_x = DOM.eventGetClientX(event) + Window.getScrollLeft() mouse_y = DOM.eventGetClientY(event) + Window.getScrollTop() self.moveControl(mouse_x - self.getAbsoluteLeft(), mouse_y - self.getAbsoluteTop())
def onMouseDown(self, sender, x, y): # regardless of drag_enabled, onMouseDown must prevent # default, in order to avoid losing focus. DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) if not self.drag_enabled: return self.dragging = True DOM.setCapture(self.getElement()) self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop())
def onMouseUp(self, sender, x, y): event = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(event) if self.selecting or self.moving: self.p2.x = self.getXAxis().getMouseCoordinate() self.p2.y = self.getYAxis().getMouseCoordinate() self.updateCursor() self.selecting = False self.moving = False
def onMouseWheel(self, sender, x, y): event = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(event) if self.getCurve(self.SELECTION_CURVE).isVisible(): if event.isNorth(): self.zoomIn() elif event.isSouth(): self.zoomOut()
def onMouseDown(self, sender, x, y): # regardless of drag_enabled, onMouseDown must prevent # default, in order to avoid losing focus. DOM.eventPreventDefault(DOM.eventGetCurrentEvent()); if not self.drag_enabled: return self.dragging = True DOM.setCapture(self.getElement()) self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop())
def event_preventDefault(): """ Prevents the current event's default behavior. """ event = DOM.eventGetCurrentEvent() if event.preventDefault: event.preventDefault() else: event.returnValue = False
def onKeyPress(self, sender, keycode, modifiers): DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) #not needed if keycode == KeyboardListener.KEY_UP: self.nextContest() if keycode == KeyboardListener.KEY_DOWN: self.nextContest() if keycode == KeyboardListener.KEY_LEFT: self.nextSelection() if keycode == KeyboardListener.KEY_RIGHT: self.nextSelection()
def onMouseUp(self, sender, x, y): ev = DOM.eventGetCurrentEvent() # ignore right-button ups if DOM.eventGetButton(ev) != Event.BUTTON_LEFT: return DOM.eventPreventDefault(ev) # if we are dragging if self._isDragging(): # stop dragging on mouse up self._stopDragging()
def onKeyPress(self, sender, keycode, modifiers): enter = keycode == KeyboardListener.KEY_ENTER enterOrTab = enter or keycode == KeyboardListener.KEY_TAB if sender == self.name1: if enterOrTab: # Move to name2 & highlight. DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) self.name2.setFocus(True) self.name2.highlight() elif sender == self.name2: if enter: if modifiers & KeyboardListener.MODIFIER_SHIFT: # Move back to name1 & highlight. self.name1.setFocus(True) self.name1.highlight() else: # Send query. DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) self.process()
def onMouseUp(self, sender, x, y): event = DOM.eventGetCurrentEvent() eventButton = DOM.eventGetButton(event) if eventButton == Event.BUTTON_LEFT: _deleteCookie() remote = server.TickeryService() id = remote.logout(self.sender.oauthCookie, LogoutRedirector(self.sender)) if id < 0: self.sender.setWidget( 0, 1, Label("Oops: Couldn't call log out!"))
def onMouseDown(self, sender, x, y): # regardless of drag_enabled, onMouseDown must prevent # default, in order to avoid losing focus. self.setFocus(True) DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) if not self.drag_enabled: return self.dragging = True GlassWidget.show(self) self.moveControl(x + Window.getScrollLeft(), y + Window.getScrollTop(), True)
def onKeyPress(self, sender, keycode, modifiers): if keycode == KeyboardListener.KEY_ENTER: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()); txt = self.input.getText() if not txt: return new_value = float(txt) new_value = self.processValue(new_value) self.setControlPos(new_value) self.setValue(new_value) else: Control.onKeyPress(self, sender, keycode, modifiers)
def setKey(self, k, set): DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) if k == KeyboardListener.KEY_UP: self.key_up = set elif k == KeyboardListener.KEY_DOWN: self.key_down = set elif k == KeyboardListener.KEY_LEFT: self.key_left = set elif k == KeyboardListener.KEY_RIGHT: self.key_right = set elif k == 32: self.key_fire = set
def onKeyPress(self, sender, keycode, modifiers): if keycode == KeyboardListener.KEY_ENTER: DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) txt = self.input.getText() if not txt: return new_value = float(txt) new_value = self.processValue(new_value) self.setControlPos(new_value) self.setValue(new_value) else: Control.onKeyPress(self, sender, keycode, modifiers)
def setKey(self, k, set): DOM.eventPreventDefault(DOM.eventGetCurrentEvent()) if k == 38: self.controller.key_up = set elif k == 40: self.controller.key_down = set elif k == 37: self.controller.key_left = set elif k == 39: self.controller.key_right = set elif k == 32: self.controller.key_fire = set
def onContextMenu(self, sender): event = DOM.eventGetCurrentEvent() subMenu = MenuBar(True) subMenu.addItem("<code>Code</code>", True, self) subMenu.addItem("<strike>Strikethrough</strike>", True, self) subMenu.addItem("<u>Underlined</u>", True, self) x = DOM.eventGetClientX(event) + 2 y = DOM.eventGetClientY(event) + 2 popup = ContextMenuPopupPanel(subMenu) popup.showAt(x, y)
def onMouseDown(self, sender, x, y): self.dragWidget = sender event = DOM.eventGetCurrentEvent() self.mouseEvent = event button = DOM.eventGetButton(event) if button != Event.BUTTON_LEFT: return # x, y = eventCoordinates(event) # self.origMouseX = x # self.origMouseY = y self.dragging = DRAGGING_NO_MOVEMENT_YET self.drag_time = time.time() self.dragDataStore = DragDataStore()
def onMouseUp(self, sender, x, y): event = DOM.eventGetCurrentEvent() event_button = DOM.eventGetButton(event) if event_button == Event.BUTTON_RIGHT: from edu.uca.renderable.block.MainBlock import MainBlock if self.buttonRightDown == self and not self.original and not isinstance( self, MainBlock): print "click Right Button " + self.name self.buttonRightDown = None from edu.uca.util.Serializable import saveStackBlock, loadStackBlock cloneStack = loadStackBlock(saveStackBlock(self)) cloneStack.changeTexts() self.blockPad.addBlock(cloneStack, self.getAbsoluteLeft() + 10, self.getAbsoluteTop() + 10, False) DOM.eventStopPropagation(event)
def onKeyDown(self, sender, keycode, modifiers): event = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(event) # ignore mouse position when arrow-key pressing if self.theChild.getHoverTouchingEnabled(): self.theChild.setHoverTouchingEnabled(False) p = self.theChild.getTouchedPoint() c = self.theChild.getCurve(); # only one curve on chart iPoint = 0 if p is not None: iPoint = c.getPointIndex(p) if keycode == KeyboardListener.KEY_LEFT: iPoint = (iPoint + N_POINTS) % (N_POINTS+1) elif keycode == KeyboardListener.KEY_RIGHT: iPoint = (iPoint + 1) % (N_POINTS+1) self.theChild.touch(c.getPoint(iPoint)) self.theChild.update()
def onClickDefault(self, sender): # don't shown property editor if they clicked on nothing if None == self.chart.getTouchedPoint(): return event = DOM.eventGetCurrentEvent() # load properties of clicked-on slice into form self.copyChartPropertiesIntoForm(self.chart.getTouchedPoint()) if self.isFirstTime: # initially put upper left corner wherever they clicked... self.setPopupPosition( Window.getScrollLeft()+ DOM.eventGetClientX(event), Window.getScrollTop() + DOM.eventGetClientX(event)) self.show() self.isFirstTime = False else: # ...thereafter, just stay whereever they dragged it to self.show()
def onClickDefault(self, sender): # don't shown property editor if they clicked on nothing if None == self.chart.getTouchedPoint(): return event = DOM.eventGetCurrentEvent() # load properties of clicked-on slice into form self.copyChartPropertiesIntoForm(self.chart.getTouchedPoint()) if self.isFirstTime: # initially put upper left corner wherever they clicked... self.setPopupPosition( Window.getScrollLeft() + DOM.eventGetClientX(event), Window.getScrollTop() + DOM.eventGetClientX(event)) self.show() self.isFirstTime = False else: # ...thereafter, just stay whereever they dragged it to self.show()
def onMouseDown(self, sender, x, y): """ * Most browsers, by default, support the ability to * to "drag-copy" any web page image to the desktop. * But GChart's rendering makes extensive use of * images, so we need to override this default. * """ event = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(event) self.ctrlPressed = DOM.eventGetCtrlKey(event) self.altPressed = DOM.eventGetAltKey(event) x = self.getXAxis().getMouseCoordinate() y = self.getYAxis().getMouseCoordinate() if (min(self.p1.x, self.p2.x) <= x and x <= max(self.p1.x, self.p2.x) and min(self.p1.y, self.p2.y) <= y and y <= max(self.p1.y, self.p2.y)): return; # ignore mouse down inside selection rectangle self.p1.x = self.p2.x = x self.p1.y = self.p2.y = y xMin = self.getXAxis().getAxisMin() xMax = self.getXAxis().getAxisMax() yMin = self.getYAxis().getAxisMin() yMax = self.getYAxis().getAxisMax() self.initialPlotRegion.xMin = xMin self.initialPlotRegion.xMax = xMax self.initialPlotRegion.yMin = yMin self.initialPlotRegion.yMax = yMax if self.ctrlPressed: self.selecting = True self.moving = False else: self.selecting = False self.moving = True self.updateCursor()
def onMouseMove(self, sender, x, y): event = DOM.eventGetCurrentEvent() self.mouseEvent = event button = DOM.eventGetButton(event) if not button == Event.BUTTON_LEFT: return ## The following commented code lets the native dnd happen in IE. sucks. ## But it may enable dragging our widgets out of IE into other apps. # else: # try: # self.dragWidget.getElement().dragDrop() # return # except: # pass # Adjust x and y to absolute coordinates. x, y = eventCoordinates(event) if self.dragging == DRAGGING_NO_MOVEMENT_YET: self.origMouseX = x self.origMouseY = y self.currentDragOperation = 'none' fromElement = self.dragWidget.getElement() # Is the widget itself draggable? try: draggable = fromElement.draggable except: draggable = False # if not, find the draggable element at (x, y) in the widget if not draggable: fromElement = findDraggable(sender.getElement(), self.origMouseX, self.origMouseY) # Nothing draggable found. return. if fromElement is None: self.dragging = NOT_DRAGGING return # Get the location for the dragging widget #self.absParent = None #self.absParent = self.dragWidget.getParent() #self.absLeft = DOM.getStyleAttribute(fromElement, 'left') #print self.absLeft #self.absTop = DOM.getStyleAttribute(fromElement, 'top') #print self.absTop #self.origTop = DOM.getAbsoluteTop(fromElement) + parent.getAbsoluteTop() #self.origLeft = DOM.getAbsoluteLeft(fromElement) + parent.getAbsoluteLeft() self.origTop = DOM.getAbsoluteTop(fromElement) self.origLeft = DOM.getAbsoluteLeft(fromElement) #self.glassTop = DOM.getAbsoluteTop(fromElement.offsetParent) #self.glassLeft = DOM.getAbsoluteTop(fromElement.offsetParent) position_absolute = DOM.getStyleAttribute(fromElement, 'position') == 'absolute' if position_absolute: self.dragLeftOffset = (self.origMouseX - DOM.getAbsoluteLeft(fromElement.offsetParent)) self.dragTopOffset = (self.origMouseY - DOM.getAbsoluteTop(fromElement.offsetParent)) else: self.dragLeftOffset = self.origMouseX - self.origLeft self.dragTopOffset = self.origMouseY - self.origTop # self.setDragImage(fromElement, # self.origMouseX - self.origLeft, # self.origMouseY - self.origTop) self.dragDataStore.elements = [fromElement] dragStartEvent = self.fireDNDEvent('dragstart', None, self.dragWidget) if not isCanceled(dragStartEvent): self.initFeedbackImage() RootPanel().add(self.draggingImage) self.setDragImageLocation(x, y) self.dragging = ACTIVELY_DRAGGING GlassWidget.show(self) elif self.dragging == ACTIVELY_DRAGGING: try: doc().selection.empty() except: wnd().getSelection().removeAllRanges() self.setDragImageLocation(x, y) # If we are still working on the previous iteration, or if we have # done this recently, we'll wait for the next event. if self.dragBusy or time.time() - self.drag_time < 0.25: return self.doDrag(event, x, y) self.drag_time = time.time()
def onDoubleClick(self, sender=None): print 'name: ' + str(self.name) event = DOM.eventGetCurrentEvent() DOM.eventStopPropagation(event)
def onKeyPress(self, sender, keycode, modifiers): evt = DOM.eventGetCurrentEvent() DOM.eventPreventDefault(evt)
def onKeyUp(self, sender, keycode, modifiers): evt = DOM.eventGetCurrentEvent() DOM.eventCancelBubble(evt, True) DOM.eventPreventDefault(evt)
def onMouseUp(self, sender, x, y): x, y = self.adjustMousePos(x, y) if self.mousehandler: self.mousetarget.onBrowserEvent(DOM.eventGetCurrentEvent()) else: self.mousetarget.onMouseUp(sender, x, y)
def onMouseMove(self, sender, x, y): event = DOM.eventGetCurrentEvent() self.mouseEvent = event button = DOM.eventGetButton(event) if not button == Event.BUTTON_LEFT: return ## The following commented code lets the native dnd happen in IE. sucks. ## But it may enable dragging our widgets out of IE into other apps. # else: # try: # self.dragWidget.getElement().dragDrop() # return # except: # pass # Adjust x and y to absolute coordinates. x, y = eventCoordinates(event) if self.dragging == DRAGGING_NO_MOVEMENT_YET: self.origMouseX = x self.origMouseY = y self.currentDragOperation = 'none' fromElement = self.dragWidget.getElement() # Is the widget itself draggable? try: draggable = fromElement.draggable except: draggable = False # if not, find the draggable element at (x, y) in the widget if not draggable: fromElement = findDraggable(sender.getElement(), self.origMouseX, self.origMouseY) # Nothing draggable found. return. if fromElement is None: self.dragging = NOT_DRAGGING return # Get the location for the dragging widget #self.absParent = None #self.absParent = self.dragWidget.getParent() #self.absLeft = DOM.getStyleAttribute(fromElement, 'left') #print self.absLeft #self.absTop = DOM.getStyleAttribute(fromElement, 'top') #print self.absTop #self.origTop = DOM.getAbsoluteTop(fromElement) + parent.getAbsoluteTop() #self.origLeft = DOM.getAbsoluteLeft(fromElement) + parent.getAbsoluteLeft() self.origTop = DOM.getAbsoluteTop(fromElement) self.origLeft = DOM.getAbsoluteLeft(fromElement) #self.glassTop = DOM.getAbsoluteTop(fromElement.offsetParent) #self.glassLeft = DOM.getAbsoluteTop(fromElement.offsetParent) position_absolute = DOM.getStyleAttribute(fromElement, 'position') == 'absolute' if position_absolute: self.dragLeftOffset = ( self.origMouseX - DOM.getAbsoluteLeft(fromElement.offsetParent)) self.dragTopOffset = ( self.origMouseY - DOM.getAbsoluteTop(fromElement.offsetParent)) else: self.dragLeftOffset = self.origMouseX - self.origLeft self.dragTopOffset = self.origMouseY - self.origTop # self.setDragImage(fromElement, # self.origMouseX - self.origLeft, # self.origMouseY - self.origTop) self.dragDataStore.elements = [fromElement] dragStartEvent = self.fireDNDEvent('dragstart', None, self.dragWidget) if not isCanceled(dragStartEvent): self.initFeedbackImage() RootPanel().add(self.draggingImage) self.setDragImageLocation(x, y) self.dragging = ACTIVELY_DRAGGING GlassWidget.show(self) elif self.dragging == ACTIVELY_DRAGGING: try: doc().selection.empty() except: wnd().getSelection().removeAllRanges() self.setDragImageLocation(x, y) # If we are still working on the previous iteration, or if we have # done this recently, we'll wait for the next event. if self.dragBusy or time.time() - self.drag_time < 0.25: return self.doDrag(event, x, y) self.drag_time = time.time()