<script type="text/javascript">\r
// valid types for the config object are 'Int', 'Bool', 'String', 'Enum', 'UID', 'Array'\r
var config = {\r
+ fontsize: { Type: 'Enum', Default: 'auto', Value: 'auto', ValidValues: ['auto', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28'],},\r
+ eventsPerWidget: { Type: 'Int', Default: 4, Value: 4,},\r
monthRange: { Type: 'Int', Default: 2, Value: 2,},\r
includeTodos: { Type: 'Bool', Default: true, Value: true,},\r
useBackgroundImage: { Type: 'Bool', Default: true, Value: true,},\r
weekDayLength: { Type: 'Int', Default: 2, Value: 2,},\r
updateDataInterval: { Type: 'Int', Default: 5, Value: 5,},\r
calendarApp: { Type: 'UID', Default: 0x10005901, Value: 0x10005901,},\r
- eventsPerWidget: { Type: 'Int', Default: 4, Value: 4,},\r
showNothingText: { Type: 'Bool', Default: true, Value: true,},\r
nothingText: { Type: 'String', Default: getLocalizedText('settings.default.nothingText'), Value: getLocalizedText('settings.default.nothingText'),},\r
enableDaylightSaving: { Type: 'Bool', Default: true, Value: true,},\r
var statupSuccessful = false; // indicates if everything started up wihtout errors. If we detect an error after that, it might just be a temporary problem e.g. by a backup process.\r
var use12hoursTimeFormat = false; // defines how time should be formated: 19:00 or 07:00 pm\r
var timeFormatSeparator = ":"; // format time 19:00 or 19.00 depending on system setting\r
+var defaultFontSize = null; // default browser font size will be set by init\r
\r
// vars for daylight saving time\r
var summertime = false; // true, if current date is in summer, false if in winter\r
var counter = 0;\r
var entryDate = '';\r
var dateArr = [];\r
- var fontsize = 'normal';\r
- var lineheight = 'normal';\r
+ var fontsize = getDefaultFontSize()[1] + 'px';\r
+ var lineheight = fontsize;\r
if (mode == 0) {\r
- fontsize = parseInt(72 / config['eventsPerWidget'].Value) + 'px';\r
- lineheight = parseInt(82 / config['eventsPerWidget'].Value) + 'px';\r
- \r
- if (config['eventsPerWidget'].Value == 3) {\r
- changeCssClass('.icon', 'width:20px; height:20px');\r
- }\r
- else if (config['eventsPerWidget'].Value == 5) {\r
- changeCssClass('.icon', 'width:10px; height:10px');\r
- }\r
- else if (config['eventsPerWidget'].Value == 6) {\r
- changeCssClass('.icon', 'width:8px; height:8px');\r
+ if (config['fontsize'].Value == config['fontsize'].ValidValues[0]) {\r
+ fontsize = parseInt(72 / config['eventsPerWidget'].Value) + 'px';\r
+ lineheight = parseInt(82 / config['eventsPerWidget'].Value) + 'px';\r
}\r
}\r
- else\r
- changeCssClass('.icon', config['cssStyle_icon'].Value);\r
+ if (config['fontsize'].Value != config['fontsize'].ValidValues[0]) {\r
+ fontsize = config['fontsize'].Value + 'px';\r
+ lineheight = fontsize;\r
+ }\r
+ changeCssClass('.icon', config['cssStyle_icon'].Value + '; width:' + lineheight + '; height:' + lineheight + ';');\r
var entriesHtml = '<table style="font-size:' + fontsize + '; line-height:' + lineheight + ';">';\r
if (mode == 0)\r
entriesHtml = '<table width="307" height="82"><tr><td>' + entriesHtml; // this is needed to center the actual content vertically\r
settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="0x' + config[key].Value.toString(16) + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Enum') {\r
settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><select name="settings.' + key + '" size="1">';\r
- for(var i = 0; i < config[key].ValidValues.length; i++)\r
- settingsHtml += '<option value="' + config[key].ValidValues[i] + '"' + (config[key].Value == config[key].ValidValues[i] ? ' selected="selected"' : '') + '>' + getLocalizedText('settings.validValues.' + key + '.' + config[key].ValidValues[i]) + '</option>';\r
+ for(var i = 0; i < config[key].ValidValues.length; i++) {\r
+ var text = getLocalizedText('settings.validValues.' + key + '.' + config[key].ValidValues[i]);\r
+ if (text.indexOf('ERROR') == 0)\r
+ text = config[key].ValidValues[i];\r
+ settingsHtml += '<option value="' + config[key].ValidValues[i] + '"' + (config[key].Value == config[key].ValidValues[i] ? ' selected="selected"' : '') + '>' + text + '</option>';\r
+ }\r
settingsHtml += '</select></div></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
}\r
else if (config[key].Type == 'Array') {\r
}\r
}\r
\r
+function getDefaultFontSize()\r
+{\r
+ if (defaultFontSize == null) {\r
+ var pa = document.body;\r
+ var who = document.createElement('div');\r
+ who.className = 'defaultEm';\r
+ who.appendChild(document.createTextNode('M'));\r
+ pa.appendChild(who);\r
+ var fs = [who.offsetWidth, who.offsetHeight];\r
+ pa.removeChild(who);\r
+ defaultFontSize = fs;\r
+ }\r
+ return defaultFontSize;\r
+}\r
+\r
</script>\r
\r
<style type="text/css">\r
#name { text-align:center; }\r
#appicon { display: block; margin-left: auto; margin-right: auto; margin-top: 10px; }\r
#smallappicon { width:22px; height:22px; margin-right:10px; float:left; }\r
+.defaultEm { font-size:1em; position:absolute; line-height:1; padding:0; visibility:hidden; } \r
</style>\r
\r
</head>\r