(FILECREATED "15-May-87 17:05:27" {QV}<NOTECARDS>1.3K>NEXT>RGPATCH041.;1 17403 changes to: (VARS RGPATCH041COMS) (FNS NC.AddFromLink NC.ChangeLinkDisplayMode NC.CheckForOrphanDelete NC.DelReferencesToCardFromGlobalList NC.DelToLink NC.RelabelLink)) (* Copyright (c) 1987 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT RGPATCH041COMS) (RPAQQ RGPATCH041COMS ((* * rg 5/15/87 these now call NC.LinksCachedP instead of NC.ActiveCardP) (* * changes to NCLINKS) (FNS NC.AddFromLink NC.ChangeLinkDisplayMode NC.CheckForOrphanDelete NC.DelReferencesToCardFromGlobalList NC.DelToLink NC.RelabelLink))) (* * rg 5/15/87 these now call NC.LinksCachedP instead of NC.ActiveCardP) (* * changes to NCLINKS) (DEFINEQ (NC.AddFromLink [LAMBDA (Link) (* Randy.Gobbel "15-May-87 09:00") (* * Add Link to the FromLinks of the appropraite card on DatbaseStream) (* * kirk: 14Nov85: deleted use of of DatabaseStream) (* * rht 2/14/86: Now calls NC.UncacheLinks instead of two calls to NC.SetToLinks and NC.SetFromLinks.) (* * kef 7/22/86: Now only calls NC.PutFromLinks instead of NC.PutLinks because we can't be certain of owning the write locks on all of the Link parts.) (* * rg 5/15/87 now calls NC.LinksCachedP instead of NC.ActiveCardP) (LET ((Card (fetch (Link DestinationCard) of Link))) [COND ((NC.LinksCachedP Card) (NC.SetFromLinks Card (CONS Link (NC.FetchFromLinks Card))) (NC.SetLinksDirtyFlg Card T)) (T (WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of Card)) (NC.GetLinks Card) (NC.SetFromLinks Card (CONS Link (NC.FetchFromLinks Card))) (NC.SetLinksDirtyFlg Card T) (NC.PutFromLinks Card) (NC.UncacheLinks Card] Link]) (NC.ChangeLinkDisplayMode [LAMBDA (LinkOrLinkIcon Window NewDisplayMode) (* Randy.Gobbel "15-May-87 16:39") (* * Change the display mode of the NOTECARDLINK defined by LinkOrLinkIcon. Have the user choose the new display mode.) (* * NOTE: assumes that the SourceID card of the link is active, i.e., the substance and links are cached for this card.) (* * rht 2/1/85: Now doesn't do all the work if new display mode is same as the old one. Or if user doesn't make a selection from the menu.) (* * kef 8/8/86: Now does the write through to the NoteFile even if the card is active, but not being edited. Also, in the case of doing the write through, puts only the from links.) (* * fgh 8/30/86 Adapted to call NC.IfCardPartNotBusy.) (* * rht 9/29/86: Changed Ken's call to NC.CardBeingEditedP to NC.ActiveCardP and other minor changes.) (* * rht 2/18/87: Added check for readonly notefile to fix bug %#376.0) (* * rg 5/15/87 now calls NC.LinksCachedP instead of NC.ActiveCardP when changing FromLinks) (LET (Card DestinationCard Link LinkIcon GlobalLinkFlg OldDisplayMode) [if (NC.LinkIconImageObjP LinkOrLinkIcon) then (SETQ Link (NC.FetchLinkFromLinkIcon LinkOrLinkIcon)) (SETQ LinkIcon LinkOrLinkIcon) else (SETQ Link LinkOrLinkIcon) (OR (SETQ GlobalLinkFlg (NC.GlobalLinkP Link)) (SETQ LinkIcon (NC.FetchLinkIconForLink Link] (SETQ Card (fetch (Link SourceCard) of Link)) (SETQ OldDisplayMode (fetch (Link DisplayMode) of Link)) (if (NC.CheckForNotReadOnly Card Window "Can't change display mode for links in ") then [COND ((WINDOWP Window)) ((NC.ActiveCardP Card) (SETQ Window (NC.FetchWindow Card] (* * Get new display mode from user) (SETQ DestinationCard (fetch (Link DestinationCard) of Link)) (NC.IfCardPartNotBusy DestinationCard (QUOTE FROMLINKS) [if (NOT NewDisplayMode) then (SETQ NewDisplayMode (NC.DisplayModeFromStylesheetSelections (STYLESHEET (CREATE.STYLE (QUOTE ITEMS) [LIST (create MENU ITEMS ← (QUOTE (Yes No Float) )) (create MENU ITEMS ← (QUOTE (Yes No Float) )) (create MENU ITEMS ← (QUOTE (Yes No Float] (QUOTE ITEM.TITLES) (QUOTE (Title?% LinkType?% AttachBitmap?)) (QUOTE ITEM.TITLE.FONT) (FONTCOPY MENUFONT (QUOTE WEIGHT) (QUOTE BOLD)) (QUOTE SELECTIONS) ( NC.StylesheetSelectionsFromDisplayMode OldDisplayMode) (QUOTE NEED.NOT.FILL.IN) NIL (QUOTE TITLE) (QUOTE Display% Mode?) (QUOTE POSITION) (create POSITION XCOORD ← LASTMOUSEX YCOORD ← LASTMOUSEY] (if (OR (NULL NewDisplayMode) (EQUAL NewDisplayMode OldDisplayMode)) then (* * If new display mode is same as old, then bail out.) NIL else (* * Update link in LinkIcon or in global links list) (if GlobalLinkFlg then (for GlobalLink in (NC.FetchGlobalLinks Card) when (NC.SameLinkP Link GlobalLink) do (replace (Link DisplayMode) of GlobalLink with NewDisplayMode)) (NC.SetLinksDirtyFlg Card T) else (replace (Link DisplayMode) of (NC.FetchLinkFromLinkIcon LinkIcon) with NewDisplayMode) (NC.MarkCardDirty Card)) (* * Update link in ToLinks List of Source card) (for ToLink in (NC.FetchToLinks Card) when (NC.SameLinkP Link ToLink) do (replace (Link DisplayMode) of ToLink with NewDisplayMode)) (NC.SetLinksDirtyFlg Card T) (* * Update Link in FromLinks list of Destination card) (if (NC.LinksCachedP DestinationCard) then (for FromLink in (NC.FetchFromLinks DestinationCard) when (NC.SameLinkP Link FromLink) do (replace (Link DisplayMode) of FromLink with NewDisplayMode)) (NC.SetLinksDirtyFlg DestinationCard T) else (WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of DestinationCard)) (NC.GetLinks DestinationCard) (for FromLink in (NC.FetchFromLinks DestinationCard) when (NC.SameLinkP Link FromLink) do (replace (Link DisplayMode) of FromLink with NewDisplayMode)) (NC.PutFromLinks DestinationCard) (NC.UncacheLinks DestinationCard))) (* * Update the image in any active window for Card) (if [AND (WINDOWP Window) (NOT (NC.TEditBasedP (NC.RetrieveType Card] then (NC.UpdateLinkImages Window (fetch (Link DestinationCard) of Link))) (* This causes tedit to redisplay the screen.) (QUOTE CHANGED]) (NC.CheckForOrphanDelete [LAMBDA (SourceCard DestinationCard SourceWindow) (* Randy.Gobbel "15-May-87 16:40") (* Check to make sure we are not deleteing the last reference to a note card from the orphan card. Last references are okay to delete it since they will be put in the orphan card. But deleting last reference from the orphan card is very, very bad. Warn the user.) (* * kirk: 14Nov85: changed EQs to NC.Same*Ps) (* * rht 7/4/86: Brought up to date with 1.3k. E.g. took out mention of NC.OrphansID) (* * rg 5/15/87 now calls NC.LinksCachedP instead of NC.ActiveCardP) (LET [(FilingLinks (LIST NC.SubBoxLinkLabel NC.FiledCardLinkLabel)) (OrphansCard (fetch (NoteFile OrphansCard) of (fetch (Card NoteFile) of SourceCard] (AND (NC.SameCardP SourceCard OrphansCard) (for Link in (COND ((NC.LinksCachedP DestinationCard) (NC.FetchFromLinks DestinationCard)) (T (NC.GetLinks DestinationCard) (NC.FetchFromLinks DestinationCard))) when (FMEMB (fetch (Link Label) of Link) FilingLinks) unless (NC.SameCardP (fetch (Link SourceCard) of Link) OrphansCard) never Link) (NC.PrintMsg (NC.FetchWindow SourceCard) T "You have just deleted the last filing link to " (NC.RetrieveTitle DestinationCard) (CHARACTER 13) "The Search operation can be used to find it."]) (NC.DelReferencesToCardFromGlobalList [LAMBDA (SourceCard LinkOrDestinationCard) (* Randy.Gobbel "15-May-87 16:52") (* * LinkOrDestinationCard is being deleted. Remove all references to it from the global links list of SourceCard) (* * rht 11/19/84: Fixed a naming typo changing ID to SourceCard everywhere. Also fixed DestinationID arg to be LinkOrDestinationID.) (* * kirk: 14Nov85: deleted use of of DatabaseStream and LinkID and changed EQs to NC.Same*Ps) (* * rg 5/15/87 now calls NC.LinksCachedP instead of NC.ActiveCardP) (COND ((NC.LinksCachedP SourceCard) (NC.SetGlobalLinks SourceCard (for Link in (NC.FetchGlobalLinks SourceCard) when (if (NC.CardP LinkOrDestinationCard) then (NOT (NC.SameCardP LinkOrDestinationCard (fetch (Link DestinationCard) of Link))) else (NOT (NC.SameLinkP LinkOrDestinationCard Link))) collect Link))) (T (WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of SourceCard)) (NC.GetLinks SourceCard) (NC.SetGlobalLinks SourceCard (for Link in (NC.FetchGlobalLinks SourceCard) when (if (NC.CardP LinkOrDestinationCard) then (NOT (NC.SameCardP LinkOrDestinationCard (fetch (Link DestinationCard) of Link))) else (NOT (NC.SameLinkP LinkOrDestinationCard Link))) collect Link)) (NC.PutLinks SourceCard]) (NC.DelToLink [LAMBDA (Link) (* Randy.Gobbel "15-May-87 16:54") (* * Delete ToLink spoecified by Link from cards on DatabasseStream) (* * rht 12/1/84: Now doesn't do any work unless SourceCard is valid, i.e. not DELETED or FREE.) (* * kirk: 13Nov85: changed to use NoteFile from card from link instead of DatabaseStream) (* * rht 2/14/86: Now calls NC.UncacheLinks instead of two calls to NC.SetToLinks and NC.SetFromLinks.) (* * rg 5/15/87 now calls NC.LinksCachedP instead of NC.ActiveCardP) (PROG ((SourceCard (fetch (Link SourceCard) of Link))) (COND ((NOT (NC.ValidCardP SourceCard))) ((NC.LinksCachedP SourceCard) (NC.SetToLinks SourceCard (DREMOVE (for OldLink in (NC.FetchToLinks SourceCard) thereis (AND (NC.SameLinkP Link OldLink) OldLink)) (NC.FetchToLinks SourceCard))) (NC.SetLinksDirtyFlg SourceCard T)) (T (WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of SourceCard) "NC.AddFromLink") (NC.GetLinks SourceCard) (NC.SetToLinks SourceCard (DREMOVE (for OldLink in (NC.FetchToLinks SourceCard) thereis (AND (NC.SameLinkP Link OldLink) OldLink)) (NC.FetchToLinks SourceCard))) (NC.SetLinksDirtyFlg SourceCard T) (NC.PutLinks SourceCard)) (NC.UncacheLinks SourceCard))) (RETURN Link]) (NC.RelabelLink [LAMBDA (LinkOrLinkIcon Window NewLinkLabel ForceRedisplayFlg) (* Randy.Gobbel "15-May-87 17:03" pp pp) (* Relabel a NoteCard link. Ask user for new label. Update all the proper references to this link.) (* * rht 11/19/84: Fixed so that Card is defined before first use.) (* * kirk 14Nov85: deleted use of and LinkID) (* * kef 8/8/86: Added obtaining write lock and NC.PutFromLinks.) (* * fgh 8/30/86 Adapted to NC.IfCardPartNotBusy) (* * rht 9/29/86: Changed Ken's call to NC.CardBeingEditedP to NC.ActiveCardP and other minor mod's.) (* * rg 5/15/87 now calls NC.LinksCachedP instead of NC.ActiveCardP) (LET (Link LinkIcon Card DestinationCard OldLabel NoteCardType GlobalLinkFlg) [if (NC.LinkIconImageObjP LinkOrLinkIcon) then (SETQ Link (NC.FetchLinkFromLinkIcon LinkOrLinkIcon)) (SETQ LinkIcon LinkOrLinkIcon) else (SETQ Link LinkOrLinkIcon) (OR (SETQ GlobalLinkFlg (NC.GlobalLinkP Link)) (SETQ LinkIcon (NC.FetchLinkIconForLink Link] (SETQ Card (fetch (Link SourceCard) of Link)) [COND ((WINDOWP Window)) ((NC.ActiveCardP Card) (SETQ Window (NC.FetchWindow Card] (SETQ DestinationCard (fetch (Link DestinationCard) of Link)) (NC.IfCardPartNotBusy DestinationCard (QUOTE FROMLINKS) (COND ((NC.SystemLinkLabelP (fetch (Link Label) of Link)) (NC.PrintMsg Window T "This is a system maintained pointer." (CHARACTER 13) "You cannot change its label." (CHARACTER 13)) (SPAWN.MOUSE) (DISMISS 1500) (NC.ClearMsg Window T)) ((SETQ NewLinkLabel (OR NewLinkLabel (NC.AskLinkLabel Window NIL NIL T T))) (SETQ NoteCardType (NC.RetrieveType Card)) (* * Put new label in Link Icon or global links list) (if GlobalLinkFlg then (for GlobalLink in (NC.FetchGlobalLinks Card) when (NC.SameLinkP GlobalLink Link) do (replace (Link Label) of GlobalLink with NewLinkLabel) (NC.SetLinksDirtyFlg Card T) (RETURN)) else (replace (Link Label) of (NC.FetchLinkFromLinkIcon LinkIcon) with NewLinkLabel) (NC.MarkCardDirty Card)) (* * Update ToLink list of the SourceCard card) (for ToLink in (NC.FetchToLinks Card) when (NC.SameLinkP ToLink Link) do (replace (Link Label) of ToLink with NewLinkLabel) (NC.SetLinksDirtyFlg Card T) (RETURN)) (* * Update FromLink list of DestinationCard card) (if (NC.LinksCachedP DestinationCard) then (for FromLink in (NC.FetchFromLinks DestinationCard) when (NC.SameLinkP FromLink Link) do (replace (Link Label) of FromLink with NewLinkLabel) (NC.SetLinksDirtyFlg DestinationCard T) (RETURN)) else (WITH.MONITOR (NC.FetchMonitor (fetch (Card NoteFile) of DestinationCard)) (NC.GetLinks DestinationCard) (for FromLink in (NC.FetchFromLinks DestinationCard) when (NC.SameLinkP FromLink Link) do (replace (Link Label) of FromLink with NewLinkLabel) (NC.SetLinksDirtyFlg DestinationCard T) (RETURN)) (NC.PutFromLinks DestinationCard) (NC.UncacheLinks DestinationCard))) (* * Update images in SourceCard window) (COND ((AND (NULL ForceRedisplayFlg) (NC.TEditBasedP NoteCardType)) (QUOTE CHANGED)) ((WINDOWP Window) (NC.UpdateLinkImages Window (fetch (Link DestinationCard) of Link)) NIL) (T NIL]) ) (PUTPROPS RGPATCH041 COPYRIGHT ("Xerox Corporation" 1987)) (DECLARE: DONTCOPY (FILEMAP (NIL (768 17322 (NC.AddFromLink 778 . 1989) (NC.ChangeLinkDisplayMode 1991 . 7802) ( NC.CheckForOrphanDelete 7804 . 9390) (NC.DelReferencesToCardFromGlobalList 9392 . 11163) (NC.DelToLink 11165 . 12876) (NC.RelabelLink 12878 . 17320))))) STOP