Half-baked UI goals/proposal

Mike Prince mprince@crl.com
Wed, 28 Dec 1994 15:24:04 -0800 (PST)


On Tue, 27 Dec 1994, Chris Harris wrote:

> Goals/Proposal
> ==============
[snip]

I fully agree with modularity and expandability.

I like your analogy to a funnel.  Raul (I think) and I discussed several 
months ago a data encapsulation scheme.  I was imagining a UI whereas all 
requests would go into your UI funnel in the form of encapsulated data.  
Your UI (actually a mini-interpreter) would decompose this "message", 
executing what it could, and passing off sub-components to other modules.

If our OS has the capability to send messages to cells just by name then 
to increase the capability of you UI, you'd create a cell with the 
requisite functionality, and include a reference to it in your message to 
the UI (the encapsulated data).  Forth like example;

HelloWorld:	// cell name
	"Hello World!" PrintString return

Main:		// another cell name
	[ "Explicit print" PrintString "HelloWorld" CALL ] UI
	end

This is actually pretty close to the way I envision the LLL looking.  The
first HelloWorld creates a cell by the name "HelloWorld" which is put
into the domain directory.  The cell pushes the string "HelloWorld!" onto 
the stack and calls the cell PrintString.  An underlying detail is that
each agent holds a variable naming it's output device, so PrintString
knows where to print (which window for example).

Main is the program we want to run.  Again "Main" is created and put into 
the domain directory.  Main creates a block, the data enclosed in square 
brackets, which is passed on the stack to the cell UI (our user interface).

The UI breaks the message down, first pushing the string and then 
printing it.  Then it reads in the string containing the name of our
"extension".  CALL then calls our routine, printing "Hello World!" to the
device indicated by the agent.

This is a rough example, but it gets the idea across.

>     With that said, there are some goals that each UI module should try to
> accomplish:

I'm fine with your goals.  I'll try to get you some documentation for 
what I'm working on so we stay in sync as much as possible.  I'm 
appreciative for you taking this idea and running with it.  Hopefully 
we'll have some code running together soon!

Mike