(FILECREATED "27-Apr-87 16:20:24" {QV}<NOTECARDS>1.3K>NEXT>RHTPATCH248.;2 4602   

      changes to:  (VARS RHTPATCH248COMS)
		   (FNS NC.BrowserCardQuitFn NC.AddBrowserCard)

      previous date: "25-Apr-87 18:08:56" {QV}<NOTECARDS>1.3K>NEXT>RHTPATCH248.;1)


(* Copyright (c) 1987 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT RHTPATCH248COMS)

(RPAQQ RHTPATCH248COMS ((* * In order to fix a browser card storage leak, I had to add this crufty 
			     QuitFn. It runs over the entire graph setting UserData of UIDs to NIL.)
			  (DECLARE: FIRST (P (LOAD? (NC.FindFile (QUOTE NCBROWSERCARD)))))
			  (* * New function for NCBROWSERCARD)
			  (FNS NC.BrowserCardQuitFn)
			  (* * Change to NCBROWSERCARD)
			  (FNS NC.AddBrowserCard)))
(* * In order to fix a browser card storage leak, I had to add this crufty QuitFn. It runs 
over the entire graph setting UserData of UIDs to NIL.)

(DECLARE: FIRST 
(LOAD? (NC.FindFile (QUOTE NCBROWSERCARD)))
)
(* * New function for NCBROWSERCARD)

(DEFINEQ

(NC.BrowserCardQuitFn
  (LAMBDA (Card)                                             (* rht: "25-Apr-87 17:57")

          (* * This clears all UserData fields of Graph node UIDs. I ONLY HAVE TO DO THIS BECAUSE INTERLISP WON'T GC CYCLES!)


    (for GraphNode in (fetch (GRAPH GRAPHNODES) of (NC.FetchSubstance Card))
       do (LET ((GraphNodeID (NC.CoerceToGraphNodeIDOrLabel GraphNode)))
	         (AND (type? UID GraphNodeID)
			(NC.UIDSetPropList GraphNodeID NIL))))
    (NCP.ApplySuperTypeFn QuitFn Card)))
)
(* * Change to NCBROWSERCARD)

(DEFINEQ

(NC.AddBrowserCard
  (LAMBDA NIL                                                (* rht: "25-Apr-87 17:58")

          (* * fgh 11/14/85 Updated to handle merge of card and substance types.)



          (* * rht 4/7/86: Added middle button menu items.)



          (* * rht 4/25/87: Added QuitFn)


    (NC.AddCardType (QUOTE Browser)
		      (QUOTE Graph)
		      (BQUOTE ((MakeFn , (FUNCTION NC.MakeBrowserCard))
				 (EditFn , (FUNCTION NC.BringUpBrowserCard))
				 (PutFn , (FUNCTION NC.PutBrowserSubstance))
				 (GetFn , (FUNCTION NC.GetBrowserSubstance))
				 (DeleteLinksFn , (FUNCTION NC.DelReferencesToCardFromBrowser))
				 (QuitFn , (FUNCTION NC.BrowserCardQuitFn))))
		      (BQUOTE ((LinkDisplayMode Title)
				 (DefaultHeight 350)
				 (DefaultWidth 500)
				 (DisplayedInMenuFlg , T)
				 (LeftButtonMenuItems , (for Item in (NC.GetCardTypeField
									   LeftButtonMenuItems
									   (QUOTE Graph))
							   collect (if (EQ (CAR Item)
										 (QUOTE 
										     Insert% Link))
									 then 
								      NC.GlobalInsertLinkMenuItem
								       else Item)))
				 (MiddleButtonMenuItems , (QUOTE ((Recompute% Browser
								       (FUNCTION 
									 NC.UpdateBrowserCard)
								       
			     "Recomputes this browser to show the current state of the NoteFile.")
								     (Relayout% Graph
								       (FUNCTION 
									 NC.RelayoutBrowserCard)
								       
						    "Re-layout the browser, but keep same nodes.")
								     (Reconnect% Nodes
								       (FUNCTION 
									 NC.ConnectNodesInBrowser)
								       
	   "Draw all possible links, from currently selected link types, between pairs of nodes.")
								     (Unconnect% Nodes
								       (FUNCTION 
								       NC.UnconnectNodesInBrowser)
								       
							       "Undraw all links in the browser.")
								     (Expand% Browser% Node
								       (FUNCTION 
									 NC.ExpandBrowserNode)
								       
					      "Expand the graph under one node to a given depth.")
								     (Graph% Edit% Menu
								       (FUNCTION 
									 NC.GetGraphEditMenu)
								       
								"Bring up the graph editor menu.")
								     (Change% Browser% Specs
								       (FUNCTION 
									 NC.ChangeBrowserSpecs)
								       
		 "Make changes to some or all of the browser specs, e.g. link types, depth, etc.")
								     (Browser% Overview% Win
								       (FUNCTION 
									NC.MakeBrowserOverviewWin)
								       
							    "Attach the browser overview window.")
								     (Change% Overview% Specs
								       (FUNCTION 
								       NC.AskBrowserOverviewSpecs)
								       
			      "Change the browser overview specs: where to attach and what mode.")))))
				))))
)
(PUTPROPS RHTPATCH248 COPYRIGHT ("Xerox Corporation" 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1022 1596 (NC.BrowserCardQuitFn 1032 . 1594)) (1633 4520 (NC.AddBrowserCard 1643 . 4518
)))))
STOP