1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# -*- coding: utf-8 -*-
# date: 17 Apr 2009
import pygtk
pygtk.require('2.0')
import gtk
import gobject
from license import version, gpl_3
class ui_pygtk:
def __init__(self, itemList):
self.itemList = itemList
# create ui
self.get_main_window(100, 100, 10, 10)
# start ui
self.get_main_window().show_all()
gtk.main()
return
#########################################################
# create gui
#########################################################
def get_main_window(self, initial_width=None, initial_height=None,
initial_pos_x=None, initial_pos_y=None):
if 'main_window' not in self.__dict__:
self.main_window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.main_window.connect('destroy', self.destroy_callback)
self.main_window.set_title('ToDo')
self.main_window.set_size_request(10, 10) # very small minimal size
self.main_window.resize(initial_width, initial_height)
self.main_window.move(initial_pos_x, initial_pos_y)
self.main_window.add(self.get_main_content_box())
return self.main_window
def get_main_content_box(self):
if 'main_content_box' not in self.__dict__:
self.main_content_box = gtk.VBox(False, 1)
self.main_content_box.pack_start(self.get_main_menu(), False, True, 0)
self.main_content_box.pack_start(self.get_todo_list(), True, True, 0)
self.main_content_box.pack_start(self.get_statusbar(), False, False, 0)
return self.main_content_box
def get_main_menu(self):
if 'mainmenu' not in self.__dict__:
quit_action = gtk.Action('Quit', '_Quit', 'Exit Todolist', gtk.STOCK_QUIT)
quit_action.connect('activate', self.destroy_callback)
settings_action = gtk.Action('Settings', '_Settings', 'Settings', gtk.STOCK_PREFERENCES)
settings_action.set_property('sensitive', False)
#settings_action.connect('activate', self.show_settings)
#delete_action = gtk.Action('Delete', '_Delete', 'Delete a post',
# gtk.STOCK_DELETE)
#delete_action.connect('activate', self.delete_tweet)
about_action = gtk.Action('About', '_About', 'About Todolist', gtk.STOCK_ABOUT)
about_action.connect('activate', self.about_click_callback)
file_action = gtk.Action('File', '_File', 'File', None)
edit_action = gtk.Action('Edit', '_Edit', 'Edit', None)
help_action = gtk.Action('Help', '_Help', 'Help', None)
self.action_group = gtk.ActionGroup('MainMenu')
self.action_group.add_action_with_accel(quit_action, None) # None = default
self.action_group.add_action(settings_action)
self.action_group.add_action(file_action)
self.action_group.add_action(edit_action)
self.action_group.add_action(help_action)
self.action_group.add_action(about_action)
# definition of the UI
uimanager = gtk.UIManager()
uimanager.insert_action_group(self.action_group, 0)
uimanager.add_ui_from_string('''
<ui>
<menubar name="MainMenu">
<menu action="File">
<menuitem action="Quit" />
</menu>
<menu action="Edit">
<separator />
<menuitem action="Settings" />
</menu>
<menu action="Help">
<menuitem action="About" />
</menu>
</menubar>
</ui>
''')
self.main_window.add_accel_group(uimanager.get_accel_group())
self.main_menu = uimanager.get_widget('/MainMenu')
return self.main_menu
def get_todo_list(self):
if 'todo_list' not in self.__dict__:
self.todo_list = gtk.ScrolledWindow()
self.todo_list.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
return self.todo_list
def get_statusbar(self):
if 'statusbar' not in self.__dict__:
self.statusbar = gtk.Statusbar()
self.statusbar.show()
return self.statusbar
#########################################################
# callbacks
#########################################################
def destroy_callback(self, widget, data=None):
gtk.main_quit()
return
def about_click_callback(self, widget, data=None):
"""Show the about dialog."""
about_window = gtk.AboutDialog()
about_window.set_name('Todolist')
about_window.set_version(version)
about_window.set_copyright('2009 Alexander Sulfrian')
about_window.set_license(gpl_3)
about_window.set_website('http://git.animux.de/todolist.git')
about_window.run()
about_window.hide()
return
|