FinchTool.mesa
Copyright Ó 1992 by Xerox Corporation. All rights reserved.
Last Edited by: Swinehart, October 15, 1991 10:36 am PDT
Last Edited by: Lia, August 4, 1983 11:40 am
Last Edited by: Pier, March 21, 1984 10:11:19 pm PST
Polle Zellweger (PTZ) June 26, 1989 10:45:55 am PDT
DIRECTORY
Buttons,
Containers,
FinchSmarts USING [ ConvDesc ],
IO,
Labels,
MBQueue USING [ Queue ],
Menus,
Rope USING [ ROPE ],
TiogaButtons USING [ TiogaButton ],
VFonts,
ViewerClasses USING [ Viewer ],
ViewerEvents USING [ EventRegistration ]
;
FinchTool: CEDAR DEFINITIONS IMPORTS VFonts = {
ROPE: TYPE = Rope.ROPE;
Viewer: TYPE = ViewerClasses.Viewer;
BuildDirectories: PROC [];
DestroyDirectories: PROC [];
BuildDirectory: PROC[directoryFile: Rope.ROPE, newOK: BOOL¬TRUE];
FirstButton: PROC[
q: MBQueue.Queue, name: ROPE, proc: Buttons.ButtonProc, parent: Viewer,
data: REF ANY¬ NIL, border: BOOL¬ FALSE, width: INTEGER¬ 0,
guarded: BOOL¬ FALSE, font: VFonts.Font ¬ VFonts.defaultFont]
RETURNS [nV: Viewer];
AnotherButton: PROC[
q: MBQueue.Queue, name: ROPE, proc: Buttons.ButtonProc, sib: Viewer,
data: REF ANY¬ NIL, border: BOOL¬ FALSE, width: INTEGER¬ 0,
guarded: BOOL¬ FALSE, font: VFonts.Font ¬ VFonts.defaultFont, newLine: BOOL¬ FALSE]
RETURNS [nV: Viewer];
Report: PROC[msg: ROPE, a1, a2, a3: IO.Value ¬ [null[]]];
ReportRope: PROC[msg1: ROPE];
Status: PROC[msg1, msg2, msg3, msg4: ROPE¬NIL];
CheckAborted: PROC[sib: Viewer] RETURNS[ok: BOOL];
CheckActive: PROC[handle: Handle, mustAlreadyBeActive: BOOL¬FALSE, complain: BOOL¬TRUE] RETURNS [ active: BOOL¬FALSE ];
GetSelectedDesc: PROC[chosenButton: TiogaButtons.TiogaButton¬NIL, checkActive: BOOL¬TRUE] RETURNS [cDesc: FinchSmarts.ConvDesc];
If check, make sure connection to Finch is active before returning result.
Stop: Menus.MenuProc;
Hangup: Menus.MenuProc;
StartFinch: PROC;
StopFinch: PROC[disable: BOOL¬TRUE];
description is a name or number; look for it everywhere that makes any sense.
Residence is a hint, when description is a name, to use a home rather than office number.
Place a call to resulting party.
CallByDescription: PROC[description: ROPE, residence: BOOL¬FALSE];
FeepValue: PROC[text: ROPE] RETURNS [feepText: ROPE];
finchQueue: MBQueue.Queue;
finchToolHandle: Handle;
Handle: TYPE = REF FinchToolRec; -- a REF to the data for a particular instance of the sample tool; multiple instances can be created.
FinchToolRec: TYPE = RECORD [ -- the data for a particular tool instance
debug: BOOL¬FALSE, -- currently controls intermediate speech reports
outer: Containers.Container ¬ NIL, -- handle for the enclosing container
calledPartyText: Viewer¬NIL,
callingPartyText: Viewer¬NIL,
typescript: Viewer ¬ NIL, -- typescript for Finch activities
tsIn: IO.STREAM ¬ NIL,
tsOut: IO.STREAM ¬ NIL,
callLog: IO.STREAM ¬ NIL,
conversations: Viewer,  -- Log of active and completed conversations
logServiceCalls: LogServiceCalls ¬ $all, -- user can limit logging of service calls
directories: LIST OF Viewer, -- White pages directories
finchEnabledAtCheckpoint: BOOL¬FALSE, -- retains state of enabling over Checkpoint/Rollback.
finchEnabledAtLastReport: BOOL¬FALSE, -- for avoiding multiple reports of same
finchConnectedAtLastReport: BOOL¬FALSE, -- condition
inExecCmd: BOOL¬FALSE,
keepTwiddling: BOOL ¬ FALSE, -- TRUE while state = ringing,
twiddleWait: CONDITION,
finchToolHeight: NAT ¬ 64,
pauseTimeTilted: INT¬80, -- all times in milliseconds, all relate to Finch icon when
pauseTimeMiddle: INT¬0, -- phone is ringing
pauseTimeOn: INT ¬ 4000, -- defaults to on all the time
pauseTimeDrawFactor: INT ¬ 40, -- time to draw icons
pauseTimeOff: INT ¬ 2000,
scrollEvent: ViewerEvents.EventRegistration ¬ NIL,
backgrounding: BOOL¬FALSE
];
LogServiceCalls: TYPE = {none, one, all};
}.
Polle Zellweger (PTZ) September 3, 1985 2:41:00 pm PDT
Add debug field to control intermediate speech reports.
changes to: FinchToolRec
Swinehart, September 6, 1985 7:32:53 am PDT
Eliminate status line in Finch Tool
changes to: FinchToolRec
Polle Zellweger (PTZ) October 16, 1985 4:41:39 pm PDT
changes to: FinchToolRec
Polle Zellweger (PTZ) July 29, 1987 8:05:18 pm PDT
changes to: GetSelectedDesc, DIRECTORY
Polle Zellweger (PTZ) August 13, 1987 2:30:14 pm PDT
Add logServiceCalls to allow user to limit logging of service calls.
changes to: FinchToolRec, FinchTool, LogServiceCalls
Polle Zellweger (PTZ) August 14, 1987 5:32:41 pm PDT
changes to: FinchToolRec
Polle Zellweger (PTZ) June 26, 1989 10:45:10 am PDT
Add scrollEvent to allow unregistering when the conv viewer disappears.
changes to: DIRECTORY, FinchToolRec