SF.net SVN: geany:[3242] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Tue Nov 18 12:58:54 UTC 2008


Revision: 3242
          http://geany.svn.sourceforge.net/geany/?rev=3242&view=rev
Author:   ntrel
Date:     2008-11-18 12:58:53 +0000 (Tue, 18 Nov 2008)

Log Message:
-----------
Refactor with sidebar_add_common_menu_items().

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/treeviews.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-11-16 17:55:23 UTC (rev 3241)
+++ trunk/ChangeLog	2008-11-18 12:58:53 UTC (rev 3242)
@@ -1,3 +1,9 @@
+2008-11-18  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/treeviews.c:
+   Refactor with sidebar_add_common_menu_items().
+
+
 2008-11-16  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * Makefile.am:

Modified: trunk/src/treeviews.c
===================================================================
--- trunk/src/treeviews.c	2008-11-16 17:55:23 UTC (rev 3241)
+++ trunk/src/treeviews.c	2008-11-18 12:58:53 UTC (rev 3242)
@@ -59,18 +59,14 @@
 	OPENFILES_ACTION_HIDE_ALL,
 	SYMBOL_ACTION_SORT_BY_NAME,
 	SYMBOL_ACTION_SORT_BY_APPEARANCE,
-	SYMBOL_ACTION_HIDE,
-	SYMBOL_ACTION_HIDE_ALL
+	SYMBOL_ACTION_HIDE
 };
 
 typedef struct
 {
 	GtkWidget *documents_fullpath;
-	GtkWidget *documents_show_symbols;
-	GtkWidget *documents_show_documents;
-	GtkWidget *symbols_show_symbols;
-	GtkWidget *symbols_show_documents;
 } menu_items;
+
 static menu_items mi;
 
 static GtkListStore	*store_openfiles;
@@ -80,7 +76,6 @@
 static void on_taglist_tree_popup_clicked(GtkMenuItem *menuitem, gpointer user_data);
 static void on_openfiles_tree_selection_changed(GtkTreeSelection *selection, gpointer data);
 static void on_openfiles_document_action(GtkMenuItem *menuitem, gpointer user_data);
-static void on_openfiles_hide_item_clicked(GtkMenuItem *menuitem, gpointer user_data);
 static gboolean on_taglist_tree_selection_changed(GtkTreeSelection *selection);
 static gboolean on_treeviews_button_press_event(GtkWidget *widget, GdkEventButton *event,
 																			gpointer user_data);
@@ -364,47 +359,81 @@
 }
 
 
-static void create_taglist_popup_menu(void)
+static void on_hide_sidebar(void)
 {
-	GtkWidget *item;
+	ui_prefs.sidebar_visible = FALSE;
+	ui_sidebar_show_hide();
+}
 
-	tv.popup_taglist = gtk_menu_new();
 
-	item = gtk_menu_item_new_with_mnemonic(_("Sort by _Name"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), item);
-	g_signal_connect(item, "activate", G_CALLBACK(on_taglist_tree_popup_clicked),
-			GINT_TO_POINTER(SYMBOL_ACTION_SORT_BY_NAME));
+static gboolean on_sidebar_display_symbol_list_show(GtkWidget *item)
+{
+	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
+		interface_prefs.sidebar_symbol_visible);
+	return FALSE;
+}
 
-	item = gtk_menu_item_new_with_mnemonic(_("Sort by _Appearance"));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), item);
-	g_signal_connect(item, "activate", G_CALLBACK(on_taglist_tree_popup_clicked),
-			GINT_TO_POINTER(SYMBOL_ACTION_SORT_BY_APPEARANCE));
 
+static gboolean on_sidebar_display_open_files_show(GtkWidget *item)
+{
+	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
+		interface_prefs.sidebar_openfiles_visible);
+	return FALSE;
+}
+
+
+static void sidebar_add_common_menu_items(GtkMenu *menu)
+{
+	GtkWidget *item;
+
 	item = gtk_separator_menu_item_new();
 	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
 
-	mi.symbols_show_symbols = gtk_check_menu_item_new_with_mnemonic(_("Show S_ymbol List"));
-	gtk_widget_show(mi.symbols_show_symbols);
-	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), mi.symbols_show_symbols);
-	g_signal_connect(mi.symbols_show_symbols, "activate",
+	item = gtk_check_menu_item_new_with_mnemonic(_("Show S_ymbol List"));
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	g_signal_connect(item, "expose-event",
+			G_CALLBACK(on_sidebar_display_symbol_list_show), NULL);
+	gtk_widget_show(item);
+	g_signal_connect(item, "activate",
 			G_CALLBACK(on_list_symbol_activate), NULL);
 
-	mi.symbols_show_documents = gtk_check_menu_item_new_with_mnemonic(_("Show _Document List"));
-	gtk_widget_show(mi.symbols_show_documents);
-	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), mi.symbols_show_documents);
-	g_signal_connect(mi.symbols_show_documents, "activate",
+	item = gtk_check_menu_item_new_with_mnemonic(_("Show _Document List"));
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	g_signal_connect(item, "expose-event",
+			G_CALLBACK(on_sidebar_display_open_files_show), NULL);
+	gtk_widget_show(item);
+	g_signal_connect(item, "activate",
 			G_CALLBACK(on_list_document_activate), NULL);
 
 	item = gtk_image_menu_item_new_with_mnemonic(_("H_ide Sidebar"));
 	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
 		gtk_image_new_from_stock("gtk-close", GTK_ICON_SIZE_MENU));
 	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	g_signal_connect(item, "activate", G_CALLBACK(on_hide_sidebar), NULL);
