コード例 #1
0
 def onBrowserEvent(self, event):
     if DOM.eventGetType(event) in DROP_EVENTS and not self.block.original:
         mb = getWorkspace().getMovingBlock()
         if not DOM.isOrHasChild(
                 mb.getElement(),
                 self.getElement()) and mb.blockType in self.accepts:
             DropHandler.onBrowserEvent(self, event)
     elif DOM.eventGetType(event) in KEYBOARD_EVENTS:
         KeyboardHandler.onBrowserEvent(self, event)
コード例 #2
0
ファイル: MouseListener.py プロジェクト: anandology/pyjamas
 def onBrowserEvent(self, event):
     etype = DOM.eventGetType(event)
     if etype in MOUSE_EVENTS:
         if self._mousePreventDefault:
             DOM.eventPreventDefault(event)
         return fireMouseEvent(self._mouseListeners, self, event)
     return False
コード例 #3
0
 def onBrowserEvent(self, event):
     etype = DOM.eventGetType(event)
     if etype in MOUSE_EVENTS:
         if self._mousePreventDefault:
             DOM.eventPreventDefault(event)
         return fireMouseEvent(self._mouseListeners, self, event)
     return False
コード例 #4
0
    def onBrowserEvent(self, event):

        # farm out the event to convenience handlers.
        # detect existence by checking for the listener lists of each
        # type of handler.  there's probably a better way to do this...
        if hasattr(self, "_clickListeners"):
            ClickHandler.onBrowserEvent(self, event)
        if hasattr(self, "_keyboardListeners"):
            KeyboardHandler.onBrowserEvent(self, event)
        if hasattr(self, "_mouseListeners"):
            MouseHandler.onBrowserEvent(self, event)
        if hasattr(self, "_mouseWheelListeners"):
            MouseWheelHandler.onBrowserEvent(self, event)
        if hasattr(self, "_focusListeners"):
            FocusHandler.onBrowserEvent(self, event)
        if hasattr(self, "_dragListeners"):
            DragHandler.onBrowserEvent(self, event)
        if hasattr(self, "_changeListeners"):
            ChangeHandler.onBrowserEvent(self, event)
        if hasattr(self, "_inputListeners"):
            InputHandler.onBrowserEvent(self, event)
        if hasattr(self, "_dropListeners"):
            DropHandler.onBrowserEvent(self, event)

        if self.contextMenu is None:
            return True

        type = DOM.eventGetType(event)
        if type == "contextmenu":
            DOM.eventCancelBubble(event, True)
            DOM.eventPreventDefault(event)
            self.contextMenu.onContextMenu(self)
            return False

        return True
コード例 #5
0
ファイル: MouseListener.py プロジェクト: anandology/pyjamas
def fireMouseEvent(listeners, sender, event):
    x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(sender.getElement())
    y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(sender.getElement())

    etype = DOM.eventGetType(event)
    if etype == "mousedown":
        for listener in listeners:
            listener.onMouseDown(sender, x, y)
        return True
    elif etype == "mouseup":
        for listener in listeners:
            listener.onMouseUp(sender, x, y)
        return True
    elif etype == "mousemove":
        for listener in listeners:
            listener.onMouseMove(sender, x, y)
        return True
    elif etype == "mouseover":
        from_element = DOM.eventGetFromElement(event)
        if not DOM.isOrHasChild(sender.getElement(), from_element):
            for listener in listeners:
                listener.onMouseEnter(sender)
        return True
    elif etype == "mouseout":
        to_element = DOM.eventGetToElement(event)
        if not DOM.isOrHasChild(sender.getElement(), to_element):
            for listener in listeners:
                listener.onMouseLeave(sender)
        return True
    return False
