event-widget: simplify rendering code

This commit is contained in:
Georges Basile Stavracas Neto
2016-02-18 04:02:46 -02:00
parent 2ed3bf4316
commit 21aa8ecde4
+10 -18
View File
@@ -29,10 +29,10 @@ struct _GcalEventWidget
/* properties */ /* properties */
GDateTime *dt_start; GDateTime *dt_start;
GDateTime *dt_end; GDateTime *dt_end;
gboolean has_reminders;
/* internal data */ /* internal data */
gboolean read_only; gboolean has_reminders : 1;
gboolean read_only : 1;
gchar *css_class; gchar *css_class;
GcalEvent *event; GcalEvent *event;
@@ -453,11 +453,13 @@ gcal_event_widget_draw (GtkWidget *widget,
pango_layout_set_width (layout, (width - (padding.left + padding.right) ) * PANGO_SCALE); pango_layout_set_width (layout, (width - (padding.left + padding.right) ) * PANGO_SCALE);
pango_cairo_update_layout (cr, layout); pango_cairo_update_layout (cr, layout);
/* Icon size */
pango_layout_get_pixel_size (layout, NULL, &layout_height);
icon_size = 4 * (layout_height / 4);
left_gap = 0; left_gap = 0;
if (self->has_reminders) if (self->has_reminders)
{ {
pango_layout_get_pixel_size (layout, NULL, &layout_height);
icon_size = layout_height;
left_gap = icon_size + padding.left; left_gap = icon_size + padding.left;
pango_layout_set_width (layout, (width - (left_gap + padding.left + padding.right) ) * PANGO_SCALE); pango_layout_set_width (layout, (width - (left_gap + padding.left + padding.right) ) * PANGO_SCALE);
} }
@@ -465,12 +467,6 @@ gcal_event_widget_draw (GtkWidget *widget,
right_gap = 0; right_gap = 0;
if (self->read_only) if (self->read_only)
{ {
if (icon_size == 0)
{
pango_layout_get_pixel_size (layout, NULL, &layout_height);
icon_size = layout_height;
}
right_gap = icon_size + padding.right; right_gap = icon_size + padding.right;
pango_layout_set_width (layout, (width - (left_gap + padding.left + padding.right + right_gap) ) * PANGO_SCALE); pango_layout_set_width (layout, (width - (left_gap + padding.left + padding.right + right_gap) ) * PANGO_SCALE);
} }
@@ -484,20 +480,18 @@ gcal_event_widget_draw (GtkWidget *widget,
GtkIconInfo *icon_info; GtkIconInfo *icon_info;
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
gboolean was_symbolic; gboolean was_symbolic;
gint multiplier;
multiplier = icon_size / 16;
icon_theme = gtk_icon_theme_get_default (); icon_theme = gtk_icon_theme_get_default ();
icon_info = gtk_icon_theme_lookup_icon (icon_theme, icon_info = gtk_icon_theme_lookup_icon (icon_theme,
"alarm-symbolic", "alarm-symbolic",
16 * multiplier, icon_size,
0); 0);
pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info, pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info,
context, context,
&was_symbolic, &was_symbolic,
NULL); NULL);
gdk_cairo_set_source_pixbuf (cr, pixbuf, padding.left, padding.top + ((icon_size - (16 * multiplier)) / 2)); gdk_cairo_set_source_pixbuf (cr, pixbuf, padding.left, padding.top);
g_object_unref (pixbuf); g_object_unref (pixbuf);
cairo_paint (cr); cairo_paint (cr);
} }
@@ -509,20 +503,18 @@ gcal_event_widget_draw (GtkWidget *widget,
GtkIconInfo *icon_info; GtkIconInfo *icon_info;
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
gboolean was_symbolic; gboolean was_symbolic;
gint multiplier;
multiplier = icon_size / 16;
icon_theme = gtk_icon_theme_get_default (); icon_theme = gtk_icon_theme_get_default ();
icon_info = gtk_icon_theme_lookup_icon (icon_theme, icon_info = gtk_icon_theme_lookup_icon (icon_theme,
"changes-prevent-symbolic", "changes-prevent-symbolic",
16 * multiplier, icon_size,
0); 0);
pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info, pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info,
context, context,
&was_symbolic, &was_symbolic,
NULL); NULL);
gdk_cairo_set_source_pixbuf (cr, pixbuf, width - right_gap, padding.top + ((icon_size - (16 * multiplier)) / 2)); gdk_cairo_set_source_pixbuf (cr, pixbuf, width - right_gap, padding.top);
g_object_unref (pixbuf); g_object_unref (pixbuf);
cairo_paint (cr); cairo_paint (cr);
} }