[anjuta] symbol-db: Save space by moving the symbol-db tabs into the dock-item-grip



commit b856e636878e9c616d7a45c3b9d3c6c2200b106d
Author: Johannes Schmid <jhs gnome org>
Date:   Tue Jun 9 11:29:59 2009 +0200

    symbol-db: Save space by moving the symbol-db tabs into the dock-item-grip
---
 plugins/symbol-db/plugin.c |   92 +++++++++++++++++++++++++++++++++++++++++--
 plugins/symbol-db/plugin.h |    8 +++-
 2 files changed, 94 insertions(+), 6 deletions(-)

diff --git a/plugins/symbol-db/plugin.c b/plugins/symbol-db/plugin.c
index 4a42a25..d90ac00 100644
--- a/plugins/symbol-db/plugin.c
+++ b/plugins/symbol-db/plugin.c
@@ -2092,12 +2092,53 @@ on_scan_end_manager (SymbolDBEngine *dbe, gint process_id,
 	}	
 }
 
+static void
+on_notebook_button_toggled (GtkToggleButton *button,
+                            SymbolDBPlugin *sdb_plugin)
+{
+	int page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "__page"));
+	gtk_notebook_set_page (GTK_NOTEBOOK(sdb_plugin->dbv_notebook), page);
+}
+
+static void
+on_notebook_switch_page (GtkNotebook* notebook,
+                         GtkNotebookPage* page,
+                         guint page_num,
+                         SymbolDBPlugin *sdb_plugin)
+{
+	g_signal_handlers_block_by_func (sdb_plugin->local_button,
+	                                on_notebook_button_toggled,
+	                                sdb_plugin);
+	g_signal_handlers_block_by_func (sdb_plugin->global_button,
+	                                on_notebook_button_toggled,
+	                                sdb_plugin);
+	g_signal_handlers_block_by_func (sdb_plugin->search_button,
+	                                on_notebook_button_toggled,
+	                                sdb_plugin);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(sdb_plugin->local_button),
+	                              page_num == 0);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(sdb_plugin->global_button),
+	                              page_num == 1);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(sdb_plugin->search_button),
+	                              page_num == 2);
+	g_signal_handlers_unblock_by_func (sdb_plugin->local_button,
+	                                on_notebook_button_toggled,
+	                                sdb_plugin);
+	g_signal_handlers_unblock_by_func (sdb_plugin->global_button,
+	                                on_notebook_button_toggled,
+	                                sdb_plugin);
+	g_signal_handlers_unblock_by_func (sdb_plugin->search_button,
+	                                on_notebook_button_toggled,
+	                                sdb_plugin);
+}
+
 static gboolean
 symbol_db_activate (AnjutaPlugin *plugin)
 {
 	SymbolDBPlugin *sdb_plugin;
 	gchar *anjuta_cache_path;
 	gchar *ctags_path;
+	GtkWidget *label;
 	
 	DEBUG_PRINT ("SymbolDBPlugin: Activating SymbolDBPlugin plugin ...");
 	
@@ -2198,6 +2239,46 @@ symbol_db_activate (AnjutaPlugin *plugin)
 	/* Create widgets */
 	sdb_plugin->dbv_main = gtk_vbox_new(FALSE, 5);
 	sdb_plugin->dbv_notebook = gtk_notebook_new();
+	gtk_notebook_set_show_tabs (GTK_NOTEBOOK (sdb_plugin->dbv_notebook), FALSE);
+	sdb_plugin->dbv_hbox = gtk_hbox_new (FALSE, 1);
+
+	sdb_plugin->local_button = gtk_toggle_button_new_with_label (_("Local"));
+	sdb_plugin->global_button = gtk_toggle_button_new_with_label (_("Global"));
+	sdb_plugin->search_button = gtk_toggle_button_new_with_label (_("Search"));
+
+	g_object_set_data (G_OBJECT(sdb_plugin->local_button), "__page", GINT_TO_POINTER(0));
+	g_object_set_data (G_OBJECT(sdb_plugin->global_button), "__page", GINT_TO_POINTER(1));
+	g_object_set_data (G_OBJECT(sdb_plugin->search_button), "__page", GINT_TO_POINTER(2));
+
+	g_signal_connect (sdb_plugin->local_button, "toggled", G_CALLBACK(on_notebook_button_toggled),
+	                  sdb_plugin);
+	g_signal_connect (sdb_plugin->global_button, "toggled", G_CALLBACK(on_notebook_button_toggled),
+	                  sdb_plugin);
+	g_signal_connect (sdb_plugin->search_button, "toggled", G_CALLBACK(on_notebook_button_toggled),
+	                  sdb_plugin);
+	g_signal_connect (sdb_plugin->dbv_notebook,
+	                  "switch-page",
+	                  G_CALLBACK(on_notebook_switch_page),
+	                  sdb_plugin);
+
+	label = gtk_label_new (_("Symbols"));
+	gtk_label_set_ellipsize (GTK_LABEL (label),
+	                         PANGO_ELLIPSIZE_END);
+	gtk_box_pack_start (GTK_BOX(sdb_plugin->dbv_hbox), 
+	                    gtk_image_new_from_stock ("symbol-db-plugin-icon",
+	                                              GTK_ICON_SIZE_MENU),
+	                    FALSE, FALSE, 0);	
+	gtk_box_pack_start (GTK_BOX(sdb_plugin->dbv_hbox), label,
+	                    TRUE, TRUE, 0);	
+	gtk_box_pack_start (GTK_BOX(sdb_plugin->dbv_hbox), sdb_plugin->local_button,
+	                    FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX(sdb_plugin->dbv_hbox), sdb_plugin->global_button,
+	                    FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX(sdb_plugin->dbv_hbox), sdb_plugin->search_button,
+	                    FALSE, FALSE, 0);
+
+	gtk_widget_show_all (sdb_plugin->dbv_hbox);
+	
 	sdb_plugin->progress_bar_project = gtk_progress_bar_new();
 	gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR(sdb_plugin->progress_bar_project),
 									PANGO_ELLIPSIZE_MIDDLE);
