month-view: set a css name

This will add a CSS Node in the style context,
and keep Calendar in sync with latest gtk+
upstream changes.
This commit is contained in:
Georges Basile Stavracas Neto
2016-01-04 16:27:40 -02:00
parent 2280a74856
commit 8b1054f638
2 changed files with 36 additions and 34 deletions
+25 -25
View File
@@ -23,49 +23,49 @@
padding: 12px; padding: 12px;
} }
.calendar-view { calendar-view {
padding: 6px; padding: 6px;
font: 10; font: 10;
} }
.calendar-view.header { calendar-view.header {
font-weight: bold; font-weight: bold;
} }
.calendar-view.current { calendar-view.current {
background-color: black; background-color: black;
border-radius: 2px; border-radius: 2px;
color: white; color: white;
font: bold; font: bold;
} }
.calendar-view:selected { calendar-view:selected {
color: @theme_selected_bg_color; color: @theme_selected_bg_color;
font-weight: bold; font-weight: bold;
} }
.calendar-view.overflow:hover { calendar-view.overflow:hover {
font-weight: bold; font-weight: bold;
color: @theme_selected_bg_color; color: @theme_selected_bg_color;
background-image: linear-gradient(to bottom, shade(@theme_bg_color, 0.9), alpha(@theme_bg_color, 0.2) 10%, background-image: linear-gradient(to bottom, shade(@theme_bg_color, 0.9), alpha(@theme_bg_color, 0.2) 10%,
alpha(@theme_bg_color, 0.2) 95%, shade(@theme_bg_color, 0.95) 100%); alpha(@theme_bg_color, 0.2) 95%, shade(@theme_bg_color, 0.95) 100%);
} }
.calendar-view.overflow { calendar-view.overflow {
font: 8; font: 8;
} }
.calendar-view.lines { calendar-view.lines {
color: alpha(@theme_fg_color, 0.4); color: alpha(@theme_fg_color, 0.4);
} }
.calendar-view.first-view-header { calendar-view.first-view-header {
font: bold 16; font: bold 16;
color: @theme_selected_bg_color; color: @theme_selected_bg_color;
padding: 12px; padding: 12px;
} }
.calendar-view.second-view-header { calendar-view.second-view-header {
font: bold 16; font: bold 16;
padding: 12px; padding: 12px;
color: alpha(@theme_fg_color, 0.55); color: alpha(@theme_fg_color, 0.55);
@@ -124,54 +124,54 @@
font-style: italic; font-style: italic;
} }
GtkListBox.sidebar { list.sidebar {
background-color: @theme_bg_color; background-color: @theme_bg_color;
} }
GtkBox.sidebar { box.sidebar {
background-color: @theme_bg_color; background-color: @theme_bg_color;
border-color: @borders; border-color: @borders;
border-style: solid; border-style: solid;
} }
GcalYearView GtkBox.sidebar:dir(ltr) { GcalYearView box.sidebar:dir(ltr) {
border-left-width: 1px; border-left-width: 1px;
} }
GcalYearView GtkBox.sidebar:dir(rtl) { GcalYearView box.sidebar:dir(rtl) {
border-right-width: 1px; border-right-width: 1px;
} }
GcalYearView GtkScrolledWindow { GcalYearView scrolledwindow {
border-top-width: 0; border-top-width: 0;
border-bottom-width: 0; border-bottom-width: 0;
} }
GcalYearView GtkButton { GcalYearView button {
border-radius: 0; border-radius: 0;
border-bottom-width: 0; border-bottom-width: 0;
} }
GtkPopover.events { popover.events {
background-color: @theme_bg_color; background-color: @theme_bg_color;
padding: 0; padding: 0;
} }
GtkPopover.events GtkBox { popover.events box {
border-top-left-radius: 6px; border-top-left-radius: 6px;
border-top-right-radius: 6px; border-top-right-radius: 6px;
} }
GtkPopover.events GtkListBox { popover.events list {
background-color: @theme_bg_color; background-color: @theme_bg_color;
border-radius: 6px; border-radius: 6px;
} }
GtkPopover.events GtkScrolledWindow { popover.events scrolledwindow {
border-width: 0; border-width: 0;
} }
GtkPopover.events GtkButton { popover.events button {
border-radius: 6px; border-radius: 6px;
border-top-left-radius: 0; border-top-left-radius: 0;
border-top-right-radius: 0; border-top-right-radius: 0;
@@ -179,28 +179,28 @@ GtkPopover.events GtkButton {
box-shadow: none; box-shadow: none;
} }
GcalEventWidget { event-widget {
border-radius: 2px; border-radius: 2px;
margin: 2px; margin: 2px;
padding: 4px; padding: 4px;
font: 10; font: 10;
} }
GcalEventWidget.color-dark { event-widget.color-dark {
color: white; color: white;
outline-color: rgba(0, 0, 0, 0.3); outline-color: rgba(0, 0, 0, 0.3);
} }
GcalEventWidget.color-dark:backdrop { event-widget.color-dark:backdrop {
color: rgba(255, 255, 255, 0.3); color: rgba(255, 255, 255, 0.3);
} }
GcalEventWidget.color-light { event-widget.color-light {
color: black; color: black;
outline-color: rgba(255, 255, 255, 0.5); outline-color: rgba(255, 255, 255, 0.5);
} }
GcalEventWidget.color-light:backdrop { event-widget.color-light:backdrop {
color: rgba(0, 0, 0, 0.3); color: rgba(0, 0, 0, 0.3);
} }
+11 -9
View File
@@ -337,7 +337,7 @@ gather_button_event_data (GcalMonthView *view,
cell_height = (gtk_widget_get_allocated_height (widget) - start_grid_y) / 6.0; cell_height = (gtk_widget_get_allocated_height (widget) - start_grid_y) / 6.0;
context = gtk_widget_get_style_context (widget); context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget); state = gtk_style_context_get_state (context);
gtk_style_context_save (context); gtk_style_context_save (context);
gtk_style_context_add_class (context, "overflow"); gtk_style_context_add_class (context, "overflow");
gtk_style_context_get (context, state, "font", &ofont_desc, "padding-bottom", &padding_bottom, NULL); gtk_style_context_get (context, state, "font", &ofont_desc, "padding-bottom", &padding_bottom, NULL);
@@ -389,7 +389,7 @@ get_start_grid_y (GtkWidget *widget)
gdouble start_grid_y; gdouble start_grid_y;
context = gtk_widget_get_style_context (widget); context = gtk_widget_get_style_context (widget);
state_flags = gtk_widget_get_state_flags (widget); state_flags = gtk_style_context_get_state (context);
layout = gtk_widget_create_pango_layout (widget, NULL); layout = gtk_widget_create_pango_layout (widget, NULL);
@@ -544,7 +544,7 @@ rebuild_popover_for_day (GcalMonthView *view,
cell_height = (gtk_widget_get_allocated_height (GTK_WIDGET (view)) - start_grid_y) / 6.0; cell_height = (gtk_widget_get_allocated_height (GTK_WIDGET (view)) - start_grid_y) / 6.0;
context = gtk_widget_get_style_context (GTK_WIDGET (view)); context = gtk_widget_get_style_context (GTK_WIDGET (view));
state = gtk_widget_get_state_flags (GTK_WIDGET (view)); state = gtk_style_context_get_state (context);
gtk_style_context_save (context); gtk_style_context_save (context);
gtk_style_context_add_class (context, "overflow"); gtk_style_context_add_class (context, "overflow");
gtk_style_context_get (context, state, "font", &ofont_desc, "padding-bottom", &padding_bottom, NULL); gtk_style_context_get (context, state, "font", &ofont_desc, "padding-bottom", &padding_bottom, NULL);
@@ -784,6 +784,8 @@ gcal_month_view_class_init (GcalMonthViewClass *klass)
subscriber_view_class->clear_state = gcal_month_view_clear_state; subscriber_view_class->clear_state = gcal_month_view_clear_state;
g_object_class_override_property (object_class, PROP_DATE, "active-date"); g_object_class_override_property (object_class, PROP_DATE, "active-date");
gtk_widget_class_set_css_name (widget_class, "calendar-view");
} }
static void static void
@@ -803,8 +805,6 @@ gcal_month_view_init (GcalMonthView *self)
priv->pressed_overflow_indicator = -1; priv->pressed_overflow_indicator = -1;
priv->hovered_overflow_indicator = -1; priv->hovered_overflow_indicator = -1;
gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (self)), "calendar-view");
priv->k = gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL; priv->k = gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL;
priv->overflow_popover = gtk_popover_new (GTK_WIDGET (self)); priv->overflow_popover = gtk_popover_new (GTK_WIDGET (self));
@@ -992,6 +992,7 @@ gcal_month_view_size_allocate (GtkWidget *widget,
{ {
GcalSubscriberViewPrivate *ppriv; GcalSubscriberViewPrivate *ppriv;
GcalMonthViewPrivate *priv; GcalMonthViewPrivate *priv;
GtkStyleContext *context;
gint i, j, sw, shown_rows; gint i, j, sw, shown_rows;
@@ -1013,6 +1014,7 @@ gcal_month_view_size_allocate (GtkWidget *widget,
gpointer key, value; gpointer key, value;
priv = gcal_month_view_get_instance_private (GCAL_MONTH_VIEW (widget)); priv = gcal_month_view_get_instance_private (GCAL_MONTH_VIEW (widget));
context = gtk_widget_get_style_context (widget);
ppriv = GCAL_SUBSCRIBER_VIEW (widget)->priv; ppriv = GCAL_SUBSCRIBER_VIEW (widget)->priv;
if (!ppriv->children_changed && if (!ppriv->children_changed &&
@@ -1037,7 +1039,7 @@ gcal_month_view_size_allocate (GtkWidget *widget,
if (gtk_widget_get_realized (widget)) if (gtk_widget_get_realized (widget))
gdk_window_move_resize (priv->event_window, allocation->x, allocation->y, allocation->width, allocation->height); gdk_window_move_resize (priv->event_window, allocation->x, allocation->y, allocation->width, allocation->height);
gtk_style_context_get (gtk_widget_get_style_context (widget), gtk_widget_get_state_flags (widget), gtk_style_context_get (context, gtk_style_context_get_state (context),
"font", &font_desc, "padding-bottom", &padding_bottom, NULL); "font", &font_desc, "padding-bottom", &padding_bottom, NULL);
layout = gtk_widget_create_pango_layout (widget, _("Other events")); layout = gtk_widget_create_pango_layout (widget, _("Other events"));
@@ -1167,7 +1169,7 @@ gcal_month_view_size_allocate (GtkWidget *widget,
} }
gtk_style_context_get_margin (gtk_widget_get_style_context (child_widget), gtk_style_context_get_margin (gtk_widget_get_style_context (child_widget),
gtk_widget_get_state_flags (child_widget), gtk_style_context_get_state (context),
&margin); &margin);
pos_x = cell_width * column + margin.left; pos_x = cell_width * column + margin.left;
@@ -1229,7 +1231,7 @@ gcal_month_view_size_allocate (GtkWidget *widget,
if (size_left[i] > natural_height) if (size_left[i] > natural_height)
{ {
gtk_style_context_get_margin (gtk_widget_get_style_context (child_widget), gtk_style_context_get_margin (gtk_widget_get_style_context (child_widget),
gtk_widget_get_state_flags (child_widget), gtk_style_context_get_state (context),
&margin); &margin);
pos_x = cell_width * (i % 7) + margin.left; pos_x = cell_width * (i % 7) + margin.left;
@@ -1296,7 +1298,7 @@ gcal_month_view_draw (GtkWidget *widget,
/* fonts and colors selection */ /* fonts and colors selection */
context = gtk_widget_get_style_context (widget); context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget); state = gtk_style_context_get_state (context);
gtk_style_context_get (context, state | GTK_STATE_FLAG_SELECTED, "font", &sfont_desc, NULL); gtk_style_context_get (context, state | GTK_STATE_FLAG_SELECTED, "font", &sfont_desc, NULL);