tWidgets are a general purpose multiplatform (win32/linux) class library aimed at x86 processor compatible  OS platforms. It has a set of multiplatform custom controls. This forms the core library on which this IDE is built and also the only library this IDE supports for RAD on Linux/Windows platforms.   

It is going to be one of the most dynamic class designs.  It is a very easy to learn and supports RAD. The most unique part of the design is the dynamic message/event handler, which permits runtime configuration for message / event handlers.

So that, tWindows can redirect their events to the parent windows, for event processing at run-time.



tWidgets,  controls for Wiz IDE.

Communication scheme employed by tWidgets on Win32 platform.


A general Win32 program design.


Communication Scheme employed in the tControls.

In addition to the traditional communication scheme employed in a windows controls, tWidget will include a direct communication through a set of pure virtual functions.

This makes the communication straight forward, fast, and most importantly it will allow greater access to the internal data of the controls. This permits modifying of the internal data structure through external algorithms, and a possibility of greater customization.      

Most importantly it will help in the case of the tree view and list view controls where frequent access to the various nodes required.

The tWidget control classes will have interfaces which will allow direct access to the internal data structure of the control. 






The Classes should be strictly object oriented. The class should use a combination of small and capital letters. 

Ex: tWindow

The public methods should 'not' start with a under score ( _ ).

The private methods and members of a class can use under score ( _ ) so that it indicates a private member. Local variables inside a function / method can use double under score ( __ ) to distinguish it from other members of the class. The double underscore indicate these are temporary variables.

All the global variables should start with a ' g_ ' prefix to indicate these are global. Ex: g_hInst [Global Instance]  

All the class member should start with a 'c_' prefix to indicate these are form class. Ex: c_hWind [window handle] 

Functions and class declarations should not use the GNU style of brace matching

ie It should NOT be like this




I prefer the general way of matching

void tThread::StartThread()



The general idea is to have a clearly understandable class structure.

I also like the documentation to be above the class declaration, so that the IDE will automatically fetch help text for the coder. This will eventually obviate the need for expensive documentation and it can easily be updated as and when with modifications and by updates to new version of the library.

Also I will device a scheme by which a link can be placed inside the documentation to the other files, there by it can be more dynamic. IDE will generate the help files form the header-files & some additional documentation files.