gui.c |
11 | 11 | */ |
12 | 12 | |
13 | 13 | |
| 14 | #include <stdlib.h> |
14 | 15 | #include <locale.h> |
15 | 16 | #include <gtk/gtk.h> |
16 | 17 | |
... | ... | |
132 | 133 | }; |
133 | 134 | |
134 | 135 | |
| 136 | static GtkItemFactory *menu_factory; |
| 137 | |
| 138 | |
135 | 139 | static void make_menu_bar(GtkWidget *hbox) |
136 | 140 | { |
137 | | GtkItemFactory *factory; |
138 | 141 | GtkWidget *bar; |
139 | 142 | |
140 | | factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<FpedMenu>", NULL); |
141 | | gtk_item_factory_create_items(factory, |
| 143 | menu_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<FpedMenu>", |
| 144 | NULL); |
| 145 | gtk_item_factory_create_items(menu_factory, |
142 | 146 | sizeof(menu_entries)/sizeof(*menu_entries), menu_entries, NULL); |
143 | 147 | |
144 | | bar = gtk_item_factory_get_widget(factory, "<FpedMenu>"); |
| 148 | bar = gtk_item_factory_get_widget(menu_factory, "<FpedMenu>"); |
145 | 149 | gtk_box_pack_start(GTK_BOX(hbox), bar, TRUE, TRUE, 0); |
146 | 150 | |
147 | 151 | gtk_widget_set_sensitive( |
148 | | gtk_item_factory_get_item(factory, "/File/Save"), !no_save); |
| 152 | gtk_item_factory_get_item(menu_factory, "/File/Save"), !no_save); |
149 | 153 | gtk_widget_set_sensitive( |
150 | | gtk_item_factory_get_item(factory, "/File/Reload"), |
| 154 | gtk_item_factory_get_item(menu_factory, "/File/Reload"), |
151 | 155 | no_save && !!save_file_name); |
152 | 156 | } |
153 | 157 | |
154 | 158 | |
| 159 | void update_menu_bar(void) |
| 160 | { |
| 161 | const char *s; |
| 162 | |
| 163 | switch (sidebar) { |
| 164 | case sidebar_var: |
| 165 | s = "/View/Show variables"; |
| 166 | break; |
| 167 | case sidebar_code: |
| 168 | s = "/View/Show code"; |
| 169 | break; |
| 170 | case sidebar_pkg: |
| 171 | s = "/View/Show packages"; |
| 172 | break; |
| 173 | default: |
| 174 | abort(); |
| 175 | } |
| 176 | gtk_check_menu_item_set_active( |
| 177 | GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(menu_factory, s)), |
| 178 | TRUE); |
| 179 | } |
| 180 | |
| 181 | |
155 | 182 | static gboolean toggle_all(GtkWidget *widget, GdkEventButton *event, |
156 | 183 | gpointer data) |
157 | 184 | { |