2 # Based on C code from:
3 # "Hildon Tutorial" version 2009-04-28
4 # Example 3.1, "Example of a Hildon application menu"
13 about_name = 'mEveMon'
14 about_text = ('Mobile character monitor for EVE Online')
15 about_authors = ['Ryan Campbell']
16 about_website = 'http://example.site.org'
19 menu_items = ("Settings", "About", "Refresh")
21 def __init__(self, controller):
22 self.controller = controller
24 gtk.set_application_name("mEveMon")
26 #create the main window
27 win = hildon.StackableWindow()
28 win.connect("destroy", self.controller.quit)
31 menu = self.create_menu(win)
32 # Attach menu to the window
33 win.set_app_menu(menu)
35 pannable_area = hildon.PannableArea()
36 table = self.create_table(win)
38 pannable_area.add_with_viewport(table)
40 win.add(pannable_area);
44 def settings_clicked(self, button, window):
48 #get the vbox to pack all the settings into
51 dialog.set_transient_for(window)
52 dialog.set_title("Settings")
54 uidLabel = gtk.Label("User ID:")
55 uidLabel.set_justify(gtk.JUSTIFY_LEFT)
58 uidEntry = hildon.Entry(gtk.HILDON_SIZE_FINGER_HEIGHT)
59 uidEntry.set_placeholder("User ID")
60 uidEntry.set_text(self.controller.get_uid())
61 uidEntry.set_property('is_focus', False)
65 apiLabel = gtk.Label("API key:")
66 apiLabel.set_justify(gtk.JUSTIFY_LEFT)
69 apiEntry = hildon.Entry(gtk.HILDON_SIZE_FINGER_HEIGHT)
70 apiEntry.set_placeholder("API Key")
71 apiEntry.set_text(self.controller.get_api_key())
72 apiEntry.set_property('is_focus', False)
77 ok_button = dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
78 help_button = dialog.add_button(gtk.STOCK_HELP, gtk.RESPONSE_HELP)
83 if result == gtk.RESPONSE_OK:
84 self.controller.set_api_key(apiEntry.get_text())
85 self.controller.set_uid(uidEntry.get_text())
91 def about_clicked(self, button):
93 dialog = gtk.AboutDialog()
94 dialog.set_website(self.about_website)
95 dialog.set_website_label(self.about_website)
96 dialog.set_name(self.about_name)
97 dialog.set_authors(self.about_authors)
98 dialog.set_comments(self.about_text)
99 dialog.set_version(self.app_version)
103 def refresh_clicked(self, button, window):
107 def create_menu(self, window):
109 menu = hildon.AppMenu()
111 for command in self.menu_items:
112 # Create menu entries
113 button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
114 button.set_label(command)
116 if command == "About":
117 button.connect("clicked", self.about_clicked)
118 elif command == "Settings":
119 button.connect("clicked", self.settings_clicked, window)
120 elif command == "Refresh":
121 button.connect("clicked", self.refresh_clicked, window)
123 assert False, command
125 # Add entry to the view menu
132 def create_table(self, window):
134 # create a table of 10 by 10 squares.
135 table = gtk.Table (1, 10, False)
138 # this simply creates a grid of toggle buttons on the table
139 # to demonstrate the scrolled window.
141 data_buffer = "button %d\n" % i
142 button = gtk.ToggleButton(data_buffer)
143 table.attach(button, 0, 1 , i, i+1)
148 if __name__ == "__main__":