+}
+
+
+static void create_taglist_popup_menu(void)
+{
+	GtkWidget *item;
+
+	tv.popup_taglist = gtk_menu_new();
+
+	item = gtk_menu_item_new_with_mnemonic(_("Sort by _Name"));
+	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), item);
 	g_signal_connect(item, "activate", G_CALLBACK(on_taglist_tree_popup_clicked),
-			GINT_TO_POINTER(SYMBOL_ACTION_HIDE_ALL));
+			GINT_TO_POINTER(SYMBOL_ACTION_SORT_BY_NAME));
+
+	item = gtk_menu_item_new_with_mnemonic(_("Sort by _Appearance"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(tv.popup_taglist), item);
+	g_signal_connect(item, "activate", G_CALLBACK(on_taglist_tree_popup_clicked),
+			GINT_TO_POINTER(SYMBOL_ACTION_SORT_BY_APPEARANCE));
+
+	sidebar_add_common_menu_items(GTK_MENU(tv.popup_taglist));
 }
 
 
@@ -469,28 +498,7 @@
 	g_signal_connect(mi.documents_fullpath, "activate",
 			G_CALLBACK(on_openfiles_fullpath_activate), NULL);
 
-	item = gtk_separator_menu_item_new();
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(tv.popup_openfiles), item);
-
-	mi.documents_show_symbols = gtk_check_menu_item_new_with_mnemonic(_("Show S_ymbol List"));
-	gtk_widget_show(mi.documents_show_symbols);
-	gtk_container_add(GTK_CONTAINER(tv.popup_openfiles), mi.documents_show_symbols);
-	g_signal_connect(mi.documents_show_symbols, "activate",
-			G_CALLBACK(on_list_symbol_activate), NULL);
-
-	mi.documents_show_documents = gtk_check_menu_item_new_with_mnemonic(_("Show _Document List"));
-	gtk_widget_show(mi.documents_show_documents);
-	gtk_container_add(GTK_CONTAINER(tv.popup_openfiles), mi.documents_show_documents);
-	g_signal_connect(mi.documents_show_documents, "activate",
-			G_CALLBACK(on_list_document_activate), NULL);
-
-	item = gtk_image_menu_item_new_with_mnemonic(_("H_ide Sidebar"));
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
-		gtk_image_new_from_stock("gtk-close", GTK_ICON_SIZE_MENU));
-	gtk_widget_show(item);
-	gtk_container_add(GTK_CONTAINER(tv.popup_openfiles), item);
-	g_signal_connect(item, "activate", G_CALLBACK(on_openfiles_hide_item_clicked), NULL);
+	sidebar_add_common_menu_items(GTK_MENU(tv.popup_openfiles));
 }
 
 
@@ -556,13 +564,6 @@
 }
 
 
-static void on_openfiles_hide_item_clicked(GtkMenuItem *menuitem, gpointer user_data)
-{
-	ui_prefs.sidebar_visible = FALSE;
-	ui_sidebar_show_hide();
-}
-
-
 static gboolean change_focus(gpointer data)
 {
 	GeanyDocument *doc = data;
@@ -622,12 +623,6 @@
 			ui_sidebar_show_hide();
 			break;
 		}
-		case SYMBOL_ACTION_HIDE_ALL:
-		{
-			ui_prefs.sidebar_visible = FALSE;
-			ui_sidebar_show_hide();
-			break;
-		}
 	}
 }
 
@@ -712,10 +707,6 @@
 	{	/* popupmenu to hide or clear the active treeview */
 		if (GPOINTER_TO_INT(user_data) == TREEVIEW_OPENFILES)
 		{
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.documents_show_documents),
-				interface_prefs.sidebar_openfiles_visible);
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.documents_show_symbols),
-				interface_prefs.sidebar_symbol_visible);
 			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.documents_fullpath),
 				interface_prefs.sidebar_openfiles_fullpath);
 			gtk_menu_popup(GTK_MENU(tv.popup_openfiles), NULL, NULL, NULL, NULL,
@@ -723,10 +714,6 @@
 		}
 		else if (GPOINTER_TO_INT(user_data) == TREEVIEW_SYMBOL)
 		{
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.symbols_show_documents),
-				interface_prefs.sidebar_openfiles_visible);
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi.symbols_show_symbols),
-				interface_prefs.sidebar_symbol_visible);
 			gtk_menu_popup(GTK_MENU(tv.popup_taglist), NULL, NULL, NULL, NULL,
 																event->button, event->time);
 			return TRUE;	/* prevent selection changed signal for symbol tags */


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list