(FILECREATED " 9-Dec-86 00:25:36" {QV}<NOTECARDS>1.3K>LIBRARY>NCCOLLABORATORCARD.;13 8562   

      changes to:  (FNS NCCollab.CollaboratorCardMakeFn NCCollab.MakeParamsPropList 
			NCCollab.FontSelectionFn NCCollab.FontParamInstallFn 
			NCCollab.ExtraTEditPropsSelectionFn NCCollab.InitialsSelectionFn)
		   (FILES NCCOLLABORATION)
		   (VARS NCCOLLABORATORCARDCOMS)

      previous date: "21-Nov-86 20:46:27" {QV}<NOTECARDS>1.3K>LIBRARY>NCCOLLABORATORCARD.;7)


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

(PRETTYCOMPRINT NCCOLLABORATORCARDCOMS)

(RPAQQ NCCOLLABORATORCARDCOMS ((* * This defines the Collaborator card type which inherits from 
				    Inspector.)
				 (FILES (FROM NOTECARDS)
					NCINSPECTORCARD NCCOLLABORATION)
				 (FNS NCCollab.MakeParamsPropList NCCollab.InitialsSelectionFn 
				      NCCollab.FontSelectionFn NCCollab.ExtraTEditPropsSelectionFn 
				      NCCollab.FontFetchFn NCCollab.ParamInstallFn 
				      NCCollab.FontParamInstallFn NCCollab.CurrentCollaboratorCardP 
				      NCCollab.InstallCollaboratorCardInfo)
				 (FNS NCCollab.CollaboratorCardMakeFn NCCollab.AddCollaboratorCard)
				 (P (NCCollab.AddCollaboratorCard)
				    (PUTPROP (QUOTE Collaborator)
					     (QUOTE Don'tForceFilingFlg)
					     T))))
(* * This defines the Collaborator card type which inherits from Inspector.)

(FILESLOAD (FROM NOTECARDS)
	   NCINSPECTORCARD NCCOLLABORATION)
(DEFINEQ

(NCCollab.MakeParamsPropList
  (LAMBDA (Card StartingParamsPropList)                      (* rht: "24-Nov-86 00:56")

          (* * Use Card to build a set of INSPECTORPARAMETER records with parameter names to become the card's substance.)


    (DECLARE (GLOBALVARS NC.DefaultFont))
    (LET ((NoteFile (fetch (Card NoteFile) of Card)))
         (BQUOTE (Initials , (OR (LISTGET StartingParamsPropList (QUOTE Initials))
				     (create INSPECTORPARAMETER
					       PARAMVALUE ←(QUOTE ?)
					       PARAMFETCHFN ← NIL
					       PARAMSELECTIONFN ←(FUNCTION 
						 NCCollab.InitialsSelectionFn)
					       PARAMINSTALLFN ←(FUNCTION NCCollab.ParamInstallFn)))
			     Font , (OR (LISTGET StartingParamsPropList (QUOTE Font))
					  (create INSPECTORPARAMETER
						    PARAMVALUE ←(NCCollab.FontFetchFn
						      NIL
						      (OR (NCP.NoteFileProp NoteFile
										(QUOTE Font))
							    NC.DefaultFont))
						    PARAMFETCHFN ←(FUNCTION NCCollab.FontFetchFn)
						    PARAMSELECTIONFN ←(FUNCTION 
						      NCCollab.FontSelectionFn)
						    PARAMINSTALLFN ←(FUNCTION 
						      NCCollab.FontParamInstallFn)))
			     ExtraTEditProps , (OR (LISTGET StartingParamsPropList (QUOTE
								  ExtraTEditProps))
						     (create INSPECTORPARAMETER
							       PARAMVALUE ←(NCP.NoteFileProp
								 NoteFile
								 (QUOTE ExtraTEditProps))
							       PARAMFETCHFN ← NIL
							       PARAMSELECTIONFN ←(FUNCTION 
							      NCCollab.ExtraTEditPropsSelectionFn)
							       PARAMINSTALLFN ←(FUNCTION 
								 NCCollab.ParamInstallFn))))))))

(NCCollab.InitialsSelectionFn
  (LAMBDA (Parameter Value Card)                             (* rht: "23-Nov-86 17:18")

          (* * Get a new Initials from the user.)


    (LET ((NewValue (NCP.AskUser "New initials: " NIL Value T (NC.FetchWindow Card)
				   NIL NIL T)))
         (AND (NCCollab.CurrentCollaboratorCardP Card)
		(NCCollab.ParamInstallFn Parameter NewValue Card))
     NewValue)))

(NCCollab.FontSelectionFn
  (LAMBDA (Parameter Value Card)                             (* rht: "24-Nov-86 01:01")

          (* * Just go get a font from the user.)


    (LET ((NewValue (NC.GetFontFromUser Value)))
         (if NewValue
	     then (AND (NCCollab.CurrentCollaboratorCardP Card)
			   (NCCollab.FontParamInstallFn Parameter NewValue Card))
		    (NCCollab.FontFetchFn Parameter NewValue)
	   else (QUOTE NOTCHANGED)))))

(NCCollab.ExtraTEditPropsSelectionFn
  (LAMBDA (Parameter Value Card)                             (* rht: "24-Nov-86 00:39")

          (* * Get the user's tedit props by letting her type in a TTYIN window.)


    (DECLARE (GLOBALVARS NC.AskTEditPropsWindowWidth NC.AskTEditPropsWindowHeight))
    (LET ((TTYINWindow (CREATEW (CREATEREGION LASTMOUSEX LASTMOUSEY NC.AskTEditPropsWindowWidth 
						  NC.AskTEditPropsWindowHeight)
				  "TEdit Props?"))
	  NewValue)
         (NC.MoveWindowOntoScreen TTYINWindow)
         (PRIN1 (CONCAT "Type sequence of pairs of attributes and values" (CHARACTER 13)
			    "followed by carriage return."
			    (CHARACTER 13)
			    "(Preface expressions with ctrl-Y to have them eval'ed.)"
			    (CHARACTER 13))
		  TTYINWindow)
         (SETQ NewValue (RESETFORM (TTYDISPLAYSTREAM TTYINWindow)
				       (CAR (NLSETQ (TTYIN ">> " NIL NIL (QUOTE (LISPXREAD))
								 NIL NIL Value T)))))
         (CLOSEW TTYINWindow)
         (if (NC.UserSpecifiedTEditPropsCheckFn NewValue)
	     then (AND (NCCollab.CurrentCollaboratorCardP Card)
			   (NCCollab.ParamInstallFn Parameter NewValue Card))
		    NewValue
	   else (NC.PrintMsg NIL T "List must contain an even number of items.")
		  (FLASHW PROMPTWINDOW)
		  Value))))

(NCCollab.FontFetchFn
  (LAMBDA (Parameter Value)                                  (* rht: "21-Nov-86 00:03")

          (* * Return the shorthand display of font.)


    (LIST (FONTPROP Value (QUOTE FAMILY))
	    (FONTPROP Value (QUOTE SIZE))
	    (NC.FontFaceShorthand (FONTPROP Value (QUOTE FACE))))))

(NCCollab.ParamInstallFn
  (LAMBDA (Parameter Value Card)                             (* rht: "21-Nov-86 17:31")

          (* * Stash the value on Parameter name of notefile.)


    (NC.NoteFileProp (NCP.CardNoteFile Card)
		       Parameter Value)))

(NCCollab.FontParamInstallFn
  (LAMBDA (Parameter Value Card)                             (* rht: "24-Nov-86 00:56")

          (* * Stash the value on Parameter name of notefile.)


    (NC.NoteFileProp (NCP.CardNoteFile Card)
		       Parameter
		       (OR (FONTP Value)
			     (APPLY (FUNCTION FONTCREATE)
				      Value)))))

(NCCollab.CurrentCollaboratorCardP
  (LAMBDA (Card)                                             (* rht: "21-Nov-86 01:44")

          (* * Returns non-nil if Card is the unique current collaborator card hung off the notefile.)


    (NC.SameCardP Card (NCP.NoteFileProp (fetch (Card NoteFile) of Card)
					     (QUOTE CurrentCollaboratorCard)))))

(NCCollab.InstallCollaboratorCardInfo
  (LAMBDA (Card)                                             (* rht: "21-Nov-86 17:28")

          (* * Take the parameter values from Card's substance and install them on the notefile.)


    (for ParameterPropPair on (NCP.CardSubstance Card) by (CDDR ParameterPropPair)
       do (APPLY* (fetch (INSPECTORPARAMETER PARAMINSTALLFN) of (CADR ParameterPropPair))
		      (CAR ParameterPropPair)
		      (fetch (INSPECTORPARAMETER PARAMVALUE) of (CADR ParameterPropPair))
		      Card))))
)
(DEFINEQ

(NCCollab.CollaboratorCardMakeFn
  (LAMBDA (Card Title NoDisplayFlg ParamsPropList)           (* rht: " 8-Dec-86 22:20")

          (* * Create a CollabInfo card.)


    (LET ((Result (NC.ApplySupersFn MakeFn Card Title NoDisplayFlg (NCCollab.MakeParamsPropList
				      Card ParamsPropList)))
	  (NoteFile (fetch (Card NoteFile) of Card))
	  CollabInfoBox)
         (if (NCP.ValidCardP (SETQ CollabInfoBox (NCCollab.GetCollabInfoBox NoteFile)))
	     then (NCP.FileCards Card CollabInfoBox))
     Result)))

(NCCollab.AddCollaboratorCard
  (LAMBDA NIL                                                (* rht: "21-Nov-86 01:06")

          (* * Create the CollabInfo card type.)


    (NCP.CreateCardType (QUOTE Collaborator)
			  (QUOTE Inspector)
			  (BQUOTE ((MakeFn , (FUNCTION NCCollab.CollaboratorCardMakeFn))))
			  (QUOTE ((DisplayedInMenuFlg T))))))
)
(NCCollab.AddCollaboratorCard)
(PUTPROP (QUOTE Collaborator)
	 (QUOTE Don'tForceFilingFlg)
	 T)
(PUTPROPS NCCOLLABORATORCARD COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1435 7422 (NCCollab.MakeParamsPropList 1445 . 3152) (NCCollab.InitialsSelectionFn 3154
 . 3585) (NCCollab.FontSelectionFn 3587 . 4070) (NCCollab.ExtraTEditPropsSelectionFn 4072 . 5453) (
NCCollab.FontFetchFn 5455 . 5803) (NCCollab.ParamInstallFn 5805 . 6076) (NCCollab.FontParamInstallFn 
6078 . 6445) (NCCollab.CurrentCollaboratorCardP 6447 . 6826) (NCCollab.InstallCollaboratorCardInfo 
6828 . 7420)) (7423 8377 (NCCollab.CollaboratorCardMakeFn 7433 . 7989) (NCCollab.AddCollaboratorCard 
7991 . 8375)))))
STOP