0.2 documentation corrections regarding default layout of frame and dialog switchable look-and-feel with (gs:set-look-and-feel ) now on Windows the Windows look and feel is chosen correctly by default speedup of interpreter 0.3 suppressed nullpointer error when using gs:set-look-and-feel supppress Java error messages on Windows when shuttng down program gs:label now can take optional width height has last parameters before ann extra gs:set-size statement was necessary width and height specified in gs:button did not work, does now (note that for all other buttons/check-box an extra gs:set-size must still be used to change the size, it will not be added as optional parameters, as it is almost never used) now image-button can take pressed icon path after the normal path (gs:image-button 'TheButton "/local/run32.png" "/local/run32p.png") now gs:set-color working on frames and dialogs too font-demo.lsp showing the fonts built-in on all platforms new gs:text-pane for HTML and RTF (future version) formatted text see html-demo.lsp for a demo. 0.4 allow multiple re-starts from same newlisp process, this works together with (gs:listen true) parenthesis matching in text-pane and tab-size working on text-pane, will only work on "text/plain" flavore of text-pane console.lsp now remembers last directory in file dialogs save/load console.lsp now has list boxes for browsing contexts and variables changed split-pane syntax adding divider size, leaving out width/height which can be set with extra set-size if required combo-box and list-box life update now works and updates the screen correctly new gs:clear-list empties out a combo-box or list-box eliminated redundant 'action' parameter on message-dialog new confirm-dialog similar to message-dialog but 'yes', 'no' and optional 'cancel' button and fires an event. 0.5 gs:set-size now works on frames new gs:remove-from removes one or more components from a container new gs:select-text, gs:cut-text, gs:copy-text and gs:paste-text with suport for system clipboard, new gs:insert-text gs:set-background/set-color now can take a list for the r g b color components list-box now also fires event on key-entering a selection, previously only on mouse-double-click avoid Java "index out of bound messages" in parenthesis matching restructured text-area and text-pane event: (define (action-handler id code dot mark) ...) id = name of text widget code = code of character dot = caret position mark = selection position if there is no selection then dot and mark are equal if only the caret was moved then code is 65535 (16bit -1) working logic for highlighting of cut/copy save/saveAs buttons and related menu items in console.lsp working logic of maintaining directories and filenames in commonly established fashion between file operations NOTE, console.lsp has been little tested, do not use in production, no confirmation dialogs yet for overwiting files, save before new, etc. NOTE that console.lsp is broken on Windwos because iof filepath issues and CR-LF issues in parenhesis matching many documentain fixes 0.6 gs:set-font working on combo-box and list-box parenthesis matching in text-pane working now on Windows too file operations working in console.lsp on Windows confirm dialog for new button in console when edit buffer is touched eliminated crashes with bigger results in output area of console context stays selected in console console new button action will not reset current directory for file operations request-focus now works on text-area and text-pane eliminate Java error messages on listboxes new gs:select-list-item selects a list box or combo box item documentation changes for border-layout and others fixed many documantatin formatting problems 0.7 because of a change in gs:listen in v. 0.6 all error messages from guiserver where suppresses, which made debugging difficult. Some applications running in guiserver v.0.6 may fail now because error messages are enabled again. E.g. misspelled or missing action handlers would cause no harm in v.0.6, but will let exit an application with an error message in v.0.7. gs:window creates a wimndow without any border and system bar. On MacOX X when setting the background in such a window to (gs:set-background 'thewindow 0 0 0 0) totally transparent, the window will be invisible and widgets ppaced on it seem to float on the desktop (e.g. text from labels) the second to- parameter in gs:select-text is now optional and the function will select all text from the from- position to the end of the text. 0.8 text-panes and text-areas did not scroll after ading to tab, fixed added action event to gs:tabbed-pane (gs:tabbed-pane [ ...]) the event reports: tabbed-pane-id tab-id tab-title. console.lsp project renamed to newlisp-console.lsp instead, which is a multi tab lisp editor with run button and console window in scrollable text-pane and text-area after gs:set-text will scroll to the beginning, after gs:append-text will scroll to end can use gs:set-text in the tabs of a gs:tabbed-pane can use gs:set-icon in the tabs of a gs:tabbed-pane more demos: frameless-demo.lsp and clipboard-demo.lsp 0.9 Several functions to retrieve system properties: gs:get-version - gets the GUI server version number gs:get-screen - gets width, height and resolution of the screen gs:get-fonts - gets all fonts on the current system The following system variables can be used after a property function has been call once: gs:version - the version number gs:screen - list of screen parameters gs:fonts - list of all fonts Once a function has been callled onlyt the variables should be used for efficiency two new demos: properties-demo.lsp, allfonts-demo.lsp increased possible text size for events from 100K to 1000M (mainly for editor) for do-nothing buttons or or other widgets specify 'gs:no-action as action-handler 0.93 First 2D canvas and mouse stuff gs:set-select now working for toggle-button, radio-butoon, check-box gs:mouse-clicked, gs:mouse-dragged, gs:mouse-moved, gs:mouse-pressed and gs:mouse-released new demos mouse-demo.lsp shapes-demo.lsp animation-demo.lsp gs:draw-line, gs:draw-rect, gs:draw-circle gs:fill-rect, gs:fill-circle (raound-rect and ellipse in next version) gs:paint (gs:stroke for line width in next version) gs:delete-tag to delete a tagged group of shapes gs:moce-tag to move a tagged group of shapes 0.94 fixed message box in newlisp-edit.lsp when no c:\temp on Windows gs:paint renamed to gs:set-paint last gs:set-paint now gets correctly taken when now color is specified in shapes or text now different fonts on same canvas don't overwrite previous documentation for draw-text had syntax in reverse all graphics functions now sorted into all other Functions spellchecked documentation lines are now movable too gs:set-canvas - onlye used for switching between muliple canvases gs:set-translation - move coordinate origin gs:set-scale - scales up or down gs:set-stroke - sets drawing line width and optional cap, join and miter limit gs:draw-arc - draw an arc outline gs:fill-arc - paints a filled arc new stroke-demo.lsp - shows lines and outlimes with different strokes and round line ends GUI-server signon message now contains version number. Note that in the future newLISP binary installers for Mac OS X and Win32 icons will be placed in the Mac OX X application folder and Win32 desktop for the newlisp-edit.lsp application. Then the signon and connection messages will be unvisible. They are more thought as a debugging aid duwing development. On Mac OS X and UNIX applications can be started this way to close the terminal/shell window: newlisp newlisp-edit.lsp & exit this places the GUI-server process into the background and closes the termonal/shell 0.95 fixed newlisp-edit.lsp temporal directory detection (again, thanks Sleeper) gs:move-tag did not distinguish between tags, fixed gs:set-select can take multiple id, flag pairs, fixed gs:split-pane divider width in split-pane did not work, fixed new gs:draw-ellipse - draws an elllipse outline new gs:fill-ellipse - fills an elllipse new gs:set-translation of the canvas origin coordinates new gs:set-rotation set the rotation of the canvas all tag transforms below add to the affine transform matrix already in the canvas new gs:hide-tag - hides objects of a tag group new gs:scale-tag - scales an object up or down new gs:translate-tag - translates the coordinate origin of a tag group new gs:show-tag - shows objects of a tag group new gs:rotate-tag - function for rotating objects new gs:shear-tag - function for shearing objects like gs:move-tag all other functions work on any shape, text or image. shaped-demo.lsp modified to show funtioning of gs:hide-tag and gs:show-tag via selecting or de-selecting shapes with check boxes gs:mouse-wheel - register mouse wheel events mouse-demo.lsp - modified to show mouse wheel events animaton-demo.lsp - modified to show the mouse wheel move text up/down new rotation-demo.lsp to show rotating objects new image-demo - shows image zzomin, turning and squashing new textrot-demo - shows text rotation gs:draw-text has optional angle parameter (but can also be titled using gs:rotate-tag, see sample program text-rotation.lsp) all tag operations have optional flag to turn of screen update this is recommended when using several tag commands in a batch to do only one screen update at the end using gs:update the default for this flag is 'true' for doing the update. On all other systems except Mac OS X, double buffering is tried for flicker free performance when animating graphics on systems other than the Mac. The performance of this depends on the graphics cards used. Performance was execellent on 2 Windows system I tried, one of them 4 years old. 0.96 gs:scale-tag, gs:translate-tag and gs:rotate-tag add to the affine transform matrix already in the canvas (it was wrongly stated before that gs:translate-tag if not accumulative, but it is like all others) Corrections in the doc about the behaviour of gs:set-translation, gs:set-scale and gs:set-rotation. Again: they are all absolute, while tag operations are accumulative. rotation-demo.lsp and image-demo.lsp have been changed using gs:translate-tag instead the global canvas gs:set-translation. This makes it possible to rotate or scale several tags at the same time, using gs:translate-tag to supply each tag group its own center (set to 0,0). This leads also to better readable code. All object cooridnates to rotate or zoom are best defined in reference to a 0,0 center point and then moved to their pace with gs:translate-tag. See also description of gs:scale-tag in documentation. net gs:get-font-metrics - returns width and height of a string to display new gs:draw-round-rect - draw a rectangle with round corners new gs:full-round-rect - fill a rectangle with round corners new gs:draw-polygon - draws a polygon with 3 to N points new gs:fill-polygon - fill a polygon with 3 to N points new gs:set-cursor - set one of 14 cursor shapes new cursor-demo.lsp tot show different cursor shapes 0.97 gs:mouse-dragged fired invalid events when not defined but gs:mouse-clicked was defined. gs:mouse-pressed, gs:mouse-released and gs:mouse-clicked now take an optional 'true' parameter. This makes events carry a list of tags, which have been affected by one of the above mouse actions. This can be used to implement object dragging (see the new drag-demo.lsp) it also opens the possibility of creating self-drawn custom controls on a canvas because clicks can be detected on tags. The code mouse-demo.lsp has been simplified to detect tags to delete by using the tag list in the mouse-clicked event. events generated by gs:mouse-pressed, gs:mouse-released, gs:mouse-clicked and gs:mouse-dragged besides the new tags spec also carry a number for modifier keys, e.g. pressing ctrl or shift while clicking the mouse. See the modified moused-demo.lsp. gs:text-pane and gs:text-area now can register gs:mous-clicked events in the newlisp-edit.lsp app a popup has been implemented as a right click (or ctrl-click for one-button mouse) to popup an edit menu. new drag-demo.lsp Point detection is implemented for closed shapes, images and text. Precise deletection is done for images, text, polygons and rectangles, but for circles and ellipses the whole rectangle enclosing the shape is used for calculations. A precise point detection limited only to the inside of the circle or ellipse will be implemented at a later time. Images must carry width and height parameters in the gs:draw-image statement. Drawn text is detected by calculating the enclosing rectangle. new gs:draw-path - similar to polygon but the path may stay unclosed. new gs:export - exports to an image file in png in RGB + alpha channel format. Note that detection will fail if scaling or translation has been used to for the canvas or drawn objects involved, because mouse coordinates do not sync to object coordinates in a scaled or translated coordinate system. new gs:menu-pop and gs:show-popup implements popup menus for gs:text-area, gs:text-pane and gs:canvas. For a demo see newlisp-edit.lsp and drag-demo.lsp bug fixes in newlisp-edit.lsp when closing other but the last tab. 0.98 popup menus on canvas now also working on Win32 gs:open-file had problems with file masks (changed parameter format) new gs:frame-closed - registers an event for a closing frame or dialog new gs:find-text - finds and selects text in a text rea or text panel widget new gs:mouse-event - registers a general mouse-event for any component see allfonts-demo.lsp, button-demo.lsp and the Fontbook button in newlisp-edit.lsp for demo changed some shortcut keys in newlisp-edit.lsp to be more standard conform newlisp-edit.lsp has now text search and replace implemented newlisp-edit.lsp now has fontselection implemented splash screen working, see doc for new gs:dispose-splash 0.99 gs:find-text selection now positions and highlights correctly on Win32 now showing directories on Win32 even when file view is constrained to text files: .lsp .c .h .txt .java .htm .html .css .php .pl .py .rb .lisp .el .cl .cpp what are other essential text formats on Win32? graceful error recovery on most errors in GUI-server: after the error message box is closed, the app will try continue and not exit as before. better parenthesis matching performance on larger files (but minor flicker on Win32) gs:get-font-metrics got stuck on last queried value gs:set-tab-size when used on gs:text-pane, sets the tabsize in points added ctrl-M to clear monitor area in newlisp-edit.lsp find previous, undo and redo in newlisp-edit.lsp new gs:undo-text and gs:redo-text, if no menus or code is used ctrl-z and ctrl-shift-z and meta-z meta-shift-z (MacOS X) are still hardwired into gs:text-pane text widgets now also respond to the general gs:mouse-event 0.991 Text selection was still broken on Win32 when starting out with a file containing carriage returns or when entering new text. It only worked on files loded without CRs even when etering new text. Now it seems to work in all situations, setting a Java system property to LF only and converting text when it goes in/out. Changed run button to auxiliary stateful newLISP process as used previously in console.lsp. Now evaluation via the newLISP run button is stateful unless the restart button is hit to restart the other newLISP process. If the process exits, e.g. when closing a GUI-server applications the small LED turns red. When hitting the run-newLISP button and the newLISP process is down, it will get restarted automatically. Only one GUI applocation should be started at the time from newlisp-edit.lsp starting more than one is unreliable and blocked on MacOX X. There are som unreliabilities running GUI-Server apps from newlisp-edit.lsp on Win32, which have not been worked out. Text in the edit area should be saved before running a GUI-server app, to be safe. 0.992 File dialog file mask selection was broken again 0.993 Eliminated flicker when matching parenthesis in bigger files. A canvas now can be treated like any other container adding other widgets to it (see demo textrot-demo.lsp). Custom control for font coolors and size in newlisp-edit.lsp Now newlisp-editor.lsp stays functional while a lengthy evaluation process is running and outputing to the monitor area. In another tab files can be edite/saved etc. Auxiary newLISP process in newlisp-edit.lsp now starts with home directory as current directory Trying to start a second evaluation or trying to restart the newLISP process will make the led blink in yellow for a second and output "busy" in the monitor area. Trying to quit newlisp-edit.lsp while an evaluating process is running will leave the newlisp-edit.lsp application unfunctional on the screen until the evaluating process finishes. On MacOS X the Quit option of the top screen menu can be used to exit newlisp-edit.lsp in this case but on Win32 the task manager must be used to shut down newlisp-edit.lsp or the other evaluating process. 0.994 Many fixes for running programs from the editor. There should be no possibility now to hang the editor, even if a pending newLISP evaluation cannot be finished, the editor should be still functional to edit and save files. The yellow led will now stay on when a newLISP evaluation is pending to exit and an attempt has been make to start a second process. When the process has finished the led goes red. Attempting to start another app will do a restart automatically. Running GUI-Server apps from newlisp-edit.lsp seems to be reliable now on MacOX X and Windows XP. new menu 'File/Save Settings' saves all font, color and current directory when loading file. The settimgs file contains many more settings, which can be changed to give the editor a complete diferent appearance: - The toolbar can be hidden completely or made floatable. - The tabs can be relocated to the bottom, left or right side of the editor. - The window size can be set to a desired X,Y width and height. When newlisp-edit.lsp starts the first time and does not encounter a config file it gets created in the current home directory. File and settings saving is announced in the monitor area. Note, the directory remembered when open the file dialog is the directory of the currently open tab. An optional icon can be added to gs:message-dialog when defining the type as "plain". In this case a user supplied icon will be shown. 0.995 newlisp-edit.lsp: - Font size did not get saved by 'File/Save Settings'. - settings file ion Win32 gets now written to APPDATA/newLISP/newlisp-edit.conf where APPDATA is the Win32 environment variable for the applications data directory. If APPDATA is not defined USERPOFILE or DOCUMENT_ROOT is assumed On all other OS .newlisp-edit.conf is written to the users home directory in UNIX like fashion. This may change in the future for the Mac OX X to: ~/Libarary/Application Support/newLISP/newlisp-edit.conf - The toolbar can now be detached/reattached from the View menu - The Tool menu as a 'Save Settings' option. - The Help menu has options to access newLISP and GUI-Server docs. - When editing the settings file and leaving an error, the next startup of newlisp-edit will give an error message box with the error. - Ctrl-F (Win32) or meta-F (OS X) reenter the find dialog if not already open (this was already in 0.994, but not mentioned). - Pressing ESC while in find dialog text field will close the find dialog this is consisten with behaviour of other Java-Swing built-in dialogs. When in the edit area ctrl-D / meta-D, will still work to dispose of the find-dialog - on Mac OS X ctrl-up will select the tab, then keys left or right will let select other tabs. This is Java-Swing built-in behaviour and assumed to work like this on all platforms. New gs:menu-item-check for checked menu items (behaves like a check box) A new chapter about writing and debugging event handlers was added in the guiserver.lsp.html documentation. 0.996 newlisp-edit.lsp: - settings will now remember loaction and size of newlisp-edit.lsp on the screen - Edit/Find marked edit buffer as dirty, which was not correct (icon and red dot) - new menu option Edit/Goto Line - mew menu option Files/Recent Files remembers a list of recently saved files the list is automatically updated each time a file is saved and maintained in the file $APPDATA/newlisp-edit-recent on Win32 or in $HOME/.newlisp-edit-recent on Mac OS X and Unix popup menus now displayed in correct position on scrollable content gs:get-bounds was broken, now displayes on-scrren coordinates for top level windows new gs:goto-text - positions cursor in text at row columns position new gs:load-text, gs:save-text to directlty load/save docs in to/from gs:text-pane these should not be used from Win32 because they don't work correctly with CR/LF line terminated files when using Edit/Find documentation links in the Help menu have been taken out, because browser blocks guiserver.jar from exiting on Win32 0.997 When using gs:load-text it now correctly filters carriage returns when loading files on Win32 or any other platforms. gs:save-text will always write LF line terminations. If this is not desirable, gs:get-text should be used instead. ESC in find dialog also works when cursor in replace text field. ESC will close the dialog without initiaiting search action, as it did wrongly before. demo directory accessible from the Help menu Many additions and corrections to the documentaion. 0.998 new gs:set-syntax-selected for enabling newLISP syntax highlighting in gs:text-pane new gs:set-caret-color for setting a caret color in in all text widgets new gs:set-selection-color for setting a text selection color new gs:set-syntax-colors for setting syntax colors for keywords, comments etc. new gs:key-event to register key events for any component (except text widgets, which already register keyevents by default) syntax highlighting in newlisp-edit.lsp: - 3 preconfigured themes to choose from for medium, low and high contrast - alt-Y (Win32) or meta-Y (Mac OS X) toggle syntax highlighting on/off - by default all files ending in .lsp are highlighted 0.999 newlisp-edit.lsp: - any number of syntax profiles can now be configured in the settings file and loaded automatically into the View menu on startup. - for the Tool menu scripts can be registered using the settings file. The scripts are run over the content of the current edit tab. The contents of the current edit tab is saved to a tmporary file, and the name of this file is passed as an argument to the script. The output of the script is shown in the monitor area. - added tabulator size (in points) to settings file - syntax on/off is remembered when switching tabs - Edit/Get Position tells line and column positin of text cursor - undo/redo was broken when in syntax highlighting mode. Undo/redo is now reset whenever switching syntax highligthing on/off. Loading a file is not part of an undoable operation anymore. - eliminated foreground/background color options which are set as part of the color theme. When syntax highlighting is tirned off, foreground and background are still defined by the colors of the current theme. - non-existing files in the recent files list are eliminated automatically - now remembers correctly screen positions in settings file on all platforms - eliminated black flash before splash screen display - startup on Win32 w/o run.exe now shows hour glass cursor - Clear Monitor disable/enable was faulty - now highlights search text when returning to find/replace dialog - message box when saving failed, e.g. becuase of wromg permissions gs:set-cursor now works correctly in text widgets. gs:get-bonds now works correctly for on-screen widgets 1.0 feature complete for release August 15th fixed unreliable gs:layout fixed occasional text blur in monitor area of newlisp-edit.lsp new gs:get-selected-text, works like gs:get-text but retrieves selected text only added C, C++, Java and PHP syntax highlighting, automatically selected for .c, .cpp, .h, .java and .php files. When a file does not have a known extension when loading, then no syntax highlighing is selected. But when switching highlighting on via View/Syntax or meta-Y (OS X) or alt-Y (Win32), a menu pops up for selecting a highlighting mode. some small fixes for newLISP syntax highlighting now 2 types of scripts in Tool menu and registered in currentScripts in settings file: - Type "content" takes the contens of the edutor and passes it as a file to the script. Anything printed in the script goes to the monitor area in the editor. See the program word-count.lsp for an example - Type "selection" takes the selection of the editor and passes it as a file to the script. Anyting printed from thr script replaces the selectin. If nothing was selected the output og the script gets inserted at the text caret. The selection replace/insert type of script operation can be undone using Edit/Undo. In the settings file: the menu string, the script path name, the type and an optional shortcut key are specified. See the settings file for an example. The settings file gets automatically created when not present on startup and registers the two scripts word-count.lsp and uppercase.lsp. The settings file can be edited using the option in the Tools menu. before installing this version remove old settingfile on Win32: $HOME/Application Data/newLISP/newlisp-edit.conf or on Mac OS X and Unix: ~/.newlisp-edit.conf 1.01 August 15th release In newlis-edit.lsp: changed key assignments for fonts smaller/bigger: meta-minus and shift-meta-equals on Mac OS X and ctrl-minus ctrl-equals on Win32. For Mac OS X this is standard, for Win32 it mimics FireFox behaviour. The items in gs:list-box and gs:combo-box can be either given individually or in a list: (gs:list-box 'TheListBox 'list-action '("a" "b" "c)) New gs:play-sound plays/streams .wav and .aif sound files. 1.03 The monitor area now works also as a newLISP shell, where expressions can be typed in directly and evaluated. The red/green led is not necessary anymore. The shell can be restarted at any time, even if a process is running. The run button will only work if the shell is present. If the shell is exited by a program, hit the restart button to restart. When restarting the shell while a program in it is running, the program will quit and the shell restart. When the monitor/shell area has focus: Ctrl-l clears monitor and gives shell prompt (like Meta-m/Alt-m) Ctrl-p copies previous command Other common readline/editing commands usual in UNIX shells may be implemented in the future. On Win32 Ctrl-l used to be "goto line" now: Alt-l On Win32 Ctrl-Shift-l used to "show current line/column" now: shift-Alt-l newLISP-edit can be exited at any time, if a process is still running in the shell window it keeps on running after newLISP-edit closed. New gs:run-shell installs a shell process in the monitor area New gs:eval-shell send a string for evaluation in the shell New gs:destroy-shell destroys the shell Note that newlis-edit.lsp uses newISP as a shell process, but other shells can be started using gs:run-shell. New gs:reorder-tags reorders the stacking order of tagged images. See the file drag-demo.lsp for usage (comment in gs:reorder-tags statement in line 47) 1.04 Monitor background and foreground colors are now configuable in settings file do a File/Save Settings first to have the new config variables registered, then Tools/Edit Settings for editing: currentMonitorBackground and currentMonitorForeground. Fix when evaluating in shell area after Ctrl-L, Meta-M (Alt-M). Eliminated some quirks when copying/pasting between editor and monitor/shell area, and when hitting enter in the middle of an edited command. Now full commandline history in shell-commandline when using arrow-up/down. meta-1, meta-2 (alt-1, alt-2 on Win32) for switching between editor and shell/monitor. More bash-shell like key bindings on UNIX: Ctrl-A beginnining of line after the shell prompt , Ctrl-E end of line (in gs:text-area with shell attached). new gs:color-tag colors all shapes with the same tag 1.05 gs:get-text now can be called without an action handler to return the text immedeately. This new synchronous mnode of gs:get-text is not recommended when receiving larger text areas, as the call is blocking until all text is returned, but makes coding simple data forms a lot shorter. gs:mouse-move now can take an additional boolean parameter to indicate that a list of tags are to be returned in the mouse-move event handler. The flag should not be used when large amount of tags are present as it can slow down performance significantly calculating and transmitting tag lists on every mouse movement. gs:key-event now also can be registered as a second key listener on text widgets. This is espacially interesting on gs:text-field, where individual key action could not be captured before, as the normal handler registered with gs:text-area only handles the ENTER and ESC key. fix in gs:run-shell for shells without prompts now uses patform independent: (load (append (env "NEWLISPDIR") "/guiserver.lsp")) in all demo files to load guiserver.lsp 1.06 edit buffer did not get marked as dirty when cutting/pasting into clean buffer when file-recent-loading->saving->file-recent-reloading the same file editor crashed make sure shell proccesses in monitor window are destroyed when closing newlisp-edit because of new 'process' in newlisp core full java path is needed in process statement in gs:init function. Assumes /usr/bin/java 1.07 Tcp/Ip connection between Guiserver and newLISP now goes via 127.0.0.1, not localhost to avoid loss of connection when computer sleeps, while an GS application was running. when runniung editor contents and shell is dow, the shell will be restarted automatically the editor now loads, saves and displays UTF-8 correctly 1.08 Guiserver now adjusts automatically to set UTF-8 on/off depending on newLISP version The Win32 is again shipped as not UTF-8 by default. new gs:window-moved and gs:window-resized. See new demo file move-resize-demo.lsp 1.09 reverse "meta N" and "shift meta N" on OS X to be standard with "meta N" new window/tab on OS X gs:mouse-event now can also be used on list boxes made with gs:list-box, this makes it possible to process single clicks. 1.10 the gs:list-box event now responds on any click-count, previously only on 2 for double click. Addtionally the click-count is transmitted in the event as the last parameter 1.11 replace all can now be redone, double undo not required any more for replace new gs:undo-enable undo is currently disabled in newlisp-edit for find/replace because of instabilities 1.12 newlisp-edit "Undo Previous" button in find dialog, this is used to undo replacements. Replacements cannot be undone with normal undo when the find dialog is closed again, but can only be undone from inside the find dialog 1.12-13-14 in guiserver.lsp now checking JAVA_HOME when not Win32 or OS X 1.15 fixed highlighing for 'pop-assoc' 1.16 highlighting for regex-comp, spawn, sync and abort a bug fix for newlisp-edit.lsp 1.12 for an editor crash caused by index overrun in switch-to-tab function newlisp-edit.lsp will quit right away when buffers are clean without showing "You really ..." dialog fixed gs:text-area area hangup when deleting backwards beyond beginning o line and hitting enter 1.17 UTF-8 gs:set-text for gs:text-pane, gs:text-area and gs:text-field. 1.18 UTF-8 text now working on all widgets and setter/getter functions. UTF-8 is enabled by default on the Mac OS X installer but not on Win32 which uses ISO 8859 code pages to display some eastern European and Middle Eastern fonts. Running an UTF-8 enabled version with newLISP-GS on Win32 will automatically switch newLISP-GS to UTF-8. new gs:midi-init, gs:midi-close, gs:midi-patch, gs:play-note, gs:play-sequence gs:add-track and gs:mute-track for controlling an internal MIDI device. On Win32 a soundbank must be installed, see the description for gs:play-note for more details, where to get and how to install a soundbank file. 1.19 Non-default directory install on Win32 now works. Windows must be rebooted when not accepting the default directory, so the different path set in the environment variable NEWLISPDIR can come into effect. New gs:save-sequence saves sequences created using gs:add-track to a MIDI file. gs:midi-init now can take a file path to an external soundbank file. gs:channel-bend can be used to tune a channel up or down by a halftone 1.20 fixed check option in gs:menu-item-check 1.21 gs:channel-bend did not remember channel specific setting when using on more than one channel reworked handling of bpm and resolution (gs:midi-bpm). Now recording with gs:save-sequence will work for any BPM settings correctly notes in gs:play-note and gs:add-track now can have an optional last parameter for a note specific pitch-pend 1.22 when history line in cursor-up keystroke in minitor area contains more than one line only the last line will enter history gs:set-canvas did not change current canvas for guiserver.lsp 1.23 fixed a long standing bug when copying pasting inside the monitor area 1.24 some code cleanup in TextAreaWidget.java Ctrl-A and HOME in monitor area now go to beginning of line _after_ the prompt Ctrl-P goes up in history, Ctrl-N goes down in history (like cursor UP, DOWN) Most Emacs (or Bash shell) commandline editing key strokes now work in the monitor area 1.25 changes for 9.9.2 1.26 guiserver don't repeat last color change on keystroke but display normal color 1.27 added $it, bits, estack and read-utf8 to syntax highlighting 1.28 [cmd][/cmd] tags can now be used in the monitor area 1.29 added transfer-event to syntax highlighter 1.30 a fix in the syntax highlighter for newLISP mode in newlisp-edit.sp font can now shanged in both, the editor and the monitor 1.31 syntax highlighting for new functions 1.32 the function gs:color-tag was documented but not implemented in newlisp-edit.lsp dirty-buffer indication did not work with Ctrl-x/v/z/Z and Cmd-x/v/z/Z 1.33/34 added new functions to the syntax highlighter 1.35 added new 'extend' and changed all copyright notes to 2010 1.36 added 'term', '++', '--' and eliminated 'name' from SyntaxHighligher.java 1.37 new OSXAdapter.java from Apple and related changes in guiserver.java add 'serialVersionUID' to various files to avoid warnings in new Java versions 1.38 an additional parameter in gs:text-field specifies a cover character to use the text-field for password entry new textfield-demo.lsp a UTF-8 fix for gs:get-fonts when font names a UTF-8 fix for gs:append-text for labels a UTF-8 dix gs:select-list-items for combo boxes, added to widget-demo-(ru, jp).lsp a UTF-8 fix for gs:get-text for Dialog widgets a UTF-8 fix for gs:menu-item-check a UTF-8 fix for the tabbed pane when tabes are selected a UTF-8 fix for gs:set-tool-tab a UTF-8 fix for gs:set-font when font names are in UTF-8 1.39 New Base64Coder.java with UTF8 aware encodeStringUTF8() and decodeStringUTF8() 1.40 Syntax highlighting for date-parse (new writing of parse-date), date-list, net-packet and net-ipv 1.41 Instability when nesting gs:check-event calls inside handler functions called from gs:listen, was entirely caused by an interaction of the global variable 'event' used in both functions. This variable is now localized in both functions. Seperation of synchronous versus asynchronous communications, as suggested by a user is therefore not necessary. 1.42 New table widget and support functions with code contributed by Unya from: http://newlispfanclub.alh.net/forum/ 1.43 Bug fix in table API 1.44 fixed error message in gs:save-sequence 1.45 Some error messages in the Midi part now exit the program to avoid error dialog loops. Added struct to SyntaxHighlighter.java 1.46 added various new primitives to SyntaxHighlighter.java 1.47 gs:get-text now handles empty gs:text-field correctly 1.48 added various new primitives to SyntaxHighlighter.java syntxa highlighting for binary numbers like 0b10101 1.50 fixed gs:run-shell in newlisp-edit.lsp and TextAreaWidget.java for different handling of Runtime.getRuntime().exec(cmdArray) in Java 7 update 21. 1.51 When adding columns with empty string headers, this will not any more put the column number as header. This allows to add columns to headerless tables, as possible when supplying empty string headers in the initial gs:table statement. 1.60 New table functions igs:table-remove-row, gs:table-set-column-name and gs:table-set-row-count. Thanks to Ferry de Bruin. The nameing of gs:table-set-row-number is deprecated and should be called as gs:table-show-row-number. The old naming will continue to work. 1.60 Addtions to the table interface. 1.62 Make +123 and +1.23 work in syntax highlighter. Make sicentific notation e.g. 1.23e-4 work in syntax highlighter. 1.66 fixed screeen update when scrolling, fixed guierver quit menu.