From 18ab4bc025d4982c845e8afbcd8a68cd739478cd Mon Sep 17 00:00:00 2001 From: bieber Date: Tue, 1 Jun 2010 18:31:58 +0000 Subject: [PATCH] Theme Editor: Made the viewport tag a top-level child under VIEWPORT elements in the parse tree git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26450 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/parsetreenode.cpp | 9 ++++++--- utils/themeeditor/skin_parser.c | 18 ++++++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp index a93295f35..3f8936a54 100644 --- a/utils/themeeditor/parsetreenode.cpp +++ b/utils/themeeditor/parsetreenode.cpp @@ -67,10 +67,13 @@ ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent) case VIEWPORT: case LINE: - for(struct skin_element* current = data->children[0]; current; - current = current->next) + for(int i = 0; i < data->children_count; i++) { - children.append(new ParseTreeNode(current, this)); + for(struct skin_element* current = data->children[i]; current; + current = current->next) + { + children.append(new ParseTreeNode(current, this)); + } } break; diff --git a/utils/themeeditor/skin_parser.c b/utils/themeeditor/skin_parser.c index 4f7acf90f..9fd900179 100644 --- a/utils/themeeditor/skin_parser.c +++ b/utils/themeeditor/skin_parser.c @@ -98,7 +98,6 @@ struct skin_element* skin_parse_viewport(char** document) retval = skin_alloc_element(); retval->type = VIEWPORT; - retval->children = skin_alloc_children(1); retval->children_count = 1; retval->line = skin_line; @@ -109,6 +108,21 @@ struct skin_element* skin_parse_viewport(char** document) int sublines = 0; /* Flag for parsing sublines */ + /* Parsing out the viewport tag if there is one */ + if(check_viewport(cursor)) + { + retval->children_count = 2; + retval->children = skin_alloc_children(2); + retval->children[0] = skin_alloc_element(); + skin_parse_tag(retval->children[0], &cursor); + } + else + { + retval->children_count = 1; + retval->children = skin_alloc_children(1); + } + + while(*cursor != '\0' && !(check_viewport(cursor) && cursor != *document)) { @@ -182,7 +196,7 @@ struct skin_element* skin_parse_viewport(char** document) *document = cursor; - retval->children[0] = root; + retval->children[retval->children_count - 1] = root; return retval; } -- 2.11.4.GIT