コード例 #6
0
 def onEventPreview(self, event):
     type = DOM.eventGetType(event)
     if type == "keydown":
         return (self.onKeyDownPreview(
             DOM.eventGetKeyCode(event),
             KeyboardListener.getKeyboardModifiers(event))
                 and (not self.modal or self._event_targets_popup(event)))
     elif type == "keyup":
         return (self.onKeyUpPreview(
             DOM.eventGetKeyCode(event),
             KeyboardListener.getKeyboardModifiers(event))
                 and (not self.modal or self._event_targets_popup(event)))
     elif type == "keypress":
         return (self.onKeyPressPreview(
             DOM.eventGetKeyCode(event),
             KeyboardListener.getKeyboardModifiers(event))
                 and (not self.modal or self._event_targets_popup(event)))
     elif (type == "mousedown" or type == "blur"):
         if DOM.getCaptureElement() is not None:
             return True
         if self.autoHide and not self._event_targets_popup(event):
             self.hide(True)
             return True
     elif (type == "mouseup" or type == "click" or type == "mousemove"
           or type == "dblclick"):
         if DOM.getCaptureElement() is not None:
             return True
     return not self.modal or self._event_targets_popup(event)
コード例 #7
0
 def onEventPreview(self, event):
     etype = DOM.eventGetType(event)
     print "control preview", etype, self._event_targets_control(event), \
                  DOM.getCaptureElement() is not None
     if etype == "keydown":
         return self._event_targets_control(event)
     elif etype == "keyup":
         return self._event_targets_control(event)
     elif etype == "keypress":
         return self._event_targets_control(event)
     elif (   etype == "mousedown"
           or etype == "blur"
          ):
         if DOM.getCaptureElement() is not None:
             return True
         if not self._event_targets_control(event):
             return True
     elif (   etype == "mouseup"
           or etype == "click"
           or etype == "mousemove"
           or etype == "dblclick"
          ):
         if DOM.getCaptureElement() is not None:
             return True
     elif etype == "mouseout":
         if DOM.getCaptureElement() is not None:
             return False
     return self._event_targets_control(event)
コード例 #8
0
def fireMouseEvent(listeners, sender, event):
    x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(sender.getElement())
    y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(sender.getElement())

    etype = DOM.eventGetType(event)
    if etype == "mousedown":
        for listener in listeners:
            listener.onMouseDown(sender, x, y)
        return True
    elif etype == "mouseup":
        for listener in listeners:
            listener.onMouseUp(sender, x, y)
        return True
    elif etype == "mousemove":
        for listener in listeners:
            listener.onMouseMove(sender, x, y)
        return True
    elif etype == "mouseover":
        from_element = DOM.eventGetFromElement(event)
        if not DOM.isOrHasChild(sender.getElement(), from_element):
            for listener in listeners:
                listener.onMouseEnter(sender)
        return True
    elif etype == "mouseout":
        to_element = DOM.eventGetToElement(event)
        if not DOM.isOrHasChild(sender.getElement(), to_element):
            for listener in listeners:
                listener.onMouseLeave(sender)
        return True
    return False
コード例 #9
0
 def onBrowserEvent(self, event):
     Widget.onBrowserEvent(self, event)
     event_type = DOM.eventGetType(event)
     if event_type == "click":
         DOM.eventPreventDefault(event)
         if self.targetHistoryToken is not None:
             History.newItem(self.targetHistoryToken)
コード例 #10
0
ファイル: Widget.py プロジェクト: anandology/pyjamas
    def onBrowserEvent(self, event):

        # farm out the event to convenience handlers.
        # detect existence by checking for the listener lists of each
        # type of handler.  there's probably a better way to do this...
        if hasattr(self, "_clickListeners"):
            ClickHandler.onBrowserEvent(self, event)
        if hasattr(self, "_keyboardListeners"):
            KeyboardHandler.onBrowserEvent(self, event)
        if hasattr(self, "_mouseListeners"):
            MouseHandler.onBrowserEvent(self, event)
        if hasattr(self, "_mouseWheelListeners"):
            MouseWheelHandler.onBrowserEvent(self, event)
        if hasattr(self, "_focusListeners"):
            FocusHandler.onBrowserEvent(self, event)
        if hasattr(self, "_dragListeners"):
            DragHandler.onBrowserEvent(self, event)
        if hasattr(self, "_dropListeners"):
            DropHandler.onBrowserEvent(self, event)

        if self.contextMenu is None:
            return True

        type = DOM.eventGetType(event)
        if type == "contextmenu":
            DOM.eventCancelBubble(event, True)
            DOM.eventPreventDefault(event)
            self.contextMenu.onContextMenu(self)
            return False

        return True
