From d7c461f39ae96647c0797fd6d123c39e05336002 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Wed, 25 Jun 2014 12:52:32 +0200 Subject: [PATCH] added new layout and first handling of it in the parser --- uhr-de_CH.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ uhr.js | 28 ++++++++++++++++++++++---- 2 files changed, 80 insertions(+), 4 deletions(-) diff --git a/uhr-de_CH.js b/uhr-de_CH.js index 874ae1c..5dc89d1 100644 --- a/uhr-de_CH.js +++ b/uhr-de_CH.js @@ -28,3 +28,59 @@ var layout = { ] }; window._uhr.languages['de_CH'] = layout; +var newLayout = { + version: 2, + _es_isch: {1:[1,2,4,5,6,7]}, + _genau: {3:[7,8,9,10,11]}, + _ab: {4:[4,5]}, + _vor: {4:[1,2,3]}, + _haubi: {4:[7,8,9,10,11]}, + _5: {1:[9,10,11]}, + _10: {2:[9,10,11]}, + _15: {2:[1,2,3,4,5,6]}, + _20: {3:[1,2,3,4,5,6]}, + language: 'Bärndütsch (nöi)', + letters: [ + 'ESKISCHAFÜF', + 'VIERTUBFZÄÄ', + 'ZWÄNZGGENAU', + 'VORABOHAUBI', + 'EISZWÖISFRÜ', + 'VIERIFÜFIQT', + 'SÄCHSISIBNI', + 'ACHTINÜNIEL', + 'ZÄNIERBEUFI', + 'ZWÜUFINAUHR' + ], + permanent: this._es_isch, + minutes: { + 0: this._genau, + 1: {}, + 5: [this._5, this._ab], + 10: [this._10, this._ab], + 15: [this._15, this._ab], + 20: [this._20, this._ab], + 25: [this._5, this._vor, this._haubi], + 30: [this._haubi], + 35: [this._5, this._ab, this._haubi], + 40: [this._20, this._vor], + 45: [this._15, this._vor], + 50: [this._10, this._vor], + 55: [this._5, this._vor] + }, + hours: { + 0: {10:[1,2,3,4,5,6]}, + 1: {5:[1,2,3]}, + 2: {5:[4,5,6,7]}, + 3: {5:[9,10,11]}, + 4: {6:[1,2,3,4,5]}, + 5: {6:[6,7,8,9]}, + 6: {7:[1,2,3,4,5,6]}, + 7: {7:[7,8,9,10,11]}, + 8: {8:[1,2,3,4,5]}, + 9: {8:[6,7,8,9]}, + 10: {9:[1,2,3,4]}, + 11: {9:[8,9,10,11]} + } +}; +window._uhr.languages['de_CH2'] = newLayout; diff --git a/uhr.js b/uhr.js index 74f0213..33ebe98 100644 --- a/uhr.js +++ b/uhr.js @@ -286,17 +286,37 @@ along with this program. If not, see . function UhrRenderer(layout, renderarea) { this.layout = layout; this.renderarea = renderarea; + this._parseLayoutV2 = function() { + console.log("attempting to parse layout v2"); + var letters = [['a'], ['b', 'c',]]; + return letters; + } } UhrRenderer.prototype.render = function(uhr, beforeshow) { var renderer = this; + var letters; + if (this.layout.version !== undefined) { + switch (this.layout.version) { + case 2: + letters = this._parseLayoutV2(); + break; + default: + if (console !== undefined && typeof console.log == 'function') { + console.log("Unknown layout version: " + this.layout.version); + } + return; + } + } else { + letters = renderer.layout.values; + } this.renderarea.fadeOut('fast', function() { renderer.renderarea.empty(); - for (var y = 0; y < renderer.layout.values.length; y++) { - for (var x = 0; x < renderer.layout.values[y].length; x++) { - var letter = renderer.layout.values[y][x]; + for (var y = 0; y < letters.length; y++) { + for (var x = 0; x < letters[y].length; x++) { + var letter = letters[y][x]; renderer.renderarea.append(letter.toString()); } - if (y < renderer.layout.values.length - 1) { + if (y < letters.length - 1) { renderer.renderarea.append('
'); } }