While not actually knowing what you want to do, you probably can get some ideas from this:
if you do not use Associative arrays as objects then you can create a state object at the global level that would be visible to all your screens. Each window in turn could modify the fields in the AA and then the lower window can check the AA. If there are any changes to the window itself you would make them before closing the one above
You an even keep references to other windows in that array. Or to other components or objects that are in the lower windows can also be referenced. Say you wanted the window above it to change something, you just have the lower window put a reference to itself into a field in the array before opening the one above it at the start
When the stack returns to the window above it, it checks the state made my the windows above, and uses the window handle of the window below it to make changes before closing. Of course that would depend on what you want to do.
'
At the global level using the m pointer create a state variable. You would of course define the fields that you need. Function Main(() As Void
m.MyState = {
VideoPlayed: False
Screen: ( place reference to lower screen or lower screen object )
Response: ""
ErrorCode: 0
ErrorMessage: "" }
End Function
Then in each event loop for your windows up the stack they would modify the AAm.MyState.VideoPlayed = False
m.MyState.Response = "Would not Load"
m.MyState.ErrorCode = 403
m.MyState.ErrorMessage = "Access Denied"
When control returns to the windows lower in the stack they check the AAif ( m.MyState.VideoPlayed ) then DoSomething()
if ( m.MyState.ErrorCode <> 0 ) then ShowMessage( m.MyState.ErrorMessage )
My Channels: 2D API Framework Presentation: https://owner.roku.com/add/2M9LCVC
Updated: 11-11-2015 - Completed Keyboard interface
The Joel Channel ( Final Beta )