コード例 #11
0
ファイル: TextBoxBase.py プロジェクト: pombredanne/pyjamas
    def onBrowserEvent(self, event):
        FocusWidget.onBrowserEvent(self, event)

        type = DOM.eventGetType(event)
        if type == "change":
            for listener in self.changeListeners:
                if hasattr(listener, 'onChange'): listener.onChange(self)
                else: listener(self)
コード例 #12
0
ファイル: TextBoxBase.py プロジェクト: certik/pyjamas
    def onBrowserEvent(self, event):
        FocusWidget.onBrowserEvent(self, event)

        type = DOM.eventGetType(event)
        if type == "change":
            for listener in self.changeListeners:
                if hasattr(listener, 'onChange'): listener.onChange(self)
                else: listener(self)
 def onEventPreview(self, event):
     type = DOM.eventGetType(event)
     if type == "click":
         target = DOM.eventGetTarget(event)
         parentMenuElement = self.item.getParentMenu().getElement()
         if DOM.isOrHasChild(parentMenuElement, target):
             return False
     return PopupPanel.onEventPreview(self, event)
コード例 #14
0
 def onEventPreview(self, event):
     type = DOM.eventGetType(event)
     if type == "click":
         target = DOM.eventGetTarget(event)
         parentMenuElement = self.item.getParentMenu().getElement()
         if DOM.isOrHasChild(parentMenuElement, target):
             return False
     return PopupPanel.onEventPreview(self, event)
コード例 #15
0
def fireFocusEvent(listeners, sender, event):
    type = DOM.eventGetType(event)
    if type == "focus":
        for listener in listeners:
            listener.onFocus(sender)
    elif type == "blur":
        for listener in listeners:
            listener.onLostFocus(sender)
コード例 #16
0
 def onBrowserEvent(self, event):
     TextBox.onBrowserEvent(self, event)
     type = DOM.eventGetType(event)
     if type == "keyup":
         for _listener in self._blurListeners:
             if hasattr(_listener, 'onBlur'):
                 _listener.onBlur(self)
             else:
                 _listener(self)
コード例 #17
0
ファイル: ChangeListener.py プロジェクト: Afey/pyjs
def fireChangeEvent(listeners, sender, event):
    etype = DOM.eventGetType(event)
    if etype != "change":
        return
    for listener in listeners:
        if hasattr(listener, 'onChange'):
            listener.onChange(sender)
        else:
            listener(sender)
コード例 #18
0
 def onBrowserEvent(self, event):
     etype = DOM.eventGetType(event)
     if etype == "mousewheel":
         if self._mouseWheelPreventDefault:
             DOM.eventPreventDefault(event)
         velocity = DOM.eventGetMouseWheelVelocityY(event)
         for listener in self._mouseWheelListeners:
             listener.onMouseWheel(self, velocity)
         return True
コード例 #19
0
ファイル: MouseListener.py プロジェクト: anandology/pyjamas
 def onBrowserEvent(self, event):
     etype = DOM.eventGetType(event)
     if etype == "mousewheel":
         if self._mouseWheelPreventDefault:
             DOM.eventPreventDefault(event)
         velocity = DOM.eventGetMouseWheelVelocityY(event)
         for listener in self._mouseWheelListeners:
             listener.onMouseWheel(self, velocity)
         return True
コード例 #20
0
def fireInputEvent(listeners, sender, event):
    etype = DOM.eventGetType(event)
    if etype != "input":
        return
    for listener in listeners:
        if hasattr(listener, 'onInput'):
            listener.onInput(sender)
        else:
            listener(sender)
コード例 #21
0
ファイル: InputListener.py プロジェクト: Afey/pyjs
def fireInputEvent(listeners, sender, event):
    etype = DOM.eventGetType(event)
    if etype != "input":
        return
    for listener in listeners:
        if hasattr(listener, 'onInput'):
            listener.onInput(sender)
        else:
            listener(sender)
コード例 #22
0
ファイル: Image.py プロジェクト: lindh04/ultimateTicTacToe
 def onBrowserEvent(self, event):
     Widget.onBrowserEvent(self, event)
     type = DOM.eventGetType(event)
     if type == "load":
         for listener in self.loadListeners:
             listener.onImageLoad(self)
     elif type == "error":
         for listener in self.loadListeners:
             listener.onImageError(self)
