mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Add a top 'File' menu
It doesn't actually *do* anything, but what else is new? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									968aa28155
								
							
						
					
					
						commit
						1c010afc88
					
				
					 1 changed files with 38 additions and 1 deletions
				
			
		
							
								
								
									
										39
									
								
								main.c
									
										
									
									
									
								
							
							
						
						
									
										39
									
								
								main.c
									
										
									
									
									
								
							|  | @ -55,6 +55,35 @@ void repaint_dive(void) | ||||||
| 	gtk_widget_queue_draw(dive_profile); | 	gtk_widget_queue_draw(dive_profile); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | static void file_open(GtkWidget *w, gpointer data) | ||||||
|  | { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void file_save(GtkWidget *w, gpointer data) | ||||||
|  | { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static GtkItemFactoryEntry menu_items[] = { | ||||||
|  | 	{ "/_File",		NULL,		NULL,		0, "<Branch>" }, | ||||||
|  | 	{ "/File/_Open",	"<control>O",	file_open,	0, "<StockItem>", GTK_STOCK_OPEN }, | ||||||
|  | 	{ "/File/_Save",	"<control>S",	file_save,	0, "<StockItem>", GTK_STOCK_SAVE }, | ||||||
|  | }; | ||||||
|  | static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); | ||||||
|  | 
 | ||||||
|  | /* This is just directly from the gtk menubar tutorial. */ | ||||||
|  | static GtkWidget *get_menubar_menu(GtkWidget *window) | ||||||
|  | { | ||||||
|  | 	GtkItemFactory *item_factory; | ||||||
|  | 	GtkAccelGroup *accel_group; | ||||||
|  | 
 | ||||||
|  | 	accel_group = gtk_accel_group_new(); | ||||||
|  | 	item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group); | ||||||
|  | 
 | ||||||
|  | 	gtk_item_factory_create_items(item_factory, nmenu_items, menu_items, NULL); | ||||||
|  | 	gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); | ||||||
|  | 	return gtk_item_factory_get_widget(item_factory, "<main>"); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| int main(int argc, char **argv) | int main(int argc, char **argv) | ||||||
| { | { | ||||||
| 	int i; | 	int i; | ||||||
|  | @ -63,6 +92,8 @@ int main(int argc, char **argv) | ||||||
| 	GtkWidget *table; | 	GtkWidget *table; | ||||||
| 	GtkWidget *notebook; | 	GtkWidget *notebook; | ||||||
| 	GtkWidget *frame; | 	GtkWidget *frame; | ||||||
|  | 	GtkWidget *menubar; | ||||||
|  | 	GtkWidget *vbox; | ||||||
| 
 | 
 | ||||||
| 	parse_xml_init(); | 	parse_xml_init(); | ||||||
| 
 | 
 | ||||||
|  | @ -83,10 +114,16 @@ int main(int argc, char **argv) | ||||||
| 	win = gtk_window_new(GTK_WINDOW_TOPLEVEL); | 	win = gtk_window_new(GTK_WINDOW_TOPLEVEL); | ||||||
| 	g_signal_connect(G_OBJECT(win), "destroy",      G_CALLBACK(on_destroy), NULL); | 	g_signal_connect(G_OBJECT(win), "destroy",      G_CALLBACK(on_destroy), NULL); | ||||||
| 
 | 
 | ||||||
|  | 	vbox = gtk_vbox_new(FALSE, 1); | ||||||
|  | 	gtk_container_add(GTK_CONTAINER(win), vbox); | ||||||
|  | 
 | ||||||
|  | 	menubar = get_menubar_menu(win); | ||||||
|  | 	gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0); | ||||||
|  | 
 | ||||||
| 	/* Table for the list of dives, cairo window, and dive info */ | 	/* Table for the list of dives, cairo window, and dive info */ | ||||||
| 	table = gtk_table_new(2, 2, FALSE); | 	table = gtk_table_new(2, 2, FALSE); | ||||||
| 	gtk_container_set_border_width(GTK_CONTAINER(table), 5); | 	gtk_container_set_border_width(GTK_CONTAINER(table), 5); | ||||||
| 	gtk_container_add(GTK_CONTAINER(win), table); | 	gtk_box_pack_end(GTK_BOX(vbox), table, FALSE, TRUE, 0); | ||||||
| 	gtk_widget_show(table); | 	gtk_widget_show(table); | ||||||
| 
 | 
 | ||||||
| 	/* Create the atual divelist */ | 	/* Create the atual divelist */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue