(FILECREATED " 8-Jun-86 23:40:25" {QV}<NOTECARDS>1.3K>FGHPATCH071.;3 8813
changes to: (VARS FGHPATCH071COMS)
(FNS NC.AddCardType)
previous date: " 8-Jun-86 23:18:23" {QV}<NOTECARDS>1.3K>FGHPATCH071.;1)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT FGHPATCH071COMS)
(RPAQQ FGHPATCH071COMS ((* * Fix to bug %#77 by removing designate sources/ delete sources from
system)
(* * FROM NCTYPESMECH)
(FNS NC.AddCardType)
(VARS (NC.DefaultLeftButtonMenuItems
(BQUOTE ((Edit% Property% List (FUNCTION NC.EditProperties)
"Brings up an editor for the property list of this card.")
(Show% Links (FUNCTION NC.ShowLinks)
"Brings up a list of the links to and from this card.")
(Show% Info (FUNCTION NC.ShowInfo)
"Brings up a window containing special information about this card."
(SUBITEMS (Indicate% NoteFile
(FUNCTION NC.AttachNoteFileName)
"Shows the name of this card's NoteFile.")))
(Designate% FileBoxes
(FUNCTION NC.AddParents)
"File this note card in one or more file boxes."
(SUBITEMS (Unfile% from% FileBoxes
(FUNCTION NC.UnfileNoteCard)
"Remove this card from one or more of its file boxes.")))
(Assign% Title (FUNCTION NC.AssignTitle)
"Assigns a (new) title to this note card.")
(Title/FileBoxes (FUNCTION (LAMBDA (TextStream)
(NC.AssignTitle
TextStream)
(NC.AddParents
TextStream)))
"Do both assigning of title and filing in fileboxes.")
, NC.LocalInsertLinkMenuItem
(Close% and% Save (FUNCTION CLOSEW)
"Close this note card after saving it in the NoteFile."
(SUBITEMS (Close% and% Save
(FUNCTION CLOSEW)
"Close this note card after saving it in the NoteFile.")
(Close% w/o% Saving
(FUNCTION
NC.QuitWithoutSaving)
"Close this note card without saving any changes made since the last Save.")
(Save% in% NoteFile
(FUNCTION NC.CardSaveFn)
"Save this card in the NoteFile but don't close the card.")
(Delete% Card
(FUNCTION NC.DeleteNoteCards)
"Permenantly delete this card from the NoteFile.")))))
))
(* * For this patch file only. Do not put in system.)
(P (NC.AddCardType (QUOTE NoteCard)
NIL
(BQUOTE ((CopyFn ,
(FUNCTION
(LAMBDA (Card ToStream FromStream
Length)
(* Copy a card's substance
using copybytes.)
(LET* ((FromStartPtr
(GETFILEPTR
FromStream))
(FromEndPtr
(PLUS Length
FromStartPtr)))
(COPYBYTES FromStream
ToStream
FromStartPtr
FromEndPtr)
T))))
(CollectLinksFn , (FUNCTION NILL))))
(BQUOTE ((LinkDisplayMode , (create LINKDISPLAYMODE
ATTACHBITMAPFLG ← T))
(DefaultWidth 100)
(DefaultHeight 100)
(LinkIconAttachedBitMap , NC.TypelessIcon)
(LeftButtonMenuItems ,
NC.DefaultLeftButtonMenuItems)
(MiddleButtonMenuItems ,
NC.DefaultMiddleButtonMenuItems)))))
))
(* * Fix to bug %#77 by removing designate sources/ delete sources from system)
(* * FROM NCTYPESMECH)
(DEFINEQ
(NC.AddCardType
(LAMBDA (TypeName SuperType FnsAssocList VarsAssocList) (* fgh: " 8-Jun-86 23:35")
(* * Create a new note card type and link it into the card type heirarchy.)
(* * fgh 1/31/86 Updated to handle card type hash table.)
(* * fgh 2/3/86 Updated to do inheritance at definition time rather than at access time.)
(LET (NewType (MainFieldNames (CONSTANT (for FieldName in (RECORDFIELDNAMES (QUOTE
NoteCardType))
when (NEQ (QUOTE InheritedFlg)
(SUBATOM FieldName -12 -1))
collect FieldName))))
(COND
((NULL TypeName)
(NC.ReportError "NC.AddCardType" "Illegal type name: NIL"))
((AND (NEQ TypeName (QUOTE NoteCard))
(NULL (NC.CardTypeRecord SuperType)))
(NC.ReportError "NC.AddCardType" (CONCAT "Unknown type in super type field: "
SuperType))))
(* * Create new NoteCardType)
(SETQ NewType (create NoteCardType
TypeName ← TypeName
SuperType ← SuperType))
(for AssocPair in (APPEND FnsAssocList VarsAssocList) when (FMEMB (CAR AssocPair)
MainFieldNames)
do
(* * Set the proper field to the given value)
(RECORDACCESS (BQUOTE (NoteCardType , (CAR AssocPair)))
NewType NIL (QUOTE replace)
(CADR AssocPair))
(* * Set the corresponding InheritedFlg to indicate that this field is not inherited.)
(RECORDACCESS (BQUOTE (NoteCardType , (PACK* (CAR AssocPair)
(QUOTE InheritedFlg))))
NewType NIL (QUOTE replace)
NIL))
(* * Inherit any NIL fields from super type record.)
(AND SuperType (NC.InheritFieldsFromSuperType NewType))
(* * Propagate any changes downward to the subtypes of this type.)
(NC.PropagateCardTypeFieldsDownward NewType)
(* * Stash the new card type record, reset the menu and then return.)
(PUTHASH TypeName NewType NC.CardTypes)
(SETQ NC.NoteCardTypeMenu)
NewType)))
)
(RPAQ NC.DefaultLeftButtonMenuItems (BQUOTE ((Edit% Property% List (FUNCTION NC.EditProperties)
"Brings up an editor for the property list of this card.")
(Show% Links (FUNCTION NC.ShowLinks)
"Brings up a list of the links to and from this card.")
(Show% Info (FUNCTION NC.ShowInfo)
"Brings up a window containing special information about this card."
(SUBITEMS (Indicate% NoteFile
(FUNCTION
NC.AttachNoteFileName)
"Shows the name of this card's NoteFile.")))
(Designate% FileBoxes
(FUNCTION NC.AddParents)
"File this note card in one or more file boxes."
(SUBITEMS (Unfile% from% FileBoxes
(FUNCTION NC.UnfileNoteCard)
"Remove this card from one or more of its file boxes.")))
(Assign% Title (FUNCTION NC.AssignTitle)
"Assigns a (new) title to this note card.")
(Title/FileBoxes (FUNCTION (LAMBDA (TextStream)
(NC.AssignTitle
TextStream)
(NC.AddParents
TextStream)))
"Do both assigning of title and filing in fileboxes.")
, NC.LocalInsertLinkMenuItem
(Close% and% Save
(FUNCTION CLOSEW)
"Close this note card after saving it in the NoteFile."
(SUBITEMS (Close% and% Save (FUNCTION CLOSEW)
"Close this note card after saving it in the NoteFile.")
(Close% w/o% Saving
(FUNCTION NC.QuitWithoutSaving)
"Close this note card without saving any changes made since the last Save.")
(Save% in% NoteFile
(FUNCTION NC.CardSaveFn)
"Save this card in the NoteFile but don't close the card.")
(Delete% Card (FUNCTION NC.DeleteNoteCards)
"Permenantly delete this card from the NoteFile.")))))
)
(* * For this patch file only. Do not put in system.)
(NC.AddCardType (QUOTE NoteCard)
NIL
(BQUOTE ((CopyFn , (FUNCTION (LAMBDA (Card ToStream FromStream Length)
(* Copy a card's substance using copybytes.)
(LET* ((FromStartPtr (GETFILEPTR FromStream))
(FromEndPtr (PLUS Length FromStartPtr)))
(COPYBYTES FromStream ToStream
FromStartPtr FromEndPtr)
T))))
(CollectLinksFn , (FUNCTION NILL))))
(BQUOTE ((LinkDisplayMode , (create LINKDISPLAYMODE ATTACHBITMAPFLG ← T))
(DefaultWidth 100)
(DefaultHeight 100)
(LinkIconAttachedBitMap , NC.TypelessIcon)
(LeftButtonMenuItems , NC.DefaultLeftButtonMenuItems)
(MiddleButtonMenuItems , NC.DefaultMiddleButtonMenuItems))))
(PUTPROPS FGHPATCH071 COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (3673 5954 (NC.AddCardType 3683 . 5952)))))
STOP