ReadonlyTioga.tip
Copyright Ó 1985, 1986, 1988, 1989, 1990, 1991 by Xerox Corporation.  All rights reserved.
Last edited by Paxton, November 11, 1982 8:30 am
Last Edited by: Beach, October 18, 1983 1:07 pm
Michael Plass, May 30, 1989 11:04:18 am PDT
Bier, April 22, 1990 2:10 pm PDT
Tim Diebert: April 29, 1988 8:56:18 am PDT
Rick Beach, June 11, 1985 11:26:27 am PDT
Spreitzer, June 7, 1985 6:06:16 pm PDT
Christian Jacobi, May 1, 1989 4:43:48 pm PDT
Doug Wyatt, April 23, 1991 5:28 pm PDT
Please keep Tioga.tip up-to-date when you change this!
 
SELECT 
TRIGGER 
FROM 
-- top level trigger select
Some macro definitions
Miscellaneous macro definitions to standardize certain conventions
 
[
DEF,DownClick,(~1 Down 
BEFORE [ClickTime])]
 
[
DEF,UpClick,(~1 Up 
BEFORE [ClickTime])]
 
[
DEF,Click,([UpClick,~1] 
AND [DownClick,~1])]
 
[
DEF,BothUp,(~1 Up 
WHILE ~2 Up)]
 
[
DEF,WhileThreeUp,(
WHILE ~1 Up 
WHILE ~2 Up 
WHILE ~3 Up)]
 
[
DEF,ThreeUp,(~1 Up 
WHILE ~2 Up 
WHILE ~3 Up)]
 
[
DEF,
CTRL,(Ctrl Down | Spare3 Down)]
 
[
DEF,WhileCTRLUp,(
WHILE Ctrl Up 
WHILE Spare3 Up)]
 
[
DEF,WhenCTRLUp,(
Ctrl Up WHILE Spare3 Up ~1 => ~2;
Spare3 Up WHILE Ctrl Up ~1 => ~2)]
 
[
DEF,
SHIFT,(LeftShift Down | RightShift Down)]
 
[
DEF,SHIFTUp,[BothUp,LeftShift,RightShift]]
 
[
DEF,WhenSHIFTUp,(
LeftShift Up WHILE RightShift Up ~1 => ~2;
RightShift Up WHILE LeftShift Up ~1 => ~2)]
 
[
DEF,IfShift,(
SELECT 
ENABLE 
FROM [
SHIFT] => ~1; 
ENDCASE => ~2)]
 
[
DEF,IfCtrl,(
SELECT 
ENABLE 
FROM [
CTRL] => ~1; 
ENDCASE => ~2)]
 
macro definitions to allow for different keysyms to mean the same Tioga operations
[DEF,SAME2,(~1 Down => ~3; ~2 Down => ~3)]
[DEF,SAME3,(~1 Down => ~4; ~2 Down => ~4; ~3 Down => ~4)]
[DEF,SAME4,(~1 Down => ~5; ~2 Down => ~5; ~3 Down => ~5; ~4 Down => ~5)]
 
Mouse buttons and mouse movement
-- Sel and MouseClick are similar to the macros in Tioga.tip but lack check for CTRL
[
DEF,Sel,(
SELECT 
ENABLE 
FROM
[SHIFT] => { ~2 Coords SelSecondary ToPrimary ForceSelNotPendDel ~1 };
ENDCASE => { ~2 Coords ForceSelNotPendDel ~1 })]
 
[
DEF,MouseClick,(
SELECT 
TRIGGER 
FROM
[Click,~1] => [Sel,~3,~1Mouse];
ENDCASE => [Sel,~2,~1Mouse])]
 
-- Extend is similar but does not check SHIFT or force pending delete
[
DEF,Extend,([Sel,~1 SelStartExtend,BlueMouse])]
 
-- ButtonUp is similar but does not permit a Repeat (SHIFT-ESC)
[
DEF,ButtonUp,(
SELECT 
ENABLE 
FROM
[SHIFTUp] [WhileCTRLUp] WHILE [BothUp,~1,~2] => DoEdit;
ENDCASE)]
 
