GUI System

GUI primitive objects have been completed. these objects are “Panel”, “Button”, “Checkbox”, “Trackbar”, “Progress – linear and circular”, “Label”, “Text editor”, and “Extended panel”. all these objects inherit from a base “Control” class. we can easily attach controls to each other, bind them to their parents, clip them by parents, send them to the 3D scene space, and combine them to create more complex objects for instance “List box”, “Combo box”, “Grid box” etc …

Working with this new GUI system is more easy than the last version. the parents control the behavior of their children, switching between 2D and 3D space became easier, etc. The other features of these controls are similar to the last version of Segan GUI except for the “Text editor”.

The “Text edit” control supports multiline editing, and selection by mouse and keyboard, specifies special languages for each text editor, and currently supports Persian language, ready to implement 24 languages (16 left to right and 8 right to left language). use the internal input system to control the mouse and keyboard instead of Windows messages and simulate shift+alt to change the input language. fit characters to pixels to avoid jagged text and represent clear-readable text.

Text Editor fits characters to the pixels to display clear text

I plan to use these GUI controls as high-level GUI in The Plankton ( SeganX Editor ). So the Editor will represent an integrated workspace to create/modify levels of the game.