Beispiel #1
0
    def on_mouse_motion(self, event):
        if (not self.drag_bmap or not event.Dragging()
                or not event.LeftIsDown()):
            return

        raw_pt = event.GetPosition()
        screen_pt = self.ClientToScreen(raw_pt)
        check_pt = self.CalcUnscrolledPosition(raw_pt)

        if (self.drag_bmap and not self.drag_image):
            tolerance = 4
            dx = abs(check_pt.x - self.drag_start_pos.x)
            dy = abs(check_pt.y - self.drag_start_pos.y)
            if (dx <= tolerance and dy <= tolerance):
                return

            # BED scale the image if it is program_pallete
            zoom = win_data.get_zoom(self.name)
            if (zoom != 1.0):
                image = self.drag_bmap.ConvertToImage()
                w = image.GetWidth() * zoom
                h = image.GetHeight() * zoom
                image.Rescale(w, h)
                self.drag_bmap = image.ConvertToBitmap()

            self.drag_image = wx.DragImage(self.drag_bmap,
                                           wx.StockCursor(wx.CURSOR_HAND))
            dev_x, dev_y = self.drag_bmap.GetSize()
            hotspot = (dev_x / 2, dev_y / 2)
            #print "on_mouse_motion: hotspot", hotspot
            self.drag_image.BeginDrag(hotspot, self, True, self.frame_rect)
            loc, update, extra = win_data.inform_work_of_centre_pt(
                screen_pt, self.drag_name, self.drag_image)
            self.drag_image.Show()
            self.drag_image.Move(raw_pt)
        else:
            loc, update, extra = win_data.inform_work_of_centre_pt(
                screen_pt, self.drag_name, self.drag_image)
            if (update):
                self.drag_image.Show()
            self.drag_image.Move(raw_pt)
Beispiel #2
0
    def on_mouse_motion(self, event):
        if (not self.drag_bmap or not event.Dragging() or not event.LeftIsDown()):
            return

        raw_pt = event.GetPosition()
        screen_pt = self.ClientToScreen(raw_pt)
        check_pt = self.CalcUnscrolledPosition(raw_pt)
        
        if (self.drag_bmap and not self.drag_image):
            tolerance = 4
            dx = abs(check_pt.x - self.drag_start_pos.x)
            dy = abs(check_pt.y - self.drag_start_pos.y)
            if (dx <= tolerance and dy <= tolerance):
                return

            # BED scale the image if it is program_pallete
            zoom = win_data.get_zoom(self.name)
            if (zoom != 1.0):
                image = self.drag_bmap.ConvertToImage()
                w = image.GetWidth() * zoom
                h = image.GetHeight() * zoom
                image.Rescale(w, h)
                self.drag_bmap = image.ConvertToBitmap()

            self.drag_image = wx.DragImage(self.drag_bmap, wx.StockCursor(wx.CURSOR_HAND))
            dev_x, dev_y = self.drag_bmap.GetSize()
            hotspot = (dev_x/2, dev_y/2)
            #print "on_mouse_motion: hotspot", hotspot
            self.drag_image.BeginDrag(hotspot, self, True, self.frame_rect)
            loc, update,extra = win_data.inform_work_of_centre_pt(screen_pt, self.drag_name,
                                                                  self.drag_image)
            self.drag_image.Show()
            self.drag_image.Move(raw_pt)
        else:
            loc, update,extra = win_data.inform_work_of_centre_pt(screen_pt, self.drag_name,
                                                                  self.drag_image)
            if (update):
                self.drag_image.Show()
            self.drag_image.Move(raw_pt)
Beispiel #3
0
    def parent_on_left_up(self, event):
        loc = -1
        extra = None
        if (self.drag_image):
            screen_pt = self.ClientToScreen(event.GetPosition())
            loc, update, extra = win_data.inform_work_of_centre_pt(
                screen_pt, self.drag_name, self.drag_image)

            self.drag_image.Hide()
            self.drag_image.EndDrag()
            self.drag_image = None
            self.drag_bmap = None

            self.SetCursor(wx.NullCursor)

            #print "Dropped at", screen_pt, "loc:", loc, "name:", self.drag_name

        # used by the child to do special processing
        return (loc, self.drag_name, extra)
Beispiel #4
0
    def parent_on_left_up(self, event):
        loc = -1
        extra = None
        if (self.drag_image):
            screen_pt = self.ClientToScreen(event.GetPosition())
            loc,update,extra = win_data.inform_work_of_centre_pt(screen_pt,
                                                                 self.drag_name,
                                                                 self.drag_image)

            self.drag_image.Hide()
            self.drag_image.EndDrag()
            self.drag_image = None
            self.drag_bmap = None
            
            self.SetCursor(wx.NullCursor)

            #print "Dropped at", screen_pt, "loc:", loc, "name:", self.drag_name

        # used by the child to do special processing
        return (loc, self.drag_name, extra)