From 62c86e7472d3e4c13726bb6b3c735f1fc47b0151 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Wed, 26 Sep 2001 22:55:27 +0000 Subject: New helper function. (folder_selected_cb): Call it. * e-shell-view.c (setup_verb_sensitivity_for_folder): New helper function. (folder_selected_cb): Call it. (folder_context_menu_popping_up_cb): New callback for the "folder_context_menu_popping_up" signal on the folder bar's EStorageSetView; set the sensitivities of the verbs according to the right-clicked folder. (folder_context_menu_popped_down_cb): New, callback for the "folder_context_menu_popped_down" signal on the folder bar's EStorageSetView; set the sensitivities of the verbs according to the currently displayed folder. (e_shell_view_get_folder_bar_right_click_path): Add a cast to placate a warning. * e-storage-set-view.c (class_init): Set up the "folder_context_menu_popping_up" and "folder_context_menu_popped_down" signals. (right_click): Emit "folder_context_menu_popping_up" before popping up the menu, "folder_context_menu_popped_down" after the menu is gone. * e-storage-set-view.h: New signals "folder_context_menu_popping_up" and "folder_context_menu_popped_down". svn path=/trunk/; revision=13171 --- shell/e-storage-set-view.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'shell/e-storage-set-view.c') diff --git a/shell/e-storage-set-view.c b/shell/e-storage-set-view.c index fe941b2715..96b705954a 100644 --- a/shell/e-storage-set-view.c +++ b/shell/e-storage-set-view.c @@ -106,6 +106,8 @@ enum { FOLDER_SELECTED, STORAGE_SELECTED, DND_ACTION, + FOLDER_CONTEXT_MENU_POPPING_UP, + FOLDER_CONTEXT_MENU_POPPED_DOWN, LAST_SIGNAL }; @@ -1248,9 +1250,17 @@ right_click (ETree *etree, g_free (priv->right_click_row_path); priv->right_click_row_path = g_strdup (e_tree_memory_node_get_data (E_TREE_MEMORY(priv->etree_model), path)); - if (priv->container) + if (priv->container) { + gtk_signal_emit (GTK_OBJECT (storage_set_view), + signals[FOLDER_CONTEXT_MENU_POPPING_UP], + priv->right_click_row_path); + popup_folder_menu (storage_set_view, (GdkEventButton *) event); + gtk_signal_emit (GTK_OBJECT (storage_set_view), + signals[FOLDER_CONTEXT_MENU_POPPED_DOWN]); + } + g_free (priv->right_click_row_path); priv->right_click_row_path = NULL; @@ -1671,6 +1681,23 @@ class_init (EStorageSetViewClass *klass) GTK_TYPE_STRING, GTK_TYPE_STRING); + signals[FOLDER_CONTEXT_MENU_POPPING_UP] + = gtk_signal_new ("folder_context_menu_popping_up", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EStorageSetViewClass, folder_context_menu_popping_up), + gtk_marshal_NONE__STRING, + GTK_TYPE_NONE, 1, + GTK_TYPE_STRING); + + signals[FOLDER_CONTEXT_MENU_POPPED_DOWN] + = gtk_signal_new ("folder_context_menu_popped_down", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EStorageSetViewClass, folder_context_menu_popped_down), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL); } -- cgit v1.2.3