ChangeLog

2.20.2  2.20.1  2.20.0  2.19.0  2.18.0  2.17.0  2.16.0  2.15.2  2.15.1  2.15  2.14  2.13.1  2.13  2.12  2.11.1  2.11  2.10.2  2.10.1  2.10  2.9  2.8.2  2.8.1  2.8  2.7.0  2.6.0  2.5.0  2.4.1  2.4.0  2.3.0  2.2.1  2.2.0  2.1.0  2.0.0  1.9.92  1.9.91  1.9.90  1.9.51  1.9.50  1.9.49  1.9.48  1.9.47  1.9.46  1.9.45  1.9.44  1.9.43  1.9.42  1.9.41  1.9.40  1.9.39  1.9.38  1.9.37  1.9.36  1.9.35  1.9.34  1.9.33  1.9.32  1.9.31  1.9.30  1.9.29  1.9.28  1.9.27  1.9.26  1.9.25  1.9.24  1.9.23  1.9.22  1.9.21  1.9.20  1.9.19  1.9.18  1.9.17  1.9.16  1.9.15  1.9.14  1.9.13  1.9.12  1.9.11  1.9.10  1.9.9  1.9.8  1.9.7  1.9.6  1.9.5  1.9.4  1.9.3  1.9.2  1.9.1 
2.20.2 - 15 Mar 2010

Configuration

  • BUG: Add missing symbolic links on 'missing' and 'install-sh' files.
  • BUG: Backport the 'reconf' script from Gambas 3.

Development Environment

  • BUG: Don't try to replace underscores in project names when creating *.deb packages. It does not work, and apparently dpkg-buildpackage has no problem with them.

Interpreter

  • BUG: Prevent a crash if during a _free special method, an element is removed from a collection being freed.

GB.GTK

  • BUG: ComboBox cannot raise its click event recursively anymore.

GB.QT

  • BUG: ComboBox cannot raise its click event recursively anymore.
  • BUG: TrayIcons cannot be released twice anymore, which prevents a crash.
2.20.1 - 07 Mar 2010

Development Environment

  • BUG: Prevent an infinite recursion in icon selector.

Interpreter

  • BUG: String[].Exist() now correctly returns a boolean.

GB.GTK

  • BUG: Fix the ComboBox Click event behaviour. See the wiki for more details.

GB.PDF

  • BUG: Make gb.pdf compile with poppler 0.5.

GB.QT

  • BUG: Fix the ComboBox Click event behaviour. See the wiki for more details.
2.20.0 - 01 Mar 2010

Development Environment

  • BUG: Always correctly round control coordinates in the form editor when the form Scaled property is set.
  • BUG: Clicking on the "About component" button in the project property dialog cannot crash anymore.
  • BUG: Fix the packager for Debian and Ubuntu distributions.

Interpreter

  • BUG: Never display newlines inside error message, the debugger does not like them.
  • BUG: Correctly detect out of memory errors when creating big arrays.
  • BUG: Use the system maximum path length constant, not ours.
  • BUG: Do not crash if a RDir() finds a too long path.
  • BUG: Fix string charset conversion routine API.
  • BUG: DateAdd() now does not fail anymore when substracting months up to January.
  • BUG: Allow a dynamic class to inherit a native static class without crashing.

Compiler

  • BUG: Use the system maximum path length constant, not ours.
  • BUG: Allow INHERITS to be followed by any identifier.

Informer

  • BUG: Use the system maximum path length constant, not ours.

GB.DEBUG

  • BUG: Use the system maximum path length constant, not ours.

GB.DESKTOP

  • BUG: Prevent gb.desktop from being unloaded by the interpreter. Otherwise there is a risk that the libxtst library is unloaded before the libx11 library, which leads to a crash.

GB.FORM

  • BUG: Clicking inside the FontChooser style ListBox now always works correctly.
  • BUG: Right and bottom SidePanels now shrink as expected when their parent container has no arrangement.
  • BUG: In DateChooser, switching to February works now, when there is 28 days in February and the current day is greater or equal than 29.

GB.GTK

  • BUG: Prevent a crash when creating an Image or a Picture with incorrect constructor arguments.
  • BUG: Move the window before showing it, so that it does not flicker.
  • BUG: When a modal window is running, only it can be closing from the window manager close button.
  • BUG: Popup menus now grab events correctly.
  • BUG: Store last event time for all low-level events, not just for mouse events.
  • BUG: Dialog.OpenFile does not use Dialog.Path as default file anymore if Dialog.Path is a directory.
  • BUG: Modal windows are really modal.
  • BUG: Try to prevent a possible crash in event management.
  • BUG: Fix the Key[] array accessor, so that it (almost) works like gb.qt.

GB.NET

  • BUG: Clear the CR / NL input conversion flags when initializing a serial port.

GB.PDF

  • BUG: PdfDocument.Find() now works correctly.
  • BUG: PDF indexes should be read correctly now.

GB.QT

  • BUG: Setting MovieBox Path property to NULL does not fail anymore.
  • BUG: Do not try to reparent a window in its Show() method when it is already visible.
  • BUG: Remove debugging messages.
  • BUG: Fix a possible crash in the MovieBox class due to the previous changes.
  • BUG: TreeView.Count and ColumnView.Count now return the number of items in the view like in gb.gtk, not just the number of root items.
  • BUG: Ignore disabled tab when using the mouse wheel on TabStrip.
  • BUG: Some text alignment flags were not correctly detected.
  • BUG: The ComboBox now raises its click event when it gets its first element, because that element is automatically selected.
  • BUG: Fix an infinite recursion in previous commit.

GB.SDL.SOUND

  • BUG: Music.Pos now returns 0 when the music is stopped, and not the position of the last pause.

GB.XML.RPC

  • BUG: Use CR+LF as end-of-line in the XML/RPC server.
2.19.0 - 03 Jan 2010

Configuration

  • BUG: Some fixes in architecture detection.
  • NEW: Detect architecture between x86, x86_64 and ARM.

Development Environment

  • BUG: Correctly save ListBox having exactly 31 items defined from the IDE.
  • NEW: Do not close the menu editor with the ENTER or the ESC key.

Examples

  • BUG: Fix the use of Dialog.Filter in the PictureDatabase example.

Interpreter

  • BUG: Try to stop break strict aliasing rules, and other fixes. This way the interpreter should behave better on ARM architecture.
  • BUG: Exist() now checks relative paths in the current archive only.
  • BUG: Backport fixes from Gambas 3 for Dir() operating inside archives.
  • BUG: Try to prevent a possible crash when children processes are stopped recursively.
  • BUG: Alignment fixes for ARM and 64 bits architectures.

Compiler

  • BUG: Long integer constants are now compiled correctly in all cases.

Scripter

  • BUG: Do not crash if a specific component is missing.
  • BUG: The script now correctly returns the Application.Return value.
  • BUG: Correctly detect the Main procedure in all cases.

GB.DB

  • BUG: Fixes for ARM.

GB.FORM

  • BUG: TableView cannot raise a spurious "Null object" error anymore when calling the Edit() method.

GB.GTK

  • BUG: Fixes for ARM.
  • BUG: GridView.Clear is now correctly implemented.

GB.NET

  • BUG: Do not watch the SerialPort file descriptor for reading if there is no Read event handler.
  • NEW: SerialPort watched for status change only if at least one of the change event is implemented.

GB.NET.SMTP

  • BUG: The COPYING file is actually the LICENCE file. So remove the LICENCE file, and make the COPYING file be the LGPL 2.1.

GB.QT

  • BUG: Fixes for ARM.
  • BUG: The ComboBox Click event now is raised correctly when setting the Text property.

GB.QT.KDE

  • BUG: Fixes for ARM.

GB.SDL

  • BUG: Remove running SDL events in a separate thread, as it give instability.
2.18.0 - 18 Nov 2009

Configuration

  • NEW: "GB_DIR" is a new environment variable that allows to define the Gambas installation directory. If this variable is not defined, the Gambas programs will act as usual.

Development Environment

  • BUG: The make executable dialog options are correctly refreshed depending on whether the project is a component or not.
  • BUG: Removing a source file removes correctly the translation file from version control too now.
  • NEW: Add support for Ukrainian language.

Examples

  • BUG: The hour hand follows the minutes now in the Clock example.

Interpreter

  • BUG: Compute the Gambas installation directory correctly in all cases.
  • BUG: The thousand separator is only printed between digits now.

GB.DEBUG

  • BUG: Try to open debugger fifo longer so that the IDE debugger can start on slow systems.

GB.GTK

  • BUG: Disable GDK native windows on GTK+ 2.18, so that gb.gtk works correctly.
  • BUG: Control.Reparent() works correctly now.
  • BUG: Frame label inherits foreground color correctly.

GB.NET.SMTP

  • BUG: Add the GNU LGPL 2.1 license file.

GB.XML.RPC

  • BUG: The RpcServer class sends all arguments to its RemoteCall callback, not the first one only.
2.17.0 - 25 Oct 2009

Development Environment

  • BUG: Fix a possible crash when saving the current cursor position.
  • BUG: Fix the layout of the message displayed when the debugging program segfaults.
  • BUG: Debugging windows can be shrinked to their minimal size normally now.
  • NEW: Greek translation made by Alexandros Prekates.

Database Manager

  • BUG: Saving and renaming tables having indexes works in all cases now.

Interpreter

  • BUG: Some structure padding and alignment fixes.
  • BUG: Non-integer constants are correctly optimized and keep their datatype.
  • BUG: Stopping watching a file descriptor inside a watching callback does not crash the interpreter event loop anymore.

Compiler

  • BUG: Prevent the compiler from crashing on ARM architecture and others that do not like misaligned data.
  • BUG: The compiler works correctly again on 64 bits OS.
  • BUG: Non-integer constants are correctly compiled and keep their datatype.

GB.DB

  • BUG: Some structure padding and alignment fixes.

GB.DEBUG

  • BUG: Some structure padding and alignment fixes.

GB.DRAW

  • BUG: Some structure padding and alignment fixes.

GB.EVAL

  • BUG: Some structure padding and alignment fixes.

GB.FORM

  • BUG: The ColorChoose won't crash anymore when entering an incorrect value in the color text field.

GB.GTK

  • BUG: The name property of newly created menus is correctly initialized now.
  • BUG: Changing the value of the Sorted property in TreeView, ColumnView, ListView and ListBox does not crash anymore.
  • BUG: Fix input method handling.
  • BUG: Do not crash when there is a keyboard event and no active control.
  • BUG: Using the quality argument when saving a picture or an image does not crash anymore.
  • BUG: Sorted editable combo-box correctly raise the Click event if their first item is selected.
  • BUG: Fix the behaviour of ComboBox again, so that it behaves the same way as in gb.qt.
  • BUG: TextBox.Insert() correctly deletes the selected text before inserting the new one.
  • BUG: Really fix the initialization of file dialog from Dialog.Path in the Dialog.Save() method.
  • NEW: Thanks to an hack based on a global event handler, disabled controls now answer events like in gb.qt.
  • NEW: Application_KeyPress global event handler has been implemented.

GB.QT

  • BUG: Ensure that the text of GridView cells is not wrapped.

GB.SDL

  • BUG: Fix potential problem in storage with the window title.
2.16.0 - 09 Sep 2009

Configuration

  • BUG: Try to fix building with Autoconf 2.64
  • NEW: Put custom autoconf macros in the "m4" directory.
  • NEW: Drop libltdl.
  • NEW: Use a recent libtool.
  • NEW: Make the ./reconf script verbose.

Development Environment

  • BUG: Clear the breakpoint list when opening a new project.
  • BUG: In the menu editor, shortcuts are now correctly saved in all cases.
  • BUG: Do not fail to load a project when a component is not installed.
  • BUG: In the "Requires" tab of the project property dialog, requirements are not incorrectly converted to lower case anymore.
  • BUG: Keep case of "Exclude" and "Requires" component properties.

Interpreter

  • BUG: Fix many compilation warnings with gcc 4.4.
  • BUG: Setting a breakpoint in the startup class works again.
  • BUG: The READ instruction could lead to a crash when reading a string with a maximum length. Fix backported from Gambas 3.
  • BUG: 64-bits fixes in the interpreter API. Watching file descriptors won't crash anymore on 64 bits system when adresses outside of 32 bits address space are used.
  • BUG: Fix an uninitialized value in the date formatting routine.

Compiler

  • BUG: "Ambiguous braces" error message was incorrect, and has been replaced by "Ambigous brackets".
  • BUG: Fix symbol tables that sometimes didn't work correctly when storing symbols having non-ASCII characters.

GB.FORM.MDI

  • NEW: Ctrl+PgUp and Ctrl+PgDown are two new shortcuts to move to the previous or next tab in the Workspace control.

GB.NET

  • BUG: Fix an uninitialized value in SerialPort class, when retrieving the port signal status.

GB.OPENGL

  • BUG: Fix bad code factorization with Gl.Vertex, Gl.Color, Gl.TexCoord and Gl.RasterPos

GB.PDF

  • BUG: Make gb.pdf compile with poppler >= 0.11.3.

GB.SDL

  • NEW: Remove the old m4 directory before starting backporting the updated configuration process from Gambas 3.

GB.SETTINGS

  • BUG: Fix the internal string quoting routine of the Settings class, so that storing strings with newline inside works correctly.
2.15.2 - 29 Jul 2009

Interpreter

  • BUG: Fix the number to string conversion routine. The sign must be extended only in base 2 and 16!
  • BUG: A new function in the debugger interface to search for a class only inside the running project.

GB.DEBUG

  • BUG: Pending breakpoints now search for their class only inside the running project.
2.15.1 - 28 Jul 2009

Scripter

  • BUG: The scripter now compiles again.
2.15 - 25 Jul 2009

Development Environment

  • BUG: Fix a crash while scanning a class if the project is a component and if it is self-checked, which happens as soon as it is locally installed.
  • BUG: Do not warn when a *.info file is not found, as gb.db.* drivers do not have one.
  • NEW: Changing the language in the translation dialog now keep the current translated string selected, and stay in the same translation file.

Database Manager

  • BUG: Handle correctly database type written in upper case.

Examples

  • BUG: Fix the PdfViewer example so that it does not crash when it cannot understand the document index.

Interpreter

  • BUG: Fix a possible crash in database component classes having sub-collections, like Result.Fields.
  • BUG: Fix a stupid bug that made the interpreter crash when a class was allocated at a negative memory address.
  • BUG: Fix the conversion of strings into numbers, especially when converting Long values.

Compiler

  • BUG: Correctly raise a syntax error when a comma has been forgotten between the stream and the other arguments in instructions like PRINT, SEEK, and so on.

Informer

  • BUG: Warn for components not declaring classes, like database drivers, only if the '-v' option is defined.

GB.DB

  • BUG: Correctly release field information when freeing a Result object.
  • NEW: New unquoting function in the component API.

GB.DB.FIREBIRD

  • BUG: Link the driver to the fbclient library.

GB.DB.SQLITE2

  • BUG: Prevent possible case mismatches when mapping SQLite datatypes.
  • BUG: Fix some casting with gcc version 4.4.0 20090630 (prerelease)
  • BUG: Fix a crash in datatype mapping.

GB.DB.SQLITE3

  • BUG: Prevent possible case mismatches when mapping SQLite datatypes.
  • BUG: Field default values are correctly returned now.
  • BUG: Fix some casting with gcc version 4.4.0 20090630 (prerelease)
  • BUG: Fix a crash in datatype mapping.

GB.GTK

  • BUG: If the Control.Font property is set with a family name, the other boolean properties of the font are reset.
  • BUG: Frame.Font now works correctly.
  • BUG: The Window.Sticky property now really returns a boolean.
  • BUG: Fix all controls that use a GtkScrolledWindow.
  • BUG: Fix Control.Raise() and Control.Lower() with controls using a GtkScrolledWindow.
  • BUG: The ClientWidth and ClientHeight properties of TreeView, ListView and ColumnView controls were implemented.
  • BUG: The title of GridView headers is now ellipsized, and are not drawn anymore when there is no space for that.
  • BUG: Fix the leaking of GtkCellRenderer in some classes.

GB.NET

  • BUG: Fix a possible crash in the Socket class at connection.

GB.NET.SMTP

  • BUG: Fix the UTF-8 encoding of mail subjects having a '?' character inside.
  • NEW: Send the "Date:" header with any mail.

GB.PDF

  • BUG: Fix a possible crash whith PDF documents having index but no action associated with

GB.QT

  • BUG: If the Control.Font property is set with a family name, the other boolean properties of the font are reset.
  • BUG: The Window.TopOnly and Window.Stacking properties now return the last value assigned as in gb.gtk. It does not try to get the value from the window manager, as the change may not be immediate.
  • BUG: Fix a typo mistake.
  • BUG: Fix the behaviour of TabStrip when all its pages are hidden.

GB.XML

  • BUG: Fix the Xml.Encoding property that was not implemented. It now always returns "UTF-8".
  • BUG: Fix a memory leak in Xml.ToString().
  • BUG: The encoding argument of Xml.ToString() is now taken into account.
  • BUG: Xml.ToString() now uses the UTF-8 charset by default.
2.14 - 26 Jun 2009

Configuration

  • NEW: All database drivers became components so that they can be an explicit project dependency.

Interpreter

  • NEW: Backport memory debugging routines from Gambas 3.
  • BUG: Fix uninitialized flags in streams, which made INPUT mad on 64 bits systems.
  • BUG: Fix the file watch management routines.
  • BUG: Freeing a collection does not crash anymore if a collection item is removed during the process.
  • BUG: Static variables are correctly inherited now.
  • BUG: Fix compilation on 64 bits systems.
  • BUG: Standard streams are not closed at exit anymore.

Compiler

  • BUG: Unexpected END SUB or END FUNCTION are detected now.

GB.CORBA

  • BUG: Fix building with gcc 4.4.0

GB.DB.SQLITE2

  • BUG: Fix strchr() casting with next gcc 4.4 release.

GB.DB.SQLITE3

  • BUG: Fix strchr() casting with next gcc 4.4 release.

GB.FORM

  • BUG: The ValueBox.ReadOnly now works as expected.
  • BUG: DirView now supports an hidden directory as root.

GB.GTK

  • BUG: Controls using the base style color (like TextBox, TextArea...) do not take the background color of their parent by default.
  • BUG: Reparenting a top-level window, or putting it inside a Workspace does not show hidden menus anymore.
  • BUG: Fix the Cursor class, and the Control.Cursor property.
  • BUG: Handle focus events the same way as in gb.qt.
  • BUG: Fix focus handling when SetFocus is called inside a GotFocus or LostFocus event handler.
  • BUG: Fix the file watch management routines.
  • BUG: Font management was redesigned. It does not leak memory anymore, and now behaves like in gb.qt.
  • BUG: Tristate CheckBox controls now work as expected.
  • BUG: Destroy pending deleted controls before entering the event loop, to avoid some memory leaks if the event loop is immediately aborted.
  • BUG: Detach destroyed controls from their event listener, as in gb.qt.
  • BUG: Fix a possible crash when setting the TextBox.Text property with a null string.

GB.NET.CURL

  • BUG: The first header string was not nul terminated.

GB.QT

  • BUG: Fix GotFocus and LostFocus events generation.
  • BUG: Fix focus handling when SetFocus is called inside a GotFocus or LostFocus event handler.
  • BUG: Fix the file watch management routines.
  • BUG: Fix the Clipboard class. Data copied into the clipboard was not visible to other applications in some cases.
  • BUG: Font properties are correctly inherited between containers and children controls.
  • BUG: Showing a tray icon does not eat focus events anymore.
2.13.1 - 26 May 2009

Configuration

  • NEW: Switch to version 2.13.1.

Interpreter

  • NEW: Some forgotten FreeBSD patch.

GB.DB.SQLITE2

  • BUG: Fix building with gcc 4.4.0.

GB.GTK

  • BUG: Do not use gtk_adjustment_get_step_increment() if the GTK+ version is not at least 2.14.

GB.NET.CURL

  • BUG: A asynchronous transfer that ends does not stop the other ones anymore.
2.13 - 14 May 2009

Configuration

  • BUG: FreeBSD patches.

Development Environment

  • BUG: The right column of the property sheet is not too wide anymore.
  • NEW: Support for Hindi language.

Interpreter

  • BUG: The Atnh() function has been fixed.
  • BUG: Format$() now checks its second argument correctly when it is an integer.
  • BUG: FreeBSD patches.

Compiler

  • BUG: Move some debugging breakpoint instructions so that the debugger breaks at the right line when there is an error during an IF or a CASE instruction.
  • NEW: Support for FreeBSD getopt_long().

Archiver

  • NEW: Support for FreeBSD getopt_long().

Informer

  • NEW: Support for FreeBSD getopt_long().

Scripter

  • BUG: The <%...%> markups are now taken into account everywhere inside a server page.

GB.COMPRESS.ZLIB

  • BUG: Do not include the Linux specific header <bits/wordsize.h> anymore.

GB.DB.ODBC

  • BUG: Removed some compilation warnings.

GB.DB.SQLITE3

  • BUG: Fix building with gcc 4.4.0
  • BUG: Removed a compilation warning.

GB.DRAW

  • BUG: Some properties of the Draw class didn't correctly check that a drawing device was opened.

GB.EVAL

  • BUG: Removed some compilation warnings.

GB.FORM

  • BUG: TableView now handle the Return/Enter key by raising the Click event instead of automatically editing the cell, so that non-editable cells are not edited by mistake.
  • BUG: The same fix was applied to the way TableView handles arrow keys.
  • BUG: The TableView editor now has the same font as the master TableView.

GB.GTK

  • BUG: Fix Draw.Picture() and Draw.Image() on transparent pictures.
  • BUG: Correctly initialize the foreground and background colors at Draw.Begin().
  • BUG: ComboBox now raises focus events.
  • BUG: DrawingArea.Clear() does not erase the border anymore if the DrawingArea is cached.
  • BUG: Hiding a row or a column does not prevent the mouse wheel to work anymore in the GridView control.
  • BUG: Forgot to remove a debugging message.
  • BUG: Newly opened windows are now correctly shown at the specified position.
  • BUG: Removed a compilation warning.

GB.QT

  • BUG: Borderless modal windows do not show any border anymore with Metacity.
  • BUG: Fix Draw.Picture() and Draw.Image() on transparent pictures.
  • BUG: Compound controls like ComboBox should not raise spurious focus events anymore.
  • BUG: Fix a possible crash in GridView repaint.
2.12 - 19 Mar 2009

Configuration

  • NEW: Switch to 2.12 version.

Development Environment

  • BUG: Gambas version should be always displayed correctly in the about and welcome dialogs now.
  • NEW: Japanese translation updated.
  • NEW: Support for Malayalam language.
  • NEW: The toolbox now remembers if it is opened or closed.

Interpreter

  • BUG: Fix two possible bugs in 64 bits support.
  • BUG: MOD works again with Long values.
  • BUG: Array.Clear() now does not crash anymore on multi-dimensional arrays. It just voids the array contents. Array.Clear() behaviour on single dimensional arrays did not change: it removes all elements from the array.

GB.DB.SQLITE2

  • BUG: Fix a compilation warning.

GB.GTK

  • BUG: Fix the container arrangement and the ClientX / ClientY properties.
  • BUG: GridView Row and Column properties can be set independently.
  • BUG: The TabStrip.Font property works as expected.
  • BUG: Image.Draw() now works correctly if X or Y are negative.
  • BUG: TextLabel.Adjust() now works as expected.
  • BUG: Dialog.SaveFile() now correctly initializes the file name in the file chooser dialog.
  • BUG: Disabled controls correctly honor the Background property.
  • BUG: The Foreground and Background properties of TabStrip, CheckBox, RadioButton and other Button controls work as expected.
  • BUG: Setting the Font property does not create a memory leak anymore.
  • BUG: The menu bar of a reparented window does not disappear anymore.
  • BUG: Fix the ComboBox.Add() method slowness.
  • BUG: Fix the corruption of the Text property in editable combo-boxes.
  • BUG: Fix again the Font property for non-control classes.

GB.NET

  • BUG: UdpSocket.TargetPort returns the accurate value now.
  • BUG: Too many connections on a ServerSocket does not take 100% CPU anymore.

GB.PDF

  • BUG: PdfDocument.HasIndex does not return TRUE anymore when there is an index whose length is null.
  • BUG: Fix PdfIndex.HasChildren that sometimes returned TRUE when there was no children.
  • BUG: Fix PdfIndex.MoveChild() accordingly.

GB.QT

  • BUG: Borderless windows do not have a border anymore with Metacity.
  • BUG: The Window.Mask property works correctly now.
  • BUG: Draw.Image() and Draw.Picture() now work correctly on transparent pictures.
  • BUG: The minimum size of modal dialog is correctly set again.

GB.XML.RPC

  • BUG: RpcStruct.Value() should work as expected now.
  • BUG: Event management was fixed, thanks to Ron.
  • BUG: RcpArray.Copy() now returns an RpcArray object.
2.11.1 - 01 Feb 2009

Interpreter

  • BUG: Fix the arithmetic operations on Boolean, Byte and Short, so that everything is correctly truncated.

Compiler

  • BUG: Fix error message in the FOR...NEXT loop analyze.

GB.QT

  • BUG: Fix the automatic stretching of the last column of a GridView.
  • BUG: Fix the GridView cell padding.
2.11 - 28 Jan 2009

Development Environment

  • BUG: A warning is displayed now when a component project has no exported class.
  • BUG: Instead of displaying an error, an unreadable *.component file now just displays a warning.
  • BUG: Print warnings on the standard error output now.
  • BUG: The find balloon message is always displayed in the accurate field now.
  • BUG: The packager now handle spaces in project directory path correctly when creating an autotool package.
  • BUG: A badly named environmental variable does not freeze the IDE anymore.
  • NEW: In the project property dialog, split the component list between standard components and user components.

Interpreter

  • BUG: The _compare special method now is not called anymore if one of the compared object references is null.

GB.DEBUG

  • NEW: Do not block anymore when opening the debug fifo for writing. Try a few times during 0.1 second.

GB.DRAW

  • BUG: Correctly initialize color properties of the Draw class at Draw.Begin().

GB.FORM

  • BUG: Workaround the ballon corner drawing bugs.

GB.GTK

  • BUG: Image.Save() and Picture.Save() now understand the "~" shortcut in path names.
  • BUG: Fix the initialization of editable combo-box when its List property is set.
  • BUG: Remove a static variable not used anymore.

GB.NET

  • BUG: Serial port devices are now watched for reading, not for writing. So the callback will not be called permanently.

GB.QT

  • BUG: Do not loop indefinitely when arranging the contents of a ScrollView.
  • BUG: The last GridView column should be correctly stretched when its width is explicitely set now.
2.10.2 - 02 Jan 2009

GB.DB

  • BUG: Correctly check that table name are not void in Create(), Find(), Edit() and Delete() methods.

GB.NET.CURL

  • BUG: HttpClient and FtpClient Async property are now correctly initialized to TRUE.

GB.QT

  • BUG: Showing balloons does not freeze the GUI in some case anymore.
  • BUG: Setting the Menu.Shortcut property to NULL now correctly removes the shortcut.

GB.QT.EXT

  • BUG: Editor.Print() method now can deal with strings having null character inside.

GB.XML.XSLT

  • BUG: XSLT.Transform() now works correctly again.
2.10.1 - 30 Dec 2008

Database Manager

  • BUG: Add "firebird" in the list of databases.

GB.DB

  • NEW: Database types do not have to be in lowercase anymore.
  • BUG: Correctly raise a "type mismatch" error when a query argument is not translatable to SQL in Exec(), Find() and Edit() methods.
2.10 - 29 Dec 2008

Configuration

  • BUG: Fix unresolved variables in gb.qt generated Makefiles and possibly somewhere else.
  • NEW: Update libtool to the last version from Mandriva 2009 updates.

Development Environment

  • BUG: Fix the routine that returns the Desktop path.
  • BUG: Fix a possible crash in the property sheet when closing forms.
  • BUG: Fix a crash when saving a form with a tabstrip having a selected child.
  • BUG: Searching backward inside a subroutine should not freeze anymore.
  • BUG: Control and window dimensions can go up to 4096x4096 pixels.
  • BUG: When unchecking GUI components in a project, the edited forms are automatically closed.
  • BUG: Do not use the form icon on form class editors when refreshing the project.
  • BUG: In the icon editor, filling with a transparent color won't enter an infinite loop anymore.
  • BUG: Selecting the "Collection" word while debugging does not crash the IDE anymore.
  • NEW: Popup menu entries in code editor and form editor to define the current class as startup class.
  • NEW: Pressing Escape now closes a debugging window.
  • NEW: Added support for Valencian language, an official tongue in the Autonomous Community of Valencia, Spain.

Interpreter

  • BUG: Dir() and RDir() now work correctly on relative paths.
  • BUG: Enumerating something inside a _next() enumerator method now is safe.
  • BUG: Correctly handle interrupted system calls in streams defined outside of the interpreter.
  • BUG: Fix currency formats.
  • BUG: SUPER now works inside overriden static methods.
  • NEW: A domain name '(none)' is ignored when forging the FQDN for components that need it, like gb.net.smtp.

GB.DB.ODBC

  • BUG: Handle ODBC drivers that can return the number of records in a query better.

GB.DB.POSTGRESQL

  • BUG: Fix string quoting for postgresql >= 8.2.
  • BUG: Fix blob and string quoting.
  • BUG: Detect primary keys even if their name does not end with '_pkey'.
  • BUG: Correctly detect system databases.

GB.DEBUG

  • BUG: If there is an I/O error between a debugged process and the IDE, the process is aborted.
  • BUG: Evaluating a class name returns better information now.

GB.EVAL

  • BUG: Highlight.Analyze now correctly handles code lines having non ASCII characters inside.

GB.FORM

  • BUG: TableView edit field position is now correct when the TableView window has a menu bar.
  • BUG: The Balloon does not take the focus anymore.

GB.GTK

  • BUG: UserControl and UserContainer _Container properties are correctly implemented now. Consequently, the gb.form containers start working as expected.
  • BUG: Window.Background and Window.Foreground now work correctly when the window is embedded.
  • BUG: ClientX, ClientY, ClientW and ClientH container properties for Panel now take the frame into account, as in gb.qt.
  • BUG: TextLabel now deals correctly with its Font property.
  • BUG: TextLabel with AutoResize set now resizes the same way as in gb.qt.
  • BUG: Draw.RichText() now deals correctly with the Draw.Font property.
  • BUG: Windows having SkipTaskbar set now get the focus correctly when activated.
  • BUG: Setting ListBox.List and ComboBox.List does not raise the Click event anymore, as in gb.qt.
  • BUG: Searching an item in a ComboBox does not crash anymore.
  • BUG: TrayIcons do not raise events anymore if a modal dialog is shown.
  • BUG: If no toplevel menu is visible, then the window menubar is hidden.
  • BUG: As in gb.gt, toplevel menus with no text (separators) are hidden.
  • BUG: The TrayIcons _next and _get special methods do not crash anymore.
  • BUG: Buttons color properties now should work as expected.
  • BUG: The error message box now uses the application title, not the application name.
  • BUG: Fix non-modal window event loop management.
  • BUG: Fix a leak in font objects management.
  • BUG: Picture.Load() yet loads an image, but internally converts it to a pixmap. It speeds up following draws based on this picture.
  • BUG: Startup forms hidden at design time are not shown automatically anymore.
  • BUG: Startup forms are visible by default again.
  • BUG: Fix the warning when closing a window.

GB.NET

  • BUG: The socket watch callbacks were incorrectly initialized!
  • BUG: Fix the Handle property for Socket, SerialPort and UdpSocket classes.
  • BUG: The Socket Ready event is correctly raised now.

GB.QT

  • BUG: Windows having SkipTaskbar set now get the focus correctly when activated.
  • BUG: Remove warning messages when changing control colors.
  • BUG: Disable automatic extra indent of Labels.
  • BUG: Startup forms hidden at design time are not shown automatically anymore.
  • BUG: Don't allow widgets to be destroyed while processing non-input events.
  • NEW: The Editor.Print() method automatically split lines longer than 256 characters.

GB.QT.EXT

  • BUG: Fix Editor margin width when showing line numbers.

GB.XML

  • BUG: Remove a method declared twice.

GB.XML.XSLT

  • BUG: The XSLT component works again.
2.9 - 30 Oct 2008

Configuration

  • BUG: Some bugs fixes coming from Gentoo.
  • BUG: Rename the "SDL_SOUND" autoconf package name as "SDLSOUND".
  • BUG: Fix acinclude.m4 for the help directory configuration.
  • BUG: Do not abort installation if a component written in gambas cannot be installed.

Development Environment

  • BUG: The save file dialog now correctly displays unsaved file icons.
  • BUG: Fixes relative to non fixed-size fonts support.
  • BUG: Fix the drawing of symbolic link overlay icon.
  • BUG: Fix the horizontal position of the automatic completion.
  • BUG: Look in project classes before component classes in automatic completion.
  • BUG: Do not increment version release if the packager wizard is cancelled.
  • BUG: The default directory where packages are stored is the home directory now.
  • BUG: Fix the signature display routine that sometimes underlined incorrectly.
  • BUG: Use version program at each project configuration write.
  • BUG: Fix the tooltip of the console find button.
  • BUG: Undocking the console does not hide the breakpoint tab anymore.
  • BUG: Use freedesktop standard to get the desktop path now. The routine was provided by Roland Pierret, and adapted by me.
  • BUG: Virtual control icons are searched in Gambas control directories.
  • BUG: Set the focus on the form when it becomes active.
  • BUG: Print the real size of directory contents when getting information on a project directory.
  • NEW: The packager now creates a package inside its own sub-directory. The name of this sub-directory is the package kind: "mandriva" for a Mandriva rpm, "ubuntu" for an Ubuntu deb, and so on.
  • NEW: Editors can use non fixed-size fonts.
  • NEW: Add a checkbox to tell the packager if it should create the packages in their own distribution-specific directories.
  • NEW: Write Gambas version in .project files.
  • NEW: A button that clears the shortcut in the menu editor.
  • NEW: The main selected control is unselectable in the form editor now.
  • NEW: Selected controls can be resized by pressing CTRL and an arrow key.
  • NEW: Some form editor shortcuts have been changed to not conflict with the previous feature.
  • NEW: When evaluating expression in the console, a semi-colon at the end of the expression prevents the end newline to be printed, like in the PRINT instruction.
  • NEW: CTRL+G in the console makes it flash.
  • NEW: Store the component version inside the .component files for component projects.
  • NEW: Package dependencies on component use the previous version stored in the .component file if it is available. Otherwise the current Gambas interpreter version is used.
  • NEW: Store the component version inside the .component files for component projects.
  • NEW: The packager wizard remembers the last directory used for storing packages.
  • NEW: A "paste special" function in the code editor, that allows to insert plain text or HTML text from the clipboard, and can comment it, quote it as a Gambas string, or transform it into PRINT instructions.
  • NEW: Update of Swedish translations
  • NEW: The directory where source package is done is remembered, by project.
  • NEW: Update of tips.sv

Database Manager

  • BUG: Do not keep the connection open when reading the database list is impossible.
  • BUG: Fix the management of connections with a specified database.
  • BUG: Some fix related to the now immediate invalidity of deleted forms.
  • NEW: Allows to open a connection on a specific database. This is useful if you are not allowed to connect to the default database of a server and cannot get the list of all databases.
  • NEW: Do no connect to the database when opening a server having its database specified.

Interpreter

  • BUG: Handle additions between a small integer constant and a string correctly, by converting the string to a floating point number.
  • BUG: Void arguments does not trim argument list anymore in the EXEC instruction.
  • BUG: Fix locale-aware string comparisons, i.e. string comparisons that use the gb.Language constant.
  • BUG: Correctly check if a locale-aware comparison fails, and does a binary comparison instead.
  • BUG: Fix a possible crash in String.UCase() and String.LCase().
  • BUG: Silently ignore conversion errors inside String.Upper() and String.Lower() methods.
  • NEW: Update copyright year in gb_common.h header file.
  • NEW: Make a dedicated tag field in the internal Gambas stream structure. That makes the code in components cleaner.

Compiler

  • BUG: Manage .list and .info files incrementally, so that they are up to date even when the project is not fully compiled.
  • BUG: Float and Single constants are correctly written in the .info file.

