newlisp/guiserver/CHANGES

985 lines
38 KiB
Text

0.2
documentation corrections regarding default layout of frame and dialog
switchable look-and-feel with (gs:set-look-and-feel <str-spec>)
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 <sym-id> <sym-action> <str-orientation>
[<sym-widget> <sym-tab-title> ...])
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.