diff --git a/apps/slidingtext/slidingtext.js b/apps/slidingtext/slidingtext.js index 025847967..b2503a323 100644 --- a/apps/slidingtext/slidingtext.js +++ b/apps/slidingtext/slidingtext.js @@ -188,6 +188,20 @@ class ShiftText { this.tgt_y = new_y; this._doMove(); } + scrollInFromLeft(txt,to_x){ + this.setTextXPosition(txt, -txt.length * this.font_size - 2*this.speed_x); + this.moveToX(to_x); + } + scrollInFromRight(txt,to_x){ + this.setTextXPosition(txt, g.getWidth() + 2*this.speed_x); + this.moveToX(to_x); + } + scrollOffToLeft(){ + this.moveToX(-this.txt.length * this.font_size); + } + scrollOffToRight(){ + this.moveToX(g.getWidth() + 2*this.speed_x); + } onFinished(finished_callback){ this.finished_callback = finished_callback; } @@ -237,29 +251,42 @@ class ShiftText { } } +function bangleVersion(){ + return (g.getHeight()>200)? 1 : 2; +} + +var style = { + fg_color: (row,no_rows)=>row === 0 || row >= Math.max(no_rows -1,2)? main_color(): other_color(), + clock_text_speed_x: 10, + y_init: (bangleVersion()<2)? 34 : 50, + row_height: (row,no_rows)=>row === 0 || row >= Math.max(no_rows -1,2)? + (bangleVersion()<2)? 40 : 30: (bangleVersion()<2)? 35 : 25, + scrollIn: (d,txt,to_x)=>d.scrollInFromRight(txt,to_x), + //scrollIn: (d,txt,to_x)=>d.scrollInFromLeft(txt,to_x), + scrollOff: (d)=>d.scrollOffToLeft() + //scrollOff: (d)=>d.scrollOffToRight() +}; + -const CLOCK_TEXT_SPEED_X = 10; // a list of display rows var row_displays; -// y - the height to start displaying from -// heights function (row_no, no_rows) -// colour function (row_no, no_rows) -function setRowDisplays(y, heights, fg_color) { +function init_display() { row_displays = []; - var date_rows = date_formatter.formatDate(new Date()) + y = style.y_init; + var date_rows = date_formatter.formatDate(new Date()); for (var i=0;irow === 0 || row >= no_rows -1? main_color(): other_color(); - var major_row_size = (bangleVersion()<2)? 40 : 30; - var minor_row_size = (bangleVersion()<2)? 35 : 25; - var y_init = (bangleVersion()<2)? 34 : 50; - - setRowDisplays(y_init, - (row,no_rows)=>row === 0 || row >= Math.max(no_rows -1,2)? major_row_size: minor_row_size, - color_func - ); -} - -function bangleVersion(){ - return (g.getHeight()>200)? 1 : 2; -} - function nextColorTheme(){ color_scheme_index += 1; - if(color_scheme_index > row_displays.length){ + if(color_scheme_index >= color_schemes.length){ color_scheme_index = 0; } - setColorScheme(color_schemes[color_scheme_index]); + //console.log("changing color scheme to " + color_schemes[color_scheme_index].name) + updateColorScheme(); reset_clock(true); draw_clock(); } -function setColorScheme(color_scheme){ - setColor(color_scheme.main_bar, - color_scheme.other_bars, - color_scheme.background); -} - -function setColor(main_color,other_color,bg_color){ - row_displays[0].setColor(main_color); - row_displays[0].setBgColor(bg_color); - for(var i=1; i { - if (!shouldRedraw()) { - console.log("draw clock callback - skipped redraw"); - } else { - console.log("draw clock callback"); - draw_clock() - } - }, 60 * 1000 + if (!shouldRedraw()) { + console.log("draw clock callback - skipped redraw"); + } else { + console.log("draw clock callback"); + draw_clock(); + } + }, 60 * 1000 ); if (shouldRedraw()) {