diff options
author | Bolian Yin <bolian.yin@sun.com> | 2003-06-26 00:08:57 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2003-06-26 00:08:57 +0800 |
commit | c3ece20f02b7c1452af1380946e6c62a3d48cf11 (patch) | |
tree | c0bb58b41fed6f8e2c7a9c1d89e737cfacc4aca5 /calendar | |
parent | bd282c59ea6a83e5893be076965ad926128de702 (diff) | |
download | gsoc2013-evolution-c3ece20f02b7c1452af1380946e6c62a3d48cf11.tar.gz gsoc2013-evolution-c3ece20f02b7c1452af1380946e6c62a3d48cf11.tar.zst gsoc2013-evolution-c3ece20f02b7c1452af1380946e6c62a3d48cf11.zip |
Fixes #45275
2003-06-25 Bolian Yin <bolian.yin@sun.com>
Fixes #45275
* gui/e-calendar-table.c (e_calendar_table_show_popup_menu): new function.
(e_calendar_table_on_right_click_menu): call e_calendar_table_show_popup_menu.
(e_calendar_table_on_popup_menu): callback for "popup_menu" signal.
(e_calendar_table_init): connect to ETable's "popup_menu" signal.
svn path=/trunk/; revision=21537
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 11 | ||||
-rw-r--r-- | calendar/gui/e-calendar-table.c | 45 |
2 files changed, 47 insertions, 9 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 6d4336da32..b668e39e3b 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,4 +1,13 @@ -2003-06-25 Bolian Yin <bolian.yin@sun.com +2003-06-25 Bolian Yin <bolian.yin@sun.com> + + Fixes #45275 + + * gui/e-calendar-table.c (e_calendar_table_show_popup_menu): new function. + (e_calendar_table_on_right_click_menu): call e_calendar_table_show_popup_menu. + (e_calendar_table_on_popup_menu): callback for "popup_menu" signal. + (e_calendar_table_init): connect to ETable's "popup_menu" signal. + +2003-06-25 Bolian Yin <bolian.yin@sun.com> Fixes #45273 diff --git a/calendar/gui/e-calendar-table.c b/calendar/gui/e-calendar-table.c index c55875d943..faaee9d9f4 100644 --- a/calendar/gui/e-calendar-table.c +++ b/calendar/gui/e-calendar-table.c @@ -33,6 +33,7 @@ #include <unistd.h> #include <gnome.h> #include <gtk/gtkinvisible.h> +#include <gal/widgets/e-gui-utils.h> #include <gal/e-table/e-cell-checkbox.h> #include <gal/e-table/e-cell-toggle.h> #include <gal/e-table/e-cell-text.h> @@ -70,11 +71,18 @@ static void e_calendar_table_on_double_click (ETable *table, gint col, GdkEvent *event, ECalendarTable *cal_table); +static gint e_calendar_table_show_popup_menu (ETable *table, + GdkEvent *gdk_event, + ECalendarTable *cal_table); + static gint e_calendar_table_on_right_click (ETable *table, gint row, gint col, - GdkEventButton *event, + GdkEvent *event, ECalendarTable *cal_table); +static gboolean e_calendar_table_on_popup_menu (GtkWidget *widget, + gpointer data); + static void e_calendar_table_on_open_task (GtkWidget *menuitem, gpointer data); static void e_calendar_table_on_save_as (GtkWidget *menuitem, @@ -519,6 +527,7 @@ e_calendar_table_init (ECalendarTable *cal_table) g_signal_connect (e_table, "double_click", G_CALLBACK (e_calendar_table_on_double_click), cal_table); g_signal_connect (e_table, "right_click", G_CALLBACK (e_calendar_table_on_right_click), cal_table); g_signal_connect (e_table, "key_press", G_CALLBACK (e_calendar_table_on_key_press), cal_table); + g_signal_connect (e_table, "popup_menu", G_CALLBACK (e_calendar_table_on_popup_menu), cal_table); /* Set up the invisible widget for the clipboard selections */ cal_table->invisible = gtk_invisible_new (); @@ -972,15 +981,14 @@ static EPopupMenu tasks_popup_menu [] = { }; static gint -e_calendar_table_on_right_click (ETable *table, - gint row, - gint col, - GdkEventButton *event, - ECalendarTable *cal_table) +e_calendar_table_show_popup_menu (ETable *table, + GdkEvent *gdk_event, + ECalendarTable *cal_table) { int n_selected; int hide_mask = 0; int disable_mask = 0; + GtkMenu *gtk_menu; n_selected = e_table_selected_count (table); if (n_selected <= 0) @@ -998,12 +1006,33 @@ e_calendar_table_on_right_click (ETable *table, CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT)) disable_mask |= MASK_ASSIGNABLE; - e_popup_menu_run (tasks_popup_menu, (GdkEvent *) event, - disable_mask, hide_mask, cal_table); + gtk_menu = e_popup_menu_create (tasks_popup_menu, disable_mask, + hide_mask, cal_table); + + e_popup_menu (gtk_menu, gdk_event); return TRUE; } +static gint +e_calendar_table_on_right_click (ETable *table, + gint row, + gint col, + GdkEvent *event, + ECalendarTable *cal_table) +{ + return e_calendar_table_show_popup_menu (table, event, cal_table); +} + +static gboolean +e_calendar_table_on_popup_menu (GtkWidget *widget, gpointer data) +{ + ETable *table = E_TABLE(widget); + g_return_if_fail(table); + + return e_calendar_table_show_popup_menu (table, NULL, + E_CALENDAR_TABLE(data)); +} static void e_calendar_table_on_open_task (GtkWidget *menuitem, |