A few words about view/ view/new and event-loop:

On Samstag, 14. August 2004 01:05, Izkata wrote:
> Using view/new works just fine.. The script continues as it should..
>
> But for some reason, even if I hadn't used view/new in the script yet,
> using only view layout [blah blah] causes the script to continue on and not
> halt.
> It usually happens when I click a button in a layout that calls a function
> that
> opens another.  (Did that make sense?)

Makes sense :)
Thats because 'view checks if any windows are open. It is not meant to block, 
but somebody has to start the event-loop. And there is no way to check if 
events are running already. So by convention, if there are open windows, 
there is a running event-loop too.

Another difference between view and view/new: view closes the current window. 
view/new adds another one.

In combination you can make kind of "browser" where you do go to other scripts 
when the user presses a button:

as convention each script makes a layout and ends with 
  view my-layout

now the first script runs. it sees there is no open window, so starts the 
event-loop (blocks).
now the user presses button, we do second script.
This script does its view, and now a window is open:
1) view closes the old window. Thats good. otherwise we would have lots of 
death, uninteresting windows some clicks later.
2) it sees a window is open, so there should be a event-loop. So it does not 
start a new one (means does no 'wait, 'do-events or such).
3) does not block. so the script returns. 'view was the last command, so that 
makes no difference. 
So rebol does some returns, to the button-press, then to the first event-loop. 
There are no more information about doing the new script on the return-stack. 
So you can do an unlimited amount of scripts. 
You can also do the same script alot of times. button-press -> change data, 
save data, do script again. No stack-flooding. Kind of tail-recursion.

Or you can use that like a browser: a script is a "page", has some content and 
some links (buttons with "do other page"). The other page has some links too. 
All pages have a "do %main-menu.r". And you have a flexible application where 
you quickly can add funtions.
Only problem are the jumping windows, but for a prototype ok.

>
>
>         -Izzy boy ^.^  (Thanx for any help if you understood my request)

-Volker

-- 
To unsubscribe from the list, just send an email to rebol-request
at rebol.com with unsubscribe as the subject.

Reply via email to