Calling all programming language developers ! Looking for a GUI Framework ?
- Are you an indie programming language developer ?
- Are you trying to build the next Visual Basic replacement ?
- Are you finding it a challenge to design not only the GUI framework for your language, but also trying to figure out how to build a Visual Designer for your programming language ?
- Are you tired of the Open Source solutions for a GUI framework ?
Then consider contacting me about a possible collaberation using a version of my EZGUI framework as a backend for the language.
What is EZGUI ?
EZGUI currently is a GUI framework I designed for use with the Powerbasic programming language, which comes with its own visual designer. But EZGUI could be used as the basis for an entirely new programming language. It is designed for Windows (from 98 to Windows 10) and only uses the core WIN32 API. No dot.net.
EZGUI’s GUI framework has one primary standard Windows DLL which handles most of the features. There are a few secondary DLL’s which the primary DLL can load dynamically when a few extra features are required. The framework is probably one of the smallest (in size) you can find for Windows and is perfect for even portable apps (just copy and run). The entire framework is about 1 megabyte in size (can fit on a floppy disk). The following DLL’s are in the framework:
- EZGUI50.DLL – 700 KB in size (core runtime)
- EZGUI5GL.DLL – 225 KB in size (OpenGL Canvas Control)
- EZGUI5ME.DLL – 25 KB in size (Masked Edit Control)
- EZGUI5MM.DLL – 35 KB in size (MCI Multimedia Control)
- EZIMGLIB.DLL – 88 KB in size (customizable Image Library for system images)
- EZPATLIB.DLL – 22 KB in size (customizable background 3D color pattern library)
- EZGUI5BT.DLL – 43 KB in size (Btree Database Engine)
The EZGUI Framework is written in the PowerBasic 9 compiler and the DLLs are standard Windows DLLs which can be used in any programming language (one exception which I will note).
The EZGUI framework is quite unique and this makes it an excellent choice for use as a programming language GUI framework. It is a set of 32 bit DLL’s (in the future I may make a 64 bit version, but currently it is own 32 bit). The frameworks command set is a programming language in of itself, with a command set of nearly 1000 commands. All you need to add is the low level parts of a language, such as math, logic commands (ie. Select Case, IF), string commands, etc. All the GUI features can be handled by the EZGUI framework.
EZGUI makes implimenting GUI applications easy, because one problem is how do you impliment an event based syntax when Windows (WIN32) is message based ? EZGUI only requires three subroutines (procedures) for it to run, which are (you can change the names of course):
- EZ_Main (this where your app starts and the first Form must be created here)
- EZ_DesignWindow (when a form is created, this routine is called once at form creation where you can add controls)
- EZ_Events (all Events generated by the faremwork are sent to this one routine)
All one needs to do, is pass the framework an address pointer to these three routines when the framework starts up and the framework takes control of the app and handles all message processing. No message loop is required.
EZGUI defines Forms by a name (a string) and controls by an ID number.
EZGUI’s feature set is very rich and it comes with a number of built in custom controls such as:
- Canvas control (with drawing engine and a 2D Sprite engine)
- OpenGL Canvas control (all features of Canvas plus a 3D layer on top, supporting STL file format and 3D primitives)
- MCI Multimedia control
- Masked Edit control
- Shape/HotSpot/SplitterBar control (all one control)
- Turtle Graphics control
- Property Listbox control
- Files Listbox control
- Drag Handle control
The biggest benefit of the EZGUI framework is that it comes with its own Visual Designer Drag and Drop engine built in. This makes it easy to build a RAD based Form Editor front end to your programming language. One of the biggest challenges indie programming language developers have is in developing a Forms Editor. Not so with the EZGUI Framework.
You can download the Help file for EZGUI 5.0 Professional which may help you see the extent of the GUI framework command set.
You can see an overview of the feature set of the EZGUI framework as well.
One issue when using the EZGUI framework is how you define and pass variable length strings. EZGUI was written in PowerBasic 9.x and PowerBasic uses the Windows OLE API’s for allocating variable length string storage. This has many advantages in that OLE strings can have a binary zero embedded, while asciisZ strings can not. OLE strings do have a string descriptor as well. To use the EZGUI framework your programming language must use OLE for variable length string data types, rather than AsciiZ.
EZGUI is also 100% proprietary, meaning I didn’t use a single Open Source library for the framework. You won’t see other frameworks which use Open Source libraries copying EZGUI features because EZGUI is not based on Open Source. I personally wrote every single line of code (over 50,000 lines of code in entire framework) in EZGUI and I did not based any of it on freely available source code. I wrote all the custom controls and engines from scratch myself. As a longtime WIN32 programmer I wrote all the code myself. This explains why the framework is so small and lean, while very feature rich. The framework has well field tested, since I have been selling EZGUI as an addon for use with Powerbasic for a good 15 years now (it is in its 5th generation now with EZGUI 5.0 Professional) and many commercial applications have been written using this framework. The PowerBasic version software license though prohibits it from being used to build a programming language. Now I would like to expand its use and collaberate with a company or developer interested in building a programming language based on it.
EZGUI, while easy to use, is not Object Oriented, which is why it is so lean.
The most likely scenario for purchasing a license for EZGUI for a programming language backend would be a reasonable up-front payment and a reasonable royalty on each copy sold of the programming language.
For more information feel free to contact me (Chris Boss) at: