(FILECREATED "12-Mar-87 14:36:15" {QV}<NOTECARDS>1.3K>NEXT>RGPATCH017.;4 24220  

      changes to:  (VARS RGPATCH017COMS)
		   (FNS NC.DeleteNoteCards NC.PrintOperationInProgressMsg NC.DeleteNoteCardInternal 
			NC.DeleteNoteCard NC.AssignTitle)

      previous date: "10-Mar-87 19:39:47" {QV}<NOTECARDS>1.3K>NEXT>RGPATCH017.;1)


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

(PRETTYCOMPRINT RGPATCH017COMS)

(RPAQQ RGPATCH017COMS [(* * rg 3/11/87 Fix some bugs in RGPATCH016)
			 (* * changes to NCINTERFACE)
			 (FNS NC.CopyStructure)
			 (* * changes to NCCARDS)
			 (FNS NC.DeleteNoteCards NC.DeleteNoteCard NC.AssignTitle 
			      NC.PrintOperationInProgressMsg NC.DeleteLink)
			 (* * new for NCCARDS)
			 (FNS NC.DeleteNoteCardInternal)
			 (* * hack to update existing menus)
			 (P (NLSETQ (EDITV NC.DefaultLeftButtonMenuItems (R NC.DeleteNoteCards 
									    NC.DeleteNoteCard])
(* * rg 3/11/87 Fix some bugs in RGPATCH016)

(* * changes to NCINTERFACE)

(DEFINEQ

(NC.CopyStructure
  [LAMBDA (RootCards DestinationFileBox TraversalSpecs InterestedWindow QuietFlg)
                                                             (* Randy.Gobbel " 9-Mar-87 18:31")

          (* * Copy a NoteCard structure into a filebox)



          (* * kirk 13/7/86: Placed TraversalSpecs after RootCards selection and changed prompt message)



          (* * rht 9/2/86: Threw away CheckFlg arg. Wasn't being used. Changed to call NCP.CollectCards instead of outdated 
	  NC.CollectCards. Changed arg named ToPosition to DestinationFileBox. Also changed FromCard to RootCard.
	  Passes two link types to NC.AskTraversalSpecs.)



          (* * pmi 12/12/86: Removed obsolete ReturnLinksFlg argument in call to NC.SelectNoteCards.)



          (* * rht 3/9/87: Now accepts multiple root cards.)



          (* * rg 3/9/87 added NC.ProtectedSessionOperation wrapper)


    (DECLARE (GLOBALVARS NC.SelectingCardsMenu NC.SelectingCardMenu))
    (NC.ProtectedSessionOperation "Copy Structure" InterestedWindow (SETQ RootCards (MKLIST
				      RootCards))
				  (OR RootCards (SETQ RootCards (NC.SelectNoteCards NIL NIL 
									    NC.SelectingCardsMenu NIL 
						   "Shift-select the root cards of the structure"))
					(ERROR!))
				  (OR TraversalSpecs [SETQ TraversalSpecs
					  (NC.AskTraversalSpecs (fetch (Card NoteFile)
								     of (CAR RootCards))
								  (QUOTE (SubBox FiledCard]
					(ERROR!))
				  (OR DestinationFileBox (SETQ DestinationFileBox
					  (NC.SelectNoteCards T (FUNCTION [LAMBDA (Card)
								    (NC.FileBoxP Card T])
								NC.SelectingCardMenu NIL 
					     "Shift-select the FileBox to contain the structure."))
					(ERROR!))
				  (NC.CopyCards (NCP.CollectCards RootCards (fetch
									(TRAVERSALSPECS LinkTypes)
										   of 
										   TraversalSpecs)
								      (fetch (TRAVERSALSPECS Depth)
									 of TraversalSpecs))
						  DestinationFileBox RootCards QuietFlg 
						  InterestedWindow])
)
(* * changes to NCCARDS)

(DEFINEQ

(NC.DeleteNoteCards
  [LAMBDA (CardIdentifiers NoIndividualConfirmFlg DontClearFlg InterestedWindow QuietFlg 
			   NoGroupConfirmFlg)                (* Randy.Gobbel "11-Mar-87 12:13")
                                                             (* Delete note cards. If no card specified then get a 
							     list of note cards to be deleted.
							     Then delete these cards.)

          (* * fgh 11/11/85: Updated to handle new Card objects. Also split off main work of deleteing a single note card 
	  into NC.DeleteNoteCard function.)



          (* * kirk 21Feb86 Added InterestedWindow)



          (* * kirk 29Apr86 Now returns CardIdentifiers)



          (* * fgh 6/9/86 Added checks to see if other operations are in progress)



          (* * rht 7/4/86: Now checks that card is not read-only.)



          (* * kirk 18Aug86 Added main window for windowless cards.)



          (* * rht 8/29/86: Reorganized and added call to NC.SeverAllLinks to make deleting more efficient.
	  Added QuietFlg, NoGroupConfirmFlg and Don'tPutToBeDeletedCardsFlg args.)



          (* * rht 9/5/86: Now forces NoGroupConfirmFlg to be non-nil if NoIndividualConfirmFlg is NIL and only one card to 
	  delete.)



          (* * pmi 12/5/86: Modified message to NC.SelectNoteCards to mention SHIFT-selection.)



          (* * pmi 12/12/86: Removed obsolete ReturnLinksFlg argument in call to NC.SelectNoteCards.)



          (* * rht 12/16/86: Removed obsolete Don'tPutToBeDeletedCardsFlg arg.)



          (* * rht 3/9/87: Changed NC.DeleteSelectingMenu to NC.SelectingCardsMenu.)



          (* * rg 3/9/87 added NC.ProtectedSessionOperation wrapper)



          (* * rg 3/11/87 changed call of NC.DeleteNoteCard to NC.DeleteNoteCardInternal)


    (DECLARE (GLOBALVARS NC.SelectingCardsMenu))
    (NC.ProtectedSessionOperation
      "Delete Note Cards" InterestedWindow (OR CardIdentifiers (SETQ CardIdentifiers
						   (NC.SelectNoteCards NIL NIL 
									 NC.SelectingCardsMenu 
									 InterestedWindow 
					      "Please shift-select the Note Cards to be deleted.")))

          (* * Kludge in case args are nil, say, when we're called from a card's menu.)


      (if (AND (NULL NoIndividualConfirmFlg)
		   (NULL NoGroupConfirmFlg)
		   (EQ (LENGTH (MKLIST CardIdentifiers))
			 1))
	  then (SETQ NoGroupConfirmFlg T)
		 (SETQ QuietFlg T))

          (* * First collect cards that are deletable.)


      (LET ((CardsToDelete (for CardIdentifier in (MKLIST CardIdentifiers) bind Card
			      eachtime (BLOCK)
			      when [AND (SETQ Card (NC.CoerceToCard CardIdentifier))
					    (if (NOT (NC.TopLevelCardP Card))
					      else (NC.PrintMsg (NC.FetchWindow Card)
								    T 
								"You cannot delete this FileBox."
								    (CHARACTER 13))
						     (DISMISS 1000)
						     (NC.ClearMsg (NC.FetchWindow Card)
								    T)
						     NIL)
					    (NC.CheckForNotReadOnly Card (NC.FetchWindow Card)
								      "Can't delete cards from a ")
					    (OR NoIndividualConfirmFlg
						  (PROG1 (NC.AskYesOrNo 
							  "Are you sure you want to delete this?"
									    " -- " "Yes"
									    (NULL DontClearFlg)
									    (OR (NC.FetchWindow
										    Card)
										  InterestedWindow)
									    NIL NIL)
							   (NC.ClearMsg]
			      collect Card))
	    (NumSpecified (LENGTH (MKLIST CardIdentifiers)))
	    NumToDelete)
           (SETQ NumToDelete (LENGTH CardsToDelete))
           (if [AND (GREATERP NumToDelete 0)
			(if (EQUAL NumToDelete NumSpecified)
			    then (OR NoGroupConfirmFlg (PROG1 (NC.AskYesOrNo
								      (CONCAT "You've specified " 
										NumToDelete 
									      " cards to delete."
										(CHARACTER 13)
										
							 "Are you sure you want to delete them? ")
								      NIL "Yes" (NULL DontClearFlg)
								      InterestedWindow)
								    (NC.ClearMsg)))
			  else (PROG1 (NC.AskYesOrNo (CONCAT "Out of " NumSpecified 
								     " cards specified, "
								     (DIFFERENCE NumSpecified 
										   NumToDelete)
								     " are not deletable."
								     (CHARACTER 13)
								     "Want to delete the remaining " 
								     NumToDelete " cards? ")
							   NIL "Yes" (NULL DontClearFlg)
							   InterestedWindow)
					  (NC.ClearMsg]
	       then 

          (* * Mark UIDs of cards about to be deleted.)


		      (for Card in CardsToDelete do (NC.UIDPutProp (fetch (Card UID)
									      of Card)
									   (QUOTE 
									      AboutToBeDeletedFlg)
									   T))

          (* * Sever all links into and out of CardsToDelete)


		      (NC.SeverAllLinks CardsToDelete QuietFlg InterestedWindow) 

          (* * Now delete the cards one at a time.)


		      (OR QuietFlg (NC.PrintMsg InterestedWindow T "Deleting cards: 1 out of " 
						    NumToDelete " ..."))
		      (for Card in CardsToDelete as i from 1 eachtime (BLOCK)
			 do (OR QuietFlg (if (ZEROP (REMAINDER i 10))
						 then (NC.PrintMsg InterestedWindow T 
								       "Deleting cards: "
								       i " out of " NumToDelete 
								       " ...")))
			      (NC.ProtectedCardOperation Card "Delete Card" InterestedWindow
							 (NC.DeleteNoteCardInternal Card)))
		      (OR QuietFlg (NC.ClearMsg InterestedWindow T))
		      CardIdentifiers])

(NC.DeleteNoteCard
  [LAMBDA (CardIdentifier)                                   (* Randy.Gobbel "11-Mar-87 16:30")

          (* * User interface level fn to delete a single note card from a NoteFile)


    (LET (Card InterestedWindow)
         (NC.ProtectedCardOperation (NC.CoerceToCard CardIdentifier)
				    "Delete Note Card"
				    (NC.FetchWindow Card)
				    (SETQ Card (NC.CoerceToCard CardIdentifier))
				    (SETQ InterestedWindow (NC.FetchWindow Card))
				    (AND (if (NC.TopLevelCardP Card)
					       then (NC.PrintMsg InterestedWindow T 
								"You cannot delete this FileBox."
								     (CHARACTER 13))
						      (DISMISS 1000)
						      (NC.ClearMsg InterestedWindow T)
						      NIL
					     else T)
					   (NC.CheckForNotReadOnly Card InterestedWindow 
								     "Can't delete cards from a ")
					   (PROG1 (NC.AskYesOrNo 
							  "Are you sure you want to delete this?"
								     " -- " "Yes" T InterestedWindow 
								     NIL NIL)
						    (NC.ClearMsg))
					   (PROGN 

          (* * Mark UID of card about to be deleted.)


						    (NC.UIDPutProp (fetch (Card UID)
									of Card)
								     (QUOTE AboutToBeDeletedFlg)
								     T)

          (* * Sever all links into and out of Card)


						    (NC.SeverAllLinks (LIST Card)
									T)

          (* * Now delete the card)


						    (NC.DeleteNoteCardInternal Card])

(NC.AssignTitle
  [LAMBDA (CardIdentifier NoClearMsgFlg NewTitle)            (* Randy.Gobbel "10-Mar-87 19:20")

          (* * Change the title of the card specified by the WindowOrTextStreamOrID)



          (* * rht 2/1/85: Changed from NC.PutTitle to NC.SetTitleDirtyFlg, unless card is not active.
	  We shouldn't be writing to the notefile until save time.)



          (* * fgh 11/11/85: Added support for CardID, CardInfo and noteFile objects. Also entered call to Nc.StoreTitle.)



          (* * fgh 6/9/86 Added code to check to make sure that another operation is not in progress on this card when this 
	  fn is called.)



          (* * fgh 6/13/86 Now spawns mouse in case called under MOUSE process.)



          (* * fgh 6/27/86 returns T if completed okay.)



          (* * rht 7/4/86: Added check for readonly card.)



          (* * kef 7/16/86: Added obtain write permission.)



          (* * kef 7/24/86: Doesn't release the write lock if this is a new card.)



          (* * kef 7/30/86: Modified to check for Client's concept of whether he owns the write lock or not, thus deciding 
	  whether or not to setup the release of the write lock afterwards.)



          (* * fgh 8/30/86 Converted to use NC.IfCardPartNotBusy.)



          (* * rg 3/3/87 Enlarged scope of NC.ProtectedCardOperation)


    (ALLOW.BUTTON.EVENTS)
    (LET ((Card (NC.CoerceToCard CardIdentifier))
	  ContainingCard OldTitle Window)
         (NC.ProtectedCardOperation Card "Assign Title" NIL
				    (NC.IfCardPartNotBusy
				      Card
				      (QUOTE TITLE)
				      (SETQ Window (NC.FetchWindow Card))
				      (if (NC.CheckForNotReadOnly Card Window 
							      "Can't change titles for cards in ")
					  then (COND
						   ((SETQ NewTitle
						       (OR (STRINGP NewTitle)
							     (AND NewTitle (OR (LITATOM 
											 NewTitle)
										   (NUMBERP 
											 NewTitle))
								    (MKSTRING NewTitle))
							     (NC.AskUser
							       (CONCAT 
								  "Enter the title for this card"
									 (CHARACTER 13))
							       "-->  "
							       (COND
								 ((AND (STREQUAL (SETQ OldTitle
										       (
										 NC.RetrieveTitle
											 Card))
										     "Untitled")
									 (NC.FetchNewCardFlg Card))
								   NIL)
								 (T OldTitle))
							       (NULL NoClearMsgFlg)
							       Window)))
						     (NC.SetTitle Card NewTitle)

          (* * Now do a PutTitle so that anyone else coming along will pick up on the new title. The only exception is if 
	  this card hasn't been written to the NoteFile yet, which is true when the NewCardFlg is T. In that case, we can't 
	  put the title down yet, so just mark it dirty.)


						     (COND
						       ((fetch (Card NewCardFlg) of Card)
							 (NC.SetTitleDirtyFlg Card T))
						       (T (NC.PutTitle Card)
							  (NC.SetTitleDirtyFlg Card NIL)))
						     (AND (WINDOWP Window)
							    (WINDOWPROP Window (QUOTE TITLE)
									  NewTitle))
						     (for FromLink in (NC.RetrieveFromLinks
									    Card)
							do (AND (NC.ActiveCardP
								      (SETQ ContainingCard
									(fetch (Link SourceCard)
									   of FromLink)))
								    (WINDOWP (NC.FetchWindow
										 ContainingCard))
								    (NC.UpdateLinkImages 
										   ContainingCard 
											   Card)))
						     T))
					else NIL])

(NC.PrintOperationInProgressMsg
  [LAMBDA (Window Operation OperationInProgress)             (* Randy.Gobbel "11-Mar-87 11:00")

          (* * Notify the user that they are attempting to do an operation while another operation is in progress.
	  Use a prompt window above the card's promptwindow because the card's prompt window is probably being used for the 
	  operation.)



          (* * fgh 6/9/86 First created.)



          (* * RG 3/10/87 removed redundant (?) call to NC.AttachPromptWindow)


    (LET (PWindow)
         (if (OPENWP (SETQ PWindow (NC.AttachPromptWindow Window NIL NIL NIL T)))
	     then (SETQ PWindow (NC.AttachPromptWindow PWindow 1 30 NIL NIL))
	   else (SETQ PWindow (NC.AttachPromptWindow Window NIL 30 NIL NIL)))
         (NC.PrintMsg PWindow T "## Can't " Operation (CHARACTER 13)
			"## " OperationInProgress " in progress.")
         (REPOSITIONATTACHEDWINDOWS Window])

(NC.DeleteLink
  [LAMBDA (Link NoOrphanHookFlg Don'tDelLinkIconFlg)         (* Randy.Gobbel "11-Mar-87 12:14")

          (* * Delete a link with the option of not putting an orphan hook in case of last filing link.
	  Also option of not deleting link icon from the source card's substance.)



          (* * fgh 5/2/86 Included calls to NC.DelReferencesToCardFromShowLinks in order to clean up ShowLinks windows when 
	  links are deleted.)



          (* * kef 7/17/86: Added the requirement that the write permissions be obtained for the TOLINKS of the Source Card 
	  and the FROMLINKS of the Destination Card.)



          (* * kef 7/22/86: Puts the links for the Destination Card now right away while we are still holding onto the write 
	  lock for the FROMLINKS.)



          (* * kef 7/30/86: Modified to check for Client's concept of whether he owns the write lock or not, thus deciding 
	  whether or not to setup the release of the write lock afterwards.)



          (* * fgh 8/30/86 Adpated to use NC.IfCardPartNotBusy. Note use of ERROR!. Unfortunately, it appears that the only 
	  way to keep TEDIT from deleting the Link's Image Object is to bail out but good. The control structure here works 
	  because NC.IfCardPartNotBusy returns NIL if the CardPart is busy. The Ts at the end as the last SExpr in each call 
	  to NC.IfCardPartNotBusy insure that NC.IfCardPartNotBusy returns non-NIL otherwise.)



          (* * rht 9/29/86: Removed the call to NC.PutFromLinks. Looks to me like it'll get called anyway by NC.DelFromLink 
	  if necessary.)



          (* * rht 10/6/86: Delete crossfilelink cards when their links are deleted.)



          (* * rht 11/4/86: Now takes Don'tCreateDeletedImageObjFlg arg.)



          (* * rht 11/13/86: Undid my change of 11/4/86.)



          (* * rg 3/11/87 changed call of NC.DeleteNoteCard to NC.DeleteNoteCardInternal)


    (AND (NC.ValidLinkP Link)
	   (LET ((SourceCard (fetch (Link SourceCard) of Link))
		 (DestinationCard (fetch (Link DestinationCard) of Link))
		 BusyCardPart)
	        (WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of SourceCard))
			      (OR (NC.IfCardPartNotBusy DestinationCard (QUOTE FROMLINKS)
							  (OR (NC.IfCardPartNotBusy
								  DestinationCard
								  (QUOTE TOLINKS)
								  (OR Don'tDelLinkIconFlg
									(NC.DelReferencesToCard
									  SourceCard Link))
								  (NC.DelFromLink Link 
										  NoOrphanHookFlg)
								  (NC.DelToLink Link)
								  (
							      NC.DelReferencesToCardFromShowLinks
								    SourceCard Link)
								  (
							      NC.DelReferencesToCardFromShowLinks
								    DestinationCard Link)

          (* * This UID replacement is worrisome. Does it mean that link deletion can't be undone?)


								  (replace (Link UID) of Link
								     with -1)
								  T)
								(ERROR!))
							  T)
				    (ERROR!)))

          (* * Delete cross file link cards when their links are deleted.)


	        (if (NC.CrossFileLinkCardP DestinationCard)
		    then (NC.DeleteNoteCardInternal DestinationCard))
	        (if (NC.CrossFileLinkCardP SourceCard)
		    then (NC.DeleteNoteCardInternal SourceCard])
)
(* * new for NCCARDS)

(DEFINEQ

(NC.DeleteNoteCardInternal
  [LAMBDA (Card)                                             (* Randy.Gobbel "11-Mar-87 12:15")

          (* * Delete a single note card from a NoteFile)



          (* * rht 8/11/86 Now calls NC.DeleteReferencesToCardFromShowLinks to smash any link icons in show links menus 
	  pointing to this card.)



          (* * kef 7/28/86: Added code to obtain all of the write locks deemed necessary.)



          (* * kef 7/30/86: Modified to check for Client's concept of whether he owns the write lock or not, thus deciding 
	  whether or not to setup the release of the write lock afterwards.)



          (* * kef 7/31/86: Added the nesting of the obtaining writelocks with deactivating the card.)



          (* * fgh 8/30/86 Translated APPLY* to NC.ApplyFn. Made cosmetic changes in FOR loop concewrning WriteLocks.)



          (* * rht 1/16/87: Moved call to MarkCardDeletedFn after call to NC.QuitCard.)



          (* * rg 3/11/87 renamed)


    (RESETLST (RESETSAVE (CURSOR WAITINGCURSOR))
		(RESETSAVE NIL (BQUOTE (NC.SetBeingDeletedFlg , Card NIL)))
		(WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of Card))
			      (LET ((WriteLocks (for CardPart
						   in (QUOTE (SUBSTANCE TITLE TOLINKS FROMLINKS 
									    GLOBALTOLINKS PROPLIST))
						   collect (CONS Card CardPart)))
				    ToLinks FromLinks Window BusyPart PromptWindow)
			           (NC.SetBeingDeletedFlg Card T)
			           (SETQ ToLinks (NC.RetrieveToLinks Card))
			           (SETQ FromLinks (NC.RetrieveFromLinks Card))
			           [for ToLink in ToLinks
				      do (NCONC WriteLocks (for CardPart
								  in (QUOTE (TOLINKS FROMLINKS 
										    GLOBALTOLINKS))
								  collect
								   (CONS (fetch (Link 
										  DestinationCard)
									      of ToLink)
									   CardPart]
			           [for FromLink in FromLinks
				      do (NCONC WriteLocks (for CardPart
								  in (QUOTE (SUBSTANCE TOLINKS 
											FROMLINKS 
										    GLOBALTOLINKS))
								  collect
								   (CONS (fetch (Link SourceCard)
									      of FromLink)
									   CardPart]

          (* * The for... loop that follows is the condition that we can obtain all of the write locks on all of the card 
	  parts collected in WriteLocks. If we obtain a writelock, setup a RESETSAVE to release it upon exit.
	  Then finally, if we do obtain a write lock, return T so that the for loop's "always" condition is satisfied.
	  If we don't obtain a write lock for a given card part, save that one as a variable so we can report it to the user.
	  Then return NIL, so that the for loop's "always" condition is not satisfied, and we bump out of the for loop.)


			           (NC.PrintMsg (SETQ PromptWindow (NC.AttachPromptWindow
						      (NC.FetchWindow Card)))
						  T "Collecting write locks...")
			           (COND
				     ((for WriteLock in WriteLocks bind WLCard WLCardPart
					 when (NC.ValidCardP (SETQ WLCard (CAR WriteLock)))
					 always (SETQ WLCardPart (CDR WriteLock))
						  (COND
						    ((NC.ApplyFn ObtainWritePermissionFn WLCard 
								 WLCardPart)
						      (RESETSAVE NIL
								   (BQUOTE
								     (APPLY* , (fetch
										 (Card 
									 ReleaseWritePermissionFn)
										    of WLCard)
									       , WLCard , WLCardPart))
								   )
						      T)
						    (T (SETQ BusyPart WriteLock)
						       NIL)))

          (* * Call off to the MarkCardDeletedFn specific to the NoteFile.)


				       (RESETSAVE (for CardPart
						       in (QUOTE (SUBSTANCE TOLINKS GLOBALTOLINKS 
										PROPLIST))
						       do (NC.ApplyFn ObtainWritePermissionFn Card 
									CardPart))
						    (BQUOTE (NC.DeactivateCard , Card T)))
				       (NC.ApplyFn MarkCardDeletedFn Card)
				       (NC.SetToLinks Card NIL)
				       (NC.SetFromLinks Card NIL)
				       (NC.PrintMsg PromptWindow NIL 
						      "Removing links to and from other cards...")
				       (for ToLink in ToLinks when (NC.ValidLinkP ToLink)
					  do (NC.DelFromLink ToLink)
					       (NC.DelReferencesToCardFromShowLinks
						 (fetch (Link DestinationCard) of ToLink)
						 ToLink))
				       (for FromLink in FromLinks when (NC.ValidLinkP 
											 FromLink)
					  do (NC.DelToLink FromLink)
					       (NC.DelReferencesToCard (fetch (Link SourceCard)
									    of FromLink)
									 Card)
					       (NC.DelReferencesToCardFromShowLinks
						 (fetch (Link SourceCard) of FromLink)
						 FromLink))
				       (NC.PrintMsg PromptWindow NIL "..done.")
				       (if (NC.ActiveCardP Card)
					   then (NC.TurnOffDirtyFlgs Card)
						  (SETQ Window (NC.FetchWindow Card))
						  (AND Window (NC.GreyCard Card))
						  (NC.CloseAllPropListEditors Card)
						  (NC.QuitCard Card T T))
				       (NC.ApplyFn MarkCardDeletedFn Card)
				       (NC.SetNewCardFlg Card NIL))
				     (T (NC.CardPartBusy (CAR BusyPart)
							   (CDR BusyPart)
							   PromptWindow])
)
(* * hack to update existing menus)

(NLSETQ (EDITV NC.DefaultLeftButtonMenuItems (R NC.DeleteNoteCards NC.DeleteNoteCard)))
(PUTPROPS RGPATCH017 COPYRIGHT ("Xerox Corporation" 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1012 3151 (NC.CopyStructure 1022 . 3149)) (3183 18519 (NC.DeleteNoteCards 3193 . 8951) 
(NC.DeleteNoteCard 8953 . 10474) (NC.AssignTitle 10476 . 14119) (NC.PrintOperationInProgressMsg 14121
 . 15109) (NC.DeleteLink 15111 . 18517)) (18548 24009 (NC.DeleteNoteCardInternal 18558 . 24007)))))
STOP