Esempio n. 1
0
 def onElementContextmenu(self, sender,event):
     x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(self.canvas.getElement())
     y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(self.canvas.getElement())
     s = self.desc[self.elements.index(sender)]
     self.set_status('Contextmenue on Element '+s+' at '+str(x)+', '+str(y))
     DOM.eventCancelBubble(event,True)
     DOM.eventPreventDefault(event)
Esempio n. 2
0
    def onDrop(self, event):
        dt = event.dataTransfer
        types = getTypes(event)
        self.addMessage("drop types received: " + ", ".join(types))
        parent = self.getParent()
        parent.clearContent()
        self.addMessage('dt: ' + str(dt))
        types.sort()
        for ctype in types:
            data = dt.getData(ctype)
            if ctype == 'Files':
                file_names = []
                files = dt.files
                # files is a FileList
                # http://help.dottoro.com/ljuelxgf.php
                for idx in range(files.length):
                    item = files.item(idx)
                    try:
                        name = item.name
                    except:
                        name = item.fileName
                    file_names.append(name)
                data = '<br>'.join(file_names)
            parent.addContent(ctype, data)
        DOM.eventPreventDefault(event)
        # cancel bubble so first file is not opened in browser.

        DOM.eventCancelBubble(event, True)
Esempio n. 3
0
 def action(self,element,event):
     x = DOM.eventGetClientX(event) - self.ox
     y = DOM.eventGetClientY(event) - self.oy
     DOM.eventCancelBubble(event,True)
     DOM.eventPreventDefault(event)
     #alert('clic %s %s'%(x,y))
     self._action(x,y)
Esempio n. 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, "_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
Esempio n. 5
0
    def onDrop(self, event):
        dt = event.dataTransfer
        types = getTypes(event)
        self.addMessage("drop types received: " + ", ".join(types))
        parent = self.getParent()
        parent.clearContent()
        self.addMessage('dt: ' + str(dt))
        types.sort()
        for ctype in types:
            data = dt.getData(ctype)
            if ctype == 'Files':
                file_names = []
                files = dt.files
                # files is a FileList
                # http://help.dottoro.com/ljuelxgf.php
                for idx in range(files.length):
                    item = files.item(idx)
                    try:
                        name = item.name
                    except:
                        name = item.fileName
                    file_names.append(name)
                data = '<br>'.join(file_names)
            parent.addContent(ctype, data)
        DOM.eventPreventDefault(event)
        # cancel bubble so first file is not opened in browser.

        DOM.eventCancelBubble(event, True)
    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
Esempio n. 7
0
 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 _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)
Esempio n. 9
0
 def onElementDblClick(self, sender, event):
     x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(
         self.canvas.getElement())
     y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(
         self.canvas.getElement())
     s = self.desc[self.elements.index(sender)]
     self.set_status('Doubleclick on Element ' + s + ' at ' + str(x) +
                     ', ' + str(y))
     DOM.eventCancelBubble(event, True)
Esempio n. 10
0
 def onElementContextmenu(self, sender, event):
     x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(
         self.canvas.getElement())
     y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(
         self.canvas.getElement())
     s = self.desc[self.elements.index(sender)]
     self.set_status('Contextmenue on Element ' + s + ' at ' + str(x) +
                     ', ' + str(y))
     DOM.eventCancelBubble(event, True)
     DOM.eventPreventDefault(event)
Esempio n. 11
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)
Esempio n. 12
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)
Esempio n. 13
0
 def onElementDblClick(self,sender,event):
     x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(self.canvas.getElement())
     y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(self.canvas.getElement())
     s = self.desc[self.elements.index(sender)]
     self.set_status('Doubleclick on Element '+s+' at '+str(x)+', '+str(y))
     DOM.eventCancelBubble(event,True)
Esempio n. 14
0
 def onElementMousemove(self, sender, event):
     x = DOM.eventGetClientX(event) - DOM.getAbsoluteLeft(self.canvas.getElement())
     y = DOM.eventGetClientY(event) - DOM.getAbsoluteTop(self.canvas.getElement())
     s = self.desc[self.elements.index(sender)]
     self.set_status("Mousemove on Element " + s + " at " + str(x) + ", " + str(y))
     DOM.eventCancelBubble(event, True)
Esempio n. 15
0
 def onKeyUp(self, sender, keycode, modifiers):
     evt = DOM.eventGetCurrentEvent()
     DOM.eventCancelBubble(evt, True)
     DOM.eventPreventDefault(evt)