| 1 | import gtk |
|---|
| 2 | |
|---|
| 3 | try: |
|---|
| 4 | from paned import * |
|---|
| 5 | except ImportError: |
|---|
| 6 | print "moo not installed. Using fallback UmitPaned .." |
|---|
| 7 | from fallbackpaned import * |
|---|
| 8 | |
|---|
| 9 | from Tabs.VteTab import VteTab |
|---|
| 10 | from Tabs.MainTab import MainTab |
|---|
| 11 | from Tabs.ConsoleTab import ConsoleTab |
|---|
| 12 | from Tabs.PropertyTab import PropertyTab |
|---|
| 13 | from Tabs.ProtocolSelectorTab import ProtocolSelectorTab |
|---|
| 14 | |
|---|
| 15 | from umitCore.I18N import _ |
|---|
| 16 | from umitCore.Paths import Path |
|---|
| 17 | |
|---|
| 18 | class 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 | |
|---|
| 105 | if __name__ == "__main__": |
|---|
| 106 | app = MainWindow() |
|---|
| 107 | app.run() |
|---|