gtk-css-engine r110 - in trunk: . src
- From: robsta svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk-css-engine r110 - in trunk: . src
- Date: Tue, 16 Sep 2008 09:45:50 +0000 (UTC)
Author: robsta
Date: Tue Sep 16 09:45:50 2008
New Revision: 110
URL: http://svn.gnome.org/viewvc/gtk-css-engine?rev=110&view=rev
Log:
* src/gce-node.c:
* src/gce-node.h:
* src/gce-style.c:
Make node implementation self contained to the theme engine.
Modified:
trunk/ (props changed)
trunk/ChangeLog
trunk/src/gce-node.c
trunk/src/gce-node.h
trunk/src/gce-style.c
Modified: trunk/src/gce-node.c
==============================================================================
--- trunk/src/gce-node.c (original)
+++ trunk/src/gce-node.c Tue Sep 16 09:45:50 2008
@@ -20,6 +20,32 @@
#include <string.h>
#include "gce-node.h"
+/*
+ * TODO: split into load- and run-time variants?
+ */
+struct GceNode_ {
+ ccd_node_t parent;
+ GtkWidget *widget;
+ /* custom attributes { */
+ char const *class_name;
+ char const *pseudo_class;
+ char const *gap;
+ char const *shadow;
+ char const *orientation;
+ char const *edge;
+ char const *expander_style;
+ enum {
+ UNSET,
+ CONTAINER,
+ PRIMITIVE,
+ TYPE
+ } flavor;
+ union {
+ char const *primitive;
+ GType gtype;
+ } impl;
+};
+
static struct {
GceNode nodes[GCE_NODE_CACHE_SIZE];
int cursor;
@@ -33,8 +59,8 @@
return &_node_cache.nodes[_node_cache.cursor];
}
-GceNode *
-gce_node_cache_fetch_node (void)
+static GceNode *
+fetch_node ()
{
GceNode *node;
@@ -47,6 +73,55 @@
return node;
}
+GceNode *
+gce_node_cache_fetch_node (GtkWidget *widget,
+ char const *class_name,
+ char const *pseudo_class,
+ char const *shadow,
+ char const *orientation,
+ char const *gap,
+ char const *edge,
+ char const *expander_style)
+{
+ GceNode *node;
+
+ node = fetch_node ();
+
+ node->widget = widget;
+ node->class_name = class_name;
+ node->pseudo_class = pseudo_class;
+ node->gap = gap;
+ node->shadow = shadow;
+ node->orientation = orientation;
+ node->edge = edge;
+ node->expander_style = expander_style;
+ node->flavor = UNSET;
+
+ return node;
+}
+
+GceNode *
+gce_node_cache_fetch_primitive_node (GtkWidget *widget,
+ char const *class_name,
+ char const *pseudo_class,
+ char const *shadow,
+ char const *orientation,
+ char const *gap,
+ char const *edge,
+ char const *expander_style,
+ char const *primitive)
+{
+ GceNode *node;
+
+ node = gce_node_cache_fetch_node (widget, class_name, pseudo_class,
+ shadow, orientation, gap, edge,
+ expander_style);
+ node->flavor = PRIMITIVE;
+ node->impl.primitive = primitive;
+
+ return node;
+}
+
void
gce_node_cache_release_node (GceNode *node)
{
@@ -96,17 +171,16 @@
case CONTAINER:
container = gtk_widget_get_parent (node->widget);
if (container) {
- container_node = gce_node_cache_fetch_node ();
- container_node->flavor = CONTAINER;
+ container_node = fetch_node ();
container_node->widget = (GtkWidget *) g_object_ref (G_OBJECT (container));
+ container_node->flavor = CONTAINER;
container_node->impl.gtype = G_OBJECT_TYPE (G_OBJECT (container));
}
break;
case PRIMITIVE:
- container_node = gce_node_cache_fetch_node ();
- container_node->flavor = UNSET;
+ container_node = fetch_node ();
container_node->widget = (GtkWidget *) g_object_ref (G_OBJECT (node->widget));
- container_node->impl.primitive = NULL;
+ container_node->flavor = UNSET;
break;
case TYPE:
g_assert_not_reached ();
@@ -132,10 +206,11 @@
base_node = NULL;
} else {
/* inherit from superclass widget */
- base_node = gce_node_cache_fetch_node ();
- base_node->widget = (GtkWidget *) g_object_ref (node->widget);
+ base_node = fetch_node ();
+ base_node->widget = (GtkWidget *) g_object_ref (G_OBJECT (node->widget));
base_node->flavor = TYPE;
base_node->impl.gtype = g_type_parent (G_OBJECT_TYPE (G_OBJECT (node->widget)));
+
}
break;
case CONTAINER:
@@ -144,8 +219,8 @@
base_node = NULL;
} else {
/* inherit from superclass widget */
- base_node = gce_node_cache_fetch_node ();
- base_node->widget = (GtkWidget *) g_object_ref (node->widget);
+ base_node = fetch_node ();
+ base_node->widget = (GtkWidget *) g_object_ref (G_OBJECT (node->widget));
base_node->flavor = CONTAINER;
base_node->impl.gtype = g_type_parent (node->impl.gtype);
}
@@ -159,9 +234,9 @@
base_node = NULL;
} else {
/* inherit from superclass widget */
- base_node = gce_node_cache_fetch_node ();
- base_node->widget = (GtkWidget *) g_object_ref (node->widget);
- base_node->flavor = TYPE;
+ base_node = fetch_node ();
+ base_node->widget = (GtkWidget *) g_object_ref (G_OBJECT (node->widget));
+ base_node->flavor = TYPE,
base_node->impl.gtype = g_type_parent (node->impl.gtype);
}
break;
@@ -344,3 +419,15 @@
return &_node_class;
}
+GtkWidget *
+gce_node_get_widget (const GceNode *node)
+{
+ return node->widget;
+}
+
+char const *
+gce_node_get_primitive (const GceNode *node)
+{
+ node->class_name;
+}
+
Modified: trunk/src/gce-node.h
==============================================================================
--- trunk/src/gce-node.h (original)
+++ trunk/src/gce-node.h Tue Sep 16 09:45:50 2008
@@ -28,39 +28,33 @@
#define GCE_NODE_CACHE_SIZE 24
-/*
- * TODO: split into load- and run-time variants?
- */
-typedef struct {
- ccd_node_t parent;
- GtkWidget *widget;
- /* custom attributes { */
- char const *class_name;
- char const *pseudo_class;
- char const *gap;
- char const *shadow;
- char const *orientation;
- char const *edge;
- char const *expander_style;
- /* } */
- enum {
- UNSET,
- CONTAINER,
- PRIMITIVE,
- TYPE
- } flavor;
- union {
- char const *primitive;
- GType gtype;
- } impl;
-} GceNode;
-
-GceNode * gce_node_cache_get_top_node (void);
-GceNode * gce_node_cache_fetch_node (void);
-void gce_node_cache_release_node (GceNode *node);
+typedef struct GceNode_ GceNode;
+
+GceNode * gce_node_cache_fetch_primitive_node (GtkWidget *widget,
+ char const *class_name,
+ char const *pseudo_class,
+ char const *shadow,
+ char const *orientation,
+ char const *gap,
+ char const *edge,
+ char const *expander_style,
+ char const *primitive);
+GceNode * gce_node_cache_fetch_node (GtkWidget *widget,
+ char const *class_name,
+ char const *pseudo_class,
+ char const *shadow,
+ char const *orientation,
+ char const *gap,
+ char const *edge,
+ char const *expander_style);
+GceNode * gce_node_cache_get_top_node (void);
+void gce_node_cache_release_node (GceNode *node);
ccd_node_class_t const * gce_node_get_class (void);
+GtkWidget * gce_node_get_widget (const GceNode *node);
+char const * gce_node_get_primitive (const GceNode *node);
+
G_END_DECLS
#endif /* GCE_NODE_H */
Modified: trunk/src/gce-style.c
==============================================================================
--- trunk/src/gce-style.c (original)
+++ trunk/src/gce-style.c Tue Sep 16 09:45:50 2008
@@ -56,7 +56,7 @@
if (!status) {
g_warning ("Un-themed widget `%s', primitive `%s'.",
- G_OBJECT_TYPE_NAME (G_OBJECT (node->widget)), base->impl.primitive);
+ G_OBJECT_TYPE_NAME (G_OBJECT (gce_node_get_widget (node))), gce_node_get_primitive (node));
ccd_selector_group_free (group);
group = NULL;
}
@@ -204,18 +204,16 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "hline";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, NULL,
+ "hline");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, NULL);
line (self, node, base, window, area, widget, x1, x2, y, y);
@@ -237,18 +235,16 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "vline";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, NULL,
+ "vline");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, NULL);
line (self, node, base, window, area, widget, x, x, y1, y2);
@@ -273,20 +269,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "shadow";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "shadow");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -311,20 +305,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "box";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "box");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -349,20 +341,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "flatbox";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "flatbox");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -387,20 +377,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "check";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "check");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -425,20 +413,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "option";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "option");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -466,21 +452,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->gap = gce_maps_get_position (gap_side);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "shadow";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, gce_maps_get_position (gap_side), NULL, NULL,
+ "shadow");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, gce_maps_get_position (gap_side), NULL, NULL);
gap (self, node, base, window, area, widget,
x, y, width, height, gap_side, gap_start, gap_width);
@@ -508,21 +491,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->gap = gce_maps_get_position (gap_side);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "box";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, gce_maps_get_position (gap_side), NULL, NULL,
+ "box");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, gce_maps_get_position (gap_side), NULL, NULL);
gap (self, node, base, window, area, widget,
x, y, width, height, gap_side, gap_start, gap_width);
@@ -549,21 +529,18 @@
GceNode *base;
gint gap_width;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->gap = gce_maps_get_position (gap_side);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "extension";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, gce_maps_get_position (gap_side), NULL, NULL,
+ "extension");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, gce_maps_get_position (gap_side), NULL, NULL);
switch (gap_side) {
case GTK_POS_LEFT:
@@ -600,22 +577,20 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->orientation = gce_maps_get_orientation (orientation);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "slider";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->orientation = base->orientation;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ gce_maps_get_orientation (orientation),
+ NULL, NULL, NULL,
+ "slider");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ gce_maps_get_orientation (orientation),
+ NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -641,22 +616,20 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->orientation = gce_maps_get_orientation (orientation);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "handle";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->orientation = base->orientation;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ gce_maps_get_orientation (orientation),
+ NULL, NULL, NULL,
+ "handle");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ gce_maps_get_orientation (orientation),
+ NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -681,20 +654,16 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->edge = gce_maps_get_window_edge (edge);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "resizegrip";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->edge = base->edge;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, gce_maps_get_window_edge (edge), NULL,
+ "resizegrip");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, gce_maps_get_window_edge (edge), NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -718,18 +687,16 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "focus";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, NULL,
+ "focus");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, FALSE);
@@ -764,21 +731,16 @@
expander_size = DEFAULT_EXPANDER_SIZE;
}
-
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->expander_style = gce_maps_get_expander_style (style);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "expander";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->expander_style = base->expander_style;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, gce_maps_get_expander_style (style),
+ "expander");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ NULL, NULL, NULL, NULL, gce_maps_get_expander_style (style));
rectangle (self, node, base, window, area, widget,
x, y, expander_size, expander_size, TRUE);
@@ -804,20 +766,18 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "diamond";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "diamond");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -826,6 +786,9 @@
gce_node_cache_release_node (base);
}
+/*
+ * TODO: handle `fill'?
+ */
static void
draw_arrow (GtkStyle *self,
GdkWindow *window,
@@ -844,22 +807,20 @@
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->orientation = gce_maps_get_arrow (arrow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "arrow";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->orientation = base->orientation;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ gce_maps_get_arrow (arrow),
+ NULL, NULL, NULL,
+ "arrow");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ gce_maps_get_arrow (arrow),
+ NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
@@ -877,27 +838,25 @@
GtkWidget *widget,
char const *detail,
gint x,
- gint y,
- gint width,
- gint height)
+ gint y,
+ gint width,
+ gint height)
{
GceNode *node;
GceNode *base;
- base = gce_node_cache_fetch_node ();
- base->widget = widget;
- base->class_name = gce_maps_get_detail (detail);
- base->pseudo_class = gce_maps_get_state (state);
- base->shadow = gce_maps_get_shadow (shadow);
- base->flavor = PRIMITIVE;
- base->impl.primitive = "tab";
-
- node = gce_node_cache_fetch_node ();
- node->widget = widget;
- node->class_name = base->class_name;
- node->pseudo_class = base->pseudo_class;
- node->shadow = base->shadow;
- node->flavor = UNSET;
+ base = gce_node_cache_fetch_primitive_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL,
+ "tab");
+
+ node = gce_node_cache_fetch_node (widget,
+ gce_maps_get_detail (detail),
+ gce_maps_get_state (state),
+ gce_maps_get_shadow (shadow),
+ NULL, NULL, NULL, NULL);
rectangle (self, node, base, window, area, widget,
x, y, width, height, TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]