2017-08-16 13:02:03 +00:00
|
|
|
from trezor import loop
|
2016-09-21 12:21:18 +00:00
|
|
|
|
2018-03-01 04:13:01 +00:00
|
|
|
workflows = []
|
2018-02-19 15:50:58 +00:00
|
|
|
layouts = []
|
2018-03-01 04:13:01 +00:00
|
|
|
default = None
|
|
|
|
default_layout = None
|
2016-09-21 12:21:18 +00:00
|
|
|
|
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
def onstart(w):
|
2018-03-01 04:13:01 +00:00
|
|
|
workflows.append(w)
|
2016-09-21 12:21:18 +00:00
|
|
|
|
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
def onclose(w):
|
2018-03-01 04:13:01 +00:00
|
|
|
workflows.remove(w)
|
|
|
|
if not layouts and default_layout:
|
|
|
|
startdefault(default_layout)
|
2017-08-16 13:02:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
def closedefault():
|
|
|
|
global default
|
|
|
|
|
|
|
|
if default:
|
2017-10-10 13:32:43 +00:00
|
|
|
loop.close(default)
|
2017-08-16 13:02:03 +00:00
|
|
|
default = None
|
2016-09-21 12:21:18 +00:00
|
|
|
|
|
|
|
|
2018-03-01 04:13:01 +00:00
|
|
|
def startdefault(layout):
|
2017-08-16 13:02:03 +00:00
|
|
|
global default
|
2018-03-01 04:13:01 +00:00
|
|
|
global default_layout
|
2016-09-21 12:21:18 +00:00
|
|
|
|
2017-08-16 13:02:03 +00:00
|
|
|
if not default:
|
2018-03-01 04:13:01 +00:00
|
|
|
default_layout = layout
|
|
|
|
default = layout()
|
2017-09-16 13:00:31 +00:00
|
|
|
loop.schedule(default)
|
2018-02-19 15:50:58 +00:00
|
|
|
|
|
|
|
|
2018-03-01 04:02:11 +00:00
|
|
|
def restartdefault():
|
2018-03-01 04:24:57 +00:00
|
|
|
global default_layout
|
|
|
|
d = default_layout
|
2018-03-01 04:02:11 +00:00
|
|
|
closedefault()
|
|
|
|
startdefault(d)
|
|
|
|
|
|
|
|
|
2018-02-19 15:50:58 +00:00
|
|
|
def onlayoutstart(l):
|
|
|
|
closedefault()
|
|
|
|
layouts.append(l)
|
|
|
|
|
|
|
|
|
|
|
|
def onlayoutclose(l):
|
2018-03-01 04:13:01 +00:00
|
|
|
if l in layouts:
|
|
|
|
layouts.remove(l)
|