which is based on COM-Wrapper-Classes around SQLite and cairo, fully unicode-aware -
though currently only for the Win-platform, therefore my posting here in this SubForum...
Some questions you might have:
1) Is it OpenSource - and does it work on Linux?
- Not yet, but it is planned to open it up under LGPL, when the Linux-version is ready -
the ADO-like Desktop-DB-support is already based on SQLite - and the graphics-framework
relies on the cairo-lib, so there's no ADO/JET, no GDI+, no CommonControls-dependencies
to consider - or port. Currently the Windows-version is "free as in free-beer"...
- It consists of 3 Dlls, is self-contained and (compared to QT or GTK+) relatively small (Zipped about 2.5MB).
And as said, the "heavy-weight" dependencies (graphics and desktop-db) are already covered by OpenSource-libs -
these are contained in a stdcall companion-dll:
- vb_cairo_sqlite.dll ... (and the other two are):
- vbRichClient5.dll (the COM-Dll which contains the Wrapper-Classes)
- DirectCOM.dll (a small companion, which is used for regfree instantiation and threading)
- It will work from XP onwards to Win10 - and no, a setup is not needed for development and deployment with FB.
Further below I'll post a Link to a zipped-Tutorial, which shows how the Framework can be tested and used
in a regfree manner (by simply placing - and "shipping" the 3 Dlls in a \Bin\ Subfolder of your FB-App)
- "The bridge" (the main-workhorse) is SimpleVariant.bi: http://www.freebasic.net/forum/viewtopi ... 88#p221188
which is used as the "level-0-layer" below small FB-Wrapper-ClassTypes (at "level-1"), which are defined in RC5_FBObjects.bi.
These FB-ClassType-wrappers are currently made of quite straight "one-liners" for each method-call, using
the LateBound-Call-support from SimpleVariant.bi ... in case there's enough interest, one could "elevate" these
LateBound FB-Class-Wrappers to a direct VTable-Binding - but currently I try to keep things simple and transparent
(so there's no TypeLibs to consider, understand or import...)
- Ok, where's the beef? ;-)
- It's small(er) than most other GUI-frameworks
- The API-interfaces are quite well-thought-out and easy to use, I think...
- It allows an easy way, to define and implement your own Widgets
- It supports full (nested) Alpha-Layering throughout a given Widget-Hierarchy
- It supports full Parent/Child relationships (any Widget can contain any other Widget, with Clipping)
- Graphics-stuff is not the only thing it contains - there's also:
-- DataBinding-stuff
-- XML/JSON-support
-- FileSystem- and -Stream support (+ a DirList-Class, FileSystem-Watcher and the System-FileDialogues)
-- powerful Container-Classes (Sorting-Dictionary, Sorting-Collection, ArrayList, StringBuilder)
-- an easy to fire-up InProcess-Webserver
-- Crypto- and CoDec-Classes etc...
examples (when you care to look at them) will shed some more light on it, in a more practical manner...
Here's the link to a Demo-Zip, which is "self-contained" (it comes with the 3 RC5-Baselibs already -
in the above mentioned \Bin\ Subfolder):
http://vbRichClient.com/Downloads/RC5_FBObjects.zip (about 2.7MB)
http://vbRichClient.com/Downloads/RC5_FBObjects.7z (same content, 1.9MB)
If you have the Path-Variable defined to an FB-1.05 Win32-Compiler, you should be able to
compile (and later run) the 3 examples directly from the (unpacked) App-Folder:
- 1_Regfree_COM_and_LateBound_Events.bas
- 2_SQLite_and_CairoDrawing.bas
- 3_Forms_and_userdefined_Widgets.bas
by using the _compile_all.bat...
Here's a ScreenShot of the 3rd Demo, which shows a few simple (userdefined) Widgets and their nested Alpha-Rendering
(the smaller, second Form is started from the same Class-Def, but shown as a Modal-Form to the larger Parent-Window):
Here's a Link to *.chm-Files (for those who are interested, what Classses the RC5 contains,
since RC5_FBObjects.bi only covers a subset of the Classes and their Methods, basically only,
what was needed for the Demos to work): http://vbRichClient.com/Downloads/RC5_ChmHelp.zip
Please let me know, when something is not clear, or doesn't work... and also if that's something
"to expand on" with regards to FB...
Olaf