4
* Created by: Axel von Bertoldi
5
* Last Modified: April 2008
6
* Last Modified by: Axel von Bertoldi
7
* (C) 2005-2008 Axel von Bertoldi
9
* This program is free software; you can redistribute it and/or modify it
10
* under the terms of the GNU General Public License as published by the Free
11
* Software Foundation; either version 2 of the License, or (at your option)
14
* This program is distributed in the hope that it will be useful, but WITHOUT
15
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19
* You should have received a copy of the GNU General Public License along with
20
* this program; if not, write to:
21
* The Free Software Foundation, Inc.,
22
* 51 Franklin Street, Fifth Floor
23
* Boston, MA 02110-1301, USA.
26
#include <glib/gprintf.h>
29
#include "context-menu.h"
32
/******************************************************************************/
34
context_menu_add_delete_item (const gchar *file_name,
36
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
38
GtkWidget *menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_DELETE, NULL);
39
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
41
GtkWidget *item_label = GTK_BIN (menu_item)->child;
42
gtk_label_set_text (GTK_LABEL (item_label), "Move to Trash");
44
g_signal_connect_swapped (G_OBJECT (menu_item),
46
G_CALLBACK (vfs_trash_file),
47
(gpointer) file_name);
49
/******************************************************************************/
51
context_menu_add_fake_items (const gchar *file_name,
53
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
57
menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL);
58
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
60
menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_ADD, NULL);
61
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
63
menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_APPLY, NULL);
64
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
66
menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_BOLD, NULL);
67
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
69
menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_CDROM, NULL);
70
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
72
/******************************************************************************/
75
context_menu_populate (const gchar *file_name,
77
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
79
context_menu_add_delete_item (file_name, menu);
80
context_menu_add_fake_items (file_name, menu);
82
/******************************************************************************/
84
context_menu_clean_up (GtkMenuShell *menu,
86
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
88
GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (browser));
89
gtk_menu_shell_deactivate (GTK_MENU_SHELL (parent));
91
/* gtk_grab_remove (GTK_WIDGET (menu));*/
92
/* gdk_pointer_ungrab (GDK_CURRENT_TIME);*/
94
gtk_widget_destroy (GTK_WIDGET (menu));
96
/******************************************************************************/
98
context_menu_display (const gchar *file_name,
99
GtkWidget *menu_item) {
100
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
105
GdkEventButton *event = g_object_get_data (G_OBJECT (menu_item),
108
event_button = event->button;
109
event_time = event->time;
113
event_time = gtk_get_current_event_time();
116
GtkWidget *browser = g_object_get_data (G_OBJECT (menu_item),
120
GtkWidget *panel_menu_bar = gtk_widget_get_parent (GTK_WIDGET (browser));
121
GtkWidget *parent_menu = gtk_widget_get_parent (GTK_WIDGET (menu_item));
122
GtkMenuShell *panel_menu_bar_shell = GTK_MENU_SHELL (panel_menu_bar);
123
GtkWidget *applet = gtk_widget_get_parent (GTK_WIDGET (panel_menu_bar));
124
GtkWidget *panel = gtk_widget_get_parent (GTK_WIDGET (applet));
127
GtkWidget *menu = gtk_menu_new ();
129
g_signal_connect (GTK_MENU_SHELL (menu),
131
G_CALLBACK (context_menu_clean_up),
134
context_menu_populate (file_name, menu);
136
gtk_widget_show_all (menu);
138
gtk_menu_popup (GTK_MENU (menu),
146
/*gtk_grab_add (GTK_WIDGET (menu));*/
147
/*gdk_pointer_grab (GTK_WIDGET (menu)->window,
156
/******************************************************************************/