From 8f86d9297b1d51c00d57f40514129d1e4cbb4941 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Mon, 11 Mar 2024 08:42:45 +0000 Subject: [PATCH] clock_info: add focus and unfocus to item --- apps/clock_info/lib.js | 10 ++++++++-- typescript/types/clock_info.d.ts | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/clock_info/lib.js b/apps/clock_info/lib.js index 173b44e5d..3799dcb73 100644 --- a/apps/clock_info/lib.js +++ b/apps/clock_info/lib.js @@ -288,10 +288,16 @@ exports.addInteractive = function(menu, options) { options.focus=false; delete Bangle.CLKINFO_FOCUS; options.redraw(); + const itm = menu[options.menuA].items[options.menuB]; + if (itm.unfocus) itm.unfocus(options); }; const focus = (redraw) => { - options.focus=true; - Bangle.CLKINFO_FOCUS=true; + if (!options.focus) { + options.focus=true; + Bangle.CLKINFO_FOCUS=true; + const itm = menu[options.menuA].items[options.menuB]; + if (itm.focus) itm.focus(options); + } if (redraw) options.redraw(); }; let touchHandler, lockHandler; diff --git a/typescript/types/clock_info.d.ts b/typescript/types/clock_info.d.ts index fbdb3354c..ea62e5602 100644 --- a/typescript/types/clock_info.d.ts +++ b/typescript/types/clock_info.d.ts @@ -15,6 +15,8 @@ declare module ClockInfo { hide(options: InteractiveOptions): void, on(what: "redraw", cb: () => void): void, // extending from Object run?(options: InteractiveOptions): void, + focus?(options: InteractiveOptions): void, + unfocus?(options: InteractiveOptions): void, } & ( { hasRange: true,