Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/gtk-engine/src/olpc_rc_style.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk-engine/src/olpc_rc_style.c')
-rw-r--r--gtk-engine/src/olpc_rc_style.c398
1 files changed, 0 insertions, 398 deletions
diff --git a/gtk-engine/src/olpc_rc_style.c b/gtk-engine/src/olpc_rc_style.c
deleted file mode 100644
index 8601bdd..0000000
--- a/gtk-engine/src/olpc_rc_style.c
+++ /dev/null
@@ -1,398 +0,0 @@
-#include "olpc_rc_style.h"
-#include "olpc_style.h"
-
-static void olpc_rc_style_init (OlpcRcStyle *style);
-static void olpc_rc_style_class_init (OlpcRcStyleClass *klass);
-static guint olpc_rc_style_parse (GtkRcStyle *rc_style,
- GtkSettings *settings,
- GScanner *scanner);
-static void olpc_rc_style_merge (GtkRcStyle *dest,
- GtkRcStyle *src);
-
-static GtkStyle *olpc_rc_style_create_style (GtkRcStyle *rc_style);
-
-
-static struct
- {
- gchar *name;
- guint token;
- }
-olpc_rc_symbols[] =
-{
- { "rect_scrollbar", TOKEN_RECTSCROLLBAR },
- { "scrollbar_marks", TOKEN_SCROLLBARMARKS },
- { "scroll_button_marks", TOKEN_SCROLLBUTTONMARKS },
- { "handlebox_marks", TOKEN_HANDLEBOXMARKS },
- { "mark_type1", TOKEN_MARKTYPE1 },
- { "mark_type2", TOKEN_MARKTYPE2 },
- { "paned_dots", TOKEN_PANEDDOTS },
-
- { "TRUE", TOKEN_TRUE },
- { "FALSE", TOKEN_FALSE },
-
- { "NOTHING", TOKEN_NOTHING },
- { "SLASH", TOKEN_SLASH },
- { "INVSLASH", TOKEN_INVSLASH },
- { "DOT", TOKEN_DOT },
- { "INVDOT", TOKEN_INVDOT },
- { "ARROW", TOKEN_ARROW },
-
- { "FULL", TOKEN_FULL },
- { "SOME", TOKEN_SOME },
- { "NONE", TOKEN_NONE },
-
-};
-
-static guint n_olpc_rc_symbols = sizeof(olpc_rc_symbols) / sizeof(olpc_rc_symbols[0]);
-
-static GtkRcStyleClass *olpc_parent_rc_style_class;
-
-GType olpc_type_rc_style = 0;
-
-void
-olpc_rc_style_register_type (GTypeModule *module)
-{
- static const GTypeInfo object_info =
- {
- sizeof (OlpcRcStyleClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) olpc_rc_style_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (OlpcRcStyle),
- 0, /* n_preallocs */
- (GInstanceInitFunc) olpc_rc_style_init,
- };
-
- olpc_type_rc_style = g_type_module_register_type (module,
- GTK_TYPE_RC_STYLE,
- "OlpcRcStyle",
- &object_info, 0);
-}
-
-static void
-olpc_rc_style_init (OlpcRcStyle *style)
-{
-}
-
-static void
-olpc_rc_style_class_init (OlpcRcStyleClass *klass)
-{
- GtkRcStyleClass *rc_style_class = GTK_RC_STYLE_CLASS (klass);
-
- olpc_parent_rc_style_class = g_type_class_peek_parent (klass);
-
- rc_style_class->parse = olpc_rc_style_parse;
- rc_style_class->merge = olpc_rc_style_merge;
- rc_style_class->create_style = olpc_rc_style_create_style;
-}
-
-#if 0
-static guint
-olpc_rc_parse_int(GScanner *scanner,
- GTokenType wanted_token,
- guint *retval)
-{
- guint token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != wanted_token)
- return wanted_token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != G_TOKEN_EQUAL_SIGN)
- return wanted_token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != G_TOKEN_INT)
- return G_TOKEN_INT;
-
- *retval = g_scanner_cur_value(scanner).v_int;
-
- return G_TOKEN_NONE;
-}
-#endif
-
-static guint
-olpc_rc_parse_boolean(GScanner *scanner,
- GTokenType wanted_token,
- guint *retval)
-{
- guint token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != wanted_token)
- return wanted_token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != G_TOKEN_EQUAL_SIGN)
- return G_TOKEN_EQUAL_SIGN;
-
- token = g_scanner_get_next_token(scanner);
- if (token == TOKEN_TRUE)
- *retval = TRUE;
- else if (token == TOKEN_FALSE)
- *retval = FALSE;
- else
- return TOKEN_TRUE;
-
- return G_TOKEN_NONE;
-}
-
-static guint
-olpc_rc_parse_marktype(GScanner *scanner,
- GTokenType wanted_token,
- guint *retval)
-{
- guint token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != wanted_token)
- return wanted_token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != G_TOKEN_EQUAL_SIGN)
- return G_TOKEN_EQUAL_SIGN;
-
- token = g_scanner_get_next_token(scanner);
- switch (token)
- {
- case TOKEN_NOTHING:
- *retval = MARKS_NOTHING;
- break;
- case TOKEN_SLASH:
- *retval = MARKS_SLASH;
- break;
- case TOKEN_INVSLASH:
- *retval = MARKS_INVSLASH;
- break;
- case TOKEN_DOT:
- *retval = MARKS_DOT;
- break;
- case TOKEN_INVDOT:
- *retval = MARKS_INVDOT;
- break;
- case TOKEN_ARROW:
- *retval = MARKS_ARROW;
- break;
- default:
- return TOKEN_NOTHING;
- }
-
- return G_TOKEN_NONE;
-}
-
-static guint
-olpc_rc_parse_paned(GScanner *scanner,
- GTokenType wanted_token,
- guint *retval)
-{
- guint token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != wanted_token)
- return wanted_token;
-
- token = g_scanner_get_next_token(scanner);
- if (token != G_TOKEN_EQUAL_SIGN)
- return G_TOKEN_EQUAL_SIGN;
-
- token = g_scanner_get_next_token(scanner);
- switch (token)
- {
- case TOKEN_NONE:
- *retval = PANED_DOTSNONE;
- break;
- case TOKEN_SOME:
- *retval = PANED_DOTSSOME;
- break;
- case TOKEN_FULL:
- *retval = PANED_DOTSFULL;
- break;
- default:
- return TOKEN_NOTHING;
- }
-
- return G_TOKEN_NONE;
-}
-
-static guint
-olpc_rc_style_parse (GtkRcStyle *rc_style,
- GtkSettings *settings,
- GScanner *scanner)
-{
- static GQuark scope_id = 0;
- OlpcRcStyle *theme_data = OLPC_RC_STYLE (rc_style);
- guint old_scope;
- guint token;
- guint i;
-
- /* Set up a new scope in this scanner. */
-
- /*
- g_print("olpc_rc_parse_rc_style(\"%s\")\n", rc_style->name);
- */
- if (!scope_id)
- scope_id = g_quark_from_string("theme_engine");
-
- /* If we bail out due to errors, we *don't* reset the scope, so the
- * error messaging code can make sense of our tokens.
- */
- old_scope = g_scanner_set_scope(scanner, scope_id);
-
- /* Now check if we already added our symbols to this scope
- * (in some previous call to olpc_rc_parse_rc_style for the
- * same scanner.
- */
-
- if (!g_scanner_lookup_symbol(scanner, olpc_rc_symbols[0].name))
- {
- for (i = 0; i < n_olpc_rc_symbols; i++)
- {
- g_scanner_scope_add_symbol(scanner, scope_id,
- olpc_rc_symbols[i].name,
- GINT_TO_POINTER(olpc_rc_symbols[i].token));
- }
- }
-
- /* We're ready to go, now parse the top level */
-
- /* theme_data = g_new0(OlpcRcStyle, 1); */
- theme_data->scrollbar_type = DEFAULT_SCROLLSHAPE;
- theme_data->scrollbar_marks = DEFAULT_SCROLLBARMARKS;
- theme_data->scroll_button_marks = DEFAULT_SCROLLBUTTONMARKS;
- theme_data->handlebox_marks = DEFAULT_HANDLEBOXMARKS;
- theme_data->mark_type1 = DEFAULT_MARKTYPE1;
- theme_data->mark_type2 = DEFAULT_MARKTYPE2;
-
- token = g_scanner_peek_next_token(scanner);
- while (token != G_TOKEN_RIGHT_CURLY)
- {
- switch (token)
- {
- case TOKEN_RECTSCROLLBAR:
- token = olpc_rc_parse_boolean(scanner, TOKEN_RECTSCROLLBAR, &i);
- if (token != G_TOKEN_NONE)
- break;
- if (i == FALSE)
- theme_data->scrollbar_type = SCROLL_SHAPED;
- else
- theme_data->scrollbar_type = SCROLL_RECT;
- break;
-
- case TOKEN_SCROLLBUTTONMARKS:
- token = olpc_rc_parse_boolean(scanner, TOKEN_SCROLLBUTTONMARKS, &i);
- if (token != G_TOKEN_NONE)
- break;
- if (i == TRUE)
- theme_data->mark_type2 = MARKS_SLASH;
- else
- theme_data->mark_type2 = MARKS_NOTHING;
- /*
- if (i == TRUE)
- theme_data->scroll_button_marks = MARKS_ON;
- else
- theme_data->scroll_button_marks = MARKS_OFF;
- */
- break;
-
- case TOKEN_SCROLLBARMARKS:
- token = olpc_rc_parse_boolean(scanner, TOKEN_SCROLLBARMARKS, &i);
- if (token != G_TOKEN_NONE)
- break;
- if (i == TRUE)
- theme_data->mark_type1 = MARKS_SLASH;
- else
- theme_data->mark_type1 = MARKS_NOTHING;
- /*
- if (i == TRUE)
- theme_data->scrollbar_marks = MARKS_ON;
- else
- theme_data->scrollbar_marks = MARKS_OFF;
- */
- break;
-
- case TOKEN_HANDLEBOXMARKS:
- token = olpc_rc_parse_boolean(scanner, TOKEN_HANDLEBOXMARKS, &i);
- if (token != G_TOKEN_NONE)
- break;
- if (i == TRUE)
- theme_data->handlebox_marks = MARKS_ON;
- else
- theme_data->handlebox_marks = MARKS_OFF;
- break;
-
- case TOKEN_MARKTYPE1:
- token = olpc_rc_parse_marktype(scanner, TOKEN_MARKTYPE1, &i);
- if (token != G_TOKEN_NONE)
- break;
- theme_data->mark_type1 = i;
- break;
-
- case TOKEN_MARKTYPE2:
- token = olpc_rc_parse_marktype(scanner, TOKEN_MARKTYPE2, &i);
- if (token != G_TOKEN_NONE)
- break;
- theme_data->mark_type2 = i;
- break;
-
- case TOKEN_PANEDDOTS:
- token = olpc_rc_parse_paned(scanner, TOKEN_PANEDDOTS, &i);
- if (token != G_TOKEN_NONE)
- break;
- theme_data->paned_dots = i;
- break;
-
- default:
- g_scanner_get_next_token(scanner);
- token = G_TOKEN_RIGHT_CURLY;
- break;
- }
-
- if (token != G_TOKEN_NONE)
- {
-// g_free(theme_data);
- return token;
- }
- token = g_scanner_peek_next_token(scanner);
- }
-
- g_scanner_get_next_token(scanner);
-
- g_scanner_set_scope(scanner, old_scope);
-
- return G_TOKEN_NONE;
-}
-
-static void
-olpc_rc_style_merge (GtkRcStyle * dest,
- GtkRcStyle * src)
-{
- if (OLPC_IS_RC_STYLE (src)) {
- OlpcRcStyle *src_data = OLPC_RC_STYLE (src);
- OlpcRcStyle *dest_data = OLPC_RC_STYLE (dest);
-
- /*
- g_print("theme_merge_rc_style(\"%s\", \"%s\")\n", dest->name, src->name);
- */
-
- dest_data->scrollbar_type = src_data->scrollbar_type;
- dest_data->scrollbar_marks = src_data->scrollbar_marks;
- dest_data->scroll_button_marks = src_data->scroll_button_marks;
- dest_data->handlebox_marks = src_data->handlebox_marks;
- dest_data->mark_type1 = src_data->mark_type1;
- dest_data->mark_type2 = src_data->mark_type2;
- dest_data->paned_dots = src_data->paned_dots;
- }
-
- olpc_parent_rc_style_class->merge (dest, src);
-}
-
-/* Create an empty style suitable to this RC style
- */
-static GtkStyle *
-olpc_rc_style_create_style (GtkRcStyle *rc_style)
-{
- return GTK_STYLE (g_object_new (OLPC_TYPE_STYLE, NULL));
-}