NoteCards Release 12/11/86 Announcement Created: 12/10/86 Updated: 12/11/86 File: {QV}1.3k>Doc>ReleaseAnnouncement86-12-11.ted There is a new NoteCards sysout and loadup on {qv}1.3k> (notecards.sysout and notecards.dcom, respectively). Highlights include: individual cards as well as card types can be marked as not needing filing; a WhenSavedFn can be attached to card types; cards can be added to the "ShowCards" (formerly "Show Box") menu on the NoteFile icon; expressions to be run at open and close time can be attached to a NoteFile using the new OpenEvents card; items can be added to the new NoteFile icon middle button menu; revised Programmer's Interface error handling facility; fixes to Cross-file links; link dashing on browser hardcopy; miscellaneous fixes including the user interface. Note: We also would like to offer a few words of advice about the Compactor. Compact-in-place is not totally reliable, so we suggest making a backup copy of your NoteFile before compacting. If you do run into trouble while compacting and have to "up-arrow" out of a break, then you will should either Inspect & Repair the NoteFile or go back to your backup copy. The Compactor will usually not leave your NoteFile in a consistent state if it is interrupted. If you do get a break, please send us a pointer to the notefile (preferably on a PARC fileserver) so we can try compacting it ourselves. Programmer's Interface Changes: There are several important changes to the Programmer's Interface: f We now provide a WhenSavedFn hook for card types. If you need to have certain functionality happen just before a card's contents is saved to the notefile, then make a function be the value of the WhenSavedFn prop of the card type atom. It will be called whenever a card's contents is saved. f We have made it possible to turn off forced filing on either the card type level or the card level. To define all cards of a type as not needing filing, you should put the property "Don'tForceFilingFlg" with the value of T on the card type atom. To define an individual card as not needing filing, use this function: (NCP.MarkAsNotNeedingFiling ) Mark as not needing filing. This is done by setting the card's Don'tRequireFilingFlg prop to T. f We have changed the behavior of the "ShowBox" NoteFile menu item. Now users may add their own card entries to this menu. We also renamed "ShowBox" to be "ShowCards." New functions for the Programmer's Interface: (NCP.AddSpecialCard ) Adds to the list of special cards appearing in the middle button menu on the ShowCards option of the notefile icon (for the notefile containing ). (NCP.RemoveSpecialCard ) Removes from the list of special cards appearing in the middle button menu on the ShowCards option of the notefile icon (for the notefile containing ). f We have made available the functionality of the OpenEvents cards library package in the programmer's interface. From the programmer's interface documentation: One can associate functionality with the opening and closing of notefiles using two special List cards registered under the names OpenEventsCard and CloseEventsCard. Their substances each consist of a list of lisp s-expressions to be evaluated at notefile open and close time respectively. Thus, to cause a new expression to be evaluated at notefile open time, one cons's (or appends) the expression to the substance of OpenEventsCard (either via DEdit or NCP.CardSubstance). (NCP.GetOpenEventsCard ) Returns the open events card for creating a new one if necessary. Thus, this is basically just (NCP.LookupCardByName 'OpenEventsCard ), except that a new List card is created and registered under the name OpenEventsCard if none exists. (NCP.GetCloseEventsCard ) Returns the close events card for creating a new one if necessary. Thus, this is basically just (NCP.LookupCardByName 'CloseEventsCard ), except that a new List card is created and registered under the name CloseEventsCard if none exists. f We have changed the action of the NoteFile icon title bar middle button. Now it brings up a menu consisting of the item "Full File Name" which does the old action of displaying the full name of the NoteFile. The user can attach items to this menu from the programmer's interface. It is anticipated that creators of packages that "configure" a notefile when it is opened will put a call to NCP.AddNoteFileIconMiddleButtonItem on the open events card. Relevant new functions are: (NCP.AddNoteFileIconMiddleButtonItems ) Adds list of menu items to the middle button menu for the main menu icon corresponding to . f In addition to these key changes, we have provided the following new Programmer's Interface functions and abilities: (NCP.NoteFileIconWindow ) Returns the main menu icon window, if any, for given . We have implemented the ability to stash extra tedit props on the notefile user data. If there are any such props, then they supercede the global parameters tedit props. (Fixes request #'s 132, 208) We have implemented a new programmer's interface error handling functionality. Many people have requested better error handling in the programmer's interface. We implemented an amalgam of everyone's suggestions. Your comments are welcome. From the documentation: Error breaks/messages under the programmer's interface: When the programmer's interface detects an error, it calls NCP.ReportError or NCP.ReportWarning depending on the severity of the error. Normally the former causes a break while the latter merely prints a message. However, this behavior can be changed using the global var NCP.ErrorBrkWhenFlg, a litatom whose value should be one of NIL, ALWAYS or NEVER (default is NIL). New definitions of these Programmer's Interface functions: (NCP.ReportError ) Forces a break using BREAK1 unless the value of NCP.ErrorBrkWhenFlg is the litatom NEVER. If so, then simply prints a message and continues. (NCP.ReportWarning ) Prints the given warning message unless the value of NCP.ErrorBrkWhenFlg is the litatom ALWAYS. If so, then forces a break with BREAK1. (Fixes request #215) There are now two new Programmer's Interface functions for adding items to the menus of cards with visible windows: (NCP.AddLeftButtonTitleBarMenuItems ) Adds the given menu items to the left button title bar menu of . should be the window of a visible notecard. (NCP.AddMiddleButtonTitleBarMenuItems ) Adds the given menu items to the middle button title bar menu of . should be the window of a visible notecard. We have defined a new function for dealing with menus on card window title bars: (NCP.SetUpTitleBar ) This function is usually called from the MakeFn for those card types that inherit from a card type that doesn't display in a window, like the List or NoteCard type. It creates and installs left and middle menus using the menu items found in 's definition. It also installs a default button event fn on the window. Cross-file Links Fixes: We fixed a strange race condition where following a Cross-file link would open the destination notefile and the destination card would be found before its title had been cached. This resulted in the user being prompted for a title for the card. (Request # 308) This is the "vanishing" link icon problem, when the title of a cross file link card changes. We also ripped the version number off of the file name hint stored in crossfile link cards. We also provided an attached bitmap for crossfile link cards. (Request #312) Cross-file links now check for existing links before deleting the cross-file link "card," instead of deleting the card when any link to it is deleted. (Request #313) Cross-file link cards no longer end up in the To-Be-Filed filebox after running Inspect&Repair. Miscellaneous Fixes: Fixed bug #331: Phase 3 of Inspect & Repair tried to do NC.GetLinks for cards known to have bad links. Fixed bug #330: Deleting destination card of crossfile link causes break when link is followed. Fixed bug #323: Moving links caused orphan filing. Fixed bug #321: Clicking outside of Link type menu should abort. Fixed bug #318: Prop values that are lists no longer get broken out by prop list editor. Fixed bug #314: Filing in closed box allows duplicates. Fixed bug #310: Can't get link dashing to show up on browser hardcopy. We just took DASHING off the value of a GRAPHER global var called ScalableLinkParameters. Fixed bug#s 288 and 146: Delete NoteFile should delete name from menu of known files, and should delete the NoteFile's menu. Also fixes unreported problem with selecting Delete NoteFile, and then choosing "Other NoteFile" for the NoteFile to delete. Fixed bug #278: Checkpointing a closed NoteFile no longer causes a break. Fixed bug #221: Deleting an open NoteFile now aborts. Fixed bug #s 220, 155, and 174: Various problems with NoteFile titlebar menu. Now have two menus for NoteFile icon titlebar left button menu: one if NoteFile is open, and one if NoteFile is closed. Menus come up much faster. Also added Inspect&Repair to menu for open NoteFile. Fixed bug #212: NCP.OpenCard should move open card. Both NCP.OpenCard and NCP.DisplayCard if passed Region/Position args, will now cause the card to be moved to that position even if it is currently displayed. Fixed bug #205: Select cards prompt should indicate need for SHIFT. Fixed bug #171: Typing when prompted for file name for new File card now aborts instead of bugging you for a file. Fixed bug #145: Menu of known NoteFiles should include version numbers of file names. Fixed bug #113: Gives prompt windows a minimum size that is larger (300 pixels). Fixed apparent errors with the predicates detecting if notefiles are open or not. Fixed card deletion yet again. There was still a call to NC.GetNoteCard in NC.SmartDeleteLinks. ("Smart" is hardly the word...) This is now avoided if card is being deleted. Fixed unreported problem in document card MakeFn causing new Document cards to have wrong size. Fixed two session parameters problems: 1. Fixed session parameters DefaultLinkIconxxx so that cards are NOT immediately updated. 2. Changed default setting for the ShowNoteFileOnCards session parameter. Fixed NC.AbortSession Lyric bug. This changed the call to SETFILEINFO to take stream (which it should be anyway) instead of a filename. Fixed NS print bug. Two-sided NS printing was broken, now fixed. Fixed unreported problem with compact in place on never before opened notefiles. (($$( ($$ (  TIMESROMAN  TIMESROMAN TIMESROMAN  HELVETICA  TIMESROMAN  HELVETICA MODERN  HELVETICA ?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8)) GACHA GACHA  TIMESROMAN  TIMESROMAN        ?    w   6    S      C  (  A %h C  a  ,   !   # #J  x   =q u  #A       6%'    r   9y ;{  P   -F              o        f   ^   1   @   Z  7     |  |   I   5   L    2    C   w   U   Q  Q     _   %   [  K    f     -   E   *vz