コード例 #23
0
def fireChangeEvent(listeners, sender, event):
    etype = DOM.eventGetType(event)
    if etype != "change":
        return
    for listener in listeners:
        if hasattr(listener, 'onChange'):
            listener.onChange(sender)
        else:
            listener(sender)
コード例 #24
0
    def onBrowserEvent(self, event):
        type = DOM.eventGetType(event)
        if type == 'mousedown' or type == 'mouseup' or type == 'mousemove' or type == 'mouseover' or type == 'mouseout':
            MouseListener.fireMouseEvent(self.mouseListeners, self, event)
            # stop event falling through esp. for drag on image
            DOM.eventPreventDefault(event)

        else:
            Hyperlink.onBrowserEvent(self, event)
コード例 #25
0
ファイル: ClickDelegatePanel.py プロジェクト: Afey/pyjs
    def onBrowserEvent(self, event) :
        type = DOM.eventGetType(event)
        if type == "click":
            self.onClick(self)

        elif type == "keydown":
            modifiers = KeyboardListener.getKeyboardModifiers(event)
            if hasattr(self.keyDelegate, "onKeyDown"):
                self.keyDelegate.onKeyDown(self, DOM.eventGetKeyCode(event),
                                       modifiers)
コード例 #26
0
 def onEventPreview(self, event):
     etype = DOM.eventGetType(event)
     if etype == "mousedown" or etype == "blur":
         if DOM.getCaptureElement() is not None:
             return True
     elif etype == "mouseup" or etype == "click" or \
          etype == "mousemove" or etype == "dblclick":
         if DOM.getCaptureElement() is not None:
             return True
     return self._event_targets_popup(event)
コード例 #27
0
    def onBrowserEvent(self, event) :
        type = DOM.eventGetType(event)
        if type == "click":
            self.onClick(self)

        elif type == "keydown":
            modifiers = KeyboardListener.getKeyboardModifiers(event)
            if hasattr(self.keyDelegate, "onKeyDown"):
                self.keyDelegate.onKeyDown(self, DOM.eventGetKeyCode(event),
                                       modifiers)
コード例 #28
0
ファイル: ClickListener.py プロジェクト: andreyvit/pyjamas
 def onBrowserEvent(self, event):
     """Listen to events raised by the browser and call the appropriate 
     method of the listener (widget, ..) object. 
     """
     type = DOM.eventGetType(event)
     if type == "dblclick":
         for listener in self._doubleclickListeners:
             if hasattr(listener, "onDblClick"):
                 listener.onDblClick(self)
             else:
                 listener(self)
コード例 #29
0
ファイル: Popups.py プロジェクト: wkornewald/pyjs
 def onEventPreview(self, event):
     # preventDefault on mousedown events, outside of the
     # dialog, to stop text-selection on dragging
     type = DOM.eventGetType(event)
     if type == 'mousedown':
         target = DOM.eventGetTarget(event)
         elem = self.caption.getElement()
         event_targets_popup = target and DOM.isOrHasChild(elem, target)
         if event_targets_popup:
             DOM.eventPreventDefault(event)
     return PopupPanel.onEventPreview(self, event)
コード例 #30
0
    def onEventPreview(self, event):
        type = DOM.eventGetType(event)
        if type == "click":
            target = DOM.eventGetTarget(event)
            parentMenuElement = self.item.getElement()
            if DOM.isOrHasChild(parentMenuElement, target):
                if self.item.onBrowserEvent(event):
                    self.hide()
                return True

        return PopupPanel.onEventPreview(self, event)
コード例 #31
0
    def onEventPreview(self, event):
        type = DOM.eventGetType(event)
        if type == "click":
            target = DOM.eventGetTarget(event)
            parentMenuElement = self.item.getElement()
            if DOM.isOrHasChild(parentMenuElement, target):
                if self.item.onBrowserEvent(event):
                    self.hide()
                return True

        return PopupPanel.onEventPreview(self, event)
