(FILECREATED "12-Jun-86 18:26:00" {QV}<NOTECARDS>1.3K>RHTPATCH050.;1 6152 changes to: (VARS RHTPATCH050COMS) (FNS NC.BuildCardInspectorMenu)) (* Copyright (c) 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT RHTPATCH050COMS) (RPAQQ RHTPATCH050COMS ((* * Change to NCREPAIR) (FNS NC.BuildCardInspectorMenu))) (* * Change to NCREPAIR) (DEFINEQ (NC.BuildCardInspectorMenu (LAMBDA (Cards BadNewsList NoteFile MessageWin) (* rht: "12-Jun-86 18:25") (* * Build a list of menu containing all valid cards giving ID #s and indicators as to problems, if any. ID #s can be invoked causing a window/menu containing info on the card to be brought up.) (* * rht 12/8/85: Modified to reflect new card and notefile object formats.) (* * rht 6/12/86: Fixed loop that does SHADEITEMS.) (LET (MenuWindows TotalMenus FirstWindow FirstWindowSize AttachedMenu) (if (NOT (WINDOWP MessageWin)) then (NC.ReportError "NC.BuildCardInspectorMenu" (CONCAT "Arg not window: " MessageWin))) (NC.SortCardsBySlotNums Cards) (SETQ TotalMenus (ADD1 (QUOTIENT (SUB1 (LENGTH Cards)) NC.CardsPerMenuLimit))) (* Build the attached menu for global menu operations including moving to next or previous page if necessary.) (SETQ AttachedMenu (create MENU ITEMS ←(BQUOTE ((Abort (QUOTE Abort) "Abort the repair process, throwing away all changes.") (Done (QUOTE Done) "Integrate changes (i.e. checkpoint notefile) and continue repair.") (Search (QUOTE Search) "Find IDs for cards with titles containing search string.") ,@(if (GEQ TotalMenus 2) then (QUOTE ((Previous% Page (QUOTE Previous% Page) "Move to menu for previous page of cards.") (Next% Page (QUOTE Next% Page) "Move to menu for previous page of cards.") (First% Page (QUOTE First% Page) "Move to menu for first page of cards."))))) ) CENTERFLG ← T MENUCOLUMNS ← 1 WHENSELECTEDFN ←(FUNCTION NC.CardInspectorAttachedMenuWhenSelectedFn) MENUFONT ← NC.ScavengerAttachedMenuFont)) (* Build the menus and attachments and store on message window prop.) (WINDOWPROP MessageWin (QUOTE MENUWINDOWS) (SETQ MenuWindows (for MenuNum from 1 to TotalMenus bind (RestOfCards ← Cards) Menu Window Items AttachedWindow collect (SETQ Menu (create MENU ITEMS ←(SETQ Items (for old RestOfCards on RestOfCards as i from 1 to NC.CardsPerMenuLimit bind Card ProblemIdentifierAtom TitleString collect (* * Build string to display in menu entry by concat'ing together the card's slot num with the first few characters of card's title with problem identification chars.) (SETQ Card (CAR RestOfCards)) (SETQ ProblemIdentifierAtom (CADDR (FASSOC Card BadNewsList))) (SETQ TitleString (CONCAT (NC.FetchSlotNum Card) ": " (NC.ShaveTitleString ( NC.FetchTitleFromScavengerInfo Card)))) (LIST (if ProblemIdentifierAtom then (CONCAT TitleString "|" ProblemIdentifierAtom) else TitleString) Card))) TITLE ←(CONCAT "Card inspector: Page " MenuNum " of " TotalMenus) WHENSELECTEDFN ←(FUNCTION NC.CardInspectorMenuWhenSelectedFn) MENUROWS ←(MIN 30 (LENGTH Items)))) (SETQ Window (ADDMENU Menu NIL NC.OffScreenPosition)) (* Shade the troublesome items in this menu.) (for News in BadNewsList do (LET* ((BadCard (CAR News)) (Item (for Item in Items when (NC.SameCardP BadCard (CADR Item)) do (RETURN Item)))) (if Item then (SHADEITEM Item Menu NC.LightShade Window)))) (WINDOWPROP Window (QUOTE NOTEFILE) NoteFile) (* Rig so that lines through deleted entries will be drawn whenever menu is redisplayed.) (WINDOWADDPROP Window (QUOTE REPAINTFN) (FUNCTION NC.CardInspectorRepaintFn)) (* This makes closing the cards inspector menu same as selecting "abort" from the attached menu. That is, abort the repair process.) (WINDOWADDPROP Window (QUOTE CLOSEFN) (FUNCTION NC.CardInspectorCloseFn) (QUOTE FIRST)) (ATTACHWINDOW (ADDMENU AttachedMenu NIL NC.OffScreenPosition) Window (QUOTE RIGHT) (QUOTE TOP)) Window))) (* Attach the first menu with its attached operations menu to message window's lower left edge.) (SETQ FirstWindow (CAR MenuWindows)) (ATTACHWINDOW FirstWindow MessageWin (QUOTE BOTTOM) (QUOTE LEFT)) (REDISPLAYW FirstWindow)))) ) (PUTPROPS RHTPATCH050 COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (390 6070 (NC.BuildCardInspectorMenu 400 . 6068))))) STOP