Gambas Dev 1.9.51 (Beta release)
Up to Product page
This is not a final release. Experimental releases should only be used for testing and development. Do not use these on production sites, and make sure you have proper backups before installing.
For additional information about this project, please visit the
project page.
Available downloads
Release Notes
| State | Beta release |
|---|---|
| License | GPL |
| Release Manager | Gareth Bult |
The database component is now case sensitive, and so some applications may break, as Wellington de Suza Pinto has noticed. I plan to make the Result array operator case unsensitive, but I didn't have the time to do it for this release. The gb.qt and gb.gtk now share more code, especially the drawing routines that were moved to a dedicated common component. The features that cannot be common are put in the gb.qt.ext and gb.gtk.ext extension components.
As the drawing routines were put in common, some features were lost:
- The ability to have a rotated transformation matrix with Draw.Rotate().
- The ability to draw rounded rectangles with Draw.RoundRect().
But you gained the ability to draw rich text, with Draw.RichText. Rich text is
a subset of HTML, like what you can put in a TextLabel.
The development environment menus were lightly reorganized. The IDE project
property component list and the debugging windows were redesigned.
There is a new catalan translation, made by Jordi Sayol. Not that Jordi did
not translated the IDE and the database manager only, but all the examples!
And you will find a new experimental component made by Fabien Bodard,
gb.chart, that draws... charts.
Change log
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 Jorge 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.
- BUG: Fixed the bad transformation of the '!' operator right identifier into a string.
- BUG: '!' operator works again.
- 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.
- 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.
- BUG: All gb.db.sqlite3 bug fixes were backported.
- BUG: Reading a field having a NULL value works in all cases now.
- BUG: CCurl.Proxy is a now a true virtual class.
- BUG: HttpClient and FtpClient should not crash anymore.
- 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.
- 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.
- 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.
- NEW: Drawing and Printer classes were moved to this component. They are drawable again.
- NEW: This component implements the Draw.Drawing() method.
- 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.
- 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.
- NEW: Synchronized with gb.qt.
- NEW: Methods that took degrees now take radians.
- NEW: Image.Gradient decay arguments are float now.
- 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).
- BUG: Try to be compatible with the upcoming poppler 0.6.
- BUG: Some bug fixes in component description loading.
- BUG: The $XDG_CONFIG_HOME environmental variable is now taken into account.
- 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.
- 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.
- BUG: The Request class now can handle submission of <select> form elements with multiple selection.
- BUG: Bug on pie not resolved...
- NEW: The ReportTextLabel is now working with the new Draw.RichText function.
- NEW: This is a new component that draws charts.
