[gtk+] roundedbox: Use a graphene_size_t for the corners



commit c04bece131ad7afec609c336b3f4735a9e1af279
Author: Benjamin Otte <otte redhat com>
Date:   Tue Dec 13 20:15:01 2016 +0100

    roundedbox: Use a graphene_size_t for the corners
    
    Obviously, I'm trying to port GtkRoundedBox to GskRoundedRect.
    
    This is the second step on that path.

 gtk/gtkcssshadowvalue.c    |   26 ++--
 gtk/gtkroundedbox.c        |  316 ++++++++++++++++++++++----------------------
 gtk/gtkroundedboxprivate.h |    8 +-
 3 files changed, 172 insertions(+), 178 deletions(-)
---
diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c
index 695ea24..8f7da51 100644
--- a/gtk/gtkcssshadowvalue.c
+++ b/gtk/gtkcssshadowvalue.c
@@ -665,15 +665,15 @@ draw_shadow (const GtkCssValue   *shadow,
 
 typedef struct {
   double radius;
-  GtkRoundedBoxCorner corner;
+  graphene_size_t corner;
 } CornerMask;
 
 static guint
 corner_mask_hash (CornerMask *mask)
 {
   return ((guint)mask->radius << 24) ^
-    ((guint)(mask->corner.horizontal*4)) << 12 ^
-    ((guint)(mask->corner.vertical*4)) << 0;
+    ((guint)(mask->corner.width*4)) << 12 ^
+    ((guint)(mask->corner.height*4)) << 0;
 }
 
 static gboolean
@@ -682,8 +682,8 @@ corner_mask_equal (CornerMask *mask1,
 {
   return
     mask1->radius == mask2->radius &&
-    mask1->corner.horizontal == mask2->corner.horizontal &&
-    mask1->corner.vertical == mask2->corner.vertical;
+    mask1->corner.width == mask2->corner.width &&
+    mask1->corner.height == mask2->corner.height;
 }
 
 static void
@@ -714,21 +714,21 @@ draw_shadow_corner (const GtkCssValue     *shadow,
   if (corner == GSK_CORNER_TOP_LEFT || corner == GSK_CORNER_BOTTOM_LEFT)
     {
       x1 = floor (box->box.x - clip_radius);
-      x2 = ceil (box->box.x + box->corner[corner].horizontal + clip_radius);
+      x2 = ceil (box->box.x + box->corner[corner].width + clip_radius);
       x = x1;
       sx = 1;
-      max_other = MAX(box->corner[GSK_CORNER_TOP_RIGHT].horizontal, 
box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal);
+      max_other = MAX(box->corner[GSK_CORNER_TOP_RIGHT].width, box->corner[GSK_CORNER_BOTTOM_RIGHT].width);
       x3 = floor (box->box.x + box->box.width - max_other - clip_radius);
       if (x2 > x3)
         overlapped = TRUE;
     }
   else
     {
-      x1 = floor (box->box.x + box->box.width - box->corner[corner].horizontal - clip_radius);
+      x1 = floor (box->box.x + box->box.width - box->corner[corner].width - clip_radius);
       x2 = ceil (box->box.x + box->box.width + clip_radius);
       x = x2;
       sx = -1;
-      max_other = MAX(box->corner[GSK_CORNER_TOP_LEFT].horizontal, 
box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal);
+      max_other = MAX(box->corner[GSK_CORNER_TOP_LEFT].width, box->corner[GSK_CORNER_BOTTOM_LEFT].width);
       x3 = ceil (box->box.x + max_other + clip_radius);
       if (x3 > x1)
         overlapped = TRUE;
@@ -737,21 +737,21 @@ draw_shadow_corner (const GtkCssValue     *shadow,
   if (corner == GSK_CORNER_TOP_LEFT || corner == GSK_CORNER_TOP_RIGHT)
     {
       y1 = floor (box->box.y - clip_radius);
-      y2 = ceil (box->box.y + box->corner[corner].vertical + clip_radius);
+      y2 = ceil (box->box.y + box->corner[corner].height + clip_radius);
       y = y1;
       sy = 1;
-      max_other = MAX(box->corner[GSK_CORNER_BOTTOM_LEFT].vertical, 
box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical);
+      max_other = MAX(box->corner[GSK_CORNER_BOTTOM_LEFT].height, 
box->corner[GSK_CORNER_BOTTOM_RIGHT].height);
       y3 = floor (box->box.y + box->box.height - max_other - clip_radius);
       if (y2 > y3)
         overlapped = TRUE;
     }
   else
     {
-      y1 = floor (box->box.y + box->box.height - box->corner[corner].vertical - clip_radius);
+      y1 = floor (box->box.y + box->box.height - box->corner[corner].height - clip_radius);
       y2 = ceil (box->box.y + box->box.height + clip_radius);
       y = y2;
       sy = -1;
-      max_other = MAX(box->corner[GSK_CORNER_TOP_LEFT].vertical, box->corner[GSK_CORNER_TOP_RIGHT].vertical);
+      max_other = MAX(box->corner[GSK_CORNER_TOP_LEFT].height, box->corner[GSK_CORNER_TOP_RIGHT].height);
       y3 = ceil (box->box.y + max_other + clip_radius);
       if (y3 > y1)
         overlapped = TRUE;
diff --git a/gtk/gtkroundedbox.c b/gtk/gtkroundedbox.c
index 514663c..6ab8246 100644
--- a/gtk/gtkroundedbox.c
+++ b/gtk/gtkroundedbox.c
@@ -58,30 +58,30 @@ gtk_rounded_box_clamp_border_radius (GtkRoundedBox *box)
   gdouble factor = 1.0;
   gdouble corners;
 
-  corners = box->corner[GSK_CORNER_TOP_LEFT].horizontal + box->corner[GSK_CORNER_TOP_RIGHT].horizontal;
+  corners = box->corner[GSK_CORNER_TOP_LEFT].width + box->corner[GSK_CORNER_TOP_RIGHT].width;
   if (corners != 0)
     factor = MIN (factor, box->box.width / corners);
 
-  corners = box->corner[GSK_CORNER_TOP_RIGHT].vertical + box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical;
+  corners = box->corner[GSK_CORNER_TOP_RIGHT].height + box->corner[GSK_CORNER_BOTTOM_RIGHT].height;
   if (corners != 0)
     factor = MIN (factor, box->box.height / corners);
 
-  corners = box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal + box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal;
+  corners = box->corner[GSK_CORNER_BOTTOM_RIGHT].width + box->corner[GSK_CORNER_BOTTOM_LEFT].width;
   if (corners != 0)
     factor = MIN (factor, box->box.width / corners);
 
-  corners = box->corner[GSK_CORNER_TOP_LEFT].vertical + box->corner[GSK_CORNER_BOTTOM_LEFT].vertical;
+  corners = box->corner[GSK_CORNER_TOP_LEFT].height + box->corner[GSK_CORNER_BOTTOM_LEFT].height;
   if (corners != 0)
     factor = MIN (factor, box->box.height / corners);
 
-  box->corner[GSK_CORNER_TOP_LEFT].horizontal *= factor;
-  box->corner[GSK_CORNER_TOP_LEFT].vertical *= factor;
-  box->corner[GSK_CORNER_TOP_RIGHT].horizontal *= factor;
-  box->corner[GSK_CORNER_TOP_RIGHT].vertical *= factor;
-  box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal *= factor;
-  box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical *= factor;
-  box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal *= factor;
-  box->corner[GSK_CORNER_BOTTOM_LEFT].vertical *= factor;
+  box->corner[GSK_CORNER_TOP_LEFT].width *= factor;
+  box->corner[GSK_CORNER_TOP_LEFT].height *= factor;
+  box->corner[GSK_CORNER_TOP_RIGHT].width *= factor;
+  box->corner[GSK_CORNER_TOP_RIGHT].height *= factor;
+  box->corner[GSK_CORNER_BOTTOM_RIGHT].width *= factor;
+  box->corner[GSK_CORNER_BOTTOM_RIGHT].height *= factor;
+  box->corner[GSK_CORNER_BOTTOM_LEFT].width *= factor;
+  box->corner[GSK_CORNER_BOTTOM_LEFT].height *= factor;
 }
 
 static void
@@ -91,30 +91,30 @@ _gtk_rounded_box_apply_border_radius (GtkRoundedBox *box,
 {
   if (corner[GSK_CORNER_TOP_LEFT] && (junction & GTK_JUNCTION_CORNER_TOPLEFT) == 0)
     {
-      box->corner[GSK_CORNER_TOP_LEFT].horizontal = _gtk_css_corner_value_get_x (corner[GSK_CORNER_TOP_LEFT],
+      box->corner[GSK_CORNER_TOP_LEFT].width = _gtk_css_corner_value_get_x (corner[GSK_CORNER_TOP_LEFT],
                                                                               box->box.width);
-      box->corner[GSK_CORNER_TOP_LEFT].vertical = _gtk_css_corner_value_get_y (corner[GSK_CORNER_TOP_LEFT],
+      box->corner[GSK_CORNER_TOP_LEFT].height = _gtk_css_corner_value_get_y (corner[GSK_CORNER_TOP_LEFT],
                                                                             box->box.height);
     }
   if (corner[GSK_CORNER_TOP_RIGHT] && (junction & GTK_JUNCTION_CORNER_TOPRIGHT) == 0)
     {
-      box->corner[GSK_CORNER_TOP_RIGHT].horizontal = _gtk_css_corner_value_get_x 
(corner[GSK_CORNER_TOP_RIGHT],
+      box->corner[GSK_CORNER_TOP_RIGHT].width = _gtk_css_corner_value_get_x (corner[GSK_CORNER_TOP_RIGHT],
                                                                                box->box.width);
-      box->corner[GSK_CORNER_TOP_RIGHT].vertical = _gtk_css_corner_value_get_y (corner[GSK_CORNER_TOP_RIGHT],
+      box->corner[GSK_CORNER_TOP_RIGHT].height = _gtk_css_corner_value_get_y (corner[GSK_CORNER_TOP_RIGHT],
                                                                              box->box.height);
     }
   if (corner[GSK_CORNER_BOTTOM_RIGHT] && (junction & GTK_JUNCTION_CORNER_BOTTOMRIGHT) == 0)
     {
-      box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal = _gtk_css_corner_value_get_x 
(corner[GSK_CORNER_BOTTOM_RIGHT],
+      box->corner[GSK_CORNER_BOTTOM_RIGHT].width = _gtk_css_corner_value_get_x 
(corner[GSK_CORNER_BOTTOM_RIGHT],
                                                                                   box->box.width);
-      box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical = _gtk_css_corner_value_get_y 
(corner[GSK_CORNER_BOTTOM_RIGHT],
+      box->corner[GSK_CORNER_BOTTOM_RIGHT].height = _gtk_css_corner_value_get_y 
(corner[GSK_CORNER_BOTTOM_RIGHT],
                                                                                 box->box.height);
     }
   if (corner[GSK_CORNER_BOTTOM_LEFT] && (junction & GTK_JUNCTION_CORNER_BOTTOMLEFT) == 0)
     {
-      box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal = _gtk_css_corner_value_get_x 
(corner[GSK_CORNER_BOTTOM_LEFT],
+      box->corner[GSK_CORNER_BOTTOM_LEFT].width = _gtk_css_corner_value_get_x 
(corner[GSK_CORNER_BOTTOM_LEFT],
                                                                                  box->box.width);
-      box->corner[GSK_CORNER_BOTTOM_LEFT].vertical = _gtk_css_corner_value_get_y 
(corner[GSK_CORNER_BOTTOM_LEFT],
+      box->corner[GSK_CORNER_BOTTOM_LEFT].height = _gtk_css_corner_value_get_y 
(corner[GSK_CORNER_BOTTOM_LEFT],
                                                                                box->box.height);
     }
 
@@ -152,19 +152,19 @@ _gtk_rounded_box_apply_outline_radius_for_style (GtkRoundedBox    *box,
 }
 
 static void
-gtk_css_border_radius_grow (GtkRoundedBoxCorner *corner,
-                            double               horizontal,
-                            double               vertical)
+gtk_css_border_radius_grow (graphene_size_t *corner,
+                            double           width,
+                            double           height)
 {
-  if (corner->horizontal)
-    corner->horizontal += horizontal;
-  if (corner->vertical)
-    corner->vertical += vertical;
+  if (corner->width)
+    corner->width += width;
+  if (corner->height)
+    corner->height += height;
 
-  if (corner->horizontal <= 0 || corner->vertical <= 0)
+  if (corner->width <= 0 || corner->height <= 0)
     {
-      corner->horizontal = 0;
-      corner->vertical = 0;
+      corner->width = 0;
+      corner->height = 0;
     }
 }
 
@@ -361,28 +361,28 @@ _gtk_rounded_box_path (const GtkRoundedBox *box,
   cairo_new_sub_path (cr);
 
   _cairo_ellipsis (cr,
-                   box->box.x + box->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                   box->box.y + box->corner[GSK_CORNER_TOP_LEFT].vertical,
-                   box->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                   box->corner[GSK_CORNER_TOP_LEFT].vertical,
+                   box->box.x + box->corner[GSK_CORNER_TOP_LEFT].width,
+                   box->box.y + box->corner[GSK_CORNER_TOP_LEFT].height,
+                   box->corner[GSK_CORNER_TOP_LEFT].width,
+                   box->corner[GSK_CORNER_TOP_LEFT].height,
                    G_PI, 3 * G_PI_2);
   _cairo_ellipsis (cr, 
-                   box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                   box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                   box->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                   box->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                   box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].width,
+                   box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].height,
+                   box->corner[GSK_CORNER_TOP_RIGHT].width,
+                   box->corner[GSK_CORNER_TOP_RIGHT].height,
                    - G_PI_2, 0);
   _cairo_ellipsis (cr,
-                   box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                   box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                   box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                   box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                   box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                   box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                   box->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                   box->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                    0, G_PI_2);
   _cairo_ellipsis (cr,
-                   box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                   box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                   box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                   box->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                   box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                   box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                   box->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                   box->corner[GSK_CORNER_BOTTOM_LEFT].height,
                    G_PI_2, G_PI);
 
   cairo_close_path (cr);
@@ -400,17 +400,17 @@ _gtk_rounded_box_guess_length (const GtkRoundedBox *box,
 
   if (side & 1)
     length = box->box.height
-             - box->corner[before].vertical
-             - box->corner[after].vertical;
+             - box->corner[before].height
+             - box->corner[after].height;
   else
     length = box->box.width
-             - box->corner[before].horizontal
-             - box->corner[after].horizontal;
+             - box->corner[before].width
+             - box->corner[after].width;
 
-  length += G_PI * 0.125 * (box->corner[before].horizontal
-                            + box->corner[before].vertical
-                            + box->corner[after].horizontal
-                            + box->corner[after].vertical);
+  length += G_PI * 0.125 * (box->corner[before].width
+                            + box->corner[before].height
+                            + box->corner[after].width
+                            + box->corner[after].height);
 
   return length;
 }
@@ -424,58 +424,58 @@ _gtk_rounded_box_path_side (const GtkRoundedBox *box,
     {
     case GTK_CSS_TOP:
       _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                       box->box.y + box->corner[GSK_CORNER_TOP_LEFT].vertical,
-                       box->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                       box->corner[GSK_CORNER_TOP_LEFT].vertical,
+                       box->box.x + box->corner[GSK_CORNER_TOP_LEFT].width,
+                       box->box.y + box->corner[GSK_CORNER_TOP_LEFT].height,
+                       box->corner[GSK_CORNER_TOP_LEFT].width,
+                       box->corner[GSK_CORNER_TOP_LEFT].height,
                        5 * G_PI_4, 3 * G_PI_2);
       _cairo_ellipsis (cr, 
-                       box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                       box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                       box->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                       box->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                       box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].width,
+                       box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].height,
+                       box->corner[GSK_CORNER_TOP_RIGHT].width,
+                       box->corner[GSK_CORNER_TOP_RIGHT].height,
                        - G_PI_2, -G_PI_4);
       break;
     case GTK_CSS_RIGHT:
       _cairo_ellipsis (cr, 
-                       box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                       box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                       box->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                       box->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                       box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].width,
+                       box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].height,
+                       box->corner[GSK_CORNER_TOP_RIGHT].width,
+                       box->corner[GSK_CORNER_TOP_RIGHT].height,
                        - G_PI_4, 0);
       _cairo_ellipsis (cr,
-                       box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                       box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                       box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                       box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                       box->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                       box->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                        0, G_PI_4);
       break;
     case GTK_CSS_BOTTOM:
       _cairo_ellipsis (cr,
-                       box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                       box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                       box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                       box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                       box->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                       box->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                        G_PI_4, G_PI_2);
       _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                       box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                       box->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                       box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                       box->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                       box->corner[GSK_CORNER_BOTTOM_LEFT].height,
                        G_PI_2, 3 * G_PI_4);
       break;
     case GTK_CSS_LEFT:
       _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                       box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                       box->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                       box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                       box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                       box->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                       box->corner[GSK_CORNER_BOTTOM_LEFT].height,
                        3 * G_PI_4, G_PI);
       _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                       box->box.y + box->corner[GSK_CORNER_TOP_LEFT].vertical,
-                       box->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                       box->corner[GSK_CORNER_TOP_LEFT].vertical,
+                       box->box.x + box->corner[GSK_CORNER_TOP_LEFT].width,
+                       box->box.y + box->corner[GSK_CORNER_TOP_LEFT].height,
+                       box->corner[GSK_CORNER_TOP_LEFT].width,
+                       box->corner[GSK_CORNER_TOP_LEFT].height,
                        G_PI, 5 * G_PI_4);
       break;
     default:
@@ -507,29 +507,29 @@ _gtk_rounded_box_path_top (const GtkRoundedBox *outer,
   cairo_new_sub_path (cr);
 
   _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                   outer->box.y + outer->corner[GSK_CORNER_TOP_LEFT].vertical,
-                   outer->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                   outer->corner[GSK_CORNER_TOP_LEFT].vertical,
+                   outer->box.x + outer->corner[GSK_CORNER_TOP_LEFT].width,
+                   outer->box.y + outer->corner[GSK_CORNER_TOP_LEFT].height,
+                   outer->corner[GSK_CORNER_TOP_LEFT].width,
+                   outer->corner[GSK_CORNER_TOP_LEFT].height,
                    start_angle, middle_angle);
   _cairo_ellipsis (cr, 
-                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                   outer->box.y + outer->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                   outer->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                   outer->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_TOP_RIGHT].width,
+                   outer->box.y + outer->corner[GSK_CORNER_TOP_RIGHT].height,
+                   outer->corner[GSK_CORNER_TOP_RIGHT].width,
+                   outer->corner[GSK_CORNER_TOP_RIGHT].height,
                    middle_angle, end_angle);
 
   _cairo_ellipsis_negative (cr, 
-                            inner->box.x + inner->box.width - inner->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                            inner->box.y + inner->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                            inner->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                            inner->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                            inner->box.x + inner->box.width - inner->corner[GSK_CORNER_TOP_RIGHT].width,
+                            inner->box.y + inner->corner[GSK_CORNER_TOP_RIGHT].height,
+                            inner->corner[GSK_CORNER_TOP_RIGHT].width,
+                            inner->corner[GSK_CORNER_TOP_RIGHT].height,
                             end_angle, middle_angle);
   _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                            inner->box.y + inner->corner[GSK_CORNER_TOP_LEFT].vertical,
-                            inner->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                            inner->corner[GSK_CORNER_TOP_LEFT].vertical,
+                            inner->box.x + inner->corner[GSK_CORNER_TOP_LEFT].width,
+                            inner->box.y + inner->corner[GSK_CORNER_TOP_LEFT].height,
+                            inner->corner[GSK_CORNER_TOP_LEFT].width,
+                            inner->corner[GSK_CORNER_TOP_LEFT].height,
                             middle_angle, start_angle);
 
   cairo_close_path (cr);
@@ -558,29 +558,29 @@ _gtk_rounded_box_path_right (const GtkRoundedBox *outer,
   cairo_new_sub_path (cr);
 
   _cairo_ellipsis (cr, 
-                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                   outer->box.y + outer->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                   outer->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                   outer->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_TOP_RIGHT].width,
+                   outer->box.y + outer->corner[GSK_CORNER_TOP_RIGHT].height,
+                   outer->corner[GSK_CORNER_TOP_RIGHT].width,
+                   outer->corner[GSK_CORNER_TOP_RIGHT].height,
                    start_angle, middle_angle);
   _cairo_ellipsis (cr,
-                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                    middle_angle, end_angle);
 
   _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->box.width - 
inner->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                            inner->box.y + inner->box.height - 
inner->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                            inner->box.x + inner->box.width - inner->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                            inner->box.y + inner->box.height - inner->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                             end_angle, middle_angle);
   _cairo_ellipsis_negative (cr, 
-                            inner->box.x + inner->box.width - inner->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                            inner->box.y + inner->corner[GSK_CORNER_TOP_RIGHT].vertical,
-                            inner->corner[GSK_CORNER_TOP_RIGHT].horizontal,
-                            inner->corner[GSK_CORNER_TOP_RIGHT].vertical,
+                            inner->box.x + inner->box.width - inner->corner[GSK_CORNER_TOP_RIGHT].width,
+                            inner->box.y + inner->corner[GSK_CORNER_TOP_RIGHT].height,
+                            inner->corner[GSK_CORNER_TOP_RIGHT].width,
+                            inner->corner[GSK_CORNER_TOP_RIGHT].height,
                             middle_angle, start_angle);
 
   cairo_close_path (cr);
@@ -609,29 +609,29 @@ _gtk_rounded_box_path_bottom (const GtkRoundedBox *outer,
   cairo_new_sub_path (cr);
 
   _cairo_ellipsis (cr,
-                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                   outer->box.x + outer->box.width - outer->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                   outer->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                    start_angle, middle_angle);
   _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                   outer->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                   outer->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                   outer->box.x + outer->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                   outer->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                   outer->corner[GSK_CORNER_BOTTOM_LEFT].height,
                    middle_angle, end_angle);
 
   _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                            inner->box.y + inner->box.height - 
inner->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                            inner->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                            inner->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                            inner->box.x + inner->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                            inner->box.y + inner->box.height - inner->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                            inner->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                            inner->corner[GSK_CORNER_BOTTOM_LEFT].height,
                             end_angle, middle_angle);
   _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->box.width - 
inner->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                            inner->box.y + inner->box.height - 
inner->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
-                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal,
-                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].vertical,
+                            inner->box.x + inner->box.width - inner->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                            inner->box.y + inner->box.height - inner->corner[GSK_CORNER_BOTTOM_RIGHT].height,
+                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].width,
+                            inner->corner[GSK_CORNER_BOTTOM_RIGHT].height,
                             middle_angle, start_angle);
 
   cairo_close_path (cr);
@@ -660,29 +660,29 @@ _gtk_rounded_box_path_left (const GtkRoundedBox *outer,
   cairo_new_sub_path (cr);
 
   _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                   outer->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                   outer->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                   outer->box.x + outer->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                   outer->box.y + outer->box.height - outer->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                   outer->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                   outer->corner[GSK_CORNER_BOTTOM_LEFT].height,
                    start_angle, middle_angle);
   _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                   outer->box.y + outer->corner[GSK_CORNER_TOP_LEFT].vertical,
-                   outer->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                   outer->corner[GSK_CORNER_TOP_LEFT].vertical,
+                   outer->box.x + outer->corner[GSK_CORNER_TOP_LEFT].width,
+                   outer->box.y + outer->corner[GSK_CORNER_TOP_LEFT].height,
+                   outer->corner[GSK_CORNER_TOP_LEFT].width,
+                   outer->corner[GSK_CORNER_TOP_LEFT].height,
                    middle_angle, end_angle);
 
   _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                            inner->box.y + inner->corner[GSK_CORNER_TOP_LEFT].vertical,
