[gnome-calendar/wip/gbsneto/css-nodes] year-view: port to css nodes



commit 2d9d5472807290b03c4a1d8821a6cc52a3c9c39d
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Dec 9 02:16:02 2015 -0200

    year-view: port to css nodes
    
    Mainly by removing the gtk_widget_get_state_flags()
    calls.

 data/theme/gtk-styles.css |    8 ++++----
 data/ui/year-view.ui      |    3 +++
 src/gcal-year-view.c      |   25 ++++++++++++++++---------
 3 files changed, 23 insertions(+), 13 deletions(-)
---
diff --git a/data/theme/gtk-styles.css b/data/theme/gtk-styles.css
index 8af32f9..286ec3a 100644
--- a/data/theme/gtk-styles.css
+++ b/data/theme/gtk-styles.css
@@ -134,20 +134,20 @@ box.sidebar {
     border-style: solid;
 }
 
-GcalYearView box.sidebar:dir(ltr) {
+.year-view box.sidebar:dir(ltr) {
     border-left-width: 1px;
 }
 
-GcalYearView box.sidebar:dir(rtl) {
+.year-view box.sidebar:dir(rtl) {
     border-right-width: 1px;
 }
 
-GcalYearView scrolledwindow {
+.year-view scrolledwindow {
     border-top-width: 0;
     border-bottom-width: 0;
 }
 
-GcalYearView button {
+.year-view button {
     border-radius: 0;
     border-bottom-width: 0;
 }
diff --git a/data/ui/year-view.ui b/data/ui/year-view.ui
index 231c9c4..e150815 100644
--- a/data/ui/year-view.ui
+++ b/data/ui/year-view.ui
@@ -2,6 +2,9 @@
 <interface>
   <!-- interface-requires gtk+ 3.10 -->
   <template class="GcalYearView" parent="GtkBox">
+    <style>
+      <class name="year-view"/>
+    </style>
     <child>
       <object class="GtkDrawingArea" id="navigator">
         <property name="visible">True</property>
diff --git a/src/gcal-year-view.c b/src/gcal-year-view.c
index 605449f..4d9b321 100644
--- a/src/gcal-year-view.c
+++ b/src/gcal-year-view.c
@@ -539,7 +539,7 @@ draw_month_grid (GcalYearView *year_view,
 
   cairo_save (cr);
   context = gtk_widget_get_style_context (widget);
-  state_flags = gtk_widget_get_state_flags (widget);
+  state_flags = gtk_style_context_get_state (context);
   sw = 1 - 2 * priv->k;
   box_side = priv->navigator_grid->box_side;
   x = priv->navigator_grid->coordinates[month_nr].x;
@@ -767,7 +767,7 @@ draw_navigator (GcalYearView *year_view,
 
   priv = year_view->priv;
   context = gtk_widget_get_style_context (GTK_WIDGET (year_view));
-  state_flags = gtk_widget_get_state_flags (GTK_WIDGET (year_view));
+  state_flags = gtk_style_context_get_state (context);
   sw = 1 - 2 * priv->k;
   width = gtk_widget_get_allocated_width (widget);
 
@@ -784,7 +784,7 @@ draw_navigator (GcalYearView *year_view,
 
   /* draw header on navigator */
   context = gtk_widget_get_style_context (widget);
-  state_flags = gtk_widget_get_state_flags (GTK_WIDGET (year_view));
+  state_flags = gtk_style_context_get_state (context);
 
   header_layout = gtk_widget_create_pango_layout (widget, header_str);
   pango_layout_set_font_description (header_layout, font_desc);
@@ -1016,10 +1016,13 @@ gcal_year_view_get_preferred_width (GtkWidget *widget,
                                     gint      *natural)
 {
   GcalYearViewPrivate *priv = GCAL_YEAR_VIEW (widget)->priv;
+  GtkStyleContext *context;
   gint padding_left;
 
-  gtk_style_context_get (gtk_widget_get_style_context (priv->navigator),
-                         gtk_widget_get_state_flags (priv->navigator),
+  context = gtk_widget_get_style_context (priv->navigator);
+
+  gtk_style_context_get (context,
+                         gtk_style_context_get_state (context),
                          "padding-left", &padding_left, NULL);
 
   if (minimum != NULL)
@@ -1035,10 +1038,13 @@ gcal_year_view_get_preferred_height_for_width (GtkWidget *widget,
                                                gint      *natural)
 {
   GcalYearViewPrivate *priv = GCAL_YEAR_VIEW (widget)->priv;
+  GtkStyleContext *context;
   gint padding_top;
 
-  gtk_style_context_get (gtk_widget_get_style_context (priv->navigator),
-                         gtk_widget_get_state_flags (priv->navigator),
+  context = gtk_widget_get_style_context (priv->navigator);
+
+  gtk_style_context_get (context,
+                         gtk_style_context_get_state (context),
                          "padding-top", &padding_top, NULL);
 
   if (minimum != NULL)
@@ -1058,7 +1064,7 @@ gcal_year_view_size_allocate (GtkWidget     *widget,
   context = gtk_widget_get_style_context (widget);
   gtk_style_context_save (context);
   gtk_style_context_add_class (context, "year-navigator");
-  gtk_style_context_get (context, gtk_widget_get_state_flags (widget), "padding-left", &padding_left, NULL);
+  gtk_style_context_get (context, gtk_style_context_get_state (context), "padding-left", &padding_left, 
NULL);
   gtk_style_context_restore (context);
 
   priv->popover_mode = (alloc->width < NAVIGATOR_CELL_WIDTH * 4 + padding_left * 8 + 
SIDEBAR_PREFERRED_WIDTH);
@@ -1309,6 +1315,8 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, navigator_motion_notify_cb);
   gtk_widget_class_bind_template_callback (widget_class, add_event_clicked_cb);
   gtk_widget_class_bind_template_callback (widget_class, popover_closed_cb);
+
+  gtk_widget_class_set_css_name (widget_class, "calendar-view");
 }
 
 static void
@@ -1317,7 +1325,6 @@ gcal_year_view_init (GcalYearView *self)
   self->priv = gcal_year_view_get_instance_private (self);
 
   gtk_widget_init_template (GTK_WIDGET (self));
-  gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (self)), "calendar-view");
 
   if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_LTR)
     self->priv->k = 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]