[gtk+/wip/css: 161/163] css: Introduce GtkCssSide
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/css: 161/163] css: Introduce GtkCssSide
- Date: Sun, 8 Jan 2012 01:03:31 +0000 (UTC)
commit 4395e53b42f1c1974255ae4014c758f4ab152e8d
Author: Benjamin Otte <otte redhat com>
Date: Sat Jan 7 22:20:51 2012 +0100
css: Introduce GtkCssSide
... and use it.
This is basically an encoding of the order of sides in CSS. So when
parsing things, this is the way we parse things in.
gtk/gtkcsstypesprivate.h | 8 ++++++++
gtk/gtkthemingengine.c | 40 +++++++++++++++-------------------------
2 files changed, 23 insertions(+), 25 deletions(-)
---
diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h
index 95123be..a38ff51 100644
--- a/gtk/gtkcsstypesprivate.h
+++ b/gtk/gtkcsstypesprivate.h
@@ -63,6 +63,14 @@ typedef enum {
GTK_CSS_AREA_CONTENT_BOX
} GtkCssArea;
+/* for the order in arrays */
+typedef enum /*< skip >*/ {
+ GTK_CSS_TOP,
+ GTK_CSS_RIGHT,
+ GTK_CSS_BOTTOM,
+ GTK_CSS_LEFT
+} GtkCssSide;
+
typedef struct _GtkCssBorderCornerRadius GtkCssBorderCornerRadius;
typedef struct _GtkCssBorderImageRepeat GtkCssBorderImageRepeat;
diff --git a/gtk/gtkthemingengine.c b/gtk/gtkthemingengine.c
index b822da8..e1c0f8f 100644
--- a/gtk/gtkthemingengine.c
+++ b/gtk/gtkthemingengine.c
@@ -58,14 +58,6 @@
*/
enum {
- SIDE_LEFT = 1,
- SIDE_BOTTOM = 1 << 1,
- SIDE_RIGHT = 1 << 2,
- SIDE_TOP = 1 << 3,
- SIDE_ALL = 0xF
-};
-
-enum {
PROP_0,
PROP_NAME
};
@@ -1368,13 +1360,13 @@ static void
gtk_theming_engine_hide_border_sides (GtkBorder *border,
guint hidden_side)
{
- if (hidden_side & SIDE_TOP)
+ if (hidden_side & GTK_CSS_TOP)
border->top = 0;
- if (hidden_side & SIDE_RIGHT)
+ if (hidden_side & GTK_CSS_RIGHT)
border->right = 0;
- if (hidden_side & SIDE_BOTTOM)
+ if (hidden_side & GTK_CSS_BOTTOM)
border->bottom = 0;
- if (hidden_side & SIDE_LEFT)
+ if (hidden_side & GTK_CSS_LEFT)
border->left = 0;
}
@@ -1385,7 +1377,6 @@ render_frame_fill (cairo_t *cr,
GdkRGBA colors[4],
guint hidden_side)
{
- static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
GtkRoundedBox padding_box;
guint i, j;
@@ -1407,12 +1398,12 @@ render_frame_fill (cairo_t *cr,
{
for (i = 0; i < 4; i++)
{
- if (hidden_side & current_side[i])
+ if (hidden_side & (1 << i))
continue;
for (j = 0; j < 4; j++)
{
- if (hidden_side & current_side[j])
+ if (hidden_side & (1 << j))
continue;
if (i == j ||
@@ -1459,7 +1450,6 @@ render_frame_internal (GtkThemingEngine *engine,
gdouble progress;
gboolean running;
GtkBorder border;
- static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
GdkRGBA *alloc_colors[4];
GdkRGBA colors[4];
guint i, j;
@@ -1530,7 +1520,7 @@ render_frame_internal (GtkThemingEngine *engine,
for (i = 0; i < 4; i++)
{
- if (hidden_side & current_side[i])
+ if (hidden_side & (1 << i))
continue;
switch (border_style[i])
@@ -1559,9 +1549,9 @@ render_frame_internal (GtkThemingEngine *engine,
for (j = 0; j < 4; j++)
{
if (border_style[j] == GTK_BORDER_STYLE_DOUBLE)
- hidden_side |= current_side[j];
+ hidden_side |= (1 << j);
else
- dont_draw |= current_side[j];
+ dont_draw |= (1 << j);
}
other_border.top = (border.top + 2) / 3;
other_border.right = (border.right + 2) / 3;
@@ -1595,9 +1585,9 @@ render_frame_internal (GtkThemingEngine *engine,
color_shade (&colors[j], 1.8, &colors[j]);
if (border_style[j] == GTK_BORDER_STYLE_GROOVE ||
border_style[j] == GTK_BORDER_STYLE_RIDGE)
- hidden_side |= current_side[j];
+ hidden_side |= (1 << j);
else
- dont_draw |= current_side[j];
+ dont_draw |= (1 << j);
}
other_border.top = border.top / 2;
other_border.right = border.right / 2;
@@ -2114,28 +2104,28 @@ gtk_theming_engine_render_extension (GtkThemingEngine *engine,
{
case GTK_POS_LEFT:
junction = GTK_JUNCTION_LEFT;
- hidden_side = SIDE_LEFT;
+ hidden_side = GTK_CSS_LEFT;
cairo_translate (cr, x + width, y);
cairo_rotate (cr, G_PI / 2);
break;
case GTK_POS_RIGHT:
junction = GTK_JUNCTION_RIGHT;
- hidden_side = SIDE_RIGHT;
+ hidden_side = GTK_CSS_RIGHT;
cairo_translate (cr, x, y + height);
cairo_rotate (cr, - G_PI / 2);
break;
case GTK_POS_TOP:
junction = GTK_JUNCTION_TOP;
- hidden_side = SIDE_TOP;
+ hidden_side = GTK_CSS_TOP;
cairo_translate (cr, x + width, y + height);
cairo_rotate (cr, G_PI);
break;
case GTK_POS_BOTTOM:
junction = GTK_JUNCTION_BOTTOM;
- hidden_side = SIDE_BOTTOM;
+ hidden_side = GTK_CSS_BOTTOM;
cairo_translate (cr, x, y);
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]