*** Welcome to The Aurora Editor version 2.1! *** (C) Copyright 1993-1995 nuText Systems All rights reserved worldwide. What's New: ÄÄÄÄÄÄÄÄÄÄÄ This file briefly highlights some of the new features available in Aurora version 2.1. For more detailed information, see the User's Guide, the AML Language Reference, and the AML Function Reference. Aurora version 2.1 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Aurora now features a new 'Interactive Configuration', in addition to the standard .AML configuration files. Dialog boxes have been provided for changing most configuration settings interactively within an edit session. The new configuration dialog boxes are accessible through the 'Configuration and Setup' item on the 'Set' menu. Interactive configuration settings include: - Colors - Open Options - Confirmations - Print Options - Desktop Options - Prompt Styles - Edit Options - Save Options - File Manager Options - Sort Options - Line Delimiters - Search / Replace Options - Margins and Tabs - Text Reformatting Options - Miscellaneous Options - Video Modes - Mouse Options - Window Styles * The 'Save Configuration' item on the Set menu will now directly update source CONFIG.AML and COLOR.AML files with the current configuration settings and recompile the editor. Unlike v2.0, changes will not be lost when you recompile the editor. * Source code for the new configuration dialog boxes is located in a new 'CFG' subdirectory, making even the configuration scheme configurable! Within this code, custom dialog boxes are created by using new library functions (see below). The installation macro (INSTALL.AML) was also modified to accomodate the new CFG subdirectory. * The following new AML macros have been added to the macro list (on the Macro menu), and to the MACRO subdirectory: ASCII2.AML - 2-dimensional ASCII chart BOOKLIST.AML - List all bookmarks CALEN4.AML - Four-month calendar COMPARE.AML - Compare two files COUNTLIN.AML - Count lines in multiple files DLGDEMO.AML - AML dialog box demo with dialog box controls SCRSAVER.AML - AML Screen Saver demo showing how to draw on the screen STYLE.AML - Change the editor keyboard/menu style TEMPLATE.AML - Install Template-Editing TEMPLATE.DAT - Template data (used by TEMPLATE.AML) * The macro list can now be displayed by pressing * Several macros have been rewritten. These macros now take advantage of important new macro language features which allow them to run as independent, movable, switchable, windows (you can also run multiple instances of these macros). The rewritten macros include: ASCII2.AML - 2-dimensional ASCII chart KEYCODES.AML - Display various keycodes CALCPAD.AML - Calculator pad CLRCHART.AML - Color chart CALENDAR.AML - One-month Calendar CALEN4.AML - Four-month Calendar * A following new keyboard/menu styles are available at installation. - Aurora/CUA/Windows - MultiEdit * Commands were added to the clipboard menu which allow you to 'Copy To' and 'Paste From' the Windows Clipboard (up to 16k bytes). Aurora must be running in an MS Windows enhanced mode DOS box to use these commands. * The following additional changes were made to the default menus: Window menu: - removed "Style Toggle" (equivalent function is now provided from within the 'Configuration and Setup' menu item) Set menu: - added 'Configuration and Setup' - 'Word Processing' was relaced with 'Margins and Tabs' - 'Binary Line Length' and 'Line Delimiter Options' were replaced - with 'Line Delimiter Options'. - 'Video Mode' and 'Video Toggle' were removed (equivalent function is now provided from within the 'Configuration and Setup' menu item) Macro menu: - added 'Show Available Keys..' - removed 'Configuration..' - removed 'Include Macro' * The new '>' and '<' window style option codes will now allow Edit and File Manager titles to be placed within the window border, when the border style is not zero. These options can also be changed from the 'Window Style 1' configuration dialog box. * All online documentation is now 'read/only' when opened through the help menus and hotkeys. * A new "Sort Options" dialog box is displayed when entering the 'sortblock2' (Block Sort) command. * The File Manager will now always show the drive bar, even if the menu bar is removed. * New listbox color attributes (71-74) were added to COLOR.AML. * The following changes were made to CONFIG.AML: - Added the new setting 'FormatOpt', for default text reformatting options. - Added the new setting 'SortOpt', for default block sorting options. - The 'FmgrCtls' and 'EditCtls' settings were removed. South title controls are now defined by adding style option 'z' to 'EditStyle' and/or 'FmgrStyle'. - 'ExitOpen' was moved to the Desktop section. * Several changes were made to the keyboard configuration and handling: - In SYSTEM.AML, the new 'kbdoptions' setting replaces the 'enchancedkbd' setting. The new keyboard options are: e = enable enhanced keyboard keys g = enable unshifted grey keypad function keys (, , ) w = enable shifted white keypad function keys (, , , etc.) (Numeric keypad users may wish to disable options 'g' or 'w') - The shifted grey island keys (, , etc.) are now handled properly, and are no longer interpreted as , , etc. The keyboard configuration files for all editor styles were modified to reflect these changes. Macro Language Additions/Changes in version 2.1: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Architectural Changes: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Global variables are now 'persistent', and will hold their values throughout the lifetime of the macro in which they are defined. When used within internal macro areas such as KBD.AML, EXT.AML, etc., global variables will hold their values throughout an entire editing session. * The 'runmacro' function will now allow pre-existing functions to be replaced or 'preempted' throughout the lifetime of the external macro. This is accomplished by simply defining a function with the same name as the function to be preempted, in the same object as the function to be preempted. This feature allows detailed, temporary modifications to be made to existing objects (i.e. detailed changes in editor behavior), without adding new objects to the object hierarchy. The modifications will disappear when the macro is finished executing, or the temporary object associated with 'runmacro' is destroyed. The new function 'passprev' can be used within the newer preempting functions to access the older preempted functions. * The new 'stayresident' function allows external macros executed by 'runmacro' to remain resident after they are finished executing, similar to way the 'includemacro' function works. Functions can be defined within the macro which respond to events after 'runmacro' returns. However, unlike macros executed with 'includemacro', these new resident macros can also be 'purged' by destroying the temporary object automatically created by 'runmacro'. Using the 'stayresident' function, it is possible to write Aurora mini-applications which behave as independent windows on the desktop. Macros such as CALCPAD, CALENDAR, CLRCHART, etc. are examples of these mini-applications. Syntax/Compiler Changes: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * Objects and functions may now have the same name. * The 'object' statement is no longer permitted within functions or key definitions. * A new compiler error code (1318: invalid number) was added. * The following standard backslash control characters can now be entered within strings: \a - alert (beep) character (ASCII 7) \b - backspace character (ASCII 8) \f - formfeed character (ASCII 12) \n - newline (linefeed) character (ASCII 10) \r - return character (ASCII 13) \t - tab character (ASCII 9) \v - vertical tab character (ASCII 11) \xHH - any hex character * The following new keywords can now be used instead of the 'end' keyword, in their respective language structures: endcase endkey enddatabuf endloop enddefine endmenu endfunction endmenubar endif endwhile * The AML compiler generates smaller executable code (A.X in v2.1 is about 5k smaller than A.X in v2.0). Function Additions/Changes: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ * A new dialog box interface is now provided by the editor library code (LIB.X), enabling you to create custom dialog boxes - see FUNCTION.DOX and LANGUAGE.DOX for full details. For examples on how to create and use dialog boxes, see the dialog box demo DLGDEMO.AML, and macros in the new CFG subdirectory. The new dialog box functions are: dialog - creates a main dialog box window button - creates a button control field - creates an edit field control listbox - creates a listbox control groupbox - creates a groupbox control with checkboxes or radio buttons setgroupbox - re-initializes a groupbox getdialog - displays a 'modal' dialog box, and retreives dialog box control values. showdialog - displays a 'modeless' dialog box. whenenter - defines a user-function to be called when (or equivalent) is pressed from within a dialog box control. whenselect - defines a user-function to be called when an item is selected from within a group box or list box. * The following new functions were also added (see FUNCTION.DOX for full details): builtin functions: fillrect // fill a rectangle with a character getattr // get a color attribute from a video window geteventcount // get the number of real events getstr // get a string from a video window gotoscreen // route video functions to the physical screen inheritfrom // change the inheritance path of the current object kbdoptions // set keyboard options parseÿ // parse substrings of a string into variables passprev // call the current function in a preempted object stayresident // force an executable macro to remain resident windowflag // change window flags comments: - gotoscreen enables video functions such as writestr, hilite, etc. to write directly to the physical screen. - parse will extract substrings of a string and place them in user variables, with only one function call. The substrings are specified with a search pattern, which may be a regular expression pattern. This function is very handy for parsing almost anything, including compiler output. - windowflag enables the new events 'ondraw' and 'onstatus' (see below), which allow customized drawing of the window and status line. library functions: askbox // prompt the user for a string (2-line box) askbox1 // prompt the user for a string (1-line box) askline // prompt the user for a string (command-line prompt) enter // enter key (prompt object) setmenucurs // change menu cursor style extension functions: runcfg // run a macro in the CFG subdirectory (w/prefix CFG) runmac // run a macro in the MACRO subdirectory savecfg // save current config variables and recompile events: ondraw // called after drawing the window client area onkillfocus // called before before a window loses the focus onstatus // called before drawing the window status line * The following functions were removed: builtin functions: enhancedkbd // replaced by: kbdoptions getobjsize // not needed clearwindow // not needed: the same effect can be achieved with 'hilite' and the new 'fillrect' function library functions: togglestyle // replaced by: runcfg "style" extension functions: saveconfig // replaced by: savecfg includemacro2 // seldom used askimacro // seldom used askbinary // replaced by: runcfg "ldlm" askdelim // replaced by: runcfg "ldlm" asktabw // replaced by: runcfg "marg" asktabv // replaced by: runcfg "marg" asklmarg // replaced by: runcfg "marg" askrmarg // replaced by: runcfg "marg" askprint // replaced by: runcfg "print" askprompt // replaced by: runcfg "prom" * The following functions were altered in some way: builtin functions: ----------------- bufferflag, bufferflag? Option 'r' was added to these functions to permit buffers to be made 'read-only'. gotobuf gotobuf now returns the previous current buffer. gotowindow gotowindow now returns the previous current window. hilite hilite now advances the cursor in video windows if the height is one. menubar, getmenubar Removed the west menubar (menubar 5). replace When using regular expressions, any of the special control characters "\a\b\f\n\r\t\v\xHH" can be used in the replace string. say say is now a builtin function, and works in any window. setdisplay Added the display option -1, which validates the display so that updating will not be performed. This allows you to draw in an edit window without the editor immediately overwriting it. setframe, frame? Added new option codes '>' and '<' for north and south title-in-border frame options. usemark usemark now returns the previous default markid. library functions: ----------------- msgbox, okbox, shortbox, yncbox These functions will now allow message boxes with 2 message lines to be displayed when a newline character (\n) is inserted in the message string. extension functions: ------------------- ask ask is no longer a library function, but is now exposed in EXT.AML, allowing you to customize the dialog box appearance when using the dialog box prompt style. onhotkey onhotkey now works with any number of leading spaces on popup menu items (onhotkey now works correctly on help popup menus). saveblock2 Added a new parameter: the filename where the block should be saved. You are prompted if the filename is not specified. writebak writebak is no longer a builtin function, but is now exposed in EXT.AML. Parameter order has also been changed to resemble the 'writestr' builtin function.