diff --git a/ChangeLog b/ChangeLog index 9370cd3cea..25a89a80df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-11-19 Sven Neumann + + * app/widgets/gimpcurveview.[ch]: draw a base-line with the grid. + Not sure if this should stay enabled for the Curves tool... + 2007-11-19 Tor Lillqvist * libgimpwidgets/gimpcolorscale.c diff --git a/app/widgets/gimpcurveview.c b/app/widgets/gimpcurveview.c index c012a2ebc5..37e51df67e 100644 --- a/app/widgets/gimpcurveview.c +++ b/app/widgets/gimpcurveview.c @@ -36,6 +36,7 @@ enum { PROP_0, + PROP_BASE_LINE, PROP_GRID_ROWS, PROP_GRID_COLUMNS }; @@ -93,6 +94,12 @@ gimp_curve_view_class_init (GimpCurveViewClass *klass) widget_class->leave_notify_event = gimp_curve_view_leave_notify; widget_class->key_press_event = gimp_curve_view_key_press; + g_object_class_install_property (object_class, PROP_BASE_LINE, + g_param_spec_boolean ("base-line", + NULL, NULL, + TRUE, + GIMP_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_GRID_ROWS, g_param_spec_int ("grid-rows", NULL, NULL, 0, 100, 8, @@ -121,6 +128,7 @@ gimp_curve_view_init (GimpCurveView *view) gtk_widget_add_events (GTK_WIDGET (view), GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | + GDK_BUTTON1_MOTION_MASK | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_LEAVE_NOTIFY_MASK); @@ -172,6 +180,9 @@ gimp_curve_view_set_property (GObject *object, case PROP_GRID_COLUMNS: view->grid_columns = g_value_get_int (value); break; + case PROP_BASE_LINE: + view->draw_base_line = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -194,6 +205,9 @@ gimp_curve_view_get_property (GObject *object, case PROP_GRID_COLUMNS: g_value_set_int (value, view->grid_columns); break; + case PROP_BASE_LINE: + g_value_set_boolean (value, view->draw_base_line); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -256,6 +270,12 @@ gimp_curve_view_draw_grid (GimpCurveView *view, cairo_line_to (cr, border + x, border + height - 1); } + if (view->draw_base_line) + { + cairo_move_to (cr, border, border + height - 1); + cairo_line_to (cr, border + width - 1, border); + } + cairo_set_line_width (cr, 0.6); cairo_stroke (cr); @@ -768,14 +788,7 @@ gimp_curve_view_key_press (GtkWidget *widget, GtkWidget * gimp_curve_view_new (void) { - GtkWidget *view = g_object_new (GIMP_TYPE_CURVE_VIEW, NULL); - - gtk_widget_add_events (view, - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_BUTTON1_MOTION_MASK); - - return view; + return g_object_new (GIMP_TYPE_CURVE_VIEW, NULL); } static void diff --git a/app/widgets/gimpcurveview.h b/app/widgets/gimpcurveview.h index 61ba660b42..4225ea45df 100644 --- a/app/widgets/gimpcurveview.h +++ b/app/widgets/gimpcurveview.h @@ -39,6 +39,7 @@ struct _GimpCurveView GimpCurve *curve; + gboolean draw_base_line; gint grid_rows; gint grid_columns;