Exemple #1
0
    def __init__(self, scrollbars):
        Gtk.DrawingArea.__init__(self)

        hadj = scrollbars.get_hadjustment()
        vadj = scrollbars.get_vadjustment()

        self.full_size = (1, 1)
        self.visible_size = (1, 1)

        self.drawers = PriorityQueue()
        self.tick_counter_lock = threading.Lock()

        self.set_hadjustment(hadj)
        self.set_vadjustment(vadj)

        self.add_events(Gdk.EventMask.SCROLL_MASK)
        self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
        self.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK)
        self.add_events(Gdk.EventMask.POINTER_MOTION_MASK)
        self.connect("size-allocate", self.__on_size_allocate)
        self.connect("draw", self.__on_draw)
        self.connect("button-press-event", self.__on_button_pressed)
        self.connect("motion-notify-event", self.__on_motion)
        self.connect("button-release-event", self.__on_button_released)
        self.connect("key-press-event", self.__on_key_pressed)

        hadj.connect("value-changed", self.__on_adjustment_changed)
        vadj.connect("value-changed", self.__on_adjustment_changed)

        self.set_size_request(-1, -1)
        self.set_can_focus(True)

        self.need_ticks = 0
Exemple #2
0
    def __init__(self, scrollbars):
        Gtk.DrawingArea.__init__(self)

        self.redraw_queued = False

        hadj = scrollbars.get_hadjustment()
        vadj = scrollbars.get_vadjustment()

        self.full_size = (1, 1)
        self.visible_size = (1, 1)
        self.mouse_position = (0, 0)

        self.drawers = PriorityQueue()
        self.tick_counter_lock = threading.Lock()

        self.set_hadjustment(hadj)
        self.set_vadjustment(vadj)

        self.add_events(Gdk.EventMask.SCROLL_MASK)
        self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK)
        self.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK)
        self.add_events(Gdk.EventMask.POINTER_MOTION_MASK)
        self.add_events(Gdk.EventMask.KEY_PRESS_MASK)
        self.add_events(Gdk.EventMask.LEAVE_NOTIFY_MASK)
        super(Canvas, self).connect("size-allocate", self.__on_size_allocate)
        super(Canvas, self).connect("draw", self.__on_draw)
        super(Canvas, self).connect("button-press-event",
                                    self.__on_button_pressed)
        super(Canvas, self).connect("motion-notify-event", self.__on_motion)
        super(Canvas, self).connect("button-release-event",
                                    self.__on_button_released)
        super(Canvas, self).connect("key-press-event", self.__on_key_pressed)
        super(Canvas, self).connect("leave-notify-event",
                                    self.__on_mouse_leave)

        hadj.connect("value-changed", self.__on_adjustment_changed)
        vadj.connect("value-changed", self.__on_adjustment_changed)

        self.set_size_request(-1, -1)
        self.set_can_focus(True)

        self.need_ticks = 0
        self.need_stop_ticks = 0

        self._drawer_connections = {}  # drawer --> [('signal', func), ...]

        self.__scroll_origin = (0, 0)
        self.__cursor_drawer = None