From 49865b23f601e636c9a80b21826fc607f1964eb5 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Wed, 4 Aug 2010 09:16:52 +0000 Subject: Theme Editor: Began implementing code generation for movable viewports git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27691 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/models/parsetreenode.cpp | 32 +++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'utils/themeeditor/models/parsetreenode.cpp') diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index 1349ba9..8d1fcc7 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -523,7 +523,7 @@ void ParseTreeNode::render(const RBRenderInfo& info) return; } - rendered = new RBViewport(element, info); + rendered = new RBViewport(element, info, this); for(int i = element->params_count; i < children.count(); i++) children[i]->render(info, dynamic_cast(rendered)); @@ -1057,3 +1057,33 @@ double ParseTreeNode::findConditionalTime(ParseTreeNode *conditional, conditional->children.count()).toInt(); return findBranchTime(conditional->children[child], info); } + +void ParseTreeNode::modParam(QVariant value, int index) +{ + if(element) + { + if(index < 0 || index >= children.count()) + return; + children[index]->modParam(value); + } + else if(param) + { + if(value.type() == QVariant::Double) + { + param->type = skin_tag_parameter::DECIMAL; + param->data.number = static_cast(value.toDouble() * 10); + } + else if(value.type() == QVariant::String) + { + param->type = skin_tag_parameter::STRING; + free(param->data.text); + param->data.text = strdup(value.toString().toStdString().c_str()); + } + else if(value.type() == QVariant::Int) + { + param->type = skin_tag_parameter::INTEGER; + param->data.number = value.toInt(); + } + + } +} -- cgit v1.1