class interface VISION_LOOP_STACK
-- It's some loop_stack (see lib/sequencer) EVENT_CATCHER as
-- "special job". Use it like LOOP_STACK.
creation
make
ensure
current_loop /= Void
feature(s) from LOOP_STACK
loop_stack: FAST_ARRAY[LOOP_ITEM]
make
ensure
current_loop /= Void
feature(s) from LOOP_STACK
stop: BOOLEAN
new_loop
-- create new loop with graphic events management and push it
-- on the stack
push_loop (l: LOOP_ITEM)
-- l is restarted and pushed on the stack
-- Use push_loop to reuse some loop (reuse the same modal window).
require
l /= Void
ensure
current_loop = l
run
-- run current_loop (ie execute it's jobs)
require
current_loop /= Void
ensure
loop_stack.is_empty or stop
add_job (j: JOB)
-- Add some job to the current loop
require
j /= Void
break
-- Exit current loop
require
current_loop /= Void
ensure
current_loop /= old current_loop
exit_all
--TODO: Really needed feature ?
require
stop = False
ensure
stop = True
current_loop: LOOP_ITEM
--TODO: change this function into an attribute to be more efficient
feature(s) from VISION_LOOP_STACK
vision: VISION
feature(s) from VISION_LOOP_STACK
event_catcher_stack: FAST_ARRAY[EVENT_CATCHER]
feature(s) from VISION_LOOP_STACK
set_vision (p: VISION)
end of VISION_LOOP_STACK