diff --git a/src/gcal-manager.c b/src/gcal-manager.c index 964e18de..d831cc37 100644 --- a/src/gcal-manager.c +++ b/src/gcal-manager.c @@ -820,9 +820,9 @@ gcal_manager_set_new_range (GcalManager *manager, } icaltimetype* -gcal_manager_get_start_date (GcalManager *manager, - const gchar *source_uid, - const gchar *event_uid) +gcal_manager_get_event_start_date (GcalManager *manager, + const gchar *source_uid, + const gchar *event_uid) { GcalManagerPrivate *priv; GcalManagerUnit *unit; @@ -840,3 +840,53 @@ gcal_manager_get_start_date (GcalManager *manager, e_cal_component_free_datetime (&dt); return dtstart; } + +gchar* +gcal_manager_get_event_summary (GcalManager *manager, + const gchar *source_uid, + const gchar *event_uid) +{ + GcalManagerPrivate *priv; + GcalManagerUnit *unit; + ECalComponent *event; + ECalComponentText e_summary; + gchar *summary; + + priv = manager->priv; + + unit = g_hash_table_lookup (priv->clients, source_uid); + event = g_hash_table_lookup (unit->events, event_uid); + e_cal_component_get_summary (event, &e_summary); + summary = g_strdup (e_summary.value); + + return summary; +} + +GdkRGBA* +gcal_manager_get_event_color (GcalManager *manager, + const gchar *source_uid, + const gchar *event_uid) +{ + GcalManagerPrivate *priv; + GcalManagerUnit *unit; + GdkRGBA *color; + GdkColor gdk_color; + + priv = manager->priv; + color = g_new0 (GdkRGBA, 1); + + unit = g_hash_table_lookup (priv->clients, source_uid); + gdk_color_parse (e_source_peek_color_spec (unit->source), &gdk_color); + + g_debug ("Obtained color %s for %s", + gdk_color_to_string (&gdk_color), + event_uid); + + color->red = (gdouble) gdk_color.red / 65535; + color->green = (gdouble) gdk_color.green / 65535; + color->blue = (gdouble) gdk_color.blue / 65535; + color->alpha = 1; + + g_debug ("color %s for %s", gdk_rgba_to_string (color), event_uid); + return color; +} diff --git a/src/gcal-manager.h b/src/gcal-manager.h index 607e167a..00f74ef2 100644 --- a/src/gcal-manager.h +++ b/src/gcal-manager.h @@ -57,25 +57,33 @@ struct _GcalManagerClass }; -GType gcal_manager_get_type (void); +GType gcal_manager_get_type (void); -GcalManager* gcal_manager_new (void); +GcalManager* gcal_manager_new (void); -GtkListStore* gcal_manager_get_sources_model (GcalManager *manager); +GtkListStore* gcal_manager_get_sources_model (GcalManager *manager); -gchar* gcal_manager_add_source (GcalManager *manager, - const gchar *name, - const gchar *base_uri, - const gchar *relative_uri, - const gchar *color); +gchar* gcal_manager_add_source (GcalManager *manager, + const gchar *name, + const gchar *base_uri, + const gchar *relative_uri, + const gchar *color); -void gcal_manager_set_new_range (GcalManager *manager, - const icaltimetype *initial_date, - const icaltimetype *final_date); +void gcal_manager_set_new_range (GcalManager *manager, + const icaltimetype *initial_date, + const icaltimetype *final_date); -icaltimetype* gcal_manager_get_start_date (GcalManager *manager, - const gchar *source_uid, - const gchar *event_uid); +icaltimetype* gcal_manager_get_event_start_date (GcalManager *manager, + const gchar *source_uid, + const gchar *event_uid); + +gchar* gcal_manager_get_event_summary (GcalManager *manager, + const gchar *source_uid, + const gchar *event_uid); + +GdkRGBA* gcal_manager_get_event_color (GcalManager *manager, + const gchar *source_uid, + const gchar *event_uid); G_END_DECLS