+class MoviesView(gtk.TreeView):
+
+ def __init__(self):
+ super(MoviesView, self).__init__()
+ model = MoviesListStore()
+ self.set_model(model)
+
+ movie_image_renderer = gtk.CellRendererPixbuf()
+ column = gtk.TreeViewColumn('Image', movie_image_renderer, pixbuf = model.IMAGE_COLUMN)
+ self.append_column(column)
+
+ movie_text_renderer = gtk.CellRendererText()
+ movie_text_renderer.set_property('ellipsize', pango.ELLIPSIZE_END)
+ column = gtk.TreeViewColumn('Name', movie_text_renderer, markup = model.INFO_COLUMN)
+ self.append_column(column)
+
+ self.show_all()
+
+ def add_movies(self, movie_list):
+ model = self.get_model()
+ model.add(movie_list)
+
+class MoviesListStore(gtk.ListStore):
+
+ IMAGE_COLUMN = 0
+ INFO_COLUMN = 1
+ MOVIE_COLUMN = 2
+
+ def __init__(self):
+ super(MoviesListStore, self).__init__(gtk.gdk.Pixbuf,
+ str,
+ gobject.TYPE_PYOBJECT)
+
+ def add(self, movies_found):
+ self.clear()
+ for movie in movies_found:
+ row = {self.IMAGE_COLUMN: movie.get_image(),
+ self.INFO_COLUMN: movie.get_info(),
+ self.MOVIE_COLUMN: movie,
+ }
+ self.append(row.values())
+