コード例 #32
0
ファイル: PopupPagina.py プロジェクト: nielsonsantana/emath
 def onEventPreview(self, event):
     # preventDefault on mousedown events, outside of the
     # dialog, to stop text-selection on dragging
     type = DOM.eventGetType(event)
     if type == "mousedown":
         target = DOM.eventGetTarget(event)
         elem = self.caption.getElement()
         event_targets_popup = target and DOM.isOrHasChild(elem, target)
         if event_targets_popup:
             DOM.eventPreventDefault(event)
     return PopupPanel.onEventPreview(self, event)
コード例 #33
0
ファイル: Canvas2D.py プロジェクト: FreakTheMighty/pyjamas
 def onBrowserEvent(self, event):
     type = DOM.eventGetType(event)
     #print "Label onBrowserEvent", type, self.clickListeners
     if type == "click":
         for listener in self.clickListeners:
             if hasattr(listener, 'onClick'): listener.onClick(self)
             else: listener(self, event)
     elif type == "blur" or type == "focus":
         FocusListener.fireFocusEvent(self.focusListeners, self, event)
     elif type == "keydown" or type == "keypress" or type == "keyup":
         MouseListener.fireMouseEvent(self.mouseListeners, self, event)
コード例 #34
0
ファイル: Tree.py プロジェクト: anandology/pyjamas
    def onBrowserEvent(self, event):
        etype = DOM.eventGetType(event)

        if etype == "click":
            e = DOM.eventGetTarget(event)
            if not self.shouldTreeDelegateFocusToElement(e) and \
                            self.curSelection is not None:
                self.setFocus(True)
        elif etype in MouseListener.MOUSE_EVENTS:
            if etype == "mousedown":
                self.elementClicked(self.root, DOM.eventGetTarget(event))
            MouseListener.fireMouseEvent(self.mouseListeners, self, event)
        elif etype == "blur" or etype == "focus":
            FocusListener.fireFocusEvent(self.focusListeners, self, event)
        elif etype == "keydown":
            if self.curSelection is None:
                if self.root.getChildCount() > 0:
                    self.onSelection(self.root.getChild(0), True)
                Widget.onBrowserEvent(self, event)
                return

            if self.lastEventType == "keydown":
                return

            keycode = DOM.eventGetKeyCode(event)
            if keycode == KeyboardListener.KEY_UP:
                self.moveSelectionUp(self.curSelection, True)
                DOM.eventPreventDefault(event)
            elif keycode == KeyboardListener.KEY_DOWN:
                self.moveSelectionDown(self.curSelection, True)
                DOM.eventPreventDefault(event)
            elif keycode == KeyboardListener.KEY_LEFT:
                if self.curSelection.getState():
                    self.curSelection.setState(False)
                DOM.eventPreventDefault(event)
            elif keycode == KeyboardListener.KEY_RIGHT:
                if not self.curSelection.getState():
                    self.curSelection.setState(True)
                DOM.eventPreventDefault(event)
        elif etype == "keyup":
            if DOM.eventGetKeyCode(event) == KeyboardListener.KEY_TAB:
                chain = []
                self.collectElementChain(chain, self.getElement(),
                                         DOM.eventGetTarget(event))
                item = self.findItemByChain(chain, 0, self.root)
                if item != self.getSelectedItem():
                    self.setSelectedItem(item, True)
        elif etype == "keypress":
            KeyboardListener.fireKeyboardEvent(self.keyboardListeners,
                                               self, event)

        Widget.onBrowserEvent(self, event)
        self.lastEventType = etype
コード例 #35
0
 def onEventPreview(self, event):
     # preventDefault on mousedown events, outside of the
     # dialog, to stop text-selection on dragging
     type = DOM.eventGetType(event)
     print "onEventPreview", event, type
     if type == 'mousedown':
         target = DOM.eventGetTarget(event)
         event_targets_control = target and DOM.isOrHasChild(self.getElement(), target)
         print "onEventPreview", target, event_targets_control
         if event_targets_control:
             DOM.eventPreventDefault(event)
     return VerticalSliderDemo.onEventPreview(self, event)
