[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

[resend to zzdev] :zz,virt: Cursor-switching command specs (d5

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.)


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 
 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 
? 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
? 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.

This closes the front cursor-window.  The next cursor to be
 in front is the next on the Current Cursor List.


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
 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.)

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" [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.


"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
 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.

 SPACE BAR brings forward the next window (on the current
 cursor list).

 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"

Attachment: 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