(FILECREATED "20-Mar-87 11:44:21" {QV}<NOTECARDS>1.3K>NEXT>PMIPATCH022.;8 19890
changes to: (FNS NC.AskNoteCardType NC.NoteFileIconButtonEventFn NC.ResetNoteFileInterface
NC.SetUpNoteFileInterface NC.ChooseTopLevelCard)
(VARS PMIPATCH022COMS)
previous date: "20-Mar-87 11:05:58" {QV}<NOTECARDS>1.3K>NEXT>PMIPATCH022.;6)
(* Copyright (c) 1987 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT PMIPATCH022COMS)
(RPAQQ PMIPATCH022COMS ((* * pmi 3/20/87: Overhauled NoteFileIcon to have NewCards and ShowCards
middlebutton menus appear when buttoned DOWN, instead of after the
button comes back up. Also cleaned up card type and special card menus.)
(* * Remove NC.NoteFileMenuWhenSelectedFn and
NC.ClosedNoteFileMenuWhenSelectedFn and put in NCOBSOLETE)
(* * Changed functions in NCINTERFACE:)
(FNS NC.NoteFileIconButtonEventFn NC.ResetNoteFileInterface
NC.SetUpNoteFileInterface NC.AskNoteCardType NC.ChooseTopLevelCard)
(* * For patch file ONLY)
(VARS (NC.NoteCardTypeMenu))))
(* * pmi 3/20/87: Overhauled NoteFileIcon to have NewCards and ShowCards middlebutton menus
appear when buttoned DOWN, instead of after the button comes back up. Also cleaned up card type
and special card menus.)
(* * Remove NC.NoteFileMenuWhenSelectedFn and NC.ClosedNoteFileMenuWhenSelectedFn and put in
NCOBSOLETE)
(* * Changed functions in NCINTERFACE:)
(DEFINEQ
(NC.NoteFileIconButtonEventFn
(LAMBDA (Window) (* pmi: "20-Mar-87 11:36")
(* * Bring up NoteFile Menues)
(* * kirk 15Jul86 Adjusted title size check for change in font)
(* * rht 11/23/86: Now calls NC.NoteFileIconMiddleButtonFn to put up a menu of middle button options.)
(* * pmi 3/20/87: Overhauled to have NewCards and ShowCards middlebutton menus appear when buttoned DOWN, instead
of after the button comes back up.)
(LET (NoteFile Menu)
(if (MOUSESTATE UP)
else (TOTOPW Window)
(LET ((Menu (CAR (WINDOWPROP Window (QUOTE MENU)))))
(* title bar)
(SETQ NoteFile (WINDOWPROP Window (QUOTE NoteFile)))
(for Item in (fetch (MENU ITEMS) of Menu)
when (INSIDEP (MENUITEMREGION Item Menu)
(LASTMOUSEX Window)
(LASTMOUSEY Window))
do (RESETLST
(RESETSAVE (SHADEITEM Item Menu GRAYSHADE)
(LIST (QUOTE SHADEITEM)
Item Menu (if (NULL (NC.NoteFileOpenP
NoteFile))
then GRAYSHADE
elseif
(AND (EQ (CAR Item)
(QUOTE NewCards))
(NC.ReadOnlyNoteFileP
NoteFile))
then GRAYSHADE
else WHITESHADE)))
(if (NULL (NC.NoteFileOpenP NoteFile))
then
(* * If the NoteFile is not open, just print a message and return)
(FLASHW Window)
(NC.PrintMsg Window T (fetch (NoteFile FullFileName)
of NoteFile)
" is not an open notefile.")
(DISMISS 1000)
(NC.ClearMsg Window T)
elseif (PROCESSP (NC.NoteFileProp NoteFile (QUOTE
ProcessInProgress)))
then
(* * This will probably be overhauled with Randy G.'s concurrancy fixes)
(NC.PrintOperationInProgressMsg Window (CAR Item)
(NC.NoteFileProp
NoteFile
(QUOTE
OperationInProgress)))
NIL
else (SELECTQ (CAR Item)
(NewCards (if (NC.ReadOnlyNoteFileP NoteFile)
then (FLASHW Window)
(NC.PrintMsg Window T
"Can't create a new card in a Read-Only notefile.")
(DISMISS 1000)
(NC.ClearMsg Window T)
elseif (LASTMOUSESTATE LEFT)
then
(* For the left button, don't do anything until the
button comes back up. Otherwise, things happen too
soon.)
(UNTILMOUSESTATE UP)
(if (INSIDEP
(MENUITEMREGION
Item Menu)
(LASTMOUSEX
Window)
(LASTMOUSEY
Window))
then (
NC.MakeNoteCard
NC.DefaultCardType
NoteFile))
else (NC.MakeNoteCard NIL
NoteFile)))
(ShowCards
(if (LASTMOUSESTATE LEFT)
then
(* For the left button, don't do anything until the
button comes back up. Otherwise, things happen too
soon.)
(UNTILMOUSESTATE UP)
(if (INSIDEP (MENUITEMREGION
Item Menu)
(LASTMOUSEX
Window)
(LASTMOUSEY
Window))
then
(NC.EditNoteCard
(fetch (NoteFile
TableOfContentsCard)
of NoteFile)))
else (NC.ChooseTopLevelCard NoteFile)))
NIL)))
(RETURN)
finally (if (LASTMOUSESTATE MIDDLE)
then (NC.NoteFileIconMiddleButtonFn Window NoteFile)
elseif (NULL (WINDOWPROP Window (QUOTE BusyOperation)))
then (RESETLST (RESETSAVE (WINDOWPROP Window
(QUOTE
BusyOperation)
"Operation")
(BQUOTE (WINDOWPROP
, Window
BusyOperation NIL)
))
(NC.NoteFileOperations NoteFile))
else (NC.PrintMsg NIL NIL (CHARACTER 13)
(WINDOWPROP Window (QUOTE
BusyOperation))
" in progress. Please wait."))))))))
(NC.ResetNoteFileInterface
(LAMBDA (NoteFile) (* pmi: "20-Mar-87 10:13")
(* * Close up the control menu for a NoteFile)
(* * rht 5/1/86: Now does nothing if NC.NoteFileMenuLingerFlg is non-nil.)
(* * rht 5/6/86: Now smashes WhenSelectedFn and shades menu items if NC.NoteFileMenuLingerFlg is non-nil.)
(* * pmi 2/18/87: Now deletes "RO:" in title of NoteFile menu if NoteFile was open Read-only)
(* * pmi 3/20/87: Removed WhenSelectedFn when overhauling to have NewCards and ShowCards middlebutton menus appear
when buttoned DOWN, instead of after the button comes back up. Everything is now done in the ButtonEventFn.)
(DECLARE (GLOBALVARS NC.NoteFileMenuLingerFlg))
(LET ((Menu (fetch (NoteFile Menu) of NoteFile))
Window FullFileName)
(if Menu
then (SETQ Window (WFROMMENU Menu))
(if NC.NoteFileMenuLingerFlg
then (for Item in (fetch (MENU ITEMS) of Menu)
do (SHADEITEM Item Menu GRAYSHADE))
(* * (replace (MENU WHENSELECTEDFN) of Menu with (FUNCTION NC.ClosedNoteFileMenuWhenSelectedFn)))
(* * No longer need a WHENSELECTEDFN)
(if (NC.ReadOnlyNoteFileP NoteFile)
then (SETQ FullFileName (fetch (NoteFile FullFileName)
of NoteFile))
(replace (MENU TITLE) of Menu
with (CONCAT (FILENAMEFIELD FullFileName
(QUOTE NAME))
";"
(FILENAMEFIELD FullFileName
(QUOTE VERSION))))
(replace (MENU IMAGE) of Menu with NIL)
(* KLUDGE. Fetching the image height forces the menu
package to recompute the menu image.)
(fetch (MENU IMAGEHEIGHT) of Menu)
(AND Window (REDISPLAYW Window)))
else (WINDOWPROP Window (QUOTE NoteFile)
NIL)
(replace (NoteFile Menu) of NoteFile with NIL)
(WINDOWPROP Window (QUOTE CLOSEFN)
NIL)
(DELETEMENU Menu T))))))
(NC.SetUpNoteFileInterface
(LAMBDA (NoteFile Position InterestedWindow) (* pmi: "20-Mar-87 10:17")
(* * Create the NoteCards control menu for a NoteFile)
(* * kirk 13Jan85 Decreased the size of the NoteFile Menu)
(* * fgh 1/22/86 Fixed the ghost box size when position menu.)
(* * rht 5/6/86: Now restores the menu's WhenSelectedFn and ungrays its items if already existed.)
(* * fgh 6/27/86 Added position argument)
(* * rht 7/5/86: Now shades NewCards if readonly notefile.)
(* * fgh 7/6/86 Will now set up menu correctly even if NF is closed.)
(* * rht 7/13/86: Was ignoring the Position arg. No longer.)
(* * rht 11/20/86: Changed name from ShowBox to ShowCards.)
(* * pmi 12/12/86: Added InterestedWindow argument so that we can print a prompt to the user about placing a newly
created NoteFile menu.)
(* * pmi 3/20/87: Removed WhenSelectedFn when overhauling to have NewCards and ShowCards middlebutton menus appear
when buttoned DOWN, instead of after the button comes back up. Everything is now done in the ButtonEventFn.)
(LET ((Font (FONTCREATE (QUOTE HELVETICA)
10
(QUOTE BOLD)))
(TitleFont (FONTCREATE (QUOTE HELVETICA)
12
(QUOTE BOLD)))
NoteFileMenuWindow NoteFileMenu FullFileName) (* Main Menu)
(SETQ FullFileName (fetch (NoteFile FullFileName) of NoteFile))
(if (SETQ NoteFileMenu (fetch (NoteFile Menu) of NoteFile))
then
(* * No longer need WHENSELECTEDFN)
(* * (replace (MENU WHENSELECTEDFN) of NoteFileMenu with (if (NC.NoteFileOpenP NoteFile) then
(FUNCTION NC.NoteFileMenuWhenSelectedFn) else (FUNCTION NC.ClosedNoteFileMenuWhenSelectedFn))))
(replace (MENU TITLE) of NoteFileMenu with (CONCAT (if (
NC.ReadOnlyNoteFileP
NoteFile)
then "RO: "
else "")
(FILENAMEFIELD
FullFileName
(QUOTE NAME))
";"
(FILENAMEFIELD
FullFileName
(QUOTE VERSION)))
)
(replace (MENU IMAGE) of NoteFileMenu with NIL)
(* KLUDGE. Fetching the image height forces the menu
package to recompute the menu image.)
(fetch (MENU IMAGEHEIGHT) of NoteFileMenu)
(AND (WFROMMENU NoteFileMenu)
(REDISPLAYW (WFROMMENU NoteFileMenu)))
else
(* * Removed this menu field from following menu: (WHENSELECTEDFN ← (if (NC.NoteFileOpenP NoteFile) then
(FUNCTION NC.NoteFileMenuWhenSelectedFn) else (FUNCTION NC.ClosedNoteFileMenuWhenSelectedFn))))
(SETQ NoteFileMenu (create MENU
ITEMS ←(QUOTE ((NewCards NIL
"Create a new Text card (left button) or other card type (middle button).")
(ShowCards NIL
"Bring up one of the special cards.")))
WHENSELECTEDFN ←(FUNCTION NILL)
CENTERFLG ← T
MENUBORDERSIZE ← 1
MENUOUTLINESIZE ← 2
MENUCOLUMNS ← 2
MENUFONT ← Font
TITLE ←(CONCAT (if (NC.ReadOnlyNoteFileP
NoteFile)
then "RO: "
else "")
(FILENAMEFIELD FullFileName
(QUOTE NAME))
";"
(FILENAMEFIELD FullFileName
(QUOTE VERSION)))
ITEMHEIGHT ←(IPLUS 6 (FONTPROP Font
(QUOTE HEIGHT)))
ITEMWIDTH ←(IPLUS (STRINGWIDTH (QUOTE NewCards)
Font)
10)
MENUTITLEFONT ← TitleFont))
(* Prompt the user to place the new notefile menu)
(NC.PrintMsg InterestedWindow T "Please place the menu for notefile "
FullFileName))
(for Item in (fetch (MENU ITEMS) of NoteFileMenu)
do (SHADEITEM Item NoteFileMenu (if (NC.NoteFileOpenP NoteFile)
then WHITESHADE
else GRAYSHADE)))
(* Shade NewCards if readonly notefile.)
(if (NC.ReadOnlyNoteFileP NoteFile)
then (for Item in (fetch (MENU ITEMS) of NoteFileMenu)
when (EQ (CAR Item)
(QUOTE NewCards))
do (SHADEITEM Item NoteFileMenu GRAYSHADE)))
(if (WINDOWP (SETQ NoteFileMenuWindow (WFROMMENU NoteFileMenu)))
then (FLASHWINDOW NoteFileMenuWindow)
else (SETQ NoteFileMenuWindow (ADDMENU NoteFileMenu NIL
(OR Position (GETMENUPROP NoteFileMenu
(QUOTE
OldPosition))
(GETBOXPOSITION (fetch
(REGION WIDTH)
of (MENUREGION
NoteFileMenu))
(fetch
(REGION HEIGHT)
of (MENUREGION
NoteFileMenu)))))
))
(WINDOWPROP NoteFileMenuWindow (QUOTE NoteFile)
NoteFile)
(replace (NoteFile Menu) of NoteFile with NoteFileMenu)
(WINDOWPROP NoteFileMenuWindow (QUOTE RESHAPEFN)
(QUOTE DON'T))
(WINDOWPROP NoteFileMenuWindow (QUOTE BUTTONEVENTFN)
(FUNCTION NC.NoteFileIconButtonEventFn))
(WINDOWPROP NoteFileMenuWindow (QUOTE SHRINKFN)
(QUOTE DON'T))
(WINDOWPROP NoteFileMenuWindow (QUOTE SCROLLFN)
NIL)
(WINDOWPROP NoteFileMenuWindow (QUOTE NOSCROLLBARS)
T)
(* * Make sure default menu WhenSelectedFn is not called)
(WINDOWPROP NoteFileMenuWindow (QUOTE CURSORINFN)
NIL)
(WINDOWPROP NoteFileMenuWindow (QUOTE CURSOROUTFN)
NIL)
(WINDOWPROP NoteFileMenuWindow (QUOTE CURSORMOVEDFN)
NIL)
(* *)
(WINDOWADDPROP NoteFileMenuWindow (QUOTE CLOSEFN)
(FUNCTION (LAMBDA (Window)
(PUTMENUPROP (CAR (WINDOWPROP Window (QUOTE MENU)))
(QUOTE OldPosition)
(WINDOWPOSITION Window)))))
(NC.MoveWindowOntoScreen NoteFileMenuWindow))))
(NC.AskNoteCardType
(LAMBDA (ManinMenuOrRegion) (* pmi: "20-Mar-87 11:41")
(* Ask user to choose a note card type)
(* * rht 1/12/85: Now takes an optional Region argument dictating where to place the NoteCardTypeMenu.
If NIL, then uses MainMenu.)
(* * fgh 11/16/85 Updated to take a MainMenu arg in place of using the NC.MainMenu globalvar.)
(* * pmi 3/20/87: Changed fields of NC.NoteCardTypeMenu: CENTERFLG to T, MENUFONT to NC.MenuFont, changed title
from "Type?" to "Card Types")
(DECLARE (GLOBALVARS NC.NoteCardTypeMenu))
(PROG (W Z)
(OR (AND (BOUNDP (QUOTE NC.NoteCardTypeMenu))
(type? MENU NC.NoteCardTypeMenu))
(SETQ NC.NoteCardTypeMenu (create MENU
ITEMS ←(NC.ListOfCardTypes T)
CENTERFLG ← T
TITLE ← "Card Types"
MENUFONT ← NC.MenuFont
ITEMHEIGHT ←(IPLUS (FONTPROP
NC.MenuFont
(QUOTE HEIGHT))
1))))
(replace MENUPOSITION of NC.NoteCardTypeMenu
with (COND
((REGIONP ManinMenuOrRegion)
(CONS (fetch (REGION LEFT) of ManinMenuOrRegion)
(IPLUS (fetch (REGION BOTTOM) of ManinMenuOrRegion)
(fetch (REGION HEIGHT) of ManinMenuOrRegion)
(IMINUS (fetch (MENU IMAGEHEIGHT) of
NC.NoteCardTypeMenu)))))
(T (CONS (IPLUS (fetch (REGION LEFT) of (SETQ Z
(WINDOWPROP (WFROMMENU
ManinMenuOrRegion)
(QUOTE
REGION))))
(fetch (REGION LEFT)
of (SETQ W
(MENUITEMREGION
(CAR (NTH (fetch (MENU ITEMS)
of ManinMenuOrRegion)
1))
ManinMenuOrRegion))))
(IPLUS (fetch (REGION BOTTOM) of Z)
(fetch (REGION TOP) of W)
(IMINUS (fetch (MENU IMAGEHEIGHT) of
NC.NoteCardTypeMenu)))))
))
(RETURN (MENU NC.NoteCardTypeMenu)))))
(NC.ChooseTopLevelCard
(LAMBDA (NoteFile) (* pmi: "20-Mar-87 10:57")
(* Let the user choose one of the top level cards. Top level cards are specified by globalvar NC.TopLevelCards
which is a list of IDs)
(* * fgh 11/14/85 Updated to handle NoteFile object and per NoteFile menus.)
(* * kirk 6May86 Deleted SETQ of undeclared Menu var in the last expression)
(* * rht 11/20/86: Now looks on "SpecialCards" prop of notefile for other cards to make available from ShowCards
menu.)
(* * pmi 3/20/87: Changed fields of NC.NoteCardTypeMenu: changed MENUFONT to NC.MenuFont, added 1 to ITEMHEIGHT,
added title of "Special Cards")
(LET ((NoteFileMenu (fetch (NoteFile Menu) of NoteFile))
Menu W Z)
(SETQ Menu (create MENU
ITEMS ←(for Card in (APPEND (NC.FetchTopLevelCards NoteFile)
(NC.NoteFileProp NoteFile
(QUOTE
SpecialCards)))
when (NC.ValidCardP Card) collect
(LIST (NC.RetrieveTitle
Card)
Card))
CENTERFLG ← T
TITLE ← "Special Cards"
MENUFONT ← NC.MenuFont
ITEMHEIGHT ←(IPLUS (FONTPROP NC.MenuFont (QUOTE HEIGHT))
1)
WHENSELECTEDFN ←(FUNCTION (LAMBDA (Item Button Menu)
(NC.EditNoteCard (CADR Item))))))
(SETQ W (MENUITEMREGION (CAR (NTH (fetch (MENU ITEMS) of NoteFileMenu)
2))
NoteFileMenu))
(SETQ Z (WINDOWPROP (WFROMMENU NoteFileMenu)
(QUOTE REGION)))
(replace (MENU MENUPOSITION) of Menu with (create
POSITION
XCOORD ←(IPLUS (fetch (REGION LEFT)
of W)
(fetch (REGION LEFT)
of Z))
YCOORD ←(IPLUS
(fetch (REGION TOP) of W)
(fetch (REGION BOTTOM) of Z)
(IMINUS (fetch (MENU IMAGEHEIGHT)
of Menu)))))
(MENU Menu))))
)
(* * For patch file ONLY)
(RPAQQ NC.NoteCardTypeMenu NIL)
(PUTPROPS PMIPATCH022 COPYRIGHT ("Xerox Corporation" 1987))
(DECLARE: DONTCOPY
(FILEMAP (NIL (1468 19739 (NC.NoteFileIconButtonEventFn 1478 . 6280) (NC.ResetNoteFileInterface 6282
. 8583) (NC.SetUpNoteFileInterface 8585 . 15271) (NC.AskNoteCardType 15273 . 17525) (
NC.ChooseTopLevelCard 17527 . 19737)))))
STOP