[gnome-calendar/wip/pandusonu/week-view: 15/31] week-header: override the size_allocate()



commit 99c52c31f672e3690d14eeb60d3bd753fb06d1c3
Author: pandusonu2 <pandu sonu yahoo com>
Date:   Tue Jun 21 19:27:35 2016 +0530

    week-header: override the size_allocate()
    
    Override the size_allocate() widget function to set proper alignment for the grid.

 src/views/gcal-week-header.c |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/src/views/gcal-week-header.c b/src/views/gcal-week-header.c
index bbc19cb..bfeb197 100644
--- a/src/views/gcal-week-header.c
+++ b/src/views/gcal-week-header.c
@@ -65,6 +65,9 @@ static void           gcal_week_header_set_property         (GObject      *objec
                                                              const GValue *value,
                                                              GParamSpec   *pspec);
 
+static void           gcal_week_header_size_allocate        (GtkWidget     *widget,
+                                                             GtkAllocation *alloc);
+
 static gboolean       gcal_week_header_draw                 (GcalWeekHeader *self,
                                                              cairo_t        *cr,
                                                              GtkWidget      *widget);
@@ -271,6 +274,27 @@ gcal_week_header_set_property (GObject      *object,
     }
 }
 
+static void
+gcal_week_header_size_allocate (GtkWidget     *widget,
+                                GtkAllocation *alloc)
+{
+  GcalWeekHeader *self = GCAL_WEEK_HEADER (widget);
+  GtkStyleContext *context;
+  GtkStateFlags state;
+
+  PangoFontDescription *bold_font;
+
+  context = gtk_widget_get_style_context (self->draw_area);
+  state = gtk_widget_get_state_flags (self->draw_area);
+
+  gtk_style_context_get (context, state, "font", &bold_font, NULL);
+  pango_font_description_set_weight (bold_font, PANGO_WEIGHT_SEMIBOLD);
+
+  gtk_widget_set_margin_top (self->grid, (4 * pango_font_description_get_size (bold_font)) / PANGO_SCALE);
+
+  GTK_WIDGET_CLASS (gcal_week_header_parent_class)->size_allocate (widget, alloc);
+}
+
 static gboolean
 gcal_week_header_draw (GcalWeekHeader *self,
                        cairo_t        *cr,
@@ -415,6 +439,8 @@ gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
   object_class->get_property = gcal_week_header_get_property;
   object_class->set_property = gcal_week_header_set_property;
 
+  widget_class->size_allocate = gcal_week_header_size_allocate;
+
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/week-header.ui");
 
   g_object_class_install_property (object_class,


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