Initial commit of newLISP.
[newlisp.git] / guiserver / CHANGES
blob7eaee2b6d712960e3bc3aed41caaf5cad3e9403c
1 0.2
2     documentation corrections regarding default layout of frame and dialog
4     switchable look-and-feel with (gs:set-look-and-feel <str-spec>)
5     now on Windows the Windows look and feel is chosen correctly by default
7     speedup of interpreter 
9 0.3
10   suppressed nullpointer error when using gs:set-look-and-feel
12         supppress Java error messages on Windows when shuttng down program
14   gs:label now can take optional width height has last parameters
15   before ann extra gs:set-size statement was necessary
17   width and height specified in gs:button did not work, does now
18         (note that for all other buttons/check-box an extra gs:set-size
19   must still be used to change the size, it will not be added as
20   optional parameters, as it is almost never used)
22         now image-button can take pressed icon path after the normal path
23         (gs:image-button 'TheButton "/local/run32.png" "/local/run32p.png")
25   now gs:set-color working on frames and dialogs too
27   font-demo.lsp showing the fonts built-in on all platforms
29   new gs:text-pane for HTML and RTF (future version) formatted text
30   see html-demo.lsp for a demo.
32 0.4 
33   allow multiple re-starts from same newlisp process, this works together
34   with (gs:listen true)
36   parenthesis matching in text-pane and tab-size working on text-pane,
37         will only work on "text/plain" flavore of text-pane
39   console.lsp now remembers last directory in file dialogs save/load
41         console.lsp now has list boxes for browsing contexts and variables
43   changed split-pane syntax adding divider size, leaving out width/height
44   which can be set with extra set-size if required
46   combo-box and list-box life update now works and updates the screen 
47   correctly 
49   new gs:clear-list empties out a combo-box or list-box
50         eliminated redundant 'action' parameter on message-dialog
52   new confirm-dialog similar to message-dialog but 'yes', 'no' and optional 
53   'cancel' button and fires an event.
55 0.5
56     gs:set-size now works on frames
58     new gs:remove-from removes one or more components from a container
60     new gs:select-text, gs:cut-text, gs:copy-text  and gs:paste-text
61     with suport for system clipboard, new gs:insert-text
62    
63     gs:set-background/set-color now can take a list for the r g b
64     color components
66     list-box now also fires event on key-entering a selection, previously only
67     on mouse-double-click
69     avoid Java "index out of bound messages" in parenthesis matching
71     restructured text-area and text-pane event:
72     (define (action-handler id code dot mark) ...)
74         id = name of text widget
75         code = code of character
76         dot = caret position
77         mark = selection position
79     if there is no selection then dot and mark are equal
80     if only the caret was moved then code is 65535 (16bit -1)
82     working logic for highlighting of cut/copy save/saveAs buttons and
83     related menu items in console.lsp
85     working logic of maintaining directories and filenames in commonly
86     established fashion between file operations
88     NOTE, console.lsp has been little tested, do not use in production,
89     no confirmation dialogs yet for overwiting files, save before new, etc.
91                 NOTE that console.lsp is broken on Windwos because iof filepath issues
92     and CR-LF issues in parenhesis matching
94     many documentain fixes
96 0.6
97     gs:set-font working on combo-box and list-box
99     parenthesis matching in text-pane working now on Windows too
101     file operations working in console.lsp on Windows
103     confirm dialog for new button in console when edit buffer is touched
105     eliminated crashes with bigger results in output area of console
107     context stays selected in console
109     console new button action will not reset current directory for file operations
111     request-focus now works on text-area and text-pane
113     eliminate Java error messages on listboxes
115     new gs:select-list-item selects a list box or combo box item
117     documentation changes for border-layout and others
118     fixed many documantatin formatting problems
121     because of a change in gs:listen in v. 0.6 all error messages from
122     guiserver where suppresses, which made debugging difficult. Some applications
123     running in guiserver v.0.6 may fail now because error messages are enabled
124     again. E.g. misspelled or missing action handlers would cause no harm
125     in v.0.6, but will let exit an application with an error message in v.0.7.
127     gs:window creates a wimndow without any border and system bar. On MacOX X
128     when setting the background in such a window to 
129         (gs:set-background 'thewindow 0 0 0 0)
130     totally transparent, the window will be invisible and widgets ppaced on it
131     seem to float on the desktop (e.g. text from labels)
133     the second to- parameter in gs:select-text is now optional and the function
134     will select all text from the from- position to the end of the text.
137         text-panes and text-areas did not scroll after ading to tab, fixed
138         added action event to gs:tabbed-pane
139     (gs:tabbed-pane <sym-id> <sym-action> <str-orientation> 
140                 [<sym-widget> <sym-tab-title> ...])
141         the event reports: tabbed-pane-id tab-id tab-title.
143         console.lsp project renamed to  newlisp-console.lsp instead, which is a
144         multi tab lisp editor with run button and console window
146         in scrollable text-pane and text-area after gs:set-text will scroll
147         to the beginning, after gs:append-text will scroll to end
149         can use gs:set-text in the tabs of a gs:tabbed-pane     
151         can use gs:set-icon in the tabs of a gs:tabbed-pane
153         more demos: frameless-demo.lsp and clipboard-demo.lsp
156     Several functions to retrieve system properties:
157     gs:get-version - gets the GUI server version number
158     gs:get-screen - gets width, height and resolution of the screen
159     gs:get-fonts - gets all fonts on the current system
161     The following system variables can be used after a property function has
162     been call once:
163     gs:version - the version number
164     gs:screen - list of screen parameters
165     gs:fonts - list of all fonts
166     Once a function has been callled onlyt the variables should be used
167     for efficiency
169     two new demos: properties-demo.lsp, allfonts-demo.lsp
171     increased possible text size for events from 100K to 1000M 
172     (mainly for editor)
174     for do-nothing buttons or or other widgets specify 'gs:no-action as 
175     action-handler
177 0.93 First 2D canvas and mouse stuff
178    gs:set-select now working for toggle-button, radio-butoon, check-box
180    gs:mouse-clicked, gs:mouse-dragged, gs:mouse-moved, gs:mouse-pressed
181    and gs:mouse-released
183    new demos mouse-demo.lsp shapes-demo.lsp animation-demo.lsp
185    gs:draw-line, gs:draw-rect, gs:draw-circle
186    gs:fill-rect, gs:fill-circle (raound-rect and ellipse in next version)
188    gs:paint (gs:stroke for line width in next version)
190    gs:delete-tag to delete a tagged group of shapes
191    gs:moce-tag to move  a tagged group of shapes
193 0.94
194    fixed message box in newlisp-edit.lsp when no c:\temp on Windows
196    gs:paint renamed to gs:set-paint
198    last gs:set-paint now gets correctly taken when now color is specified in
199    shapes or text
201    now different fonts on same canvas don't overwrite previous
203    documentation for draw-text had syntax in reverse
204    all graphics functions now sorted into all other Functions
205    spellchecked documentation 
207    lines are now movable too  
209    gs:set-canvas - onlye used for switching between muliple canvases
210    gs:set-translation - move coordinate origin
211    gs:set-scale - scales up or down
212    gs:set-stroke - sets drawing line width and optional cap, join and miter limit
213    gs:draw-arc - draw an arc outline
214    gs:fill-arc - paints a filled arc
216    new stroke-demo.lsp - shows lines and outlimes with different strokes and round
217    line ends
219    GUI-server signon message now contains version number. Note that in the future
220    newLISP binary installers for Mac OS X and Win32 icons will be placed in the
221    Mac OX X application folder and Win32 desktop for the newlisp-edit.lsp application.
222    Then the signon and connection messages will be unvisible. They are more thought
223    as a debugging aid duwing development.
225    On Mac OS X and UNIX applications can be started this way to close the terminal/shell
226    window:
227         newlisp newlisp-edit.lsp & exit
228    this places the GUI-server process into the background and closes the termonal/shell
230 0.95
231    fixed newlisp-edit.lsp temporal directory detection (again, thanks Sleeper)
233    gs:move-tag did not distinguish between tags, fixed
235    gs:set-select can take multiple id, flag pairs, fixed
237    gs:split-pane divider width in split-pane did not work, fixed
239    new gs:draw-ellipse - draws an elllipse outline
240    new gs:fill-ellipse - fills an elllipse
242    new gs:set-translation of the canvas origin coordinates
243    new gs:set-rotation set the rotation of the canvas
245    all tag transforms below add to the affine transform matrix
246    already in the canvas 
248    new gs:hide-tag - hides objects of a tag group
249    new gs:scale-tag - scales an object up or down
250    new gs:translate-tag - translates the coordinate origin of a tag group
251    new gs:show-tag - shows objects of a tag group
252    new gs:rotate-tag - function for rotating objects
253    new gs:shear-tag - function for shearing objects
255    like gs:move-tag all other functions work on any shape, text
256    or image. 
258    shaped-demo.lsp modified to show funtioning of gs:hide-tag and gs:show-tag
259    via selecting or de-selecting shapes with check boxes
261    gs:mouse-wheel - register mouse wheel events
263    mouse-demo.lsp - modified to show mouse wheel events
264   
265    animaton-demo.lsp - modified to show the mouse wheel move text up/down
267    new rotation-demo.lsp to show rotating objects 
268    new image-demo - shows image zzomin, turning and squashing
269    new textrot-demo - shows text rotation
271    gs:draw-text has optional angle parameter (but can also be titled
272    using gs:rotate-tag, see sample program text-rotation.lsp)
274    all tag operations have optional flag to turn of screen update
275    this is recommended when using several tag commands in a batch
276    to do only one screen update at the end using gs:update
277    the default for this flag is 'true' for doing the update.
279    On all other systems except Mac OS X, double buffering is tried for
280    flicker free performance when animating graphics on systems other than
281    the Mac. The performance of this depends on the graphics cards used.
282    Performance was execellent on 2 Windows system I tried, one of them
283    4 years old.
285 0.96
286    gs:scale-tag, gs:translate-tag and gs:rotate-tag add to the affine transform matrix
287    already in the canvas (it was wrongly stated before that gs:translate-tag
288    if not accumulative, but it is like all others)
290    Corrections in the doc about the behaviour of gs:set-translation, gs:set-scale
291    and gs:set-rotation. Again: they are all absolute, while tag operations are
292    accumulative.
294    rotation-demo.lsp and image-demo.lsp have been changed using gs:translate-tag
295    instead the global canvas gs:set-translation. This makes it possible to
296    rotate or scale several tags at the same time, using gs:translate-tag
297    to supply each tag group its own center (set to 0,0). This leads also
298    to better readable code. All object cooridnates to rotate or zoom are
299    best defined in reference to a 0,0 center point and then moved to their
300    pace with gs:translate-tag. See also description of gs:scale-tag in documentation.
302    net gs:get-font-metrics - returns width and height of a string to display
303    new gs:draw-round-rect - draw a rectangle with round corners
304    new gs:full-round-rect - fill a rectangle with round corners
305    new gs:draw-polygon - draws a polygon with 3 to N points
306    new gs:fill-polygon - fill a polygon with 3 to N points
307    new gs:set-cursor - set one of 14 cursor shapes
309    new cursor-demo.lsp tot show different cursor shapes
311 0.97
312    gs:mouse-dragged fired invalid events when not defined but gs:mouse-clicked
313    was defined.
315    gs:mouse-pressed, gs:mouse-released and gs:mouse-clicked now take an optional
316    'true' parameter. This makes events carry a list of tags, which have been
317    affected by one of the above mouse actions. This can be used to implement
318    object dragging (see the new drag-demo.lsp) it also opens the possibility
319    of creating self-drawn custom controls on a canvas because clicks can be
320    detected on tags. The code mouse-demo.lsp has been simplified to detect
321    tags to delete by using the tag list in the mouse-clicked event.
323    events generated by gs:mouse-pressed, gs:mouse-released, gs:mouse-clicked
324    and gs:mouse-dragged besides the new tags spec also carry a number for
325    modifier keys, e.g. pressing ctrl or shift while clicking the mouse.
326    See the modified moused-demo.lsp.
328    gs:text-pane and gs:text-area now can register gs:mous-clicked events
329    in the newlisp-edit.lsp app a popup  has been implemented as a right click
330    (or ctrl-click for one-button mouse) to popup an edit menu.
332    new drag-demo.lsp
334    Point detection is implemented for closed shapes, images and text. Precise
335    deletection is done for images, text, polygons and rectangles, but for
336    circles and ellipses the whole rectangle enclosing the shape is used
337    for calculations. A precise point detection limited only to the inside
338    of the circle or ellipse will be implemented at a later time.
340    Images must carry width and height parameters in the gs:draw-image statement.
341    Drawn text is detected by calculating the enclosing rectangle.
343    new gs:draw-path - similar to polygon but the path may stay unclosed.
344    new gs:export - exports to an image file in png in RGB + alpha channel
345    format.
347    Note that detection will fail if scaling or translation has been used to
348    for the canvas or drawn objects involved, because mouse coordinates do
349    not sync to object coordinates in a scaled or translated coordinate
350    system.
352    new gs:menu-pop and gs:show-popup implements popup menus for gs:text-area,
353    gs:text-pane and gs:canvas. For a demo see newlisp-edit.lsp and
354    drag-demo.lsp
356    bug fixes in newlisp-edit.lsp when closing other but the last tab.
358 0.98
359    popup menus on canvas now also working on Win32
361    gs:open-file had problems with file masks (changed parameter format)
363    new gs:frame-closed - registers an event for a closing frame or dialog
365    new gs:find-text - finds and selects text in a text rea or text panel widget
367    new gs:mouse-event - registers a general mouse-event for any component
368    see allfonts-demo.lsp, button-demo.lsp  and the Fontbook button in 
369    newlisp-edit.lsp for demo
371    changed some shortcut keys in newlisp-edit.lsp to be more standard conform
373    newlisp-edit.lsp has now text search and replace implemented
375    newlisp-edit.lsp now has fontselection implemented
377    splash screen working, see doc for new gs:dispose-splash
379 0.99
380    gs:find-text selection now positions and highlights correctly on Win32
382    now showing directories on Win32 even when file view is constrained to text files:
383    .lsp .c .h .txt .java .htm .html .css .php .pl .py .rb .lisp .el .cl .cpp
384    what are other essential text formats on Win32?
386    graceful error recovery on most errors in GUI-server: after the error
387    message box is closed, the app will try continue and not exit as before.
389    better parenthesis matching performance on larger files
390    (but minor flicker on Win32)
392    gs:get-font-metrics got stuck on last queried value
394    gs:set-tab-size when used on gs:text-pane, sets the tabsize in points
395    
396    added ctrl-M to clear monitor area in newlisp-edit.lsp
398    find previous, undo and redo in newlisp-edit.lsp
400    new gs:undo-text and gs:redo-text, if no menus or code is used
401    ctrl-z and ctrl-shift-z and meta-z meta-shift-z (MacOS X) are
402    still hardwired into gs:text-pane
404    text widgets now also respond to the general gs:mouse-event
406 0.991
407    Text selection was still broken on Win32 when starting out with a file containing
408    carriage returns or when entering new text. It only worked on files loded without
409    CRs even when etering new text. Now it seems to work in all situations, setting
410    a Java system property to LF only and converting text when it goes in/out.
412    Changed run button to auxiliary stateful newLISP process as used
413    previously in console.lsp. Now evaluation via the newLISP run button
414    is stateful unless the restart button is hit to restart the 
415    other newLISP process. If  the process exits, e.g. when closing a GUI-server
416    applications the small LED turns red. When hitting the run-newLISP button
417    and the newLISP process is down, it will get restarted automatically.
419    Only one GUI applocation should be started at the time from newlisp-edit.lsp
420    starting more than one is unreliable and blocked on MacOX X.
422    There are som unreliabilities running GUI-Server apps from newlisp-edit.lsp
423    on Win32, which have not been worked out. Text in the edit area should be saved
424    before running a GUI-server app, to be safe.
427 0.992
428   File dialog file mask selection was broken again
430 0.993
432   Eliminated flicker when matching parenthesis in bigger files.
434   A canvas now can be treated like any other container adding other
435   widgets to it (see demo textrot-demo.lsp).
437   Custom control for font coolors and size in newlisp-edit.lsp
439   Now newlisp-editor.lsp stays functional while a lengthy evaluation
440   process is running and outputing to the monitor area. In another tab
441   files can be edite/saved etc.
443   Auxiary newLISP process in newlisp-edit.lsp now starts with home directory as
444   current directory
446   Trying to start  a second evaluation or trying to restart the newLISP process 
447   will make the led blink in yellow for a second and output "busy" in the monitor 
448   area. 
450   Trying to quit newlisp-edit.lsp while an evaluating process is running will 
451   leave the newlisp-edit.lsp application unfunctional on the screen until the 
452   evaluating process finishes. On MacOS X the Quit option of the top screen menu
453   can be used to exit newlisp-edit.lsp in this case but on Win32 the task manager 
454   must be used to shut down newlisp-edit.lsp or the other evaluating process.
456 0.994
457   Many fixes for running programs from the editor. There should be no possibility
458   now to hang the editor, even if a pending newLISP evaluation cannot be finished,
459   the editor should be still functional to edit and save files.
461   The yellow led will now stay on when a newLISP evaluation is pending to exit and
462   an attempt has been make to start a second process. When the process has finished
463   the led goes red. Attempting to start another app will do a restart automatically.
465   Running GUI-Server apps from newlisp-edit.lsp seems to be reliable now on MacOX X
466   and Windows XP.
468   new menu 'File/Save Settings' saves all font, color and current directory when
469   loading file. The settimgs file contains many more settings, which can be changed
470   to give the editor a complete diferent appearance: 
472   - The toolbar can be hidden completely or made floatable.
473   - The tabs can be relocated to the bottom, left or right side of the editor.
474   - The window size can be set to a desired X,Y width and height.
476   When newlisp-edit.lsp starts the first time and does not encounter a config file
477   it gets created in the current home directory.
479   File and settings saving is announced in the monitor area.
481   Note, the directory remembered when open the file dialog is the directory of
482   the currently open tab.
484   An optional icon can be added to gs:message-dialog when defining the type as "plain".
485   In this case a user supplied icon will be shown.
487 0.995
488   newlisp-edit.lsp:
490   - Font size did not get saved by 'File/Save Settings'.
492   - settings file ion Win32 gets now written to APPDATA/newLISP/newlisp-edit.conf
493   where APPDATA is the Win32 environment variable for the applications data
494   directory. If APPDATA is not defined USERPOFILE or DOCUMENT_ROOT is assumed
495   On all other OS .newlisp-edit.conf is written to the users home directory
496   in UNIX like fashion. This may change in the future for the Mac OX X to:
497   ~/Libarary/Application Support/newLISP/newlisp-edit.conf
499   - The toolbar can now be detached/reattached from the View menu
501   - The Tool menu as a 'Save Settings' option.
503   - The Help menu has options to access newLISP and GUI-Server docs.
505   - When editing the settings file and leaving an error, the next startup
506   of newlisp-edit will give an error message box with the error.
508   - Ctrl-F (Win32) or meta-F (OS X) reenter the find dialog if not already
509   open (this was already in 0.994, but not mentioned).
511   - Pressing ESC while in find dialog text field will close the find dialog
512   this is consisten with behaviour of other Java-Swing built-in dialogs.
513   When in the edit area ctrl-D / meta-D, will still work to dispose of the 
514   find-dialog
516   - on Mac OS X ctrl-up will select the tab, then keys left or right will
517   let select other tabs. This is Java-Swing built-in behaviour and assumed
518   to work like this on all platforms.
520   New gs:menu-item-check for checked menu items (behaves like a check box)
521   
522   A new chapter about writing and debugging event handlers was added in  the 
523   guiserver.lsp.html documentation.
525  0.996
526   newlisp-edit.lsp:
528   - settings will now remember loaction and size of newlisp-edit.lsp on the screen 
530   - Edit/Find marked edit buffer as dirty, which was not correct (icon and red dot)
532   - new menu option Edit/Goto Line
534   - mew menu option Files/Recent Files remembers a list of recently saved files
535   the list is automatically updated each time a file is saved and maintained in
536   the file $APPDATA/newlisp-edit-recent on Win32 or in $HOME/.newlisp-edit-recent
537   on Mac OS X and Unix
539   popup menus now displayed in correct position on scrollable content
541   gs:get-bounds was broken, now displayes on-scrren coordinates for top level windows
543   new gs:goto-text - positions cursor in text at row columns position
545   new gs:load-text, gs:save-text to directlty load/save docs in to/from gs:text-pane
546   these should not be used from Win32 because they don't work correctly with
547   CR/LF line terminated files when using Edit/Find
549   documentation links in the Help menu have been taken out, because browser
550   blocks guiserver.jar from exiting on Win32
552  0.997
553   When using gs:load-text it now correctly filters carriage returns when
554   loading files on Win32 or any other platforms. gs:save-text will always
555   write LF line terminations. If this is not desirable, gs:get-text should
556   be used instead.
558   ESC in find dialog also works when cursor in replace text field. ESC will close
559   the dialog without initiaiting search action, as it did wrongly before.
561   demo directory accessible from the Help menu
563   Many additions and corrections to the documentaion. 
565 0.998
566   new gs:set-syntax-selected for enabling newLISP syntax highlighting in gs:text-pane
568   new gs:set-caret-color for setting a caret color in in all text widgets
570   new gs:set-selection-color for setting a text selection color
572   new gs:set-syntax-colors for setting syntax colors for keywords, comments etc.
574   new gs:key-event to register key events for any component (except text widgets,
575   which already register keyevents by default)
577   syntax highlighting in newlisp-edit.lsp:
578   - 3 preconfigured themes to choose from for medium, low and high contrast
579   - alt-Y (Win32) or meta-Y (Mac OS X) toggle syntax highlighting on/off
580   - by default all files ending in .lsp are highlighted
582 0.999
583   newlisp-edit.lsp:
585   - any number of syntax profiles can now be configured in the settings file and
586   loaded automatically into the View menu on startup.
588   - for the Tool menu scripts can be registered using the settings file. The
589   scripts are run over the content of the current edit tab. The contents of the
590   current edit tab is saved to a tmporary file, and the name of this file is passed
591   as an argument to the script. The output of the script is shown in the monitor
592   area.
594   - added tabulator size (in points) to settings file
596   - syntax on/off is remembered when switching tabs
598   - Edit/Get Position tells line and column positin of text cursor
600   - undo/redo was broken when in syntax highlighting mode. Undo/redo is now reset
601   whenever switching syntax highligthing on/off. Loading a file is not part of an
602   undoable operation anymore.
604   - eliminated foreground/background color options which are set as part of
605   the color theme. When syntax highlighting is tirned off, foreground and background
606   are still defined by the colors of the current theme.
608   - non-existing files in the recent files list are eliminated automatically
610   - now remembers correctly screen positions in settings file on all platforms
612   - eliminated black flash before splash screen display
614   - startup on Win32 w/o run.exe now shows hour glass cursor
616   - Clear Monitor disable/enable was faulty
618   - now highlights search text when returning to find/replace dialog
620   - message box when saving failed, e.g. becuase of wromg permissions
622   gs:set-cursor now works correctly in text widgets.
624   gs:get-bonds now works correctly for on-screen widgets
626 1.0 feature complete for release August 15th
628   fixed unreliable gs:layout
629   
630   fixed occasional text blur in monitor area of newlisp-edit.lsp
632   new gs:get-selected-text, works like gs:get-text but retrieves selected text only
634   added C, C++, Java and PHP syntax highlighting, automatically selected for .c, .cpp, .h,
635   .java and .php files. When a file does not have a known extension when loading, then no 
636   syntax highlighing is selected. But when switching highlighting on via View/Syntax 
637   or meta-Y (OS X) or alt-Y (Win32), a menu pops up for selecting a highlighting mode.
639   some small fixes for newLISP syntax highlighting
641   now 2 types of scripts in Tool menu and registered in currentScripts in settings file:
643   - Type "content" takes the contens of the edutor and passes it as a file to the script.
644     Anything printed in the script goes to the monitor area in the editor. See the
645     program word-count.lsp for an example
647   - Type "selection" takes the selection of the editor and passes it as a file to the
648     script. Anyting printed from thr script replaces the selectin. If nothing
649     was selected the output og the script gets inserted at the text caret.
651   The selection replace/insert type of script operation can be undone using Edit/Undo.
652   In the settings file: the menu string, the script path name, the type and an
653   optional shortcut key are specified. See the settings file for an example.
655   The settings file gets automatically created when not present on startup
656   and registers the two scripts word-count.lsp and uppercase.lsp. The settings file
657   can be edited using the option in the Tools menu. 
659   before installing this version remove old settingfile on Win32:
660   $HOME/Application Data/newLISP/newlisp-edit.conf or on Mac OS X and Unix: 
661   ~/.newlisp-edit.conf
663 1.01 August 15th release
665   In newlis-edit.lsp: changed key assignments for fonts smaller/bigger:
666         meta-minus and shift-meta-equals on Mac OS X and ctrl-minus ctrl-equals on Win32.
667   For Mac OS X this is standard, for Win32 it mimics FireFox behaviour.
669   The items in gs:list-box and gs:combo-box can be either given individually
670   or in a list: (gs:list-box 'TheListBox 'list-action '("a" "b" "c))
672   New gs:play-sound plays/streams .wav and .aif sound files.
675 1.03
676   The monitor area now works also as a newLISP shell, where expressions can
677   be typed in directly and evaluated. The red/green led is not necessary
678   anymore. The shell can be restarted at any time, even if a process is running.
679   The run button will only work if the shell is present. If the shell is exited
680   by a program, hit the restart button to restart. When restarting the shell
681   while a program in it is running, the program will quit and the shell restart.
683   When the monitor/shell area has focus:
684     Ctrl-l clears monitor and gives shell prompt (like Meta-m/Alt-m)
685     Ctrl-p copies previous command
686   Other common readline/editing commands usual in UNIX shells may be implemented
687   in the future.
689   On Win32 Ctrl-l used to be "goto line" now: Alt-l
690   On Win32 Ctrl-Shift-l used to "show current line/column" now: shift-Alt-l
692   newLISP-edit can be exited at any time, if a process is still running in the
693   shell window it keeps on running after newLISP-edit closed.
695   New gs:run-shell installs a shell process in the monitor area
696   New gs:eval-shell send a string for evaluation in the shell
697   New gs:destroy-shell destroys the shell
699   Note that newlis-edit.lsp uses newISP as a shell process, but other shells
700   can be started using gs:run-shell.
702   New gs:reorder-tags reorders the stacking order of tagged images.
703   See the file drag-demo.lsp for usage (comment in gs:reorder-tags statement
704   in line 47)
706 1.04
707   Monitor background and foreground colors are now configuable in settings file
708   do a File/Save Settings first to have the new config variables registered, then
709   Tools/Edit Settings for editing: currentMonitorBackground and currentMonitorForeground.
711   Fix when evaluating in shell area after Ctrl-L, Meta-M (Alt-M).
713   Eliminated some quirks when copying/pasting between editor and monitor/shell area, and
714   when hitting enter in the middle of an edited command.
716   Now full commandline history in shell-commandline when using arrow-up/down.
718   meta-1, meta-2 (alt-1, alt-2 on Win32) for switching between editor and shell/monitor.
720   More bash-shell like key bindings on UNIX: Ctrl-A beginnining of line after the
721   shell prompt , Ctrl-E end of line (in gs:text-area with shell attached).
723   new gs:color-tag colors all shapes with the same tag
725 1.05
726   gs:get-text now can be called without an action handler to return the text
727   immedeately. This new synchronous mnode of gs:get-text is not recommended when
728   receiving larger text areas, as the call is blocking until all text is returned,
729   but makes coding simple data forms a lot shorter.
731   gs:mouse-move now can take an additional boolean parameter to indicate that
732   a list of tags are to be returned in the mouse-move event handler. The flag
733   should not be used when large amount of tags are present as it can slow down
734   performance significantly calculating and transmitting tag lists on every
735   mouse movement.
737   gs:key-event now also can be registered as a second key listener on text widgets.
738   This is espacially interesting on gs:text-field, where individual key action
739   could not be captured before, as the normal handler registered with gs:text-area
740   only handles the ENTER and ESC key.
742   fix in gs:run-shell for shells without prompts
744   now uses patform independent: 
745     (load (append (env "NEWLISPDIR") "/guiserver.lsp"))
746   in all demo files to load guiserver.lsp
748 1.06
749   edit buffer did not get marked as dirty when cutting/pasting into clean buffer
751   when file-recent-loading->saving->file-recent-reloading the same file editor crashed
753   make sure shell proccesses in monitor window are destroyed when closing newlisp-edit
755   because of new 'process' in newlisp core full java path is needed in process statement
756   in gs:init function. Assumes /usr/bin/java
758 1.07
759   Tcp/Ip connection between Guiserver and newLISP now goes via 127.0.0.1, not localhost
760   to avoid loss of connection when computer sleeps, while an GS application was
761   running.
763   when runniung editor contents and shell is dow, the shell will be restarted 
764   automatically
766   the editor now  loads, saves and displays UTF-8 correctly
768 1.08
769   Guiserver now adjusts automatically to set UTF-8 on/off depending on newLISP version
771   The Win32 is again shipped as not UTF-8 by default.
773   new gs:window-moved and gs:window-resized. See new demo file move-resize-demo.lsp
775 1.09
776   reverse "meta N" and "shift meta N" on OS X to be standard with "meta N" new window/tab
777   on OS X
779   gs:mouse-event now can also be used on list boxes made with gs:list-box, this makes
780   it possible to process single clicks.
782 1.10
783   the gs:list-box event now responds on any click-count, previously only on 2 for
784   double click. Addtionally the click-count is transmitted in the event as the last
785   parameter
787 1.11
788   replace all can now be redone, double undo not required any more for replace
790   new gs:undo-enable undo is currently disabled in newlisp-edit for find/replace 
791   because of instabilities
793 1.12
794   newlisp-edit "Undo Previous" button in find dialog, this is used to undo replacements.
795   Replacements cannot be undone with normal undo when the find dialog is closed again,
796   but can only be undone from inside the find dialog
798 1.12-13-14
799   in guiserver.lsp now checking JAVA_HOME when not Win32 or OS X
801 1.15
802   fixed highlighing for 'pop-assoc'