mirror of
https://github.com/britzl/monarch.git
synced 2025-06-27 10:27:49 +02:00
Added monarch.clear()
This commit is contained in:
parent
9e81b3a327
commit
76d4ca2927
@ -33,6 +33,13 @@ Hide a screen that has been shown using the `no_stack` option. If used on a scre
|
|||||||
* `success` (boolean) - True if the process of hiding the screen was started successfully.
|
* `success` (boolean) - True if the process of hiding the screen was started successfully.
|
||||||
|
|
||||||
|
|
||||||
|
## monarch.clear([callback])
|
||||||
|
Clear the stack of screens completely. Any visible screen will be hidden by navigating back out from them. This operation will be added to the queue if Monarch is busy.
|
||||||
|
|
||||||
|
**PARAMETERS**
|
||||||
|
* `callback` (function) - Optional function to call when the stack has been cleared.
|
||||||
|
|
||||||
|
|
||||||
## monarch.back([data], [callback])
|
## monarch.back([data], [callback])
|
||||||
Go back to a previous Monarch screen. This operation will be added to the queue if Monarch is busy.
|
Go back to a previous Monarch screen. This operation will be added to the queue if Monarch is busy.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[project]
|
[project]
|
||||||
title = Monarch
|
title = Monarch
|
||||||
version = 0.9
|
version = 0.9
|
||||||
dependencies = https://github.com/britzl/deftest/archive/2.7.0.zip
|
dependencies#0 = https://github.com/britzl/deftest/archive/2.7.0.zip
|
||||||
|
|
||||||
[bootstrap]
|
[bootstrap]
|
||||||
main_collection = /example/advanced/advanced.collectionc
|
main_collection = /example/advanced/advanced.collectionc
|
||||||
|
@ -826,7 +826,7 @@ end
|
|||||||
|
|
||||||
-- Hide a screen. The screen must either be at the top of the stack or
|
-- Hide a screen. The screen must either be at the top of the stack or
|
||||||
-- visible but not added to the stack (through the no_stack option)
|
-- visible but not added to the stack (through the no_stack option)
|
||||||
-- @param id (string|hash) - Id of the screen to show
|
-- @param id (string|hash) - Id of the screen to .hide
|
||||||
-- @param cb (function) - Optional callback to invoke when the screen is hidden
|
-- @param cb (function) - Optional callback to invoke when the screen is hidden
|
||||||
-- @return true if successfully hiding, false if busy or for some other reason unable to hide the screen
|
-- @return true if successfully hiding, false if busy or for some other reason unable to hide the screen
|
||||||
function M.hide(id, cb)
|
function M.hide(id, cb)
|
||||||
@ -863,6 +863,42 @@ function M.hide(id, cb)
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Clear stack completely. Any visible screens will be hidden by navigating back out
|
||||||
|
-- from them.
|
||||||
|
-- @param cb (function) - Optional callback to invoke when the stack has been cleared
|
||||||
|
function M.clear(cb)
|
||||||
|
log("clear() queuing action")
|
||||||
|
|
||||||
|
queue_action(function(action_done, action_error)
|
||||||
|
local co
|
||||||
|
co = coroutine.create(function()
|
||||||
|
|
||||||
|
local callbacks = callback_tracker()
|
||||||
|
|
||||||
|
local top = stack[#stack]
|
||||||
|
while top and top.visible do
|
||||||
|
stack[#stack] = nil
|
||||||
|
back_out(top, screen, WAIT_FOR_TRANSITION, callbacks.track())
|
||||||
|
callbacks.yield_until_done()
|
||||||
|
top = stack[#stack]
|
||||||
|
end
|
||||||
|
|
||||||
|
while stack[#stack] do
|
||||||
|
table.remove(stack)
|
||||||
|
end
|
||||||
|
|
||||||
|
callbacks.when_done(function()
|
||||||
|
pcallfn(cb)
|
||||||
|
pcallfn(action_done)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
assert(coroutine.resume(co))
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Go back to the previous screen in the stack.
|
-- Go back to the previous screen in the stack.
|
||||||
-- @param data (*) - Optional data to set for the previous screen
|
-- @param data (*) - Optional data to set for the previous screen
|
||||||
-- @param cb (function) - Optional callback to invoke when the previous screen is visible again
|
-- @param cb (function) - Optional callback to invoke when the previous screen is visible again
|
||||||
|
Loading…
x
Reference in New Issue
Block a user