class ProgressButtonControl(PlaylistButtonControl): name = 'progress_button' title = _('Progress button') description = _('Playback progress and access ' 'to the current playlist') # Required to make overrides work __gsignals__ = {} def __init__(self): PlaylistButtonControl.__init__(self) self.set_name('progressbutton') self.add_events(Gdk.EventMask.POINTER_MOTION_MASK) self.progressbar = SeekProgressBar(player.PLAYER) self.progressbar.set_size_request(-1, 1) self.progressbar.formatter = ProgressButtonFormatter() self.progressbar.set_text = lambda *a: None # Needed by PlaylistButtonControl gtk_widget_replace(self.label, self.progressbar) self.label = self.progressbar if player.PLAYER.current is not None: self.progressbar.on_playback_track_start('playback_track_start', player.PLAYER, player.PLAYER.current) self.tooltip = TrackToolTip(self, player.PLAYER) self.tooltip.set_auto_update(True) def destroy(self): """ Cleanups """ self.tooltip.destroy() PlaylistButtonControl.destroy(self) def do_button_press_event(self, event): """ Trigger normal toggle action or seek """ if event.button == 1: PlaylistButtonControl.do_button_press_event(self, event) elif event.button == 2: event = event.copy() event.button = 1 x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('button-press-event', event) def do_button_release_event(self, event): if event.button == 1: PlaylistButtonControl.do_button_release_event(self, event) elif event.button == 2: event = event.copy() event.button = 1 x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('button-release-event', event) def do_motion_notify_event(self, event): event = event.copy() x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('motion-notify-event', event) def do_leave_notify_event(self, event): event = event.copy() x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('leave-notify-event', event)
class ProgressButtonControl(PlaylistButtonControl): name = 'progress_button' title = _('Progress button') description = _('Playback progress and access ' 'to the current playlist') # Required to make overrides work __gsignals__ = {} def __init__(self): PlaylistButtonControl.__init__(self) self.set_name('progressbutton') self.add_events(Gdk.EventMask.POINTER_MOTION_MASK) self.progressbar = SeekProgressBar(player.PLAYER) self.progressbar.set_size_request(-1, 1) self.progressbar.formatter = ProgressButtonFormatter() self.progressbar.set_text = lambda *a: None # Needed by PlaylistButtonControl gtk_widget_replace(self.label, self.progressbar) self.label = self.progressbar if player.PLAYER.current is not None: self.progressbar.on_playback_track_start( 'playback_track_start', player.PLAYER, player.PLAYER.current ) self.tooltip = TrackToolTip(self, player.PLAYER) self.tooltip.set_auto_update(True) def destroy(self): """ Cleanups """ self.tooltip.destroy() PlaylistButtonControl.destroy(self) def do_button_press_event(self, event): """ Trigger normal toggle action or seek """ if event.button == Gdk.BUTTON_PRIMARY: PlaylistButtonControl.do_button_press_event(self, event) elif event.button == Gdk.BUTTON_MIDDLE: event = event.copy() event.button = Gdk.BUTTON_PRIMARY x, y = self.translate_coordinates( self.progressbar, int(event.x), int(event.y) ) event.x, event.y = float(x), float(y) self.progressbar.emit('button-press-event', event) def do_button_release_event(self, event): if event.button == Gdk.BUTTON_PRIMARY: PlaylistButtonControl.do_button_release_event(self, event) elif event.button == Gdk.BUTTON_MIDDLE: event = event.copy() event.button = Gdk.BUTTON_PRIMARY x, y = self.translate_coordinates( self.progressbar, int(event.x), int(event.y) ) event.x, event.y = float(x), float(y) self.progressbar.emit('button-release-event', event) def do_motion_notify_event(self, event): event = event.copy() x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('motion-notify-event', event) def do_leave_notify_event(self, event): event = event.copy() x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('leave-notify-event', event)