[gimp] app: use gimp_cairo_add_arc() in GimpDial
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: use gimp_cairo_add_arc() in GimpDial
- Date: Sun, 25 May 2014 18:13:55 +0000 (UTC)
commit 06f5e47a0ec2e214a70699bc2ba57e3879bd4334
Author: Michael Natterer <mitch gimp org>
Date: Sun May 25 20:11:51 2014 +0200
app: use gimp_cairo_add_arc() in GimpDial
app/widgets/gimpdial.c | 46 ++++++++++++++++++----------------------------
1 files changed, 18 insertions(+), 28 deletions(-)
---
diff --git a/app/widgets/gimpdial.c b/app/widgets/gimpdial.c
index 5d0901c..22666b4 100644
--- a/app/widgets/gimpdial.c
+++ b/app/widgets/gimpdial.c
@@ -33,6 +33,8 @@
#include "widgets-types.h"
+#include "core/gimp-cairo.h"
+
#include "gimpdial.h"
@@ -677,9 +679,10 @@ gimp_dial_draw_arrows (cairo_t *cr,
gdouble beta,
gboolean clockwise)
{
- gint radius = size / 2.0 - 1.5;
- gint dist;
- gint direction = clockwise ? -1 : 1;
+ gint radius = size / 2.0 - 1.5;
+ gint direction = clockwise ? -1 : 1;
+ gint slice_dist;
+ gdouble slice;
#define REL 0.8
#define DEL 0.1
@@ -708,9 +711,7 @@ gimp_dial_draw_arrows (cairo_t *cr,
ROUND (radius + radius * REL * cos (alpha + DEL)),
ROUND (radius - radius * REL * sin (alpha + DEL)));
- cairo_move_to (cr,
- radius,
- radius);
+ cairo_move_to (cr, radius, radius);
cairo_line_to (cr,
ROUND (radius + radius * cos (beta)),
ROUND (radius - radius * sin (beta)));
@@ -729,37 +730,26 @@ gimp_dial_draw_arrows (cairo_t *cr,
ROUND (radius + radius * REL * cos (beta + DEL)),
ROUND (radius - radius * REL * sin (beta + DEL)));
- dist = radius * SEGMENT_FRACTION;
+ slice_dist = radius * SEGMENT_FRACTION;
cairo_move_to (cr,
- radius + dist * cos (beta),
- radius - dist * sin (beta));
+ radius + slice_dist * cos (beta),
+ radius - slice_dist * sin (beta));
cairo_line_to (cr,
- ROUND (radius + dist * cos (beta) +
+ ROUND (radius + slice_dist * cos (beta) +
direction * TICK * sin (beta)),
- ROUND (radius - dist * sin(beta) +
+ ROUND (radius - slice_dist * sin(beta) +
direction * TICK * cos (beta)));
cairo_new_sub_path (cr);
- if (! clockwise)
- {
- cairo_arc_negative (cr,
- radius,
- radius,
- dist,
- -alpha,
- -beta);
- }
+ if (clockwise)
+ slice = -normalize_angle (alpha - beta);
else
- {
- cairo_arc (cr,
- radius,
- radius,
- dist,
- -alpha,
- -beta);
- }
+ slice = normalize_angle (beta - alpha);
+
+ gimp_cairo_add_arc (cr, radius, radius, slice_dist,
+ alpha, slice);
cairo_set_line_width (cr, 3.0);
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.6);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]