Пример #1
0
    def build_widget(self):
        vb=gtk.VBox()

        l = gtk.Label(self.label)
        vb.pack_start(l, expand=False)

        hb=gtk.HBox()

        eb = gtk.EventBox()
        ar = gtk.Arrow(gtk.ARROW_LEFT, gtk.SHADOW_IN)
        ar.set_tooltip_text(_("Click to see more frames or scroll with the mouse wheel"))
        eb.connect('button-press-event', lambda b,e: self.update_offset(-1))
        eb.add(ar)
        hb.pack_start(eb, expand=False)

        r = None
        for i in xrange(self.count):

            border = GenericColorButtonWidget('border')
            border.default_size=(3, 110)
            border.local_color=self.black_color

            if r is not None:
                # Previous TimestampRepresentation -> right border
                r.right_border = border

            r = TimestampRepresentation(0, self.controller, width=100, visible_label=True,
                                        epsilon=(1000 / config.data.preferences['default-fps'] - 10))
            self.frames.append(r)
            r.connect("clicked", self.select_time)
            r.left_border = border

            def enter_bookmark(widget, event):
                if self.border_mode == 'left':
                    b=widget.left_border
                elif self.border_mode == 'right':
                    b=widget.right_border
                b.old_color = b.local_color
                b.set_color(self.mouseover_color)
                return False
            def leave_bookmark(widget, event):
                if self.border_mode == 'left':
                    b=widget.left_border
                elif self.border_mode == 'right':
                    b=widget.right_border
                b.set_color(b.old_color)
                return False
            if self.border_mode in ('left', 'right'):
                r.connect('enter-notify-event', enter_bookmark)
                r.connect('leave-notify-event', leave_bookmark)

            hb.pack_start(border, expand=False)
            hb.pack_start(r, expand=False)

        # Last right border
        border = GenericColorButtonWidget('border')
        border.default_size=(3, 110)
        border.local_color=self.black_color
        r.right_border = border
        hb.pack_start(border, expand=False)

        eb = gtk.EventBox()
        ar = gtk.Arrow(gtk.ARROW_RIGHT, gtk.SHADOW_IN)
        ar.set_tooltip_text(_("Click to see more frames or scroll with the mouse wheel"))
        eb.connect('button-press-event', lambda b,e: self.update_offset(+1))
        eb.add(ar)
        hb.pack_start(eb, expand=False)

        hb.set_style(get_color_style(hb, 'black', 'black'))
        hb.connect('scroll-event', self.handle_scroll_event)
        hb.connect('key-press-event', self.handle_key_press)
        vb.add(hb)

        self.update_timestamp(self.timestamp)
        return vb