Add a main toolbar.
So far it has no special powers. This should change in the future.
This commit is contained in:
		
							parent
							
								
									fe7c270bdd
								
							
						
					
					
						commit
						afacad693d
					
				| @ -24,5 +24,11 @@ | |||||||
| 			<menuitem action="About" /> | 			<menuitem action="About" /> | ||||||
| 		</menu> | 		</menu> | ||||||
| 	</menubar> | 	</menubar> | ||||||
|  | 	<toolbar action="MainToolbar"> | ||||||
|  | 		<toolitem action="New" /> | ||||||
|  | 		<toolitem action="Open" /> | ||||||
|  | 		<toolitem action="Save" /> | ||||||
|  | 		<separator /> | ||||||
|  | 	</toolbar> | ||||||
| </ui> | </ui> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -95,6 +95,7 @@ struct _LdWindowMainPrivate | |||||||
| 	GtkWidget *hbox; | 	GtkWidget *hbox; | ||||||
| 	GtkWidget *menu; | 	GtkWidget *menu; | ||||||
| 	GtkWidget *toolbar; | 	GtkWidget *toolbar; | ||||||
|  | 	GtkWidget *library_toolbar; | ||||||
| 
 | 
 | ||||||
| 	LdLibrary *library; | 	LdLibrary *library; | ||||||
| 
 | 
 | ||||||
| @ -110,14 +111,14 @@ struct _LdWindowMainPrivate | |||||||
| /* Define the type. */ | /* Define the type. */ | ||||||
| G_DEFINE_TYPE (LdWindowMain, ld_window_main, GTK_TYPE_WINDOW); | G_DEFINE_TYPE (LdWindowMain, ld_window_main, GTK_TYPE_WINDOW); | ||||||
| 
 | 
 | ||||||
| #define TOOLBAR_ICON_WIDTH 32 | #define LIBRARY_TOOLBAR_ICON_WIDTH 32 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* ===== Local functions =================================================== */ | /* ===== Local functions =================================================== */ | ||||||
| 
 | 
 | ||||||
| static void ld_window_main_finalize (GObject *gobject); | static void ld_window_main_finalize (GObject *gobject); | ||||||
| 
 | 
 | ||||||
| static void load_toolbar (LdWindowMain *self); | static void load_library_toolbar (LdWindowMain *self); | ||||||
| static void load_category_cb (gpointer data, gpointer user_data); | static void load_category_cb (gpointer data, gpointer user_data); | ||||||
| 
 | 
 | ||||||
| static void redraw_symbol_menu (LdWindowMain *self); | static void redraw_symbol_menu (LdWindowMain *self); | ||||||
| @ -248,26 +249,32 @@ ld_window_main_init (LdWindowMain *self) | |||||||
| 	priv->menu = gtk_ui_manager_get_widget (priv->ui_manager, "/MenuBar"); | 	priv->menu = gtk_ui_manager_get_widget (priv->ui_manager, "/MenuBar"); | ||||||
| 	gtk_box_pack_start (GTK_BOX (priv->vbox), priv->menu, FALSE, FALSE, 0); | 	gtk_box_pack_start (GTK_BOX (priv->vbox), priv->menu, FALSE, FALSE, 0); | ||||||
| 
 | 
 | ||||||
|  | 	/* Add the main toolbar. */ | ||||||
|  | 	priv->toolbar = gtk_ui_manager_get_widget (priv->ui_manager, | ||||||
|  | 		"/MainToolbar"); | ||||||
|  | 	gtk_box_pack_start (GTK_BOX (priv->vbox), priv->toolbar, FALSE, FALSE, 0); | ||||||
|  | 
 | ||||||
| 	priv->hbox = gtk_hbox_new(FALSE, 0); | 	priv->hbox = gtk_hbox_new(FALSE, 0); | ||||||
| 	gtk_box_pack_start (GTK_BOX (priv->vbox), priv->hbox, TRUE, TRUE, 0); | 	gtk_box_pack_start (GTK_BOX (priv->vbox), priv->hbox, TRUE, TRUE, 0); | ||||||
| 
 | 
 | ||||||
| 	/* Add the symbol toolbar. */ | 	/* Add the library toolbar. */ | ||||||
| 	priv->toolbar = gtk_toolbar_new (); | 	priv->library_toolbar = gtk_toolbar_new (); | ||||||
| 	/* NOTE: For GTK 2.16+, s/toolbar/orientable/ */ | 	/* NOTE: For GTK 2.16+, s/toolbar/orientable/ */ | ||||||
| 	gtk_toolbar_set_orientation | 	gtk_toolbar_set_orientation | ||||||
| 		(GTK_TOOLBAR (priv->toolbar), GTK_ORIENTATION_VERTICAL); | 		(GTK_TOOLBAR (priv->library_toolbar), GTK_ORIENTATION_VERTICAL); | ||||||
| 	gtk_toolbar_set_icon_size | 	gtk_toolbar_set_icon_size | ||||||
| 		(GTK_TOOLBAR (priv->toolbar), GTK_ICON_SIZE_LARGE_TOOLBAR); | 		(GTK_TOOLBAR (priv->library_toolbar), GTK_ICON_SIZE_LARGE_TOOLBAR); | ||||||
| 	gtk_toolbar_set_style | 	gtk_toolbar_set_style | ||||||
| 		(GTK_TOOLBAR (priv->toolbar), GTK_TOOLBAR_ICONS); | 		(GTK_TOOLBAR (priv->library_toolbar), GTK_TOOLBAR_ICONS); | ||||||
| 
 | 
 | ||||||
