2 Copyright 2007 Free Software Foundation, Inc.
3 This file is part of GNU Radio
5 GNU Radio Companion is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
10 GNU Radio Companion is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25 ##The list of actions for the toolbar.
27 Actions.FLOW_GRAPH_NEW,
28 Actions.FLOW_GRAPH_OPEN,
29 Actions.FLOW_GRAPH_SAVE,
30 Actions.FLOW_GRAPH_CLOSE,
32 Actions.FLOW_GRAPH_SCREEN_CAPTURE,
37 Actions.ELEMENT_DELETE,
39 Actions.FLOW_GRAPH_UNDO,
40 Actions.FLOW_GRAPH_REDO,
42 Actions.FLOW_GRAPH_GEN,
43 Actions.FLOW_GRAPH_EXEC,
44 Actions.FLOW_GRAPH_KILL,
46 Actions.BLOCK_ROTATE_LEFT,
47 Actions.BLOCK_ROTATE_RIGHT,
50 Actions.BLOCK_DISABLE,
53 ##The list of actions and categories for the menu bar.
55 (gtk.Action('File', '_File', None, None), [
56 Actions.FLOW_GRAPH_NEW,
57 Actions.FLOW_GRAPH_OPEN,
59 Actions.FLOW_GRAPH_SAVE,
60 Actions.FLOW_GRAPH_SAVE_AS,
62 Actions.FLOW_GRAPH_SCREEN_CAPTURE,
64 Actions.FLOW_GRAPH_CLOSE,
65 Actions.APPLICATION_QUIT,
67 (gtk.Action('Edit', '_Edit', None, None), [
68 Actions.FLOW_GRAPH_UNDO,
69 Actions.FLOW_GRAPH_REDO,
74 Actions.ELEMENT_DELETE,
76 Actions.BLOCK_ROTATE_LEFT,
77 Actions.BLOCK_ROTATE_RIGHT,
80 Actions.BLOCK_DISABLE,
82 Actions.BLOCK_PARAM_MODIFY,
84 (gtk.Action('Build', '_Build', None, None), [
85 Actions.FLOW_GRAPH_GEN,
86 Actions.FLOW_GRAPH_EXEC,
87 Actions.FLOW_GRAPH_KILL,
89 (gtk.Action('Options', '_Options', None, None), [
90 Actions.PREFS_WINDOW_DISPLAY,
92 (gtk.Action('Help', '_Help', None, None), [
93 Actions.ABOUT_WINDOW_DISPLAY,
94 Actions.HOTKEYS_WINDOW_DISPLAY,
98 class Toolbar(gtk.Toolbar):
99 """The gtk toolbar with actions added from the toolbar list."""
103 Parse the list of action names in the toolbar list.
104 Look up the action for each name in the action list and add it to the toolbar.
106 gtk.Toolbar.__init__(self)
107 self.set_style(gtk.TOOLBAR_ICONS)
108 for action_name in TOOLBAR_LIST:
109 if action_name: #add a tool item
110 action = Actions.get_action_from_name(action_name)
111 self.add(action.create_tool_item())
112 #this reset of the tooltip property is required (after creating the tool item) for the tooltip to show
113 action.set_property('tooltip', action.get_property('tooltip'))
114 else: self.add(gtk.SeparatorToolItem())
116 class MenuBar(gtk.MenuBar):
117 """The gtk menu bar with actions added from the menu bar list."""
121 Parse the list of submenus from the menubar list.
122 For each submenu, get a list of action names.
123 Look up the action for each name in the action list and add it to the submenu.
124 Add the submenu to the menu bar.
126 gtk.MenuBar.__init__(self)
127 for main_action,action_names in MENU_BAR_LIST:
128 #create the main menu item
129 main_menu_item = main_action.create_menu_item()
130 self.append(main_menu_item)
132 main_menu = gtk.Menu()
133 main_menu_item.set_submenu(main_menu)
134 for action_name in action_names:
135 if action_name: #append a menu item
136 action = Actions.get_action_from_name(action_name)
137 main_menu.append(action.create_menu_item())
138 else: main_menu.append(gtk.SeparatorMenuItem())
139 main_menu.show_all() #this show all is required for the separators to show