root/branch/PacketManipulator/MainWindow.py @ 3186

Revision 3186, 3.0 kB (checked in by nopper, 5 years ago)

Blah :\

Line 
1 import gtk
2
3try:
4    from paned import *
5except ImportError:
6    print "moo not installed. Using fallback UmitPaned .."
7    from fallbackpaned import *
8
9from Tabs.VteTab import VteTab
10from Tabs.MainTab import MainTab
11from Tabs.ConsoleTab import ConsoleTab
12from Tabs.PropertyTab import PropertyTab
13from Tabs.ProtocolSelectorTab import ProtocolSelectorTab
14
15from umitCore.I18N import _
16from umitCore.Paths import Path
17
18class MainWindow(gtk.Window):
19    def __init__(self):
20        gtk.Window.__init__(self)
21
22        self.set_title("Packet Manipulator")
23        self.set_size_request(600, 400)
24
25        self.__create_widgets()
26        self.__pack_widgets()
27        self.__connect_signals()
28
29        self.show_all()
30
31    def __create_widgets(self):
32        "Create widgets"
33
34        self.main_actions = [
35            ('File', None, _('_File'), None),
36            ('Import', gtk.STOCK_CONVERT, _('_Import'), None),
37        ]
38
39        self.default_ui = """<menubar>
40            <menu action='File'>
41                <menuitem action='Import'/>
42            </menu>
43            </menubar>
44
45            <toolbar>
46            <toolitem action='Import'/>
47            </toolbar>
48            """
49
50        self.ui_manager = gtk.UIManager()
51
52        self.main_accel_group = gtk.AccelGroup()
53        self.main_action_group = gtk.ActionGroup('MainActionGroup')
54        self.main_action_group.add_actions(self.main_actions)
55       
56        self.add_accel_group(self.main_accel_group)
57
58        for action in self.main_action_group.list_actions():
59            action.set_accel_group(self.main_accel_group)
60            action.connect_accelerator()
61
62        self.ui_manager.insert_action_group(self.main_action_group, 0)
63        self.ui_manager.add_ui_from_string(self.default_ui)
64
65        # Central widgets
66        self.main_paned = UmitPaned()
67        self.main_tab = MainTab()
68
69        # Tabs
70        self.vte_tab = VteTab()
71        self.protocols_tab = ProtocolSelectorTab()
72        self.property_tab = PropertyTab()
73        self.console_tab = ConsoleTab()
74       
75        self.vbox = gtk.VBox(False, 2)
76
77    def __pack_widgets(self):
78        "Pack widgets"
79
80        self.menubar = self.ui_manager.get_widget("/menubar")
81        self.vbox.pack_start(self.menubar, False, False, 0)
82
83        self.toolbar = self.ui_manager.get_widget("/toolbar")
84        self.vbox.pack_start(self.toolbar, False, False, 0)
85       
86        self.vbox.pack_start(self.main_paned)
87
88        self.main_paned.add_view(PANE_CENTER, self.main_tab, False)
89
90        self.main_paned.add_view(PANE_LEFT, self.protocols_tab, False)
91        self.main_paned.add_view(PANE_RIGHT, self.property_tab, False)
92
93        self.main_paned.add_view(PANE_BOTTOM, self.vte_tab, False)
94        self.main_paned.add_view(PANE_BOTTOM, self.console_tab, False)
95
96        self.add(self.vbox)
97
98    def __connect_signals(self):
99        "Connect signals"
100        self.connect('delete-event', lambda *w: gtk.main_quit())
101   
102    def run(self):
103        gtk.main()
104
105if __name__ == "__main__":
106    app = MainWindow()
107    app.run()
Note: See TracBrowser for help on using the browser.