(FILECREATED "13-Mar-85 01:05:11" {PHYLUM}<NOTECARDS>RELEASE1.2>NCFILEBOXCARD.;3 5831   

      changes to:  (VARS NCFILEBOXCARDCOMS)
		   (FNS NC.AddFileBoxCard)

      previous date: "15-Feb-85 19:31:47" {PHYLUM}<NOTECARDS>RELEASE1.2>NCFILEBOXCARD.;2)


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

(PRETTYCOMPRINT NCFILEBOXCARDCOMS)

(RPAQQ NCFILEBOXCARDCOMS ((E (SETQ NC.SystemDate (DATE))
			     (UNMARKASCHANGED (QUOTE NC.SystemDate)
					      (QUOTE VARS)))
			  (VARS NC.SystemDate)
			  (P (UNMARKASCHANGED (QUOTE NC.SystemDate)
					      (QUOTE VARS)))
			  (FILES NCTEXTSUBSTANCE NCTEXTCARD)
			  (FNS NC.ContentsCardP NC.MakeContentsCard NC.FileBoxCollectChildren)
			  (FNS NC.AddFileBoxCard)
			  (P (NC.AddFileBoxCard))))

(RPAQQ NC.SystemDate "13-Mar-85 01:05:12")
(UNMARKASCHANGED (QUOTE NC.SystemDate)
		 (QUOTE VARS))
(FILESLOAD NCTEXTSUBSTANCE NCTEXTCARD)
(DEFINEQ

(NC.ContentsCardP
  (LAMBDA (ID DatabaseStream)                                (* fgh: " 7-Nov-84 21:23")
                                                             (* Return T if ID is a CONTENTS card.)
    (OR (EQ (QUOTE FileBox)
	    (NC.RetrieveType ID (OR DatabaseStream PSA.Database)))
	(PROGN (NC.PrintMsg NIL T ID " is not a FileBox.  Please choose again." (CHARACTER 13))
	       NIL))))

(NC.MakeContentsCard
  (LAMBDA (ID Title DontDisplay)                             (* rht: " 8-Feb-85 10:48")
                                                             (* Make up a blank contents card, hook it to the user 
							     specified parent contents cards, and display it.)

          (* * rht 12/2/84: In DontDisplay case, changed to return ID rather than TextStream.)



          (* * rht 12/8/84: Massive shaving. Took out code to force filing now (at creation time))


    (PROG (Window TextStream (Spacer (CONCAT (CHARACTER 13)
					     (CHARACTER 13))))
          (SETQ TextStream (OPENTEXTSTREAM ""))
          (COND
	    (NC.MarkersInFileBoxesFlg (TEDIT.INSERT.OBJECT (NC.MakePlaceMarker NC.SubBoxMarkerLabel)
							   TextStream 1)
				      (TEDIT.INSERT TextStream Spacer 2)
				      (TEDIT.INSERT.OBJECT (NC.MakePlaceMarker 
									  NC.FiledCardMarkerLabel)
							   TextStream 4)
				      (TEDIT.INSERT TextStream Spacer 5))
	    (T (TEDIT.INSERT TextStream Spacer 1)))
          (NC.SetSubstance ID TextStream)
          (NC.SetRegion ID (CREATEREGION 0 0 (NC.DefaultCardWidth ID)
					 (NC.DefaultCardHeight ID)))
          (COND
	    (DontDisplay (RETURN ID)))
          (SETQ Window (CREATEW (NC.DetermineDisplayRegion ID NIL)
				(NC.SetTitle ID (OR Title "Untitled"))))
          (WINDOWPROP Window (QUOTE NoteCardsLeftButtonMenu)
		      (NC.MakeTEditLeftMenu (NC.FetchType ID)))
          (WINDOWPROP Window (QUOTE NoteCardsMiddleButtonMenu)
		      (NC.MakeTEditMiddleMenu))              (* Display the card)
          (WINDOWPROP Window (QUOTE SHRINKFN)
		      (FUNCTION NC.ShrinkFn))
          (TEDIT TextStream Window NIL (LIST (QUOTE FONT)
					     NC.DefaultFont
					     (QUOTE TITLEMENUFN)
					     (FUNCTION NC.TEditMenuFn)))
          (until (WINDOWPROP Window (QUOTE TEXTSTREAM)) do (BLOCK))
          (NC.ActivateCard ID)
          (AND (GETPROMPTWINDOW Window NIL NIL T)
	       (PROG1 (DISMISS 1000)
		      (NC.ClearMsg Window T)))
          (RETURN Window))))

(NC.FileBoxCollectChildren
  (LAMBDA (WindowOrTextStream ID NewChildren NoDisplayFlg)   (* rht: "15-Feb-85 15:53")

          (* * Ask user for new children (either cards or fileboxes) for this filebox. Check to make sure that no 
	  circularities are introduced. This code is sort of the inverse of the NC.AddParents code and thus looks quite 
	  similar.)



          (* * rht 10/29/84: Added NoDisplayFlg to prevent error message when no appropriate elements exist.
	  Also now returns ID if at least one child was added, NIL otherwise.)


    (PROG (Window ReturnVal)
          (COND
	    (WindowOrTextStream (SETQ Window (WINDOW.FROM.TEDIT.THING WindowOrTextStream))))
          (OR ID (SETQ ID (NC.IDFromWindow Window)))
          (OR NewChildren (SETQ NewChildren (NC.SelectNoteCards NIL NIL 
								NC.SelectingFileBoxChildrenMenu ID 
								NIL " Please select new children.")))
          (COND
	    ((NULL (AND NewChildren ID (for NewChildID in NewChildren bind OneHook
					  when (NC.MakeChildLink NewChildID ID Window)
					  do (SETQ OneHook T) finally (RETURN OneHook))))
	      (OR NoDisplayFlg (NC.PrintMsg Window NIL 
					    "No appropriate NoteCards or FileBoxes chosen."
					    (CHARACTER 13)
					    "Hence no children added."
					    (CHARACTER 13)))
	      (SETQ ReturnVal NIL))
	    (T (SETQ ReturnVal ID)))
          (AND Window (GETPROMPTWINDOW Window NIL NIL T)
	       (PROG1 (DISMISS 1000)
		      (NC.ClearMsg Window T)))
          (RETURN ReturnVal))))
)
(DEFINEQ

(NC.AddFileBoxCard
  (LAMBDA NIL                                                (* fgh: "15-Feb-85 13:18")
    (NC.AddCardType (QUOTE FileBox)
		    (QUOTE Text)
		    (QUOTE TEXT)
		    (BQUOTE ((MakeCardFn , (FUNCTION NC.MakeContentsCard))))
		    (BQUOTE ((LinkDisplayMode Title)
			     (CardDefaultHeight 200)
			     (CardDefaultWidth 335)
			     (CardDisplayedInMenuFlg , T))))))
)
(NC.AddFileBoxCard)
(PUTPROPS NCFILEBOXCARD COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (915 5291 (NC.ContentsCardP 925 . 1367) (NC.MakeContentsCard 1369 . 3631) (
NC.FileBoxCollectChildren 3633 . 5289)) (5292 5727 (NC.AddFileBoxCard 5302 . 5725)))))
STOP