Theme Editor: Applied FS#11389, switched conditional elements to use tag fields along with children, instead of holding the tag as the first child

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26751 a1c6a512-1295-4272-9138-f99709370657
diff --git a/utils/themeeditor/skin_parser.h b/utils/themeeditor/skin_parser.h
index d3821c0..c15ba9d 100644
--- a/utils/themeeditor/skin_parser.h
+++ b/utils/themeeditor/skin_parser.h
@@ -26,14 +26,7 @@
 extern "C"
 {
 #endif
-
-
-#define SKIN_MAX_MEMORY 1048576
-
-/********************************************************************
- ******  A global buffer will be used to store the parse tree *******
- *******************************************************************/
-extern char skin_parse_tree[];
+#include <stdlib.h>
 
 /********************************************************************
  ****** Data Structures *********************************************
@@ -98,8 +91,11 @@
     /* The line on which it's defined in the source file */
     int line;
 
-    /* Text for comments and plaintext */
-    char* text;
+    /* Placeholder for element data
+     * TEXT and COMMENT uses it for the text string
+     * TAG, VIEWPORT, LINE, etc may use it for post parse extra storage
+     */
+    void* data;
 
     /* The tag or conditional name */
     struct tag_info *tag;
@@ -125,6 +121,7 @@
 struct skin_element* skin_parse(const char* document);
 
 /* Memory management functions */
+char *skin_alloc(size_t size);
 struct skin_element* skin_alloc_element();
 struct skin_element** skin_alloc_children(int count);
 struct skin_tag_parameter* skin_alloc_params(int count);
@@ -132,6 +129,7 @@
 
 void skin_free_tree(struct skin_element* root);
 
+
 #ifdef __cplusplus
 }
 #endif