(FILECREATED " 9-Nov-84 12:20:12" {PHYLUM}<PSA>NOTECARDS>RELEASE1.1>RHTPATCH003.;8 14736
changes to: (VARS RHTPATCH003COMS)
(FNS NC.GraphAddNodeFn NC.MakeGlobalLink NC.AddLinkToSketchCard
NC.InsertLinkInText NC.LinkIconWhenCopiedFn NC.MakeCardTypesList)
previous date: " 8-Nov-84 17:58:13" {PHYLUM}<PSA>NOTECARDS>RELEASE1.1>RHTPATCH003.;6)
(* Copyright (c) 1984 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT RHTPATCH003COMS)
(RPAQQ RHTPATCH003COMS ((FNS NC.InspectorSelectionFn NC.TEditBasedP NC.CloseDatabaseFile
NC.MakeSearchCard NC.MakeCardTypesList NC.BringUpBrowserCard)
(* Fixes of functions that call NC.MakeLink)
(FNS NC.GraphAddNodeFn NC.MakeGlobalLink NC.AddLinkToSketchCard
NC.InsertLinkInText)))
(DEFINEQ
(NC.InspectorSelectionFn
(LAMBDA (Property ValueFlg InspectWindow) (* rht: "25-Oct-84 15:48")
(* * Actions to be taken when the user selects an item in the Inspector. If a value, then ignore.
If a property, ask for a new value.)
(* * KLUDGED to hadle the NC.DefaultcardType property --- should be fixed to be general!!!!!!! fgh 10/23/84)
(* * rht 10/25/84: Rewritten to access the NC.NoteCardsParameters variable's prop list to get all info including the
name of the relevant globalvar for this parameter and an optional function. The latter returns a list of possible
values. If no such function, then just toggle between Yes and No.)
(PROG (Answer ValuesFn GlobalVar)
(AND ValueFlg (RETURN (INSPECTW.SELECTITEM InspectWin)))
(SETQ ValuesFn (CADR (GETPROP (QUOTE NC.NoteCardsParameters)
Property)))
(SETQ GlobalVar (CAR (GETPROP (QUOTE NC.NoteCardsParameters)
Property)))
(if ValuesFn
then (SETQ Answer (MENU (create MENU
ITEMS ←(APPLY* ValuesFn)
TITLE ← "Choose New Value")))
(if Answer
then (SET GlobalVar Answer)
(INSPECTW.REDISPLAY InspectWindow Property))
else (if (EVAL GlobalVar)
then (SET GlobalVar NIL)
else (SET GlobalVar T))
(INSPECTW.REDISPLAY InspectWindow Property))
(INSPECTW.SELECTITEM InspectWindow))))
(NC.TEditBasedP
(LAMBDA (Type) (* rht: " 8-Nov-84 12:03")
(* * Returns T if Type is a note card type that is based on TEdit or else an ID of such a note card.
NIL otherise.)
(* * rht 11/8/84: Hacked to reflect notecards typing mechanism. Seems gross to have to search the types list to get
the record.)
(if (NC.IDP Type)
then (SETQ Type (NC.FetchType Type)))
(for CardType in NC.CardTypes when (EQ Type (fetch (NoteCardType TypeName) of CardType))
do (RETURN (EQ (QUOTE TEXT)
(fetch (NoteCardType SubstanceType) of CardType))))))
(NC.CloseDatabaseFile
(LAMBDA NIL (* rht: " 8-Nov-84 17:44")
(* Close the currently open database file.)
(* * rht 10/23/84: Now gives user option of closing and saving all open cards on the screen.)
(* * rht 11/8/84: Put RESETLST around NC.CacheTitles call.)
(PROG (File CardTotal ID OpenWindows)
(COND
((OR (NULL PSA.Database)
(NOT (OPENP PSA.Database)))
(NC.PrintMsg NIL T "There is no open NoteFile!!!" (CHARACTER 13)))
(T (COND
((SETQ OpenWindows (for Window in (OPENWINDOWS)
when (NC.ActiveCardP (OR (NC.IDFromWindow Window)
(NC.IDFromWindow (WINDOWPROP
Window
(QUOTE ICONFOR)))))
collect Window))
(NC.PrintMsg NIL T "There are cards still active on the screen." (CHARACTER 13))
(COND
((NC.YesP (NC.AskUser "Want to close and save them? " " -- " (QUOTE Yes)))
(NC.PrintMsg NIL T "Closing and saving active cards ... ")
(RESETLST (RESETSAVE NC.ForceSourcesFlg NIL)
(RESETSAVE NC.ForceFilingFlg NIL)
(for Window in OpenWindows
do (COND
((WINDOWPROP Window (QUOTE ICONFOR))
(SETQ Window (EXPANDW Window))))
(NC.QuitCard (NC.IDFromWindow Window)
T)
(until (NULL (OPENWP Window)) do (BLOCK))))
(NC.PrintMsg NIL NIL "Done." (CHARACTER 13)))
(T (RETURN NIL)))))
(NC.PrintMsg NIL T "Closing Notefile ... " (CHARACTER 13))
(RESETLST (RESETSAVE NC.ForceSourcesFlg NIL)
(RESETSAVE NC.ForceFilingFlg NIL)
(NC.CacheTypesAndTitles PSA.Database T NIL "Closing NoteFile."))
(NC.SaveNextLinkID PSA.Database T)
(SETQ File (FULLNAME PSA.Database))
(* * Set PSA.Database GlobalVar to NIL so that the advise to CLOSEF will not refuse to close this file.)
(NC.ForceDatabaseClose PSA.Database)
(replace (MENU TITLE) of NC.MainMenu with "No Open NoteFile")
(replace (MENU IMAGE) of NC.MainMenu with NIL)
(WINDOWPROP (WFROMMENU NC.MainMenu)
(QUOTE CLOSEFN)
NIL)
(NC.DisplayMainMenu)
(SETQ PSA.Database)
(NC.PrintMsg NIL T File " closed."))))))
(NC.MakeSearchCard
(LAMBDA (ListCardID Title NoDisplayFlg) (* rht: " 8-Nov-84 15:07")
(* Search for cards with specified characteristics and create a list card containing pointers to these cards.
For now search is limited to cards whose title contains a specified string.)
(* * rht 11/8/84: Fixed some confusion between ListCardID and ID variables.)
(PROG (SearchString IDs WindowOrID Window)
(SPAWN.MOUSE)
(SETQ WindowOrID (NC.MakeTEditCard ListCardID (OR Title "SearchCard")
NoDisplayFlg))
(NC.ActivateCard ListCardID)
(SETQ Window (AND (WINDOWP WindowOrID)
WindowOrID))
(SETQ SearchString (NC.AskUser "Please enter the search string" " -- " NIL T Window))
(COND
((OR (EQUAL SearchString "")
(NOT SearchString))
(RETURN WindowOrID)))
(NC.SetTitle ListCardID (SETQ Title (OR Title (CONCAT "Cards with %"" SearchString
"%" in title"))))
(AND Window (WINDOWPROP Window (QUOTE TITLE)
Title))
(RESETLST (RESETSAVE (CURSOR WAITINGCURSOR))
(NC.PrintMsg Window T "Searching for cards ...")
(SETQ IDs (bind Title ID for ID# from 1 to (SUB1 (SUBATOM (NC.GetNewID
PSA.Database T)
4))
when (AND (SETQ Title (NC.FetchTitle (SETQ ID (NC.IDFromNumber
ID#))))
(STRPOS SearchString Title))
collect ID))
(TEDIT.INSERT (NC.FetchSubstance ListCardID)
(CONCAT " List compiled on: " (DATE)
(CHARACTER 13))
1)
(for ID in IDs unless (EQ ListCardID ID) do (NC.InsertLinkBeforeMarker
ListCardID ID
NC.ListContentsLinkLabel
(QUOTE Title)
NIL PSA.Database))
(NC.PrintMsg Window NIL "Done!" (CHARACTER 13)))
(BLOCK 250)
(NC.ClearMsg Window T)
(RETURN WindowOrID))))
(NC.MakeCardTypesList
(LAMBDA NIL (* rht: " 9-Nov-84 10:40")
(* * Make initial set of card types.)
(SETQ NC.CardTypes (LIST (create NoteCardType
TypeName ←(QUOTE NoteCard)
SuperType ← NIL
SubstanceType ← NIL
MakeCardFn ← NIL
EditCardFn ← NIL
QuitCardFn ← NIL
GetCardFn ← NIL
PutCardFn ← NIL
CopyCardFn ← NIL
MarkCardDirtyFn ← NIL
CardDirtyPFn ← NIL
CollectLinksInCardFn ← NIL
DeleteLinksInCardFn ← NIL
UpdateLinkIconsInCardFn ← NIL
LinkDisplayMode ←(QUOTE Icon))))
(NC.AddCardType (QUOTE Text)
(QUOTE NoteCard)
(QUOTE TEXT)
(FUNCTION NC.MakeTEditCard)
NIL
(FUNCTION NC.TEditCloseFn)
NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Icon))
(NC.AddCardType (QUOTE Graph)
(QUOTE NoteCard)
(QUOTE GRAPH)
(FUNCTION NC.MakeGraphCard)
NIL
(FUNCTION NC.GraphCardCloseFn)
NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Title))
(NC.AddCardType (QUOTE Sketch)
(QUOTE NoteCard)
(QUOTE SKETCH)
(FUNCTION NC.MakeSketchCard)
NIL
(FUNCTION NC.SketchCardCloseFn)
NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Icon))
(NC.AddCardType (QUOTE FileBox)
(QUOTE Text)
(QUOTE TEXT)
(FUNCTION NC.MakeContentsCard)
NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Title))
(NC.AddCardType (QUOTE Browser)
(QUOTE Graph)
(QUOTE GRAPH)
(FUNCTION NC.MakeBrowserCard)
(FUNCTION NC.BringUpBrowserCard)
NIL NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Title))
(NC.AddCardType (QUOTE Search)
(QUOTE Text)
(QUOTE TEXT)
(FUNCTION NC.MakeSearchCard)
NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Title))
(NC.AddCardType (QUOTE LinkIndex)
(QUOTE Text)
(QUOTE TEXT)
(FUNCTION NC.MakeLinkIndex)
NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Title))
(NC.AddCardType (QUOTE Document)
(QUOTE Text)
(QUOTE TEXT)
(FUNCTION NC.MakeDocument)
NIL NIL NIL NIL NIL NIL NIL NIL (QUOTE Icon))
(SETQ NC.NoteCardTypeMenu)))
(NC.BringUpBrowserCard
(LAMBDA (ID Substance Region/Position) (* rht: "15-Oct-84 00:42")
(* * Given a browser Substance, open a browser window and set it up to be a NoteCard with ID.)
(PROG (Window)
(SETQ Window (NC.BringUpGraphCard ID Substance Region/Position))
(if (NOT (for AttachedWin in (ATTACHEDWINDOWS Window) thereis (WINDOWPROP AttachedWin
(QUOTE
NCLABELPAIRS))))
then (NC.MakeLinksLegendMenu Window (LISTGET (NC.RetrievePropList ID)
(QUOTE BrowserLinksLegend)))))))
)
(* Fixes of functions that call NC.MakeLink)
(DEFINEQ
(NC.GraphAddNodeFn
(LAMBDA (Graph Window) (* rht: " 9-Nov-84 12:00")
(* * Add a node, normal or link, to a graph)
(* * rht 11/9/84: Now checks result of NC.MakeLink before building link.)
(PROG (LinkLabel Link)
(RETURN (COND
((NULL (WINDOWPROP Window (QUOTE NoteCardInsertingLink)
NIL))
(DEFAULT.ADDNODEFN Graph Window))
((AND (SETQ LinkLabel (NC.AskLinkLabel Window NIL NIL T T))
(SETQ Link (NC.MakeLink Window LinkLabel)))
(NODECREATE (FASSOC (SETQ NodeID (GENSYM)
(fetch (GRAPH GRAPHNODES) of Graph)))
(NC.MakeLinkIcon Link)
(CURSORPOSITION NIL Window))))))))
(NC.MakeGlobalLink
(LAMBDA (Window LinkLabel DestinationID SourceID DisplayMode)
(* rht: " 9-Nov-84 11:59")
(* * Make a new global link from DestinationID to SourceID with label LinkLabel and display mode DisplayMode.
Window is optional if SourceID is specified, otherwise it is required.)
(* * rht 11/9/84: Now checks result of NC.MakeLink before building link.)
(PROG ((Link (NC.MakeLink Window LinkLabel DestinationID SourceID DisplayMode (QUOTE GlobalGlobal)
)))
(AND Link (NC.SetGlobalLinks SourceID (CONS Link (NC.FetchGlobalLinks SourceID))))
(RETURN Link))))
(NC.AddLinkToSketchCard
(LAMBDA (SketchWindow) (* rht: " 9-Nov-84 12:02")
(* Called from a SKETCH window to add a new NoteCard
Link Icon to the sketch)
(* * rht 11/9/84: Now checks result of NC.MakeLink before building link.)
(PROG ((Label (NC.AskLinkLabel SketchWindow NIL NIL T T))
Link)
(RETURN (AND Label (SETQ Link (NC.MakeLink SketchWindow Label NIL NIL (QUOTE Icon)))
(NC.InsertLinkInSketch Link SketchWindow))))))
(NC.InsertLinkInText
(LAMBDA (TextStream LinkLabel DestinationID SourceID DisplayMode)
(* rht: " 9-Nov-84 12:04")
(* * Add a link image object (and hence a link) to the text specified by TextStream. Link has LinkLabel, goes to
DestinationID and has DisplayMode. Returns the Link inserted.)
(* * rht 11/9/84: Now checks result of NC.MakeLink before building link.)
(PROG ((Window (WINDOW.FROM.TEDIT.THING TextStream))
(TextObject (TEXTOBJ TextStream))
Selection Link)
(RETURN (COND
((fetch (SELECTION SET) of (SETQ Selection (fetch (TEXTOBJ SEL) of TextObject)))
(AND (SETQ Link (NC.MakeLink Window LinkLabel DestinationID SourceID
DisplayMode))
(TEDIT.INSERT.OBJECT (NC.MakeLinkIcon Link)
(TEXTSTREAM TextObject)
(SELECTQ (fetch (SELECTION POINT) of Selection)
(LEFT (fetch (SELECTION CH#) of Selection))
(RIGHT (IMIN (ADD1 (fetch (TEXTOBJ TEXTLEN)
of TextObject))
(ADD1 (fetch (SELECTION CHLIM)
of Selection))))
NIL)))
Link)
(T (NC.ReportError "NC.InseretLinkInText"
"No selection set when inserting link image object.")
NIL))))))
)
(PUTPROPS RHTPATCH003 COPYRIGHT ("Xerox Corporation" 1984))
(DECLARE: DONTCOPY
(FILEMAP (NIL (786 10976 (NC.InspectorSelectionFn 796 . 2374) (NC.TEditBasedP 2376 . 3100) (
NC.CloseDatabaseFile 3102 . 5706) (NC.MakeSearchCard 5708 . 7877) (NC.MakeCardTypesList 7879 . 10314)
(NC.BringUpBrowserCard 10316 . 10974)) (11030 14654 (NC.GraphAddNodeFn 11040 . 11841) (
NC.MakeGlobalLink 11843 . 12586) (NC.AddLinkToSketchCard 12588 . 13213) (NC.InsertLinkInText 13215 .
14652)))))
STOP