(FILECREATED " 5-Apr-87 19:58:56" {QV}<NOTECARDS>1.3K>NEXT>NCSEARCHCARD.;17 4375   

      changes to:  (FNS NC.MakeSearchCard NC.TitleSearch)

      previous date: "25-Mar-87 18:02:39" {QV}<NOTECARDS>1.3K>NEXT>NCSEARCHCARD.;16)


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

(PRETTYCOMPRINT NCSEARCHCARDCOMS)

(RPAQQ NCSEARCHCARDCOMS ((* * Stuff for the Notecards search card.)
			   (FILES NCTEXTCARD)
			   (FNS NC.MakeSearchCard NC.AddSearchCard NC.TitleSearch)
			   (P (NC.AddSearchCard))
			   (FNS NCAddStub.SearchCard)))
(* * Stuff for the Notecards search card.)

(FILESLOAD NCTEXTCARD)
(DEFINEQ

(NC.MakeSearchCard
  [LAMBDA (Card Title NoDisplayFlg)                          (* rht: "25-Mar-87 17:11")

          (* 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.)



          (* * fgh 11/17/85 Updated to handle multiple notefiles and crad objects.)



          (* * rht 4/11/86: changed to call NC.ApplySuper.)



          (* * rht 10/21/86: Now deletes card if no search string specified.)



          (* * rg 3/16/87 NC.DeleteNoteCards -> NC.DeleteNoteCard)


    (LET ((NoteFile (fetch (Card NoteFile) of Card))
	  SearchString HitCards WindowOrCard Window)
         (SPAWN.MOUSE)
         (SETQ WindowOrCard (NC.ApplySupersFn MakeFn Card (OR Title "SearchCard")
						NoDisplayFlg))
         (NC.ActivateCard Card)
         (SETQ Window (AND (WINDOWP WindowOrCard)
			       WindowOrCard))
         (SETQ SearchString (NC.AskUser "Please enter the search string: " NIL NIL T Window))
         (if (OR (EQUAL SearchString "")
		     (NOT SearchString))
	     then (NC.DeleteNoteCard Card NIL T)
		    NIL
	   else [NC.SetTitle Card (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 HitCards (NC.TitleSearch NoteFile SearchString))
			      (TEDIT.INSERT (NC.FetchSubstance Card)
					      (CONCAT " List compiled on: " (DATE)
							(CHARACTER 13)
							(CHARACTER 13))
					      1)
			      (for HitCard in HitCards unless (EQ HitCard Card)
				 do (NC.InsertLinkBeforeMarker Card HitCard 
								   NC.ListContentsLinkLabel NIL NIL))
			      (NC.PrintMsg Window NIL "Done!" (CHARACTER 13)))
		  (BLOCK 250)
		  (NC.ClearMsg Window T)
		  WindowOrCard])

(NC.AddSearchCard
  (LAMBDA NIL                                                (* fgh: "14-Nov-85 22:01")

          (* * fgh 11/14/85 Updated to ri of substance type param to add card type.)


    (NC.AddCardType (QUOTE Search)
		      (QUOTE Text)
		      (BQUOTE ((MakeFn , (FUNCTION NC.MakeSearchCard))))
		      (BQUOTE ((LinkDisplayMode Title)
				 (DisplayedInMenuFlg , T))))))

(NC.TitleSearch
  [LAMBDA (NoteFile SearchString)                            (* rht: "25-Mar-87 15:17")

          (* * Searchs all cards on NoteFile for ones with SearchString in their title.)



          (* * rht 3/25/87: Now only looks at non-deleted cards.)


    (NC.MapCards NoteFile (FUNCTION [LAMBDA (Card)
		     Card])
		 (FUNCTION (LAMBDA (Card)
		     (AND (NC.ValidCardP Card)
			    (STRPOS SearchString (NC.RetrieveTitle Card])
)
(NC.AddSearchCard)
(DEFINEQ

(NCAddStub.SearchCard
  (LAMBDA NIL                                                (* rht: " 8-Nov-86 19:20")

          (* * kirk 18Jun86 Add the Search card stub)



          (* * rht 11/7/86: Now passes down a \\FILLME// field.)


    (NC.AddCardTypeStub (QUOTE Search)
			  (QUOTE Text)
			  (QUOTE NCSEARCHCARD)
			  NIL
			  (QUOTE ((DisplayedInMenuFlg T)))
			  (QUOTE (LinkIconAttachedBitMap)))))
)
(PUTPROPS NCSEARCHCARD COPYRIGHT ("Xerox Corporation" 1986 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (640 3810 (NC.MakeSearchCard 650 . 2901) (NC.AddSearchCard 2903 . 3323) (NC.TitleSearch 
3325 . 3808)) (3830 4287 (NCAddStub.SearchCard 3840 . 4285)))))
STOP