-                            inner->corner[GSK_CORNER_TOP_LEFT].horizontal,
-                            inner->corner[GSK_CORNER_TOP_LEFT].vertical,
+                            inner->box.x + inner->corner[GSK_CORNER_TOP_LEFT].width,
+                            inner->box.y + inner->corner[GSK_CORNER_TOP_LEFT].height,
+                            inner->corner[GSK_CORNER_TOP_LEFT].width,
+                            inner->corner[GSK_CORNER_TOP_LEFT].height,
                             end_angle, middle_angle);
   _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                            inner->box.y + inner->box.height - 
inner->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
-                            inner->corner[GSK_CORNER_BOTTOM_LEFT].horizontal,
-                            inner->corner[GSK_CORNER_BOTTOM_LEFT].vertical,
+                            inner->box.x + inner->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                            inner->box.y + inner->box.height - inner->corner[GSK_CORNER_BOTTOM_LEFT].height,
+                            inner->corner[GSK_CORNER_BOTTOM_LEFT].width,
+                            inner->corner[GSK_CORNER_BOTTOM_LEFT].height,
                             middle_angle, start_angle);
 
   cairo_close_path (cr);
@@ -726,20 +726,20 @@ _gtk_rounded_box_contains_rectangle (const GtkRoundedBox *box,
       y2 > box->box.y + box->box.height)
     return FALSE;
 
