summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/skin_parser/skin_debug.c12
-rw-r--r--lib/skin_parser/skin_parser.c35
-rw-r--r--lib/skin_parser/skin_parser.h6
-rw-r--r--lib/skin_parser/tag_table.c10
-rw-r--r--lib/skin_parser/tag_table.h3
-rw-r--r--utils/themeeditor/graphics/rbprogressbar.cpp8
-rw-r--r--utils/themeeditor/graphics/rbviewport.cpp10
-rw-r--r--utils/themeeditor/gui/devicestate.cpp6
-rw-r--r--utils/themeeditor/models/parsetreemodel.cpp4
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp63
10 files changed, 107 insertions, 50 deletions
diff --git a/lib/skin_parser/skin_debug.c b/lib/skin_parser/skin_debug.c
index 00d09aea7e..4abe6252f0 100644
--- a/lib/skin_parser/skin_debug.c
+++ b/lib/skin_parser/skin_debug.c
@@ -70,6 +70,9 @@ void skin_error(enum skin_errorcode error)
70 case INT_EXPECTED: 70 case INT_EXPECTED:
71 error_message = "Expected integer"; 71 error_message = "Expected integer";
72 break; 72 break;
73 case DECIMAL_EXPECTED:
74 error_message = "Expected decimal";
75 break;
73 case SEPERATOR_EXPECTED: 76 case SEPERATOR_EXPECTED:
74 error_message = "Expected argument seperator"; 77 error_message = "Expected argument seperator";
75 break; 78 break;
@@ -236,8 +239,13 @@ void skin_debug_params(int count, struct skin_tag_parameter params[])
236 printf("[%s]", params[i].data.text); 239 printf("[%s]", params[i].data.text);
237 break; 240 break;
238 241
239 case NUMERIC: 242 case INTEGER:
240 printf("[%d]", params[i].data.numeric); 243 printf("[%d]", params[i].data.number);
244 break;
245
246 case DECIMAL:
247 printf("[%d.%d]", params[i].data.number/10,
248 params[i].data.number%10);
241 break; 249 break;
242 250
243 case CODE: 251 case CODE:
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c
index 2ce41c6d9a..5bc5984fb7 100644
--- a/lib/skin_parser/skin_parser.c
+++ b/lib/skin_parser/skin_parser.c
@@ -23,6 +23,7 @@
23#include <stdio.h> 23#include <stdio.h>
24#include <string.h> 24#include <string.h>
25#include <ctype.h> 25#include <ctype.h>
26#include <stdbool.h>
26 27
27#include "skin_buffer.h" 28#include "skin_buffer.h"
28#include "skin_parser.h" 29#include "skin_parser.h"
@@ -534,7 +535,7 @@ static int skin_parse_tag(struct skin_element* element, char** document)
534 /* Storing the type code */ 535 /* Storing the type code */
535 element->params[i].type_code = *tag_args; 536 element->params[i].type_code = *tag_args;
536 537
537 /* Checking a nullable argument for null */ 538 /* Checking a nullable argument for null. */
538 if(*cursor == DEFAULTSYM && !isdigit(cursor[1])) 539 if(*cursor == DEFAULTSYM && !isdigit(cursor[1]))
539 { 540 {
540 if(islower(*tag_args)) 541 if(islower(*tag_args))
@@ -557,8 +558,36 @@ static int skin_parse_tag(struct skin_element* element, char** document)
557 return 0; 558 return 0;
558 } 559 }
559 560
560 element->params[i].type = NUMERIC; 561 element->params[i].type = INTEGER;
561 element->params[i].data.numeric = scan_int(&cursor); 562 element->params[i].data.number = scan_int(&cursor);
563 }
564 else if(tolower(*tag_args) == 'd')
565 {
566 int val = 0;
567 bool have_point = false;
568 bool have_tenth = false;
569 while ( isdigit(*cursor) || *cursor == '.' )
570 {
571 if (*cursor != '.')
572 {
573 val *= 10;
574 val += *cursor - '0';
575 if (have_point)
576 {
577 have_tenth = true;
578 cursor++;
579 break;
580 }
581 }
582 else
583 have_point = true;
584 cursor++;
585 }
586 if (have_tenth == false)
587 val *= 10;
588
589 element->params[i].type = DECIMAL;
590 element->params[i].data.number = val;
562 } 591 }
563 else if(tolower(*tag_args) == 'n' || 592 else if(tolower(*tag_args) == 'n' ||
564 tolower(*tag_args) == 's' || tolower(*tag_args) == 'f') 593 tolower(*tag_args) == 's' || tolower(*tag_args) == 'f')
diff --git a/lib/skin_parser/skin_parser.h b/lib/skin_parser/skin_parser.h
index 126a014b5a..ad10f90125 100644
--- a/lib/skin_parser/skin_parser.h
+++ b/lib/skin_parser/skin_parser.h
@@ -56,6 +56,7 @@ enum skin_errorcode
56 UNEXPECTED_NEWLINE, 56 UNEXPECTED_NEWLINE,
57 INSUFFICIENT_ARGS, 57 INSUFFICIENT_ARGS,
58 INT_EXPECTED, 58 INT_EXPECTED,
59 DECIMAL_EXPECTED,
59 SEPERATOR_EXPECTED, 60 SEPERATOR_EXPECTED,
60 CLOSE_EXPECTED, 61 CLOSE_EXPECTED,
61 MULTILINE_EXPECTED 62 MULTILINE_EXPECTED
@@ -66,7 +67,8 @@ struct skin_tag_parameter
66{ 67{
67 enum 68 enum
68 { 69 {
69 NUMERIC, 70 INTEGER,
71 DECIMAL, /* stored in data.number as (whole*10)+part */
70 STRING, 72 STRING,
71 CODE, 73 CODE,
72 DEFAULT 74 DEFAULT
@@ -74,7 +76,7 @@ struct skin_tag_parameter
74 76
75 union 77 union
76 { 78 {
77 int numeric; 79 int number;
78 char* text; 80 char* text;
79 struct skin_element* code; 81 struct skin_element* code;
80 } data; 82 } data;
diff --git a/lib/skin_parser/tag_table.c b/lib/skin_parser/tag_table.c
index e0247ef745..dd8df63997 100644
--- a/lib/skin_parser/tag_table.c
+++ b/lib/skin_parser/tag_table.c
@@ -120,7 +120,7 @@ struct tag_info legal_tags[] =
120 { SKIN_TOKEN_REMOTE_HOLD, "mr", "", 0 }, 120 { SKIN_TOKEN_REMOTE_HOLD, "mr", "", 0 },
121 { SKIN_TOKEN_REPEAT_MODE, "mm", "", 0 }, 121 { SKIN_TOKEN_REPEAT_MODE, "mm", "", 0 },
122 { SKIN_TOKEN_PLAYBACK_STATUS, "mp", "", 0 }, 122 { SKIN_TOKEN_PLAYBACK_STATUS, "mp", "", 0 },
123 { SKIN_TOKEN_BUTTON_VOLUME, "mv", "|S", 0 }, 123 { SKIN_TOKEN_BUTTON_VOLUME, "mv", "|D", 0 },
124 124
125 { SKIN_TOKEN_PEAKMETER, "pm", "", 0 }, 125 { SKIN_TOKEN_PEAKMETER, "pm", "", 0 },
126 { SKIN_TOKEN_PLAYER_PROGRESSBAR, "pf", "", 0 }, 126 { SKIN_TOKEN_PLAYER_PROGRESSBAR, "pf", "", 0 },
@@ -131,8 +131,8 @@ struct tag_info legal_tags[] =
131 { SKIN_TOKEN_TRACK_TIME_ELAPSED, "pc", "", 0 }, 131 { SKIN_TOKEN_TRACK_TIME_ELAPSED, "pc", "", 0 },
132 { SKIN_TOKEN_TRACK_TIME_REMAINING, "pr", "", 0 }, 132 { SKIN_TOKEN_TRACK_TIME_REMAINING, "pr", "", 0 },
133 { SKIN_TOKEN_TRACK_LENGTH, "pt", "", 0 }, 133 { SKIN_TOKEN_TRACK_LENGTH, "pt", "", 0 },
134 { SKIN_TOKEN_TRACK_STARTING, "pS" , "|S", 0 }, 134 { SKIN_TOKEN_TRACK_STARTING, "pS" , "|D", 0 },
135 { SKIN_TOKEN_TRACK_ENDING, "pE" , "|S", 0 }, 135 { SKIN_TOKEN_TRACK_ENDING, "pE" , "|D", 0 },
136 { SKIN_TOKEN_PLAYLIST_POSITION, "pp", "", 0 }, 136 { SKIN_TOKEN_PLAYLIST_POSITION, "pp", "", 0 },
137 { SKIN_TOKEN_PLAYLIST_ENTRIES, "pe", "", 0 }, 137 { SKIN_TOKEN_PLAYLIST_ENTRIES, "pe", "", 0 },
138 { SKIN_TOKEN_PLAYLIST_NAME, "pn", "", 0 }, 138 { SKIN_TOKEN_PLAYLIST_NAME, "pn", "", 0 },
@@ -161,7 +161,7 @@ struct tag_info legal_tags[] =
161 { SKIN_TOKEN_RDS_TEXT, "tz", "", 0 }, 161 { SKIN_TOKEN_RDS_TEXT, "tz", "", 0 },
162 162
163 { SKIN_TOKEN_SUBLINE_SCROLL, "s", "", 0 }, 163 { SKIN_TOKEN_SUBLINE_SCROLL, "s", "", 0 },
164 { SKIN_TOKEN_SUBLINE_TIMEOUT, "t" , "S", 0 }, 164 { SKIN_TOKEN_SUBLINE_TIMEOUT, "t" , "D", 0 },
165 165
166 { SKIN_TOKEN_ENABLE_THEME, "we", "", NOBREAK }, 166 { SKIN_TOKEN_ENABLE_THEME, "we", "", NOBREAK },
167 { SKIN_TOKEN_DISABLE_THEME, "wd", "", NOBREAK }, 167 { SKIN_TOKEN_DISABLE_THEME, "wd", "", NOBREAK },
@@ -196,7 +196,7 @@ struct tag_info legal_tags[] =
196 { SKIN_TOKEN_TRANSLATEDSTRING, "Sx" , "S", 0 }, 196 { SKIN_TOKEN_TRANSLATEDSTRING, "Sx" , "S", 0 },
197 { SKIN_TOKEN_LANG_IS_RTL, "Sr" , "", 0 }, 197 { SKIN_TOKEN_LANG_IS_RTL, "Sr" , "", 0 },
198 198
199 { SKIN_TOKEN_LASTTOUCH, "Tl" , "|S", 0 }, 199 { SKIN_TOKEN_LASTTOUCH, "Tl" , "|D", 0 },
200 { SKIN_TOKEN_CURRENT_SCREEN, "cs", "", 0 }, 200 { SKIN_TOKEN_CURRENT_SCREEN, "cs", "", 0 },
201 { SKIN_TOKEN_TOUCHREGION, "T" , "IIiiS", NOBREAK }, 201 { SKIN_TOKEN_TOUCHREGION, "T" , "IIiiS", NOBREAK },
202 202
diff --git a/lib/skin_parser/tag_table.h b/lib/skin_parser/tag_table.h
index 149f148cca..f84d4ac762 100644
--- a/lib/skin_parser/tag_table.h
+++ b/lib/skin_parser/tag_table.h
@@ -246,6 +246,9 @@ enum skin_token_type {
246 * characters for parameters are: 246 * characters for parameters are:
247 * I - Required integer 247 * I - Required integer
248 * i - Nullable integer 248 * i - Nullable integer
249 * D - Required decimal
250 * d - Nullable decimal
251 * Decimals are stored as (whole*10)+part
249 * S - Required string 252 * S - Required string
250 * s - Nullable string 253 * s - Nullable string
251 * F - Required file name 254 * F - Required file name
diff --git a/utils/themeeditor/graphics/rbprogressbar.cpp b/utils/themeeditor/graphics/rbprogressbar.cpp
index 027520f4da..206a835252 100644
--- a/utils/themeeditor/graphics/rbprogressbar.cpp
+++ b/utils/themeeditor/graphics/rbprogressbar.cpp
@@ -41,22 +41,22 @@ RBProgressBar::RBProgressBar(RBViewport *parent, const RBRenderInfo &info,
41 41
42 if(paramCount > 0 && params[0].type != skin_tag_parameter::DEFAULT) 42 if(paramCount > 0 && params[0].type != skin_tag_parameter::DEFAULT)
43 { 43 {
44 x = params[0].data.numeric; 44 x = params[0].data.number;
45 } 45 }
46 46
47 if(paramCount > 1 && params[1].type != skin_tag_parameter::DEFAULT) 47 if(paramCount > 1 && params[1].type != skin_tag_parameter::DEFAULT)
48 { 48 {
49 y = params[1].data.numeric; 49 y = params[1].data.number;
50 } 50 }
51 51
52 if(paramCount > 2 && params[2].type != skin_tag_parameter::DEFAULT) 52 if(paramCount > 2 && params[2].type != skin_tag_parameter::DEFAULT)
53 { 53 {
54 w = params[2].data.numeric; 54 w = params[2].data.number;
55 } 55 }
56 56
57 if(paramCount > 3 && params[3].type != skin_tag_parameter::DEFAULT) 57 if(paramCount > 3 && params[3].type != skin_tag_parameter::DEFAULT)
58 { 58 {
59 h = params[3].data.numeric; 59 h = params[3].data.number;
60 } 60 }
61 61
62 if(paramCount > 4 && params[4].type != skin_tag_parameter::DEFAULT) 62 if(paramCount > 4 && params[4].type != skin_tag_parameter::DEFAULT)
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp
index 96d7e8b276..e9c58eb6fb 100644
--- a/utils/themeeditor/graphics/rbviewport.cpp
+++ b/utils/themeeditor/graphics/rbviewport.cpp
@@ -97,24 +97,24 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info)
97 break; 97 break;
98 } 98 }
99 /* Now we grab the info common to all viewports */ 99 /* Now we grab the info common to all viewports */
100 x = node->params[param++].data.numeric; 100 x = node->params[param++].data.number;
101 if(x < 0) 101 if(x < 0)
102 x = info.screen()->boundingRect().right() + x; 102 x = info.screen()->boundingRect().right() + x;
103 y = node->params[param++].data.numeric; 103 y = node->params[param++].data.number;
104 if(y < 0) 104 if(y < 0)
105 y = info.screen()->boundingRect().bottom() + y; 105 y = info.screen()->boundingRect().bottom() + y;
106 106
107 if(node->params[param].type == skin_tag_parameter::DEFAULT) 107 if(node->params[param].type == skin_tag_parameter::DEFAULT)
108 w = info.screen()->getWidth() - x; 108 w = info.screen()->getWidth() - x;
109 else 109 else
110 w = node->params[param].data.numeric; 110 w = node->params[param].data.number;
111 if(w < 0) 111 if(w < 0)
112 w = info.screen()->getWidth() + w - x; 112 w = info.screen()->getWidth() + w - x;
113 113
114 if(node->params[++param].type == skin_tag_parameter::DEFAULT) 114 if(node->params[++param].type == skin_tag_parameter::DEFAULT)
115 h = info.screen()->getHeight() - y; 115 h = info.screen()->getHeight() - y;
116 else 116 else
117 h = node->params[param].data.numeric; 117 h = node->params[param].data.number;
118 if(h < 0) 118 if(h < 0)
119 h = info.screen()->getHeight() + h - y; 119 h = info.screen()->getHeight() + h - y;
120 120
@@ -128,7 +128,7 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info)
128 if(node->params[++param].type == skin_tag_parameter::DEFAULT) 128 if(node->params[++param].type == skin_tag_parameter::DEFAULT)
129 font = screen->getFont(1); 129 font = screen->getFont(1);
130 else 130 else
131 font = screen->getFont(node->params[param].data.numeric); 131 font = screen->getFont(node->params[param].data.number);
132 132
133 setPos(x, y); 133 setPos(x, y);
134 size = QRectF(0, 0, w, h); 134 size = QRectF(0, 0, w, h);
diff --git a/utils/themeeditor/gui/devicestate.cpp b/utils/themeeditor/gui/devicestate.cpp
index 89985bf730..e766a64835 100644
--- a/utils/themeeditor/gui/devicestate.cpp
+++ b/utils/themeeditor/gui/devicestate.cpp
@@ -225,7 +225,7 @@ QVariant DeviceState::data(QString tag, int paramCount,
225 QString path = tag[0].isLower() 225 QString path = tag[0].isLower()
226 ? data("file").toString() : data("nextfile").toString(); 226 ? data("file").toString() : data("nextfile").toString();
227 if(paramCount > 0) 227 if(paramCount > 0)
228 return directory(path, params[0].data.numeric); 228 return directory(path, params[0].data.number);
229 else 229 else
230 return QVariant(); 230 return QVariant();
231 } 231 }
@@ -255,7 +255,7 @@ QVariant DeviceState::data(QString tag, int paramCount,
255 else if(tag == "pS") 255 else if(tag == "pS")
256 { 256 {
257 double threshhold = paramCount > 0 257 double threshhold = paramCount > 0
258 ? std::atof(params[0].data.text) : 10; 258 ? params[0].data.number / 10. : 10;
259 if(data("?pc").toDouble() <= threshhold) 259 if(data("?pc").toDouble() <= threshhold)
260 return true; 260 return true;
261 else 261 else
@@ -264,7 +264,7 @@ QVariant DeviceState::data(QString tag, int paramCount,
264 else if(tag == "pE") 264 else if(tag == "pE")
265 { 265 {
266 double threshhold = paramCount > 0 266 double threshhold = paramCount > 0
267 ? std::atof(params[0].data.text) : 10; 267 ? params[0].data.number / 10. : 10;
268 if(data("?pt").toDouble() - data("?pc").toDouble() <= threshhold) 268 if(data("?pt").toDouble() - data("?pc").toDouble() <= threshhold)
269 return true; 269 return true;
270 else 270 else
diff --git a/utils/themeeditor/models/parsetreemodel.cpp b/utils/themeeditor/models/parsetreemodel.cpp
index a04a0d9202..66c96213ab 100644
--- a/utils/themeeditor/models/parsetreemodel.cpp
+++ b/utils/themeeditor/models/parsetreemodel.cpp
@@ -246,8 +246,8 @@ bool ParseTreeModel::setData(const QModelIndex &index, const QVariant &value,
246 if(!value.canConvert(QVariant::Int)) 246 if(!value.canConvert(QVariant::Int))
247 return false; 247 return false;
248 248
249 param->type = skin_tag_parameter::NUMERIC; 249 param->type = skin_tag_parameter::INTEGER;
250 param->data.numeric = value.toInt(); 250 param->data.number = value.toInt();
251 } 251 }
252 else 252 else
253 { 253 {
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index 1b894b7c33..fbb7b9279f 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -246,8 +246,12 @@ QString ParseTreeNode::genCode() const
246 } 246 }
247 break; 247 break;
248 248
249 case skin_tag_parameter::NUMERIC: 249 case skin_tag_parameter::INTEGER:
250 buffer.append(QString::number(param->data.numeric, 10)); 250 buffer.append(QString::number(param->data.number, 10));
251 break;
252
253 case skin_tag_parameter::DECIMAL:
254 buffer.append(QString::number(param->data.number / 10., 'f', 1));
251 break; 255 break;
252 256
253 case skin_tag_parameter::DEFAULT: 257 case skin_tag_parameter::DEFAULT:
@@ -318,8 +322,8 @@ int ParseTreeNode::genHash() const
318 case skin_tag_parameter::CODE: 322 case skin_tag_parameter::CODE:
319 break; 323 break;
320 324
321 case skin_tag_parameter::NUMERIC: 325 case skin_tag_parameter::INTEGER:
322 hash += param->data.numeric * (param->data.numeric / 4); 326 hash += param->data.number * (param->data.number / 4);
323 break; 327 break;
324 328
325 case skin_tag_parameter::STRING: 329 case skin_tag_parameter::STRING:
@@ -331,6 +335,10 @@ int ParseTreeNode::genHash() const
331 hash += param->data.text[i]; 335 hash += param->data.text[i];
332 } 336 }
333 break; 337 break;
338
339 case skin_tag_parameter::DECIMAL:
340 hash += param->data.number;
341 break;
334 } 342 }
335 } 343 }
336 344
@@ -396,8 +404,11 @@ QVariant ParseTreeNode::data(int column) const
396 case skin_tag_parameter::STRING: 404 case skin_tag_parameter::STRING:
397 return QObject::tr("String"); 405 return QObject::tr("String");
398 406
399 case skin_tag_parameter::NUMERIC: 407 case skin_tag_parameter::INTEGER:
400 return QObject::tr("Number"); 408 return QObject::tr("Integer");
409
410 case skin_tag_parameter::DECIMAL:
411 return QObject::tr("Decimal");
401 412
402 case skin_tag_parameter::DEFAULT: 413 case skin_tag_parameter::DEFAULT:
403 return QObject::tr("Default Argument"); 414 return QObject::tr("Default Argument");
@@ -445,11 +456,15 @@ QVariant ParseTreeNode::data(int column) const
445 case skin_tag_parameter::STRING: 456 case skin_tag_parameter::STRING:
446 return QString(param->data.text); 457 return QString(param->data.text);
447 458
448 case skin_tag_parameter::NUMERIC: 459 case skin_tag_parameter::INTEGER:
449 return QString::number(param->data.numeric, 10); 460 return QString::number(param->data.number, 10);
461
462 case skin_tag_parameter::DECIMAL:
463 return QString::number(param->data.number / 10., 'f', 1);
450 464
451 case skin_tag_parameter::CODE: 465 case skin_tag_parameter::CODE:
452 return QObject::tr("Seriously, something's wrong here"); 466 return QObject::tr("Seriously, something's wrong here");
467
453 } 468 }
454 } 469 }
455 else 470 else
@@ -742,10 +757,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
742 id = element->params[0].data.text; 757 id = element->params[0].data.text;
743 filename = info.settings()->value("imagepath", "") + "/" + 758 filename = info.settings()->value("imagepath", "") + "/" +
744 element->params[1].data.text; 759 element->params[1].data.text;
745 x = element->params[2].data.numeric; 760 x = element->params[2].data.number;
746 y = element->params[3].data.numeric; 761 y = element->params[3].data.number;
747 if(element->params_count > 4) 762 if(element->params_count > 4)
748 tiles = element->params[4].data.numeric; 763 tiles = element->params[4].data.number;
749 else 764 else
750 tiles = 1; 765 tiles = 1;
751 766
@@ -758,8 +773,8 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
758 id = element->params[0].data.text; 773 id = element->params[0].data.text;
759 filename = info.settings()->value("imagepath", "") + "/" + 774 filename = info.settings()->value("imagepath", "") + "/" +
760 element->params[1].data.text; 775 element->params[1].data.text;
761 x = element->params[2].data.numeric; 776 x = element->params[2].data.number;
762 y = element->params[3].data.numeric; 777 y = element->params[3].data.number;
763 image = new RBImage(filename, 1, x, y, viewport); 778 image = new RBImage(filename, 1, x, y, viewport);
764 info.screen()->loadImage(id, new RBImage(filename, 1, x, y, 779 info.screen()->loadImage(id, new RBImage(filename, 1, x, y,
765 viewport)); 780 viewport));
@@ -780,10 +795,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
780 795
781 case 'l': 796 case 'l':
782 /* %Cl */ 797 /* %Cl */
783 x = element->params[0].data.numeric; 798 x = element->params[0].data.number;
784 y = element->params[1].data.numeric; 799 y = element->params[1].data.number;
785 maxWidth = element->params[2].data.numeric; 800 maxWidth = element->params[2].data.number;
786 maxHeight = element->params[3].data.numeric; 801 maxHeight = element->params[3].data.number;
787 hAlign = element->params_count > 4 802 hAlign = element->params_count > 4
788 ? element->params[4].data.text[0] : 'c'; 803 ? element->params[4].data.text[0] : 'c';
789 vAlign = element->params_count > 5 804 vAlign = element->params_count > 5
@@ -805,7 +820,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
805 820
806 case 'l': 821 case 'l':
807 /* %Fl */ 822 /* %Fl */
808 x = element->params[0].data.numeric; 823 x = element->params[0].data.number;
809 filename = info.settings()->value("themebase", "") + "/fonts/" + 824 filename = info.settings()->value("themebase", "") + "/fonts/" +
810 element->params[1].data.text; 825 element->params[1].data.text;
811 info.screen()->loadFont(x, new RBFont(filename)); 826 info.screen()->loadFont(x, new RBFont(filename));
@@ -822,10 +837,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
822 /* %T */ 837 /* %T */
823 if(element->params_count < 5) 838 if(element->params_count < 5)
824 return false; 839 return false;
825 int x = element->params[0].data.numeric; 840 int x = element->params[0].data.number;
826 int y = element->params[1].data.numeric; 841 int y = element->params[1].data.number;
827 int width = element->params[2].data.numeric; 842 int width = element->params[2].data.number;
828 int height = element->params[3].data.numeric; 843 int height = element->params[3].data.number;
829 QString action(element->params[4].data.text); 844 QString action(element->params[4].data.text);
830 RBTouchArea* temp = new RBTouchArea(width, height, action, info); 845 RBTouchArea* temp = new RBTouchArea(width, height, action, info);
831 temp->setPos(x, y); 846 temp->setPos(x, y);
@@ -863,7 +878,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
863 878
864 case 'p': 879 case 'p':
865 /* %Vp */ 880 /* %Vp */
866 viewport->showPlaylist(info, element->params[0].data.numeric, 881 viewport->showPlaylist(info, element->params[0].data.number,
867 element->params[1].data.code, 882 element->params[1].data.code,
868 element->params[2].data.code); 883 element->params[2].data.code);
869 return true; 884 return true;
@@ -1016,7 +1031,7 @@ double ParseTreeNode::findBranchTime(ParseTreeNode *branch,
1016 if(current->element->tag->name[0] == 't' 1031 if(current->element->tag->name[0] == 't'
1017 && current->element->tag->name[1] == '\0') 1032 && current->element->tag->name[1] == '\0')
1018 { 1033 {
1019 retval = atof(current->element->params[0].data.text); 1034 retval = current->element->params[0].data.number / 10.;
1020 } 1035 }
1021 } 1036 }
1022 else if(current->element->type == CONDITIONAL) 1037 else if(current->element->type == CONDITIONAL)