(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP")
(FILECREATED "18-Feb-88 18:03:21" {QV}<NOTECARDS>1.3LNEXT>PMIPATCH089.;2 15347  

      changes to%:  (VARS PMIPATCH089COMS)
                    (FNS NC.BringUpTEditCard NC.BringUpGraphCard NC.BringUpSketchCard)

      previous date%: "17-Feb-88 10:49:27" {QV}<NOTECARDS>1.3LNEXT>PMIPATCH089.;1)


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

(PRETTYCOMPRINT PMIPATCH089COMS)

(RPAQQ PMIPATCH089COMS (
          
          (* ;; " pmi 2/18/88: Fixes to make bringing up Sketch cards that are already up more intelligent about redisplaying their contents.  Also, removed one of two FLASHWs from the BringUp functions.")

                        (DECLARE%: DONTCOPY (PROPS (PMIPATCH089 MAKEFILE-ENVIRONMENT)
                                                   (PMIPATCH089 FILETYPE)))
                        [DECLARE%: FIRST (P (NC.LoadFileFromDirectories 'NCTEXTCARD)
                                            (NC.LoadFileFromDirectories 'NCGRAPHCARD)
                                            (NC.LoadFileFromDirectories 'NCSKETCHCARD]
                        
          
          (* ;; "Changed in NCTEXTCARD")

                        (FNS NC.BringUpTEditCard)
                        
          
          (* ;; "Changed in NCGRAPHCARD")

                        (FNS NC.BringUpGraphCard)
                        
          
          (* ;; "Changed in NCSKETCHCARD")

                        (FNS NC.BringUpSketchCard)))



(* ;; 
" pmi 2/18/88: Fixes to make bringing up Sketch cards that are already up more intelligent about redisplaying their contents.  Also, removed one of two FLASHWs from the BringUp functions."
)

(DECLARE%: DONTCOPY 

(PUTPROPS PMIPATCH089 MAKEFILE-ENVIRONMENT (:PACKAGE "INTERLISP" :READTABLE "INTERLISP"))

(PUTPROPS PMIPATCH089 FILETYPE :BCOMPL)
)
(DECLARE%: FIRST 
(NC.LoadFileFromDirectories 'NCTEXTCARD)
(NC.LoadFileFromDirectories 'NCGRAPHCARD)
(NC.LoadFileFromDirectories 'NCSKETCHCARD)
)



(* ;; "Changed in NCTEXTCARD")

(DEFINEQ

(NC.BringUpTEditCard
  [LAMBDA (Card TextStream RegionOrPosition)                 (* ; "Edited 18-Feb-88 18:01 by pmi")
          
          (* ;; "Bring up a TEdit window for Card ID whose text stream is TextStream in Region specified by RegionOrPosition or by the user.")
          
          (* ;; "rht 9/10/85: Fixed call to NC.MakeTEditPropsList so prompt window gets fixed up before card is brought up.")
          
          (* ;; "fgh 11/13/85 Updated to handle Card objects.")
          
          (* ;; "kirk 2Dec85 Removed illegal RETURN")
          
          (* ;; "rht 4/11/86: Added Type arg to call to NC.MakeTEditMiddleMenu and changed names of menu windowprops.")
          
          (* ;; 
          "rht 5/5/86: Now calls NC.InstallTitleBarLeftMenu and NC.InstallTextTitleBarMiddleMenu.")
          
          (* ;; "rht 8/2/86: Now doesn't throw in any extra tedit props if card is a filebox.")
          
          (* ;; "rht 11/16/86: Now moves window to RegionOrPosition if already up.")
          
          (* ;; "rht&pmi 11/19/86: Now passes NoteFile arg to NC.MakeTEditPropsList.")
          
          (* ;; "rht & pmi 12/16/86: Changed the way we get TEditWindow.")
          
          (* ;; 
 "rht 1/30/87: Now calls RESTART-PROCESS-OF-TEDIT-WINDOW from Bagley's TEDIT-PROCESS-KILLER package.")
          
          (* ;; "rht 4/17/87: Now makes a prompt window before opening the window.")
          
          (* ;; "rg 11/6/87 now waits for TEdit process to get going after TEDIT call")
          
          (* ;; "pmi 2/9/88: Now checks to see if RegionOrPosition is different from current region or position of card before calling SHAPEW, which could needlessly repaint the window otherwise.")
          
          (* ;; " pmi 2/18/88: Removed one of the two FLASHWs.  Fixed up check for same position to be a little more efficient.")

    (LET (Region TEditWindow WindowRegion TEditProcess Title TextStreamDirtyFlg Type TEditProcess)
         (if (SETQ TEditWindow (NC.FetchWindow Card))
             then (TOTOPW TEditWindow)
                  [if RegionOrPosition
                      then (if (REGIONP RegionOrPosition)
                               then (if [NOT (EQUAL RegionOrPosition (WINDOWPROP TEditWindow
                                                                            'REGION]
                                        then (SHAPEW TEditWindow (NC.DetermineDisplayRegion Card 
                                                                        RegionOrPosition)))
                             elseif (POSITIONP RegionOrPosition)
                               then (SETQ WindowRegion (WINDOWPROP TEditWindow 'REGION))
                                    (if [NOT (AND (EQUAL (fetch (POSITION XCOORD) of RegionOrPosition
                                                                )
                                                         (fetch (REGION LEFT) of WindowRegion))
                                                  (EQUAL (fetch (POSITION YCOORD) of RegionOrPosition
                                                                )
                                                         (fetch (REGION BOTTOM) of WindowRegion]
                                        then (SHAPEW TEditWindow (NC.DetermineDisplayRegion Card 
                                                                        RegionOrPosition]
                  (FLASHW TEditWindow)
                  (if (SETQ TEditProcess (WINDOWPROP TEditWindow 'PROCESS))
                      then (TTY.PROCESS TEditProcess)
                    else                                     (* ; 
                                                 "Process may have been turned off.  Try to restart.")

                         (SETQ TEditProcess (RESTART-PROCESS-OF-TEDIT-WINDOW TEditWindow)))
                  TEditWindow
           else (SETQ Region (NC.DetermineDisplayRegion Card RegionOrPosition))
                (SETQ Title (NC.RetrieveTitle Card))
                (SETQ Type (NC.RetrieveType Card))
                (SETQ TEditWindow (CREATEW Region Title NIL T)) 
                                                             (* ; 
                                             "Make a prompt window 'invisibly' so it gets hooked in.")

                (NC.AttachPromptWindowOffScreen TEditWindow)
                (WINDOWADDPROP TEditWindow 'SHRINKFN (FUNCTION NC.TextCardShrinkFn))
                (NC.InstallTitleBarLeftMenu TEditWindow Type)
                (NC.InstallTextTitleBarMiddleMenu TEditWindow Type)
                (SETQ TextStreamDirtyFlg (NC.CardDirtyP Card))
                [SETQ TEditProcess (TEDIT TextStream TEditWindow NIL (NC.MakeTEditPropsList
                                                                      TEditWindow
                                                                      (NC.FileBoxP Card T)
                                                                      (fetch (Card NoteFile)
                                                                         of Card] 
                                                             (* ; "wait for process to get established.  Otherwise, the TEdit killer, called by MakeReadOnly, may fail")

                (until (TEDIT-PROCESS-P TEditProcess) do (BLOCK))
                (AND TextStreamDirtyFlg (NC.MarkCardDirty Card)))
         TEditWindow])
)



(* ;; "Changed in NCGRAPHCARD")

(DEFINEQ

(NC.BringUpGraphCard
  [LAMBDA (Card Substance RegionOrPosition)                  (* ; "Edited 18-Feb-88 17:58 by pmi")
          
          (* ;; "Given a graph (or browser) Substance, open a grapher (browser) window and set it up to be a NoteCard with ID.")
          
          (* ;; "fgh 11/14/85 Updated to handle Card object.")
          
          (* ;; "rht 5/5/86: Now calls NC.InstallTitleBarButtonEventFn, NC.InstallTitleBarLeftMenu, and NC.InstallTitleBarMiddleMenu instead of NC.SetupTitleBarMenu.")
          
          (* ;; "fgh 6/30/86 Added NC.GRAPHERCOPYBUTTONEVENTFN to SHOWGRAPH call")
          
          (* ;; "rht 11/16/86: Now moves window to RegionOrPosition if already up.")
          
          (* ;; "pmi 2/9/88: Now checks to see if RegionOrPosition is different from current region or position of card before calling SHAPEW, which could needlessly repaint the window otherwise.")
          
          (* ;; " pmi 2/18/88: Removed one of the two FLASHWs.  Fixed up check for same position to be a little more efficient.")

    (LET (Region Title GraphWindow WindowRegion IconWindow CardType)
         (COND
            ((SETQ GraphWindow (NC.FetchWindow Card))
             (AND (WINDOWP (WINDOWPROP GraphWindow 'ICONFOR))
                  (SETQ GraphWindow (EXPANDW GraphWindow)))
             (TOTOPW GraphWindow)
             [if RegionOrPosition
                 then (if (REGIONP RegionOrPosition)
                          then (if [NOT (EQUAL RegionOrPosition (WINDOWPROP GraphWindow 'REGION]
                                   then (SHAPEW GraphWindow (NC.DetermineDisplayRegion Card 
                                                                   RegionOrPosition)))
                        elseif (POSITIONP RegionOrPosition)
                          then (SETQ WindowRegion (WINDOWPROP GraphWindow 'REGION))
                               (if [NOT (AND (EQUAL (fetch (POSITION XCOORD) of RegionOrPosition)
                                                    (fetch (REGION LEFT) of WindowRegion))
                                             (EQUAL (fetch (POSITION YCOORD) of RegionOrPosition)
                                                    (fetch (REGION BOTTOM) of WindowRegion]
                                   then (SHAPEW GraphWindow (NC.DetermineDisplayRegion Card 
                                                                   RegionOrPosition]
             (FLASHW GraphWindow))
            (T (SETQ GraphWindow (SHOWGRAPH Substance (CREATEW (NC.DetermineDisplayRegion Card 
                                                                      RegionOrPosition)
                                                             (NC.RetrieveTitle Card))
                                        (FUNCTION NC.GraphCardLeftButtonFn)
                                        (FUNCTION NC.GraphCardMiddleButtonFn)
                                        NIL T (FUNCTION NC.GRAPHERCOPYBUTTONEVENTFN)))
               (SETQ CardType (NC.RetrieveType Card))
               (WINDOWADDPROP GraphWindow 'SHRINKFN (FUNCTION NC.GraphCardShrinkFn))
               (NC.InstallTitleBarButtonEventFn GraphWindow (FUNCTION NC.TitleBarButtonEventFn))
               (NC.InstallTitleBarLeftMenu GraphWindow CardType)
               (NC.InstallTitleBarMiddleMenu GraphWindow CardType)))
         GraphWindow])
)



(* ;; "Changed in NCSKETCHCARD")

(DEFINEQ

(NC.BringUpSketchCard
  [LAMBDA (Card Substance RegionOrPosition)                  (* ; "Edited 18-Feb-88 18:01 by pmi")
                                                             (* ; 
                                    "Bring up a sketch card containing substance in specified region")
          
          (* ;; "rht 2/1/85: Added windowprop to prevent sketch asking about saving changes.")
          
          (* ;; "rht 10/10/85: Now sets substance if was nil.")
          
          (* ;; "fgh 11/14/85 Updated to handle Card object.")
          
          (* ;; "rht 5/5/86: Replaced call to NC.SetupTitleBarMenu with calls to NC.InstallTitleBarButtonEventFn and NC.InstallTitleBarLeftMenu and NC.InstallSketchTitleBarMiddleMenu.")
          
          (* ;; "fgh 6/30/86 Added NC.SK.COPY.BUTTONEVENTFN to sketch window.  Made Substance to be INSURE.SKETCH of the sketch window.")
          
          (* ;; "rht 11/16/86: Now moves window to RegionOrPosition if already up.")
          
          (* ;; "rht 3/2/87: No longer passes RegionViewed and Scale to SKETCHW.CREATE.  SKETCHW.CREATE will extract them from the imageobj.")
          
          (* ;; " pmi 2/18/88: Removed one of the two FLASHWs.  Fixed up check for same position to be a little more efficient.")

    (LET ([SketchName (AND (NULL Substance)
                           (MKATOM (fetch (Card UID) of Card]
          WindowRegion Title SketchViewer CardType)
         [COND
            [(SETQ SketchViewer (NC.FetchWindow Card))
             (TOTOPW SketchViewer)
             [if RegionOrPosition
                 then (if (REGIONP RegionOrPosition)
                          then (if [NOT (EQUAL RegionOrPosition (WINDOWPROP SketchViewer 'REGION]
                                   then (SHAPEW SketchViewer (NC.DetermineDisplayRegion Card 
                                                                    RegionOrPosition)))
                        elseif (POSITIONP RegionOrPosition)
                          then (SETQ WindowRegion (WINDOWPROP SketchViewer 'REGION))
                               (if [NOT (AND (EQUAL (fetch (POSITION XCOORD) of RegionOrPosition)
                                                    (fetch (REGION LEFT) of WindowRegion))
                                             (EQUAL (fetch (POSITION YCOORD) of RegionOrPosition)
                                                    (fetch (REGION BOTTOM) of WindowRegion]
                                   then (SHAPEW SketchViewer (NC.DetermineDisplayRegion Card 
                                                                    RegionOrPosition]
             (FLASHW SketchViewer)
             (TTY.PROCESS (WINDOWPROP SketchViewer 'PROCESS]
            (T (SETQ CardType (NC.RetrieveType Card))
               [SETQ SketchViewer (SKETCHW.CREATE (OR Substance SketchName)
                                         NIL
                                         (NC.DetermineDisplayRegion Card RegionOrPosition)
                                         (NC.RetrieveTitle Card)
                                         NIL
                                         (SKETCH.COMMANDMENU (NC.GetCardTypeField 
                                                                    MiddleButtonMenuItems CardType]
               (WINDOWPROP SketchViewer 'DONTQUERYCHANGES T)
               (WINDOWPROP SketchViewer 'COPYBUTTONEVENTFN (FUNCTION NC.SK.COPY.BUTTONEVENTFN))
               (WINDOWPROP SketchViewer 'SHRINKFN (FUNCTION NC.SketchCardShrinkFn))
               (NC.InstallTitleBarButtonEventFn SketchViewer (FUNCTION NC.SketchTitleBarButtonEventFn
                                                              ))
               (NC.InstallTitleBarLeftMenu SketchViewer CardType)
               (OR Substance (NC.SetSubstance Card (INSURE.SKETCH SketchViewer]
         SketchViewer])
)
(PUTPROPS PMIPATCH089 COPYRIGHT ("Xerox Corporation" 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (2100 7712 (NC.BringUpTEditCard 2110 . 7710)) (7753 11228 (NC.BringUpGraphCard 7763 . 
11226)) (11270 15264 (NC.BringUpSketchCard 11280 . 15262)))))
STOP