creating one window with toolbar presentation
[findit] / src / core.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4
5 import gtk
6
7 class Core_Control(object):
8     def __init__(self):
9         from config import Config_Control
10         self.cfg = Config_Control()
11
12         core_present = Core_Presentation(self.cfg.get('window_width'), self.cfg.get('window_height'))
13         
14         from pkgsearch import Search_Pkg_Control
15         searchpkg = Search_Pkg_Control(self.cfg, core_present.show_work_widget)
16         
17         core_present.run(searchpkg.get_ui(), searchpkg.get_ui(), searchpkg.get_ui())
18
19 class Core_Abstraction(object):
20     pass
21
22
23 class Core_Presentation(gtk.Window):
24     """Main window class."""
25     def __init__(self, win_width, win_height):
26         gtk.Window.__init__(self)
27         self.set_default_size(win_width, win_height)
28         self.set_border_width(4)
29         self.connect('delete_event', gtk.main_quit)
30         self.set_wmclass('GtkWindow', 'FindIT')
31         
32         hbox = gtk.HBox(False, 4)
33         self.srch_butt1 = gtk.Button('file')
34         self.srch_butt2 = gtk.Button('pkg')
35         hbox.pack_start(self.srch_butt1, False, False, 2)
36         hbox.pack_start(self.srch_butt2, False, False, 2)
37
38         self.widget_vbox = gtk.VBox(False, 0)
39
40         main_vbox = gtk.VBox(False, 4)
41         main_vbox.pack_start(hbox, False, False, 10)
42         main_vbox.pack_start(self.widget_vbox, False, False, 2)
43         self.add(main_vbox)
44
45     def run(self, init_srch, srch1, srch2):
46         self.srch_butt1.connect('released', self.show_work_widget, srch1)
47         self.srch_butt2.connect('released', self.show_work_widget, srch2)
48         self.widget_vbox.add(init_srch)
49         self.show_all()
50         gtk.main()
51     
52     def show_work_widget(self, widget, new_widget):
53         if self.widget_vbox.get_children()[0]:
54             self.widget_vbox.remove(self.widget_vbox.get_children()[0])
55         self.widget_vbox.add(new_widget)
56         self.show_all()
57         print 'redraw'
58
59 if __name__ == '__main__':
60     Core_Control()