From 4247018bde89e350f05c80f98d1f594dbe4add81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= Date: Tue, 20 Jan 2015 17:06:22 -0500 Subject: [PATCH] year-view: initial UI for no events days --- data/theme/gtk-styles.css | 18 ++++++++++++ data/ui/year-view.ui | 59 ++++++++++++++++++++++++++++++++++++--- src/gcal-year-view.c | 16 +++++++++++ 3 files changed, 89 insertions(+), 4 deletions(-) diff --git a/data/theme/gtk-styles.css b/data/theme/gtk-styles.css index 64fa21e0..052fa46d 100644 --- a/data/theme/gtk-styles.css +++ b/data/theme/gtk-styles.css @@ -118,10 +118,28 @@ font-size: 11px; } +.italic-label { + font-style: italic; +} + GtkListBox.sidebar { background-color: @theme_bg_color; } +GtkBox.sidebar { + background-color: @theme_bg_color; + border-color: @borders; + border-style: solid; +} + +GtkBox.sidebar:dir(ltr) { + border-left-width: 1px; +} + +GtkBox.sidebar:dir(rtl) { + border-right-width: 1px; +} + GcalYearView GtkScrolledWindow { border-top-width: 0; border-bottom-width: 0; diff --git a/data/ui/year-view.ui b/data/ui/year-view.ui index b06714f3..cb96cfb3 100644 --- a/data/ui/year-view.ui +++ b/data/ui/year-view.ui @@ -24,17 +24,68 @@ 200 vertical - + True - out - True - + True + out + True + + + True + + + + + + 0 + events-list + + + + + True + vertical + + + True + start + 6 + Today + + + + 0 + + + + + True + start + 6 + No events + + + + 1 + + + + 1 + no-events + diff --git a/src/gcal-year-view.c b/src/gcal-year-view.c index 9548d2ae..2da206e1 100644 --- a/src/gcal-year-view.c +++ b/src/gcal-year-view.c @@ -48,6 +48,7 @@ struct _GcalYearViewPrivate GtkWidget *navigator; GtkWidget *sidebar; GtkWidget *events_sidebar; + GtkWidget *navigator_stack; GtkWidget *navigator_sidebar; GtkWidget *popover; /* Popover for popover_mode */ @@ -244,6 +245,20 @@ update_sidebar (GcalYearView *year_view) days_widgets_array = g_new0 (GList*, days_span); events = gcal_manager_get_events (priv->manager, priv->start_selected_date, priv->end_selected_date); + + /* XXX: compare_date_only does not work if is_date field is different */ + priv->start_selected_date->is_date = priv->current_date->is_date; + if (events == NULL && icaltime_compare_date_only (*(priv->start_selected_date), *(priv->current_date)) == 0) + { + days_span = 0; + gtk_stack_set_visible_child_name (GTK_STACK (priv->navigator_stack), "no-events"); + } + else + { + gtk_stack_set_visible_child_name (GTK_STACK (priv->navigator_stack), "events-list"); + } + priv->start_selected_date->is_date = 0; + for (l = events; l != NULL; l = g_list_next (l)) { GcalEventData *data = l->data; @@ -1164,6 +1179,7 @@ gcal_year_view_class_init (GcalYearViewClass *klass) gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, navigator); gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, sidebar); gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, events_sidebar); + gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, navigator_stack); gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, navigator_sidebar); gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, popover); gtk_widget_class_bind_template_child_private (widget_class, GcalYearView, popover_sidebar);