コード例 #36
0
ファイル: Tree.py プロジェクト: lindh04/ultimateTicTacToe
    def onBrowserEvent(self, event):
        etype = DOM.eventGetType(event)

        if etype == "click":
            e = DOM.eventGetTarget(event)
            if not self.shouldTreeDelegateFocusToElement(e) and \
                            self.curSelection is not None:
                self.setFocus(True)
        elif etype in MouseListener.MOUSE_EVENTS:
            if etype == "mousedown":
                self.elementClicked(self.root, DOM.eventGetTarget(event))
            MouseListener.fireMouseEvent(self.mouseListeners, self, event)
        elif etype == "blur" or etype == "focus":
            FocusListener.fireFocusEvent(self.focusListeners, self, event)
        elif etype == "keydown":
            if self.curSelection is None:
                if self.root.getChildCount() > 0:
                    self.onSelection(self.root.getChild(0), True)
                Widget.onBrowserEvent(self, event)
                return

            if self.lastEventType == "keydown":
                return

            keycode = DOM.eventGetKeyCode(event)
            if keycode == KeyboardListener.KEY_UP:
                self.moveSelectionUp(self.curSelection, True)
                DOM.eventPreventDefault(event)
            elif keycode == KeyboardListener.KEY_DOWN:
                self.moveSelectionDown(self.curSelection, True)
                DOM.eventPreventDefault(event)
            elif keycode == KeyboardListener.KEY_LEFT:
                if self.curSelection.getState():
                    self.curSelection.setState(False)
                DOM.eventPreventDefault(event)
            elif keycode == KeyboardListener.KEY_RIGHT:
                if not self.curSelection.getState():
                    self.curSelection.setState(True)
                DOM.eventPreventDefault(event)
        elif etype == "keyup":
            if DOM.eventGetKeyCode(event) == KeyboardListener.KEY_TAB:
                chain = []
                self.collectElementChain(chain, self.getElement(),
                                         DOM.eventGetTarget(event))
                item = self.findItemByChain(chain, 0, self.root)
                if item != self.getSelectedItem():
                    self.setSelectedItem(item, True)
        elif etype == "keypress":
            KeyboardListener.fireKeyboardEvent(self.keyboardListeners, self,
                                               event)

        Widget.onBrowserEvent(self, event)
        self.lastEventType = etype
コード例 #37
0
ファイル: PyjSketchGUI.py プロジェクト: ASayre/UCSBsketch
 def onBrowserEvent(self, event):
    kind = DOM.eventGetType(event)
    x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(self.getElement())
    y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(self.getElement())
    y = HEIGHT - y
    if kind == "mousedown":
       self.onMouseDown(x,y)
       self._dragging = True
    elif kind == "mousemove" and self._dragging:
       self.onMouseDrag(x,y)
    elif (kind == "mouseup" or kind == "mouseout") and self._dragging:
       self._dragging = False
       self.onMouseUp(x,y)
コード例 #38
0
ファイル: ClickListener.py プロジェクト: andreyvit/pyjamas
 def onBrowserEvent(self, event):
     """Listen to events raised by the browser and call the appropriate 
     method of the listener (widget, ..) object. 
     """
     type = DOM.eventGetType(event)
     if type == "click":
         if self._clickPreventDefault:
             DOM.eventPreventDefault(event)
         for listener in self._clickListeners:
             if hasattr(listener, "onClick"):
                 listener.onClick(self)
             else:
                 listener(self)
コード例 #39
0
ファイル: common.py プロジェクト: mcsquaredjr/Reports
    def onBrowserEvent(self, event):
        TextBox.onBrowserEvent(self, event)
        #Window.alert('was I ever called?')
        type = DOM.eventGetType(event)
        if type == "blur":
            for _listener in self._blurListeners:
                if hasattr(_listener, 'onBlur'):
                    _listener.onBlur(self)

                else:
                    _listener(self)
                    if self.controller is not None:
                        self.controller.process_msg(CAL_DATE_MSG, self.cal_ID)
コード例 #40
0
ファイル: common.py プロジェクト: mcsquaredjr/Reports
 def onBrowserEvent(self, event):
     TextBox.onBrowserEvent(self, event)
     #Window.alert('was I ever called?')
     type = DOM.eventGetType(event)
     if type == "blur":
         for _listener in self._blurListeners:
             if hasattr(_listener, 'onBlur'): 
                 _listener.onBlur(self)
                 
             else:
                 _listener(self)
                 if self.controller is not None:
                     self.controller.process_msg(CAL_DATE_MSG, self.cal_ID)
