aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-activity-handler.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-06-24 23:25:44 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-06-24 23:25:44 +0800
commit4e1fe266e73c23d628ebf4765ae931a7b91b4e3f (patch)
tree6a8e246b945d4af7666c5729f45882ce36e94acb /shell/e-activity-handler.c
parentea40bb0823d313579eb992f441d6fd08f7ef23a7 (diff)
downloadgsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.tar
gsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.tar.gz
gsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.tar.bz2
gsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.tar.lz
gsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.tar.xz
gsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.tar.zst
gsoc2013-evolution-4e1fe266e73c23d628ebf4765ae931a7b91b4e3f.zip
Derive ETaskWidget from GtkEventBox instead of GtkFrame so that we can
get button_press events from it. Also, get the EActivtyHandler to properly dispatch "Clicked" events when the user clicks on an ETaskWidget. svn path=/trunk/; revision=10450
Diffstat (limited to 'shell/e-activity-handler.c')
-rw-r--r--shell/e-activity-handler.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/shell/e-activity-handler.c b/shell/e-activity-handler.c
index 09342b1af4..32076f1f94 100644
--- a/shell/e-activity-handler.c
+++ b/shell/e-activity-handler.c
@@ -134,6 +134,37 @@ lookup_activity (GList *list,
}
+/* ETaskWidget callbacks. */
+
+static int
+task_widget_button_press_event_callback (GtkWidget *widget,
+ GdkEventButton *button_event,
+ void *data)
+{
+ CORBA_Environment ev;
+ ActivityInfo *activity_info;
+ CORBA_any *null_value;
+
+ activity_info = (ActivityInfo *) data;
+
+ CORBA_exception_init (&ev);
+
+ null_value = CORBA_any__alloc ();
+ null_value->_type = TC_null;
+
+ Bonobo_Listener_event (activity_info->event_listener, "Clicked", null_value, &ev);
+ if (ev._major != CORBA_NO_EXCEPTION)
+ g_warning ("EActivityHandler: Cannot report `Clicked' event -- %s",
+ ev._repo_id);
+
+ CORBA_free (null_value);
+
+ CORBA_exception_free (&ev);
+
+ return TRUE;
+}
+
+
/* Creating and destroying ActivityInfos. */
static ActivityInfo *
@@ -184,6 +215,9 @@ task_widget_new_from_activity_info (ActivityInfo *activity_info)
widget = e_task_widget_new (activity_info->icon_pixbuf, activity_info->information);
gtk_widget_show (widget);
+ gtk_signal_connect (GTK_OBJECT (widget), "button_press_event",
+ GTK_SIGNAL_FUNC (task_widget_button_press_event_callback), activity_info);
+
return E_TASK_WIDGET (widget);
}