[gimp/gtk3-port: 229/246] app: port GimpCurveView to GtkStyleContext
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gtk3-port: 229/246] app: port GimpCurveView to GtkStyleContext
- Date: Mon, 28 Feb 2011 15:35:19 +0000 (UTC)
commit 4d4d3a4dce9949b462cdb5516066bd2d4778f3ca
Author: Michael Natterer <mitch gimp org>
Date: Mon Feb 7 22:20:55 2011 +0100
app: port GimpCurveView to GtkStyleContext
reusing the new grid-color property added in the parent class.
app/widgets/gimpcurveview.c | 54 ++++++++++++++++++++++++------------------
1 files changed, 31 insertions(+), 23 deletions(-)
---
diff --git a/app/widgets/gimpcurveview.c b/app/widgets/gimpcurveview.c
index c16166b..3edbc94 100644
--- a/app/widgets/gimpcurveview.c
+++ b/app/widgets/gimpcurveview.c
@@ -35,6 +35,7 @@
#include "gimpclipboard.h"
#include "gimpcurveview.h"
+#include "gimpwidgets-utils.h"
enum
@@ -450,21 +451,29 @@ static gboolean
gimp_curve_view_draw (GtkWidget *widget,
cairo_t *cr)
{
- GimpCurveView *view = GIMP_CURVE_VIEW (widget);
- GtkStyle *style = gtk_widget_get_style (widget);
- GtkAllocation allocation;
- GList *list;
- gint border;
- gint width;
- gint height;
- gdouble x, y;
- gint i;
-
+ GimpCurveView *view = GIMP_CURVE_VIEW (widget);
+ GtkStyleContext *style = gtk_widget_get_style_context (widget);
+ GtkAllocation allocation;
+ GdkRGBA grid_color;
+ GdkRGBA fg_color;
+ GdkRGBA bg_color;
+ GList *list;
+ gint border;
+ gint width;
+ gint height;
+ gdouble x, y;
+ gint i;
+
+ cairo_save (cr);
GTK_WIDGET_CLASS (parent_class)->draw (widget, cr);
+ cairo_restore (cr);
if (! view->curve)
return FALSE;
+ gtk_style_context_save (style);
+ gtk_style_context_add_class (style, GTK_STYLE_CLASS_ENTRY);
+
gtk_widget_get_allocation (widget, &allocation);
border = GIMP_HISTOGRAM_VIEW (view)->border_width;
@@ -473,19 +482,21 @@ gimp_curve_view_draw (GtkWidget *widget,
if (gtk_widget_has_focus (widget))
{
- gtk_paint_focus (style, cr,
- gtk_widget_get_state (widget),
- widget, NULL,
- border - 2, border - 2,
- width + 4, height + 4);
+ gtk_render_focus (style, cr,
+ border - 2, border - 2,
+ width + 4, height + 4);
}
cairo_set_line_width (cr, 1.0);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
cairo_translate (cr, 0.5, 0.5);
+ gtk_style_context_get_color (style, 0, &fg_color);
+ gtk_style_context_get_background_color (style, 0, &bg_color);
+ gimp_get_style_color (widget, "grid-color", &grid_color);
+
/* Draw the grid lines */
- gdk_cairo_set_source_color (cr, &style->dark[GTK_STATE_NORMAL]);
+ gdk_cairo_set_source_rgba (cr, &grid_color);
gimp_curve_view_draw_grid (view, cr, width, height, border);
@@ -508,7 +519,7 @@ gimp_curve_view_draw (GtkWidget *widget,
if (view->curve_color)
gimp_cairo_set_source_rgb (cr, view->curve_color);
else
- gdk_cairo_set_source_color (cr, &style->text[GTK_STATE_NORMAL]);
+ gdk_cairo_set_source_rgba (cr, &fg_color);
gimp_curve_view_draw_curve (view, cr, view->curve,
width, height, border);
@@ -516,8 +527,6 @@ gimp_curve_view_draw (GtkWidget *widget,
/* Draw the points */
if (gimp_curve_get_curve_type (view->curve) == GIMP_CURVE_SMOOTH)
{
- gdk_cairo_set_source_color (cr, &style->text[GTK_STATE_NORMAL]);
-
/* Draw the unselected points */
for (i = 0; i < view->curve->n_points; i++)
{
@@ -544,8 +553,6 @@ gimp_curve_view_draw (GtkWidget *widget,
gint layout_y;
gchar buf[32];
- gdk_cairo_set_source_color (cr, &style->text[GTK_STATE_NORMAL]);
-
/* draw the color line */
cairo_move_to (cr,
border + ROUND ((gdouble) (width - 1) * view->xpos),
@@ -608,7 +615,6 @@ gimp_curve_view_draw (GtkWidget *widget,
cairo_push_group (cr);
- gdk_cairo_set_source_color (cr, &style->text[GTK_STATE_NORMAL]);
cairo_rectangle (cr, x + 0.5, y + 0.5, w, h);
cairo_fill_preserve (cr);
@@ -641,7 +647,7 @@ gimp_curve_view_draw (GtkWidget *widget,
pango_layout_set_text (view->cursor_layout, buf, -1);
- gdk_cairo_set_source_color (cr, &style->base[GTK_STATE_NORMAL]);
+ gdk_cairo_set_source_rgba (cr, &bg_color);
cairo_move_to (cr, x, y);
pango_cairo_show_layout (cr, view->cursor_layout);
@@ -651,6 +657,8 @@ gimp_curve_view_draw (GtkWidget *widget,
cairo_paint_with_alpha (cr, 0.6);
}
+ gtk_style_context_restore (style);
+
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]