コード例 #41
0
    def onEventPreview(self, event):
        type = DOM.eventGetType(event)
        if type == "click":
            target = DOM.eventGetTarget(event)
            parentMenuElement = self.item.getElement()
            if DOM.isOrHasChild(parentMenuElement, target):
                if self.item.findItem(target):
                    self.hide()
                    DOM.eventCancelBubble(event, True)
                    DOM.eventStopPropagation(event)

                return True

        return PopupPanel.onEventPreview(self, event)
コード例 #42
0
    def onEventPreview(self, event):
        type = DOM.eventGetType(event)
        if type == "click":
            target = DOM.eventGetTarget(event)
            parentMenuElement = self.item.getElement()
            if DOM.isOrHasChild(parentMenuElement, target):
                if self.item.findItem(target):
                    self.hide()
                    DOM.eventCancelBubble(event, True)
                    DOM.eventStopPropagation(event)

                return True

        return PopupPanel.onEventPreview(self, event)
コード例 #43
0
def fireKeyboardEvent(listeners, sender, event):
    modifiers = getKeyboardModifiers(event)
    keycode = DOM.eventGetKeyCode(event)

    type = DOM.eventGetType(event)
    if type == "keydown":
        for listener in listeners:
            listener.onKeyDown(sender, keycode, modifiers)
    elif type == "keyup":
        for listener in listeners:
            listener.onKeyUp(sender, keycode, modifiers)
    elif type == "keypress":
        for listener in listeners:
            listener.onKeyPress(sender, keycode, modifiers)
コード例 #44
0
ファイル: tester.py プロジェクト: ASayre/UCSBsketch
 def onBrowserEvent(self, event):
    print "Event happened"
    kind = DOM.eventGetType(event)
    x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(self.canvas.getElement())
    y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(self.canvas.getElement())
    print "Type of event: %s" % (kind)
    if kind == "mousedown":
       self._dragging = True
       self.onMouseDown(x,y)
    elif kind == "mousemove" and self._dragging:
       self.onMouseDrag(x,y)
    elif (kind == "mouseup" or kind == "mouseout") and self._dragging:
       self._dragging = False
       self.onMouseUp(x,y)
コード例 #45
0
def fireDragEvent(listeners, event):
    etype = DOM.eventGetType(event)
    if etype == "dragstart":
        for listener in listeners:
            listener.onDragStart(event)
        return True
    elif etype == "drag":
        for listener in listeners:
            listener.onDrag(event)
        return True
    elif etype == "dragend":
        for listener in listeners:
            listener.onDragEnd(event)
        return True
    return False
コード例 #46
0
ファイル: DragHandler.py プロジェクト: anandology/pyjamas
def fireDragEvent(listeners, event):
    etype = DOM.eventGetType(event)
    if etype == "dragstart":
        for listener in listeners:
            listener.onDragStart(event)
        return True
    elif etype == "drag":
        for listener in listeners:
            listener.onDrag(event)
        return True
    elif etype == "dragend":
        for listener in listeners:
            listener.onDragEnd(event)
        return True
    return False
コード例 #47
0
ファイル: HTMLTable.py プロジェクト: anandology/pyjamas
    def onBrowserEvent(self, event):
        if DOM.eventGetType(event) == "click":
            td = self.getEventTargetCell(event)
            if td is None:
                return

            tr = DOM.getParent(td)
            body = DOM.getParent(tr)
            row = DOM.getChildIndex(body, tr)
            column = DOM.getChildIndex(tr, td)

            for listener in self.tableListeners:
                if hasattr(listener, 'onCellClicked'):
                    listener.onCellClicked(self, row, column)
                else:
                    listener(self)
コード例 #48
0
    def onBrowserEvent(self, event):
        if DOM.eventGetType(event) == "click":
            td = self.getEventTargetCell(event)
            if td is None:
                return

            tr = DOM.getParent(td)
            body = DOM.getParent(tr)
            row = DOM.getChildIndex(body, tr)
            column = DOM.getChildIndex(tr, td)

            for listener in self.tableListeners:
                if hasattr(listener, 'onCellClicked'):
                    listener.onCellClicked(self, row, column)
                else:
                    listener(self)
