[Gambas-user] Release of gambas 1.9.41

Benoit Minisini gambas at ...1...
Wed Aug 30 10:21:12 CEST 2006


Hi,

This release mainly brings:
- Experimental support for component developing in the IDE.
- Online help outside of the IDE.
- Updated GTK+ and SDL component.

===========

(1) Experimental support for component developing in the IDE.

All is in the project property dialog, that has been redesigned.

You have a check-box to tell the IDE that your project is actually a 
component. 

If you check it, two new tabs appears in the dialog.

The first one allows you to define the features provided by your component, 
the second one the features required by your component.

The provided features are four specific options for global features (GUI form, 
OpenGL Viewer, Image provider, Event loop) and a table describing the 
exported classes of your project. 

Don't care with the global features, as they can be implemented in C/C++ only. 
I will remove them.

In the table, you must describe each class exported by the project:
- Their type.
- Their group.

The type of an exported class can be:

* Class: the exported class is just exported, that's all.

* Control: the class is a control, and will be visible in the IDE toolbox.

* Container: like Control, but this control can contain other controls.

* MultiContainer: like Container, but this control is like a TabStrip.

* Virtual: a virtual control has no visual appearence. Like Timer.

* Form: this is not supported yet. It will indicate that your component 
implements a new kind of IDE form, and that class will be the class 
associated with this new form kind. Only one one class can be of 'Form' type.

The class group is the name of the IDE toolbox sub-toolbar the control will be 
put in. If the type of the control is 'Class' or 'Form', it will be void.

In the second tab, you must specify which global feature your component needs, 
and list all required components.

For example, if you make new GUI controls, you can:
- Specifically make your component depends on gb.qt.
- Just tell that it needs the 'GUI form' global feature. In this case, gb.qt 
or gb.gtk will be required. This will be useful when gb.gtk will be at the 
same level than gb.qt. :-)

All this component description is stored in a hidden '.component' file in your 
project directory.

When you create the executable, you will have an option to install the 
generated component.

If you check it, symbolic links will be created inside ~/.gambas (~/.local in 
the future) pointing at your project. Then you will be able to use your 
project in the IDE as a new component, exactly like the other components 
provided with Gambas.

But be careful, only your user account will have these components.

Please test this new experimental feature and tell me the problems you 
encounter.

===========

(2) Online help outside of the IDE.

The old help browser has been removed. Now, when you request some help by 
pressing F1, or F2 on a Gambas keyword or function, the online help opens in 
an external browser.

The IDE choose the external browser by looking if you run KDE, Gnome, by 
reading the contents of the $BROWSER environment variable, and by trying some 
default executables otherwise.

I added a JavaScript treeview in the help, so that we have about the same 
features as the old help. This treeview was made from the one developed by 
Tobias Bender for http://www.phpxplorer.org.

Searching inside the help has not been implemented yet.

===========

(3) Updated GTK+ and SDL component.

The SDL event loop was temporarily fixed, so that Gambas timers can be used 
without blocking the SDL event loop. The SDL timers cannot be used at the 
moment, because as they are thread-based, they broke the interpreter each 
time they raised an event.

The GTK+ got many changes too. The "garbage in image" problem has been fixed, 
some properties has been implemented, many little details were fixed.

For more details, ask Laurent Carlier or Daniel Campos! :-)

Here is the main changelog:

-------------------------------------------------------------------------------

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.

-------------------------------------------------------------------------------

Regards,

-- 
Benoit Minisini





More information about the User mailing list