Merge pull request #1039 from ps-igel/master

update Numerals clock
pull/1037/head^2
Gordon Williams 2021-12-09 09:09:22 +00:00 committed by GitHub
commit c003a8897f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 18 deletions

View File

@ -2086,12 +2086,12 @@
"id": "numerals",
"name": "Numerals Clock",
"shortName": "Numerals Clock",
"version": "0.09",
"version": "0.10",
"description": "A simple big numerals clock",
"icon": "numerals.png",
"type": "clock",
"tags": "numerals,clock",
"supports": ["BANGLEJS"],
"supports": ["BANGLEJS","BANGLEJS2"],
"allow_emulator": true,
"screenshots": [{"url":"bangle1-numerals-screenshot.png"}],
"storage": [

View File

@ -7,3 +7,4 @@
0.07: Add date on touch and some improvements (see settings and readme)
0.08: Add new draw styles, tidy up draw functionality
0.09: Tweak for faster rendering
0.10: Enhance for use with Bangle2, insert new draw mode 'thickfill'

View File

@ -7,14 +7,20 @@ Settings can be accessed through the app/widget settings menu of the Bangle.js
### Color:
* rnd - shows numerals in different color combinations every time the watches wakes
* r/g - red/green
* y/w - yellow/white
* o/c - orange/cyan
* b/y - blue/yellow'ish
* r/g - red/green (Bangle1/Bangle2)
* y/w - yellow/white (Bangle1 only)
* o/c - orange/cyan (Bangle1 only)
* b/y - blue/yellow'ish (Bangle1 only)
* r/g - red/green (Bangle2 only)
* g/b - green/blue (Bangle2 only)
* r/c - red/cyan (Bangle2 only)
* m/g - magenta/green (Bangle2 only)
### Draw mode
* fill - fill numerals
* frame - only shows outline of numerals
* framefill - frame with lighter color fill
* thickfill - thick frame in theme foreground color
### Menu button
* choose button to start launcher menu with

View File

@ -6,7 +6,7 @@
* + see README.md for details
*/
var numerals = {
var numerals = {
0:[[9,1,82,1,90,9,90,92,82,100,9,100,1,92,1,9],[30,25,61,25,69,33,69,67,61,75,30,75,22,67,22,33]],
1:[[50,1,82,1,90,9,90,92,82,100,73,100,65,92,65,27,50,27,42,19,42,9]],
2:[[9,1,82,1,90,9,90,53,82,61,21,61,21,74,82,74,90,82,90,92,82,100,9,100,1,92,1,48,9,40,70,40,70,27,9,27,1,19,1,9]],
@ -19,8 +19,8 @@ var numerals = {
9:[[9,1,82,1,90,9,90,92,82,100,9,100,1,92,1,82,9,74,69,74,69,61,9,61,1,53,1,9],[22,27,69,27,69,41,22,41]],
};
var _12hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]||false;
var _hCol = ["#ff5555","#ffff00","#FF9901","#2F00FF"];
var _mCol = ["#55ff55","#ffffff","#00EFEF","#FFBF00"];
var _hCol = [];
var _mCol = [];
var _rCol = 0;
var scale = g.getWidth()/240;
var interval = 0;
@ -42,15 +42,23 @@ var drawFuncs = {
},
thickframe : function(poly,isHole){
g.drawPoly(poly,true);
g.drawPoly(translate(1,0,poly),true);
g.drawPoly(translate(1,1,poly),true);
g.drawPoly(translate(0,1,poly),true);
g.drawPoly(translate(1,0,poly,1),true);
g.drawPoly(translate(1,1,poly,1),true);
g.drawPoly(translate(0,1,poly,1),true);
},
thickfill : function(poly,isHole){
if (isHole) g.setColor(g.theme.bg);
g.fillPoly(poly,true);
g.setColor(g.theme.fg);
g.drawPoly(translate(1,0,poly,1),true);
g.drawPoly(translate(1,1,poly,1),true);
g.drawPoly(translate(0,1,poly,1),true);
}
};
function translate(tx, ty, p){
function translate(tx, ty, p, ascale){
//return p.map((x, i)=> x+((i&1)?ty:tx));
return g.transformVertices(p, {x:tx,y:ty,scale:scale});
return g.transformVertices(p, {x:tx,y:ty,scale:ascale==undefined?scale:ascale});
}
@ -99,6 +107,18 @@ function setUpdateInt(set){
if (set) interval=setInterval(draw, REFRESH_RATE);
}
function setUp(){
if (process.env.HWVERSION==1){
_hCol = ["#ff5555","#ffff00","#FF9901","#2F00FF"];
_mCol = ["#55ff55","#ffffff","#00EFEF","#FFBF00"];
} else {
_hCol = ["#ff0000","#00ff00","#ff0000","#ff00ff"];
_mCol = ["#00ff00","#0000ff","#00ffff","#00ff00"];
}
if (settings.color==0) _rCol = Math.floor(Math.random()*_hCol.length);
}
setUp();
g.clear(1);
// Show launcher when button pressed
Bangle.setUI("clock");
@ -111,11 +131,12 @@ if (settings.showDate) {
}
Bangle.on('lcdPower', function(on){
if (on){
if (settings.color==0) _rCol = Math.floor(Math.random()*_hCol.length);
setUp();
draw();
setUpdateInt(1);
} else setUpdateInt(0);
});
Bangle.on('lock', () => setUp());
Bangle.loadWidgets();
Bangle.drawWidgets();
Bangle.drawWidgets();

View File

@ -12,8 +12,8 @@
}
let numeralsSettings = storage.readJSON('numerals.json',1);
if (!numeralsSettings) resetSettings();
let dm = ["fill","frame","framefill","thickframe"];
let col = ["rnd","r/g","y/w","o/c","b/y"];
let dm = ["fill","frame","framefill","thickframe","thickfill"];
let col = process.env.HWVERSION==1?["rnd","r/g","y/w","o/c","b/y"]:["rnd","r/g","g/b","r/c","m/g"];
let btn = [[24,"BTN1"],[22,"BTN2"],[23,"BTN3"],[11,"BTN4"],[16,"BTN5"]];
var menu={
"" : { "title":"Numerals"},