def __init__(self, db): # initialize keybindings self.KEY_QUIT = gtk.keysyms.q self.KEY_UP = gtk.keysyms.w self.KEY_DOWN = gtk.keysyms.s self.KEY_LEFT = gtk.keysyms.a self.KEY_RIGHT = gtk.keysyms.d self.KEY_SELECT = gtk.keysyms.Return self.KEY_RETURN = gtk.keysyms.Escape # hold onto db reference self.db = db # create a new MAME instance self.mame = MAME('/usr/games/mame') # Create a new window self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_title("DOUBLE ELBOW!") self.window.set_size_request(800, 600) self.window.connect("delete_event", self.delete_event) # create a TreeStore with one string column to use as the model self.store = gtk.ListStore(str, str) # we'll add some data now - 4 rows with 3 child rows each for game in self.db: s = "<span font_weight='bold' size='medium'>%s</span>\n" % game.title s += "<span size='x-small'>by %s (%s)</span>" % (game.manufacturer, game.year) self.store.append([game.name, s]) # create the TreeView using store self.treeview = gtk.TreeView(self.store) self.treeview.set_headers_visible(False) self.treeview.set_enable_search(False) self.treeview.set_reorderable(False) self.treeview.connect('key-press-event', self.key_nav) self.window.add(self.treeview) # create the TreeViewColumn to display the data self.tvcolumn = gtk.TreeViewColumn('Game') self.treeview.append_column(self.tvcolumn) self.cell = gtk.CellRendererText() self.tvcolumn.pack_start(self.cell, True) self.tvcolumn.add_attribute(self.cell, 'markup', 1) #self.tvcolumn.set_sort_column_id(1) # get a reference to the tree selection self.selection = self.treeview.get_selection() self.selection.set_mode(gtk.SELECTION_SINGLE) self.selection.select_path((0,)) self.window.show_all()