Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/folderlaunch/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
* @param _button 1 for left half, 2 for right half
* @param xy postion on screen
*/
let onTouch = function (_button: number, xy: { x: number, y: number } | undefined) {
let onTouch = function (_button, xy) {
// Determine which grid cell was tapped
let x: number = Math.floor((xy!.x - 12) / ((g.getWidth() - 24) / config.display.rows));
if (x < 0) x = 0;
Expand Down Expand Up @@ -206,7 +206,7 @@
break;
}
}
}
} satisfies TouchCallback;

let page: number = 0;
let nPages: number; // Set when setting folder
Expand Down
1 change: 1 addition & 0 deletions apps/promenu/ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@
0.10: Trigger `remove` callbacks when ending the menu
0.11: Add options for natural scroll and disabling wrap-around
0.12: Fix bug where settings would behave as if all were set to false
0.13: Update to new touch-event handling
26 changes: 15 additions & 11 deletions apps/promenu/bootb2.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,10 +133,10 @@ E.showMenu = function (items) {
g.setColor((idx < menuItems.length) ? g.theme.fg : g.theme.bg).fillPoly([72, 166, 104, 166, 88, 174]);
g.flip();
},
select: function () {
select: function (evt) {
var item = items[menuItems[selected]];
if (typeof item === "function") {
item();
item(evt);
}
else if (typeof item === "object") {
if (typeof item.value === "number") {
Expand All @@ -146,12 +146,12 @@ E.showMenu = function (items) {
if (typeof item.value === "boolean")
item.value = !item.value;
if (item.onchange)
item.onchange(item.value);
item.onchange(item.value, evt);
}
l.draw();
}
},
move: function (dir) {
move: function (dir, evt) {
var item = selectEdit;
if (typeof item === "object" && typeof item.value === "number") {
var orig = item.value;
Expand All @@ -162,7 +162,7 @@ E.showMenu = function (items) {
item.value = item.wrap ? item.min : item.max;
if (item.value !== orig) {
if (item.onchange)
item.onchange(item.value);
item.onchange(item.value, evt);
l.draw(selected, selected);
}
}
Expand Down Expand Up @@ -198,6 +198,12 @@ E.showMenu = function (items) {
};
Bangle.on('swipe', onSwipe);
}
var cb = function (dir, evt) {
if (dir)
l.move(prosettings.naturalScroll ? -dir : dir, evt);
else
l.select(evt);
};
Bangle.setUI({
mode: "updown",
back: back,
Expand All @@ -208,11 +214,9 @@ E.showMenu = function (items) {
Bangle.removeListener("swipe", onSwipe);
(_a = options.remove) === null || _a === void 0 ? void 0 : _a.call(options);
},
}, function (dir) {
if (dir)
l.move(prosettings.naturalScroll ? -dir : dir);
else
l.select();
});
touch: (function (_button, xy) {
cb(void 0, xy);
}),
}, cb);
return l;
};
27 changes: 17 additions & 10 deletions apps/promenu/bootb2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,11 @@ E.showMenu = (items?: Menu): MenuInstance => {
g.setColor((idx < menuItems.length)?g.theme.fg:g.theme.bg).fillPoly([72, 166, 104, 166, 88, 174]);
g.flip();
},
select: () => {
select: (evt: TouchCallbackXY | undefined) => {
const item = items![menuItems[selected]] as ActualMenuItem;

if (typeof item === "function") {
item();
item(evt);
} else if (typeof item === "object") {
if (typeof item.value === "number") {
selectEdit = selectEdit ? undefined : item;
Expand All @@ -188,12 +188,12 @@ E.showMenu = (items?: Menu): MenuInstance => {
item.value = !item.value;

if (item.onchange)
item.onchange(item.value as boolean);
item.onchange(item.value as boolean, evt);
}
l.draw();
}
},
move: (dir: number) => {
move: (dir: number, evt: TouchCallbackXY | undefined) => {
const item = selectEdit;

if (typeof item === "object" && typeof item.value === "number") {
Expand All @@ -209,7 +209,7 @@ E.showMenu = (items?: Menu): MenuInstance => {

if (item.value !== orig) {
if (item.onchange)
item.onchange(item.value);
item.onchange(item.value, evt);

l.draw(selected, selected);
}
Expand Down Expand Up @@ -247,6 +247,11 @@ E.showMenu = (items?: Menu): MenuInstance => {
Bangle.on('swipe', onSwipe);
}

const cb = (dir?: 1 | -1, evt?: TouchCallbackXY) => {
if (dir) l.move(prosettings.naturalScroll ? -dir : dir, evt);
else l.select(evt);
};

Bangle.setUI({
mode: "updown",
back,
Expand All @@ -255,11 +260,13 @@ E.showMenu = (items?: Menu): MenuInstance => {
Bangle.removeListener("swipe", onSwipe);
options.remove?.();
},
} as SetUIArg<"updown">,
dir => {
if (dir) l.move(prosettings.naturalScroll ? -dir : dir);
else l.select();
});
touch: ((_button, xy) => {
// since we've specified options.touch,
// we need to pass through all taps since the default
// touchHandler isn't installed in setUI
cb(void 0, xy);
}) satisfies TouchCallback,
} as SetUIArg<"updown">, cb);

return l;
};
2 changes: 1 addition & 1 deletion apps/promenu/metadata.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "promenu",
"name": "Pro Menu",
"version": "0.12",
"version": "0.13",
"description": "Replace the built in menu function. Supports Bangle.js 1 and Bangle.js 2.",
"icon": "icon.png",
"type": "bootloader",
Expand Down
Loading