LSWVST Orthogonality ( LSWVST-OGY ) is LSWVST's GUI Framework.
In contrast to other Smalltalk GUI frameworks it is neither MVC nor MVP based.
LSWVST-OGY implements a full Unicode/ANSI Binding to the underlying OS ( Windows XP & Windows Vista ) - Linux is in Preparation. LSWVST-OGY allows to morph window components at runtime.
LSWVST-OGY is designed to be very fast. It is broken down in a number of over 1300 Packages.
LSWVST-OGY was wriiten using NT, W2K, Windows XP and is now mainly written under Windows-Vista. It uses detection of all Common-Control DLL Versions and all RichEdit Variants. Encoding can be switched dynamically between ANSI and Unicode.
The reason for developing a new GUI framework was that all implementations violate the immediate change paradigmn of Smalltalk. In short - you have to close a window and create it new if you make changes to the layout or add a new subwindow. This restriction is introduced by Smalltalk's GUI-Builders and by the way how window-messages are handled in Smalltalk.
In general all windows-messages trigger events to allow adding of behavior to existing window-components. Events are defined in the Object's eventTable which is not an instance variable but an entry in a Global event-Dictionary. If a window is created, then the events are connected to the code by
when: anEventSymbol perform: code
The statement above enteres the code in the eventTable at the eventSymbol. This scheme makes it very difficult to remove an object and add a new one.
In LSWVST-OGY window-messages are coded in a Visitor-Class. Basically LSWVST-OGY defines for every window-message a Visitor. If a new application-Window is defined and you want to overwrite the default behavior you have to add a visit-Method to the associated Visitor-Class. The Package-Prowser supports these operation and the visit-Method is added as a loose Method to your working package.
There is no GUI-Builder in LSWVST-OGY if you want to prototype a GUI then you should use LSW-Prototypes.
LSWVST-OGY is purely based on ordinargy message-sends and doesn't employ events.
LSWVST-OGY uses native-Widgets, is super-fast and handles *All* Windows-Messages. It doesn't introduce any redundancy from the underlying API's and doesn't delay Code-Execution - Our VM supports debugging of recursive-Callbacks.
LSWVST-OGY was used to create the new GUI of LSW DotNet-Lab Release which is not published yet and the GUI of our LSWVST Smalltalk-Development Environment.
Please expect screenshots soon.