[gimp/gtk3-port: 231/237] app: port GimpCurveView to GtkStyleContext
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gtk3-port: 231/237] app: port GimpCurveView to GtkStyleContext
- Date: Wed, 9 Feb 2011 11:05:59 +0000 (UTC)
commit 3152173cce72971db800d7704aaa7d0d2ed2f941
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 4d64adb..d6d9cc6 100644
--- a/app/widgets/gimpcurveview.c
+++ b/app/widgets/gimpcurveview.c
@@ -34,6 +34,7 @@
#include "gimpclipboard.h"
#include "gimpcurveview.h"
+#include "gimpwidgets-utils.h"
enum
@@ -449,21 +450,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;
@@ -472,19 +481,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);
@@ -504,7 +515,7 @@ gimp_curve_view_draw (GtkWidget *widget,
}
/* Draw the curve */
- 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);
@@ -512,8 +523,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++)
{
@@ -540,8 +549,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),
@@ -604,7 +611,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);
@@ -637,7 +643,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);
@@ -647,6 +653,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]