Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
400 changes: 197 additions & 203 deletions library/sketch/SKETCH

Large diffs are not rendered by default.

95 changes: 43 additions & 52 deletions library/sketch/SKETCH-EDIT
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED " 5-Dec-2023 00:12:04" {WMEDLEY}<library>sketch>SKETCH-EDIT.;1 108598
(FILECREATED " 5-Nov-2025 23:56:42" {WMEDLEY}<library>sketch>SKETCH-EDIT.;2 108507

:EDIT-BY rmk

:CHANGES-TO (RECORDS TEXTELTSELECTION)
:CHANGES-TO (FNS SKED.MOVE.SELECTION)

:PREVIOUS-DATE "21-Aug-2021 20:50:04" {WMEDLEY}<library>sketch>SKETCHEDIT.;1)
:PREVIOUS-DATE " 5-Dec-2023 00:12:04" {WMEDLEY}<library>sketch>SKETCH-EDIT.;1)


(PRETTYCOMPRINT SKETCH-EDITCOMS)
Expand Down Expand Up @@ -520,64 +520,55 @@
(SKED.MOVE.SELECTION SKW (NOT (WINDOWPROP SKW 'USEGRID])

(SKED.MOVE.SELECTION
[LAMBDA (SKW USEGRID) (* rrb "11-Jul-86 15:51")

(* the user has left buttoned in a sketch window.
 Put the caret there.)

[LAMBDA (SKW USEGRID) (* ; "Edited 5-Nov-2025 23:56 by rmk")
(* rrb "11-Jul-86 15:51")
(* ;
 "the user has left buttoned in a sketch window. Put the caret there.")
(SKED.CLEAR.SELECTION SKW)
(PROG (FEEDBACKX FEEDBACKY OLDGRIDX OLDGRIDY OLDX OLDY OLDCUR FEEDBACKCUR INTEXT INIMAGEOBJ
STARTLINE STARTCHAR X Y (DSP (WINDOWPROP SKW 'DSP))
(SCALE (VIEWER.SCALE SKW))
(GRID (SK.GRIDFACTOR SKW)))
(until (MOUSESTATE UP)
do

(* track with the appropriate caret depending upon whether the cursor is inside
 of existing text or not.)
(* ;; "track with the appropriate caret depending upon whether the cursor is inside of existing text or not.")

(SETQ X (LASTMOUSEX DSP))
(SETQ Y (LASTMOUSEY DSP))
(COND
((OR (NEQ OLDX X)
(NEQ OLDY Y))

(* only look for things when the cursor position has changed.)

(NEQ OLDY Y)) (* ;
 "only look for things when the cursor position has changed.")
(SETQ OLDX X)
(SETQ OLDY Y)
[COND
([AND (SETQ INTEXT
(for ELT in (LOCALSPECS.FROM.VIEWER SKW)
unless (EQ 'SHADE (fetch (LOCALTEXT LOCALFONT)
of (fetch (SCREENELT LOCALPART) of ELT)))
when (SELECTQ (fetch (SCREENELT GTYPE) of ELT)
(TEXT (AND (NEQ (fetch (LOCALTEXT LOCALFONT)
of (fetch (SCREENELT LOCALPART)
of ELT))
'SHADE)
(SETQ STARTLINE (INTEXT ELT X Y))))
(TEXTBOX (AND (NEQ (fetch (LOCALTEXTBOX LOCALFONT)
of (fetch (SCREENELT LOCALPART)
of ELT))
'SHADE)
(INSIDE? (fetch (LOCALTEXTBOX
LOCALTEXTBOXREGION)
of (fetch (SCREENELT LOCALPART)
of ELT))
X Y)
(SETQ STARTLINE (CLOSEST.LINE ELT Y))))
(TEXT (SETQ STARTLINE (INTEXT ELT X Y)))
(TEXTBOX (CL:WHEN (INSIDE? (fetch (LOCALTEXTBOX
LOCALTEXTBOXREGION
)
of (fetch (SCREENELT
LOCALPART)
of ELT))
X Y)
(SETQ STARTLINE (CLOSEST.LINE ELT Y))))
NIL) do (RETURN ELT)))
(NOT (SK.ELEMENT.PROTECTED? (fetch (SCREENELT GLOBALPART) of INTEXT)
'CHANGE] (* inside of a text element.)
'CHANGE] (* ; "inside of a text element.")
(SETQ FEEDBACKCUR IN.TEXT.FEEDBACK.CURSOR)
(SETQ FEEDBACKX (CHAR.BEGIN (SETQ STARTCHAR (CLOSEST.CHAR X STARTLINE INTEXT
(SETQ FEEDBACKX (CHAR.BEGIN (SETQ STARTCHAR (CLOSEST.CHAR X STARTLINE INTEXT
DSP))
STARTLINE INTEXT DSP))
(SETQ FEEDBACKY (LINE.BEGIN STARTLINE INTEXT)))
(T (SETQ FEEDBACKCUR NEW.TEXT.FEEDBACK.CURSOR)
(COND
(USEGRID (SETQ FEEDBACKX (MAP.WINDOW.ONTO.GRID X SCALE GRID))
(SETQ FEEDBACKY (MAP.WINDOW.ONTO.GRID Y SCALE GRID)))
(T (* no grid)
(T (* ; "no grid")
(SETQ FEEDBACKX X)
(SETQ FEEDBACKY Y]
(COND
Expand All @@ -588,13 +579,13 @@
(SHOW.FEEDBACK (SETQ OLDCUR FEEDBACKCUR)
(SETQ OLDGRIDX FEEDBACKX)
(SETQ OLDGRIDY FEEDBACKY)
SKW))) (* give the coordinate display window
 a shot.)
SKW))) (* ;
 "give the coordinate display window a shot.")
(SKETCHW.UPDATE.LOCATORS SKW)))
finally (AND OLDGRIDX (SHOW.FEEDBACK OLDCUR OLDGRIDX OLDGRIDY SKW))
(COND
((EQ OLDCUR IN.TEXT.FEEDBACK.CURSOR) (* selection is existing text)
(SKED.SET.SELECTION (CREATE.TEXT.SELECTION INTEXT STARTLINE STARTCHAR OLDGRIDX
((EQ OLDCUR IN.TEXT.FEEDBACK.CURSOR) (* ; "selection is existing text")
(SKED.SET.SELECTION (CREATE.TEXT.SELECTION INTEXT STARTLINE STARTCHAR OLDGRIDX
OLDGRIDY DSP)
SKW))
(OLDGRIDX (SKED.SET.SELECTION (create POSITION
Expand Down Expand Up @@ -1953,26 +1944,26 @@
YCOORD _ (LASTMOUSEY WIN])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2425 39533 (BUTLAST 2435 . 2783) (CHAR.BEGIN 2785 . 4710) (CLOSEST.CHAR 4712 . 8935) (
(FILEMAP (NIL (2425 39442 (BUTLAST 2435 . 2783) (CHAR.BEGIN 2785 . 4710) (CLOSEST.CHAR 4712 . 8935) (
CLOSEST.LINE 8937 . 9499) (FLASHW 9501 . 9658) (HILITE.LINE 9660 . 10479) (HILITE.TEXT 10481 . 12129)
(IN.TEXT.EXTEND 12131 . 15404) (INIMAGEOBJ 15406 . 15911) (INTEXT 15913 . 16410) (NEW.TEXT.EXTEND
16412 . 18631) (NEW.TEXT.SELECTIONP 18633 . 18813) (NTHCHARWIDTH 18815 . 19072) (NTHLOCALREGION 19074
. 19312) (ONCHAR 19314 . 19709) (SHOW.EXTENDED.SELECTION.FEEDBACK 19711 . 20646) (SHOW.FEEDBACK 20648
. 21138) (SHOW.FEEDBACK.BOX 21140 . 22194) (SELECTION.POSITION 22196 . 22988) (SKED.CLEAR.SELECTION
22990 . 23513) (SKETCH.CLEANUP 23515 . 25429) (SK.ENTER.EDIT.CHANGE 25431 . 26976) (
SKED.REMOVE.OTHER.SELECTIONS 26978 . 27405) (SKED.EXTEND.SELECTION 27407 . 28872) (SKED.MOVE.SELECTION
28874 . 34035) (CREATE.TEXT.SELECTION 34037 . 34553) (SKED.SELECTION.FEEDBACK 34555 . 36211) (
SKED.SET.EXTENDSELECTION 36213 . 36530) (SKED.SET.SELECTION 36532 . 36932) (LINE.BEGIN 36934 . 37488)
(SELECTION.GREATERP 37490 . 38285) (SK.WORD.BREAK.CLASS 38287 . 39127) (SK.GETSYNTAX 39129 . 39531)) (
40375 86109 (WB.EDITOR 40385 . 41710) (SK.TTYENTRYFN 41712 . 41990) (SK.TTYEXITFN 41992 . 42261) (
SKED.INSERT 42263 . 42691) (\SKED.INSERT 42693 . 63815) (FIRST.N.ELEMENTS 63817 . 64084) (
SKED.CREATE.NEW.TEXTBOX 64086 . 70615) (SKED.CHARACTERPOSITION 70617 . 71404) (SKED.LINE.AND.CHAR#
71406 . 73037) (\SKED.DELETE.WORD.FROM.STRING 73039 . 74078) (\SKED.INSERT.CHARS.TO.STR 74080 . 82491)
(JOINCHARS 82493 . 82880) (STRINGFROMCHARACTERS 82882 . 83207) (GETALLCHARS 83209 . 83550) (
CLEANUP.EDIT 83552 . 84004) (SKED.NEW.TEXTELT 84006 . 86107)) (86144 107152 (
MAP.SCREEN.POSITION.ONTO.GRID 86154 . 87603) (NEAREST.ON.GRID 87605 . 88149) (SK.MIDDLE.TITLEFN 88151
. 90094) (WB.BUTTON.HANDLER 90096 . 97918) (WB.ADD.NEW.POINT 97920 . 101249) (WB.DRAWLINE 101251 .
105485) (WB.RUBBERBAND.POSITION 105487 . 106404) (SK.RUBBERBAND.FEEDBACKFN 106406 . 106910) (
RESET.LINE.BEING.INPUT 106912 . 107150)) (107334 108575 (NEAREST.EXISTING.POSITION 107344 . 107546) (
WB.NEARPT 107548 . 108433) (LASTMOUSEPOSITION 108435 . 108573)))))
28874 . 33944) (CREATE.TEXT.SELECTION 33946 . 34462) (SKED.SELECTION.FEEDBACK 34464 . 36120) (
SKED.SET.EXTENDSELECTION 36122 . 36439) (SKED.SET.SELECTION 36441 . 36841) (LINE.BEGIN 36843 . 37397)
(SELECTION.GREATERP 37399 . 38194) (SK.WORD.BREAK.CLASS 38196 . 39036) (SK.GETSYNTAX 39038 . 39440)) (
40284 86018 (WB.EDITOR 40294 . 41619) (SK.TTYENTRYFN 41621 . 41899) (SK.TTYEXITFN 41901 . 42170) (
SKED.INSERT 42172 . 42600) (\SKED.INSERT 42602 . 63724) (FIRST.N.ELEMENTS 63726 . 63993) (
SKED.CREATE.NEW.TEXTBOX 63995 . 70524) (SKED.CHARACTERPOSITION 70526 . 71313) (SKED.LINE.AND.CHAR#
71315 . 72946) (\SKED.DELETE.WORD.FROM.STRING 72948 . 73987) (\SKED.INSERT.CHARS.TO.STR 73989 . 82400)
(JOINCHARS 82402 . 82789) (STRINGFROMCHARACTERS 82791 . 83116) (GETALLCHARS 83118 . 83459) (
CLEANUP.EDIT 83461 . 83913) (SKED.NEW.TEXTELT 83915 . 86016)) (86053 107061 (
MAP.SCREEN.POSITION.ONTO.GRID 86063 . 87512) (NEAREST.ON.GRID 87514 . 88058) (SK.MIDDLE.TITLEFN 88060
. 90003) (WB.BUTTON.HANDLER 90005 . 97827) (WB.ADD.NEW.POINT 97829 . 101158) (WB.DRAWLINE 101160 .
105394) (WB.RUBBERBAND.POSITION 105396 . 106313) (SK.RUBBERBAND.FEEDBACKFN 106315 . 106819) (
RESET.LINE.BEING.INPUT 106821 . 107059)) (107243 108484 (NEAREST.EXISTING.POSITION 107253 . 107455) (
WB.NEARPT 107457 . 108342) (LASTMOUSEPOSITION 108344 . 108482)))))
STOP
Binary file modified library/sketch/SKETCH-EDIT.LCOM
Binary file not shown.
Loading