From 1d7d9e2962a7cf5194610e9eea7c0cb8cd14cc33 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 17 May 2023 09:25:47 +0100 Subject: [PATCH] 0.10: Option to hide widgets, tweak top widget width to avoid overlap with hour text at 9am --- apps/slopeclockpp/ChangeLog | 1 + apps/slopeclockpp/app.js | 20 +++++++++++++++----- apps/slopeclockpp/metadata.json | 2 +- apps/slopeclockpp/screenshot.png | Bin 3307 -> 3302 bytes apps/slopeclockpp/settings.js | 4 ++++ 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/apps/slopeclockpp/ChangeLog b/apps/slopeclockpp/ChangeLog index c9fb0de7a..39f837386 100644 --- a/apps/slopeclockpp/ChangeLog +++ b/apps/slopeclockpp/ChangeLog @@ -10,3 +10,4 @@ 0.08: Stability improvements - ensure we continue even if a flat string can't be allocated Stop ClockInfo text drawing outside the allocated area 0.09: Use clock_info module as an app +0.10: Option to hide widgets, tweak top widget width to avoid overlap with hour text at 9am \ No newline at end of file diff --git a/apps/slopeclockpp/app.js b/apps/slopeclockpp/app.js index b57650f9e..5b1d898d1 100644 --- a/apps/slopeclockpp/app.js +++ b/apps/slopeclockpp/app.js @@ -58,7 +58,8 @@ let draw = function() { // Now draw this one R = Bangle.appRect; x = R.w / 2; - y = R.y + R.h / 2 - 12; // 12 = room for date + y = R.y + R.h / 2 - 6; + if (!settings.hideWidgets) y-= 6; // extra room for date var date = new Date(); var local_time = require("locale").time(date, 1); var hourStr = local_time.split(":")[0].trim().padStart(2,'0'); @@ -77,6 +78,8 @@ let draw = function() { g2.setColor(0).fillRect(0,0,g2.getWidth(),g2.getHeight()).setFontAlign(1, 0).setFont("PaytoneOne"); g2.setColor(1).drawString(minStr, g2.getWidth()-fontBorder, g2.getHeight()/2).setFont("4x6"); // draw and unload custom font g2.setColor(0).fillPoly([0,0, g2.getWidth(),0, 0,slope*2]); + // redraw the top widget + clockInfoMenu.redraw(); // start the animation *in* animate(true); }; @@ -141,8 +144,14 @@ let clockInfoDraw = (itm, info, options) => { g.setClipRect(0,0,g.getWidth()-1, g.getHeight()-1); }; let clockInfoItems = require("clock_info").load(); -let clockInfoMenu = require("clock_info").addInteractive(clockInfoItems, { app:"slopeclockpp",x:126, y:24, w:50, h:40, draw : clockInfoDraw, bg : g.theme.bg, fg : g.theme.fg, hl : "#f00"/*red*/ }); -let clockInfoMenu2 = require("clock_info").addInteractive(clockInfoItems, { app:"slopeclockpp",x:0, y:115, w:50, h:40, draw : clockInfoDraw, bg : bgColor, fg : g.theme.bg, hl : (bgColor=="#000")?"#f00"/*red*/:g.theme.fg }); +let clockInfoMenu = require("clock_info").addInteractive(clockInfoItems, { // top right + app:"slopeclockpp",x:132, y:settings.hideWidgets ? 12 : 24, w:44, h:40, + draw : clockInfoDraw, bg : g.theme.bg, fg : g.theme.fg, hl : "#f00"/*red*/ +}); +let clockInfoMenu2 = require("clock_info").addInteractive(clockInfoItems, { // bottom left + app:"slopeclockpp",x:0, y:115, w:50, h:40, + draw : clockInfoDraw, bg : bgColor, fg : g.theme.bg, hl : (bgColor=="#000")?"#f00"/*red*/:g.theme.fg +}); // Show launcher when middle button pressed Bangle.setUI({ @@ -163,6 +172,7 @@ Bangle.setUI({ }); // Load widgets Bangle.loadWidgets(); +if (settings.hideWidgets) require("widget_utils").swipeOn(); +else setTimeout(Bangle.drawWidgets,0); draw(); -setTimeout(Bangle.drawWidgets,0); -} +} \ No newline at end of file diff --git a/apps/slopeclockpp/metadata.json b/apps/slopeclockpp/metadata.json index 116b6c665..086b8148f 100644 --- a/apps/slopeclockpp/metadata.json +++ b/apps/slopeclockpp/metadata.json @@ -1,6 +1,6 @@ { "id": "slopeclockpp", "name": "Slope Clock ++", - "version":"0.09", + "version":"0.10", "description": "A clock where hours and minutes are divided by a sloping line. When the minute changes, the numbers slide off the screen. This is a clone of the original Slope Clock which shows extra information and allows the colors to be selected.", "icon": "app.png", "screenshots": [{"url":"screenshot.png"}], diff --git a/apps/slopeclockpp/screenshot.png b/apps/slopeclockpp/screenshot.png index dfa76fed70b61e0cdf2fb5e5663b54a756245fac..1d9cec8e4e86b379460ac59d532ae0ace1e94ddd 100644 GIT binary patch literal 3302 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 delta 3290 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 z save('hideWidgets', x), + }, /*LANG*/'Red': { value: !!settings.colorRed, format: () => (settings.colorRed ? 'Yes' : 'No'),