SF.net SVN: geany-plugins:[641] trunk/geanyvc/geanyvc.c

frlan at users.sourceforge.net frlan at xxxxx
Wed May 13 21:08:17 UTC 2009


Revision: 641
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=641&view=rev
Author:   frlan
Date:     2009-05-13 21:08:17 +0000 (Wed, 13 May 2009)

Log Message:
-----------
GeanyVC: First attempt to add some VC actions to editor menu

Modified Paths:
--------------
    trunk/geanyvc/geanyvc.c

Modified: trunk/geanyvc/geanyvc.c
===================================================================
--- trunk/geanyvc/geanyvc.c	2009-05-13 17:21:17 UTC (rev 640)
+++ trunk/geanyvc/geanyvc.c	2009-05-13 21:08:17 UTC (rev 641)
@@ -59,7 +59,6 @@
 GeanyData *geany_data;
 GeanyFunctions *geany_functions;
 
-
 PLUGIN_VERSION_CHECK(115);
 PLUGIN_SET_INFO(_("VC"), _("Interface to different Version Control systems."), VERSION,
 		_("Yura Siamashka <yurand2 at gmail.com>,\nFrank Lanitz <frank at frank.uvena.de>"));
@@ -114,6 +113,9 @@
 const gchar FILE_STATUS_DELETED[] = "Deleted";
 const gchar FILE_STATUS_UNKNOWN[] = "Unknown";
 
+static GtkWidget *editor_menu_vc = NULL;
+static GtkWidget *menu_item_sep = NULL;
+
 static void registrate();
 
 
@@ -1158,7 +1160,7 @@
 {
 	GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
 	gint toggled = gtk_toggle_button_get_active(check_box);
-	
+
 	gtk_tree_model_foreach(model, toggle_all_commit_files, &toggled);
 
 	refresh_diff_view(treeview);
@@ -1954,13 +1956,16 @@
 }
 
 static void
-do_current_file_menu(GtkWidget ** parent_menu, GtkTooltips ** tooltips)
+do_current_file_menu(GtkWidget ** parent_menu, GtkTooltips ** tooltips, gboolean editor_menu)
 {
 	GtkWidget *cur_file_menu = NULL;
 	/* Menu which will hold the items in the current file menu */
 	cur_file_menu = gtk_menu_new();
 
-	*parent_menu = gtk_image_menu_item_new_with_mnemonic(_("_File"));
+	if (editor_menu == TRUE)
+		*parent_menu = gtk_image_menu_item_new_with_mnemonic(_("_VC File actions"));
+	else
+		*parent_menu = gtk_image_menu_item_new_with_mnemonic(_("_File"));
 	g_signal_connect((gpointer) * parent_menu, "activate", G_CALLBACK(update_menu_items), NULL);
 
 	/* Diff of current file */
@@ -2178,8 +2183,17 @@
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_vc), menu_vc_menu);
 
 	/* Create the current file Submenu */
-	do_current_file_menu(&menu_vc_file, &tooltips);
+	do_current_file_menu(&menu_vc_file, &tooltips, FALSE);
 	gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_file);
+
+	/* Add file menu also to editor menu (at mouse cursor) */
+	do_current_file_menu(&editor_menu_vc, &tooltips, TRUE);
+	gtk_container_add(GTK_CONTAINER(geany->main_widgets->editor_menu), editor_menu_vc);
+	gtk_menu_reorder_child(GTK_MENU(geany->main_widgets->editor_menu), editor_menu_vc, 0);
+	menu_item_sep = gtk_separator_menu_item_new();
+	gtk_container_add(GTK_CONTAINER(geany->main_widgets->editor_menu), menu_item_sep);
+	gtk_menu_reorder_child(GTK_MENU(geany->main_widgets->editor_menu), menu_item_sep, 1);
+
 	/* Create the current directory Submenu */
 	do_current_dir_menu(&menu_vc_dir, &tooltips);
 	gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_dir);
@@ -2219,6 +2233,8 @@
 	gtk_widget_show_all(menu_vc_file);
 	gtk_widget_show_all(menu_vc_dir);
 	gtk_widget_show_all(menu_vc_basedir);
+	gtk_widget_show_all(editor_menu_vc);
+	gtk_widget_show_all(menu_item_sep);
 
 	/* initialize keybindings */
 	init_keybindings();
@@ -2234,6 +2250,8 @@
 {
 	// remove the menu item added in init()
 	gtk_widget_destroy(plugin_fields->menu_item);
+	gtk_widget_destroy(editor_menu_vc);
+	gtk_widget_destroy(menu_item_sep);
 	g_slist_free(VC);
 	VC = NULL;
 	g_free(config_file);


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



More information about the Plugins-Commits mailing list