[gitg/gtk3: 17/20] Port to GtkStyleContext and GdkRGBA
- From: Garrett Regier <gregier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg/gtk3: 17/20] Port to GtkStyleContext and GdkRGBA
- Date: Tue, 8 Feb 2011 16:26:50 +0000 (UTC)
commit 0e71d021270a829b283eb2a82ec4f892f65ff9cc
Author: Garrett Regier <alias301 gmail com>
Date: Sun Jan 2 21:38:09 2011 -0800
Port to GtkStyleContext and GdkRGBA
gitg/gitg-diff-line-renderer.c | 81 ++++++++++++++++-----------------------
gitg/gitg-repository-dialog.c | 9 +++-
gitg/gitg-stat-view.c | 39 +++++++++----------
3 files changed, 58 insertions(+), 71 deletions(-)
---
diff --git a/gitg/gitg-diff-line-renderer.c b/gitg/gitg-diff-line-renderer.c
index 7080fe2..8da7f2b 100644
--- a/gitg/gitg-diff-line-renderer.c
+++ b/gitg/gitg-diff-line-renderer.c
@@ -95,14 +95,14 @@ gitg_diff_line_renderer_get_property (GObject *object,
}
static void
-darken_or_lighten (cairo_t *ctx,
- GdkColor const *color)
+darken_or_lighten (cairo_t *ctx,
+ GdkRGBA const *color)
{
float r, g, b;
- r = color->red / 65535.0;
- g = color->green / 65535.0;
- b = color->blue / 65535.0;
+ r = color->red;
+ g = color->green;
+ b = color->blue;
if ((r + g + b) / 3 > 0.5)
{
@@ -130,9 +130,10 @@ render_label (GitgDiffLineRenderer *lr,
GtkCellRendererState flags)
{
PangoLayout *layout;
- GtkStyle *style;
+ GtkStyleContext *style_context;
GtkStateType state;
gint pixel_height;
+ GdkRGBA fg_color, bg_color;
layout = gtk_widget_create_pango_layout (widget, "");
@@ -143,12 +144,13 @@ render_label (GitgDiffLineRenderer *lr,
pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER);
- style = gtk_widget_get_style (widget);
+ style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state (widget);
+ gtk_style_context_get_color (style_context, state, &fg_color);
+ gtk_style_context_get_background_color (style_context, state, &bg_color);
-
- gdk_cairo_set_source_color (ctx, &(style->fg[state]));
+ gdk_cairo_set_source_rgba (ctx, &fg_color);
gitg_utils_rounded_rectangle (ctx,
cell_area->x + 0.5,
@@ -159,12 +161,12 @@ render_label (GitgDiffLineRenderer *lr,
cairo_fill_preserve (ctx);
- darken_or_lighten (ctx, &(style->fg[state]));
+ darken_or_lighten (ctx, &fg_color);
cairo_set_line_width (ctx, 1);
cairo_stroke (ctx);
- gdk_cairo_set_source_color (ctx, &(style->base[state]));
+ gdk_cairo_set_source_rgba (ctx, &bg_color);
cairo_move_to (ctx,
cell_area->x + cell_area->width / 2,
@@ -172,13 +174,8 @@ render_label (GitgDiffLineRenderer *lr,
pango_cairo_show_layout (ctx, layout);
- /*gtk_draw_layout (style,
+ /*gtk_render_layout (style_context,
ctx,
- state,
- FALSE,
- NULL,
- widget,
- NULL,
cell_area->x + cell_area->width / 2,
cell_area->y,
layout);*/
@@ -198,7 +195,8 @@ render_lines (GitgDiffLineRenderer *lr,
gchar new_str[16];
guint xpad;
guint ypad;
- GtkStyle *style;
+ GtkWidget *widget;
+ GtkStyleContext *style_context;
PangoLayout *layout = gtk_widget_create_pango_layout (widget, "");
pango_layout_set_width (layout, cell_area->width / 2);
@@ -226,42 +224,29 @@ render_lines (GitgDiffLineRenderer *lr,
g_object_get (lr, "xpad", &xpad, "ypad", &ypad, NULL);
pango_layout_set_text (layout, old_str, -1);
- style = gtk_widget_get_style (widget);
+ style_context = gtk_widget_get_style_context (widget);
- gtk_draw_layout (style,
- ctx,
- gtk_widget_get_state (widget),
- FALSE,
- NULL,
- widget,
- NULL,
- cell_area->x + cell_area->width / 2 - 1 - xpad,
- cell_area->y,
- layout);
+ gtk_render_layout (style_context,
+ ctx,
+ cell_area->x + cell_area->width / 2 - 1 - xpad,
+ cell_area->y,
+ layout);
pango_layout_set_text (layout, new_str, -1);
- gtk_draw_layout (style,
- ctx,
- gtk_widget_get_state (widget),
- FALSE,
- NULL,
- widget,
- NULL,
- cell_area->x + cell_area->width - xpad,
- cell_area->y,
- layout);
+ gtk_render_layout (style_context,
+ ctx,
+ cell_area->x + cell_area->width - xpad,
+ cell_area->y,
+ layout);
g_object_unref (layout);
- gtk_draw_vline (style,
- ctx,
- gtk_widget_get_state (widget),
- NULL,
- widget,
- NULL,
- background_area->y,
- background_area->y + background_area->height,
- background_area->x + background_area->width / 2);
+ gtk_render_line (style_context,
+ ctx,
+ background_area->x + background_area->width / 2,
+ background_area->y,
+ background_area->y + background_area->height,
+ background_area->x + background_area->width / 2);
}
static void
diff --git a/gitg/gitg-repository-dialog.c b/gitg/gitg-repository-dialog.c
index 0c4652c..1192119 100644
--- a/gitg/gitg-repository-dialog.c
+++ b/gitg/gitg-repository-dialog.c
@@ -304,6 +304,9 @@ on_fetch_begin_loading (GitgShell *shell, FetchInfo *info)
{
GtkTreeIter iter;
GtkTreePath *path = gtk_tree_row_reference_get_path (info->reference);
+ GtkStyleContext *style_context;
+ GValue cycle_duration = {0,};
+ GValue num_steps = {0,};
gtk_tree_model_get_iter (GTK_TREE_MODEL (info->dialog->priv->list_store_remotes),
&iter,
@@ -317,8 +320,10 @@ on_fetch_begin_loading (GitgShell *shell, FetchInfo *info)
g_value_init (&cycle_duration, G_TYPE_UINT);
g_value_init (&num_steps, G_TYPE_UINT);
- gtk_style_get_style_property (style, GTK_TYPE_SPINNER, "num-steps", &num_steps);
- gtk_style_get_style_property (style, GTK_TYPE_SPINNER, "cycle-duration", &cycle_duration);
+ style_context = gtk_widget_get_style_context (GTK_WIDGET (info->dialog->priv->tree_view_remotes));
+
+ gtk_style_context_get_style_property (style_context, "num-steps", &num_steps);
+ gtk_style_context_get_style_property (style_context, "cycle-duration", &cycle_duration);
info->pulse_id = g_timeout_add (g_value_get_uint (&cycle_duration) /
g_value_get_uint (&num_steps),
diff --git a/gitg/gitg-stat-view.c b/gitg/gitg-stat-view.c
index d0b8662..d22573d 100644
--- a/gitg/gitg-stat-view.c
+++ b/gitg/gitg-stat-view.c
@@ -63,9 +63,9 @@ gitg_stat_view_finalize (GObject *object)
static void
update_colors (GitgStatView *view)
{
- GtkStyle *style;
- GdkColor bg_color;
- gdouble r, g, b;
+ GtkStyleContext *style_context;
+ GtkStateFlags state;
+ GdkRGBA bg_color;
gdouble hue, sat, val;
if (!gtk_widget_get_realized (GTK_WIDGET (view)))
@@ -73,14 +73,11 @@ update_colors (GitgStatView *view)
return;
}
- style = gtk_widget_get_style (GTK_WIDGET (view));
- bg_color = style->base[gtk_widget_get_state (GTK_WIDGET (view))];
+ style_context = gtk_widget_get_style_context (GTK_WIDGET (view));
+ state = gtk_widget_get_state (GTK_WIDGET (view));
+ gtk_style_context_get_background_color (style_context, state, &bg_color);
- r = bg_color.red / 65535.0;
- g = bg_color.green / 65535.0;
- b = bg_color.blue / 65535.0;
-
- gtk_rgb_to_hsv (r, g, b, &hue, &sat, &val);
+ gtk_rgb_to_hsv (bg_color.red, bg_color.green, bg_color.blue, &hue, &sat, &val);
sat = MIN(sat * 0.5 + 0.5, 1);
val = MIN((pow(val + 1, 3) - 1) / 7 * 0.6 + 0.2, 1);
@@ -116,21 +113,21 @@ gitg_stat_view_realize (GtkWidget *widget)
static void
update_styles (GitgStatView *view)
{
- gtk_style_get (gtk_widget_get_style (GTK_WIDGET (view)),
- GITG_TYPE_STAT_VIEW,
- "radius", &view->priv->radius,
- "stat-padding", &view->priv->stat_padding,
- "show-lines", &view->priv->show_lines,
- "lines-spacing", &view->priv->lines_spacing,
- NULL);
+ gtk_style_context_get_style (gtk_widget_get_style_context (GTK_WIDGET (view)),
+ gtk_widget_get_state (GTK_WIDGET (view)),
+ "radius", &view->priv->radius,
+ "stat-padding", &view->priv->stat_padding,
+ "show-lines", &view->priv->show_lines,
+ "lines-spacing", &view->priv->lines_spacing,
+ NULL);
}
static void
-gitg_stat_view_style_set (GtkWidget *widget, GtkStyle *prev_style)
+gitg_stat_view_style_updated (GtkWidget *widget)
{
- if (GTK_WIDGET_CLASS (gitg_stat_view_parent_class)->style_set)
+ if (GTK_WIDGET_CLASS (gitg_stat_view_parent_class)->style_updated)
{
- GTK_WIDGET_CLASS (gitg_stat_view_parent_class)->style_set (widget, prev_style);
+ GTK_WIDGET_CLASS (gitg_stat_view_parent_class)->style_updated (widget);
}
update_colors (GITG_STAT_VIEW (widget));
@@ -405,8 +402,8 @@ gitg_stat_view_class_init (GitgStatViewClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
- widget_class->style_set = gitg_stat_view_style_set;
widget_class->draw = gitg_stat_view_draw;
+ widget_class->style_updated = gitg_stat_view_style_updated;
widget_class->realize = gitg_stat_view_realize;
widget_class->configure_event = gitg_stat_view_configure;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]