Scripter

  • BUG: Use gb.eval to analyze script instead of hand-made parsing.
  • BUG: Print a warning message when a component requirement is not found instead of halting.
  • BUG: Support for HTML comments in server pages.
  • NEW: New option -v to be verbose.
  • NEW: New option -c to ignore cache contents.
  • NEW: Support for gambas server pages!
  • NEW: Server page are now run by a program named 'gbw2', which is just a symbolic link to 'gbs2'.
  • NEW: Server page mime information.
  • NEW: The server pages are bufferized, otherwise you cannot use the Response object inside the page.

GB.DB

  • NEW: Add an API that allows a driver function to get the current database when it does not get it from its arguments.

GB.DB.MYSQL

  • BUG: Fix the drop index driver function.
  • NEW: Automatically retries the query when the connection with the server is lost while retrieving the database list.

GB.DB.POSTGRESQL

  • BUG: Fix blob support for some encodings, and when PostgreSQL version is greater or equal than 8.2.
  • BUG: Quote non-ASCII characters in strings the same way than with blobs.

GB.DB.SQLITE3

  • BUG: Field values are not truncated anymore.

GB.FORM.MDI

  • BUG: Do not try to activate a deleted window that is now invalid.

GB.GTK

  • BUG: Speeds up the combo-box control as much as I can. Slowness seems to be a GTK+ feature. :-/
  • BUG: Fix the use of the gambas part in the TreeView class.
  • BUG: Window.Picture property now works correctly when the window is embedded inside a container.
  • BUG: Embedded windows having a background picture are now correctly updated when they are resized.
  • BUG: Correctly handle a form close or destroy during an event handler.
  • BUG: The combo-box behaves now like the qt one. Its first item is always selected at startup.
  • BUG: Fix a variable misnaming.
  • BUG: Fix the arrangement of ScrollView container.
  • BUG: Fix the memory leak in the Picture class.
  • BUG: Remove the Window resize event compression.
  • BUG: Gridview cells are correctly refreshed now when their Picture or Font property change.
  • BUG: Fix the Embedder Plug & Discard methods.
  • NEW: Now deleted forms become immediately invalid.

GB.NET

  • BUG: Setting SerialPort parity should not strip the eigth bit of data bytes.
  • BUG: Fix SerialPort error messages.
  • BUG: Fix some error messages.
  • NEW: Use the new tag field from the Gambas stream structure.

GB.NET.CURL

  • BUG: Successive calls to the Get() or Put() methods should not make the interpreter crash at exit anymore.
  • BUG: Remove some debugging messages.
  • BUG: The component was redesigned to fix a crash in stream methods is synchronous mode.
  • BUG: Some 64-bits fixes.
  • BUG: The Status property is correctly set after an error now.
  • NEW: Use the new tag field from the Gambas stream structure.

GB.QT

  • BUG: Fix crash when setting a shortcut on a top-level menu.
  • BUG: The ComboBox.Item.Text property now correctly returns UTF-8 text.
  • BUG: Clipboard.Paste() now returns an UTF-8 string.
  • BUG: Correctly handle a form close or destroy during an event handler.
  • BUG: Checking if the application must quit is deferred, so that closing a form and opening another one keeps the application running.
  • BUG: Block events when setting the number of rows and columns in GridView. That prevents some bad crashes.
  • BUG: The window events management was redesigned, mainly by copying the behaviour of gb.gtk. The Open event is now raised before the window is shown.
  • BUG: Setting the Minimized, Maximized and FullScreen Window properties during the Open event now works as expected.
  • BUG: The initial Move and Resize events of a window are not raised immediately after the Open event, but delayed. Otherwise sometimes some widgets are not correctly layouted.
  • BUG: The Container.Children property does not return invalid controls anymore.
  • BUG: Showing a window during an Open or Close event, and closing a window during the Close event now do nothing.
  • BUG: WAIT does not take 100% CPU anymore.
  • BUG: Fix an uninitialized variable in the QtXEmbedContainer class.
  • NEW: Now deleted forms become immediately invalid.

GB.QT.EXT

  • BUG: Fix the conversion of mouse horizontal position to cursor position in the Editor control.
  • BUG: In Editor, the line width must not be smaller than the visible width.
  • BUG: Many fixes in Editor drawing routine.
  • BUG: In Editor, Undo and Redo now should always work correctly when a line is rewritten.
  • BUG: Fix conversion from cursor position to text column in Editor.
  • BUG: Don't paste in Editor if there is nothing to paste.
  • BUG: In Editor, do not call the event loop when scrolling. That can lead to infinite recursion.
  • NEW: The editor now support non fixed-size fonts.
  • NEW: In Editor, CTRL+BACKSPACE deletes the left word now.
  • NEW: In Editor, CTRL+DELETE deletes the right word now.
  • NEW: The Editor is cleared now when it prints a CTRL+L character.
  • NEW: The Editor flashes now when it prints a CTRL+G character.
  • NEW: In Editor, when a line is rewritten, the Change event is always emitted.
  • NEW: In Editor, show trailing spaces at end of lines with dots.
  • OPT: Indention, unindentation, and everything that acts between a Begin() and End() commands only emit the Change event once. Consequently, these actions are not slow anymore.
  • OPT: Optimize undo and redo the same way as ident and unindent.

GB.XML

  • BUG: The management of XML nodes was incorrect, and so was redesigned.
2.8.2 - 30 Aug 2008

Development Environment

  • NEW: Small changes in the project property dialog layout.
  • BUG: When opening a project, the packager information is correctly reset.
  • NEW: Simplified chinese translation updated.

Database Manager

  • NEW: Simplified chinese translation updated.

Interpreter

  • BUG: Fix the bits manipulation function, thanks to Liang Wei.
  • NEW: The interpreter is now linked with the pthread library on Linux systems.

GB.DB.FORM

  • NEW: Simplified chinese translation updated.

GB.FORM

  • NEW: Simplified chinese translation updated.

GB.FORM.DIALOG

  • NEW: Simplified chinese translation updated.

GB.FORM.MDI

  • NEW: Simplified chinese translation updated.

GB.GTK

  • BUG: Tray icons are correctly refreshed when the icon is changed.

GB.QT

  • BUG: Tray icons are correctly refreshed when the icon is changed.
2.8.1 - 19 Aug 2008

Compiler

  • BUG: Do not store the source file full path into object files, so that rmplint does not cry.

GB.GTK

  • BUG: Fix the tray icon management. Now GTK+ icons work on Gnome and KDE, and are fully transparent!

GB.QT

  • BUG: Fix the menu shortcut management.
2.8 - 15 Aug 2008

Configuration

  • BUG: Compiles optimized files in a clean way, so that ./configure --disable-optimization effectively disables optimizations on these files.

Development Environment

  • BUG: Disable the console popup menu when the console editor loses the focus, so that the menu shortcuts do not interfer with the main editor shortcuts.
  • BUG: Shift+Delete now works correctly in the editor. It does not cut an extra character anymore.
  • BUG: Disable editor popup-menu as soon as it loses focus. That prevents conflicts between shortcuts.
  • BUG: Correctly refresh the form editor title when the form is locked.
  • BUG: Renaming a directory in the project tree now works correctly.
  • BUG: Fix the title of the search list window.
  • BUG: Enhance and fix the behaviour of the ESCAPE key.
  • BUG: Renamed controls like DataControl are correctly refreshed inside the form editor.
  • BUG: GridView, TableView, TextEdit and Editor are correctly refreshed in the form editor when they are renamed.
  • BUG: The signature deals correctly with methods having a variable number of arguments.
  • BUG: Commenting and uncommenting now do not forget the last line if the text was selected from bottom to top.
  • BUG: Do not abort if you try to open a dead symbolic link.
  • BUG: When making a package, ignore the charset translation errors while printing the commands output.
  • NEW: Added a ToolButton in FCommit to clear the editor contents.
  • NEW: Spanish and French translations updated.
  • NEW: Russian translation updated.
  • NEW: Arabic translation updated.
  • NEW: Add support for DESTDIR variable in autotools packages. See http://www.gnu.org/prep/standards/html_node/DESTDIR.html
  • NEW: Draw project details in gray.
  • NEW: Support for hebrew translations.
  • NEW: Display subversion revision in the About dialog.
  • NEW: Support for macedonian and albanian translations.
  • NEW: Enhance the behaviour of the console text search.
  • NEW: Replaced the '[Modified]' text in the title of a modified form or class by a star.
  • NEW: The signature popup displays the current argument underlined.
  • NEW: Support for the Khmer language.

Examples

  • NEW: The AnalogWatch example now displays the time.

Interpreter

  • BUG: Dir() and RDir() do not leak memory anymore when there is a charset conversion error during the directory parsing.
  • BUG: Fix the management of standard input, standard output and standard error streams.
  • BUG: Do not free the classes before the _free() special methods are executed.
  • BUG: RInStr() third argument is now correctly taken into account in all cases.
  • BUG: Fix a bug in inheritance with classes written in Gambas overriding symbols whose name begins with 'P', 'R' or 'M'.
  • BUG: The order of class variables in memory is the same as in class declaration both in 32 bits and 64 bits mode. This is needed if you want to use class as data structures sent to an extern function.
  • BUG: Observers don't raise events anymore if their parent is invalid, like other objects do.
  • BUG: Fix base object structure size when compiling with gcc 4.3 on a 64 bits system.
  • BUG: Fix the interpreter for gcc 4.3.
  • BUG: Fix the initialization of standard input/output streams.
  • NEW: Do not warn against circular references when the program aborts because of an error.
  • NEW: Prints the gcc version used for compiling the interpreter when running 'gbx2 -h'.

Compiler

  • BUG: Fix a compilation warning on FILE_set_chown.
  • NEW: The error message displayed when you try to return a value in a procedure is more explicit now.

Informer

  • BUG: The informer now can be run without argument from anywhere.
  • NEW: When creating all information files in one shot, child processes are used instead of loading all components in the same process.

GB.DB.FORM

  • BUG: Define the default size of DataControl and DataCombo controls.

GB.DB.MYSQL

  • BUG: Fix a possible crash when reading information on a date field.

GB.DRAW

  • BUG: Draw.Begin() now correctly raises an error if the device is a static class that is not drawable. This bug was fixed by using "Draw" for the interface name of drawable objects and "StaticDraw" for the interface name of drawable classes like Printer.

GB.FORM

  • BUG: Fix the Expander default event so that clicking twice on it in the form editor does not crash the IDE.
  • NEW: File dialogs now remember the last used directories in the directory combo-box.
  • NEW: FileView now display image preview if the image size is up to 64 Kb.
  • NEW: The ListContainer refreshes itself before raising the Click event.

GB.FORM.MDI

  • BUG: When a MDI child window is activated, the focus is set on it unless one of its child control already has the focus.

GB.GTK

  • BUG: The Form.Load() method works correctly now.
  • BUG: Draw.Begin() and DrawingArea Draw event correctly initialize the background and foreground colors now.
  • BUG: Fix Application.Busy when forms are embedded.
  • BUG: ComboBox does not raise the Click event anymore when its Text property changes.
  • BUG: Fix the management of Window Activate and Deactivate events.
  • BUG: Fix the management of GotFocus and LostFocus events.
  • BUG: SetFocus is correctly honored when used inside the Open event handler of an embedded form.
  • BUG: Redesigned the management of Font properties.
  • BUG: GridView item Font property works correctly now.
  • BUG: Font Underline and StrikeOut properties were implemented for Label controls, Button controls, GridView cells, and the Draw class.
  • BUG: Fix the management of the Dialog.Font property.
  • BUG: Fix the fake transparency of tray icons.
  • BUG: Initialize correctly the gControl class.
  • BUG: Draw.Tile now works correctly.
  • BUG: Fix the vertical alignment management.
  • BUG: The alignment of a GridView cell with a picture only is correct now.

GB.NET.CURL

  • BUG: Fix some bad uses of interpreter API.

GB.NET.SMTP

  • BUG: Fix some bugs in quoted-printable encoding and the sending of body data.
  • BUG: Apparently, a point at the beginning of a quoted-printable line is not allowed. So encode the point in that specific case.

GB.QT

  • BUG: DrawingArea whose Background property has been changed does not flicker anymore.
  • BUG: SetFocus is correctly honored when used inside the Open event handler of an embedded form.
  • BUG: GridView.Clear now correctly refreshes the GridView.
  • BUG: Wow! Finally fix TrayIcons so that they are visible inside Gnome and XFCE notification area.
  • BUG: Menu shortcuts are automatically enabled when the menu is shown.
  • BUG: Choose the right moc executable when both QT3 and QT4 are installed on the system.
  • BUG: Fix the system tray icons for KDE 3.5.10. :-)
  • BUG: The alignment of a GridView cell with a picture only is correct now.

GB.QT.EXT

  • BUG: Uses "StaticDraw" to specify the drawing interface of the Printer class.
  • BUG: Blended procedure separation is now correctly refreshed when the font size changes.
  • NEW: When the focus is set on an Editor, the cursor is ensured to be visible.

GB.SDL

  • BUG: Removed linking against libGL, as libSDL is already linked with it. This fixed gbi segfault on Laurent Carlier's box.
2.7.0 - 11 Jun 2008

Development Environment

  • BUG: Clicking on a virtual property in the property sheet does not crash anymore when the property help is displayed.
  • BUG: The automatic completion can deal with multiple local variable declarations on the same line now.
  • BUG: The stack backtrace list width is saved correctly now.
  • BUG: Do not display the current opened project in the list of recently opened projects.
  • NEW: Add a popup menu to the console window.
  • NEW: Japanese translation updated.
  • NEW: Swedish translation updated.
  • NEW: Russian translation updated.

Database Manager

  • NEW: Russian translation updated.

Examples

  • BUG: Fix the DataReportExample example.
  • NEW: New Barcode example made by Charles Guerin and modified by me.

Help

  • BUG: Makefile are not installed anymore.

Interpreter

  • BUG: Fix a bug in DateAdd() that made this function corrupt the next date to string conversion, which then lead to other bad weird things.

Compiler

  • BUG: The owner and group of all files generated by the compiler ('.startup', '.info', '.list', object files) are now set to the owner and group of the '.project' file. This way, any project can be safely compiled as root, without locking it for other users.

Archiver

  • NEW: Ignore core dump files when making an executable.

GB.DRAW

  • BUG: Fix Draw.Circle center that was shifted one pixel to the top left.

GB.FORM

  • BUG: Setting the Root property of the DirView control sets the Current property to the same value.
  • NEW: Russian translation updated.

GB.GTK

  • BUG: The focus now follows the Z-order, as in gb.qt.
  • BUG: Fix the XEMBED protocol support.
  • BUG: Window.Reparent() now works correctly when embedding or unembedding a top-level window.

GB.NET.SMTP

  • BUG: Try to use the fully-qualified domain name when sending the EHLO command to the SMTP server. That actually works only if the system domain name has been set to the DNS domain name.
  • NEW: Do not use MIME parts when it is useless.

GB.PCRE

  • BUG: Fix crashes due to bad uses of interpreter API.

GB.QT

  • BUG: Fix the XEMBED protocol support.
  • BUG: Adding an item to a ComboBox with a bad index should not print any warning message anymore.
  • BUG: Fix the drawing of the frame of cached DrawingArea controls.
  • NEW: XEMBED support was upgraded to the 1.3 version of QtXEmbed classes.
  • NEW: Control.Font now always returned the same Font object, as in gb.gtk.

GB.QTE

  • BUG: Compilation works again.

GB.XML

  • BUG: XMLDocument.Open() now can open a file located inside the project.
2.6.0 - 10 May 2008

Configuration

  • BUG: Search include files inside lib64 directories too. Hurra for the distributions that put non 64 bits specific files into a 64 bits specific directory!
  • NEW: Makes better configuration warning messages when detecting libintl and libiconv libraries.

Development Environment

  • BUG: The auto-completion of a child class now is correctly updated if its parent class is modified.
  • BUG: The auto-completion of children classes does not overflow the stack anymore.
  • BUG: Evaluating expressions in the output console works again.
  • BUG: Text editor does not flash anymore when being resized.
  • BUG: Correctly raise an error when making an executable fails for any reason.
  • BUG: Extract the property help better.
  • BUG: Fix the layout of the property sheet text edit dialog.
  • BUG: Splitting view in editor correctly updates the procedure combo-box now.
  • BUG: The menu editor does not crash anymore when all menus are deleted at once.
  • NEW: Add a search box in the output console toolbar.
  • NEW: Displays an error message if a project is not a Gambas 2 project.
  • NEW: Subversion conflicts support.
  • OPT: Do not set Project ColumnView AutoResize property to TRUE. Use a very wide column instead to optimize redrawing.

Interpreter

  • BUG: Symbol polymorphism is now correctly handled when the inheritance depth is greater than two!
  • BUG: INC and DEC now toggle boolean values.
  • BUG: Getting information on a not yet loaded class does not crash the debugger anymore.
  • BUG: Handle the evaluation of Eval() expressions the same way as any other code. Otherwise, stack can be leaked when there is an exception inside.
  • NEW: The foreign function interface is now optional.

Compiler

  • BUG: Adds many error messages when a compiler limit is reached: too many static symbols in a same class, too many dynamic symbols, too many functions, and so on.
  • BUG: Do not print error messages on unexpected strings with newline inside. Just claim that an unexpected string has been encountered.

GB.DB.SQLITE2

  • BUG: Reading floating point values and other values do not depend on the locale anymore.
  • NEW: Remove useless code.

GB.DB.SQLITE3

  • BUG: Reading floating point values and other values do not depend on the locale anymore.
  • NEW: Remove useless code.

GB.EVAL

  • BUG: Remove an apparently useless line of code that made the highlighter sometimes crash!
  • BUG: Evaluating "Error" does not crash anymore. It just raises an error.
  • BUG: Do not print error messages on unexpected strings with newline inside. Just claim that an unexpected string has been encountered.

GB.FORM

  • BUG: Correctly cancel a impossible rename operation in the DirView control.
  • NEW: Add a slider for setting the alpha color component.

GB.FORM.DIALOG

  • BUG: Standard dialogs now correctly react to double clicks.

GB.GTK

  • BUG: Void items are correctly handled by ComboBox without crashing now.
  • BUG: Windows cannot get focus anymore.
  • BUG: PictureBox.Alignment property now correctly deals with Align.Normal, Align.TopNormal, and Align.BottomNormal alignments.
  • BUG: Fix uninitialized variables in ggridview.cpp and gmainwindow.cpp.

GB.PDF

  • BUG: Compiles correctly against poppler 0.8 now.

GB.QT

  • BUG: Resizing a GridView column inside the ColumnResize event handler does not lead to a crash anymore.
  • BUG: Correctly update the PictureBox and DrawingArea background when the background color changes.
  • BUG: Clipboard.Copy() sends UTF-8 strings to the clipboard correctly now.
  • BUG: SpinBox.Text works correctly now.
  • BUG: PictureBox is correctly refreshed now when its contents change.
  • BUG: TabStrip[].Count now always returns the correct number of child controls in a tab.
  • NEW: Non resizable windows can be resized by the Move() or Resize() methods now.
  • OPT: The PictureBox control does not flicker anymore when its Picture property is changed.

GB.QT.EXT

  • BUG: Editor now correctly highlight its frame according to the focus change on styles that have use of that.
  • BUG: Editor correctly goes to the end of file when pressing CTRL+END. Consequently, SelectAll() works correctly too now.

GB.SETTINGS

  • BUG: Do not use Array datatype incorrectly anymore.
2.5.0 - 03 Apr 2008

Configuration

  • BUG: Support for X11 libraries not installed in the default library paths.
  • BUG: The config.h.in files were removed from the subversion repository.
  • BUG: Adds /usr/local/lib/include as include search path for libffi.

Development Environment

  • BUG: The busy cursor is now correctly reset in all cases when clearing the recent file history.
  • BUG: Importing a form now correctly associates the imported pictures.
  • BUG: The initial stack backtrace list width is correct now.
  • BUG: Fixed comment/uncomment so that they will work correctly if there is not a space after the comment mark
  • BUG: Fixed the name of tooltips and menu entries. Only the first letter is in upper case.
  • BUG: Fixes the generation of the list of last opened files.
  • BUG: Explicitely closes embedded forms in FMain, so that their settings are correctly written. See the source code comments for more details.
  • BUG: Use a relative font size in the workspace, toolbox and property sheet.
  • BUG: UTF-8 fixes in the code editor.
  • BUG: Help pages on special method are opened correctly now.
  • BUG: Breakpoint list is not filled with impossible breakpoints anymore.
  • BUG: The procedure combo-box now always displays the correct current procedure name.
  • BUG: In the file creation dialog, always select a filter if we click on the "existing" tab.
  • BUG: Compiler output is now correctly handled when some warning messages are printed.
  • BUG: Auto-completion and function signature are displayed at the right position now, when the editor has been split.
  • BUG: Saving the entire project does not reset the highlighting of the modified lines anymore.
  • NEW: The editor in the commit window has been enhanced. It has a little toolbar and displays the cursor position now.
  • NEW: Added split editor views.
  • NEW: Added buttons for Definition and Last Position to the editor toolbar.
  • NEW: Added additional hotkeys for Cut (Shift+Delete), Copy (CTRL+Insert) and Paste (Shift+Insert).
  • NEW: Added a textlabel to the bottom of the property window that displays help text for the selected property.
  • NEW: Added an option to preferences to disable integrated help.
  • NEW: Adds KIconEdit as image editor.
  • NEW: Copying a file automatically enters in rename mode.
  • NEW: Balloon file information were replaced by a standard dialog.
  • NEW: New icon for the TextEdit control.
  • NEW: CSS and HTML highlighting now use procedure separation.

Database Manager

  • BUG: Correctly manages editable GridViews when a row or a column is resized.

Examples

  • NEW: Spanish translation added/updated for all translatable projects.

Interpreter

  • BUG: NEW Observer(NULL) now raises an error, and does not crash anymore.
  • BUG: The binary and hexadecimal numbers with a '&' suffix are now correctly extended to a Long unsigned constant if needed.

Informer

  • BUG: Now gbi2 use native dlopen() functions instead of libltdl wrapper on OpenBSD.

GB.DB.FIREBIRD

  • BUG: Fixed building with gcc 4.3.

GB.EVAL

  • BUG: The long binary and hexadecimal numbers are correctly interpreted now.

GB.FORM

  • BUG: The SidePanel.Border works correctly now.
  • NEW: Spanish translation updated.
  • NEW: ChangeLog and README files are displayed with a text file icon in the FileView control.
  • NEW: The Space key now raises the Activate event in the DateChooser control.
  • NEW: The ColorChooser text box that display the hexadecimal value of the color is now editable.

GB.FORM.DIALOG

  • NEW: Spanish translation updated.

GB.FORM.MDI

  • NEW: Spanish translation updated.

GB.GTK

  • BUG: Correctly handles mouse button events in the GridView control.
  • BUG: Setting GridView.Rows.Count to zero does not make rows too small anymore.
  • BUG: Fix the Key.Enter keyboard constant value.
  • BUG: The AutoResize property of containers now takes the Padding property into account in all cases.
  • BUG: Watcher are correctly released when the watched object is destroyed.
  • BUG: Drawing on a null picture now raises an error.
  • BUG: ColumnView has no ColumnClick event anymore, as in gb.qt.
  • BUG: Splitter correctly handle the visibility of its children now.

GB.QT

  • BUG: As promised, the TreeView/ListView/ColumnView MoveAbove() and MoveBelow() methods were rewritten to behave exactly as in gb.gtk. This way, enumerating all items of a TreeView is just a loop with a call to MoveFirst() and many calls to MoveBelow().
  • BUG: The AutoResize property of containers now takes the Padding property into account in all cases.
  • BUG: A failing Image.Load() does not create a useless internal image anymore.
  • BUG: Fix automake warning. Should fix building when GNU/make isn't available.
  • BUG: Include path check for X11 include files.
  • BUG: Add x11 include path through GB_CHECK_XWINDOW macro.

GB.QT.EXT

  • BUG: Backport a fix from Gambas3 where sometimes the Editor scroll bars are not correctly updated.
  • BUG: Void lines are correctly highlighted in all cases now.

GB.SETTINGS

  • BUG: Settings.Read() and Settings.Write() now use the Window class of the specified control, not the TopLevel window, which may not necessarily exist anymore.
2.4.1 - 19 Mar 2008

Interpreter

  • NEW: A new interpreter option, "-k", that prevents shared library to be unloaded until the process terminates. That can be useful when debugging with valgrind.

GB.NET.SMTP

  • BUG: Fixes the Makefile.am file so that the component compiles if the glib library is installed in a non-standard directory.

GB.QTE.EXT

  • BUG: Fixes the gb.qte.ext.component file.
2.4.0 - 18 Mar 2008

Development Environment

  • BUG: Ensure that the property panel is correctly shown or hidden when the project is opened.
  • BUG: More space for displaying the project name in the project property dialog.
  • NEW: Tips' Spanish translation updated.

Interpreter

  • BUG: Mid$("", 0) returns an error now.

GB.FORM

  • BUG: ValueBox now reformats its contents after its Value property has been set.

GB.GTK

  • BUG: The default tray icon is the same as gb.qt now.
  • BUG: Using stock pictures work correctly again, and does not crash the interpreter anymore.
  • BUG: Fixes memory leaks with font and picture management, and in other places.
  • BUG: Composed keys are correctly handled again by KeyPress events.
  • BUG: Disable the management of input methods in TextBox and TextArea controls, so that the input methods are not disturbed. Consequently; SCIM and Bridged SCIM work again.
  • BUG: You can read keyboard events properties in a Form KeyPress or KeyRelease event handler correctly now.

GB.QT

  • BUG: Removed some memory leaks.
  • BUG: TrayIcon objects are correctly destroyed at program exit.
  • BUG: TrayIcon Width, Height, ScreenX and ScreenY properties do not crash anymore when the tray icon is hidden. They return zero instead.

GB.WEB

  • BUG: CGI.Decode() is more robust against malformed URLs.
2.3.0 - 13 Mar 2008

Configuration

  • BUG: Pass the -fsigned-char option to gcc so that gambas compiles on architectures where char is unsigned by default.
  • BUG: Add support for libffi through pkg-config when available.
  • NEW: Now GB_COMPONENT_PKG_CONFIG() macro accept an optional warning message.
  • NEW: The TODO file was removed. Only the TODO file in /trunk is valid.

Development Environment

  • BUG: Fixes the automatic completion when a line has non-ASCII characters inside.
  • BUG: Fixed the crash when choosing a non-default stack size.
  • BUG: Replace points by dash in the name of packages generated by the IDE packager.
  • BUG: The code editor method combo-box is correctly updated now.
  • NEW: Support to make Debian packages for native Gambas components
  • NEW: English and french tips were updated. A new tip was added.
  • NEW: Files that were opened at project close are automatically reopened when the project is loaded again.
  • NEW: Updated russian translation
  • NEW: Updated french translation
  • NEW: Automatic completion is automatically inserted in all cases when pressing one of the following keys: '.','(','[','!'.
  • NEW: Spanish translation updated.

Database Manager

  • NEW: Updated russian translation

Examples

  • BUG: Fixed the Gravity and the GameOfLife examples so that they do not use public form controls anymore.

Interpreter

  • BUG: Val() now ignores thousand separators characters at the end of the number.
  • NEW: Opening a device file in direct mode (FOR READ/WRITE) is now automatically non blocking.
  • OPT: Lof() now only tries its different methods (ioctl and lseek) once.

Informer

  • BUG: Closes opened shared libs on OpenBSD, otherwise size mismatch errors are raised on duplicated symbol names between components.

GB.DB.MYSQL

  • BUG: Automatically retries a query when the client has been disconnected from the server.

GB.DEBUG

  • BUG: The gb.debug component interface declaration was not 64-bits aware.

GB.EVAL

  • BUG: The Highlight.Purge() method now correctly deals with non-ASCII characters.

GB.FORM

  • BUG: TableView.Edit() does not raise a "read-only combo-box" error anymore.
  • NEW: The FileChooser bookmark list was redesigned.

GB.FORM.DIALOG

  • BUG: Dialog buttons now are never cut.

GB.GTK

  • BUG: Message boxes correctly display the text of their buttons now.
  • BUG: Cached drawing areas are correctly redrawn now.
  • BUG: Loading big images now works correctly. There is apparently a bug in the GTK+ image loader, and I found a workaround.
  • BUG: Removed the debugging messages.
  • BUG: The Font property management was fixed.
  • BUG: The icon text alignment was fixed in the IconView control.

GB.NET.CURL

  • BUG: Use pkg-config utility now.

GB.QT

  • BUG: Show() and Hide() methods are now strictly equivalent to the Visible property. This finally fixes the problem with the unability to insert an existing form into a project in the IDE.
  • BUG: The Open, and initial Move and Resize event of embedded forms are now always raised when you call the Show method or if you set the Visible property. Before, it was raised when the embedded form was actually shown.

GB.WEB

  • NEW: Application.Protocol is a new property that allows to tell the component that the protocol is not necessarily "http".

GB.XML

  • BUG: Fixes some linking problems.
  • BUG: Makes gb.xml.rpc install correctly.
2.2.1 - 24 Feb 2008

Interpreter

  • BUG: Extern functions work again.
2.2.0 - 23 Feb 2008

Configuration

  • BUG: Fixed some bugs in the configuration files.
  • BUG: Automatically search libraries in lib64 before searching in lib.

Interpreter

  • BUG: Val() now takes the thousand separator into account when this separator is a space character.
  • BUG: Really fixes the 'lib64' problem. Now components are searched in the 'lib64' directory on 64 bits OS. If they are not stored in 'lib64', then the default 'lib' directory is used.
  • BUG: Removed the 64 bits warning.

Informer

  • BUG: Really fixes the 'lib64' problem. Now components are searched in the 'lib64' directory on 64 bits OS. If they are not stored in 'lib64', then the default 'lib' directory is used.

GB.QT

  • BUG: Prevents a crash when a trayicon is destroyed or hidden during a trayicon event handler.
2.1.0 - 20 Feb 2008

Configuration

  • BUG: Try to detect correctly all X11 linking parameters.
  • BUG: Now configure is looking for libgettextlib.so instead of gettextlib.so
  • BUG: Update acinclude.m4 with libtool macro from libtool 1.5.24 one, this seem to fix some problems with configure script.
  • BUG: Add linking for gbx2 with libutil on OpenBSD.
  • BUG: gambas-database-manager was renamed to gambas2-database-manager, so that both gambas 1 and gambas 2 version can be installed on the same system.
  • BUG: The external gettext library is now used only on OpenBSD. If needed, other systems can be added of course.
  • BUG: OpenBSD, external function calling raise an error, as libffi isn't available.
  • NEW: Better message when the component cannot be built: it give what files were not found.
  • NEW: 64 bits port.
  • NEW: Gambas should compile on OpenBSD.
  • NEW: Removed the out-of-date README.FEDORA and README.REDHAT files.
  • NEW: Configuration is aborted if libffi library and headers are not installed.

Development Environment

  • BUG: Forgot to add the authors.txt file.
  • BUG: The completion and signature font sizes are now the default one.
  • BUG: Fix version requirements in packager.
  • BUG: Makes autotools packager independant of the Gambas version.
  • BUG: Don't use the release number if not specified in the autotools packager.
  • BUG: The autotools packager now use the compilation flags defined in the project properties
  • BUG: Breakpoint list is refreshed before starting a program now, so that it is accurate. And removing a breakpoint should not freeze anymore.
  • BUG: Do not show the project cleanup menu when the project is read-only.
  • BUG: Making a source archive of the project does not include subversion directories anymore.
  • BUG: Find is not forced to be global anymore when the find window is hidden.
  • BUG: Don't trim the find string, and consequently prevent the IDE from freezing when searching a string that contains only spaces.
  • BUG: Correctly checks the process state after a compilation to know if there was an error.
  • BUG: END SUB can be the end of a method. The class analyze now takes that into account.
  • BUG: Do not add gb.debug and gb.eval as dependencies when creating a package. These components are members of the default runtime package.
  • BUG: The packager now automatically removes void lines from project description to prevent bugs in package tools.
  • BUG: Selecting a text and pressing F2 is correctly handled now.
  • BUG: Making Debian packages now work if the project has capital letters in its name.
  • NEW: Add support for Basque language.
  • NEW: Spanish translation updated.
  • NEW: Better management of component projects. When the component project is installed in the user component directory, or uninstalled, the IDE and the toolbox are automatically refreshed.
  • NEW: The stack trace window was put on the right of the window.
  • NEW: Displays the selected control name permanently in the property sheet.
  • NEW: The packager can make packages for component projects. Ubuntu and Debian are not supported yet.
  • NEW: Prevents the packager to try to create the package inside the project directory.
  • NEW: Icon preview in the icon editor, hidden in a side panel.
  • NEW: Pressing F1 while a control is selected in the toolbox opens the help page of this control.
  • NEW: When a runtime error is raised during program startup, the program is now automatically stopped.
  • NEW: In the menu editor, a new menu is now inserted after the current menu and not before.

Wiki Cgi Script

  • BUG: The symbol pages work again, and inheritance between class belonging to different components now is taken into account correctly.
  • NEW: Some little cosmetic changes.

Examples

  • BUG: Fixed the AnalogWatch example.
  • BUG: Fix keypress handling in BeastScroll and 3DWebCam.
  • BUG: The Scripting example was fixed.
  • BUG: Fixed the MoviePlayer example.
  • BUG: Fixed the Clock example.
  • BUG: The Embedder example was updated according to the 64 bits changes.

Interpreter

  • BUG: Does not crash anymore if a component cannot be loaded.
  • BUG: Fixed the allocation of static arrays.
  • BUG: Array classes array accessors now correctly check the number of their argument when the array has just one dimension.
  • BUG: Fixed a possible spurious error when reading a file from an archive.
  • BUG: Uses the accurate method prototypes for Byte, Short and Single array classes.
  • BUG: Object.Attach() and Object.Detach() now correctly deals with Observer objects.
  • BUG: The gb.info file was wrong: Min() and Max() take only two arguments.
  • NEW: Pointer[] is a new class that represents an array of Pointer values.
  • NEW: The extern function implementation has been redesigned and is now based on libffi, so that it works on 64 bits system. Because of a flaw in the compiler design, projects that use the Pointer datatype must be recompiled to be used on a 64 bits system. This flaw will be fixed in Gambas 3.
  • NEW: Spanish translation updated.
  • NEW: A new interpreter API for returning a pointer.
  • NEW: New internal property in the Object class that returns the event name used by the last created object. This property is internal so that you don't use it in your code. It will become public in Gambas 3.
  • OPT: Put some tables into read-only memory. About 1000 bytes are saved for each running interpreter, except the first one.

Compiler

  • BUG: Correctly compiles LONG constants inside code.
  • NEW: When a form method declaration has no END keyword, the error message is now accurate. It does not talk about the form definition anymore.

Informer

  • BUG: Fixed the informer that was creating bad *.info files for native components.

GB.COMPRESS.ZLIB

  • BUG: Fixed the compilation on 64 bits OS.
  • BUG: 32 bits case and 64 bits case are now distinct.

GB.CORBA

  • NEW: Fixed some warnings.

GB.DB

  • BUG: Fixed many warnings and some 64 bits stuff in all database drivers.
  • NEW: Database driver can declare a set of character that are allowed in a database name.

GB.DB.FORM

  • BUG: Correctly manage data controls inside TabStrip-like containers.
  • BUG: Setting the focus on a non-initialized DataControl does not raise an error anymore.
  • NEW: DataControl raises the event of its internal editing control.

GB.DB.ODBC

  • BUG: Some 64 bits and warning fixes.

GB.DB.SQLITE2

  • NEW: '.' is allowed in database names now.

GB.DB.SQLITE3

  • BUG: Getting the primary index of a table without primary index is safe now.
  • NEW: '.' is allowed in database names now.

GB.DEBUG

  • BUG: Compiles gb.debug with threading library.
  • BUG: Debug.Write now does nothing if Debug.Start has not been called.
  • NEW: More explicit error messages when the creation of debugger fifos fails.

GB.DESKTOP

  • BUG: Try to make Xtst library detection work on Slackware.
  • BUG: All methods that deal with X11 Window identifiers now use Pointer and Pointer[] datatypes instead of Integer and Integer[].

