diff --git a/src/views/gcal-month-view.c b/src/views/gcal-month-view.c index f648ff4f..79a9e525 100644 --- a/src/views/gcal-month-view.c +++ b/src/views/gcal-month-view.c @@ -162,14 +162,7 @@ enum N_PROPS }; -enum -{ - EVENT_ACTIVATED, - NUM_SIGNALS -}; - static gpointer month_view_parent_class = NULL; -static guint signals[NUM_SIGNALS] = { 0, }; /* @@ -191,7 +184,7 @@ event_activated (GcalMonthView *self, cancel_selection (self); gcal_month_popover_popdown (self->overflow_popover); - g_signal_emit (self, signals[EVENT_ACTIVATED], 0, widget); + g_signal_emit_by_name (self, "event-activated", widget); } static void @@ -2213,13 +2206,7 @@ gcal_month_view_class_init (GcalMonthViewClass *klass) g_object_class_override_property (object_class, PROP_MANAGER, "manager"); g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service"); - signals[EVENT_ACTIVATED] = g_signal_new ("event-activated", - GCAL_TYPE_MONTH_VIEW, - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, - 1, - GCAL_TYPE_EVENT_WIDGET); + gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/month-view.ui"); diff --git a/src/views/gcal-view.c b/src/views/gcal-view.c index 7bf3aea0..581cec9d 100644 --- a/src/views/gcal-view.c +++ b/src/views/gcal-view.c @@ -21,6 +21,7 @@ #define G_LOG_DOMAIN "GcalView" +#include "gcal-event-widget.h" #include "gcal-view.h" #include "gcal-utils.h" @@ -97,6 +98,19 @@ gcal_view_default_init (GcalViewInterface *iface) G_STRUCT_OFFSET (GcalViewInterface, create_event_detailed), NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER); + + /** + * GcalView::event-activated: + * + * Emitted when an event widget inside the view is activated. + */ + g_signal_new ("event-activated", + GCAL_TYPE_VIEW, + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, + 1, + GCAL_TYPE_EVENT_WIDGET); } /** diff --git a/src/views/gcal-week-view.c b/src/views/gcal-week-view.c index bc1122fe..1c7c41a5 100644 --- a/src/views/gcal-week-view.c +++ b/src/views/gcal-week-view.c @@ -77,12 +77,6 @@ static void gcal_view_interface_init (GcalViewInterf static void gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface); -enum -{ - EVENT_ACTIVATED, - LAST_SIGNAL -}; - enum { PROP_0, @@ -92,7 +86,6 @@ enum NUM_PROPS }; -static guint signals[LAST_SIGNAL] = { 0, }; G_DEFINE_TYPE_WITH_CODE (GcalWeekView, gcal_week_view, GTK_TYPE_BOX, G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init) @@ -104,7 +97,7 @@ static void on_event_activated (GcalWeekView *self, GtkWidget *widget) { - g_signal_emit (self, signals[EVENT_ACTIVATED], 0, widget); + g_signal_emit_by_name (self, "event-activated", widget); } static void @@ -627,14 +620,6 @@ gcal_week_view_class_init (GcalWeekViewClass *klass) g_object_class_override_property (object_class, PROP_MANAGER, "manager"); g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service"); - signals[EVENT_ACTIVATED] = g_signal_new ("event-activated", - GCAL_TYPE_WEEK_VIEW, - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, - 1, - GCAL_TYPE_EVENT_WIDGET); - gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/week-view.ui"); gtk_widget_class_bind_template_child (widget_class, GcalWeekView, header); diff --git a/src/views/gcal-year-view.c b/src/views/gcal-year-view.c index eaf0f607..ae1386ee 100644 --- a/src/views/gcal-year-view.c +++ b/src/views/gcal-year-view.c @@ -130,13 +130,6 @@ enum { LAST_PROP }; -enum -{ - EVENT_ACTIVATED, - NUM_SIGNALS -}; - -static guint signals[NUM_SIGNALS] = { 0, }; static gpointer year_view_parent_class = NULL; static void gcal_view_interface_init (GcalViewInterface *iface); @@ -184,7 +177,7 @@ event_activated (GcalEventWidget *widget, if (view->popover_mode) gtk_widget_hide (view->popover); - g_signal_emit (GCAL_YEAR_VIEW (user_data), signals[EVENT_ACTIVATED], 0, widget); + g_signal_emit_by_name (view, "event-activated", widget); } static void @@ -2009,15 +2002,6 @@ gcal_year_view_class_init (GcalYearViewClass *klass) FALSE, G_PARAM_READWRITE)); - /* FIXME: it will problably go back to GcalView */ - signals[EVENT_ACTIVATED] = g_signal_new ("event-activated", - GCAL_TYPE_YEAR_VIEW, - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, - 1, - GCAL_TYPE_EVENT_WIDGET); - gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/year-view.ui"); gtk_widget_class_bind_template_child (widget_class, GcalYearView, navigator);