[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
Re: [zzdev] Applets
- To: zzdev@xxxxxxxxxx
- Subject: Re: [zzdev] Applets
- From: Jonathan Koren <koren@xxxxxxxxxxx>
- Date: Wed, 20 Oct 1999 16:18:55 -0500 (CDT)
- In-reply-to: <3.0.1.16.19991020151701.5bbf176c@xxxxxxxx>
I've been lurking on here for about a year now, so I figure it's time
to say saomething.
On Wed, 20 Oct 1999, Brent Turcotte wrote:
> I hear that zigzag will be ported to other programming languages.
From what I understand (and I'm sure the ubiquitous Mr. Andrew Pam
will correct me if I'm wrong), the zigzag is just being prototyped in
Perl. Once all the general functionality is smoothed out, it will
translated into C or C++.
> Will that mean that applets will have to be reprogrammed
> for each language? Will there be an API?
Well there would have to be an API, otherwise you wouldn't be able to
do this. :) For something like this you'd probably create some sort
of library to link in, rather than actually writing routines that
would cause zigzag to have to be recompiled to take advantage of the
applet. (Of course compilation isn't really an issue when it comes to
Perl.)
If you used a library, all you'd have to do would be make a
call into it. There's tools that let you do this. (SWIG comes to
mind immediatly for C-Perl connections. I've used it before, MUCH
nicer than XS.)
> It is early, documentation will be coming describing how applets
> will interact with zigzag. But I can't help it, I want to
> speculate. I not sure if I am correct or if there are better
> ways of doing it than what I describe here.
> Types of applets: [sorted by type]
> - Applets which add commands to zigzag.
>
> - Applets which execute commands in cells. Cells can contain
> plain text, graphics, math, or macros or whatever you wish.
This should definatly happen. I thought the whole point of zigzag was
to let you organize data anyway you want, and part of that is creating
commands.
Related to this is creating functions inside the cell. (i.e add the
posward X cell, to the posward Y cell, and stick the value in this
cell.)
> - Global options for zigzag. Since there are only so many keys
> on the keyboard, there needs to be an applets which will allow
> to configure key assignments. Also to prevent key assignment
> conflicts.
> - Applets which are views. The views be based on the whole of
> zigzag dataspace, a dimensionally limited view, or a selection
> of cells.
>
> - Applets which link views. For example, the floating headcell
> view need to be connected to the I and/or H view to be useful.
> Also, it might be desirable to link cursors -- so if you move
> one cursor others move simulataneously.
>
> - Applets which restrict access or cells or links. These cells
> and links can be password protected, or just plain hidden for
> clarity. Or you could force a user to fill in cells before
> continuing. Or alert the users of unfilled cells.
>
These aren't really an applet, just an interface enhancements, but
they are all good ideas.
> - Applets which generate cells and links. Examples: possibility
> generator and tables. If you have a rank of floating headcells,
> then the command 'create new cell' will create a parallel rank of
> cells, instead of a single cell.
This too is an interface enhancement, but a different kind. Sounds
like you want to impliment a macro language of some sort.
Jonathan's Wish List:
A zigzag library. I'd like to build apps that take advantage of the
zigzag infrastructure. A GUI widget would be good thing to have
too. (ultra-coolness if it's GNOMEified.)
Associate a cell with data streams. The key to this idea is having
one cell extract data from another cell. Everytime the a cell reads
the value from the datastream cell, the datastream cell's value
changes. (Of course this doesn't make sense unless you have somesort
of update value feature.)
This also starts to turn zigzag from only an application enviroment,
to also a development envviroment. (True visual programming, if you
like.).
Just some ideas, I'd like to see/help_with.
--
Jonathan Koren
koren@xxxxxxxxxxx