GB.GTK

  • BUG: The TextBox cursor is now correctly moved after a Change event.
  • BUG: Message boxes now use the application title and not the application name as their title.
  • BUG: Message boxes use application title without crashing now.
  • BUG: Modified the GLib priority of watched descriptors, as the main loop could enter in a loop in which user interface events were not managed
  • BUG: Fixed the implementation of the Message class that was broken.
  • BUG: Fixed a crash in the Watcher class.
  • BUG: Fixed the Image.Flip() and Image.Mirror() methods.
  • BUG: Fixed a potential crash in timer management.
  • BUG: Keyboard, focus and mouse events now work correctly on Window and DrawingArea controls.
  • BUG: HSplitter.Layout and VSplitter.Layout now work correctly. It is a list of children widths, hidden children having a zero width.
  • BUG: Window arrangement is done before the Open event is raised, as in gb.qt.
  • BUG: The use of alternative input methods do not print warnings anymore.
  • BUG: The X and Y properties of the Window class now return the same values as gb.qt.
  • BUG: All methods that deal with X11 Window identifiers now use Pointer and Pointer[] datatypes instead of Integer and Integer[].
  • NEW: The GridView Select event was implemented.
  • NEW: Fixed some warnings.

GB.IMAGE

  • NEW: Fixed some warnings.

GB.NET

  • NEW: Fixes in Socket and ServerSocket for 32/64 bits compatibility.
  • NEW: Changes in UdpSocket for 32/64 bits compatibility.
  • NEW: Changes in SerialPort for 32/64 bits compatibility.

GB.NET.CURL

  • BUG: Now compiles without warnings and run on a 64 bits system.

GB.NET.SMTP

  • NEW: Fixed some warnings.

GB.OPENGL

  • BUG: Disable dead code.
  • BUG: Add missing support for Gl.Normal3fv(Float[]) and Gl.Normal3iv(Integer[]).

GB.PDF

  • NEW: Fixed some warnings.

GB.QT

  • BUG: Fix qt-moc detection on OpenBSD.
  • BUG: The DrawingArea control now should draw its border correctly without erasing its contents.
  • BUG: Many warning fixes.
  • BUG: Now the Control.Visible property works like in gb.gtk, i.e. it returns if the control was not explicitely hidden.
  • BUG: HSplitter.Layout and VSplitter.Layout now work correctly. It is a list of children widths, hidden children having a zero width.
  • BUG: All methods that deal with X11 Window identifiers now use Pointer and Pointer[] datatypes instead of Integer and Integer[].

GB.QT.EXT

  • BUG: TextEdit.TextWidth and TextEdit.TextHeight were not declared as read-only properties.

GB.QT.KDE

  • NEW: Fixed some warnings.

GB.SDL

  • NEW: Fixed some warnings.

GB.SDL.SOUND

  • NEW: Fixed some warnings.

GB.XML

  • NEW: Fixed some warnings.

GB.XML.XLST

  • NEW: Fixed some warnings.

GB.XML.XSLT

  • BUG: XSLT class is now declared as being not creatable.

Help

  • BUG: Fixed the generated treeview.
  • NEW: Help was updated.
2.0.0 - 2 Jan 2008

Configuration

  • NEW: Removed the out-of-date README.HOW-TO-PACKAGE-GAMBAS.html
  • NEW: The ./reconf script now uses autoreconf, so that the m4 directory is   automatically taken into account.

Development Environment

  • BUG: In the translation dialog, translations are sorted by completion correctly now.
  • BUG: Help pages should always be found correctly now.
  • NEW: In the form editor, "Select all" selects all children of the selected container now.
  • NEW: Japanese translation updated.
  • NEW: The breakpoint tab is now always visible.
  • NEW: The find list window uses the editor font to display matching text now.
  • NEW: The find list window was redesigned.
  • NEW: The find list now takes the find range into account.
  • NEW: The find list search can be cancelled now.
  • NEW: The find list cancel button becomes a close button when the search is not active.
  • NEW: Catalan translation updated.

Database Manager

  • NEW: Catalan translation updated.

Wiki Cgi Script

  • BUG: Search should work again.
  • NEW: Display "See Also" sections with just a title.
  • NEW: Catalan translation updated.

Examples

  • BUG: The HighlightEditor example highlighting routine now uses UTF-8 string methods.
  • NEW: PdfPresentation is a new OpenGL example based on the 3D OpenGL PDF presentation made by Laurent Carlier.
  • NEW: The Sensor example now remembers the position of its window.
  • NEW: Adds the Fabien's 3DWebCam project as new example.

Interpreter

  • BUG: Currency thousand separator is now taken into account.
  • BUG: When a locale does not have a thousand separator, a space is used, and the value is splitted each three digits. Maybe this is a bad idea that will be removed in the future.
  • NEW: Object.Class() now returns the true object class, not the class name. To get the class name, use Object.Type().
  • NEW: More work on OpenBSD port, it's not working yet due to linking problem but core looks like compiling fine without too much complains.

GB.DB

  • BUG: The spurious alone "WHERE" in generated SQL requests should be gone now.

GB.DB.FORM

  • NEW: Catalan translation updated.

GB.EVAL

  • NEW: The Gambas analyze functions were put in the gb.eval component, in the Highlight class. The rest of the class stays in gb.qt.ext.

GB.FORM

  • NEW: Catalan translation updated.

GB.FORM.MDI

  • NEW: Catalan translation updated.

GB.FORM.DIALOG

  • NEW: Catalan translation updated.

GB.GTK

  • BUG: The Persistent property behaviour was inversed for modal windows. This has been fixed.

GB.INFO

  • BUG: Correctly parse the inheritance tree of classes being in different components.

GB.PDF

  • BUG: PdfDocument.Count and PdfDocument[] do not crash anymore when the PDF is not loaded.

GB.QT

  • BUG: The position of window having a mask is correctly returned now.
  • BUG: Clicking on an item now always raises the Click event, as in gb.gtk.

GB.QT.EXT

  • NEW: The Gambas analyze functions were removed and put in gb.eval.
  • NEW: In the Editor class, selecting a word and moving the cursor word by word are now more clever. More precisely, it works now like in Kate.

GB.QT.OPENGL

  • BUG: GlArea control does not crash anymore at exit.
  • NEW: GlArea control can have focus and raise keyboard events now.

GB.SDL

  • BUG: KeyPressed and KeyReleased Window events were rename to KeyPress and KeyRelease for coherency with GUI components.
  • BUG: Add local macro for libsdl check. Should fix problems when sdl development files are not installed.

GB.SDL.SOUND

  • BUG: Add local macro for libsdl check. Should fix problems when sdl development files are not installed.

GB.WEB

  • BUG: Session now can deal with Long values correctly.

Help

  • NEW: Help update.
  • NEW: Updates javascript tree view images.
1.9.92 - 18 Dec 2007

Development Environment

  • BUG: Now autotools package is searching for local components too.
  • BUG: Do not crash anymore when closing the project property dialog if only used components are displayed.
  • BUG: Clearing the translation now correctly sets the number of translated strings to zero.
  • BUG: Importing the translation now correctly marks the translation as modified, so that it is saved automatically.
  • BUG: Do not crash anymore when creating the project directory icon, if the project icon cannot be loaded.
  • BUG: The project icon is correctly stretched when making the project directory icon.
  • BUG: Making RPM package of a project whose name includes some character in upper case should work now.
  • NEW: Japanese translation updated.
  • NEW: Translation dialog now remember the path of the last import and export.
  • NEW: Swedish translation updated.
  • NEW: Icons were modified to use the new Stock special sizes.
  • NEW: The icon selector allows to select the new Stock special sizes.
  • NEW: The height of the welcome dialog buttons is now proportional to the desktop font size.
  • NEW: Make option dialog and project property dialog kind with rtl languages.
  • NEW: Russian translation updated.
  • NEW: You can run an external shell command after the executable has been made now.
  • NEW: Pasted controls now are renamed by using their control name, and not their class name.
  • NEW: The image size is not rounded anymore when creating a new image file.
  • OPT: Examples menus are created only when shown.

Database Manager

  • NEW: Swedish translation updated.
  • NEW: Icons were modified to use the new Stock special sizes.
  • NEW: Russian translation.

Wiki Cgi Script

  • NEW: A new special keyword for redirecting links to symbol pages.

Examples

  • BUG: The Concent game example does not use public controls anymore, and so will be installed correctly.
  • BUG: The DeepSpace project has been fixed.

Interpreter

  • BUG: Reading Application properties when they are undefined does not crash anymore.
  • BUG: STOP EVENT now works correctly inside global event handlers like Application_Keypress.
  • BUG: A fix in the WAIT implementation.
  • BUG: Do not print circular references when aborting on error.
  • BUG: Printing backtrace will not crash the interpreter in some case anymore.
  • BUG: The internal SubCollection class used by the gb.db component has been redesigned to fix some crashes.
  • NEW: Observer objects can now catch events after they have been processed. An optional parameter in the constructor specifies if you need this behaviour.
  • NEW: If the GB_REVERSE environment variable is set, then the program will invert the language layout.
  • NEW: Subcollections got a Refresh() method that clears the hash table cache.
  • OPT: The internal function that calculates the length of an UTF-8 character has been optimized.

Compiler

  • BUG: Don't be stingy when allocating the parser buffer: just allocate the right size.

GB.DB

  • BUG: All special collections of this component now should be correctly managed and not crash the interpreter anymore: Connection.Databases, Table.Fields, Table.Indexes, Result.Fields...

GB.DB.FORM

  • BUG: A read-only DataCombo whose All property is set won't have a void item. The "all" item will be used instead.
  • BUG: The DataView selection should not disappear in some cases anymore.
  • NEW: Swedish translation updated.

GB.DB.MYSQL

  • BUG: Always set database client charset to UTF-8, as I have no function to convert system charset strings to mysql charset strings.

GB.DB.ODBC

  • BUG: Fixed a bug with NUMERIC fields.

GB.DESKTOP

  • NEW: Desktop.SendKeys is a new method for sending fake keyboard events to the application having the focus. The syntax will be documented in the wiki.

GB.EVAL

  • BUG: Don't be stingy when allocating the parser buffer: just allocate the right size.

GB.FORM

  • NEW: Swedish translation updated.
  • NEW: The Stock class got four new special sizes for icons: small, medium, large and huge. These sizes follow Desktop.Scale so that you can have icons that follow the desktop font size.
  • NEW: FontChooser.ShowLabel is a new propery for displaying or hiding the FontChooser labels.
  • NEW: The FontChooser design was slightly changed.
  • NEW: ListContainer.EnsureVisible is a new method that ensures that the selected item is visible.

GB.FORM.DIALOG

  • NEW: Swedish translation updated.

GB.FORM.MDI

  • BUG: Closing MDI child windows now should be definitely reliable, thanks to Observers now being able to catch events after they have been processed.
  • NEW: Swedish translation updated.

GB.GTK

  • BUG: gb.gtk now blocks in the main loop until there is any event to process. File watching routines modified
  • BUG: gtk_main_iteration() instead of gtk_main_iteration_do(true) avoids high CPU usage
  • BUG: The event loop does not use 100% cpu anymore. Apparently, deleting a GIOSource does not remove the associated event source from the event loop. A bug in GLib?
  • BUG: Some styles do not return default colors, some Color properies failed with segfault
  • BUG: Fixed a illegal memory access in the modal dialog event loop.
  • BUG: ComboBox.List and ListBox.List properties were fixed and won't crash anymore.
  • BUG: ComboBox.Text property was fixed.
  • BUG: Fixed the GridView behaviour when clicking on it and moving the cursor. It behaves like in gb.qt now.
  • BUG: The arrangement algorithm now should behave the same way as in gb.qt for containers whose AutoResize property is set. Other bugs may have been fixed consequently.
  • BUG: Sometimes the first markup of a rich text was not taken into account because of a GTK+ bug. A workaround has been found.
  • BUG: CheckBox and RadioButton Font property now works correctly.
  • BUG: Containers like ScrollView now arrange their contents after its inner container dimensions have been allocated.
  • BUG: DrawingArea.Tracking now works correctly when it is FALSE.
  • BUG: SpinBox does not raise its Change event if its value is set but does not actually change.
  • BUG: SpinBox Change event is not deferred anymore.
  • BUG: GridView.Data.Text works again.
  • BUG: TabStrip.Current works correctly now.
  • BUG: The support for the WAIT instruction has been fixed.
  • BUG: The main loop is not run if there is nothing to do.
  • BUG: The main loop halt test takes the watched file descriptors into account now.
  • BUG: TextLabel and Label AutoResize property has now no effect anymore during a resize event, to prevent infinite recursion.
  • BUG: Resizing a control has no effect if the parent is a Splitter.
  • BUG: Control borders now are drawn correctly during a resize event!
  • BUG: Dragged data is now read only when the Drag.Paste() method is called.
  • BUG: Window.Mask works correctly now.
  • BUG: Changing Window.Mask now keep the state of the window: TopOnly, Sticky, Stacking, SkipTaskbar.
  • BUG: Delayed top-level window arrangement sometimes led to incorrect drawings. A refresh fixed that.
  • NEW: ComboBox now behaves the same way as in gb.qt.
  • NEW: GridView.Data.RichText and GridView[].RichText are two new properties that allows to display rich text inside GridView cells.
  • NEW: Composition input methods are now taken into account in the KeyPress event.
  • NEW: Window resize events processing is delayed now, so that the arrangement routine is not fired at each resize event.
  • NEW: Menu separators have a -maximum- height now.
  • NEW: Drag.Format and Drag.Formats were implemented correctly.
  • NEW: GridView.Rows.Remove() is a new method for removing rows.
  • NEW: GridView.Rows.Insert() is a new method for inserting rows.

GB.NET.CURL

  • BUG: Fix a crash when a HTTP request does not return any header (because the answer was not HTTP for example).

GB.NET.SMTP

  • BUG: Mail headers including UTF-8 characters are now correctly sent in all cases.

GB.OPENGL

  • BUG: Fix Gl.Vertexi() function, values are correctly mapped to GLint instead of double.

GB.QT

  • BUG: Fixed a segmentation fault after some ListView/TreeView/ColumnView items have been destroyed. Some apparently useless code was removed, so some other things may have been broken by this fix.
  • BUG: ColumnView column alignment was fixed.
  • BUG: GridView cell alignment now works correctly when the text is horizontally centered.
  • BUG: TextLabel and Label AutoResize property has now no effect anymore during a resize event, to prevent infinite recursion.
  • BUG: ColumnView.Find() now takes the header into account.
  • NEW: GridView.Data.RichText and GridView[].RichText are two new properties that allows to display rich text inside GridView cells.
  • NEW: DrawingArea border is correctly drawn now.
  • NEW: Popup menus X11 pointer grabs are released when an error occurs or the program stops in the debugger.
  • NEW: GridView.Rows.Remove() is a new method for removing rows.
  • NEW: GridView.Rows.Insert() is a new method for inserting rows.

GB.QT.EXT

  • BUG: The Editor console support now deals better with '\r' and '\n'.

GB.SDL

  • BUG: Now when opening an opengl window, the event Resize is automaticly raised like with glut/freeglut.

GB.WEB

  • BUG: '&apos;' cannot be used, as it is a XHTML entity only.
  • NEW: Now session is shared between more than one executables or scripts in the same path.
1.9.91 - 13 Nov 2007

Configuration

  • NEW: Libtool was updated.
  • NEW: Register a mime-type for Gambas executable if xdg utils from the Portland project are installed on the system.
  • NEW: Register a mime-type for Gambas scripts if xdg utils from the Portland project are installed on the system.

Development Environment

  • BUG: New translations are automatically removed in the translation dialog if they are void.
  • BUG: Changing the value of a property in the property sheet correctly updates the property name and background.
  • BUG: Symbolic links can be renamed safely.
  • BUG: Watched variables are correctly restored.
  • BUG: Saving and reading debug window settings is more reliable now.
  • BUG: Importing a translation works again.
  • BUG: Building Debian package failed when '_' was part of the name of the project.
  • BUG: Debian package didn't recognize when the package building failed.
  • BUG: Fixed one color in the Emerald theme.
  • BUG: Fixed the window title display routine, so that it only displays the "read-only" flag when the project is writable and not running.
  • BUG: Fixed getDebVersion() routine, so Debian packaging from the IDE works again.
  • BUG: Fixed a possible crash in translation dialog when checking the translation just after having saved it.
  • BUG: Help on gb.gui or gb.gtk is automatically redirected to gb.qt help.
  • BUG: Debugging balloons should work correctly on Gnome and XFCE now.
  • BUG: Searching list window when starting the search in a data text file does not crash anymore.
  • BUG: Fixed the icon editor selection when the image is not square.
  • BUG: Fix the "bad path bug" with autotools package generator. Previously it was searching in System.Path instead of 'System.Path'/bin.
  • NEW: Swedish translation updated.
  • NEW: Catalan translation updated.
  • NEW: Italian translation updated.
  • NEW: Japanese translation updated.
  • NEW: The translation dialog now can display statistics in the language list.
  • NEW: Updated tips of the day italian translation.
  • NEW: MDI window title now displays if the file is read-only whereas the project is not.
  • NEW: Project tree view information balloon displays information on symbolic links.
  • NEW: Error messages when building Debian packages are caught.
  • NEW: Debian packages are built without checking build-dependencies, so it will work using svn version, without installing packages.
  • NEW: The subversion user is now stored in the global Gambas configuration file and not in the project file anymore.
  • NEW: Support for alpha channel in the icon editor.
  • NEW: A new icon for searching entire words option.
  • NEW: New link icon.
  • NEW: Stack size is not a multiple of 1024 bytes anymore, but a multiple of 1024 stack slots. A stack slot is 16 bytes, and will be 32 bytes in the 64 bit version of Gambas.
  • NEW: Little option dialog redesign.
  • NEW: A new option for hiding the message bar.
  • NEW: When adding an image, HTML or CSS file, a new option allows to specify if the default file extension should be added.
  • NEW: The example groups are now drawn with a blended background in the welcome dialog.
  • NEW: The project directory icon was changed.
  • NEW: The reload button was implemented in text editor and icon editor.
  • NEW: The reload button is always active, even if the editor was not modified in the IDE.
  • NEW: Open web page with Firefox using a new window (Help Browser), if Firefox is already running
  • OPT: Class symbols scan is faster.

Database Manager

  • BUG: Copying a table does not destroy the destination table when its has the same name as the source table anymore.
  • NEW: The import CSV routine now automatically remove accents from field names.
  • NEW: Catalan translation updated.

Wiki Cgi Script

  • NEW: Google search function.
  • NEW: The page path is displayed on the first line instead of a link to the page one level up.
  • NEW: Displays the number of classes and number of symbols in the component page.
  • NEW: Arabic translation made by Daif Otaibi.
  • NEW: A new URL argument for showing a page with the top path links, and without.
  • NEW: A new keyword, "@no-autolink", that prevent auto-link feature when putat the beginning of a page.
  • NEW: Catalan translation updated.
  • NEW: Updated spanish translation.

Examples

  • BUG: PdfViewer fixed for the last interface changes in gb.pdf component
  • BUG: Updated the GameOfLife example to the new Draw.Zoom behaviour.
  • BUG: OnScreenDisplay example now display correctly. i've add the possibility to move the display too.
  • NEW: Removed the old PDFViewer example
  • NEW: Adds a new PDFViewer example made by Daniel Campos.
  • NEW: PdfViewer supports rotation and text finding
  • NEW: PdfViewer example supports PDF Index

Interpreter

  • BUG: Evaluating expressions in the debugger does not crash anymore.
  • BUG: String[].Exist() second optional argument is correctly declared now.
  • BUG: Now any external process run by SHELL or EXEC starts in the working directory of the current program, as returned by the Application.Dir property.
  • NEW: All array classes got a new method named Delete(), that is a synonymous for Extract().
  • NEW: System.Backtrace is a new property that returns the current backtrace as a string array.
  • NEW: Error.Backtrace is a new property that returns the full stack backtrace of the last error.
  • NEW: Format$() got a new date format token, "uu", which prints the milliseconds of a date/time value with always three digits.

Compiler

  • BUG: Fixed a bug that made the compiler crash if there is a type mismatch on constant declaration.
  • NEW: Translatable strings with only space characters are now ignored.
  • NEW: The files are now always compiled in alphabetic order. This keeps the translation files contents structure between two compilations on different systems.

Archiver

  • BUG: Makefile files are not ignored anymore.

Scripter

  • NEW: A new utility that allows to use Gambas as a scripting language. A Gambas script file must begin with '#!/usr/bin/env gbs2'.

GB.CHART

  • BUG: .info and .list files need to be comitted.

GB.DB

  • BUG: Support for database backends that do not like inserting a record without any value change.

GB.DB.FORM

  • BUG: DataView.Header now works correctly when set to GridView.Both.
  • BUG: Fixed a infinite recursion when checking if a data control was modified.
  • BUG: DataCombo now can be set to a null value when being read-only. This prevent the DataSource to become mad in that case.
  • NEW: Italian translation added.
  • NEW: Catalan translation added.

GB.DB.MYSQL

  • NEW: A 32 bits integer MySQL field with auto increment flag is now seen as a Serial Gambas field.
  • NEW: Client charset is set to System.Charset at database connection when possible.

GB.DB.ODBC

  • NEW: The ODBC driver got blob support.

GB.DEBUG

  • BUG: The internal buffer is now bigger, so that the IDE has less luck to get a truncated message of the debugger. This is a temporary workaround!
  • BUG: The debugger can display anonymous object references without crashing now.

GB.DRAW

  • NEW: Support for alpha channel in Draw.Zoom().

GB.EVAL

  • BUG: Syntax analyzer now correctly interprets the identifier following an exclamation mark as a string. It does not try to change its case anymore.
  • BUG: Fixed the string parser. Spurious syntax error while evaluating some string expressions consequently disappeared.

GB.FORM

  • NEW: Catalan translation added.
  • NEW: Italian translation added.
  • NEW: Japanese translation updated.
  • NEW: XFCE, and XFCE icon theme are correctly detected now.
  • NEW: FontChooser.ShowPreview is a new property for hiding the font preview.
  • NEW: ColorChooser.ShowAlpha is a new property for allowing to set the alpha component of the color.

GB.FORM.DIALOG

  • NEW: Italian translation added.
  • NEW: Japanese translation updated.
  • NEW: Catalan translation added.

GB.FORM.MDI

  • BUG: Workspace should not send spurious activation events anymore.
  • BUG: Closing all windows should work reliably now.
  • BUG: Closing one window and calling Message during the Close event should not crash anymore.
  • NEW: Italian translation added.
  • NEW: Japanese translation updated.
  • NEW: Catalan translation added.

GB.GTK

  • BUG: Some gcc "deprecated conversion from string constant to 'char *'" warnings were fixed.
  • BUG: IconView raises correctly its Click event now.
  • BUG: HBox and VBox with AutoResize set do not shrink to a null size when they have no visible child. They keep their size.
  • BUG: GridView rows resizing works again.
  • BUG: Fixed the Drag.Data property when the Drag & Drop operation started outside of the application.
  • BUG: ListBox.Item.Text does not corrupt the ListBox anymore.
  • BUG: TabStrip is not a drop destination by default anymore.
  • BUG: Button, CheckBox, RadioButton, ToggleButton and ToolButton now correctly raise common Control events like MouseDown, MouseUp, Menu...
  • BUG: Buttons now correctly follows the widget style.
  • BUG: Now you cannot display a message box if another one is already displayed.
  • NEW: The window default title is now the application title as defined in the development environment.
  • NEW: Color.Blend is a new method for blending a color on top of another one.
  • NEW: Color.HSV() now takes an optional alpha component argument.
  • NEW: The GridView now scrolls continuously when the mouse cursor is outside of it while selecting.
  • NEW: TrayIcon Menu and MouseWheel events were implemented.

GB.GTK.EXT

  • NEW: New methods added to Theme drawing.
  • NEW: Added ResizeGrip drawing method.
  • NEW: Removed Shadow and State classes: mixed with Draw.Theme class

GB.GUI

  • BUG: Now Draw.RichTextHeight and Draw.RichTextWidth return values.

GB.NET.CURL

  • BUG: Many compiler warnings removed

GB.PDF

  • BUG: Some annotations to continue the work later
  • BUG: Found text and Links are not merged when changing current page anymore
  • BUG: PdfIndex.MoveNext() and PdfIndex.MovePrevious() do not crash the program anymore
  • BUG: Internal string conversions to UTF-8 fixed
  • BUG: Fixed segfault in PdfIndex when moving from a children node to its parent
  • BUG: Now a document rotated and zoomed provide the right Width and Height dimensions for each page
  • BUG: fixed segfault when GetPicture or GetImage take dimensions outside of the real PDF page dimensions
  • BUG: Fix the _new() method when no argument is given.
  • BUG: Fix some warnings with recent versions of gcc.
  • BUG: Fixed Image and Picture extraction when PDF page is zoomed
  • BUG: Fixed Image and Picture extraction when Orientation is Sideways
  • BUG: Page bookmarks position fixed according to page zoom and orientation
  • BUG: Text finding failed due to wrong Unicode conversion
  • BUG: Text finding not taking in account rotation and scale
  • BUG: Bad alloction of found items due to a bad cast
  • BUG: Bad cast for indexes
  • BUG: Pdf Index fixed when Index has more than two nested levels
  • BUG: Zoom property must take values greater than zero
  • BUG: poppler >= 0.5 is now a requirement for the compilation.
  • BUG: Some warning messages from compiler removed
  • NEW: 'Scale' property has been renamed to 'Zoom', which is more intuitive for that case
  • NEW: '_new' method takes now an optional 'File' argument
  • NEW: PDFINFO_permissions modified, each permission is a boolean property, and PDFPermissions class has been removed
  • NEW: PDFINFO_mode implemented, PdfMode class fixed
  • NEW: PDFINFO_layout constants modified , PdfLayout class fixed
  • NEW: PdfInfo.Format implemented
  • NEW: Initial support for text finding implemented
  • NEW: Creation and modification date implemented in PdfInfo
  • NEW: Some PdfPageLink properties implemented: Type,Left,Top,Width and Height
  • NEW: PdfIndex partially implemented, work in progress
  • NEW: PdfIndex class improved
  • NEW: PdfLinkData class implemented
  • NEW: PdfPage.Select() implemented. All interfaces are implemented now, entering in the stabilization phase.
  • NEW: PdfIndex and PdfLink properties mixed in the PdfLinkData interface, a good amount of code removed
  • NEW: PdfIndex can manage now the state of nodes (expanded/collapsed) using the 'Expanded' property. 'IsOpen' read-property removed
  • NEW: Added PdfLink.Parameters property for Launch Actions.
  • NEW: 'Rotation' property in PdfDocument has been renamed to 'Orientation'
  • NEW: Four new constants for 'Orientation': Normal, Sideways, Inverted and InvertedSideways
  • NEW: PdfPage contains two properties: Image and Picture, synonymous of GetPicture() and GetImage() without parameters
  • NEW: Add many 'static' keyword.
  • NEW: 'W' and 'H' page properties as synoymous of 'Width' and 'Height'
  • NEW: PdfInfo author, subject, keywords, creator and producer properties implemented
  • NEW: Layout and linearized properties implemented in PdfInfo class
  • NEW: Some PdfPageLink properties implemented: Type,Left,Top,Width and Height

GB.QT

  • BUG: Some fixes in the ListView, TreeView and ColumnView classes that prevent two different crashes.
  • BUG: Closing a modal dialog inside the Open event now works again.
  • BUG: Do not change ColumnView column widths when clearing it, if the AutoResize property is not set.
  • BUG: Closing a modal form during the Open event should work correctly now.
  • BUG: HBox and VBox with AutoResize set do not shrink to a null size when they have no visible child. They keep their size.
  • BUG: GridView Row and Column property now can be set to -1, meaning that there is no current cell.
  • BUG: Now you cannot display a message box if another one is already displayed.
  • NEW: The ColumnView ColumnClick event was removed. It had got nothing to with GridView ColumnClick event, and was not really useful.
  • NEW: Color.Blend is a new method for blending a color on top of another one.
  • NEW: Color.HSV() now takes an optional alpha component argument.
  • NEW: Mouse events can be cancelled by using STOP EVENT.

GB.QT.EXT

  • BUG: Fixed an editor crash when you try to insert some characters after the last line.

GB.SDL

  • BUG: Fix RGB/BGR color problem when an image is resized and assigned as a texture with gb.opengl component.
  • BUG: Draw.Image method failed with segfault when image is NULL.

GB.V4L

  • BUG: Updated author e-mail address.

GB.WEB

  • BUG: Session.Abandon now correctly clears the Session so that a new one can be created again.
  • OPT: The HTML() routine is faster. This routine should be written in C anyway, as it is called often.
1.9.90 - 05 Oct 2007
  • BE CAREFUL! Now the compiler makes module symbols private by default. This will break the projects that were relying on the old behaviour. There is a new compatibility option in the project property dialog to workaround that.

Configuration

  • NEW: The package version is now 1.9.90, which is the version that will be used for the release candidate of Gambas 2.
  • NEW: Gambas bytecode version was raised to 2.0. You will get warnings on the standard error output when running a project or a component that was compiled before this version.

Development Environment

  • BUG: Auto-completion popup is hidden when the edited file is saved.
  • BUG: Fix the RPM package naming in the packager.
  • BUG: Autotools are correctly detected now in the packager.
  • BUG: The packager menu list is correctly refreshed.
  • BUG: Checking autotools package does not prevent from making other kinds of package anymore.
  • BUG: Fixed the editor procedure combo-box that sometimes displayed an incorrect procedure name.
  • BUG: Fixed a potential problem in debian package maker, where a SHELL command was run without waiting for its end.
  • BUG: The new option for using the release version number works now.
  • BUG: The rows of the property editor are now always one line height.
  • BUG: The component definition part of the project property dialog does not crash anymore when you load several projects successively.
  • BUG: Removed the '!' character displayed in watched expression errors.
  • BUG: Fixed the display of objects having an integer array accessor and a Count property, but other properties too.
  • BUG: The ColumnView columns in the translation dialog are correctly resized in every case now.
  • BUG: When you install a component project executable in the user directory, the component information data is now reloaded.
  • BUG: Signature window foreground color is always black, so that it is always visible, whatever the default background color is.
  • BUG: Fixed package names in RPM package generation.
  • NEW: The 'Find' menu entry was moved to the 'Tool' menu.
  • NEW: A new option for using or not the release version number when creating an installation package.
  • NEW: The global "find" menu entry always open the find tool.
  • NEW: The property sheet now supports string properties associated with an enumeration.
  • NEW: Debug windows got a button that display or not hidden symbols.
  • NEW: Debug windows are more clever in displaying expressions.
  • NEW: Now components have a development state: 'Finished and stable', 'Not finished but stable', and 'Unstable'. The last one was called 'Beta version' before.
  • NEW: The option tab of the project property dialog was redesigned.
  • NEW: A new project option to make module symbols public by default as before.
  • NEW: A new project option to define the default project language. This is not used anywhere yet.
  • NEW: Only the name of modified properties is bold in the project property sheet now.
  • NEW: In debugger windows, the "show hidden symbols" button is not displayed if there is no hidden symbols to display. Moreover, static symbols are now considered as hidden if an object is displayed.
  • NEW: Add a new project type in the project creation dialog for creating "graphical" projects based on the gb.gui component.
  • NEW: Some more tips. Only in english at the moment.
  • NEW: The about dialog box was updated.
  • OPT: Tried to get rid of useless project tree view refresh.

Database Manager

  • NEW: Arabic translation made by Daif Al-Otaibi.