コード例 #49
0
ファイル: MenuBar.py プロジェクト: FreakTheMighty/pyjamas
    def onBrowserEvent(self, event):
        Widget.onBrowserEvent(self, event)

        item = self.findItem(DOM.eventGetTarget(event))
        if item is None:
            return False

        type = DOM.eventGetType(event)
        if type == "click":
            self.doItemAction(item, True)
            return True
        elif type == "mouseover":
            self.itemOver(item)
        elif type == "mouseout":
            self.itemOver(None)

        return False
コード例 #50
0
    def onBrowserEvent(self, event):
        Widget.onBrowserEvent(self, event)

        item = self.findItem(DOM.eventGetTarget(event))
        if item is None:
            return False

        type = DOM.eventGetType(event)
        if type == "click":
            self.doItemAction(item, True)
            return True
        elif type == "mouseover":
            self.itemOver(item)
        elif type == "mouseout":
            self.itemOver(None)

        return False
コード例 #51
0
def fireDropEvent(listeners, event):
    etype = DOM.eventGetType(event)
    if etype == "dragenter":
        for listener in listeners:
            listener.onDragEnter(event)
        return True
    elif etype == "dragover":
        for listener in listeners:
            listener.onDragOver(event)
        return True
    elif etype == "dragleave":
        for listener in listeners:
            listener.onDragLeave(event)
        return True
    elif etype == "drop":
        for listener in listeners:
            listener.onDrop(event)
        return True
    return False
コード例 #52
0
 def onBrowserEvent(self, event):
     """Listen to events raised by the browser and call the appropriate
     method of the listener (widget, ..) object.
     """
     type = DOM.eventGetType(event)
     if type == "click":
         if self._clickPreventDefault:
             DOM.eventPreventDefault(event)
         for listener in self._clickListeners:
             if hasattr(listener, "onClick"):
                 listener.onClick(self)
             else:
                 listener(self)
     elif type == "dblclick":
         if self._clickPreventDefault:
             DOM.eventPreventDefault(event)
         for listener in self._doubleclickListeners:
             if hasattr(listener, "onDoubleClick"):
                 listener.onDoubleClick(self)
             else:
                 listener(self)
コード例 #53
0
    def onBrowserEvent(self, event):
        DOM.eventPreventDefault(event)
        if not self.game.started:
            return
        td = self.getEventTargetCell(event)
        if not td:
            return
        tr = DOM.getParent(td)
        table = DOM.getParent(tr)
        row = DOM.getChildIndex(table, tr)
        column = DOM.getChildIndex(tr, td)
        target_cell = self.getCell(row, column)

        type = DOM.eventGetType(event)
        event_mapper = {'click': 'onClick',
                        'contextmenu': 'onRightClick',
                        'mousedown': 'onMouseDown',
                        'mouseup': 'onMouseUp',
                        'mouseout': 'onMouseLeave'}
        event_handler = event_mapper.get(type)
        if event_handler:
            getattr(self, event_handler)(target_cell)
コード例 #54
0
    def onBrowserEvent(self, event):
        typ = DOM.eventGetType(event)

        if typ == "mousedown":
            target = DOM.eventGetTarget(event)
            if DOM.isOrHasChild(self.splitElem, target):
                self.startResizingFrom(
                    DOM.eventGetClientX(event) - self.getAbsoluteLeft(),
                    DOM.eventGetClientY(event) - self.getAbsoluteTop())
                DOM.setCapture(self.getElement())
                DOM.eventPreventDefault(event)

        elif typ == "mouseup":
            DOM.releaseCapture(self.getElement())
            self.stopResizing()

        elif typ == 'mousemove':
            if self.isResizing:
                #assert DOM.getCaptureElement() is not None
                self.onSplitterResize(
                    DOM.eventGetClientX(event) - self.getAbsoluteLeft(),
                    DOM.eventGetClientY(event) - self.getAbsoluteTop())
                DOM.eventPreventDefault(event)