Date: Thu, 06 Jul 2000 03:30:07 +0900 To: lukka@xxxxxx, veparkki@xxxxxxxxxxxxx From: Ted Nelson <ted@xxxxxxxxxx> Subject: :zz,virt: Cursor-switching command specs (d5 Cc: ted@xxxxxxxxxx, marlene@xxxxxxxxxx, xanni@xxxxxxxxxx, eharter@xxxxxxxxx Hi guys-- The family of cursor-switching commands lets the user open separate cursor-windows, switch views among these windows, and switch arrowset assignments among them. Dimension views and starting cells may be preset or not, as the user prefers. Note that a standard PC keyboard gives you a separate arrowset for moving two to four cursors simultaneously; this adds some complication to the model. (If you had only ONE arrowset, you would merely switch it among windows.) ORIGINAL SPECS The cursor-switching commands in the original '97 specs-- in fact, I think in the '86 specs-- were: ? cursor fork (make new cursor in new window on the same accursed cell that you're looking at). ? cursor vaporize (formerly "cursor kill"-- unpleasant term), closes the window/cursor you're presently looking at and transfers frontness to one of the remaining cursors which remain-- the next on the Current Cursors looplist. ? cursor leap or switch (formerly cursor hop)-- bring a different current cursor to the front. How to use these is self-evident. However, this simple model assumed that you have-- ? no preferred cursor preset views and starting positions ? only one arrowset Various complications ensue from these additional options. I'll deal with them in the design that follows. Let's start with Cursor Presets: ? You may want a cursor with a specific view, all set up ? You may want a cursor on a specific starting cell Then we'll get to switching arrowsets. Here's my new fuller design. ================ Refer to picture. Note that clones are indicated with thin double lines. The user is assumed to have a current cursor set of cursors working (one or more), each with its own window open. Cursors do not have names, except to the system. (Actually we *might* have them later...) A cursor has a color or picture. This can be a JPEG or .gif, which appears behind the contents. We have THREE CORNER LISTS OF CURSORS (in d.1/d.2); as with dimensions, each of these is a ringrank-- ? one for the system list of all cursors-- The Grand Cursor List (the system list) is just a list of preset cursor appearances (you see the appearances on the list-- i.e., cells with colors and/or patterns). ? one for the system list of cursors presently open. ? The Personal-Cursor List is a list of clones from the Grand Cursor List, listing the subset that you want to be able to open quickly. (This also seems to be the way dimensions currently work.) There are also TWO CORNER LISTS THAT FURTHER SPECIFY HOW CURSORS OPEN-- ? The Starting-View List in d.2 gives the dimensional views preassigned to a cursor. (I presume through some cell, but I still don't understand your "viewspecs"). Note that if no starting view is specified, the cursor opens showing dimensions 1-2-3. ? The Starting-Cell List in d.2 tells where a cursor should start when fired up-- that is, which cell it should accurse. Each cursor on your Personal-Cursor list MAY OR MAY NOT be connected in d.1 to a starting-view and/or a starting-cell (see pic). EXAMPLE. You have a red cursor which opens on d.1, d.2 and d.4. We see from the picture that ? the red cursor shows in the Personal-Cursor list; ? it connects in d.1 to the starting-view list, where d.1, d2, d.4 are specified. EXAMPLE 2. Another of your personal cursors is green and opens up in d.3, d.7 and d.whoosh, at cell 350. We see that ? the green cursor shows on the Personal-Cursor list, ? it connects on d.1 to dimensions on the Starting-View list, specifying d.3, d.7 and d.whoosh. ? it further connects on d.1 to a clone of 350 (it can't be 350 itself, unless you aren't otherwise using 350 in d.1), on the Starting-Cell List THE COMMANDS ===================== We begin with the simplest. CURSOR VAPORIZE [Alt-V?] This closes the front cursor-window. The next cursor to be in front is the next on the Current Cursor List. CURSOR FORK Okay, now suppose you're cruising along in our current mode with a green and purple cursor. You invoke a Cursor Fork [prob. Alt-F--] and you then automatically see the NEXT UNUSED CURSOR ON YOUR PERSONAL-CURSOR LIST WHICH DOES NOT HAVE A PREFERRED STARTING POINT. (Why? Because you did a "cursor fork", meaning (since the cursor will appear on the same accursed cell you were looking at) that you want to go through the list of cursors whose starting points are not assigned-- to begin with.) SELECTION OF CURSOR You indicate that the cursor that appears is the cursor you want by moving that cursor. Suggested sequence: If that cursor is not the one you want, you use TAB to step through the other cursors on your personal-cursor list. These should go first through the cursors which have no assigned starting point, but then if you don't choose any the first time through, it goes through all your personal cursors; and if you don't choose any of those, it goes through the system cursors. (I actually prefer the space bar, but the logic would probably scare you at this point :) NEW CURSOR "New cursor" [maybe Alt-C] indicates that you want a NEW cursor, not one which opens on a presently-accursed cell, but on another cell; so the system supplies the first unopen cursor that has an ASSIGNED cell to start on (from the Starting-Cell List). Tab through those till you get to the cursor you want, then select that cursor by moving it. If you go through the whole Starting-Cell list without accepting a cursor, we then loop through all the other unopened cursors. SWITCHING CURSORS "Switch cursors" can actually can mean two things-- ? switch cursor/window that's at front and sometimes ? reassign arrowset. (This "reassign arrowset" is the most annoying part.) Basic concept: for simplicity's sake, Window Frontness DOES NOT CHANGE AS YOU MOVE YOUR CURSORS. We leave it to your arrangement of the windows. Whether you can actually SEE a cursor when it moves depends on-- ? how you arrange the windows on the screen (not so easily detected by the system) ? which window is front. TO MOVE A WINDOW, do the usual stuff with the mouse. TO BRING A WINDOW FRONT: SPACE BAR brings forward the next window (on the current cursor list). TO REASSIGN AN ARROWSET: bring the window front (with spacebar), then ALT-A [arrowset] arrow which reassigns to the front window whatever arrowset whose arrow you just hit. EXAMPLE: space space space Alt-A J This key sequence moves three different windows to the front, in succession. Alt-A means that you want to assign a new arrowset to that window, and J selects an arrowset-- assigning the IJKL arrowset to that selected front window and cursor. (If you don't really want to move the cursor in that window at the time you are reassigning this arrowset, all you do is just instantly move the cursor BACK-- for instance, hitting J-L selects an arrowset but has no other consequence.) DISCUSSION =================================== The control-panel approach is more usual. It is also slower. It is not wrong, but I want to show the powers and excitement of a different kind of interactive design. These are stylistic issues. I design for people who want to work really fast, and I think this will be very smooth. (There's historical precedent for this !-) All best, Ted Attachment Converted: "c:\eudora\eudora\attach\CursorLists-D4.jpg"
Description: JPEG image
_________________________________________ Theodor Holm Nelson Project Professor, Keio University SFC Campus, Fujisawa, Japan Visiting Professor, University of Southampton, England ? e-mail: ted@xxxxxxxxxx ? world-wide fax 1/415/332-0136 ? http://www.sfc.keio.ac.jp/~ted/ ? http://www.xanadu.net ? Coordinates in USA Tel. 415/ 331-4422 Project Xanadu, 3020 Bridgeway #295, Sausalito CA 94965 _________________________________________