5 This module provides two helper classes, to ease the embedding of a
6 VLC component inside a pygtk application.
8 VLCWidget is a simple VLC widget.
10 DecoratedVLCWidget provides simple player controls.
19 from gettext import gettext as _
21 class VLCWidget(gtk.DrawingArea):
24 Its player can be controlled through the 'player' attribute, which
25 is a MediaControl instance.
27 def __init__(self, *p):
28 gtk.DrawingArea.__init__(self)
29 self.player=vlc.MediaControl(*p)
31 if sys.platform == 'win32':
35 self.player.set_visual(getattr(self.window, xidattr))
37 self.connect("map-event", handle_embed)
38 self.set_size_request(320, 200)
41 class DecoratedVLCWidget(gtk.VBox):
42 """Decorated VLC widget.
44 VLC widget decorated with a player control toolbar.
46 Its player can be controlled through the 'player' attribute, which
47 is a MediaControl instance.
49 def __init__(self, *p):
50 gtk.VBox.__init__(self)
51 self._vlc_widget=VLCWidget(*p)
52 self.player=self._vlc_widget.player
53 self.pack_start(self._vlc_widget, expand=True)
54 self._toolbar = self.get_player_control_toolbar()
55 self.pack_start(self._toolbar, expand=False)
57 def get_player_control_toolbar(self):
58 """Return a player control toolbar
61 tb.set_style(gtk.TOOLBAR_ICONS)
76 (_("Play"), _("Play"), gtk.STOCK_MEDIA_PLAY,
78 (_("Pause"), _("Pause"), gtk.STOCK_MEDIA_PAUSE,
80 (_("Stop"), _("Stop"), gtk.STOCK_MEDIA_STOP,
84 for text, tooltip, stock, callback in tb_list:
85 b=gtk.ToolButton(stock)
86 b.connect("clicked", callback)
92 """Example video player.
95 self.vlc = DecoratedVLCWidget()
97 def main(self, fname):
98 self.vlc.player.set_mrl(fname)
106 w.connect("destroy", gtk.main_quit)
109 if __name__ == '__main__':
111 print "You must provide a movie filename"