Red Down => [MouseClick,Red,SelChar,SelNode];
 
Yellow Down => 
SELECT 
ENABLE 
FROM
Red Up => [MouseClick,Yellow,SelWord,SelBranch];
ENDCASE;
 
Blue Down => 
SELECT 
ENABLE 
FROM
[BothUp,Red,Yellow] => 
SELECT 
TRIGGER 
FROM
[Click,Blue] => 
SELECT 
TRIGGER 
FROM
[Click,Blue] => [Extend,SelExpand];
ENDCASE => [Extend,SelReduce];
 
ENDCASE => [Extend];
 
ENDCASE;
 
Mouse => 
SELECT 
ENABLE 
FROM
Red Down => [Sel,SelUpdate];
Yellow Down => [Sel,SelUpdate];
Blue Down => { Coords SelExtend };
ENDCASE;
 
Red Up => 
SELECT 
ENABLE 
FROM
Blue Down => [Extend]; -- no ForceSelPendDel
ENDCASE => [ButtonUp,Blue,Yellow];
 
Yellow Up => 
SELECT 
ENABLE 
FROM
Blue Down WHILE Red Up => [Extend]; -- no ForceSelPendDel
ENDCASE => [ButtonUp,Red,Blue];
 
Blue Up => [ButtonUp,Red,Yellow];
 
 
Shift key Commands
[WhenSHIFTUp,[WhileThreeUp,Red,Yellow,Blue] [WhileCTRLUp],DoEdit];
 
[WhenCTRLUp,[WhileThreeUp,Red,Yellow,Blue] 
WHILE [SHIFTUp],DoEdit];
 
 
Function key Commands 
[
SAME2,Copy,
L6,
[IfShift,{ CopyToWorldFormatted },{ CopyToWorld }]
];
 
DEL Down => 
SELECT 
ENABLE 
FROM
[SHIFT] => EditAbort;
[CTRL] => EditAbort;
Red Down => EditAbort;
Yellow Down => EditAbort;
Blue Down => EditAbort;
ENDCASE; -- no Delete
 
[
SAME4,
NEXT,MoveRight,Spare2,
R12,
[IfCtrl,
[IfShift,{ IntermediateUser CtrlPrevPlaceholder },{ IntermediateUser CtrlNextPlaceholder }],
[IfShift,{ IntermediateUser PreviousPlaceholder },{ IntermediateUser NextPlaceholder }]]
 
];
 
-- no ESC, AGAIN, UNDO, LF
 
-- no Space to clear looks
 
 
Number Commands
-- only CTRL-SHIFT-0
Zero Down WHILE [SHIFT] WHILE [CTRL] => { IntermediateUser SelectMatchingParens };
 
Punctuation Commands
-- no Return, Arrow, BackSlash, Hyphen, Comma
 
Period Down 
WHILE [
CTRL] =>
SELECT 
ENABLE 
FROM
[SHIFT] => { IntermediateUser SelectMatchingAngleBrackets };
ENDCASE => { MakePointSelection }; -- CTRL-. is for reducing to point selection.
 
 
RightBracket Down 
WHILE [
CTRL] => 
[IfShift,{ IntermediateUser SelectMatchingCurlyBrackets },
{ IntermediateUser SelectMatchingSquareBrackets }];
 
 
 
Letter Commands  
[
DEF,Letter,(~1 Down => 
SELECT 
ENABLE 
FROM ~3 
ENDCASE)] 
-- no Looks operations
 
-- Only the Ctrl-Letter commands that don't change the document
[Letter,
D,3,
[CTRL] => { IntermediateUser Everything }];
 
[Letter,
R,17, 
-- romp to end of current node
[CTRL] => [IfShift,{ IntermediateUser GoToBeginningOfNode },{ IntermediateUser GoToEndOfNode }]];
 
[Letter,
S,18,
-- copy primary
[CTRL] => { IntermediateUser MakeNotPendingDelete ToSecondary SelSecondary SelNotPendDel }];
 
[Letter,
V,21,
[CTRL] => { IntermediateUser GrowSelectionToBlanks }];
 
 
ENDCASE.