Wiki Cgi Script

  • NEW: You can write custom pages in the component section /comp/*.
  • NEW: Automatic link is less aggressive.
  • NEW: Support for arabic language.

Examples

  • BUG: HTTPGet example now needs the gb.qt.ext component.

Interpreter

  • BUG: Adds GB.ExistClassLocal() and GB.FindClassLocal() to the Gambas API to fix the bug on Eval().
  • BUG: NULL now can be converted to any class in every case without raising an error now.
  • BUG: Error is not lost anymore during its propagation. And so the interpreter should not stop without printing any error anymore.
  • NEW: Timer.Trigger is a new method that triggers the timer once at the next event loop.
  • NEW: Class names can be used as function for casting object references.
  • NEW: The "return from" debugger function is more clever now when the previous stack frame is native code.
  • NEW: Process.Wait is a new method to wait for the end of a process.
  • NEW: System.User.Group is a new property that returns the real group identifier of the current process.
  • OPT: Debugger breakpoints are now automatically replaced by the NOP bytecode operation when they are useless.

Compiler

  • NEW: A new option, '-m', to make module symbols public by default. If this option is not specified, modules are like classes, and symbols are private by default.

Informer

  • BUG: Removed the useless use of RTLD_DEEP_BIND.
  • BUG: Calling the informer with several components as arguments now works correctly.
  • NEW: Do not close shared libraries at all. This should avoid random crashes when analyzing more than one component at once.

GB.DEBUG

  • NEW: Information on expressions is more clever now.
  • NEW: The "return from" debugger function is more clever now when the previous stack frame is native code.

GB.EVAL

  • BUG: Eval() loads classes correctly now. This fixes, for example, the pending bug where the evaluation of a public module variable returns an incorrect value.

GB.FORM

  • BUG: DirView now always raises its Click event when a node is selected.
  • BUG: TableView now works correctly when put inside a HSplit or VSplit control.

GB.FORM.MDI

  • BUG: Workspace should close correctly all its windows now.

GB.GTK

  • BUG: Desktop.Scale now returns the same value as gb.qt for the same desktop font size.
  • BUG: Application title was not shown as default title for a Window
  • BUG: removed default Window title
  • BUG: Default size for a window created at runtime. Now emulates the QT ones: resize(200,150)
  • BUG: Draw class was using wid->window instead or wid->bin_window for top level windows
  • BUG: Some fixes in GridView mouse click management.
  • BUG: The last column width is correctly updated now.
  • BUG: Some fixes in Window life cycle.
  • BUG: Color.LightBackground now returns a color that is suitable for light and dark backgrounds.
  • BUG: Arrange containers that are not explicitely hidden even if they are not visible, like in gb.qt.
  • NEW: gb.qt and gb.gtk now share the same picture loading algorithm.
  • NEW: Label and TextLabel autoresize algorithm was fixed, and is now the same in both gb.qt and gb.gtk components.
  • NEW: Picture.Save and Image.Save methods now take an optional quality integer parameter.
  • NEW: TextEdit was removed because it cannot be implemented at the moment.
  • NEW: Window modality is managed the same way as in gb.qt now.
  • NEW: Window.Menus can be used as an array indexed by integer.
  • NEW: Container.Children can be used as an array indexed by integer.
  • NEW: Menu.Children can be used as an array indexed by integer.

GB.GTK.EXT

  • BUG: Added usage of POINTER() macro to avoid compilation warnings.
  • BUG: Now using Gambas API array functions instead of implementing them by hand.
  • BUG: Fixed macro in CPaint.h
  • NEW: Added capabilities to draw on a drawable using GTK+ style elements.

GB.LDAP

  • NEW: This component was removed, as some people told me that it was not working, and as I have no news from its developer.

GB.QT

  • BUG: The TextLabel autoresize algorithm now only resizes vertically according to the horizontal size. The horizontal size is never changed to avoid infinite recursion.
  • BUG: GridView now correctly takes the text font into account when computing the width of a cell.
  • BUG: Color.LightBackground now returns a color that is suitable for light and dark backgrounds.
  • NEW: gb.qt and gb.gtk now share the same picture loading algorithm.
  • NEW: If a top-level window is shown and no title was set, when the application title is used instead.
  • NEW: Label and TextLabel autoresize algorithm was fixed, and is now the same in both gb.qt and gb.gtk components.
  • NEW: Picture.Save and Image.Save methods now take an optional quality integer parameter.
  • NEW: TextEdit was moved to gb.qt.ext because it cannot be implemented in gb.gtk at the moment.
  • NEW: You can open again a non-modal window even if a modal window is displayed. The newly opened windows are non-modal for the last opened modal window, but keep being modal for the other windows opened before.
  • NEW: Window modality is managed the same way in gb.gtk and gb.qt.
  • NEW: Window.Menus can be used as an array indexed by integer.
  • NEW: Container.Children can be used as an array indexed by integer.
  • NEW: Menu.Children can be used as an array indexed by integer.
  • NEW: The font used for <tt> and <pre> in HTML text is now Monospace.

GB.QT.EXT

  • NEW: TextEdit was moved to gb.qt.ext because it cannot be implemented in gb.gtk at the moment.

GB.QT.KDE

  • BUG: The component compiles again.

GB.SETTINGS

  • BUG: Fixed an old bug that made programs using gb.settings crash silently when a settings file did not exist.
  • NEW: Settings.Reload() is a new method that cancels all modifications of a setting file.

GB.V4L

  • NEW: The VideoDevice.Save method format argument was removed. Now the format is always guessed from the file extension.

GB.WEB

  • BUG: Session.TimeOut now really works as specified.
1.9.51 - 19 Sep 2007

Configuration

  • BUG: Components written in Gambas do not explicitely use gb.gtk or gb.qt anymore, but gb.gui instead. Otherwise these components could not compile on systems where gb.gtk or gb.qt is disabled.
  • BUG: The informer is run again just before compiling the components located in the ./comp sub-directory, so that components like gb.gui, whose *.info files relies on other components, are correctly installed. This workaround does not solve all dependencies possibilities.

Development Environment

  • BUG: Selecting a directory when importing a theme does not crash anymore.
  • BUG: Find list is correctly reset when a project is opened.
  • BUG: Redesigned the menu editor so that it displays nicely whatever the default font is.
  • BUG: The project tree view popup menu does not show unwanted actions anymore.
  • BUG: Support for controls that are overridden in another component.
  • BUG: Debugging windows save their position correctly now.
  • BUG: Error messages are correctly displayed when evaluating an expression during debugging.
  • BUG: Breakpoints are not incorrectly set anymore at program startup.
  • BUG: The form name is not put in the list of form controls anymore.
  • BUG: The project '.lang' hidden directory that contains translation files is now automatically created and put under version control.
  • BUG: Add all specials methods in automatic completion.
  • BUG: Fix image rotation in icon editor. Image.Rotate now uses radians.
  • BUG: Property sheet now always displays only one line of the property value.
  • NEW: Removed some useless icons.
  • NEW: New icons for the automatic completion.
  • NEW: The project environment variables are taken into account now.
  • NEW: The project environment dialog has been moved inside the project property dialog.
  • NEW: New Catalan translation made by Jordi Sayol.
  • NEW: Catalan translation of tips of the day.
  • NEW: Spanish catalan is now the default catalan language.
  • NEW: Support for the new help files, and the F2 function is more clever.
  • NEW: Component selection is now only checked when you close the project property dialog.
  • NEW: Some warning messages displayed when checking the components were changed in the project property dialog.
  • NEW: Renaming a control should update its displayed title in the form editor now.
  • NEW: Japanese translation updated.
  • NEW: The status message line is automatically cleared after one second.
  • NEW: Support for static classes, and objects that can be used like an array (they have a Count property, and are indexed by an integer). Support for objects indexed by strings is planned.
  • NEW: Menu reorganization.
  • NEW: You can open a browser on the current project from the 'Tools' menu now.
  • NEW: The debugging windows display integer values in decimal and hexadecimal now.
  • NEW: The image editor option was removed and replaced by a new 'Edit with' item in the project tree view pop-up menu.
  • NEW: Icon editor edition buttons are hidden when the icon is read-only.
  • NEW: Many enhancements and fixes in debug windows.
  • NEW: Debug windows now follow the default system color palette. Otherwise, they would be sometimes not visible.
  • NEW: SIGTERM signal is not considered as a program crash anymore.
  • NEW: The information balloon now appears only if you press SHIFT while moving the mouse across project tree view items.
  • NEW: The project property dialog component list was redesigned.
  • NEW: Some fixes and enhancements in the component list of the project property dialog.
  • OPT: The breakpoint button update is delayed so that scrolling in code editor is not too slow when many windows are open.

Database Manager

  • BUG: The gb.gtk GridView can emit the Change event with no current cell. Now that does not lead to a crash anymore.
  • NEW: The database manager now uses the new gb.gui component.
  • NEW: Table, field and index names are now case sensitive.

Help

  • NEW: Help has been updated.

Examples

  • BUG: Fixed the bad use of a removed icon.
  • NEW: Snake example was update with new icons.
  • NEW: GameOfLife is a new example made by Iman Karim.
  • NEW: The GameOfLife example now implements the real rules of the standard game of life.
  • NEW: AnalogClock example was rewritten by using the transformation matrix.
  • NEW: Catalan translation of all examples.
  • OPT: GameOfLife example was optimized by using the Draw.Zoom method.

Wiki Cgi Script

  • NEW: Support for the new look. Allows to generate page without showing the wiki stuff.
  • NEW: Some enhancements and bug fixing. The error that occurs sometimes when displaying a page should be fixed now.
  • NEW: Catalan translation

Interpreter

  • BUG: StrPtr() should work correctly now.
  • BUG: Watched file descriptor that are removed during their callback should be effectively removed now.
  • BUG: Process.Tag property is now correctly freed when the Process object is destroyed
  • BUG: The debugger now can evaluate expressions that execute project code without making the IDE raise its error message box.
  • NEW: A new API to read an interface pointer associated with a class. This interface pointer is actually a constant of datatype "p" whose name begins with "_@".
  • NEW: Array.Copy() can copy multi-dimensional arrays now, only if it gets no arguments.
  • NEW: Calling EXEC with a null program name won't crash anymore.
  • NEW: Application.Env.Count is a new property that returns the number of environment variables.
  • NEW: Timer.Start() and Timer.Stop() are two new synonymous for the Timer.Eabled property.
  • NEW: Object.New() is a new method for instanciating objects.

Compiler

  • BUG: A syntax error is raised now when you use the NEW operator incorrectly.
  • BUG: The '!' operator is now really case sensitive.

Informer

  • NEW: A component can export a GB_INCLUDE symbol to tell the informer to include the symbol information of another component. gb.qt and gb.gtk use that to include the Draw class description located in gb.draw.
  • NEW: gbi2 can take more than one component as last arguments.

GB.EVAL

  • BUG: Fixed the bad transformation of the '!' operator right identifier into a string.
  • BUG: '!' operator works again.

GB.DEBUG

  • BUG: The debugger does not return overridden fields aynmore when information on a class is asked.
  • NEW: Support for static classes and objects that can be used like an array.

GB.DB

  • BUG: Result class now correctly deals with its internal array of modification flags.
  • NEW: Drivers now can explain their behaviour against case sensitivity, and if this behaviour can be changed.
  • NEW: Result.Fields.Length does not crash anymore.
  • NEW: Table, field and index names are now case sensitive. All drivers were modified according to this new policy.
  • NEW: The arguments of internal requests are now automatically quoted. That fixes a potential security hole. The following drivers are yet to be fixed: gb.db.firebird & gb.db.odbc.

GB.DB.SQLITE2

  • BUG: All gb.db.sqlite3 bug fixes were backported.

GB.DB.SQLITE3

  • BUG: Reading a field having a NULL value works in all cases now.

GB.NET.CURL

  • BUG: CCurl.Proxy is a now a true virtual class.
  • BUG: HttpClient and FtpClient should not crash anymore.

GB.DRAW

  • NEW: This is a new internal component that will implement the Draw class. Drawable classes must declare a "Draw" interface that points at a drawing function implementation structure.
  • NEW: Draw.Circle() draws a circle from its center and radius.
  • NEW: Draw.Zoom() is implemented there, outside of drawing implementations.
  • NEW: Draw.Rotate() has been removed.
  • NEW: Draw.RoundRect() has been removed.
  • NEW: Draw.RichText() is a new method for drawing HTML-like text.
  • NEW: Draw.RichTextWidth() and Draw.RichTextHeight() are two new methods that return the size of a rich text.

GB.GUI

  • NEW: This is a new component that just loads gb.qt if you are running KDE or gb.gtk in the other cases. It will make your application more desktop-friendly!
  • NEW: If the GB_GUI environment variable is set, then gb.gui will load the component specified by its contents.

GB.QT

  • BUG: Fix the control description.
  • BUG: Found a workaround to the QT input methods bug that was generating bad KeyRelease events.
  • BUG: Fixed the order of Slider properties so that Value is last. Otherwise, the IDE will not define MaxValue and MinValue before Value, and things won't work as expected.
  • BUG: GridView row selection API works correctly now. There is one bug yet. Do not use SHIFT in the row header to select rows!
  • BUG: Image.Draw() works correctly now.
  • BUG: A disabled Button, ToggleButton or ToolButton now draws its picture correctly when its Text property is void.
  • BUG: Cached DrawingArea border now is correctly refreshed.
  • BUG: ProgressBar percentage is correctly rounded now.
  • BUG: Key modifier properties (Key.Shift, Key.Control...) now return the accurate value during a KeyRelease event. Maybe gb.gtk should be checked for the same problem.
  • BUG: ScrollView with Arrangement property set now resizes correctly when the size of one of its children changes.
  • BUG: The GridView single selection should work correctly now.
  • BUG: Fix the stretching behaviour of the last column of a GridView.
  • NEW: gb.qt and gb.gtk now share the description of the control hidden properties used by the IDE.
  • NEW: gb.qt now uses gb.draw as drawing interface.
  • NEW: Drawing and Printer classes were removed and put in gb.qt.ext.
  • NEW: Image.Replace() takes a new 'NotEqual' optional argument. If this argument is set to TRUE, then the method will replace the pixels whose color is different from the one specified.
  • NEW: gb.qt and gb.gtk now share many constant values, so that the IDE can use them indifferently.
  • NEW: ColumnView.AutoResize is a new property that globally replaces the ColumnView.Column[].AutoResize property.
  • NEW: Label.Transparent and TextLabel.Transparent are two new properties that make labels transparent.
  • NEW: Clipboard.Formats now keeps the format charsets.
  • NEW: GridView row and column Moveable properties were removed.
  • NEW: Arrangement routine has been fixed and enhanced. The AutoResize property of vertical and horizontal arrangement is more clever now.
  • NEW: Window.AutoResize comes back, and should work now.
  • NEW: Window.Closed is a new property that returns if a window is closed.
  • NEW: When a debugged program is paused, and run again, the program active window is automatically reactivated.
  • NEW: ColumnView with AutoResize set now take the column label widths into account.
  • NEW: ColumnView last columns has always the maximum size.

GB.QT.EXT

  • NEW: Drawing and Printer classes were moved to this component. They are drawable again.
  • NEW: This component implements the Draw.Drawing() method.

GB.GTK

  • BUG: Fix the control description.
  • BUG: Some fixes in the handling of HTML text.
  • BUG: Draw.Ellipse() has been fixed.
  • BUG: Draw.Text() has been fixed.
  • BUG: Timers work! Stupid GTK+ timers were tamed. The minimum delay was set to 10ms, otherwise the GUI freezes.
  • BUG: Use the default widget style if no style is associated with a specified widget class. Otherwise it crashes.
  • BUG: The default alignment of Draw.Text is Align.TopNormal now.
  • BUG: ScrollView.ScrollW and ScrollView.ScrollH now return the correct value.
  • BUG: Setting the window mask works correctly. But removing it does not yet!
  • BUG: Loading a transparent picture from disk creates a transparent picture in memory.
  • BUG: Using Picture.Load() does not automatically transforms the intern pixbuf into a pixmap.
  • BUG: Picture.Copy() really copies the picture now.
  • BUG: Label.Transparent works.
  • BUG: Label.Font was fixed.
  • BUG: The MouseDrag event works correctly now.
  • BUG: The MouseMove event should be raised on all controls now.
  • BUG: gPicture::copy() now works correctly for images stored in memory.
  • BUG: TabStrip.Text is implemented correctly now.
  • BUG: Mouse.State and Mouse button properties should have the correct value in all cases now.
  • BUG: TreeView.Item.X is accurate now. And so as for ListView and ColumnView.
  • BUG: The Menu class has been fixed.
  • BUG: The TabStrip[].Text property does not leak memory anymore.
  • BUG: Many fixes in layout handling.
  • BUG: GridView better honors its background property.
  • BUG: GridView border is correctly drawn now.
  • BUG: Color hue can be greater than 360.
  • BUG: Newly created TabStrip tabs are correctly put to the last.
  • BUG: Embedded windows now correctly raise the Show and Hide events.
  • BUG: Do not share fonts that are linked with a Gambas object.
  • BUG: DrawingArea refresh behaviour was fixed.
  • BUG: Label and TextLabel borders are displayed correctly now.
  • BUG: ProgressBar percentage is correctly rounded now.
  • BUG: Frame borders are correctly drawn now.
  • BUG: Label.AutoResize and TextLabel.AutoResize properties were fixed.
  • BUG: GridView selection behaviour has been fixed.
  • BUG: Pie slice border is drawn like in gb.qt now.
  • BUG: Font objects created with NEW do not share the same internal gFont instance anymore.
  • NEW: gb.qt and gb.gtk now share the description of the control hidden properties used by the IDE.
  • NEW: Mouse.StartX and Mouse.StartY were implemented
  • NEW: The MouseDrag event was implemented.
  • NEW: GTK+ >= 2.10 is required now.
  • NEW: The old Draw class has been replaced by the use of the gb.draw component.
  • NEW: Draw.Tile() has been implemented.
  • NEW: Draw.Picture() and Draw.Image() stretching arguments have been implemented.
  • NEW: Draw.Resolution has been implemented.
  • NEW: Draw.Circle() draws a circle from its center and radius.
  • NEW: Draw.Zoom() has been implemented.
  • NEW: Sorting has been implemented in ListView, TreeView, IconView and ListBox.
  • NEW: Image.Draw() has been implemented.
  • NEW: Picture can be "transparent", like in gb.qt. It means they can have an internal bitmap mask. This mask is taken into account by the drawing methods.
  • NEW: Image.Replace() takes a new 'NotEqual' optional argument. If this argument is set to TRUE, then the method will replace the pixels whose color is different from the one specified.
  • NEW: gb.qt and gb.gtk now share many constant values, so that the IDE can use them indifferently.
  • NEW: Draw.Picture() takes the clipping into account now.
  • NEW: ColumnView.AutoResize was implemented.
  • NEW: The Clipboard class has been cleaned, and the Clipboard.Formats property has been implemented.
  • NEW: Drag & Drop was redesigned. The following features are not yet implemented: Drag.Formats, Drag.Show and Drag.Hide. Drag.Icon does not work too.
  • NEW: Drag.Icon works now.
  • NEW: Drag.Show and Drag.Hide methods have been implemented.
  • NEW: GridView look has been enhanced.
  • NEW: GridView.Rows.Select and GridView.Rows.Unselect were implemented.
  • NEW: GridView column and row Resizable property have been implemented.
  • NEW: All GridView column and row properties synonymous were implemented.
  • NEW: Arrangement routine has been fixed and enhanced as in gb.qt.
  • NEW: Window.AutoResize has been implemented.
  • NEW: Window.Closed is a new property that returns if a window is closed.
  • NEW: TextArea Change and Cursor events were implemented.
  • NEW: Rich text now understand HTML entities, thanks to code from KDE libraries.
  • NEW: DrawingArea.Tracking was implemented.
  • NEW: DrawingArea.Enabled specific behaviour was implemented. Note: a disabled DrawingArea has only the X11 Expose event set in its event mask.
  • NEW: Label.Adjust and TextLabel.Adjust were implemented.
  • NEW: GridView last column is now automatically stretched to fit the GridView visible width.
  • OPT: Removed some unneeded copy of point array in Draw.Polyline() and Draw.Polygon().
  • OPT: Cached DrawingArea has been optimized. It uses the X-Window background pixmap now.
  • OPT: GridView selection does not become slow anymore when a lot of rows are selected.

GB.GTK.EXT

  • NEW: New component that adds footers to the GridView control. Two new properties: GridView.Footer to enable it, and GridView.Columns[].FooterText to define the text of each footer.

GB.QTE

  • NEW: Synchronized with gb.qt.

GB.IMAGE

  • NEW: Methods that took degrees now take radians.
  • NEW: Image.Gradient decay arguments are float now.

GB.SDL

  • NEW: Cursor class to manage custom cursor.
  • BUG: Now when the window raise the draw event, calling Draw.Begin() / Draw.End() is not mandatory anymore. It is automatically called like in gb.qt or gb.gtk (Thanks to Fabien Bodard).

GB.PDF

  • BUG: Try to be compatible with the upcoming poppler 0.6.

GB.INFO

  • BUG: Some bug fixes in component description loading.

GB.SETTINGS

  • BUG: The $XDG_CONFIG_HOME environmental variable is now taken into account.

GB.FORM

  • BUG: Removed the use of Draw transformation matrix in the Balloon class.
  • BUG: gb.form does not require itself anymore!
  • BUG: ValueBox should not crash anymore on invalid input.
  • BUG: Character deletion in ValueBox is possible now.
  • BUG: DateChooser is drawn correctly again.
  • BUG: DateChooser does not strip the month combo-box anymore.
  • BUG: Balloon foreground color is now always black, so that it is visible whatever the system foreground color is.
  • BUG: ListContainer does not watch its children too often anymore.
  • NEW: InputBox is a new static class made for Visual Basic users.
  • NEW: FileView.Count is a new property that returns the number of files displayed in the view.
  • NEW: DateChooser.SetDateColor() is a new method to associate a background color to a specific date.
  • NEW: DirChooser.ShowSplitter is a new boolean property that enables the button that shows the files.
  • NEW: A few new icons in the stock.
  • NEW: Do not display the "close other tabs" menu item when there is only one window in a Workspace.

GB.FORM.MDI

  • BUG: Cancelling a window close event works correctly again.
  • BUG: Closing an inactive window works in a Workspace again.
  • BUG: Closed MDI windows are correctly detected now.
  • BUG: Does not try to close windows when they have became invalid.
  • NEW: Workspace.Background now really sets the background color of the workspace.
  • NEW: Two new methods, Workspace.Lock and Workspace.Unlock, used for hiding the TabStrip while closing windows.
  • NEW: ToolBar.AutoResize is a new boolean property, set by default. When not set, the toolbar always displays its children on one line.
  • NEW: The MDI windows menu has now an entry for closing all windows except the current one.

GB.WEB

  • BUG: The Request class now can handle submission of <select> form elements with multiple selection.

GB.REPORT

  • BUG: Bug on pie not resolved...
  • NEW: The ReportTextLabel is now working with the new Draw.RichText function.

GB.CHART

  • NEW: This is a new component that draws charts.
1.9.50 - 13 Jul 2007

Configuration

  • BUG: The development environment and the database manager now compile correctly when installing in a building directory.
  • BUG: Now components that depends on X11 are always linked against the X11 libraries, and should be disabled correctly if X11 is not installed.
  • BUG: Tried to fix the detection of QT Moc so that it just disables the component, and does not abort.
  • BUG: Tried to fix the detection of SDL version.
  • BUG: Fix "gbc/Makefile.am:32: compiling `gb_error.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac'" warning with GNU automake 1.10.
  • BUG: Fix compilation breakage introduce with 'AM_PROG_CC_C_O' macro with automake 1.9.

Development Environment

  • NEW: Converts old DateBox and TimeBox controls to ValueBox controls when opening an old form.
  • NEW: Highlights odd lines in the project list and example list in the project open dialog.
  • NEW: Japanese translation updated.
  • NEW: Project view information balloon behaviour has been redesigned.
  • NEW: Component constraints checking in the project property dialog is more reliable. But maybe less practical.
  • NEW: A button for swapping between gb.qt and gb.gtk in the project property dialog. This is for testing, and will be removed in the future.
  • NEW: The default open project dialog size is smaller.
  • NEW: The ESC key should hide the find panel and the console everywhere.
  • NEW: Editing an event handler from the form editor is more clever.
  • NEW: Support for autotools packages building.
  • NEW: Stock icons are not selectable if the gb.form component is not used.
  • NEW: The method signature popup does not flicker anymore.
  • NEW: An option to show or hide the project tree view balloons.
  • BUG: Displays startup class icon in big sizes correctly.
  • BUG: System icons are correctly stretched in the packager dialog.
  • BUG: The version of newly created projects is 2.0 now.
  • BUG: The console window remains opened after a debugging session if it was opened before.
  • BUG: Quotes correctly string properties in *.form files. Spurious 'non-terminated string' errors should have disappeared.
  • BUG: Form editor now correctly reads string array properties with values having a double quote inside.
  • BUG: Tabulation characters in string properties are correctly parsed by the form editor now.
  • BUG: Removes the use of SpinBox.Suffix property.
  • BUG: Changing the project components now correctly refreshes the property sheet.
  • BUG: No spurious property line in the property sheet anymore.
  • BUG: The spinbox font is correctly refreshed in the property sheet now.
  • BUG: Ensures that every node is expanded in the form hierarchy window.
  • BUG: The welcome dialog now respects the system color settings.
  • BUG: Fixes bug when making Debian packages if author's name was too long
  • BUG: Packager menu and package group tree views are correctly expanded again.

Database Manager

  • NEW: CSV import can strip white spaces from data.
  • BUG: CSV import is more robust and clever with field names.
  • BUG: CSV import can read correctly field values with newlines characters inside.
  • BUG: The server create dialog for sqlite has been fixed.
  • BUG: When importing a CSV file, the maximum number of columns is 1024. This avoids a possible too long scanning.
  • BUG: Table type combo-box is disabled in table creation dialog now when it is useless.

Examples

  • NEW: TextEdit example was updated.
  • NEW: Examples that apparently work with gb.gtk now use gb.gtk. This is for testing purpose.
  • NEW: A new game example made by Jairo Alonso Badillo Bedoya, imported from Gambas 1.0.
  • NEW: Sensor example text shadow is nicer.
  • NEW: A new PDFViewer example.

Wiki Cgi Script

  • BUG: Displays Pointer datatype correctly.

Interpreter

  • NEW: Support for old non-optimized archive format.
  • NEW: When bytecode version is different, a warning is displayed instead of raising an error. This will be removed at 2.0 release.
  • NEW: A new component GB_INFO exported function that implements global component properties. This function receives the name of the property, and must return its value if it can.
  • NEW: A new API function that allows a component to ask for the value of a property. All loaded components are asked, until one returns the value.
  • NEW: Application.Daemon is a new boolean property that "daemonize" the current program when set to TRUE. Once the program is "daemonized", the property cannot be set to FALSE.
  • NEW: gbx2 -e <expression> is a new syntax that makes the interpreter evaluate an expression, print it and exit.
  • NEW: Array.Extract() is a new method that removes a part of an array and returns it.
  • BUG: Archive should be runnable outside of their directory.
  • BUG: Correctly sets the first argument when the executed program is an archive.

Compiler

  • BUG: The compiler allocated a too small internal buffer for little forms, and then crashed. This has been fixed.

GB.DEBUG

  • NEW: The standard output of a debugged process is now flushed at each end of line.

GB.DB

  • NEW: The database API has changed, so that the query fill routine knows the database version. All database drivers were updated.
  • NEW: Connection.Error returns the error code of the last error raised by the underlying database driver. All database drivers were modified to implement this feature.
  • BUG: The pseudo-driver gb.db.sqlite now works correctly again.
  • BUG: Correctly frees the unused results of internal driver queries.

GB.DB.MYSQL

  • BUG: Tables or fields with similar names are now correctly detected.
  • BUG: Timestamp fields have changed since MySQL 4.1. This is taken into account now.

GB.DB.SQLITE2

  • BUG: Float fields do not lose decimal digits anymore.
  • BUG: Memory leaks have been fixed.

GB.DB.SQLITE3

  • BUG: Float fields do not lose decimal digits anymore.
  • BUG: Memory leaks have been fixed.

GB.NET.CURL

  • BUG: Fix an endless loop when a connect is stop before it's finished.

GB.NET.SMTP

  • NEW: The subject now can be any UTF-8 string.
  • NEW: The SMTP error code is now inserted in the error message returned by the library.
  • BUG: The library now sends CR+LF end of lines, and not just CR, as specified in the RFC. Windows SMTP servers prefer!
  • BUG: Fixed a memory leak.

GB.QT

  • NEW: TextEdit now has a Link event that is raised when the user clicks on a link. It works only if TextEdit is read-only.
  • NEW: The TextEdit.Line property has been removed.
  • NEW: GridView.Item.Clear has been implemented.
  • NEW: Creates a directory for storing files shared with gb.qte, gb.qt.kde and gb.gtk.
  • NEW: ScrollView.Border is now a boolean property.
  • NEW: SpinBox Prefix and Suffix properties have been removed. They don't exist in GTK+, and they are not really useful.
  • NEW: SpinBox.Text returns the spinbox value as a string.
  • NEW: Menu.Name was implemented.
  • NEW: Watcher now only handles Move, Resize, Show and Hide event. The other events were move to the Container and Window classes. Use the Observer class to replace the Watcher.
  • NEW: Window got the Title and Icon event from the Watcher class.
  • NEW: Container got the Insert event from the Watcher class.
  • NEW: Deleting a TreeView, ListView or ColumnView item now always makes the internal cursor unavailable.
  • NEW: TreeView.Key does not change TreeView.Item anymore. And so on for ListView and ColumnView.
  • NEW: IconView got a new Cancel event that cannot be implemented at the moment because of a missing feature in QT.
  • NEW: IconView.Editable was implemented.
  • NEW: IconView.GridHeight was removed, because this feature does not exist in GTK+.
  • NEW: IconView.WordWrap was removed, because of bugs in the GTK+ implementation of this feature. Word-wrapping is always activated now.
  • NEW: GridView.AutoResize and ColumnView.AutoResize have been removed. They are always TRUE by default.
  • NEW: GridView.Data.Padding is a new property for defining the space around the cell contents.
  • NEW: UserControl has a new _AutoResize hidden property.
  • NEW: Desktop.Find() has been moved to the gb.desktop component.
  • NEW: TrayIcon[] has been implemented, as in gb.gtk.
  • NEW: The ScrollView Scroll event was implemented.
  • NEW: Color.Darker is a new method that returns a darker color.
  • NEW: Color.Lighter is a new method that returns a lighter color.
  • NEW: Color.Medium is a new method that returns the medium color between two.
  • NEW: TabStrip headers now switch when the mouse wheel is used.
  • NEW: CheckBox height now cannot be less that its check-box symbol height or its font height.
  • NEW: Image.Draw() has now the same syntax as Draw.Image().
  • BUG: GridView.Rows.X and GridView.Columns.Y properties were swapped.
  • BUG: Useless Window.Scale and Window.AutoResize properties were removed.
  • BUG: Menu.Window is now a read-only property.
  • BUG: TreeView.Item.Width now returns the correct value.
  • BUG: The TabStrip.Index property now takes the hidden tabs into account.
  • BUG: TabStrip[].Picture returns the correct tab picture now.
  • BUG: The TreeView, ListView, ColumnView and IconView now correctly takes the Ascending property into account. You do not have to manage it in the Compare event handler anymore.
  • BUG: Removed some spurious GotFocus events when the target control is not visible.
  • BUG: Removed useless Action property overrides.
  • BUG: Color[].Alpha returns the Gambas color alpha component correctly.
  • BUG: Picture.Fill() does not modify the picture mask anymore.
  • BUG: Image.Rotate() angle is now in radian, not in degree anymore. And the rotation is clockwise now.
  • BUG: The rotation of a transparent image now gives a transparent image.

GB.GTK

  • NEW: Application.Busy was implemented. It needs an hack in TextArea implementation.
  • NEW: Control.Reparent() now takes optional position arguments.
  • NEW: Color.LightBackground was implemented.
  • NEW: Dropped the replacement of GLib allocation routines by Gambas ones completetly, as they lead to false leak warnings.
  • NEW: Message boxes got some padding space.
  • NEW: Menu class has been entirely implemented.
  • NEW: Menus now automatically hide useless separators.
  • NEW: Control properties declaration is shared with gb.qt.
  • NEW: All TreeView, ListView and ColumnView interface has been implemented, the sorting properties excepted.
  • NEW: Message boxes, standard dialogs and modal windows are now kept above the current active window.
  • NEW: Working implementation of Window.Persistent and Window.Close.
  • NEW: Label.Padding and TextLabel.Padding have been implemented.
  • NEW: Disabled icons are drawn using the routine got from gb.qt.
  • NEW: Control.Name has been implemented.
  • NEW: TabStrip was entirely implemented.
  • NEW: Arrangement management was fixed.
  • NEW: SpinBox.Text returns the spinbox value as a string.
  • NEW: ListBox Click event has been implemented.
  • NEW: UserControl and UserContainer implementation have been fixed.
  • NEW: Watcher now only handles Move, Resize, Show and Hide event. The other events were move to the Container and Window classes. Use the Observer class to replace the Watcher.
  • NEW: Window got the Title and Icon event from the Watcher class.
  • NEW: Container got the Insert event from the Watcher class.
  • NEW: ScrollView.ScrollWidth and ScrollView.ScrollHeight were implemented.
  • NEW: The Container.Find method has been implmented.
  • NEW: The TextBox.SelectAll method was added.
  • NEW: Container now raises the Arrange event.
  • NEW: The expanded state of each TreeView or ColumnView node is now kept, as in gb.qt.
  • NEW: The background and foreground color management has been redesigned. Control.Foreground and Control.Background now understand Color.Default.
  • NEW: The HSplit and VSplit controls have been fixed.
  • NEW: GridView.MoveTo() and GridView.Column[].Text have been implemented.
  • NEW: Draw.Width, Draw.Height and Draw.Device have been implemented.
  • NEW: Draw.Foreground and Draw.Background now understand Color.Default.
  • NEW: Control.Lower() and Control.Raise() have been simplified.
  • NEW: IconView was rewritten from scratch from the TreeView code.
  • NEW: IconView GridX and GridY properties have been renamed to GridWidth and GridHeight, and now are a multiple of Desktop.Scale.
  • NEW: ComboBox Activate and Change events were implemented.
  • NEW: Default and Cancel buttons were correctly implemented.
  • NEW: Tray icons are now transparent.
  • NEW: Window.Reparent has been implemented.
  • NEW: Control Next and Previous properties have been implemented.
  • NEW: An activated tree view item is now automatically expanded or collapsed.
  • NEW: Windows.Controls has been implemented.
  • NEW: GridView.Data properties have been implemented.
  • NEW: GridView.Data.Padding has replaced the XPad and YPad properties.
  • NEW: The TextBox password char is now a big dot Unicode character.
  • NEW: TreeView MouseDown and Menu events now behave like in gb.qt.
  • NEW: ComboBox now behaves correctly. The selection properties are not implemented yet.
  • NEW: Some controls can have a minimum height. At the moment, only ComboBox and Button-like controls have it.
  • NEW: TextLabel.AutoResize has been implemented.
  • NEW: The Window Activate and Deactivate events have been implemented, and works almost the same way as in gb.qt.
  • NEW: TextArea now works like in gb.qt.
  • NEW: TextEdit has been implemented. It is not really useful at the moment: HTML is not understood, and formatting properties have not been implemented.
  • NEW: TextBox and TextArea selection interface is now the same as in gb.qt.
  • NEW: UserControl has a new _AutoResize hidden property.
  • NEW: GridView.Rows.Unselect has been implemented.
  • NEW: Removed some specific GridView properties.
  • NEW: SpinBox.SelectAll() has been implemented.
  • NEW: The Window.TopLevel property has been implemented.
  • NEW: Action properties were implemented.
  • NEW: When a window opens without any focus control explicitely set, it gives the focus to the first control in focus order. Button having keyboard shortcuts are ignored.
  • NEW: ToggleButton.Radio and ToolButton.Radio properties were implemented.
  • NEW: Color.Darker is a new method that returns a darker color.
  • NEW: Color.Lighter is a new method that returns a lighter color.
  • NEW: Color.Medium is a new method that returns the medium color between two.
  • NEW: Image.Rotate() was implemented.
  • OPT: gPicture and gImage internal classes have been merged to minimize the conversions between images stored in memory and images stored in the X server.
  • OPT: DrawingArea GTK+ double-buffering is now disabled when the Cached property is set. This avoid an unneeded pixmap copy, and so doubles the refresh speed.
  • OPT: Some optimizations in GridView repaint algorithm.
  • BUG: Control internals has been redesigned, so that the Border property works the same way as in gb.qt.
  • BUG: Picture cache now use the same key pattern than gb.qt, so that each component can store its pictures independently.
  • BUG: Newline characters are not ignored anymore in message boxes.
  • BUG: An embedded window can have a menu bar.
  • BUG: Control.SetFocus works even if the window is not yet realized.
  • BUG: Font.Height() argument is optional now.
  • BUG: Application.ActiveWindow and Application.MainWindow now return a Window object.
  • BUG: Draw.Text() now works correctly with any text argument.
  • BUG: Application.ActiveControl now returns a Control object.
  • BUG: Setting Control.Expand and Control.Ignore now update the arrangement of the parent container.
  • BUG: Setting a menu shortcut does not leak memory anymore.
  • BUG: The ListBox.List property was incorrectly named "List[]".
  • BUG: When a container is destroyed, or a parent menu, it removes any of its references from its children. This avoid a crash when accessing an already freed piece of memory.
  • BUG: Message box buttons now correctly handle mnemonics.
  • BUG: The Window class now raises the Open event correctly.
  • BUG: The dialogs and message boxes now raise the modal window to the top.
  • BUG: Dialog.Filter has been fixed.
  • BUG: errno must be set to zero before using strtol().
  • BUG: The Stock class now works correctly thanks to the previous fix.
  • BUG: Dialog.SelectFont works correctly now.
  • BUG: The font management has been redesigned. Everything works, except classes like Button that needs specific management, underline and strikethrough.
  • BUG: Closing the main window now automatically closes all other windows.
  • BUG: Setting ComboBox.List to NULL does not crash anymore.
  • BUG: Frame container behaves correctly again.
  • BUG: Panel, HBox, VBox, HPanel and VPanel now has no border by default.
  • BUG: Tries to use standard cursors in the Mouse class.
  • BUG: SpinBox MinValue and MaxValue properties work correctly now.
  • BUG: Tried to handle TreeView Click event differently.
  • BUG: Mouse.ScreenX and Mouse.ScreenY can be used outside of a mouse event now.
  • BUG: TreeView Move* methods now handle errors correctly.
  • BUG: Font creation from string has been fixed.
  • BUG: Control.ScreenX and Control.ScreenY were fixed.
  • BUG: Control.Parent now returns a Container, not a Control.
  • BUG: TextBox.Text now works correctly.
  • BUG: Window.Close() argument is now taken into account.
  • BUG: ScrollView.EnsureVisible() now works like in gb.qt.
  • BUG: Dialog.Color returns the right value now.
  • BUG: Font.ToString() has been fixed.
  • BUG: Picture.Fill() and Image.Fill() have been fixed.
  • BUG: Control.Reparent() declaration has been fixed.
  • BUG: Drawing on a Picture object now works correctly.
  • BUG: Window.Hide() does not enter an infinite loop anymore.
  • BUG: Some fixes in TrayIcon.
  • BUG: Dialog.OpenFile now behaves like in gb.qt.
  • BUG: Many fixes in window management.
  • BUG: The Mouse.Arrow constant was fixed.
  • BUG: The HTML markup to Pango markup was redesigned from scratch.
  • BUG: The HTML text in Label, TextLabel and Message class are now correctly displayed.
  • BUG: Label contents are not cut anymore when the Padding property is greater than zero.
  • BUG: Dialog.Filter can be NULL without crashing.
  • BUG: gDesktop::rightToLeft() now returns true if the current language is right-to-left written, and not the contrary!
  • BUG: GridView.Header now behaves like its gb.qt equivalent.
  • BUG: Many fixes in the GridView column resizing algorithm.
  • BUG: GridView scrollbars are correctly updated now.
  • BUG: Button.Font now works correctly.
  • BUG: The arrangement algorithm now uses the container contents, and not the full container dimensions.
  • BUG: Key class has been fixed. But input contexts are not managed yet.
  • BUG: Some fixes in the Splitter control implementation.
  • BUG: TextArea and ComboBox now raise correctly key events.
  • BUG: TabStrip and other possible multi-containers will work correctly now.
  • BUG: TextBox Change event now behaves like the gb.qt one.
  • BUG: Some fixes in the management of embedded Window controls.
  • BUG: ComboBox has been fixed.
  • BUG: Many fixes in GridView. Row selection now works almost as in gb.qt.
  • BUG: Destroying the same menu twice is now impossible.
  • BUG: The Image.Depth property is now read-only.
  • BUG: GridView.EnsureVisible has been fixed.
  • BUG: Control.Visible now behaves the same way as in gb.qt. It returns if a control is not explicitely hidden.
  • BUG: GridView selection behaviour has been fixed.
  • BUG: ClientWidth and ClientHeight properties now force the container to update its layout, so that the return values are correct.
  • BUG: Window does not raise Move or Resize events anymore before the Open event has been raised.
  • BUG: The background of void GridView cells is drawn correctly now.
  • BUG: Embedded Window now raises the Close event correctly.
  • BUG: SpinBox.MinValue and SpinBox.MaxValue work correctly now.
  • BUG: Busy cursor works correctly on SpinBox and TextArea controls.
  • BUG: UserControl and UserContainer are not creatable anymore.
  • BUG: Fix gPicture::setPixel() and gPicture::getPixel() so that transparency is correctly taken into account.
  • BUG: Desktop.Scale now returns the correct value (half of the default font height).
  • BUG: Fixed a potential memory corruption in the initialization of pictures with alpha mask.
  • BUG: Windows.Controls interface is correctly declared.
  • BUG: Now GDK_IS_DRAWABLE() macro is used in all gdraw.cpp drawing methods to check if 'dr' is a real drawable, avoiding some warning messages from GDK.
  • BUG: Fixed the management of alpha channel in 'put pixel' method of Image class. It was mixed with the blue channel
  • BUG: Fixed a possible segmentation fault in 'get pixel' method for images without alpha channel.
  • BUG: Desktop.Grab() and Control.Grab() methods work correctly now.
  • BUG: Draw.Ellipse() does not draw an ellipse one pixel too large and too high anymore.
  • BUG: The picture and image hooks were fixed.

GB.OPENGL

  • NEW: Remove all Gl.GetXXX, back to the default openGL behaviour, use Gl.GetIntegerv(), Gl.GetBooleanv(), GL.GetFloatv() with an optional size parameter, useful if the requested constant value is unknown (perhaps will be removed later).
  • BUG: Update copyrights.
  • BUG: Fixed GlPolygonStipple() support.
  • NEW: Dependencies on X11/GLX added. They will become optional as openGL is ported to other os/platform.

GB.DESKTOP

  • NEW: This component now is written in C with a Gambas part.
  • NEW: Desktop.Find() method was moved in this component.

GB.FORM

  • NEW: Balloon.Visible is a new property that tells if the Balloon is visible.
  • NEW: This component requires any GUI component now, not just gb.qt.
  • NEW: The component was updated because of the changes in Watcher.
  • NEW: The DateChooser control now uses a disabled color computed from the default foreground color.
  • NEW: Disabled wizard steps are ignored now.
  • BUG: Setting the DirChooser or FileChooser SelectedPath property now should select the correct bookmark.

GB.FORM.MDI

  • NEW: The MDI tabstrip got a menu that allows to select the current MDI tab.
  • NEW: A menu entry in the Workspace popup menu that closes the current tab.

GB.FORM.DIALOG

  • NEW: This reimplementation of the Dialog class was removed from the gb.form component and put in this new component. This way, you can use the gb.form component and keep the default standard dialogs.

GB.DB.FORM

  • BUG: DataCombo is now correctly refreshed when its Display property is set.

GB.WEB

  • NEW: Application.Root now has no trailing slash, unless it is "/".
  • NEW: Request.InternetExplorer is a new property that returns the version of the Internet Explorer client, or 0 if the client is hopefully not Internet Explorer.
  • NEW: Session.Id is writable. It allows you to use any current session, provided it exists.
  • NEW: Session timeout is now stored in the session file.
  • NEW: CGI.FormatDate() is a new method to format a date as specified in the RFC 822.
  • BUG: The Request class now resists against query fields with void names.
  • BUG: The Request class now does nothins when the request method is unknown. It does not assume a POST method by default.

GB.XML.RPC

  • BUG: This component requires gb.xml now.
1.9.49 - 17 May 2007

Configuration

  • The README.HOW-TO-PACKAGE-GAMBAS.html file has been updated. The text version of this file has been removed.
  • Bytecode version number has changed because of the optimizations, so all projects and components must be recompiled!
  • The --fno-strict-aliasing compilation flag was removed. You will get a lot of warnings...

Development Environment

  • BUG: Text search works correctly in the text editor now.
  • BUG: Not searching inside comments works now.
  • BUG: The find list does not display void strings anymore.
  • BUG: Inheritance and 'CREATE STATIC' flags are now correctly taken into account by the automatic completion.
  • BUG: Automatic completion now handles overriden classes correctly.
  • BUG: Function signature is now displayed on several lines if it cannot fit the editor.
  • BUG: You can create a new directory directly in the project root directory again.
  • BUG: Form files are read as soon as the form is loaded in the IDE, not just when the form editor is shown. This makes the automatic completion works in the class editor when the form is not opened yet.
  • BUG: Automatic insertion of property handlers is more robust now.
  • BUG: A false symbolic link to an image does not prevent the project to be opened anymore.
  • BUG: You cannot move or resize controls in a read-only or locked form anymore.
  • BUG: The TabStrip properties are correctly displayed again.
  • BUG: Fixed what happens when a debugging action shortcut is pressed outside of the editor.
  • BUG: Fixed a potential crash when removing entries in the project environment dialog.
  • BUG: Class names are now correctly checked during a renaming operation.
  • BUG: New form menu is now hidden if the project has no component that provide forms.
  • BUG: Automatic file naming now works correctly if the creation file dialog is opened more than once.
  • BUG: Shortcuts now do not raise the same action twice anymore.
  • BUG: Removed a duplicated F10 shortcut.
  • BUG: Debug window layout is correctly saved now.
  • BUG: Handles quoted identifiers, i.e. identifiers between '{' and '}', correctly while scanning a class.
  • BUG: The hierarchy window now follows control renaming.
  • BUG: You can now specify a font with an absolute size that is equal to the default font size.
  • BUG: Yellow windows now can handle collections whose keys contain spaces and quote characters.
  • NEW: Project icons proportions are kept now.
  • NEW: Project icon is displayed on the root of the project tree view.
  • NEW: A new option for not searching inside strings.
  • NEW: Search options are saved in the project settings file.
  • NEW: The IDE supports projects stored in a SVN repository. You can now commit, update and revert changes from the project property dialog. CVS implementation of these commands is not done yet.
  • NEW: The file create dialog can create CSS files now.
  • NEW: The new package creation wizard has been implemented. It support Mandriva, Fedora, SuSE, Debian, Ubuntu & Slackware.
  • NEW: A new "Replace" menu entry that opens the find panel and moves the focus directly in the replace text box.
  • NEW: The translate dialog language list was put inside a SidePanel.
  • NEW: The create project dialog has been redesigned. The useless picture was removed.
  • NEW: Now you can create a project from a Subversion repository.
  • NEW: The search panel icon was replaced by a close button.
  • NEW: Console output window is dockable.
  • NEW: Output of version control commands are sent to the console.
  • NEW: The welcome and about dialogs look has been updated.
  • NEW: Recent files can be sorted by paths instead of being sorted by date.
  • NEW: A new option for settings the size of the recent files list.
  • NEW: New menus for inserting forms, classes, modules...
  • NEW: You can double-click in the code editor margin to set a breakpoint.
  • NEW: Started to put my finger in the yellow windows. The new symbol table algorithm does not sort its contents in alphabetic order anymore, so I had to sort the symbols by code.
  • NEW: The Escape key closes the console now.
  • NEW: A little button in the debug panel to show the contents of ME in a yellow window.
  • NEW: The mascot is hidden by default.
  • NEW: A new option to make external commands quiet.
  • NEW: A class name can begin with an underscore.
  • NEW: Classes whose name begins with an underscore are now hidden in automatic completion.
  • NEW: A project "save as" feature has been implemented.
  • NEW: The console window gets a new button that allows the user to choose if it should stay above other windows while debugging.
  • NEW: Property sheet and hierarchy tree view were put in the same TabStrip.
  • NEW: A new option for sorting properties in the property sheet.
  • NEW: A warning message is displayed when a Gambas 1.0 project is opened. Once the project is opened, this message will never be displayed again for this project.
  • NEW: A new virtual property named '(Scaled)', that indicates if a form automatically resize itself according to the default font. This property is set by default.
  • NEW: The property sheet now displays the properties not having their default value with a light background.
  • NEW: Yellow windows now always save their position.
  • NEW: The info panel was removed, and replaced by a tooltip balloon displayed when the mouse cursor stays on the current project file in the project tree view.
  • OPT: Example menu is filled only when it is shown.
  • OPT: Project tree view is filled only when directories are expanded.
  • OPT: Automatic completion of identifiers has been optimized.
  • OPT: The file creation dialog now delays the initialization of its file chooser.
  • OPT: Uses buffered streams as much as possible.

Examples

  • BUG: Fixed the use of Dialog.Filter in the Notepad example.
  • NEW: Adds the PictureDatabase example made by Timothy Marshal-Nicols.
  • NEW: Adds an example to show the use of the Embedder control.
  • NEW: The Sensor example has been enhanced.
  • NEW: TextEdit example made by Fabien Bodard and me.
  • NEW: A new section for Control examples.

Wiki Cgi Script

  • NEW: Some little cosmetic changes.
  • NEW: Support for class that must be hidden because their name begins with an underscore.

Interpreter

  • BUG: Observers that cannot observe anything won't crash the interpreter anymore.
  • BUG: French date separator is now forced to be a slash.
  • BUG: Format$() now can deal with Variant arguments.
  • BUG: Adds more sanity checks to event raising routines.
  • BUG: Removed the List class that was not used anymore.
  • BUG: Removed all warnings.
  • BUG: Fixed a potential crash in the debugger.
  • BUG: Stopping an event inside an event handler now works correctly when STOP EVENT is not the last instruction of the event handler.
  • BUG: Inheritance was fixed. Calling a method on a class didn't call the right implementation is some situations.
  • BUG: Accessing the properties of an uninitialized Stream now raise an error instead of crashing.
  • BUG: Pseudo-collections of the gb.db component now always work correctly when being accessed.
  • NEW: Support for the new archive format.
  • NEW: The image conversion functions were centralized into the interpreter API.
  • NEW: InStr() and RInStr() now take a fourth optional argument that gives the kind of comparison: gb.Binary (by default) or gb.Text (case is ignored).
  • NEW: Replace() takes a third optional parameter for the same reason.
  • OPT: Symbol tables do not sort their contents in alphabetic order only anymore, but sort first by symbol length, then by symbol alphabetic order. This speeds up symbol lookup.
  • OPT: Some optimizations in hashing routines.
  • OPT: Many little optimizations in many places.

Compiler

  • BUG: The compiler does not crash anymore if the current directory does not exist.
  • NEW: The error management routines do not use alloca() anymore.
  • OPT: Symbol tables do not sort their contents in alphabetic order only anymore, but sort first by symbol length, then by symbol alphabetic order. This speeds up symbol lookup.
  • OPT: Several optimizations (thanks valgrind!). The compiler is now twice faster than it was in the previous version!

Archiver

  • OPT: File names stored in archives are compressed. It saves a few bytes. This new format cannot be read by older interpreters.

GB.EVAL

  • BUG: The [] array creation syntax now works correctly.
  • BUG: Fixed the analyze of quoted identifiers in syntax highlighting.
  • NEW: The compiler optimizations were propagated to the gb.eval component.
  • NEW: Syntax highlighting now keeps spaces before comments.

GB.QT

  • BUG: Fixed the 'option' stock icon for Gnome.
  • BUG: Try to delete controls only when they are not in a QT event notification routine, so that the interpreter does not crash.
  • BUG: Fixed a case when containers forgot to arrange their contents.
  • BUG: TabStrip.Text and TabStrip.Picture do not crash anymore when no tab is visible.
  • BUG: Deletes all active popup windows when displaying the error message, to try to release all pending pointer grabs.
  • BUG: Reading GridView cells does not return sometimes incorrect values anymore.
  • BUG: When mouse events are explicitely handled, they are not propagated anymore to the Qt library. This avoid crashes when the widget that received the event is destroyed in the event handler.
  • BUG: Setting the value of an action associated with buttons that are not toggles now works.
  • BUG: Setting the value of a ToolButton that is not a toggle now works.
  • BUG: Non toggle actions now should behave correctly and not raise twice.
  • BUG: The Window KeyPress event handler now correctly intercepts all keyboard events sent to any control inside the window.
  • BUG: The Default and Cancel properties of Button controls now work correctly when their window is embedded into another window.
  • BUG: Closing a window by code or from the window manager is now strictly equivalent. The Open event is now correctly raised each time a persistent dialog is opened.
  • BUG: Found a workaround for a QT strangeness that made the Window.Reparent() method not respect the window position.
  • BUG: Font properties now can be set to NULL without crashing.
  • BUG: Filling the picture cache explicitely does not leak memory anymore.
  • NEW: TextArea.Selected returns if some text is selected in the TextArea.
  • NEW: TextArea.Unselect() is a synonymous for TextArea.Selection.Hide.
  • NEW: TextArea.Selection.Clear() has been removed.
  • NEW: TextBox.Selected returns if some text is selected in the TextBox.
  • NEW: TextBox.Unselect() is a synonymous for TextBox.Selection.Hide.
  • NEW: TextBox.Selection.Clear() has been removed.
  • NEW: Stock class is not mandatory anymore.
  • NEW: The Stock class and the stock icons were removed from gb.qt.
  • NEW: Drag and drop frame is now drawn inside the target widget, not outside.
  • NEW: The image conversion function was replaced by a call to the new interpreter API.
  • NEW: Menu.Value is now a property on its own, and acts like the Button.Value property.
  • NEW: Clipboard.Formats and Drag.Formats are two new properties that return all formats provided by the clipboard or a drop operation.
  • NEW: The Clipboard.Paste() optional argument now allows to choose which format will be pasted.
  • NEW: Drag.Paste() is a new method that allows to get the dragged data and choose its format.
  • NEW: The conversion formula between Font.Grade and Font.Size has changed. Now Font.Grade is between -4 and +16, and makes Font.Size grows slower.
  • NEW: Font.TextHeight() argument is now optional.
  • NEW: GridView cells got their Foreground and Background properties.
  • NEW: A new rich text editor control named TextEdit. It replaces the TextView control, even if it does not manage links at the moment.

GB.QT.EXT

  • BUG: Some little fixes in the routine that highlights matching braces.
  • BUG: Now pasting in Editor with the middle mouse button correctly works.
  • NEW: Editor.GetPurgedLine() method got options to return a source code line with or without comments, and with or without strings.
  • NEW: Editor now does not highlight the current line by default anymore.
  • NEW: Editor.FindNextWord() is a new method to help optimizing the automatic completion of identifiers.
  • NEW: TextView has been removed.

GB.QT.OPENGL

  • NEW: Now text can be render inside a GLarea with the method GLarea.Text(Text, X, Y), color can be set with the Gl.Colorf opengl method.
  • NEW: Now GLarea share their lists each others. Shared lists are automagically destroyed when all GLareas are destroyed.

GB.QT.KDE

  • BUG: Try to delete controls only when they are not in a QT event notification routine, so that the interpreter does not crash.

GB.QT.KDE.HTML

  • NEW: WebBrowser.Find() is a new method that opens the text search dialog on the active frame.
  • NEW: WebBrowser.Selection.Text is a new property that returns the text selected in the active frame.
  • NEW: WebBrowser.Selection.HTML is a new property that returns the HTML code of what is selected in the active frame.
  • NEW: WebBrowser.Selected returns if something is selected in the active frame.

GB.GTK

  • NEW: The Stock class and the stock icons were removed.
  • NEW: gb.gtk now uses the image conversion routines located in the interpreter.

GB.DB

  • BUG: The Result.Update() method does not lose blob data anymore.

GB.DB.FIREBIRD

  • BUG: Patch from Debian to let compile with gcc 4.3.

GB.NET

  • BUG: Fixes stream declaration.

GB.NET.CURL

  • BUG: Fixes stream declaration.

GB.NET.SMTP

  • BUG: An error while attaching a file now raises an error and does not crash the interpreter anymore.
  • BUG: Quoted printable encoding works correctly now.

GB.COMPRESS.BZLIB2

  • BUG: Fixes stream declaration.

GB.COMPRESS.ZLIB

  • BUG: Fixes stream declaration.

GB.V4L

  • BUG: Fixes stream declaration.

GB.SDL

  • BUG: Patch from Debian to let compile with gcc 4.3.
  • NEW: gb.sdl now uses the image conversion routines located in the interpreter.

GB.OPENGL

  • BUG: Add missing Gl.GetXXX() methods.
  • BUG: Add missing Gl.GetIndexBits() and Gl.IndexClearValue() methods.
  • BUG: Add missing constants and methods.
  • NEW: Update to gb.opengl API changes.
  • OPT: Gl.Vertexf and Gl.Vertexi replace old Gl.vertexXX behaviour. Now z and w component are optionals.
  • OPT: Same changes for Gl.Color, Gl.RasterPos, Gl.TexCoord.

GB.FORM

  • BUG: The Stock class now works correctly when the desktop is not KDE or GNOME.
  • BUG: ColorButton does not refresh anymore when its Color property does not change.
  • NEW: Wizard buttons got shortcuts.
  • NEW: ValueBox is a control that inherits TextBox and that allows to enter numbers, dates, times & identifiers easily.
  • NEW: DateBox and TimeBox were removed. ValueBox should be used instead.
  • NEW: The Stock class and the stock icons are now located in the gb.form component, so that they are automatically shared by every GUI component.
  • NEW: DirChooser and FileChooser got a refresh button.
  • NEW: DirChooser and FileChooser buttons got tooltips.
  • NEW: DirView and FileView got a Reload() method that refreshes their contents.
  • NEW: Added stock icons for 'add' and 'remove' actions.
  • NEW: Dialog.SelectDirectory is a new method that replaces the default method of the GUI component.
  • NEW: TableView manages the RETURN and the ESC key while editing a cell, so that default or cancel buttons are not raised automatically.
  • NEW: Balloon.Font is a new property that allows to define the font used by the balloons.

GB.FORM.MDI

  • NEW: Setting the Workspace.Font property now changes the font of its TabStrip only.

GB.SETTINGS

  • NEW: Boolean are saved in settings files as 'True' and 'False', and not as integers anymore. This way, reading a boolean setting now returns a real boolean value.

GB.REPORT

  • BUG: Now the spacing is not repeated at the bottom of an expanded container.
  • NEW: Preview function in Report class show a form that draw the report at screen and simplify the consult or printing.
  • NEW: New property on ReportControl: Autoresize. This property makes the control manage its size (Height for VBox, Width for HBox, Size for other controls) according to their contents.
  • NEW: The Height, Width, Spacing properties now accept relatives values in percentages. The other properties (Left, Top, Padding) return an error if a relative value is set.
  • NEW: The ReportControl class has an autoresize property that automatically sets the size of the control according to its contents.
  • NEW: Now the Cloner index can be read directly from the field instance with the ReportField.Index property.
  • NEW: A well commented tutorial is in the sources.
  • NEW: New widget: ReportTextLabel. It allow to draw multiline text. It can do wordwrapping and manage some base formating tags. These tags are: - <font> (for fontname, size, color) - <b>, <i>, <u> (bold, italic, underline)
  • OPT: The ReportTable widget have been temporaly removed.
  • OPT: The ReportRepetor have been renamed ReportCloner.

GB.DESKTOP

  • NEW: This is a new component that provides an access to the Portland project xdg utilities.
1.9.48 - 01 Apr 2007

Configuration

  • BUG: If the DISABLED file is present then the component is disabled. It fixes the configure workaround for gb.sdl and gb.sdl.sound components.

Development Environment

  • BUG: The "About component" button works again in the project property dialog.
  • BUG: Text editor now displays cursor position in the toolbar and not in the title bar anymore.
  • BUG: Deleting backwards does not open the auto completion list if more than one character is deleted.
  • BUG: The IDE won't freeze anymore when loading a component that forgot to export some classes.
  • BUG: Catched 'No return value' now, so that no useless "yellow window" opens anymore.
  • BUG: Fixed the autocompletion of symbols by using UTF-8 String class instead of ASCII functions.
  • BUG: Control names and groups cannot start with a digit anymore.
  • BUG: The form editor tabstrip toolbar is shown and hidden correctly now.
  • BUG: The project environment dialog shortcut is CTRL+ALT+E now. It is not the same as the menu editor anymore.
  • NEW: Estonian was added to the language list.
  • NEW: Forms can be locked.
  • NEW: Syntax highlighting of CSS files.
  • NEW: The open project dialog has a new check-box that opens the new project in a new IDE window.
  • NEW: Japanese translation updated.
  • OPT: Information displayed when the cursor moves is computed faster.

Examples

  • BUG: Fixed Database example, changed sqlite to sqlite3 driver.

Database Manager

  • BUG: The TableView in the SQL request window shows its headers again.

Interpreter

  • BUG: You can reimplement an existing class in a project now without raising an error now.
  • BUG: Split() and Array.Join() have been rewritten. Now escapes characters must be doubled. Split("a,b''c,'d,e') returns the following array: [ "a", "b'c", "d,e" ]. Join() does the inverted job.
  • BUG: WAIT now does not freeze anymore when used in a console application.
  • BUG: Fixed the syntax information of IIf() and Temp$().
  • BUG: Fix unreleased allocated memory when loading a component fails.
  • BUG: The Timer Delay property is not limited to 3600 ms in the IDE anymore.
  • BUG: A component that gets a public function of a class now automatically loads it.
  • NEW: Array classes got a new method, Exist(), that returns if a specified value exists inside the array.
  • NEW: You cannot change the class internal constructor and destructor anymore. Consequently, the GB_HOOK_NEW() and GB_HOOK_FREE() macro were removed.
  • NEW: gb.Case is a synonymous of gb.Text.
  • NEW: gb.Language is a new constant that indicates a localization-aware string comparison. gb.Language and gb.Case can be combined.
  • NEW: StrComp() and array Sort() method now supports localization-aware string comparisons.
  • NEW: Class without dynamic variables now can be instanciated, even if it is useless!
  • NEW: The Comp() function now understands the gb.Language constant. But contrary to String.Comp(), it ignores charset conversion errors.
  • NEW: Support for standard error output redirection.

Compiler

  • BUG: The number of dimensions of an array is correctly limited now.
  • NEW: You can declare a non creatable class by using adding a 'CREATE PRIVATE' line at the beginning of the class source file.
  • NEW: An auto-creatable class should be declared with 'CREATE STATIC', and not 'CREATE' only now.
  • NEW: A new instruction, ERROR TO, to redirect the standard error output like the OUTPUT TO instruction does for standard output.

Informer

  • NEW: The gbi program, that generates *.info files, does not abort anymore when there is an error during the processing of a component.

GB.QT

  • BUG: Fixed the path of GTK+ close stock icon.
  • BUG: The GridView.Rows.Unselect function in implemented now.
  • BUG: The global key event handler Application_KeyPress() now works as expected.
  • BUG: The default value of the ListBox.Mode property is Single.
  • BUG: STOP EVENT now works in the Application_KeyPress global event handler.
  • NEW: Drag.IconX and Drag.IconY allow to define the drag icon hotspot.

GB.QT.EXT

  • BUG: Lines are drawn differently in the Editor control, and so long lines should be displayed correctly and faster in all cases now.
  • BUG: The Dial control does not crash anymore when an incorrect value is set to the Step or PageStep property.
  • NEW: Highlight.Tag is a new property to associate a integer value with a text line. Use it with Highlight.State, to define the context of syntax highlighting.

GB.QT.KDE

  • BUG: Application_KeyPress global event handler now works when the gb.qt.kde component is selected.

GB.DB.MYSQL

  • NEW: A flag is set at database connection to allow the use of stored procedures.

GB.NET.SMTP

  • NEW: Error messages are more detailed if sending a mail fails.

GB.GTK

  • BUG: Fixed embedding process in Embedder class.
  • BUG: The Ignore property was not shown in design mode
  • NEW: MouseDown and MouseUp events implemented for TabStrip.
  • NEW: Picture and Image classes now support W and H properties.

GB.SDL

  • NEW: Fonts class, giving access to installed system fonts with the FOR EACH instruction. Now gb.sdl needs the libxft library, provided since XFree 4.x. The font list is ordered like gb.qt/gtk.

GB.OPENGL

  • BUG: Fix revert color problem for textures (fix the solution linux presentation !!)
  • BUG: Fix LineStipple bug (thanks Flachy Joe !)

GB.CRYPT

  • BUG: Add explicit error messages instead of only Bad prefix.

GB.FORM

  • BUG: The DirView and FileView controls now ignore charset conversion errors when parsing file names.
  • BUG: The Dialog.Paths property works correctly now when using this component.

GB.REPORT

  • BUG: Use the Zoom and the Resolution of the current Report, and not the automatic Report instance.
  • BUG: Try to draw control frames correctly. Not finished...
  • BUG: ReportControl and ReportContainer are declared as non creatable.
  • BUG: Now the computing is correct for the ReportVBox expanded childs.
  • BUG: The zoom property seems to work correctly now, by giving a value between 0 and 1.
  • BUG: The Report.Clean property now works.
  • BUG: Some arrangement correction in the value to pixel conversion.
  • BUG: The Data event of ReportFields works fine now with the ReportRepetor container.
  • BUG: The ReportSpecialField have the right font size now.
  • BUG: The ReportBox is not resized when the Expand property is false
  • BUG: All the report first level objects are maintained on the same page.
  • NEW: Some new features on the report page size and page orientation.
  • NEW: Many important internal changes like the use of cm unit as internal common units.
  • NEW: The text in ReportLabel and ReportField is not drawn outside the control size.
  • NEW: New widget named ReportRepetor. It repeat its contents according to the value of the Count property. It will allows to do the same as the detail part of the traditional report designer. (BM: ??)
  • NEW: New widget named ReportField that gets its data via an event. The old ReportField has been renamed as ReportSpecialField.
  • NEW: Layout algorithm has been rewritten. Now the object position and page are stored in the parent, so that you can print the same object several times without having to duplicate it.
  • NEW: The TControl.ctrl property returns a ReportControl now.
  • NEW: Some changes on the test form to allow end users to see what gb.report is able to do.

GB.WEB

  • BUG: Big arrays or collections are correctly read and written to the session file now.
  • BUG: URL-encoded requests are correctly parsed in all cases now.
  • BUG: Response.End now works correctly.
  • NEW: Request.Exist() is a new method that tells if a specific field is defined in the request.
  • NEW: The Session file name now includes the IP address of the remote connection.
  • NEW: Application.LogFile is a new property to specify the log file where the standard error output will be redirected.
1.9.47 - 17 Jan 2007

Configuration

  • BUG: The Gambas compiler is run with the new '-r' option, so that the information files are always found, even if the 'prefix' variable is changed at 'make install'.

Development Environment

  • BUG: The browser detection has been fixed.
  • BUG: Fixed a potential crash while displaying project tree when some stock icons are not found.
  • BUG: Debug windows can display collections
  • BUG: The signature of functions with a variable number of arguments should be displayed correctly now.
  • BUG: Removing a breakpoint during a debugging session does not incorrectly set another breakpoint anymore.
  • BUG: Opening the color chooser does not display system colors twice anymore.
  • BUG: The mismatch between Firefox and Epiphany has been fixed in the option dialog.
  • BUG: Project environment variables are correctly saved. But they are not used yet.
  • BUG: Breakpoint buttons are correctly refreshed when you switch between editor windows now.
  • BUG: In FDebugInfo.class at cvwWatch_Activate() works with right object cvwWatch and no more with the wrong cvwObject.
  • BUG: Breakpoint management was redesigned.
  • BUG: If an object and the following '.' (dot) is choosen, no debug window is opened.
  • BUG: There is no IDE crash anymore after having canceled the opening of an already opened project
  • BUG: The project environment dialog does not crash anymore while closing.
  • BUG: Update forms control stack now, after drag/drop control
  • NEW: Support for CVS version control.
  • NEW: An experimental debugger information window.
  • NEW: Starting of project argument dialog redesign.
  • NEW: TableView were replaced by GridView.
  • NEW: Debug windows can be called now by dblclick on objects in the editor, Local variables, Current object(s),watch window and the Debug windows. A Ballon-message raise when an non object is dblclicked on the editor. A right-mouse popup is available on each Debug window.
  • NEW: Saving debug settings: breakpoints, watches and debug windows, which are used in the next debug session.
  • NEW: Added 'Clear all breakpoints' to Debug-Menu.
  • NEW: Double-click works in the project open dialog.
  • NEW: The first column of the property grid is written in bold now.
  • NEW: A useless picture was added in the project creation dialog.
  • NEW: The project environment dialog was made.
  • NEW: Now debugging information is stored in a setting file named '.settings', in the project directory.
  • NEW: Breakpoints are drawn with the flag icon now.
  • NEW: Some shortcuts were changed and added.
  • NEW: The file property window was replaced by a little side panel.
  • BUG: Some image files were missing in the SVN.
  • NEW: The editor cursor column and row are displayed in the editor toolbar, not the window title anymore.
  • NEW: Syncronized forms, form control stack and property window.
  • NEW: You have access to the property window by choosing the control in the forms control stack now.

Database Manager

  • NEW: TableView was replaced by GridView.

Examples

  • BUG: Randomize() was replaced by RANDOMIZE.
  • BUG: DataReportExample example was fixed.
  • NEW: Gravity simulation example made by Iman Karim.
  • NEW: TreeView example was modified by Fabien Hutrel.
  • NEW: TableView were replaced by GridView in Database example.
  • NEW: Update BeastScroll example: limit the framerate to 300 with Window.Framerate property.

Help Files

  • BUG: Some fixes in the treeview links.
  • BUG: Files were renamed so that they can be read on Windows.

Interpreter

  • BUG: The backslash character now really prevents special format characters from being interpreter in the Format() function.
  • BUG: The management of SUPER was fixed.
  • BUG: Translations are correctly reloaded when System.Language changes.
  • BUG: Scan() does not return spurious strings instead of void strings anymore.
  • BUG: Fixed a potential buffer overflow by using the right constant to define an internal string buffer used by all file functions.
  • BUG: String.Code() now works correctly, and has the same behaviour as Asc(), i.e. it returns 0 if its argument position is outside of the string.
  • BUG: Date() correctly converts its argument to a date before using it.
  • NEW: The Pointer datatype can be used in a function signature.
  • NEW: GB.TempString() is a new API function for creating a temporary string, i.e. a string that is automatically freed by the interpreter later.
  • NEW: Quote and UnQuote are two new static classes with functions that quote and unquote strings. There are three functions at the moment: Quote(), Quote.Shell() and UnQuote().
  • NEW: A new event interception system based on the new class: Observer. This class allows to intercept any event raised by any object anywhere.
  • NEW: Stat() has now a new optional second argument to specify if symbolic links must be followed. By default, they are not. Projects using the Stat() function may have to be recompiled.

Compiler

  • BUG: The user component directory is taken into account now.
  • NEW: ENUM is now a keyword reserved for a future use.
  • NEW: String constants can be translatable.
  • NEW: The Randomize() function was replaced by the RANDOMIZE keyword.
  • NEW: A new option, '-r', that lets define the gambas installation directory. This option is used during 'make install'.

Archiver

  • BUG: A class having the same name as the project is not ignored anymore.

GB.DEBUG Component

  • BUG: Using the '#' command on a null object does not crash anymore.

GB.DB Component

  • NEW: The Exec(), Find() and Edit() methods do not use substitution anymore, if they receive no extra arguments.

GB.QT Component

  • BUG: The Menu class got its Name property.
  • BUG: A forgot Draw.End() does not make the application crash anymore.
  • BUG: Window.Sticky does not crash anymore when the window X11 property does not exist.
  • BUG: Showing an hidden minimized window works correctly now.
  • BUG: GridView.MoveTo() does not extend the selection anymore. It clears it now.
  • BUG: Setting any property of a GridView item now automatically refreshes it.
  • BUG: GridView item coordinates are correctly checked now.
  • BUG: ScrollView scrollbars are correctly displayed the first time the control is shown now.
  • BUG: Modal windows minimum size of persistent windows is set only once now.
  • BUG: The Stock class looks for crystal KDE icons before the classic ones.
  • BUG: GridView does not raise spurious Data event anymore when it is not visible.
  • NEW: Image.Data is a new property that returns a pointer to the interlal image pixels data.
  • NEW: GridView and TableView were merged.
  • NEW: Control.Ignore is a new property that tells the arrangement algorithm to ignore the control.
  • NEW: GridView cells can have a specific Font property now.
  • NEW: GridView got two new events: RowResize, and ColumnResize, that are raised when a row or a column is resized.
  • NEW: GridView clears the selection and raises the Change event when the number of rows or the number of columns change.

GB.QT.EXT Component

  • BUG: The behaviour of the LCDNumber Digits & Mode properties was fixed.
  • NEW: TableView was removed.
  • NEW: Editor has a static property named BreakpointPicture to define the picture used as breakpoint mark.
  • NEW: LCDNumber got a new Mode property that allows it to display hexadecimal or binary numbers.

GB.QT.KDE.HTML Component

  • BUG: WebBrowser now supports form submit.
  • BUG: WebBrowser does not crash anymore when using the wallet.

GB.QTE Component

  • NEW: Initial import.

GB.QTE.EXT Component

  • NEW: Initial import.

GB.GTK Component

  • NEW: Added a stub for the Name property.
  • NEW: Control.Ignore is a new property that tells the arrangement algorithm to ignore the control.

GB.SDL

  • BUG: Fix (i hope) convertion for GB_IMAGE_BGR
  • NEW: New window property, Framerate for controlling the framerate; - Window.Framerate = 100, limit framerate to a maximum of 100 FPS. - Window.Framerate = 0 (default), don't limit the framerate. - PRINT Window.Framerate, show the current framerate.

GB.NET.SMTP Component

  • BUG: SmtpClient.Add() optional arguments are now correctly handled, and not specifying them does not crash the interpreter anymore.

GB.PDF

  • BUG: Fix Picture output with poppler 0.5.x

GB.FORM Component

  • BUG: The Balloon class was fixed.
  • BUG: TableView editor is hidden with its parent TableView.
  • NEW: Balloon.Delay is a new property for defining the timeout before the balloon is hidden.
  • NEW: A new control, TableView, that is an editable GridView.

GB.DB.FORM Component

  • NEW: TableView was replaced by GridView.

GB.SETTINGS

  • BUG: Freeing a Settings object does not raise an error anymore if writing the settings file is impossible.
  • NEW: If the second argument of Settings.Write() is not specified, then the Control.Name property will be used.

GB.OPTION

  • NEW: Initial import. This component is an interface to the getopt() C library function for interpreting the program command-line.

GB.REPORT

  • NEW: Initial import. This component will become the Gambas report designer.

GB.WEB Component

  • BUG: Bug fixes in multipart/form-data handling.
  • BUG: Session cookies are correctly removed now.
  • BUG: Request URL decoding process is more robust against malformed URLs.
1.9.46 - 12 Nov 2006
WARNING! Byte code has changed, and all projects must be recompiled. And the LINK syntax has changed too, which breaks old code!

Development Environment

  • BUG: Welcome screen displays correctly with right to left written languages.
  • BUG: Farsi language code is now 'fa' and not 'fa_IR'.
  • BUG: Translation dialog can be opened twice.
  • BUG: The 'make executable' dialog saves its settings in the right place now.
  • BUG: The Find list window was fixed.
  • BUG: Release number is not incremented if the version is got from an external program.
  • BUG: Fixed the saved path of highlighting theme import & export.
  • BUG: There is no duplicate display of object symbols anymore during debugging.
  • BUG: CVSROOT file or directory is now ignored by the project tree view.
  • NEW: Support for project managed by SubVersion.
  • NEW: Adds a Splitter in the open project dialog.
  • NEW: Save menu entry was removed from the project tree popup menu.
  • NEW: LINK arguments were inverted to follow the new syntax.
  • NEW: Debugger were redesigned, according to the new commands of the internal debugger. It can display current object variables now.
  • NEW: The form editor allows to move tabs inside TabStrip and any other MultiContainer.
  • NEW: Some theme colors were changed.
  • NEW: Breakpoint button is now a toggle.
  • NEW: Find list uses the global font size now.
  • NEW: When creating a new image, it is now possible to choose the image file type between PNG, XPM and GIF.
  • NEW: Project titles are smaller in open project dialog.

Wiki Cgi Script

  • BUG: Better support of right to left written languages.
  • BUG: Fix indexes for words that do not begin with an ASCII letter.
  • NEW: Farsi translation.

Offline Documentation

  • BUG: Links in component description page should work correctly now.
  • NEW: Synchronized with the wiki.

Interpreter

  • BUG: IIf, Min and Max now behave correctly with Variant arguments.
  • BUG: LOCK really works now.
  • BUG: A stack leak was fixed.
  • BUG: Enumerating class symbols does not return duplicates anymore.
  • BUG: Some spurious warnings were removed.
  • NEW: The LINK parameters have been swapped to be consistent with COPY and MOVE. This will break old code!
  • NEW: LOCK now takes a path as argument, and returns a File object that must be used with UNLOCK to unlock the file.
  • NEW: IIf now takes three mandatory arguments.
  • NEW: Min and Max now takes only two arguments.
  • NEW: A new API for getting the event name used by the last object instanciation.

Compiler

  • NEW: The LOCK syntax has changed.

GB.DEBUG Component

  • BUG: Static arrays do not print an error in the debugger windows anymore.
  • NEW: The internal debugger was redesigned.
  • NEW: New command in the internal debugger to get the value of a symbol without calling the evaluator.

GB.QT Component

  • BUG: Do not reset style at component unloaded. It can crash the interpreter in some cases.
  • BUG: Default column alignment has been fixed in ColumnView.
  • BUG: Visible container controls with an hidden effective internal container widget are now arranged.
  • BUG: Tray icons won't make the application loop indefinitely anymore.
  • BUG: Toolbar actions are now correctly unregistered. That fixes the 'Invalid control' error message of the IDE when a form is opened after a project was closed.
  • BUG: The Stock class does not fail anymore when if there is no current KDE theme.
  • OPT: Action class is not called anymore when destroying a control with no action registered.
  • NEW: ColumnView.Settings is a new string property that allows to get and set the ColumnView layout in one shot.
  • NEW: HSplit and VSplit Layout property has been renamed as Settings.
  • NEW: The Gnome stock icon map has been updated.
  • NEW: Action is now a property of the Control class.
  • NEW: Control.Name is a new property that sets or returns the name of an object.
  • NEW: Window[] or Window.Controls[] will return a control from its name.

GB.QT.EXT Component

  • BUG: Some fixes in the drawing of line background and in the margin width.
  • NEW: Editor now displays breakpoints differently.

GB.FORM Component

  • BUG: Support for right to left written languages in SidePanel control.
  • BUG: Hidden SidePanel now hides its container. It does not disable it anymore.
  • BUG: FileChooser displays a message box if you try to select a file that already exists for saving.
  • NEW: The ColumnView.Settings property is used for defining the FileView and DirView Settings properties.

GB.FORM.MDI Component

  • BUG: Support for right to left written languages in ToolBar control.

GB.SDL

  • BUG: Fix X11 linking with recent SDL releases (Silvan Calarco)

GB.WEB Component

  • BUG: CONTENT_LENGTH CGI variable is used for reading the standard input, so that locks are avoided.
  • NEW: Response.SendFile() now sends the headers defined by Response.AddHeader().
  • NEW: Request is a writable array now.

GB.SETTINGS Component

  • NEW: Support for Integer array values.
  • NEW: Window geometry is saved under a 'Geometry' key, and not a 'Coord' key anymore.
  • NEW: Settings.Read() can takes an optional default value argument.
1.9.45 - 28 Oct 2006

Configuration

  • BUG: A fix in detection of disabled components. Now just one failing GB_COMPONENT macro will disable the component, not all like before.

Development Environment

  • BUG: Translation files generated by the IDE don't store absolute paths anymore, so that svn conflicts are avoided.
  • BUG: Fixed a bug that made the translation dialog fail when the project description contains quote characters.
  • BUG: Importing a translation works again.
  • BUG: The find list now works correctly when the search string changes.
  • BUG: The color chooser works again.
  • BUG: Project tree items are correctly sorted now.
  • BUG: Some fixes in HTML highlighting.
  • BUG: HTML highlighting now uses UTF-8 string functions, so that highlighting non-ASCII characters works correctly.
  • BUG: When there is an error while compiling the form generated code, the message is more explicit.
  • BUG: List properties now can have more than 63 elements.
  • BUG: F2 and SHIFT+F2 now work correctly if there are spaces in the project directory path.
  • BUG: The size of the mascot window has been stretched to fit with the mascot pictures.
  • BUG: Making executable dialog now displays the bookmarks panel, so that putting the executable anywhere is possible.
  • BUG: A case-sensitive test on control classes has been removed.
  • OPT: Many dialogs are now persistent, so that they display faster.
  • NEW: Added support for Seamonkey browser.
  • NEW: Image.Draw() is used for drawing a clean icon for startup classes.
  • NEW: The 'Use system charset' check-box is hidden now when the system charset is the same as the desktop charset, i.e. UTF-8.
  • NEW: A new command in the Project menu to clean up the project, i.e. removing all backup files, generated files, core dumps, thumbnails directories...
  • NEW: The IDE can open images in an external application. At the moment, you can choose between KolourPaint, Krita and the GIMP.
  • NEW: Farsi translation made by Nima Mohammadi.
  • NEW: The project creation dialog was reorganized.
  • NEW: A new project type: Web application based on CGI.
  • NEW: Underscores are allowed in control identifiers now.
  • NEW: Open project dialog now allows to open recent projects and examples.

Database Manager

  • BUG: The program closes correctly when you hit the cancel button in the startup password dialog.
  • NEW: Farsi translation made by Nima Mohammadi.

Wiki Cgi Script

  • BUG: Some fixes in autolink and history highlighting.
  • NEW: Support for Farsi.

Interpreter

  • BUG: WRITE can read null strings.
  • NEW: String.Comp() is a new method for comparing UTF-8 strings.
  • NEW: Process.LastValue and Process.LastState are two new static properties that return the state and the return value of the last process run with SHELL or EXEC.
  • NEW: _exit() is now called for gambas classes, but before anything is freed.
  • NEW: System.ByteOrder is a new property than returns the endianness of the operating system.
  • NEW: Split() now interprets escape characters inside splitted elements. Split("a,b=',',c", ",", "'") now returns ["a", "b=','", "c"].
  • NEW: Array.Type returns the type of an array.
  • NEW: Process.Tag is a new property that allows to attach a user variant value to any process.
  • NEW: READ and WRITE now manage Variant values, by reading/writing the type of the value one byte just before writing the value data.

Compiler

  • BUG: An error is raised now when you try to use the [ ... ] array maker with more than the maximum possible number of arguments.

GB.QT Component

  • BUG: Multiple selection mode of TreeView, ListView and ColumnView now behave as before.
  • BUG: Closing a window during the Open event works now.
  • BUG: The Border property of view controls is forced to TRUE, because of KDE styles that set it to FALSE at creation.
  • BUG: The order of CheckBox properties has been fixed. Tristate must come before Value.
  • BUG: Dialog.Filter now does not automatically add the '*' filter if it is already specified.
  • BUG: DrawingArea.Resize now raises an error when the DrawingArea is being drawn. It does not crash the interpreter anymore.
  • BUG: Form Open event is raised again when opening a persistent modal window again.
  • BUG: Window.X and Window.Y now return the correct value when the window is embedded.
  • BUG: Disabled DrawingArea now raises their Draw event.
  • NEW: Message boxes are resizable again.
  • NEW: Image.Draw() is a new method for blending an image into another image.
  • NEW: Draw.Device returns the current device object being drawn.

GB.QT.EXT Component

  • BUG: Editor width is correctly updated when a line is rewritten by the syntax highlighter.

GB.QT.OPENGL

  • NEW : GLarea got Open and Draw events instead of Initialize and Paint, like gb.sdl component.

GB.QT.KDE Component

  • BUG: Dialog.Filter now does not automatically add the '*' filter if it is already specified.

GB.DB Component

  • BUG: DB.Create() does not crash anymore when failing.
  • NEW: A new flag to indicate if a database driver supports nested transactions.
  • NEW: Support for database drivers that cannot nest transactions.

GB.DB.FIREBIRD Component

  • BUG: The detection of firebird library was fixed.
  • NEW: A standalone version of ibpp 2.5.2.2 is used now.

GB.SDL

  • BUG: Image.Fill() and Clear() methods fixed.
  • NEW: Draw.Image() now takes four clipping parameters.
  • NEW: Window class provide a mouse property to change the mouse cursor. Now Xcursor library is needed (provide by default with Xfree4.x/xorg)
  • NEW: Mouse class provide cursor shape constants.
  • NEW: Move sdl.sound component into it's own directory (gb.sdl.sound).
  • NEW: Add SDLcursor files for cursor managment.
  • NEW: Draw.Image now can take optional width and height parameters that scales the Image. This new syntax is incompatible with the old one!

GB.GTK

  • BUG: copyright notice and e-mail address in comments.

GB.FORM Component

  • BUG: DirView renaming now keeps the sort order.
  • BUG: Dialog.Filter now does not automatically add the '*' filter if it is already specified.
  • BUG: Settings DirView.Current or FileView.Current changes the current bookmark too.
  • BUG: FileView displays the entire directory contents even if getting an icon fails.
  • BUG: ListContainer now behaves correctly when scrolling while the mouse button is down.
  • NEW: DirView now supports in-place renaming of directories.
  • NEW: DirChooser and FileChooser got a button for creating directories.
  • NEW: FileView.Border is a new property for settings the control border.
  • NEW: Wizard.Border is a new property for setting the border of the wizard contents.

GB.WEB Component

  • NEW: New component for making CGI web applications, with an ASP-like interface.
1.9.44 - 04 Oct 2006

Development Environment

  • NEW: Adds the 96 pixels size to the IDE select icon dialog box.
  • NEW: Swedish translation updated.
  • BUG: Popup balloon is hidden when a debugging session stops.
  • BUG: You can edit an image again.
  • BUG: The IDE translation dialog is not displayed if the 'msgmerge' tool is not installed.
  • BUG: An hidden symbol, in the IDE, is a symbol begining with an underscore, or a symbol with an uderscore inside but that is not a constant.
  • BUG: Create project dialog saves the settings of its directory chooser.
  • BUG: Fix automatic completion with constants having underscore, without preventing automatic completion of events from working.
  • BUG: A void string selected during debugging is not sent to the debugger anymore.

Examples

  • BUG: ServerSocket example works again.

Interpreter

  • NEW: A little optimization in hash table routines.
  • NEW: The main interpreter loop is now always compiled with -03. This speeds up the interpreter by about 5%.
  • BUG: The '#' debugger command should work correctly now.

GB.DEBUG Component

  • BUG: The '#' debugger command should work correctly now.

GB.EVAL Component

  • BUG: Evaluating a void string does not crash anymore.
  • BUG: The evaluator does not crash or behave badly anymore when evaluating an expression with a missing operand.

GB.QT Component

  • NEW: The disabled icon creation routine has been optimized.
  • NEW: The UserControl and UserContainer now have a '_Container' hidden property that replaces the old 'Container' visible property.
  • NEW: Old ListBox mode constants were removed.
  • BUG: GTK+ stock icons were fixed.
  • BUG: TrayIcon.Width and TrayIcon.Height now return accurate values.
  • BUG: The IconView default arrangement is 'Row'.
  • BUG: Fixed a round error in ProgressBar value.
  • BUG: Control.Parent now always returns NULL when the control is a top-level window. Consequently, Settings.Read() and Settings.Write() now use the correct key.
  • BUG: Settings ComboBox.Text property when ComboBox is read-only does not raise useless events anymore.

GB.FORM Component

  • NEW: ColorButton control has returned. It now has a Value property that is a synonymous of the Color property.
  • NEW: DateChooser has a new Activate event.

GB.FORM.MDI Component

  • NEW: Workspace tab bar now has the correct height when it opens the first time.

GB.DB.FIREBIRD

  • NEW: A standalone version of ibpp 2.5.2.2 is used now.

GB.SDL Component

  • Updated.

GB.GTK.SVG Component

  • New component.
1.9.43 - 23 Sep 2006

Development Environment

  • NEW: Some little enhancements in automatic completion.
  • NEW: The file creation dialog is better now.
  • NEW: Importing a form now automatically copies form pictures.
  • NEW: Pressing F2 on a NEW expression now brings to the constructor function.
  • NEW: The project tree now arrange classes according to their inheritance relationships.
  • NEW: The open project dialog has been redesigned.
  • NEW: Opening a project does not refresh the project tree twice anymore.
  • NEW: There is option to select the browser used by the IDE. The default is using the BROWSER environment variable.
  • BUG: The editor function combo-box now only displays the function defined in the module or class, not the inherited ones.
  • BUG: Replace function does not modify read-only module or classes anymore.
  • BUG: You cannot drop controls from the toolbox in read-only editer form.
  • BUG: Renaming a form does not set the 'modified' flag anymore.
  • BUG: Icon editor and text editor now can be in read-only mode.
  • BUG: Symbolic links support has been fixed and enhanced.
  • BUG: You cannot modify a read-only form from the property sheet anymore.
  • BUG: The project property dialog now displays the stack size correctly.

Examples

  • NEW: Printing example has been updated.

Interpreter

  • NEW: Component[] now returns NULL if a component is not loaded. It does not raise an error anymore.
  • BUG: The QUIT instruction works again.
  • BUG: The stack defined in the .project file is really used now.
  • BUG: Watching or stopping watching file descriptors during an event handler raised by a watched file descriptor does not crash the interpreter event loop anymore.
  • BUG: Exist() does not follow symbolic links anymore.

Compiler

  • BUG: Useless external class references are not inserted anymore in the bytecode output.

GB.QT Component

  • NEW: ComboBox.Popup() is a new method that popups the combo-box list.
  • NEW: Window.Stacking is a new property that defines the stacking group of the window: Window.Normal, Window.Above or Window.Below. This property replaces the TopOnly property that has been removed.
  • NEW: Window.Sticky is a new property that sticks a window on all virtual desktops.
  • BUG: Dialog.Filter syntax has been fixed.
  • BUG: Draw.Picture and Draw.Image now behave correctly when drawing on a masked Picture.
  • BUG: UserControl and UserContainer are not creatable anymore.
  • BUG: Setting ComboBox.Text now raises the Click event.

GB.QT.EXT Component

  • BUG: TableView Select event is now deferred only in multiple selection mode.

GB.QT.KDE Component

  • BUG: Dialog.Filter syntax has been fixed.

GB.FORM Component

  • NEW: DirChooser and FileChooser got support for bookmarks. These bookmarks are displayed in a panel, are shared by all instances of these controls, and are automatically saved in the '~/.config/gambas/gb.form.conf' configuration file.
  • NEW: DirChooser and FileChooser got two new properties for managing bookmarks: ShowBookmark, that let displaying the bookmark panel, and Bookmarks, that allows to add transient bookmarks. These transient bookmarks are not automatically saved.
  • NEW: FileChooser.Settings and DirChooser.Settings are new properties that return the state of the control in a string array.
  • NEW: ListContainer.Clear() is a new method to clear
  • BUG: DirChooser got support for Icon event.
  • BUG: DateChooser.Value returns the correct date now.
  • BUG: ListContainer.Background has been fixed.

GB.SETTINGS

  • NEW: Settings can save string arrays in a configuration file.

GB.GTK Component

  • Updated.
1.9.42 - 11 Sep 2006

Development Environment

  • NEW: Support for default control dimensions.
  • NEW: No control is created anymore to get default value of properties. This is experimental, as this implies that all controls defines these default values in the '_Properties' constant.
  • NEW: When you save a source file, a comment telling that it is a Gambas source file is automatically inserted at the beginning of the file.
  • NEW: Old file creation dialogs have been removed, and replaced by a unique one.
  • NEW: You can insert symbolic links inside your project. Their support is experimental.
  • NEW: The find list now is displayed in its own tool window, and not inside the project tree anymore
  • NEW: Project tree refresh has been optimized.
  • NEW: The output console now handles the '\r' and '\t' control characters.
  • NEW: The control property sheet has more support of properties kinds.
  • NEW: The project version can be got from the output of an external program.
  • NEW: The quit dialog has been redesigned.
  • NEW: The control toolbox has been redesigned around a TabStrip.
  • NEW: The translation dialog has been enhanced, thanks to Charlie Reinl.
  • NEW: IDE workspace now uses the same icon as the project tree.
  • BUG: The IDE does not break anymore when the user component path does not exist.
  • BUG: Search inside procedure has been fixed, and should not enter an endless loop anymore.
  • BUG: The position of controls dropped on the form editor should be correct now.
  • BUG: You can specify that the stack size keeps its default value now.
  • BUG: Needed features of a component are correctly saved now.
  • BUG: Finding a Gambas subroutine in the help works now.

Database Manager

  • NEW: The interface now is based on the Workspace control.
  • BUG: The use of ComboBox and ListBox List properties has been fixed.

Interpreter

  • NEW: A new API, GB.RaiseLater(), that posts an event to an object. The event must not take any parameter.
  • NEW: Component.UserPath is now located in '~/.local'.
  • BUG: The _free() methods are now called again when the _new() methods fail. It finally crashes less than the fix in the previous version. A real solution has to be found.

Compiler

  • BUG: Using expressions in optional parameters does not crash the compiler anymore.

GB.QT Component

  • NEW: ToolButton.Radio property has been implemented.
  • NEW: Color.LightBackground is lighter.
  • NEW: Container.Find is a new method that finds a child control from a relative position.
  • NEW: The Dialog.Filter syntax is now the same as the gb.form FileChooser control.
  • NEW: Draw.Resolution returns the resolution of the device being drawn in digits per inches.
  • NEW: All Mode properties now uses the constants from the Select class. Other selection mode constants have been removed.
  • NEW: IconView GridX and GridY properties have been replaced by the GridWidth and GridHeight properties, those value is not in pixels anymore, but in units of Desktop.Scale.
  • NEW: HBox, VBox, HPanel and VPanel have an AutoResize property now, which is not set by default, contrary to the old behaviour.
  • NEW: ScrollView.Width and ScrollView.Height are two new properties that return the dimension of the internal area.
  • NEW: TreeView, ColumnView and ListView got a Cancel event, raised when a item renaming has been canceled.
  • NEW: Watcher now raises an Insert event when a new child is inserted in a watched container.
  • NEW: The default values of background and foreground colors are correctly managed now.
  • BUG: Some fixes in the Design property management.
  • BUG: Setting the background or foreground color has been correctly optimized.
  • BUG: Some fixes in the arrangement algorithms.
  • BUG: ScrollView arrangement is now correct when the ScrollView has a border.
  • BUG: TabStrip enables and disables tabs correctly now.

GB.QT.EXT Component

  • NEW: Editor.Print is a new method that handles '\r' and '\t' control characters.
  • NEW: TableView now raises a Select event when the selection has changed. This event is deferred.
  • BUG: Editor now undoes insertion in a more clever way.
  • BUG: Editor now refreshes without flickering when the entire edited text is visible.

GB.QT.KDE Component

  • NEW: The Dialog.Filter syntax is now the same as the gb.form FileChooser control.
  • NEW: DatePicker has been removed.

GB.FORM Component

  • NEW: The CustomListBox control has been replaced by the ListContainer container.
  • NEW: Chooser controls now have a Value property.
  • NEW: DateChooser, a calendar control for selecting a date.
  • NEW: FileView now hides backup files, unless the 'show hidden files' button is toggled.
  • NEW: SidePanel.Settings is a new property that returns the SidePanel state in a string. This property can be set too.
  • BUG: FileChooser raises the Change event when the user changes the current directory.

GB.FORM.MDI Component

  • NEW: The Workspace tabstrip follows the mouse wheel now.

GB.SETTINGS

  • NEW: The Settings class now stores Window and SidePanel settings differently.

GB.GTK Component

  • Updated.

GB.PDF Component

  • BUG: The component should compile with poppler 0.5 now.
1.9.41 - 30 Aug 2006

Development Environment

  • NEW: Support for developing component (experimental).
  • NEW: The project property dialog has been redesigned.
  • NEW: Component description is now part of the IDE source code to make their translation easier.
  • NEW: Support for components installed in ~/.gambas/lib.
  • NEW: The Enabled property is now applied to controls in the form editor.
  • NEW: New interface for defining project arguments.
  • NEW: Custom project directory icon.
  • NEW: The code editor is more clever when moving to a procedure.
  • BUG: Auto-completion list is now always on front of the signature tooltip.
  • NEW: Internal help browser was removed and replaced by a call to an external web browser automatically detected.
  • NEW: The online help now uses a treeview written in JavaScript that was adapted from http://phpXplorer.org.
  • NEW: Project treeview drag & drop now opens the parent nodes automatically when you keep the mouse cursor on them during a few time.
  • NEW: Some optimization in component information refresh during a project load.
  • NEW: Stack size configuration is back.

Examples

  • BUG: Console example was fixed. One should never use LINE INPUT to read process output.

Interpreter

  • NEW: Support for SDL event loop.
  • NEW: The Insert() method of arrays now returns a reference on the array, like the Sort() method.
  • NEW: Component.UserPath returns the path where user components are stored. At the moment, it is ~/.gambas/lib/gambas2, but it will surely be moved to ~/.local/lib/gambas2.
  • NEW: The Stream class got a Close() method.
  • BUG: The interpreter release process at exit was fixed. It could crash sometimes, depending on the use of _free() methods in your project.
  • BUG: Regular expressions were fixed. The syntax '[A-Za-z]' is now correctly supported.

GB.QT Component

  • BUG: The arrangement routine now should work correctly with autoresize containers. Toolbars should not disappear anymore in the IDE.
  • BUG: Some fixes in drag & drop management.
  • NEW: Drag.Pending is a new property that indicates that a drag is pending.
  • NEW: Draw.Width and Draw.Height return the dimension of the object being painted.
  • NEW: TabStrip tabs can be shown or hidden individually.
  • BUG: The MoveLast() method was fixed in TreeView, ColumnView and ListView.
  • BUG: TreeView and ListView items got the same X, Y, Width and Height properties than ColumnView items.

GB.DB Component

  • BUG: ODBC driver fixes.

GB.GTK Component

  • Updated.

GB.SDL Component

  • Updated.
1.9.40 - 26 Aug 2006

Development Environment

  • NEW: The IDE now understands the new way of declaring properties.
  • NEW: You can drag images from the project tree and drop them on a form.
  • NEW: You can drag controls from the toolbox and drop them on a form.
  • NEW: The project tree now use drag & drop and in-place renaming.
  • NEW: Support for String array properties whose each string is translatable.
  • NEW: When the debugger is awaken, the IDE window is automatically raised.
  • NEW: The output console can use the System encoding or the Desktop encoding.
  • NEW: Auto-completion is more intelligent when you press Backspace.
  • NEW: Auto-completion now completes a control name with its event handlers as soon as you insert an underscore character.
  • NEW: Auto-completion now completes special method names.
  • NEW: If the auto-completion have several entries beginning with the same letters, then the Tab key only completes the common part.
  • NEW: The editor "goto" button was replaced by a combo-box.
  • NEW: Commenting and uncommenting selected text now respects the indentation.
  • BUG: The icon editor color picker now works correctly.
  • NEW: Some integer properties are now edited with a SpinBox control.
  • NEW: The translation dialog has been redesigned.
  • BUG: The executable shortcut is not created anymore when the project is just compiled.

Database Manager

  • NEW: The new server dialog now can open a file selector when creating a connection to a sqlite database. This is a contribution of Charlie Reinl slightly modified by your servant.

GB.QT Component

  • NEW: A resizable modal dialog cannot be stretched to less than its initial size.
  • BUG: Containers having AutoResize set now honor correctly the Padding property when arranging their contents.
  • BUG: The Mouse events are not delivered anymore when the mouse is on a scrollbar inside the widget.
  • NEW: Drag.Show is a new method that allows to display a frame on a part of the control that could receive a drop. This frame is hidden when the drag is terminated, or if you call the Drag.Hide method.
  • BUG: Drag.Action is accurate now.
  • NEW: Default drag & drop support of ListView, TreeView and ColumnView has been disabled.
  • NEW: Extended selection mode was removed.
  • NEW: The Select class now holds the constants for selection modes.
  • NEW: A auto-resize Label whose text is vertically centered does not automatically decrease its height anymore.
  • NEW: ListBox.List and ComboBox.List are now String[] properties.
  • BUG: Menus should now correctly hide useless separators.
  • NEW: Two new properties, Mouse.StartX and Mouse.StartY, that are the value of Mouse.X and Mouse.Y when the MouseDown event is raised.
  • NEW: Mouse properties that return key and button states now can be used outside of a mouse event. They returned the last value set by a mouse event, and not the current value!
  • NEW: The TreeView.Root and ColumnView.Root properties have been removed.
  • BUG: TreeView.MoveLast and TreeView.MovePrevious now work even if the items are sorted.
  • NEW: Move methods of TreeView items have been removed. They have been replaced by Move methods that *really* move the items inside the view.
  • NEW: MoveFirst, MoveLast, MoveAfter and MoveBefore are four new methods that change the order of an item among its siblings. They cannot change the parent of the item at the moment.
  • NEW: Control.MouseDrag is a new event that is raised when a mouse button is pressed, and when the mouse cursor have moved a little since. It means that a drag could be started.
  • BUG: The Embedder control seems to not working correctly anymore. This is not fixed at the moment.

GB.QT.EXT Component

  • BUG: TableView correctly refreshes its contents when its number of rows or columns has changed.

GB.FORM Component

  • NEW: DirView got an Icon event and an Icon property, like the FileView class. Contribution of Fabien Bodard.
  • BUG: FileChooser has a read-only mode that you set when you want to open a file and not save it. This mode was fixed.

GB.GTK Component

  • NEW: The CheckBox widget now implements the third state available in gb.qt.
  • NEW: The Stock class has been merged as a gambas part of gb.gtk, but there are some issues yet.
  • NEW: The Application.Theme property.
  • NEW: Image.Stretch got the "Smooth" argument.
  • NEW: MouseMove events implemented in DrawingArea.
  • BUG: Draw.Rect now works correctly for negative width and height values.
  • NEW: Extended selection mode was removed.
  • NEW: The Select class now holds the constants for selection modes.
  • NEW: A GridView control.

GB.SDL Component

  • Updated.

GB.OPENGL Component

  • Updated.
1.9.39 - 19 Aug 2006

Development Environment

  • BUG: Automatic insertion of property handlers should not crash anymore.
  • BUG: Selecting more than one line during a debugging session does not send garbage to the debugger anymore.
  • NEW: HBox, VBox, HPanel and VPanel are drawn with a more visual representation.
  • NEW: The title bar inside the form editor is drawn differently.
  • NEW: Examples directories are now translated.
  • NEW: A new highlighting theme made by Ron Onstenk, "Obsidian".
  • BUG: Function signature tooltip is correctly displayed on one line only again.
  • NEW: The size of the toolbar control icons now follows the global font size option.
  • BUG: Clearing the recent files list now works correctly.

GB.QT Component

  • BUG: The ScrollView now behaves correctly when its arrangement property is set.
  • BUG: The Drag & Drop should have been really fixed. :-p
  • BUG: The Window.Close method has been fixed.
  • BUG: The Show and Hide events are now raised again when a Window is shown or hidden by the window manager, but no action is raised.

GB.FORM Component

  • NEW: Balloon.Control is a new property that returns the control the balloon points at.
  • BUG: Many fixes in the Balloon behaviour.
  • NEW: DirChooser.Picture and FileChooser.Picture are a new properties to set the picture displayed for the root directory.
  • NEW: Expander is a new container that acts like the Expander GTK+ widget.

GB.DB.FORM Component

  • BUG: The DataBrowser and DataSource were fixed, and should not raise any spurious error anymore when inserting new records.
  • NEW: DataBrowser.Orientation is a new property to set the position of the buttons around the DataView.
  • NEW: True and False value are translated inside the DataView.

GB.SDL Component

  • NEW: The component was redesigned. The CD-Rom part was removed (see below). gb.sdl.opengl and gb.sdl.image were merged with gb.sdl.
  • NEW: The SDL and OpenGL examples were updated.

GB.SDL.SOUND Component

  • NEW: The CD-Rom part of the old gb.sdl component was put there.
1.9.38 - 08 Aug 2006

Development Environment

  • NEW: The mascot, and some other IDE parts now use the new Balloon class.
  • NEW: The project creation dialog was redesigned a bit, and uses the Balloon class too.
  • NEW: Showing grid is now a toggle button local to each form editor.
  • BUG: Now Multicontainers are arranged correctly when saved.
  • BUG: Project treeview menu now has recovered its shortcuts. They should work without disturbing other parts of the interface.
  • NEW: The menu editor starts to use ballons too, but it is far from being perfect at the moment.
  • NEW: You can select the icon theme in the options dialog now.
  • BUG: Reloading the form hides correctly any property editor.
  • NEW: The "Make executable" dialog has been redesigned.
  • NEW: You can automatically create a shortcut of your application on your desktop when making an executable.

Interpreter

  • BUG: Calling Object.SetProperty() on a read-only property now raises correctly an error, and does not crash the interpreter anymore.
  • BUG: Catching an error in a function call on the number or type of arguments does not corrupt interpreter stack anymore.
  • BUG: The integer division operator '\' correctly converts its arguments to Long when one of them is Long and the other a shorter integer. Consequently, the result of the division is correct now.

Archiver

  • BUG: The archiver does not forgot to deliver some files anymore.

GB.QT Component

  • BUG: Drag & Drop event management has been fixed.
  • NEW: Container Insert and Remove events has been removed. They may come back in the future.
  • BUG: Draw.Picture() now works correctly when Pictures have a mask.
  • NEW: TextLabel.AutoResize is set by default now. Now the TextLabel is resized only vertically so that all its text is visible.
  • NEW: TextLabel and Label autoresize is more aggressive.
  • BUG: Disabled shortcuts keep being disabled when the Menu is shown.
  • BUG: Message box icons return to their original 32x32 pixels size.
  • BUG: ScrollView does not display unneeded scrollbars anymore.
  • BUG: Management of current active window has been fixed, and should not freeze the interpreter in some case anymore.
  • NEW: Now showing a window while another modal window is displayed makes it modeless to the modal window, and not automatically modal.
  • NEW: Window.TopLevel is a new property that returns if a Window control is a toplevel window, i.e. if it is not embedded.
  • NEW: Reparenting of Windows has been fixed.
  • NEW: The Stock class now uses the standard Gnome icon theme as defined in the control center.
  • BUG: Enabling an already enabled Timer does not create spurious internal timers anymore.
  • NEW: AutoResize of TextLabels is better now, but cannot be perfect because of a bug in QT.
  • NEW: Label and TextLabel got a new method Adjust that resizes the control according to its contents.

GB.FORM Component

  • NEW: ToolPanel.TextFont is a new property to choose the font of the ToolPanel buttons independently from the ToolPanel font itself.
  • BUG: The ToolPanel contents resize correctly when its Font or TextFont property changes
  • NEW: A new class, Balloon, that works like the Message class, but displays a yellow balloon instead! :-)
  • NEW: FileChooser.ReadOnly is a new property that makes the TextBox on the bottom editable or not. This is useful when typing any file name is not wanted.
  • NEW: FileView control displays icons from the Stock according to the extension of files, and automatically display preview of image files, if they are not too big.

GB.FORM.MDI Component

  • NEW: ToolBar.Orientation now allows a ToolBar to be either horizontal or vertical.
  • NEW: ToolBar has an internal padding of one pixel now.

GB.DB.FORM Component

  • BUG: Creating a new record with the DataBrowser works again.
1.9.37 - 06 Aug 2006

Development Environment

  • NEW: Almost all icons now come from the stock. The development environment now takes a GNOME look when running under GNOME.
  • BUG: Automatic insertion of property handlers now correctly deals with static properties.
  • BUG: CTRL+Up and CTRL+Down work again.
  • BUG: Search backward does not freeze the IDE anymore.
  • BUG: Arranging buttons in the form editor do not crash the IDE anymore.
  • BUG: Some unneeded process was removed when inserting a new file in the project.
  • NEW: Now project source files can only be put in the project root directory.
  • NEW: The project creation dialog has been redesigned.
  • NEW: The menu editor is now resizable.
  • NEW: The icon selector has been redesigned. But this is not the final version!
  • NEW: A new highlight theme made by Fabien Bodard, 'amber'.
  • BUG: Color buttons in the option dialog now should be visible with any widget theme.
  • BUG: Find previous and find next buttons are at the good place now.
  • BUG: Saving translation now waits for the completion of the 'msgfmt' command.
  • NEW: CVS directories are now automatically hidden.

Database Manager

  • NEW: The databaser manager starts using stock icons.

Interpreter

  • BUG: The error message displayed when accessing an unknown object symbol has been fixed.
  • BUG: Byte order and end of line character are now correctly initialized when opening a file inside an archive.
  • BUG: Static arrays should not be freed twice and so crash the interpreter anymore.

Compiler

  • NEW: Now project source files are compiled only if they are located in the project root directory.

GB.QT Component

  • NEW: The Stock class has been redesigned and completed.
  • NEW: Stock.List returns the list of all stock icon names.
  • NEW: Application.Theme is a new property that stores the application theme. This property is used, for example, by the Stock class to choose which icon theme should be displayed.
  • NEW: ToggleButton.Radio is a new boolean property that makes it behave like a RadioButton when it is set.
  • NEW: When loading an image, the component looks before for an image with the same basename, but with an underscore followed by the current application theme added. For example, if Application.Theme is "gnome", and if you load the "flower.png" image, then a "flower_gnome.png" will be loaded instead if it exits.
  • BUG: Label autoresize was enabled again.
  • NEW: ListBox, ListView, TreeView and ColumnView events are now dispatched immediately if the selection mode is "Single".
  • NEW: Message boxes now follow the application theme.
  • BUG: When the application is uniconified, the focus correctly returns to the correct form, and not always to the main window.

GB.QT.EXT Component

  • BUG: Editor.GetPurgedLine() now correctly deals with quoted string characters.
  • NEW: A margin was added between line numbers and text in the editor.

GB.FORM Component

  • NEW: DirChooser and FileChooser now raise an Icon event that allows to change the icon displayed for each file. The icon must be stored in the new Icon property inside the Icon event handler.
  • BUG: A potential crash in DirChooser and FileChooser has been fixed.
  • NEW: FileChooser.SelectedPath property is now writable.
  • NEW: Wizard.ShowTitle is a property that allows to hide the wizard title.

GB.DB Component

  • NEW: The gb.db.sqlite driver was renamed as gb.db.sqlite3.
  • NEW: A new gb.db.sqlite pseudo-driver had been created that automatically switches between gb.db.sqlite2 and gb.db.sqlite3 as needed.
  • NEW: Field names are systematically quoted when using Find and Edit methods.
1.9.36 - 01 Aug 2006

Development Environment

  • BUG: You can change the case of a control name now without having a message telling you that the name is already in use.
  • NEW: If you select an expression during a debugging session, its value is automatically displayed in a tooltip.
  • BUG: Some fixes in the automatic insertion of functions when selecting an event in the form editor.
  • NEW: The automatic position bookmarks (F2 & SHIFT+F2) saves positions in more situations.
  • NEW: Some little changes in the search & replace panel.
  • BUG: The file list is now correctly sorted, and displayed the line where the search string was found.
  • BUG: Form reload should work in all cases now.

Interpreter

  • NEW: The debugger code is now stored in the gb.debug component.
  • BUG: Code inside _init() methods can be debugged now.
  • NEW: If you use the bracket syntax with the two first elements having different types, then a Variant[] array is created instead of raising an error.

GB.DEBUG Component

  • NEW: The debugger goes inside this component now.
  • NEW: The debugger can display the contents of Array and Collection objects.

GB.EVAL Component

  • BUG: Evaluating expressions with a non-terminated string does not crash the interpreter anymore.

GB.QT Component

  • BUG: Management of Expand property was fixed for Row and Column arrangement mode.
  • BUG: The behaviour of UserContainer arrangement properties was fixed.
  • BUG: The Label control should not displayed its text twice anymore.
  • NEW: The Separator control now uses the underlying widget theme for displaying its contents.
  • NEW: Pictures name beginning with "icon:/" are sent to the Stock class. For example, "icon:/64/close" is a reference to the stock icon that represents the "close" action, with a width and height of 64 pixels.
  • BUG: Forms do not accept keyboard focus anymore.
  • NEW: Action.Lock and Action.Unlock are two new methods for locking and unlocking the propagation of actions.
  • NEW: The Stock class uses the icons of the current KDE icon theme.

GB.QT.EXT Component

  • BUG: Fix some redraw problem in the Editor.

GB.QT.KDE Component

  • BUG: Fixed a fatal double initialization of the event loop.

GB.FORM Component

  • BUG: The layout of the wizard title is correct now.
  • NEW: You can hide a toolpanel sub-panel.

GB.FORM.MDI Component

  • NEW: Workspace tab bar is displayed on top now.
  • NEW: Workspace title is hidden now. The close button is now besides the tab bar.

GB.DB Component

  • NEW: Database connections are automatically opened at first use. This is experimental and not well tested!
1.9.35 - 25 Jul 2006

Configuration & Installation

  • The README.HOWTO-PACKAGE-GAMBAS file has been updated. Please read it carefully if you make binary packages of the development version!
  • This version should compile without errors with the very last version of gcc.

Development Environment

  • BUG: Clicking on a menu inside the form editor now opens the editor inside the event handler as before.
  • BUG: Changing the stacking order of controls keeps the selection handles on top.
  • NEW: The new logo is used in more places.
  • BUG: You can select the default color in the color dialog again without crashing the IDE.
  • NEW: The automatic completion ignores string contents and comments now.
  • BUG: The automatic completion is less aggressive.
  • NEW: The find dialog were replaced by a find panel with toolbars.
  • NEW: The result of a global project search is now displayed directly in the project tree.
  • NEW: When debugging, selecting an expression in the editor displays its value in the message bar.
  • NEW: You can reload a form now.
  • BUG: The mascot came back.
  • NEW: A new highlight theme, named 'Amethyst'.

Interpreter

  • NEW: GB.Loop() is a new interpreter API that allows a component to call the default event loop to implement its own one.
  • NEW: Object.Count is a static method that returns how many times an object is referenced.
  • BUG: Comparing objects now work in all cases.
  • NEW: A component now can export a GB_SIGNAL() function that will be called by the interpreter in specific situations. At the moment, the following signals are implemented: GB_SIGNAL_DEBUG_BREAK (the program is stopped in the debugger), GB_SIGNAL_DEBUG_CONTINUE (the program is running), and GB_SIGNAL_DEBUG_FORWARD (the program will run step by step).
  • NEW: String.InStr() and String.RInStr() are two new string search functions that deals with UTF-8.
  • BUG: Randomize() works now when the seed is specified
  • BUG: Reading and writing a string into a stream without specifying the length now work correctly.
  • BUG: Temporary files are now correctly removed when the interpreter terminates.

GB.QT Component

  • NEW: Arrangement by row and column now take the Expand property into account.
  • BUG: ToolButton now raises its Click event according to its toggle status.
  • BUG: Select events of ListBox, ListView, TreeView and ColumnView are now posted, so that its behaviour is more logical.
  • NEW: Action class is now called only when a control is effectively associated with an action.
  • BUG: A close embedded window automatically activates its parent window.
  • NEW: Forms now accept keyboard focus when clicked. This is experimental and may be removed in the future.
  • NEW: Show and Hide events are not sent anymore if they come from the window manager. This is experimental too!
  • BUG: Some fixes in the Action class.

GB.FORM Component

  • NEW: Some cosmetic changes in the SidePanel control.

GB.FORM.MDI Component

  • NEW: A ToolBar child having the Expand property set now makes the toolbar as large as possible.
  • NEW: ToolBar can have an action now.

GB.SETTINGS Component

  • BUG: The default settings file directory is now automatically created.

GB.GTK Component

  • NEW: Arrangement by row and column now take the Expand property into account.
  • NEW: The GridView control was implemented.
1.9.34 - 17 Jul 2006

Configuration & Installation

  • BUG: A symbolic link named 'gambas2' pointing at 'gambas2.gambas' is now created inside the 'bin' directory of the installation.

Development Environment

  • NEW: KDE Crystal icon theme is used now.
  • NEW: The main window was redesigned with toolbars and actions.
  • BUG: Some fixes in container support in the form editor.
  • NEW: The form editor now has a representation of the window borders and title bar.
  • NEW: The welcome form was redesigned.
  • BUG: Somes fixes in the automatic completion.
  • NEW: A new tab which displays the list of current breakpoints while debugging.
  • NEW: The option form was redesigned.
  • BUG: Automatic creation of property handlers now support static properties.
  • BUG: Opened forms become read-only when the project is running.
  • NEW: The icon editor was redesigned.
  • BUG: Old editor positions are cleared when a new project is opened.

Interpreter

  • BUG: The GB.GetFunction API does not leak memory anymore when the searched function does not exist.
  • NEW: The '.Array' class lost its point, and is named 'Array' now.
  • NEW: Class.Component is a new property that returns the component a class belongs to.
  • BUG: Object.SetProperty and Object.GetProperty now correctly propagate errors.
  • NEW: Object.Call now takes its arguments as an unique array, and not as a variable list.
  • BUG: An error raised inside a component written in Gambas does not crash the interpreter anymore during a debugging session.
  • BUG: An object variable with a defined class can only accept symbols of this class, and not a symbol of an inherited class.
  • NEW: Randomize now takes an optional parameter to initialize the seed.

Compiler

  • NEW: A new instruction, SLEEP, to wait without calling the event loop.
  • NEW: EXEC and SHELL now support the AS syntax to specify the event name of the returned Process objects.

Informer

  • BUG: The informer does not use a hardcoded path of itself anymore to implement library preloading.

Archiver

  • NEW: The archiver takes a new '-o' option to specify the path of the generated executable.

GB.QT Component

  • BUG: The implementatio of the Design property were reworked.
  • NEW: The Control.Window property now returns the window the control belongs to, even if this window is embedded. BE CAREFUL! THIS MAY BREAK YOUR CODE.
  • NEW: Now a control can be associated with an action, thanks to the Action class. This class is implemented in the gambas part of the component.
  • NEW: Now the Application.ActiveWindow returns the window containing the control having the focus, even if this window is embedded, provided this embedded window has an event handler for the Activate event. Is it clear?
  • NEW: Disabled icons are visually visible now.
  • NEW: Button, ToggleButton and ToolButton now support actions.
  • BUG: ToolButton now have a minimum height according to its font, like the Button control had.
  • NEW: CheckBox supports action now.
  • NEW: Arrange.LeftRight was renamed as Arrange.Row, and Arrange.TopBottom was renamed as Arrange.Column.
  • NEW: Container now raises the Arrange event, to indicate that its contents has changed and should be arranged.
  • NEW: Draw.RoundRect is a new method to draw rounded rectangles.
  • NEW: Now DrawingArea controls ignore keyboard events by default.
  • NEW: DrawingArea.Focus is a new property to tell a DrawingArea to accept keyboard events.
  • NEW: Menu now supports actions.
  • NEW: Now menus automatically hide unneeded separators just before opening.
  • NEW: Menu.Toggle is a new property to make the menu acts like a toggle button.
  • NEW: Menu.Show and Menu.Hide are two new methods to respectively show and hide a menu entry.
  • NEW: Menu.Popup now takes two extra optional parameters to specify the screen coordinates of where the menu will appear.
  • NEW: Menu.Window is a new property that returns the window the menu is attached to.
  • BUG: Replacing a picture in the Picture cache with another one with the same key does not crash the interpreter anymore.
  • BUG: Changing the background color of a window now works correctly.
  • NEW: Window now supports action, so that it can be automatically shown or hidden.

GB.QT.EXT Component

  • NEW: Editor.Goto now takes an optional argument that center the cursor inside the Editor control.
  • NEW: Procedures can be separated with a gradient instead of just a line.
  • BUG: Some little fixes in the Editor control.

GB.FORM Component

  • NEW: FontChooser.ShowFixed were replaced by FontChooser.FixedOnly.
  • NEW: FontChooser.ShowStyle is a new property that allows to hide the style panel in the middle.
  • BUG: FontChooser does not refresh uselessly anymore.
  • NEW: Some cosmetic changes in the SidePanel container.
  • NEW: A new property, SidePanel.Action, for associating a SidePanel with an action. This way, the SidePanel can be automatically shown or hidden.
  • NEW: A ToolBar control, that acts as a container.

GB.FORM.MDI Component

  • BUG: Some bug fixes in the Workspace control.
  • NEW: Clicking on the titlebar now gives the focus to the associated child window.
  • NEW: Activating windows should not flicker anymore.

GB.SETTINGS Component

  • NEW: Settings.Path is a new static property that returns the default path of configuration files.
1.9.33 - 01 Jul 2006

Configuration & Installation

  • The symbolic links in /usr/bin are not needed anymore. Now the gambas installation path is encoded in the executable at compilation time, unless a symbolic link /usr/bin/gbx2 exists. Otherwise, the only requirement is that gbr2 must be in the PATH.

Development Environment

  • BUG: Move some code from Form constructors to Form_Open event handlers, as no event can be raised during instanciation.
  • BUG: Some fixes in the automatic completion.
  • BUG: Some fixes in the help explorer window.
  • BUG: Making an executable outside of the project directory now works correctly.

Interpreter

  • BUG: The error management does not leak stack anymore. So functions doing a lot of TRY do not crash the interpreter anymore.
  • NEW: File.SetName, File.SetExt, File.SetDir and File.SetBaseName replace the File.Name, File.Ext, File.Dir and File.BaseName methods called with two parameters.
  • BUG: The = and <> operator now work correctly in any case when comparing two strings whose one is null.

GB.QT Component

  • NEW: The Draw.Drawing method now takes four extra optional clipping parameters, like Draw.Image and Draw.Picture.
  • BUG: Windows automatic layout works again.

GB.QT.EXT Component

  • BUG: The procedure line delimiter is correctly displayed in all cases now.

GB.FORM Component

  • BUG: Some fixes because of the constructor not being able to raise events anymore.

GB.FORM.MDI Component

  • NEW: Pressing the Shift key allows to resize MDI child windows freely.

GB.DB Component

  • BUG: Drivers functions that test the existence of a user, an index, a field, and so on, now correctly return FALSE if an error occurs.

GB.V4L Component

  • BUG: The component now requires the "linux/videodev2.h" include to compile.
1.9.32 - 11 Jun 2002

Development Environment

  • NEW: The old Workspace control has been replaced by the new one.
  • NEW: Automatic completion of identifiers and keywords.
  • NEW: The help window now uses a static version of the wiki.
  • BUG: The find dialog should not crash anymore in replace mode.
  • BUG: The project tree shortcuts now are disabled when not having the focus, so that they do not conflict with the editor shortcuts.
  • NEW: The debug window is now docked on the bottom of the main window.
  • NEW: The project tree now displays modules first.
  • NEW: Making executable is faster now.

Database Manager

  • BUG: The CSV export was fixed.
  • NEW: The CSV export now uses TAB as separator character.

Examples

  • BUG: The Notepad example was fixed.

Interpreter

  • NEW: The Gambas API has a new GB.Post2() function to call a function later with two parameters.
  • BUG: All components are now forced to use string comparison functions that do not use localization settings. This is mainly for Turkish people :-)
  • BUG: The GPL version was incorrect in the message displayed by the --help option.
  • NEW: An object cannot raise or receive events inside its contructor. This can break some code: for example, you may have to move code from the _new() method of a Form to the Form_Open event handler.
  • NEW: A locked object cannot receive events anymore.
  • BUG: Locked objects do not crash the interpreter anymore when trying to raise events.

Compiler

  • NEW: Events are not disabled anymore during the hidden method that creates the controls of a form.

GB.EVAL Component

  • NEW: System.Keywords is a new property that returns the list of Gambas reserved keywords.

GB.QT Component

  • NEW: Draw.Picture now can take optional width and height parameters that scales the Picture. This new syntax is incompatible with the old one!
  • NEW: Draw.Image now can take optional width and height parameters that scales the Image. This new syntax is incompatible with the old one!
  • NEW: Draw.Drawing now can take optional width and height parameters that scales the Drawing. This new syntax is incompatible with the old one!
  • NEW: Drawing transformation has been implemented: Draw.Rotate rotates what is drawn, Draw.Translate translates it, and Draw.Scale scales it.
  • NEW: Draw.Push saves the current transformation state.
  • NEW: Draw.Pop restores the current transformation state.
  • NEW: Draw.Reset resets the transformation state.
  • NEW: Menu raises the Hide event just after being hidden.
  • NEW: Setting Menu.Enabled to FALSE now disables all child menu shortcuts.
  • NEW: TabStrip[i].Delete now removes the i-th tab, if it is empty.
  • NEW: Watcher now raises the Title event when the watched control is a Window and its title changes.
  • NEW: Watcher now raises the Icon event when the watched control is a Window and its icon changes.
  • NEW: Watcher now raises the Close event when the watched control is a Window and it has been closed.
  • NEW: Watcher.Control is a new property that returns the watched control.
  • NEW: The LostFocus event is now posted, as the GotFocus event. This may break some code based on this event.

GB.QT.EXT Component

  • NEW: The Workspace control, based on the QWorkspace widget, has been removed.
  • BUG: The Editor.Undo and Editor.Redo methods now correctly move they cursor.
  • BUG: The Editor automatic unindentation has been enhanced.

GB.GTK Component

  • BUG: Some warning fixes sent by Stephan Binner from SuSE.

GB.LDAP Component

  • BUG: Some warning fixes sent by Stephan Binner from SuSE.

GB.FORM Component

  • NEW: DirChooser.Root is a new property to set the root of the directory list.
  • NEW: FileChooser.Root is a new property to set the root of the directory list.

GB.FORM.MDI Component

  • This new component implements the new version of the Workspace control.

GB.CRYPT Component

  • BUG: The crypt.h header is now searched only in /usr/include.
1.9.31 - 28 May 2006

Development Environment

  • NEW: The GambasEditor control has been replaced by the Editor control.
  • NEW: The hierarchy window and the icon editor toolbox were put in the right side panel.
  • NEW: The arrow keys now move controls in the form editor.
  • NEW: A new menu entry to copy the path of a project data file into the clipboard.
  • BUG: Constraints between components should be correctly managed now, in the project properties dialog.
  • NEW: The text editor has HTML syntax highlighting now.
  • BUG: The translation dialog does not fail anymore when the project directory includes non-ASCII characters.
  • NEW: Defining the project startup class is optimized now.

Database Manager

  • NEW: A new dialog for importing CSV files.
  • BUG: Image.Load() is static now. Some fixes of image loading.

Interpreter

  • BUG: RDir() was fixed, and should work with very long file names now.

Compiler

  • BUG: A bug in the reading of *.list file was fixed. It prevented the compilation of project using EXPORT OPTIONAL.

GB.QT Component

  • BUG: The default and cancel buttons management was fixed.
  • BUG: Drawing.Width and Drawing.Height should always return an accurate value now.
  • BUG: Stretching a null image now creates a void image of the specified size.
  • BUG: Menu events generated by a menu opened with the Popup method are now delivered before the method returns.

GB.QT.EXT Component

  • BUG: Many fixes in the keyboard and focus handling of the Editor control.
  • NEW: All line numbers are displayed in the Editor control.
  • BUG: Gambas sytnax highlighting does not leak memory anymore.

GB.QT.EDITOR Component

  • This component has been removed.

GB.FORM Component

  • BUG: The DirChooser now raises its events correctly.
  • NEW: SidePanel buttons now can display a tooltip.

GB.DB Component

  • BUG: Void table, index or field names are correctly handled now, and do not crash the interpreter anymore.
1.9.30 - 20 May 2006

Development Environment

  • NEW: Implemented and needed features can be declared in a *.component file, and this is used by the IDE as additional constraints.
  • NEW: Some changes in the MDI interface.
  • NEW: The output window is now based on the Editor control.

Examples

  • NEW: A printing example made by Timothy Marshal-Nichols and slightly modified by me.

Interpreter

  • BUG: Dir() and RDir() work correctly with archives (i.e. executables) now.
  • BUG: './' and '../' are correctly handled in relative paths now.
  • NEW: String.Chr is a new method that returns an UTF-8 character from its Unicode value.
  • NEW: String.Code is a new method that returns the Unicode value of a UTF-8 character.
  • BUG: Val() works correctly again with boolean values.

Archiver

  • NEW: Now directories are stored inside the archive file.

GB.EVAL Component

  • BUG: Eval() does not modify its string expression anymore.
  • BUG: A missing brace error message was fixed.

GB.SETTINGS Component

  • BUG: Settings.LoadWindow and Settings.SaveWindow now do not always use the default Settings object anymore.

GB.NET Component

  • NEW: UdpSocket.Broadcast is a new boolean property that specifies if an UDP socket can send broadcast packets.

GB.QT Component

  • NEW: GridView.Find is a method that searches a grid cell from its coordinates.
  • NEW: GridView.Item is a property that returns the cell found by GridView.Find.
  • NEW: The .GridViewItem virtual class got two new properties, Row and Column, that return the row and column of the specified cell.
  • BUG: TextLabel paddign property now should work correctly.
  • BUG: TextLabel.AutoResize is FALSE by default now.
  • BUG: Some fixes in the MDI child window management.

GB.QT.EXT Component

  • NEW: Two new properties to know the horizontal position of a column, and the vertical position of a row.
  • NEW: Workspace.ScrollBar is a property that specifies if the Workspace can have scrollbars.

GB.FORM Component

  • BUG: The SidePanel control now raises the Show event after being shown, and the Hide event just before being hidden.
  • NEW: SidePanel now raises an Resize event when it is resized.
  • BUG: SidePanel.Dimension now always returns an accurate value.

GB.DB.FORM Component

  • NEW: DataSource.Sort is a new property that specifies the sort order of the returned data.
  • NEW: The DataView can sort its columns. Note that this sort uses the new DataSource.Sort property.
  • NEW: DataCombo.All is a new string property that allow it to display a "All" entry, when you want to use it as a filter.
  • NEW: DataView.Grid is a boolean property that specifies if the grid is displayed or not.
  • NEW: DataView.Highlight is a boolean property that specifies if one line out of two is highlighted.
  • BUG: The Request class is not exported anymore.
1.9.29 - 20 Apr 2006

Development Environment

  • BUG: Some fixes in MDI management.

Interpreter

  • BUG: SUPER keyword now should work in any case.
  • BUG: Auto-creatable classes now can be enumerated safely.
  • BUG: To know how many bytes can be read on a file descriptor, lseek() is used when ioctl() fails. This is for operating systems like FreeBSD that do not implement it in all cases.
  • BUG: Subst() was fixed.
  • BUG: Val("") returns NULL now, and not a null date anymore.

Compiler

  • NEW: The THEN keyword is now optional.

Qt Component

  • BUG: Tooltips work correctly on view controls now.

Database Component

  • BUG: Blob management was fixed in mysql driver.
  • BUG: 'information_schema' is now a system database in mysql driver.
  • BUG: Now the mysql driver prevent the system databases from being deleted.

Gtk+ Component

  • BUG: Assigning TrayIcon.Tooltip does not crash anymore.

Smtp Component

  • BUG: Newline are correctly sent now.
1.9.28 - 28 Mar 2006

Configuration

  • BUG: The visibility flag is now correctly detected and used even with gcc 3.x.

Development Environment

  • BUG: Many fixes in the MDI development environment.

Qt Component

  • BUG: Opening a window sometimes crashed because of MDI child window QT bug workaround. This was fixed.
1.9.27 - 24 Mar 2006

Configuration

  • BUG: Some fixes for FreeBSD.
  • NEW: 'gbr2' is a new symbolic link to 'gbx2', that is used for running executables.
  • BUG: The '-fvisibility=hidden' gcc flag is not used when gcc 3 is detected. Thanks to Laurent for the patch!

Development Environment

  • NEW: The development environment is MDI. This is completely experimental!
  • NEW: You can change the control hierarchy (and so the tab order) directly in the hierarchy window.
  • BUG: 'du -k' is used instead of 'du -b', to be compatible with FreeBSD.

Interpreter

  • NEW: GB.GetFunction() has a new parameter to check the return type of the searched function
  • NEW: GB.Stopped() is a new function that returns if STOP EVENT was used during a function called with GB.Call().
  • BUG: Many fixes for FreeBSD.
  • BUG: getpt() has a replacement function now for FreeBSD.
  • BUG: The main hook is now called before looking for the startup class. This helps components that have to initialize during this hook, like the gb.qt component.
  • NEW: Stat.Path is a new property that returns the path used when calling the Stat() function.
  • NEW: Stat.Link is a new property that returns the path referenced by a symbolic link.
  • NEW: The '=' and '<>' comparison operators now use the _compare special method when comparing object references.
  • BUG: STOP EVENT now should work correctly in all cases.
  • NEW: The pseudo-random number generator now uses a twisted generalized feedback shift register, thanks to a french Linux Magazine article. Trust me, the new algorithm is better and faster than the old one.
  • NEW: Relative paths, i.e. paths that reference files inside the project, can use '.' and '..' now.

Compiler

  • NEW: You can declare functions with the SUB keyword now, instead of using the FUNCTION keyword. This is for lazy guys ;-)

Archiver

  • NEW: The Gambas executable has changed from '#!/usr/bin/gbx2 -x' to '#!/usr/bin/env gbr2', to be compatible with FreeBSD systems. Consequently, ALL EXECUTABLES MUST BE REGENERATED!

Qt Component

  • NEW: TextLabel gets AutoResize and Padding properties.
  • BUG: Many fixes in MDI child windows support.
  • NEW: Control.Next and Control.Previous can be written, to change the control Z-order and tab order.

Gtk+ Component

  • NEW: Compiling with DirectFB backend is supported.
  • BUG: A little fix to compile with gcc 4.1.

Kde Html Component

  • NEW: WebBrowser.Print is a new method for printing the browser contents.

Pcre Component

  • BUG: The pcre library is searched in /lib too.
1.9.26 - 02 Mar 2006

Configuration

  • NEW: Now everything is compiled with the gcc flag '-fvisibility=hidden' activated. So component exported symbols (GB, GB_INIT, GB_EXIT, GB_CLASSES and optional interface library) must be explicitely declared with the new EXPORT macro declared in 'gambas.h'.

Development Environment

  • NEW: When declaring a exported integer class property, you can define the default value with constant names, instead of numeric values.
  • NEW: If you press the RETURN key after having defined a property, the property read and write handlers are automatically defined.

Examples

  • NEW: The presentation made by Laurent and I for the french meeting 'Solutions Linux 2006' becomes an OpenGL example.

Interpreter

  • NEW: String[].Join() third parameter has now the same behaviour as the third parameter of the Split() routine.
  • NEW: Component.Load() is now a synonymous for Components.Load().
  • BUG: Now every path beginning with a tilde character '~' is interpreted the same way as a shell.

Database Component

  • BUG: Tables with more than about 30 fields do not crash the interpreter anymore.
  • BUG: The sqlite 2 driver came back.

Qt Component

  • NEW: The CheckBox control got a new property, Tristate, that allows it to display a third intermediate state.
  • NEW: CheckBox.Value is now an integer, and not a boolean anymore, because of the Tristate new property. It can take three different values: CheckBox.False (0), CheckBox.True (-1) and CheckBox.None (1).
  • NEW: Color.LightBackground returns a lighter background than Color.SelectedBackground.
  • NEW: GotFocus events are now posted, you don't get them immediately, and so after the control effectively got the focus.

Qt Extension Component

  • BUG: TableView now correctly adjusts a column according to the column contents.
  • NEW: TableView.AutoResize is a new property that makes the last column stretch automatically to fit TableView width.
  • NEW: TableView.Resizable is a new property that allows the user to resize TableView columns.

Gtk+ Component

  • BUG: The HSV methods now really uses the 0..255 range.

Kde Component

  • BUG: The current locale is correctly defined now.

Database Form Component

  • BUG: Many bug fixes in the data bound controls.
  • BUG: The database queries were optimized.

Smtp Component

  • NEW: This is a new component that allows you to send mails via SMTP. It contains one control, SmtpClient, that is used for defining the SMTP server, the SMTP port, the recipients, the sender, the subject, the mail contents, some attachments, and for finally sending the mail.
1.9.25 - 18 Feb 2006

Development Environment

  • BUG: Translation of component names are used now.
  • NEW: String[] properties are managed now.
  • BUG: Selecting all controls on a form updates the property window correctly now.
  • BUG: Toolbox panels are intelligently sorted now.
  • BUG: Big images are now stretched in the project treeview.

Interpreter

  • NEW: The image and picture hooks syntax has changed.
  • NEW: The image and picture API has been enhanced.
  • NEW: _compare is a new special method used for comparing an object with another during a sort.
  • NEW: System.User now returns the same static object as the User class.
  • NEW: String[].Join() now can take an extra optional argument that is an escape string added to the beginning and the end of each joined element.
  • BUG: The event inheritance now works correctly with interpreted classes
  • BUG: Calling a method on an anonymous reference now works correctly if the called method does not always have the same number of arguments.
  • NEW: Implementation of the new IS operator (see below).
  • BUG: The Subst() instruction now interprets the '&&' sequence as a single '&'.
  • NEW: Path names now interprets the '~' character like the shell does.
  • BUG: INPUT now works correctly with more than one argument.
  • BUG: The debugger now prints string expressions without corrupting memory anymore.

Compiler

  • NEW: The RENAME/AS instruction was replaced by the MOVE/TO instruction.
  • NEW: Class names are detected at compilation time now.
  • BUG: When declaring several local variables on the same line, each one can have its own initialization expression now.
  • BUG: Internal subroutines, i.e. those that are associated with an instruction, cannot be called directly anymore.
  • NEW: The syntax '[]' now returns NULL.
  • NEW: A new subroutine named Comp(), that compare two strings.
  • NEW: IS is a new operator that returns if an object is an instance of a specified class, or one of its child classes.
  • NEW: The old deprecated syntax "OPEN xxx AS file" is not supported anymore. You must use "file = OPEN xxx" instead.

Eval Component

  • BUG: Now class names are displayed with the same color as datatypes.

Database Component

  • NEW: The Firebird driver was merged into the source tree.
  • BUG: The current database is now correctly tracked, and cannot point at an already freed object anymore.
  • BUG: Connection.Version now correctly checks that the database is opened.
  • NEW: Connection.Opened returns if a connection is opened.
  • NEW: Connection.Limit() is a new method that makes the next SQL request only return a specified number of rows. This method returns the connection object, so that you can use the following syntax: DB.Limit(X).Exec(...) The limit is reset to infinity once used.
  • NEW: Information on how to limit the result of a SQL query is filled by the open_database() driver function.
  • BUG: Connection.Delete() does not leak memory anymore.
  • NEW: Writing to a serial field is silently ignored now.
  • BUG: Result.Move*() methods now return TRUE if there is no record available anymore. Like they did in the stable version.

Networking Component

  • BUG: Now ServerSocket can accept more than five connections without crashing anymore.
  • NEW: ServerSocket is now enumerable, and returns each connected socket.
  • NEW: ServerSocket.Count returns the number of connected sockets.

Qt Component

  • NEW: Image.Load() is now a static method that returns a newly created image from a file.
  • NEW: Picture.Load() is now a static method that returns a newly created picture from a file.
  • NEW: Drawing.Load() is now a static method that returns a newly created drawing from a file.
  • NEW: The Image constructor now takes an extra optional parameter that indicates if the image has an alpha channel.
  • NEW: Image.Transparent is a new property that indicates if an image has an alpha channel.
  • NEW: Image.Depth is read-only now.
  • NEW: Label.Padding is a new property that represents the pixel padding between the label border and the label text.
  • BUG: The Label.AutoResize property was enabled again, but is now TRUE by default.
  • BUG: Image conversion methods were fixed.

Gtk+ Component

  • NEW: Image.Load() is now a static method that returns a newly created image from a file.
  • NEW: Picture.Load() is now a static method that returns a newly created image from a file.
  • BUG: The HSV/RGB color conversion method now use the same value range than the QT component.
  • BUG: Loaded images are automatically converted to a 32-bits per pixel format.
  • BUG: Image conversion methods were fixed.

Pcre Component

  • BUG: The PCRE component should now compile with older versions of libpcre.

Image Component

  • NEW: This is a new component for applying many various effects on images. The effects source code was ported from the KDE libkdefx library, which includes itself some ImageMagick algorithms, and from the KolourPaint program.

Database Form Component

  • NEW: This component implements data bound controls. It provides the following new controls: DataSource, DataBrowser, DataView, DataControl and DataCombo. It is highly experimental at the moment.
1.9.24 - 03 Feb 2006

Configuration

  • WARNING! The bytecode has changed, so you will be warned to recompile your projects.

Development Environment

  • NEW: The ESC key unselects all controls in the form editor.
  • BUG: The translation dialog does not crash anymore if there is no string to translate.

Database Manager

  • BUG: Code generation now uses the correct datatype constants.

Interpreter

  • NEW: Some fixes for FreeBSD 6.
  • BUG: Better support of big-endian CPU.
  • NEW: PIPE, an instruction for opening named PIPE. The syntax is: hFile = PIPE <path> FOR ( READ | WRITE ) [ WATCH ]
  • BUG: Object.Attach() can take a NULL parent without crashing now. It is a synonymous of Object.Detach() then.
  • BUG: Now an error raised inside a function is always catched if the function is called with a TRY instruction.
  • NEW: Now the backslash '\' character is an escape character inside the format string of the Format$() function.
  • BUG: 'u' is a new format character, that displays the millisecond part of a date/time value.
  • BUG: Now the startup class is global, so that components that need it correctly find it.
  • BUG: Now a class name inside a signature is always searched inside the global table.
  • BUG: The bits manipulation instructions were fixed.
  • NEW: Lsl() and Lsr(), two new functions for doing a logical shift.
  • BUG: Using an auto-creatable static class now raises an error, and do not crash the interpreter anymore.

Compiler

  • BUG: Better support of big-endian CPU.
  • NEW: PIPE instruction.
  • BUG: The line number of an error is always accurate now.

Archiver

  • NEW: Support of big-endian CPU.

Eval Component

  • BUG: White spaces are not removed from the end of line automatically anymore.

Qt Component

  • BUG: Drag & Drop of TreeView, ListView, ColumnView, IconView and ScrollView controls was fixed, and should work as expected.
  • NEW: Window.Controls returns a collection of all controls located in the window.

Qt Extension Component

  • BUG: Some fixes in the Editor control.

Database Component

  • NEW: Now a database driver can tell the database component to use another driver than itself.
  • NEW: The sqlite driver now automatically switches between sqlite2 and sqlite3.
  • BUG: Some fixes in the sqlite driver.

Sdl Component

  • Updated.

Opengl Component

  • Updated.

Pdf Component

  • NEW: The PdfDocument class has now a global Scale and a Rotation property.
  • BUG: The GetImage() method returns by default a full page, scaled and rotated according to the previous properties.
1.9.23 - 02 Jan 2006

Examples

  • BUG: The Database example was fixed.

Development Environment

  • NEW: Now the ESC key unselect all selected controls in the form editor.

Database Manager

  • NEW: Support for serial and blob fields.
  • BUG: The data editing window now generates now read table field properties once only.

Interpreter

  • NEW: Two new functions in the interpreter API for inserting and removing elements inside an array.
  • BUG: Object.GetProperty and Object.SetProperty were fixed.
  • BUG: Event inheritance does not crash anymore.
  • BUG: You can call SHELL and EXEC several times without freezing the interpreter anymore.

Compiler

  • NEW: You can declare several local variables on the same line! For example: DIM s AS String = "yes", i, j, k AS Integer
  • BUG: You cannot use the same local variable in several imbricated loops anymore.

Qt Component

  • NEW: Now the Label control resizes automatically to fit its contents. The AutoResize property is useless. Note that this is experimental!
  • NEW: A new method, Control.Reparent, to reparent any control.

Gambas Editor Component

  • BUG: The drawing of highlighted lines when relief is not used was fixed.

Qt Extension Component

  • NEW: A lot of work for removing as much QT dependency as possible in the Editor control.

Database Component

  • NEW: The driver interface was redesigned.
  • NEW: Support for serial fields, i.e. integer fields that increment automatically. MySQL, PostgreSQL and SQLite drivers support them, but not the ODBC driver yet.
  • NEW: Connection.User is a synonymous for Connection.Login.
  • NEW: Datatypes constants are defined in the DB static class now: db.Boolean, db.Integer, ..., db.Serial and db.Blob.
  • BUG: String quoting was fixed in PostgreSQL driver.

Opengl Component

  • Updated.

Xml Component

  • BUG: Some bugs fixes from Linex.
1.9.22 - 26 Nov 2005

Development Environment

  • BUG: The IDE can load *.info files whose classes are sorted in any order now.
  • BUG: The IDE now catches and displays early error messages from the interpreter.

Examples

  • NEW: Some new examples: Chart, and GambasGears.

Database Manager

  • NEW: Fields with a Long datatype are correctly managed.
  • BUG: ODBC and SQLite3 database driver were added.

Interpreter

  • BUG: The Class class was fixed, and now returns the list and number of symbols correctly.
  • BUG: Up to 4096 string constants in the same class are supported now.
  • BUG: The interpreter does not crash anymore if the LANG environment variable is not set.
  • BUG: IsLetter() and IsDigit() functions were fixed.

Qt Component

  • NEW: Support for Image/Picture creation API.
  • NEW: DrawingArea now catches keyboard events.
  • BUG: The Clear method of GridView items does not crash the interpreter anymore.
  • BUG: ListView items can be renamed now.
  • BUG: KeyPress events are now correctly raised when using composed keys.

Gambas Editor Component

  • NEW: Mouse selection, copy and paste is supported now.

Editor Component

  • NEW: Mouse selection, copy and paste is supported now.

Gtk+ Component

  • NEW: Support for Image/Picture creation API.

Form Component

  • NEW: DateBox and TimeBox got a ReadOnly property.
  • BUG: Clicking twice inside a DirView or a FileView now raises the Activate event.
  • BUG: The Change event is correctly raised now in the FileView control.

Database Component

  • BUG: User class were renamed as DatabaseUser, preventing the conflict with the native User class.
  • NEW: Long database fields are now correctly managed.
  • NEW: A database user can have '@' and '%' characters inside its name.
  • BUG: Database object names accept only ASCII characters now.
  • BUG: MySQL driver returns if an index is unique correctly now.
  • BUG: Creating users with full privileges now works correctly in the MySQL driver.
  • BUG: Now ODBC driver without fetching capabilities are correctly managed. But there is no support for them in the database manager yet.

Opengl Component

  • Updated.

Video For Linux Component

  • NEW: Image/Picture creation API is used now.

Pdf Component

  • A new component made by Daniel Campos.
1.9.21 - 29 Oct 2005

Configuration

  • Now the search of libintl, libgettextlib and libiconv libraries display a more accurate warning message.

Development Environment

  • BUG: The automatic completion does not crash anymore when a class inherits an unknown parent class.

Database Manager

  • BUG: Deleting rows in a table works again.
  • BUG: Field names are case unsensitive now in the table edition window.

Compiler

  • WARNING: The SCAN instruction has been removed, and replaced by the Scan() subroutine.

Interpreter

  • NEW: a new API that allows components to define a function for creating Image objects, and for using it.
  • NEW: Object.Is(), a new static method for checking if the class of an object is or inherits a given class.
  • NEW: Stream.EndOfLine is a new property for setting the end of line pattern of a stream. This pattern is used by the LINE INPUT and PRINT functions. Possible values are gb.Unix, gb.Windows and gb.Mac. By default, the end of line pattern is gb.Unix.
  • WARNING: The SCAN instruction has been removed, and replaced by the Scan() subroutine.
  • NEW: A component is not loaded if it has the same name as the project. This way, debugging component made in gambas are far easier.
  • BUG: Enumerating objects like Result works again.
  • BUG: Looping with a Byte or Short variable now works correctly.
  • BUG: Formatting a date with AM/PM now displays an hour value between 1 and 12, and not 0 and 11 as before.
  • BUG: Displaying numbers in decimal now is more accurate, and should not display things like 123,00000000001 anymore.
  • BUG: The interpreter event loop was fixed.

Settings Component

  • NEW: Settings.Read() and Settings.Write() allow reading and writing settings for Window objects: position, and size.

Qt Component

  • NEW: The Separator control, that displays an horizontal or vertical separator line.
  • BUG: The DblClick event is now posted, and not raised immediately as before.
  • NEW: Window.ToolBox, a new property to tell the window manager that a window is a toolbar.

Qt Extension Component

  • BUG: Some fixes in highlighting process of the Editor control.

Kde Html Component

  • NEW: Webrowser.Java, a new property for allowing java in the browser.

Gtk+ Component

  • Updated.

Database Component

  • NEW: Result.Delete now takes an optional boolean parameter to prevent the deleted record for being removed for the Result object.

Xml Component

  • BUG: Patch from Dirk Mueller, that fixes an uninitialized variable access.

Opengl Component

  • Updated.

Corba Component

  • New component made by Carlo Sorda.

Ldap Component

  • New component made by Carlo Sorda.
1.9.20 - 03 Sep 2005

Development Environment

  • BUG: The IDE compiles correctly now.

Interpreter

  • NEW: A space in a regular expression now matches any number of spaces or characters whose ASCII code is lower than 32.
1.9.19 - 01 Sep 2005

Configuration

  • WARNING! Bytecode has changed, so you will be warned to recompile your projects.
  • gb.clanlib was removed. There was actually nothing useful in it.

Development Environment

  • NEW: A insignificant and incomplete example of what could be the interface of the next development environment. Look in ./src/app/next-gambas.

Interpreter

  • NEW: SCAN is a new instruction to match a string against a pattern, and gets the matching part associated with the '*' joker into string variables. The syntax is: SCAN "string" WITH "pattern" TO var1, var2...
  • WARNING: Arithmetic operators implementation was optimized for size. Things seems to not have been broken.

Compiler

  • NEW: Support for the SCAN instruction.

Eval Component

  • BUG: Highlighting of the unary minus operator was fixed.
  • BUG: The question mark is now replaced by PRINT anywhere in the line (except in strings and comments of course).

Qt Component

  • BUG: ToolButton controls now display their text label correctly.
  • BUG: Container dimension properties now take in account the frame border.
  • BUG: Window standard QT layout was replaced by a hand-made one, so that there is no space anymore between the top of the window and the Y = 0 coordinate.
  • BUG: Adding a child window to a Workspace works again.
  • BUG: Setting Application.Font should update Desktop.Scale in all cases now.
  • BUG: Control.Next and Control.Previous really work now.

Qt Extension Component

  • BUG: Setting Editor.View should not crash anymore.
  • NEW: Some little optimizations in internal Editor painting routine.
  • NEW: Ctrl+Up and Ctrl+Down now move to the previous or next function.

Form Component

  • NEW: A new container, SidePanel. It is a panel with little arrow on the side to resize or hide it.
  • NEW: ToolPanel got a Border property.
  • BUG: ToolPanel buttons now follow correctly the font size.

Kde Component

  • BUG: ColorBox does not corrupt memory anymore, and so memory leaks disappear.
  • BUG: Program arguments are now correctly handled, as language changes.

Information Component

  • BUG: Many bug fixes and updates. This component will use a new component file format and a new way to document properties that will be documented soon...
1.9.18 - 24 Aug 2005

Development Environment

  • BUG: Fix the use of TextBox and TextArea selection methods.
  • BUG: Swedish language is 'sv', not 'se'!
  • BUG: Font selector always use relative font sizes by default.

Database Manager

  • BUG: Fix the use of TextBox and TextArea selection methods.

Examples

  • NEW: A new example for showing the new Editor control, with custom syntax highlighting.
  • NEW: Another little timer example made by Maxim Lapis was added to the Timer example.

Compiler

  • NEW: Support for the new 'EXPORT OPTIONAL' feature. See below...

Interpreter

  • NEW: The Timer class is now part of the interpreter, and must be removed from any component that implements it.
  • NEW: A new hook to handle timers in components managing the event loop.
  • NEW: A new API, GB.RaiseTimer(), to raise timer events from components managing the event loop.
  • NEW: Classes can now be optionally exported. They are not exported from a component, if a class with the same name has been already exported from another component.
  • BUG: Some fixes in error management. Now error information is kept until the end of a function.
  • NEW: Application.Return is a new property for storing the value that will be returned by the program when it terminates.

Qt Component

  • NEW: Timer was removed.
  • BUG: Drawing on void Pictures is not allowed anymore.
  • BUG: Windows with a fix border work again.

Qt Extension Component

  • NEW: The Editor control now supports custom highlighting routine, by raising the 'Highlight' event.
  • NEW: Editor colors were replaced by styles, which are a combination of color, italic, bold and underline.

Form Component

  • NEW: A ColorButton control.

Sdl Component

  • Updated.
1.9.17 - 19 Aug 2005

Configuration

  • BUG: The detection of QT libraries should work now on Arch Linux.

Compiler

  • BUG: Now component information are generated only when doing a complete compilation.

Interpreter

  • NEW: A new API, GB.MatchString(), to do pattern matching like the LIKE instruction.
  • BUG: Some fixes in archive management.
  • NEW: The classes of the executed project marked with EXPORT are now really exported, after the exported classes of all loaded components. This way, you can override them easily. I used it for redefining TextBox so that its background color is animated :-)
  • BUG: Some fixes in the debugger. Now error messages occurring before the Main function start are catched by the IDE.
  • NEW: Error.Propagate(), that raises the current catched error again.
  • BUG: Converting a variant void string to date now gives a null date and not an error anymore.
  • BUG: A component Gambas project can use itself as component. Then it will not be loaded twice by the interpreter.
  • BUG: Now strings are implicitely converted to floats with arithmetic operators, and not to booleans anymore.
  • BUG: Trim$(), LTrim$() and RTrim$() do not remove non-ASCII characters in some cases anymore.

Qt Component

  • BUG: Modifying a control font now always call the Font property setter, so that it is possible to reimplement the Font property in inherited class.
  • BUG: Automatic drag & drop was disabled in IconView.
  • NEW: IconView got a MoveBack() method, like the other view controls.
  • NEW: Application.ActiveControl returns the control having the focus.
  • NEW: Desktop.Find returns an array of identifiers of windows matching a given title, role or class.
  • WARNING: TextBox and TextArea selection methods have changed. The Select symbol is now a method only, and you must use the new method SelectAll() to select all the text. The All and implicite methods in the Selection property were removed.
  • NEW: TreeView, ListView, and ColumnView got a SelectAll() method.
  • WARNING: Now ColumnView columns are AutoResize by default if ColumnView global AutoResize property is false.
  • NEW: If an event handler named Application_KeyPress is defined in themselves startup class, then he will get all key events received by the application before any other control.

Form Component

  • NEW: DateBox and TimeBox controls, for editing dates and times.
  • NEW: DirChooser has more properties.
  • NEW: FileChooser, a control for choosing a file.
  • NEW: ColorChooser were redesigned.

Networking Components

  • BUG: The *.component files were fixed, so that you can insert the controls in form without error as before.
  • NEW: Controls icons were redesigned.

Information Component

  • NEW: This component aims at providing all needed information about installed components: classes, symbols, events, controls, properties, and so on.
1.9.16 - 11 Aug 2005

Configuration

  • The installation does not abort anymore if symbolic link creation fails.

Development Environment

  • NEW: Some changes to support "multi-containers". Multi-containers are just containers having several tabs, like the TabStrip container.
  • BUG: Clicking on the component list in the project property dialog should not abort the IDE anymore.
  • WARNING: The syntax of the *.component files has changed. And it will continue changing in the future!

Compiler

  • NEW: Do not fail anymore if a *.list file does not exist when compiling a project. This way, component projects like gb.form that reference themselves can be compiled at package installation time.

Interpreter

  • BUG: The classes declared in the main project are now referenced in their own symbol table, like any other component written in Gambas. Only the classes declared as exported remain global.
  • BUG: Enumeration and array operators can be used with anonymous object references without crashing the interpreter anymore.

Qt Component

  • NEW: The arrangement algorithm was factorized so that gb.gtk and gb.qt use the same in the future.
  • WARNING: The internal Container widgets control has changed.
  • BUG: UserControl and UserContainer were fixed so that containers written in Gambas behave correctly in the development environment.
  • WARNING: You cannot drag IconView items automatically anymore.
  • BUG: Window.Mask and Window.Picture should work correctly for embedded windows now.
  • NEW: A new property, DrawingArea.Merge, to tell the drawing area to merge all painting events before raising the Draw event. Use it if you have to draw something rather complex. Do not use it if you can easily draw the exact rectangle area expected by each Draw event.

Qt Extension Component

  • BUG: The CEditor.cpp file now should compile with gcc 3.x.

Form Component

  • WARNING: FileChooser was renamed as DirChooser.
  • NEW: ToolPanel, a new container for implementing toolbars with panels like the Gambas tool-box.
  • NEW: Wizard, a container for implementing wizards.

Gtk+ Component

  • Updated.
1.9.15 - 07 Aug 2005

Configuration

  • BUG: The "fish jail" :-) patch was entirely applied.
  • BUG: Look in /opt/qt* when searching for QT libraries.

Development Environment

  • NEW: Support for containers written in Gambas.
  • BUG: Fixed startup position when you add a control inside a TabStrip in the form editor.

Compiler

  • BUG: You can declare an event taking no parameters without having to write void braces.
  • BUG: A symbol used as event, constant, or property can now be used as a class name.
  • BUG: The name of events declared in classes written in Gambas are now internally prefixed with a colon, like nativ classes ones.
  • NEW: You can now use affectation in a WITH statement, i.e. you can write 'WITH Something = Expression ... END WITH'.

Interpreter

  • NEW: GB.CurrentComponent() is a new API that returns the name of the current component. This is used for implementing a picture cache different for each component.
  • NEW: Object.SetProperty can now set the value of static properties.
  • BUG: Stream.ByteOrder is really an integer property.
  • NEW: Stat is not a virtual class anymore.
  • WARNING: Stat.LastUpdate was renamed to Stat.LastModified.
  • NEW: Dir() and RDir() now take an optional third argument, that indicates if we want directories or files or both while browsing.
  • BUG: The List class was removed. Cry if you don't find it useless.
  • BUG: The _call special method management was fixed.
  • NEW: A new routine Comp(), that compares two strings and returns the result as an integer: +1 if the first string is greater than the second, -1 if the second string is greater than the first, and 0 if the two strings are equal.
  • NEW: A new interpreter hook, named HOOK_LANG, that is called at startup and each time System.Language is redefined.
  • NEW: A new property, System.RightToLeft, that returns if the current system language is right-to-left written.
  • NEW: Now the interpreter looks in ~/.gambas/lib/gambas2 to load components, if it cannot find them in the gambas system directory (/usr/lib/gambas2 by default).

Qt Component

  • NEW: UserContainer control, to help implementing Container controls in Gambas.
  • NEW: Support for containers written in Gambas.
  • NEW: ListView, IconView, TreeView and ColumnView have now a Compare event that is raised for comparing elements. You can now sort ColumnView columns as you need.
  • NEW: Label has now an AutoResize property. When this property is set, the label automatically resized to fit its text height.
  • WARNING: Splitter has moved from extension component to standard component.
  • WARNING: Controls written in Gambas were moved to the new gb.form component.
  • NEW: An experimental Stock class that returns standard icons.
  • BUG: Container arrangement now regards right-to-left written languages.
  • BUG: Dialog size grip now regards right-to-left written languages.

Qt Extension Component

  • NEW: Editor control, that aims at replacing the GambasEditor control. It can share its text with other editors, display number lines. It will support custom highlighting routine in the future. There is an experimental 'gambas2-with-editor' project for those who want to see it in action.

Form Component

  • NEW: All controls written in Gambas were moved from the QT component to this component.
  • NEW: FileChooser, a file selector control that is not finished yet.

Gambas Editor Component

  • BUG: Some fixes in undo/redo management.
  • WARNING: This component is now deprecated, and will be replaced by the new Editor control as soon as possible.

Database Component

  • NEW: New property Result.Max that returns Result.Count - 1.
  • BUG: Result.Fields.Exist() now returns FALSE if a field does not exist, and do not raise an error anymore.

Gtk+ Component

  • Updated.
1.9.14 - 29 Jul 2005

Configuration

  • BUG: Finally applied the "fish jail" :-) patch of Dirk Mueller to the symbolic link creation.
  • BUG: Components directory including a gambas part are now correctly packaged.

Development Environment

  • New font and color dialogs in the property sheet.
  • The welcome, about and tips dialog now use the system colors.
  • Symbols including an underscore are not displayed anymore in the completion list.

Compiler

  • BUG: events from gambas classes are now internally prefixed with a colon, as the events from native classes.
  • The bytecode version is now written in each compiled class.

Interpreter

  • BUG: Now a native class can have a static property that returns a usable virtual class.
  • If the bytecode version of a compiled class is different from the bytecode version of the interpreter, then an error is raised.
  • BUG: Many fixes in the gambas archive management. Now everything should work as expected :-)
  • The Boolean[] array class was implemented.
  • Object.GetProperty() now can return the value of static properties.
  • BUG: Classes located in gambas archives are now freed with the global classes when the interpreter ends.
  • BUG: Format$(0, "+#") now works correctly.
  • A new property, Application.Dir, that returns the application startup working directory at startup. Note that the current working directory is modified by the interpreter.
  • BUG: Hex$() and Bin$() now correctly display negative values.

Qt Component

  • Eight new properties in Color class that returns system colors.
  • A new array operator in Color class to split a color in its Red, Green, Blue, Alpha or Hue, Saturation, Value parts.
  • BUG: Some fixes in the arrangement algorithm of containers.
  • BUG: The DrawingArea draws its border correctly again.
  • A new property, Font.Scalable, that returns if a font is freely scalable.
  • A new property, Font.Grade, that represents a predefined font size proportional to the default application font. Range from -9 to +9.
  • A new control, UserControl, that acts as a parent class for implementing user controls directly in Gambas.
  • A new method, ScrollView.EnsureVisible, that ensures that a specified area of the ScrollView is visible.
  • A new property, TextArea.ScrollBar, to choose the display policy of the scrollbars.
  • A new class, TrayIcons, for enumerating all TrayIcon controls.
  • New properties in the TrayIcon class: Tag, ScreenX, ScreenY, Width and Height.
  • BUG: TrayIcon now catches Enter and Leave events.
  • BUG: The Design property now works with controls written in Gambas.
  • BUG: Some fixes in Open event trigerring of embedded forms.
  • Three new controls made with Gambas: FontChooser, ColorChooser and CustomListBox.

Database Component

  • A new method, CConnection.Subst(), that converts gambas values into the underlying database SQL syntax, and substitutes them in a query string.
  • BUG: Result can manage tables whose primary keys are not the first fields of the table.
  • BUG: Result enumeration are deletion-safe now.
  • BUG: You can use variant values with functions that use substitution.

Gtk+ Component

  • Updated.

Sdl Component

  • Updated.

Opengl Component

  • Updated.
1.9.13 - 24 Jul 2005
  • $(ROOT) was replaced by $(DESTDIR) in the configuration script.
  • Components information files are now created by each component source directory.
  • autoconf was duped so that source package archive use symbolic links.
  • Use more symbolic links, so that source package is reduced.
  • Components can have a gambas part. Just add a gambas project inside the 'src' sub-directory, having the same name as the component.

Development Environment

  • Now control coordinates are stored as a multiple of Desktop.Scale in the form files. This way, the size of the dialogs is proportional to the system font. THIS IS EXPERIMENTAL! BE CAREFUL WITH YOUR PROJECTS!
  • The grid size is always set to Desktop.Scale.

Database Manager

  • The project was synchronized with the stable version one.

Examples

  • BUG: Some examples were fixed because of the recent changes in some property names.

Compiler

  • BUG: Object[] can be used normally now.
  • Extern functions can be public now.
  • _next can be implemented.
  • A clearer error message when the parser gets an unexpected pattern.
  • You can now initialize *every* variable with *any* expression.
  • BUG: You cannot embed TRY statements anymore.
  • A new instruction, ERROR, that prints an error message on the standard error ouput.
  • A new instruction, DEBUG. It is a PRINT that sends its data to the standard error output, prints where the message comes from, and that is not compiled when debugging information is disabled.

Interpreter

  • New API GB.RealFileName(): It does the same thing as GB.FileName() except that if the file is located inside the project executable, then a temporary copy is made, and the path to this copy is returned. Use it when you can't read data from memory with GB.LoadFile().
  • Now FOR EACH uses internal iterators. A container class can now fix its currently used iterators when deleting its elements. This avoids crashing the interpreter as before.
  • A new class, Enum, that represents internal iterators.
  • BUG: Collection now check all its iterators when deleting its elements.
  • Components written in gambas and executables are now read by using mmap().
  • GB.LoadFile() now uses mmap() if possible, so that loading resources from the executable is faster.
  • BUG: All Array indexes are converted to integers now, not just the first one.
  • Split() escape string parameter behavior has changed. Now it just one escape character only. If the escape string has two characters, then the first is the starting escape character and the second the ending one.
  • File.Dir(), File.Ext(), File.Name() and File.BaseName() all take a new optional parameter. If it is used, then instead of returning their corresponding path part, they replace it with the new parameter. For example, File.Name("/home/benoit", "gambas") returns "/home/gambas".
  • If the interpreter stops just after a non catched error, it does not print memory warning messages anymore.
  • A new function, Week, that returns the week number from a date.
  • A new function, DFree(), the returns the space available on a device.
  • A new property, List.Max, that returns List.Count - 1.
  • BUG: Milliseconds are not stripped anymore in dates, and is correctly managed when converting from/to a string.
  • BUG: _call() method should work in any case now.
  • BUG: IsPunct() now returns FALSE for non-ascii characters.
  • BUG: Bits functions now correctly handle Long datatype.
  • BUG: Changing System.Language should not crashes the interpreter anymore.

Informer

  • Now the informer can extract information from components made in gambas.

Qt Component

  • A new property, Desktop.Scale, that returns half the height of the default system font.
  • Two new methods, Control.MoveScaled() and Control.ResizeScaled() that multiply their arguments by Desktop.Scale and pass them to respectively Control.Move() and Control.Resize().
  • Font does not have its own resolution anymore. It always keep the screen resolution.
  • The TrayIcon control was implemented. Just put it on a form, and you get a little cute icon in the system tray. Thanks Daniel! :-)
  • BUG: Draw.Image() now works on devices having a mask.
  • DrawingArea paint events were optimized.
  • BUG: Embedded windows now internally create an hidden menu bar to store its menus.
  • BUG: Some fixes in the management of Mask and Picture properties.

Database Component

  • BUG: When you create a record with DB.Create(), the fields take their default value now.
  • BUG: The milliseconds part of date fields is correctly handled now, and the value of date fields is correctly returned!

Gtk+ Component

  • Updated.

Sdl Component

  • Updated.

Opengl Component

  • New component made by Laurent Carlier.
1.9.12 - 14 Jul 2005

* Be Careful: The Byte Code Has Been Modified Again, So Your Projects Must Be *ENTIRELY* RECOMPILED!

  • There is a new component, gb.crypt, that allows to use the crypt() glib function.

Database Manager

  • BUG: Errors during table creation or modification are now correctly handled.
  • BUG: Fields names are now case unsensitive in the table edition window.
  • BUG: Deleting fields that are used in an index is not allowed anymore.
  • BUG: Deleting fields in the index tableview now works as expected.

Examples

  • BUG: In the Notepad example, the 'modified' flag now displays correctly in the window title.

Compiler

  • BUG: Fixed some parsing errors.
  • BUG: You can use event, label and property names in a class context now.
  • Now the DIM keyword is mandatory when declaring local variables.
  • BUG: You can effectively instanciate objects with any expression at local variable declaration.

Interpreter

  • BUG: Format$() has been fixed, and re-fixed again.
  • Split() now gets a new optional boolean parameter to tell him to remove void elements from the returned array.
  • New methods to test character type: IsAscii, IsLetter, IsLower, IsUpper, IsDigit, IsHexa, IsSpace, IsBlank, IsPunct.
  • The stream argument of Eof() and Lof() is now optional. If it is not specified, then the standard input is used.
  • BUG: You should be able to retry any code that just raised an error in the debugger without crashing now.
  • BUG: Fixed a problem in the optimization of function calls.
  • BUG: Fixed the Round() function. Now Round(0.5) should returns 1 and not 0 anymore.
  • BUG: The comparison functions should work correctly now. 10 * (10 > 0) returns -10 again :-)
  • BUG: Array contents can be written to any stream now, not just files.

Qt Component

  • A new property, Application.Embedder, that allows you to embed the next opened window in an external window whose X11 handle is specified there.
  • The State property of the Window class has been replaced by three new properties: Minimized, Maximized and FullScreen. These properties are completely independant.
  • A new property, Window.Picture, that stores the window mask.
  • The Mask property now is boolean, and just tells if the Picture property must be used to mask the window.
  • A new control, Embedder, that allows to embed top-level windows of external applications.
  • Each window now has X11 window manager class set to the project name, and X11 window manager role set to its class name.
  • BUG: Unminimizing windows now always give them the focus.
  • BUG: Fix a potential crash is menu management.
  • BUG: If a modal window is already displayed, calling Show() on another window calls ShowModal() instead.

Sdl Component

  • SDL component has been updated.

Mysql Driver

  • BUG: Creating indexes on text fields with no size limit is not case sensitive anymore.
1.9.11 - 06 Jul 2005

* Be Careful: The Byte Code Has Been Modified, So Your Projects Must Be *entirely* RECOMPILED!

  • A new video capture component named 'gb.v4l' made by Daniel Campos. It is based on Video4Linux.
  • The CGI Gambas program that manages the new documentation is distributed with the source so that people can translate it.

Compiler

  • You can instanciate objects at variable declaration with any expression now.
  • Functions can take a variable number of arguments now.
  • You can use the '_unknown' special method now.
  • A new syntax 'IF ... AND IF ...'. The second test is not done if the first is false.
  • A new syntax 'IF ... OR IF ...'. The second test is not done if the first is true.
  • A new syntax 'CASE ... TO ...', to test the match to an interval of values.
  • New C-style assignment operators: +=, -=, *=, /=, \=, &=, &/=.
  • The DIRECT keyword has been removed. Now use 'OPEN ... FOR INPUT | OUTPUT' to open a file in buffered mode and 'OPEN ... FOR READ | WRITE' to open a file in direct mode.
  • The BIG and LITTLE keywords have been removed. Now use the new ByteOrder property of the Stream class.
  • A new syntax for EXEC or SHELL: 'EXEC|SHELL ... TO aString' executes the command, waits for its termination, and returns the process output to the specified string. The syntax defined in 1.9.10 has been removed.
  • WAIT is not implicite anymore in the EXEC or SHELL command.
  • Now ambiguous expressions are detected, and raise an error.
  • A new operator '==', to compare strings by ignoring their case.

Interpreter

  • System.Home was definitely replaced by User.Home.
  • System.User was definitely replaced by User.Name.
  • The class ".Stream" has been renamed as "Stream".
  • A new class, Param, to get extra arguments, and information about a call to the _unknown method.
  • A new property, Stream.ByteOrder, to set the byte order of a stream.
  • A new property, User.Id, returns the user id of the current process.
  • Application.Args is now enumerable.
  • Formatting currency is possible now, by specifying gb.Currency (or gb.International to use the international currency symbol) as second argument of Format$().
  • New mathematical functions: Exp2, Exp10, Log2, Cbr, Expm, Logm, Atan2, Ang, Hyp, Mag.
  • New conversion functions: DConv$(), for converting from system charset to desktop charset, and SConv$() for doing the contrary.
  • New date functions: DateAdd() and DateDiff(). They were backported from the vb component and the syntax was modified.
  • A new function, RDir(), to read the contents of a directory recursively.
  • A new storage class, List.
  • BUG: getting the resting output of a closed process stream does not crash anymore.
  • INPUT FROM DEFAULT and OUTPUT TO DEFAULT now automatically restore the last redirected stream.
  • Adding or substracting little integers is now optimized: about 5 times faster.
  • Calling functions with a fixed number of arguments, without needing to convert the arguments is optimized: about 4 times faster.
  • BUG: Sgn() now always returns an integer.
  • Temporary directories are now only readable to the process user.

Qt Component

  • BUG: Fix memory leak in string conversion to UTF-8.
  • A new drawing method, Draw.Zoom, for drawing a zoomed version of an image.
  • SpinBox control has been moved to the main component.

Editor Component

  • BUG: Display strings whose length is greater than 255 characters correctly now.
  • BUG: Fix rewrite algorithm when dealing with UTF-8 character in some cases.
  • Parsing errors are underlined now.

Gtk+ Component

  • GTK+ component has been updated.

Sdl Component

  • SDL component has been updated.

Curl Component

  • BUG: Some fixes to compile with gcc 4.x.
1.9.10 - 24 Jun 2005
  • The component summary displayed by ./configure is now accurate.

Compiler

  • New instructions INPUT FROM and OUTPUT TO. These instructions redirect the default input and output stream.
  • New syntax for OPEN: 'File = OPEN ...' instead of 'OPEN ... AS #File'

Interpreter

  • Support for standard streams redirection.
  • Now EXEC and SHELL return the process output as a string if the FOR keyword is not used. Otherwise, the process object is returned.
  • Now child processes termination is detected via an internal pipe filled by the SIGCHLD signal handler.
  • Dates can be implicitely converted to booleans or null now.
  • Temp$() now can take the name of the temporary file as an optional argument.

Editor Component

  • BUG: the editor width is updated when a line is highlighted.

Qt Component

  • The GUI layout is reversed when the current language is arabic or farsi.

Gtk+ Component

  • GTK+ component was updated.

Clanlib Component

  • Configuration files were fixed.

Sdl Component

  • SDL component was updated.
1.9.9 - 02 Jun 2005
  • Czech translation made by Peter Cernoch.
  • The *.info and *.list files are now generated one by one.

Compiler

  • BUG: You can use TRY after a one-line IF ... THEN construct.

Interpreter

  • BUG: Raising events now works for class whose parent already has events.
  • BUG: Calling native functions cannot badly free the return value anymore.
  • BUG: The library specified in EXTERN now separate the version number from the library name with a colon.
  • The API GB.Call() now returns a pointer to the value returned by the called Gambas function.
  • Application.Env can be enumerated now.
  • A new static class, User, to return information about the user that runs the process.
  • New functions for external shared libraries support: Alloc(), Free(), Realloc().
  • BUG: Reading from a non-buffered stream is now fixed.
  • Now streams that are not real files always use ioctl() to know how many bytes can be read from them. So Lof() should always return a useful value now.
  • BUG: The debugger now can display class constants.

Develoment Environment

  • BUG: Constants are now displayed in automatic completion.
  • BUG: IDE does not ignore files with executable bit set anymore.

Database Component

  • BUG: You can use string constants inside requests now.

Evaluator Component

  • BUG: Syntax highlighting now works with lines including non-ASCII characters.

Qt Component

  • Dialog.OpenFile now takes an optional argument to let the user choose more than one file.
  • Dialog.Paths is a new property that returns the files selected by the user.

Gtk+ Component

  • Updated.

Networking Component

  • Updated.

Clanlib Component

  • New component. Not usable yet.
1.9.8 - 09 May 2005
  • The source files are now uploaded to the SourceForge FTP servers.

Compiler

  • BUG: Numbers with signs are correctly compiled again.
  • A new keyword, LIBRARY, to tell the compiler the default library name that it should use with EXTERN declarations.
  • Now The IN keyword is optional with EXTERN declarations, if LIBRARY was used before.
  • You can add EXEC <real name> at the end of an EXTERN declaration, to specify the name of the extern function in the shared library, when it is different from the name used by Gambas.
1.9.7 - 04 May 2005
  • Symbolic link to gambas IDE does not have the '.gambas' extension anymore.
  • 'gbi' was rewritten so that it can take a component name as argument, and create the information files only for this component.

Compiler

  • Support for declaring functions in extern shared libraries. The syntax is: EXTERN <function name>(args...) IN <library name>
  • New datatype named 'Pointer' that is a synonymous for 'Integer'.

Interpreter

  • BUG: OPEN ... DIRECT now correctly works.
  • BUG: Opening a file with CREATE flag now always implies READ flag.
  • BUG: SEEK and READ now always work on files opened in DIRECT mode.
  • Support for calling functions in extern shared libraries.
  • If the startup class declares a plublic method named 'Application_Read', then the standard input is watched by the event loop.
  • New subroutines, Alloc(), Free() and Realloc() for allocating and freeing memory fragments.
  • A new subroutine, StrPtr(), that returns the null-terminated string located at the specified address.
  • You can use READ and WRITE to read from or write to memory, by using an integer as stream. The interpreter should raise an error and not crash if you supply an invalid memory address.
  • Now, if you use FOR INPUT/OUTPUT instead of FOR READ/WRITE with the EXEC or SHELL instruction, the executed process is plugged to a pseudo-terminal. This way, you can easily pilot a program that needs to be run in a terminal.
  • BUG: '_call' special method management has been fixed.

Development Environment

  • Support for the Pointer datatype.

Qt Component

  • BUG: I finally got rid of the spurious warning generated by the TableView control.

Database Component

  • BUG: Result methods now always return an error when the result is not available.
  • BUG: Now tables whose primary key fields are not necessarily the first ones work.
  • BUG: The PostgreSQL driver has been fixed. Now it works for any version greater or equal than 7.3.
  • Now deleted records are removed from the Result object.
1.9.6 - 21 Apr 2005
  • WARNING! The bytecode has changed. You must entirely recompile your projects.
  • Now components disabled by libraries and includes detection are not compiled anymore.
  • A new configure flag, '--disable-qt-translation', prevents the qt component for using qt translation files, in the hope of helping to solve the 'freeze' problem with distributions like SuSE.

Compiler

  • Support for Long and Single datatypes.
  • The syntax of EXEC, SHELL and RAISE has changed. They do not use the AS keyword anymore, but the assignment syntax: hProcess = EXEC ... hProcess = SHELL ... bCancel = RAISE ... The OPEN instruction may follow the same way in the future.

Interpreter

  • Two new datatypes: Long, a 64 bits integer, and Single, a 4 bytes floating point number.
  • Two new array classes: Long[] and Single[].
  • Support for files larger than 2 GB. Now Lof() and Seek() return a 64-bits Long value.
  • Two new keywords, LOCK and UNLOCK, to lock and unlock opened files. Just type LOCK #hFile or UNLOCK #hFile.
  • The Stat() function now returns an object of the class 'Stat', not 'File' anymore.
  • BUG: Fixed a possible crash when freeing classes at program end.
  • BUG: Some fixes in the management of components written in Gambas.
  • BUG: The Seek() function should work now.
  • BUG: A file descriptor leak was fixed in an internal function used by the Settings class.

Development Environment

  • Support for Long and Single datatypes.
  • BUG: Menu editor works again.

Database Manager

  • The ODBC driver is supported.

Database Component

  • The ODBC driver was updated.

Network Component

  • BUG: The DTR and RTS properties of the SerialPort class were fixed.
  • The CURL component was updated.

Evaluator Component

  • BUG: Fixed a possible crash when analyzing lines with syntax errors.
1.9.5 - 31 Mar 2005
  • Components can be disabled from the top configure script now.
  • Examples and help files have their own package.
  • a new component, gb.form, that just included an example of component for testing purpose.
  • A summary of disabled components is printed at end of configure.
  • DONT_USE_LTDL is disabled by default when compiling on cygwin.

Compiler

  • Some optimization in case unsensitive comparison.
  • BUG: '.info' files should be correctly generated now.
  • Support for multi-dimensional dynamic arrays.

Interpreter

  • Arrays classes are now multi-dimensional. The dimensions are declared with the following special syntax: DIM aArray AS NEW Float[5, 6, ...] The arrays can have up to eight dimensions. A multi-dimensional array cannot be resized at run-time.
  • Array.Dim returns the number of dimensions.
  • Array.Bounds[...] returns the size of one dimension.
  • Array.Sort() now always returns the array itself, so that you can write: FOR EACH sFile IN Dir(Path).Sort()
  • BUG: Some fixes in Collection class when dealing with null keys.

Archiver

  • Gambas executables have now the '.gambas' extension.

Development Environment

  • Some little fixes to allow using controls of components written in Gambas.
  • If a component requires another component, then it will be stored after in the .project file.
  • Project names including a dot are allowed now.
  • BUG: Menus are correctly managed by the IDE with the GTK+ component now.

Database Component

  • ODBC driver was updated.
  • Connection now is a virtual control.

Qt Component

  • MovieBox has been moved to the main component, as it is in the GTK+ component.

Kde Component

  • The following QT datatypes are managed as DCOP function return type: QMap<QCString, QString>, QMap<QString, QString>, QMap<QCString, DCOPRef>, QMap<QString, DCOPRef>. They are unmarshalled to a Gambas collection.
1.9.4 - 23 Feb 2005
  • Source package has been completely reorganized. Almost each component has its own source sub-package independent from the others.
  • Components can be written in Gambas. But there is no support for that in the development environment yet.
  • $(pkglib) and $(pkgdata) variables are replaced by $(gblib) and $(gbdata) in all 'Makefile.am' files.
  • Components library files are not prefixed with 'lib.' anymore.

Interpreter

  • Support for loading components written in Gambas.
  • Each component can have a translation file.
  • Classes written in Gambas can be exported (i.e global) and auto-creatable.
  • The native class Settings has been replaced by the gb.settings component, written in Gambas.
  • The support for the old USE instruction has been definitely removed.
  • The FIFO opened by a debugged process are not closed at end anymore. I don't know why but it was taking a very long time.
  • Temporary files (and translation files) are now stored in '/tmp/gambas.$UID/$PID/', and are all deleted when the process terminates.
  • BUG: _put and _get special methods now work correctly for classes written in Gambas.
  • BUG: The File.Perm.* properties now work correctly.
  • BUG: Subst() now works correctly when there is a single '&' character in the pattern string.

Compiler

  • A new keyword, EXPORT, to tell that a class is exported, i.e. global. In a component, only exported class are visible to the outside.
  • CREATE tells that a class is auto-creatable, i.e. that using the class like a object automagically creates an hidden instance.
  • When a project has exported class, the compiler automatically generates a '.list' file containing the list of exported classes, and a '.info' file that describes these exported classes. The format of these file is the same as those generated by the 'gbi' tool for native components.
  • Support for _put and _get methods.

Informer

  • The 'gbi' does not take the '-a' option anymore. It always generates information files for all native components.

Database Component

  • BUG: Some fixes in the postgresql driver for PostgreSQL version greater than 7.4.
  • ODBC driver was updated.

Debug Component

  • The SIGPIPE signal is ignored now during a debugging session.

Evaluator Component

  • BUG: many fixes in highlighting and rewriting process.

Qt Component

  • BUG: The Tabstrip.Tab property now really returns a tab virtual object, and not an integer anymore.
  • BUG: The DrawingArea control does not crash anymore when it is cached and its width and height are zero.
  • BUG: Setting the GridView.Item.Picture property now correctly refreshes the GridView.

Gtk Component

  • Updated.

Sdl Component

  • Updated.

Settings Component

  • This component replaces the old native Settings class that was built-in in the interpreter. Note that configuration files are now stored under ~/.config/gambas and that their format has changed to the Windows INI file format.
1.9.3 - 07 Feb 2005
  • libxml and libxslt use pkg-config to detect their installation path.
  • Detection using 'pkg-config' can be overrided by --with-*-includes and --with-*-libraries configure options.

Development Environment

  • BUG: newly created or deleted controls are correctly displayed in the auto-completion list now.
  • Pressing ENTER when the autocompletion is displayed does not insert a new line anymore.

Compiler

  • A new keyword, SUPER.

Interpreter

  • BUG: Virtual dispatching now works correctly.
  • A new keyword, SUPER, to call a method or a property of the inherited class.
  • BUG: gb.Sunday constant is zero, not seven anymore.
  • BUG: Mathemathic functions now raise an error instead of returning a non-finite number.

Expression Evaluator Component

  • Syntax highlighting is done by this component now.

Database Component

  • ODBC driver updated.
  • SQLite driver updated.

Qt Component

  • BUG: Qt dialogs are now translated!
  • BUG: No memory leak anymore when using user-defined cursors.
  • BUG: Setting Dialog.Font to NULL does not crash the interpreter anymore.

Gambas Editor Component

  • Syntax highlighting is done by the gb.eval component now.
  • Code lines are rewritten after being edited.

Gtk Component

  • Updated.

Pcre Component

  • Updated.

Sdl Component

  • Updated.
1.9.2 - 12 Jan 2005
  • BUG: Fix forgotten version suffixes in configuration and source files.
  • Some fixes to help compile on non-Linux architectures.

Development Environment

  • BUG: Don't crash when INHERITS is used by mistake.
  • BUG: Don't display void folders opened in the project treeview.
  • BUG: Never open autocompletion inside a comment.

Compiler

  • BUG: Using INHERITS twice now raises an error message.

Sdl Component

  • Updated.

Gtk Component

  • Updated.

Pcre Component

  • Updated.
1.9.1 - 09 Jan 2005
  • New experimental detection of target operating system. This may break some compilation on other systems than mine. Please report problems!
  • Detection of shared libraries extension on MacOS X.
  • Use of pkg-config to detect some libraries.
  • Executables and packages are suffixed with the major version number.

Interpreter

  • A new API, GB.Application.Startup, that returns the name of the startup class for components that need it.
  • A new property, System.Version, that returns the Gambas major version number.
  • BUG: The [] operator has been fixed for Byte and Short arrays.
  • Now virtual dispatching is used. If you call a method on a object, the method of the true object class is called, and not the method of the class of the variable owning the object reference.

Database Component

  • New VERY ;-) experimental driver for ODBC, made by Andrea Bortolan.

Qt Component

  • BUG: Changing the width of all rows or the height of all columns now works correctly.
  • BUG: TextBox.Pos does not crash anymore if the position is out of bounds.
  • BUG: TextBox.Select.All() now works.

Sdl Component

  • A new component, gb.sdl.image, made by Laurent Carlier.

Gtk Component

  • New component made by Daniel Campos.

Pcre Component

  • New component made by Rob Kudla.