(FILECREATED "27-Jan-87 11:24:12" ("compiled on " {DANTE}LISP>DVNPATCH003.;16) "12-Nov-85 14:59:23" recompiled changes: EDITMOVEREGION EDITMOVESUBTREE NOT.TRACKCURSOR MOVEDESCENDENTS COLLECT.CHILD.NODES CREATE.NEW.NODEPOSITION in "NoteCards 1.3k 18-Nov-86...." dated "11-May-86 15:19:08") (FILECREATED "27-Jan-87 11:23:32" {DANTE}LISP>DVNPATCH003.;16 16200 changes to: (VARS DVNPATCH003COMS) (FNS EDITMOVEREGION EDITMOVESUBTREE NOT.TRACKCURSOR MOVEDESCENDENTS COLLECT.CHILD.NODES CREATE.NEW.NODEPOSITION) previous date: "26-Jan-87 18:06:11" {DANTE}LISP>DVNPATCH003.;15) NC.BrowserMoveNodesInRegionFn D1 (I 0 Window) @ @ (12Q NC.MarkCardDirty 7 NC.CoerceToCard 3 EDITMOVEREGION) NIL () NC.BrowserMoveSubtreeFn D1 (I 0 Window) @ @ (12Q NC.MarkCardDirty 7 NC.CoerceToCard 3 EDITMOVESUBTREE) NIL () EDITMOVEREGION D1 (P 15Q OldPos P 14Q SelectedNode P 13Q NewRegionPosition P 11Q Node P 10Q NodeList P 7 Node P 2 Graph P 1 Region P 0 DisplayStream I 0 Window) @ @o o @ @ @g JAKLJ9@o :_IO IO OM Nh]K[N&Oo Od OH O@IH " Oh__OOOOIOI JH H O OH O_(337Q FLIPNODE 330Q EXTENDEXTENT 325Q NODEREGION 320Q WFROMDS 313Q MOVENODE 305Q CREATE.NEW.NODEPOSITION 235Q GETBOXPOSITION.FROMINITIALREGION 220Q FLIPNODE 201Q PROMPTPRINT 140Q SUBREGIONP 135Q NODEREGION 126Q INTERSECTREGIONS 123Q NODEREGION 107Q ERROR 53Q GETWINDOWUSERPROP 41Q GETWREGION 30Q \INSUREWINDOW 24Q PROMPTPRINT 14Q ERROR 3 WINDOWP) (50Q GRAPH) ( 176Q "No nodes in the region selected." 104Q " not a graph window." 21Q " Select the region containing the nodes you wish to move." 11Q " not a window.") EDITMOVESUBTREE D1 (P 6 NODELST P 5 NEAR P 4 NOW P 3 OLDPOS P 2 GRAPH P 1 REG P 0 DS I 0 WINDOW) @ @ @g SJd` o` o` o` o` NhH [ LLH MdH M`l_jXOO LLLH ` o` o` o` LHJ ` o` hLNhHK ]z(336Q NODELST/AS/MENU 333Q CURSORPOSITION 321Q PRIN1 306Q TERPRI 277Q NOT.TRACKCURSOR 270Q PRIN1 255Q PRIN1 242Q PRIN1 227Q TERPRI 220Q FLIPNODE 207Q \FZEROP 160Q GETMOUSESTATE 152Q FLIPNODE 142Q FLIPNODE 132Q NODELST/AS/MENU 126Q CURSORPOSITION 117Q PRIN1 104Q PRIN1 71Q PRIN1 56Q PRIN1 43Q TERPRI 22Q GETWINDOWUSERPROP 11Q \INSUREWINDOW 3 \INSUREWINDOW) (316Q PROMPTWINDOW 303Q PROMPTWINDOW 265Q PROMPTWINDOW 252Q PROMPTWINDOW 237Q PROMPTWINDOW 224Q PROMPTWINDOW 164Q LASTMOUSEBUTTONS 114Q PROMPTWINDOW 101Q PROMPTWINDOW 66Q PROMPTWINDOW 53Q PROMPTWINDOW 40Q PROMPTWINDOW 17Q GRAPH) ( 313Q "Done." 262Q "and release the button." 247Q "move the node to its new position" 234Q "Holding the button down, " 111Q "and press any button." 76Q "the subtree you want to move " 63Q "that is the common root of " 50Q "Move the cursor to the node ") NOT.TRACKCURSOR D1 (P 13Q MovedNodes P 12Q NewPos P 11Q OldPos P 10Q deltaY P 7 deltaX P 6 NewRegionPosition P 5 OldRegion P 4 EachNode P 0 Children I 2 Graph I 1 DisplayStream I 0 Node) @ o B g0@HdLA L JIh[I&K A MA 1 NM_NM_@_@OO  OO?@OOBA A @ @OBA O H@h B@AOO @HdLA h(304Q FLIPNODE 265Q MOVEDESCENDENTS 237Q CALL.MOVENODEFN 231Q WFROMDS 220Q EXTENDEXTENT 215Q NODEREGION 211Q WFROMDS 204Q MOVENODE 157Q CREATE.NEW.NODEPOSITION 115Q GETBOXPOSITION.FROMINITIALREGION 110Q WFROMDS 101Q APPLY 53Q NODEREGION 46Q FLIPNODE 16Q RECURSIVE.COLLECTDESCENDENTS 11Q PROMPTPRINT) (24Q UNIONREGIONS) ( 6 "No node selected.") RECURSIVE.COLLECTDESCENDENTS D1 (P 3 Child I 1 Graph I 0 Node) 00@A dKdA XI HZYJ YH(51Q LAST 24Q RECURSIVE.COLLECTDESCENDENTS 7 COLLECT.CHILD.NODES) NIL () MOVEDESCENDENTS D1 (P 3 NewPos P 2 Child P 1 MovedNodes I 4 deltaY I 3 deltaX I 2 DisplayStream I 1 Node I 0 Graph) SA@ Ah"HhZCD JI .JIJdK@B B J JK@B J HX(113Q CALL.MOVENODEFN 104Q WFROMDS 74Q EXTENDEXTENT 71Q NODEREGION 65Q WFROMDS 60Q MOVENODE 36Q MEMBER 27Q CREATE.NEW.NODEPOSITION 4 RECURSIVE.COLLECTDESCENDENTS) NIL () COLLECT.CHILD.NODES D1 (P 5 NodeID P 1 GraphNodes I 1 Graph I 0 Node) .@ABHJ]I K Lh[HXL&(31Q GETNODEFROMID) NIL () CREATE.NEW.NODEPOSITION D1 (L (2 deltaY 1 deltaX 0 Node)) @AHBHNIL NIL () GETBOXPOSITION.FROMINITIALREGION D1 (I 2 DisplayStream I 1 Region I 0 Window) GAAA@ @ ,hB A@ @ ,hB @o (104Q GETBOXPOSITION 70Q DSPCLIPPINGREGION 57Q \INSUREWINDOW 47Q \INSUREWINDOW 36Q DSPCLIPPINGREGION 25Q \INSUREWINDOW 16Q \INSUREWINDOW) NIL ( 100Q "Select new region for nodes.") (PRETTYCOMPRINT DVNPATCH003COMS) (RPAQQ DVNPATCH003COMS ((P (if (NOT (OR (MEMBER (QUOTE GRAPHER) SYSFILES) (MEMBER (QUOTE GRAPHER) FILELST))) then (ERROR "GRAPHER is not loaded. It must be loaded before MOVENODESPATCH."))) (* * This file is intended to patch the methods by which GRAPHER and the NoteCards browser card allow the user to move nodes within the graph. It make available two new methods of node movement, both of which allow the movement of several nodes in the graph at once. The first method allows the user to move the root node of a subtree, and then moves all children of that node in analogous fashion. The second method allows the user to sweep out a region of the graph window, after which all nodes within that region are moved to new locations within a new region of the same size as the first which is specified by the user in response to a prompt.) (FNS NC.BrowserMoveNodesInRegionFn NC.BrowserMoveSubtreeFn EDITMOVEREGION EDITMOVESUBTREE NOT.TRACKCURSOR RECURSIVE.COLLECTDESCENDENTS MOVEDESCENDENTS COLLECT.CHILD.NODES CREATE.NEW.NODEPOSITION GETBOXPOSITION.FROMINITIALREGION) (P (DREMOVE (SASSOC "Move Node" EDITGRAPHMENUCOMMANDS) EDITGRAPHMENUCOMMANDS) (ADDTOVAR EDITGRAPHMENUCOMMANDS (Move% Node (QUOTE MOVENODE) "Moves a single node in the graph." (SUBITEMS (Move% Single% Node (QUOTE MOVENODE) "Moves a single node in the graph.") (Move% Node% and% Subtree (EDITMOVESUBTREE GRAPHWINDOW) "Moves a subtree of nodes relative to the movement of their root.") (Move% Region (EDITMOVEREGION GRAPHWINDOW) "Moves a group of nodes within a specified region to another region.")))) (SETQ EDITGRAPHMENU NIL) (if (OR (MEMBER (QUOTE NOTECARDS) SYSFILES) (MEMBER (QUOTE NOTECARDS) FILELST)) then (for Var in (QUOTE (NC.GraphEditUnfixedMenuItems NC.GraphEditUnfixedMenuItems NC.GraphEditMenuItems)) do (DREMOVE (ASSOC (QUOTE Move% Node) (EVAL Var)) (EVAL Var)) (APPLY (QUOTE ADDTOVAR) (LIST Var (QUOTE (Move% Node NC.BrowserMoveNodeFn "Move a browser node." (SUBITEMS ( Move% Single% Node NC.BrowserMoveNodeFn "Move a browser node.") (Move% Node% &% Subtree NC.BrowserMoveSubtreeFn "Move a subtree of nodes following the movement of the root.") (Move% Region NC.BrowserMoveNodesInRegionFn "Move all nodes within a specified region to another region."))))))))))) (if (NOT (OR (MEMBER (QUOTE GRAPHER) SYSFILES) (MEMBER (QUOTE GRAPHER) FILELST))) then (ERROR "GRAPHER is not loaded. It must be loaded before MOVENODESPATCH.")) (DREMOVE (SASSOC "Move Node" EDITGRAPHMENUCOMMANDS) EDITGRAPHMENUCOMMANDS) (ADDTOVAR EDITGRAPHMENUCOMMANDS (Move% Node (QUOTE MOVENODE) "Moves a single node in the graph." ( SUBITEMS (Move% Single% Node (QUOTE MOVENODE) "Moves a single node in the graph.") ( Move% Node% and% Subtree (EDITMOVESUBTREE GRAPHWINDOW) "Moves a subtree of nodes relative to the movement of their root.") (Move% Region (EDITMOVEREGION GRAPHWINDOW) "Moves a group of nodes within a specified region to another region.")))) (SETQ EDITGRAPHMENU NIL) (if (OR (MEMBER (QUOTE NOTECARDS) SYSFILES) (MEMBER (QUOTE NOTECARDS) FILELST)) then (for Var in ( QUOTE (NC.GraphEditUnfixedMenuItems NC.GraphEditUnfixedMenuItems NC.GraphEditMenuItems)) do (DREMOVE ( ASSOC (QUOTE Move% Node) (EVAL Var)) (EVAL Var)) (APPLY (QUOTE ADDTOVAR) (LIST Var (QUOTE (Move% Node NC.BrowserMoveNodeFn "Move a browser node." (SUBITEMS (Move% Single% Node NC.BrowserMoveNodeFn "Move a browser node.") (Move% Node% &% Subtree NC.BrowserMoveSubtreeFn "Move a subtree of nodes following the movement of the root.") (Move% Region NC.BrowserMoveNodesInRegionFn "Move all nodes within a specified region to another region.")))))))) (PUTPROPS DVNPATCH003 COPYRIGHT ("Xerox Corporation" 1987)) NIL