Changed main screen to use gtktreeview isntead of a table of buttons.
authorRyan Campbell <campbellr@gmail.com>
Fri, 16 Apr 2010 22:52:13 +0000 (16:52 -0600)
committerRyan Campbell <campbellr@gmail.com>
Fri, 16 Apr 2010 22:58:55 +0000 (16:58 -0600)
Also, hacked up a demo of the character list.

avatar.png [new file with mode: 0644]
ui/fremantle/ui.py

diff --git a/avatar.png b/avatar.png
new file mode 100644 (file)
index 0000000..39ac428
Binary files /dev/null and b/avatar.png differ
index 3f164d2..aa44c58 100644 (file)
@@ -7,6 +7,7 @@ import sys
 
 import gtk
 import hildon
+import gobject
 
 class mEveMonUI():
 
@@ -33,13 +34,56 @@ class mEveMonUI():
         win.set_app_menu(menu)
 
         pannable_area = hildon.PannableArea()
-        table = self.create_table(win)
 
-        pannable_area.add_with_viewport(table)
-    
+        # gtk.HILDON_UI_MODE_NORMAL -> not selection in the treeview
+        # gtk.HILDON_UI_MODE_EDIT -> selection in the treeview
+        treeview = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL)
+
+        model = self.create_model()
+        treeview.set_model(model)
+
+        self.add_columns_to_treeview(treeview)
+
+        pannable_area.add(treeview)
+
         win.add(pannable_area);
     
         win.show_all()
+
+    def create_model(self):
+        lstore = gtk.ListStore(gtk.gdk.Pixbuf, gobject.TYPE_STRING)
+
+        #get icon and name and put in a liststore
+
+        # temporary hard-coding until we can fetch the data with eveapi
+        # something like:
+        # char list = self.controller.get_characters()
+        char_list = [("Character 1", "avatar.png"), ("Character 2", "avatar.png")]
+
+        for name, icon in char_list:
+            liter = lstore.append()
+            lstore.set(liter, 1, name, 0, self.set_pix(icon))
+
+        return lstore
+
+    def set_pix(self, filename):
+        pixbuf = gtk.gdk.pixbuf_new_from_file(filename)
+        return pixbuf
+
+    def add_columns_to_treeview(self, treeview):
+        #Column 0 for the treeview
+        renderer = gtk.CellRendererPixbuf()
+        column = gtk.TreeViewColumn()
+        column.pack_start(renderer, True)
+        column.add_attribute(renderer, "pixbuf", 0)
+        treeview.append_column(column)
+
+        #Column 1 for the treeview
+        renderer = gtk.CellRendererText()
+        column = gtk.TreeViewColumn('title', renderer, text=1)
+        column.set_property("expand", True)
+        treeview.append_column(column)
   
     def settings_clicked(self, button, window):
    
@@ -129,22 +173,6 @@ class mEveMonUI():
 
         return menu
 
-    def create_table(self, window):
-    
-        # create a table of 10 by 10 squares. 
-        table = gtk.Table (1, 10, False)
-        table.show()
-
-        # this simply creates a grid of toggle buttons on the table
-        # to demonstrate the scrolled window. 
-        for i in range(10):
-            data_buffer = "button %d\n" % i
-            button = gtk.ToggleButton(data_buffer)
-            table.attach(button, 0, 1 , i, i+1)
-
-        return table
-
-
 if __name__ == "__main__":
     main()