@@ -2207,7 +2288,7 @@ symbol_db_activate (AnjutaPlugin *plugin)
 	gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR(sdb_plugin->progress_bar_system),
 									PANGO_ELLIPSIZE_MIDDLE);
 	g_object_ref (sdb_plugin->progress_bar_system);
-		
+	
 	gtk_box_pack_start (GTK_BOX (sdb_plugin->dbv_main), sdb_plugin->dbv_notebook,
 						TRUE, TRUE, 0);
 	gtk_box_pack_start (GTK_BOX (sdb_plugin->dbv_main), sdb_plugin->progress_bar_project,
@@ -2307,10 +2388,11 @@ symbol_db_activate (AnjutaPlugin *plugin)
 								 value_added_current_editor,
 								 value_removed_current_editor, NULL);
 	/* Added widgets */
-	anjuta_shell_add_widget (plugin->shell, sdb_plugin->dbv_main,
-							 "AnjutaSymbolDB", _("Symbols"),
-							 "symbol-db-plugin-icon",
-							 ANJUTA_SHELL_PLACEMENT_LEFT, NULL);	
+	anjuta_shell_add_widget_custom (plugin->shell, sdb_plugin->dbv_main,
+	                                "AnjutaSymbolDB", _("Symbols"),
+	                                "symbol-db-plugin-icon",
+	                                sdb_plugin->dbv_hbox,
+	                                ANJUTA_SHELL_PLACEMENT_LEFT, NULL);	
 
 	/* Add action group */
 	sdb_plugin->popup_action_group = 
diff --git a/plugins/symbol-db/plugin.h b/plugins/symbol-db/plugin.h
index e8333e7..3784315 100644
--- a/plugins/symbol-db/plugin.h
+++ b/plugins/symbol-db/plugin.h
@@ -88,9 +88,15 @@ struct _SymbolDBPlugin {
 	SymbolDBPrefs *sdbp;
 	
 	GtkWidget *dbv_main;					/* symbol main window [gtk_box] */
-	GtkWidget *dbv_notebook;          		/* main notebook */	
+	GtkWidget *dbv_notebook;          		/* main notebook */
+	GtkWidget *dbv_hbox;					/* hbox for notebook buttons */
 	GtkWidget *scrolled_global; 			/* symbol view scrolledwindow for global
 										   	symbols */
+
+	GtkWidget *local_button;
+	GtkWidget *global_button;
+	GtkWidget *search_button;
+	
 	GtkWidget *scrolled_locals;
 	GtkWidget *scrolled_search;
 	GtkWidget *progress_bar_project;		/* symbol db progress bar - project */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]