mirror of https://github.com/espruino/BangleApps
Merge pull request #1585 from rigrig/layout-back
Layout: add support for `back` optionpull/1588/head^2
commit
69c89728e0
|
@ -59,6 +59,7 @@ options is an object containing:
|
||||||
* `label` - the text on the button
|
* `label` - the text on the button
|
||||||
* `cb` - a callback function
|
* `cb` - a callback function
|
||||||
* `cbl` - a callback function for long presses
|
* `cbl` - a callback function for long presses
|
||||||
|
* `back` - a callback function, passed as `back` into Bangle.setUI
|
||||||
|
|
||||||
If automatic lazy rendering is enabled, calls to `layout.render()` will attempt to automatically
|
If automatic lazy rendering is enabled, calls to `layout.render()` will attempt to automatically
|
||||||
determine what objects have changed or moved, clear their previous locations, and re-render just those objects.
|
determine what objects have changed or moved, clear their previous locations, and re-render just those objects.
|
||||||
|
@ -89,7 +90,7 @@ function Layout(layout, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
this.lazy = options.lazy || false;
|
this.lazy = options.lazy || false;
|
||||||
|
|
||||||
var btnList;
|
var btnList, uiSet;
|
||||||
Bangle.setUI(); // remove all existing input handlers
|
Bangle.setUI(); // remove all existing input handlers
|
||||||
if (process.env.HWVERSION!=2) {
|
if (process.env.HWVERSION!=2) {
|
||||||
// no touchscreen, find any buttons in 'layout'
|
// no touchscreen, find any buttons in 'layout'
|
||||||
|
@ -104,7 +105,7 @@ function Layout(layout, options) {
|
||||||
this.physBtns = 0;
|
this.physBtns = 0;
|
||||||
this.buttons = btnList;
|
this.buttons = btnList;
|
||||||
this.selectedButton = -1;
|
this.selectedButton = -1;
|
||||||
Bangle.setUI("updown", dir=>{
|
Bangle.setUI({mode:"updown", back:options.back}, dir=>{
|
||||||
var s = this.selectedButton, l=this.buttons.length;
|
var s = this.selectedButton, l=this.buttons.length;
|
||||||
if (dir===undefined && this.buttons[s])
|
if (dir===undefined && this.buttons[s])
|
||||||
return this.buttons[s].cb();
|
return this.buttons[s].cb();
|
||||||
|
@ -119,8 +120,10 @@ function Layout(layout, options) {
|
||||||
}
|
}
|
||||||
this.selectedButton = s;
|
this.selectedButton = s;
|
||||||
});
|
});
|
||||||
|
uiSet = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (options.back && !uiSet) Bangle.setUI({mode: "custom", back: options.back});
|
||||||
|
|
||||||
if (options.btns) {
|
if (options.btns) {
|
||||||
var buttons = options.btns;
|
var buttons = options.btns;
|
||||||
|
|
Loading…
Reference in New Issue