| 	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->toolbar, FALSE, FALSE, 0); | 	gtk_box_pack_start (GTK_BOX (priv->hbox), priv->library_toolbar, | ||||||
|  | 		FALSE, FALSE, 0); | ||||||
| 
 | 
 | ||||||
| 	/* Symbol library. */ | 	/* Symbol library. */ | ||||||
| 	priv->library = ld_library_new (); | 	priv->library = ld_library_new (); | ||||||
| 	ld_library_load (priv->library, PROJECT_SHARE_DIR "library"); | 	ld_library_load (priv->library, PROJECT_SHARE_DIR "library"); | ||||||
| 
 | 
 | ||||||
| 	load_toolbar (self); | 	load_library_toolbar (self); | ||||||
| 
 | 
 | ||||||
| 	/* TODO in the future: GtkHPaned */ | 	/* TODO in the future: GtkHPaned */ | ||||||
| 
 | 
 | ||||||
| @ -340,17 +347,17 @@ ld_window_main_finalize (GObject *gobject) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * load_toolbar: |  * load_library_toolbar: | ||||||
|  * |  * | ||||||
|  * Load symbols from the library into the toolbar. |  * Load symbols from the library into the library toolbar. | ||||||
|  */ |  */ | ||||||
| static void | static void | ||||||
| load_toolbar (LdWindowMain *self) | load_library_toolbar (LdWindowMain *self) | ||||||
| { | { | ||||||
| 	GSList *categories; | 	GSList *categories; | ||||||
| 
 | 
 | ||||||
| 	/* Clear the toolbar first, if there was already something in it. */ | 	/* Clear the toolbar first, if there was already something in it. */ | ||||||
| 	gtk_container_foreach (GTK_CONTAINER (self->priv->toolbar), | 	gtk_container_foreach (GTK_CONTAINER (self->priv->library_toolbar), | ||||||
| 		(GtkCallback) gtk_widget_destroy, NULL); | 		(GtkCallback) gtk_widget_destroy, NULL); | ||||||
| 
 | 
 | ||||||
| 	categories = (GSList *) ld_library_get_children (self->priv->library); | 	categories = (GSList *) ld_library_get_children (self->priv->library); | ||||||
| @ -360,7 +367,7 @@ load_toolbar (LdWindowMain *self) | |||||||
| /*
 | /*
 | ||||||
|  * load_category_cb: |  * load_category_cb: | ||||||
|  * |  * | ||||||
|  * A foreach callback for adding categories into the toolbar. |  * A foreach callback for adding categories into the library toolbar. | ||||||
|  */ |  */ | ||||||
| static void | static void | ||||||
| load_category_cb (gpointer data, gpointer user_data) | load_category_cb (gpointer data, gpointer user_data) | ||||||
| @ -381,8 +388,8 @@ load_category_cb (gpointer data, gpointer user_data) | |||||||
| 
 | 
 | ||||||
| 	human_name = ld_symbol_category_get_human_name (cat); | 	human_name = ld_symbol_category_get_human_name (cat); | ||||||
| 
 | 
 | ||||||
| 	pbuf = gdk_pixbuf_new_from_file_at_size | 	pbuf = gdk_pixbuf_new_from_file_at_size	(ld_symbol_category_get_image_path | ||||||
| 		(ld_symbol_category_get_image_path (cat), TOOLBAR_ICON_WIDTH, -1, NULL); | 		(cat), LIBRARY_TOOLBAR_ICON_WIDTH, -1, NULL); | ||||||
| 	g_return_if_fail (pbuf != NULL); | 	g_return_if_fail (pbuf != NULL); | ||||||
| 
 | 
 | ||||||
| 	img = gtk_image_new_from_pixbuf (pbuf); | 	img = gtk_image_new_from_pixbuf (pbuf); | ||||||
| @ -402,7 +409,7 @@ load_category_cb (gpointer data, gpointer user_data) | |||||||
| 	g_signal_connect (button, "toggled", G_CALLBACK (on_category_toggle), self); | 	g_signal_connect (button, "toggled", G_CALLBACK (on_category_toggle), self); | ||||||
| 
 | 
 | ||||||
| 	gtk_tool_item_set_tooltip_text (item, human_name); | 	gtk_tool_item_set_tooltip_text (item, human_name); | ||||||
| 	gtk_toolbar_insert (GTK_TOOLBAR (self->priv->toolbar), item, 0); | 	gtk_toolbar_insert (GTK_TOOLBAR (self->priv->library_toolbar), item, 0); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user