2 # mEveMon - A character monitor for EVE Online
3 # Copyright (c) 2010 Ryan and Danny Campbell, and the mEveMon Team
5 # mEveMon is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # mEveMon is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
23 from ui.fremantle.characterSheet import CharacterSheetUI
24 import ui.models as models
26 from ui.fremantle.menu import Menu
29 def __init__(self, controller):
30 self.controller = controller
31 gtk.set_application_name("mEveMon")
34 # create the main window
35 self.win = hildon.StackableWindow()
36 self.win.connect("destroy", self.controller.quit)
38 hildon.hildon_gtk_window_set_progress_indicator(self.win, 1)
41 menu = Menu(self.win, self.controller)
42 # Attach menu to the window
43 self.win.set_app_menu(menu)
45 pannable_area = hildon.PannableArea()
47 # gtk.HILDON_UI_MODE_NORMAL -> not selection in the treeview
48 # gtk.HILDON_UI_MODE_EDIT -> selection in the treeview
49 self.treeview = CharactersTreeView(gtk.HILDON_UI_MODE_NORMAL, self.controller)
50 self.treeview.connect('row-activated', self.do_charactersheet)
52 pannable_area.add(self.treeview)
53 self.win.add(pannable_area);
56 hildon.hildon_gtk_window_set_progress_indicator(self.win, 0)
58 def refresh_clicked(self, button):
59 hildon.hildon_gtk_window_set_progress_indicator(self.win, 1)
60 self.treeview.refresh()
61 hildon.hildon_gtk_window_set_progress_indicator(self.win, 0)
63 def do_charactersheet(self, treeview, path, view_column):
64 model = treeview.get_model()
65 miter = model.get_iter(path)
67 # column 0 is the portrait, column 1 is name
68 char_name = model.get_value(miter, 1)
69 uid = model.get_value(miter, 2)
72 CharacterSheetUI(self.controller, char_name, uid)
77 class CharactersTreeView(hildon.GtkTreeView):
78 def __init__(self, mode, controller):
79 self.controller = controller
80 hildon.GtkTreeView.__init__(self, mode)
82 self.char_model = models.CharacterListModel(self.controller)
83 self.set_model(self.char_model)
86 def add_columns(self):
87 #Column 0 for the treeview
88 renderer = gtk.CellRendererPixbuf()
89 column = gtk.TreeViewColumn()
90 column.pack_start(renderer, True)
91 column.add_attribute(renderer, "pixbuf",
92 models.CharacterListModel.C_PORTRAIT)
93 self.append_column(column)
95 #Column 1 for the treeview
96 renderer = gtk.CellRendererText()
97 column = gtk.TreeViewColumn('Character Name', renderer,
98 text=models.CharacterListModel.C_NAME)
99 column.set_property("expand", True)
100 self.append_column(column)
103 self.char_model.get_characters()