Window is the main control of the library - you cannot run a CLUI-based application without any Window. At the same time an application can have unlimited number of Windows at a time. Window has a lot in common with other controls yet it have a set of its own unique features.
To create a new Window, use function
AddWindow(positionX, positionY, minWidth, minHeight, title)
instead of CreateWindow
. All other controls must be create with CreateControlType functions. In fact, CreateWindow
function can be used but it only creates a new Window but does not do anything else. So, a Window created with CreateWindow
is not dispalyed on the screen and a user cannot manipulate it. AddWindow
does all the internal job: registers Windows, makes it visible and updates the screen to apply changes. Both minWidth and minHeight can be set to AutoSize
- in this case minimal width is 10 and heigth is 5.
- It is the only control that can be moved or resized manually(using mouse or keyboard). There is a set of predefined hotkeys to do common tasks witout mouse. All hotkeys are key sequences - you have to press the first combination, release it and then press the second key (all default hotkeys are easy to remember, I added info why the keys was used for the certain action):
- CtrlS "arrow key" - change active Window size in direction of pressed key. CtrlS - Ctrl+Size
- CtrlP "arrow key" - move active Window in the direction of pressed key. CtrlP - Ctrl+Position
- CtrlW CtrlM - maximize or restore active Window. CtrlW - Ctrl+Window, CtrlM - Ctrl+Maximize
- CtrlW CtrlH - move active Window to bottom of window stack and makes active the next window in the list. It does nothing if there is only one Window on the screen. CtrlW - Ctrl+Window, CtrlH - Ctrl+Hide
- Windows have borders that indicates its activity: currently active Window has double border, while all others have single border
- Every Window has 'icons' at the right to corner to manipulate Window with mouse. The available 'icons' (it is a default set - from left to right): move to background, maximize/restore, and close. Please note that closing the last Window terminates application
- Window grabs TAB key control to support moving to the next child using keyboard
- Though every control has property modal(
SetModal(bool)
- default isfalse
), the property works only forWindow
control. By default everyWindow
is independent and a user can activate any Window on the screen in any order. Sometimes you need to limit a user - to make the user does something before the application continues its job. In this case, you need to make aWindow
modal and display it. The user will not be able to do anything unless thisWindow
is dismissed. Example of modal windows are dialogs included into the standard library:ConfirmationDialog
andSelectDialog
.