-  if (x1 < box->box.x + box->corner[GSK_CORNER_TOP_LEFT].horizontal &&
-      y1 < box->box.y + box->corner[GSK_CORNER_TOP_LEFT].vertical)
+  if (x1 < box->box.x + box->corner[GSK_CORNER_TOP_LEFT].width &&
+      y1 < box->box.y + box->corner[GSK_CORNER_TOP_LEFT].height)
     return FALSE;
 
-  if (x2 > box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].horizontal &&
-      y1 < box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].vertical)
+  if (x2 > box->box.x + box->box.width - box->corner[GSK_CORNER_TOP_RIGHT].width &&
+      y1 < box->box.y + box->corner[GSK_CORNER_TOP_RIGHT].height)
     return FALSE;
 
-  if (x2 > box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].horizontal &&
-      y2 > box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].vertical)
+  if (x2 > box->box.x + box->box.width - box->corner[GSK_CORNER_BOTTOM_RIGHT].width &&
+      y2 > box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_RIGHT].height)
     return FALSE;
 
-  if (x1 < box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].horizontal &&
-      y2 > box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].vertical)
+  if (x1 < box->box.x + box->corner[GSK_CORNER_BOTTOM_LEFT].width &&
+      y2 > box->box.y + box->box.height - box->corner[GSK_CORNER_BOTTOM_LEFT].height)
     return FALSE;
 
   return TRUE;
diff --git a/gtk/gtkroundedboxprivate.h b/gtk/gtkroundedboxprivate.h
index dd0a273..2053943 100644
--- a/gtk/gtkroundedboxprivate.h
+++ b/gtk/gtkroundedboxprivate.h
@@ -29,17 +29,11 @@
 G_BEGIN_DECLS
 
 typedef struct _GtkRoundedBox GtkRoundedBox;
-typedef struct _GtkRoundedBoxCorner GtkRoundedBoxCorner;
-
-struct _GtkRoundedBoxCorner {
-  double                   horizontal;
-  double                   vertical;
-};
 
 struct _GtkRoundedBox {
   /*< private >*/
   cairo_rectangle_t        box;
-  GtkRoundedBoxCorner      corner[4];
+  graphene_size_t          corner[4];
 };
 
 void            _gtk_rounded_box_init_rect                      (GtkRoundedBox       *box,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]