aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/edje/edje_cc_handlers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/edje/edje_cc_handlers.c')
-rw-r--r--src/bin/edje/edje_cc_handlers.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 09c2599aa7..3a8bbe727e 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -2738,6 +2738,25 @@ ob_color_class(void)
cc->a3 = 0;
}
+static void
+_color_class_name(char *name)
+{
+ Edje_Color_Class *cc, *tcc;
+ Eina_List *l;
+
+ cc = eina_list_data_get(eina_list_last(edje_file->color_classes));
+ cc->name = name;
+ EINA_LIST_FOREACH(edje_file->color_classes, l, tcc)
+ {
+ if ((cc != tcc) && (!strcmp(cc->name, tcc->name)))
+ {
+ ERR("parse error %s:%i. There is already a color class named \"%s\"",
+ file_in, line - 1, cc->name);
+ exit(-1);
+ }
+ }
+}
+
/**
@page edcref
@@ -14767,6 +14786,13 @@ edje_cc_handlers_wildcard(void)
stack_pop_quick(EINA_FALSE, EINA_FALSE);
return EINA_TRUE;
}
+ if (edje_file->color_classes && (!strcmp(last, "color_class")))
+ {
+ if (!had_quote) return EINA_FALSE;
+ _color_class_name(token);
+ stack_pop_quick(EINA_FALSE, EINA_FALSE);
+ return EINA_TRUE;
+ }
if (edje_file->text_classes && (!strcmp(last, "text_class")))
{
if (!had_quote) return EINA_FALSE;