EZGUI 5.0
Many are likely wondering about the next generation of my flagship product EZGUI. Such questions as “when will it be released”, “what new features will it have”, etc. are on some peoples mind.
First, let me say that my goal is to release EZGUI 5.0 some time within the first quarter of 2011, more likely the latter part of it.
EZGUI 5.0 is already in use by some customers via the PreRelease program right now and the reports are good. So what is a PreRelease program ? Rather than have a beta testing program, where users can only “play” with a product, instead of actually use it in real world development, the Computer Workshop provides a small subset of its customers the opportunity to purchase an upgrade to the new version in PreRelease form. They get the next version now, can distribute apps they write with it now and then when the official release version is ready they get a copy of that as well. The PreRelease version is version 4.5 and the official release version will be 5.0.
So how does this work and aren’t users worried about bugs ?
First of all, I don’t use customers for debugging my software. Any who have participated in the PreRelease program before will likely comment about how stable all PreRelease versions are. I do extensive testing inhouse and only want PreRelease users to have access to new features, rather than be debuggers. Sure, they may catch a bug I may miss, but that is not the intent of the PreRelease program. The PreRelease cycle is where many new features are added. I do use this development cycle for getting feedback from customers on what new features they require, since you really can’t appreciate your needs unless you are writing real software. A lot has been developed during the PreRelease cycle.
So what is new ?
One of my favorite features is the new superclassing engine. EZGUI 5.0 will allow you to build new control classes based on existing controls. The new class will inherit all the features of the base class, including automatic recognition by EZGUI commands of the new class. You see, EZGUI commands usually test the window class name to make sure you are using them with the correct control type, so the new superclassed controls will be recognized as if they were the base class. Now superclassing is not too difficult using the Windows API, but EZGUI 5.0 goes much further. It provides a support command set just for building superclassed controls. For example, you can add instance based data storage, both Longs and Strings using new commands.
The first real test of the new superclass engine, was for me to build a new class myself. I chose to build the new GLCanvas control using the new Superclass engine. The GLCanvas control is an OpenGL based control which can animate scenes using 3D objects. What is really exciting about this new control is that it is a hybrid control, which supports all the stuff the normal Canvas control does, plus adds to it 3D animation via a new 3D GL Definition language.
EZGUI 5.0 will also be pushing the limits with 2D graphics as well, with new commands to rotate, scale, alphablend and transparentBlt Bitmaps. There is a new Effects engines for the Canvas control where you can draw on top of the Canvas and then have what is drawn, anti-aliased and alphablended to the Canvas. There is also a new Image Filter engine which comes with over 20 image filters.
There are also two new engines for building your own custom controls so you can reuse code and not keep “reinventing the wheel” so to speak. The Custom Control engine allows you to build controls based on five control classes which support OwnerDraw, the Listbox, Combobox, Label, Tab and Listview controls. You can build one set of code, which can be used by multiple instances of the custom control. You write once and then use over and over again. The nice thing about Custom Controls is the Visual Designer supports them, so you can compile them to a DLL for use in the Designer, but when you generate the code for your application the control will be added via source code.
There is a new Component engine, which uses Page Forms as if they were controls. You build a custom form with all the controls in them and then create a component from it. The component then can be used over and over again and you can even have multiple instances of it. EZGUI will treat the component as if it were a control.
Now one thing needed to make the Component engine more useful was the ability to refer to the form (in the components code) as simply “{ME}” rather than by its name. Components will have their form names autogenerated by EZGUI and in your code you simply refer to them as “{ME}”. To the components parent form, it will be viewed as a control with an ID like normal controls, so externally you will refer to a component using the syntax:
ParentForm$, ComponentID&
just like you do with controls. Now to make components more powerful (as well as normal forms) an AutoSize engine was added to EZGUI, so you can automatically resize the controls on a form using predefined rules. The AutoSize engine has gotten great reports from users of the PreRelease version and while simple to use, it is very powerful.
The Visual Designer is also going through many changes to make it easier to use and more powerful. It also supports the new controls which have been added. There is new support in both the runtime and the designer for Themes. You can even turn Themes on and off for individual controls.
There is a new Splitter control and you can even customize how it looks by custom drawing the control.
OwnerDraw has been improved so you can even draw Themed objects, so controls can have a Themed look.
Suffice it to say that EZGUI 5.0 will have many exciting new features which will differentiate it from other Design tools for use with PowerBasic.
Lastly, there will be a new emphasis on the product by redefining how it is marketed to customers. No longer will EZGUI be refered to as a Visual Designer for PowerBasic. Simply put, EZGUI 5.0 can be summed up with the words:
“EZGUI 5.0 is a GUI Engine, which comes with its own visual designer and code generator”
The emphasis is GUI ENGINE !
That where the power of EZGUI lies!