DIRECTORY Imager USING [Context], SilKernel USING [SilData], ViewerClasses USING [Viewer] ; SilDisplayCursors: CEDAR DEFINITIONS = BEGIN SilData: TYPE ~ SilKernel.SilData; SilCursorsInit: PROC []; SilCursorsBlink: PROC []; SilCaretSize: PROC [newMarkWidth, newMarkLength, newOriginWidth, newOriginLength: NAT]; SilCaretPaint: PROC [data: SilData, ctx: Imager.Context]; AquireAndDisableTheMark: PROC [data: SilData, ctx: Imager.Context _ NIL]; AquireAndDisableTheOrigin: PROC [data: SilData, ctx: Imager.Context _ NIL]; CheckSelectionWindow: PROC [data: SilData]; MoveOriginToMark: PROC [data: SilData, ctx: Imager.Context _ NIL]; InterchangeMarkAndOrigin: PROC [data: SilData, ctx: Imager.Context _ NIL]; DeleteAndEraseSelection: PROC[data: SilData, ctx: Imager.Context _ NIL, cache: BOOL _ FALSE]; DeselectAndRedraw: PUBLIC PROC []; InitiateNewSelection: PUBLIC PROC [data: SilData]; MouseAndMarkInSameWindow: PROC [data: SilData] RETURNS [BOOL]; MouseAndOriginInSameWindow: PROC [data: SilData] RETURNS [BOOL]; MouseAndSelectionInSameWindow: PROC [data: SilData] RETURNS [BOOL]; MarkAndOriginInSameWindow: PROC [] RETURNS [BOOL]; MarkAndSelectionInSameWindow: PROC [] RETURNS [BOOL]; OriginAndSelectionInSameWindow: PROC [] RETURNS [BOOL]; DisableRopeInput: PROC [data: SilData, ctx: Imager.Context _ NIL]; SetMarkX: PROC [mX: INTEGER]; SetMarkY: PROC [mY: INTEGER]; SetOriginX: PROC [oX: INTEGER]; SetOriginY: PROC [oY: INTEGER]; GetMarkX: PROC [] RETURNS [mX: INTEGER]; GetMarkY: PROC [] RETURNS [mY: INTEGER]; GetOriginX: PROC [] RETURNS [oX: INTEGER]; GetOriginY: PROC [] RETURNS [oY: INTEGER]; GetBoundingBoxOfLast2Marks: PROC [data: SilData] RETURNS [legalBox: BOOL _ TRUE, xMin, yMin, xMax, yMax: INTEGER _ 0]; BitmapToCursor: PROC [x, y: NAT, viewer: ViewerClasses.Viewer]; END. SilDisplayCursors.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Tracy Larrabee: December 22, 1983 1:38 am Last Edited by: Pier, August 6, 1985 10:21:37 am PDT A module defining the control of the "carets" (the Mark and the Origin) and the input focus. Initialize the behavior of the Sil Carets. Make sure all of the Sil Carets blink. User can set the size of mark and origin For this window, blink the carets which should be blinking. Turn off the mark, wherever it is, and make sure the system knows the correct window for the mark to be in. Turn off the origin, wherever it is, and make sure the system knows the correct window for the origin to be in. Make sure that if data is not the current selection window it is safe to change selection windows. Move the origin To the mark Move the mark To the origin and the origin to the mark Delete the selection. IF cache, put deleted objects on delete queue. Deselect and Redraw the elements which are selected. Set the current Selection Window. True if data is same window as window where mark is. True if data is same window as window where origin is. True if data is same window as window where selection is. True if mark is same window as window where origin is. True if mark is same window as window where selection is. True if origin is same window as window where selection is. Make sure that any textual input with respect to the current window is stopped Set the Mark's x position. Set the Mark's y position. Set the Origin's x position. Set the Origin's y position. Get the Mark's x position. Get the Mark's y position. Get the Origin's x position. Get the Origin's y position. Return the bounding box for the last 2 marks in this window. Transfer the 16x16 bitmap with x,y as mark or origin to the terminal cursor bitmap Κœ˜codešœ™Kšœ Οmœ1™<—K™)K™4K™K™\K™šΟk ˜ Kšœžœ ˜Kšœ žœ ˜Kšœžœ ˜Kšœ˜—K˜šΟnœžœž œžœ˜-K˜šœ žœ˜"K˜—šŸœžœ˜K™*K˜—šŸœžœ˜K™&K˜—šŸ œžœ@žœ˜WJ™(J™—šŸ œžœ&˜9K™;K˜—šŸœžœ'žœ˜IK™kK˜—šŸœžœ'žœ˜KKšœo™oK˜—šŸœžœ˜+K™bK˜—šŸœžœ'žœ˜BK™K˜—šŸœžœ'žœ˜JK™6K™—š Ÿœžœ&žœ žœžœ˜]KšœE™EK™—šŸœž œ˜"K™4K™—šŸœž œ˜2K™!K™—šŸœžœžœžœ˜>K™4K˜—šŸœžœžœžœ˜@K™6K˜—šŸœžœžœžœ˜C™9K™——šŸœžœžœžœ˜2K™6K˜—šŸœžœžœžœ˜5K™9K˜—šŸœžœžœžœ˜7K™;K˜—šŸœžœ'žœ˜BK™NK˜—šŸœžœžœ˜K™K˜—šŸœžœžœ˜K™K˜—šŸ œžœžœ˜Kšœ™K™—šŸ œžœžœ˜Kšœ™K™—šŸœžœžœžœ˜(K™K˜—šŸœžœžœžœ˜(K™K˜—šŸ œžœžœžœ˜*Kšœ™K™—šŸ œžœžœžœ˜*Kšœ™K™—š Ÿœžœžœ žœžœžœ˜vK™