diff --git a/src/gcal-event-widget.c b/src/gcal-event-widget.c index 720f688c..1808df64 100644 --- a/src/gcal-event-widget.c +++ b/src/gcal-event-widget.c @@ -18,20 +18,25 @@ */ #include "gcal-event-widget.h" +#include "gcal-utils.h" + +#include struct _GcalEventWidgetPrivate { - GdkWindow *event_window; + GdkWindow *event_window; - gchar *summary; - GdkRGBA *color; + gchar *summary; + GdkRGBA *color; + icaltimetype *dt_start; }; enum { PROP_0, PROP_SUMMARY, - PROP_COLOR + PROP_COLOR, + PROP_DTSTART }; static void gcal_event_widget_constructed (GObject *object); @@ -113,6 +118,15 @@ gcal_event_widget_class_init(GcalEventWidgetClass *klass) G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_DTSTART, + g_param_spec_boxed ("date-start", + "Date Start", + "The starting date of the event", + ICAL_TIME_TYPE, + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE)); + g_type_class_add_private((gpointer)klass, sizeof(GcalEventWidgetPrivate)); } @@ -162,6 +176,12 @@ gcal_event_widget_set_property (GObject *object, priv->color = g_value_dup_boxed (value); return; + case PROP_DTSTART: + if (priv->dt_start != NULL) + g_free (priv->dt_start); + + priv->dt_start = g_value_dup_boxed (value); + return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -185,6 +205,9 @@ gcal_event_widget_get_property (GObject *object, case PROP_COLOR: g_value_set_boxed (value, priv->color); return; + case PROP_DTSTART: + g_value_set_boxed (value, priv->dt_start); + return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); diff --git a/src/gcal-month-view.c b/src/gcal-month-view.c index 1a783fa9..42a359f6 100644 --- a/src/gcal-month-view.c +++ b/src/gcal-month-view.c @@ -117,15 +117,14 @@ static void gcal_month_view_class_init (GcalMonthViewClass *klass) object_class->get_property = gcal_month_view_get_property; object_class->finalize = gcal_month_view_finalize; - g_object_class_install_property (object_class, PROP_DATE, - g_param_spec_pointer ("date", - "date", - _("Date"), - G_PARAM_CONSTRUCT | - G_PARAM_READWRITE | - G_PARAM_STATIC_NAME | - G_PARAM_STATIC_BLURB | - G_PARAM_STATIC_NICK)); + g_object_class_install_property (object_class, + PROP_DATE, + g_param_spec_boxed ("date", + "Date", + _("Date"), + ICAL_TIME_TYPE, + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE)); g_type_class_add_private ((gpointer)klass, sizeof (GcalMonthViewPrivate)); } @@ -170,7 +169,7 @@ gcal_month_view_set_property (GObject *object, if (priv->date != NULL) g_free (priv->date); - priv->date = g_value_get_pointer (value); + priv->date = g_value_dup_boxed (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -189,7 +188,7 @@ gcal_month_view_get_property (GObject *object, switch (property_id) { case PROP_DATE: - g_value_set_pointer (value, priv->date); + g_value_set_boxed (value, priv->date); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); diff --git a/src/gcal-utils.c b/src/gcal-utils.c index 349aac8e..93485f34 100644 --- a/src/gcal-utils.c +++ b/src/gcal-utils.c @@ -18,11 +18,13 @@ * along with this program. If not, see . */ +#include "gcal-utils.h" + #include #include -#include "gcal-utils.h" +G_DEFINE_BOXED_TYPE (icaltimetype, icaltime, gcal_dup_icaltime, g_free) /* taken from eel/eel-gtk-extensions.c */ static gboolean diff --git a/src/gcal-utils.h b/src/gcal-utils.h index 1d227438..a20243ec 100644 --- a/src/gcal-utils.h +++ b/src/gcal-utils.h @@ -32,6 +32,10 @@ typedef enum GCAL_VIEW_TYPE_LIST, } GcalViewTypeEnum; +#define ICAL_TIME_TYPE (icaltime_get_type ()) + +GType icaltime_get_type (void) G_GNUC_CONST; + void gcal_gtk_tree_view_set_activate_on_single_click (GtkTreeView *tree_view, gboolean should_activate);