testing interface
[meabook] / list.py
1 #!/usr/bin/python
2 import pygtk
3 pygtk.require('2.0')
4 import gtk
5
6 class HelloWorld:
7
8     def hello(self, widget, data=None):
9         print "Hello World"
10
11     def delete_event(self, widget, event, data=None):
12         # If you return FALSE in the "delete_event" signal handler,
13         # GTK will emit the "destroy" signal. Returning TRUE means
14         # you don't want the window to be destroyed.
15         # This is useful for popping up 'are you sure you want to quit?'
16         # type dialogs.
17         print "delete event occurred"
18
19         # Change FALSE to TRUE and the main window will not be destroyed
20         # with a "delete_event".
21         return False
22
23     def destroy(self, widget, data=None):
24         print "destroy signal occurred"
25         gtk.main_quit()
26
27     def __init__(self):
28
29         gtk.rc_parse_string("style 'scroll' {\n"
30                             "   GtkRange::slider-width = 40\n"
31                             "}\n"
32                             "class 'GtkRange' style 'scroll'")        
33
34         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
35         
36         self.window.set_size_request(300, 200)
37         
38     
39         # When the window is given the "delete_event" signal (this is given
40         # by the window manager, usually by the "close" option, or on the
41         # titlebar), we ask it to call the delete_event () function
42         # as defined above. The data passed to the callback
43         # function is NULL and is ignored in the callback function.
44         self.window.connect("delete_event", self.delete_event)
45     
46         # Here we connect the "destroy" event to a signal handler.  
47         # This event occurs when we call gtk_widget_destroy() on the window,
48         # or if we return FALSE in the "delete_event" callback.
49         self.window.connect("destroy", self.destroy)
50     
51         # Sets the border width of the window.
52         self.window.set_border_width(10)
53
54         vbox = gtk.VBox(False, 8)
55
56         sw = gtk.ScrolledWindow()
57         sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
58         sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
59         #a = gtk.Adjustment(0, 100, 100, 0, 10, 10)
60         #sw.set_vadjustment()
61
62
63         vbox.pack_start(sw, True, True, 0)
64         
65         data = [('fio fdkfdskajf jdkflasjkla', 'doldfsagfdas dlaskj', '212345'),
66             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
67             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
68             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
69             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
70             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
71             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
72             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
73             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
74             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
75             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
76             ('fdsafdsa dfasfasf dfasfdsa', 'fdsafaf fdafdas', '345678'),
77             ('fdas dafs fdsfasd ', 'fdasf dafa', '12435678')]
78         store = gtk.ListStore(str, str, str)
79         for d in data:
80             store.append([d[0], d[1], d[2]])
81
82         tree = gtk.TreeView(store)
83         tree.set_rules_hint(True)
84
85         t1 = gtk.CellRendererText()
86         column = gtk.TreeViewColumn("Name", t1, text=0)
87         column.set_sort_column_id(0)
88         tree.append_column(column)
89
90         
91         t1 = gtk.CellRendererText()
92         column = gtk.TreeViewColumn("State", t1, text=1)
93         column.set_sort_column_id(1)
94         tree.append_column(column)
95
96
97         t1 = gtk.CellRendererText()
98         column = gtk.TreeViewColumn("Phone", t1, text=2)
99         column.set_sort_column_id(2)
100         tree.append_column(column)
101
102         sw.add(tree)
103
104         self.window.add(vbox)
105         self.window.show_all()
106     
107     
108         # and the window
109         self.window.show()
110
111     def main(self):
112         # All PyGTK applications must have a gtk.main(). Control ends here
113         # and waits for an event to occur (like a key press or mouse event).
114         gtk.main()
115
116 if __name__ == "__main__":
117     hello = HelloWorld()
118     hello.main()
119