2018-01-23 - version 0.7.0 [+] Added feature: Window method to set and read visible buttons in title bar [+] Added feature: Window manual resizing and moving can be disabled [*] Fix TableView scrollbars: both scrollbars did not response mouse clicks if the last row or column were visible [*] Fix crash after clicking the first TableView column that shows row numbers [*] Made function to get internal composer public for low level access to function that manipulates Windows. Function name is WindowManager 2018-01-13 - version 0.6.4 [*] Add a workaround for 'false' key presses fired after clicking mouse on OSX 2018-01-02 - version 0.6.3 [+] Add a new boolean property for EditField - PasswordMode. If PasswordMode is true then the editfield text is hidden with 'stars'. Please see demo demos/editfield for details [+] Change a theme for object 'Edit' - added non-obligatory forth character that is used as replacement for any character inside EditField when Password mode is on. By default it is '*' in all included themes. Old themes that miss forth character use '*' as well. 2017-12-01 - version 0.6.2 [*] Fix selecting the next control with TAB key 2017-11-28 - version 0.6.2 [*] Fix races (that racy tool shows). The work is not completed but all demos and termfb2 application works without warnings 2017-09-07 - version 0.6.2 [*] Setting the first button of confirmation dialog as default one did not work [*] TableView does not use 'go' to fire events that allows to create on the fly any required dialog. That is useful, e.g., to create a simple confirmation dialog to a user to approve a row deletion 2017-07-04 - Version 0.6.1 [*] Fix selection Window with mouse: clicking non-active Window makes the Window active (unless the top Window is modal one) [*] TableView does not fire OnSelectionChange event if a user clicked outside the table. Before the fix a callback got selected index greater than the total number of rows and might crash a callback [+] Add a new feature to Windows: to keep all changes the Windows can be hidden instead of destroying when a user clicks window close button. It can be done with overriding OnClose and returning 'true' if Windows must be kept. To remove the Window from screen use SetVisible(false) [*] Window OnClose callback event now must return boolean. See change above [*] Fix typo: TableView did not send TableDelete event if the selected Row was Row number 1 2017-06-30 - Version 0.6.0 [+] Added new control TextReader - a virtual text view control with built-in support of some hots keys to list the text [+] Added a new global event to close active view [+] Added a hotkey F4 to sort TableView by current column [+] Added onKeyDown for Window 2016-10-13 - Version 0.5.0 [+] Added mouse move and mouse button release support: Now all windows can be dragged and resized with mouse [+] Added constants for dragging events - new type DragType [+] Added new type of Event MouseClick: it is generated if a user does mouse button down and mouse release at the same coordinates. In this case a control recieves 3 events: mouse down, mouse release, and mouse click [+] Main loop moved to separate source file [+] Added test for color parsing functions [*] Logger moved to separate source file and it is global object now [*] Windows do not have their own interface - all objects are derived from the same interface [*] Library initialization is made simpler: only one call is required, there is no need to create composer, theme manager etc manually - everything is created inside library initialization [*] Because composer, theme manager and some other objects are hidden now then a set of methods are just global library functions: - Event processing functions like Stop(), PutEvent() etc - Theme manager related functions like SysColor(), SysObject() etc [*] All functions to create new objects New* are renamed to Create* functions. Exclusion: CreateWindow is for internal use only: it creates a window but it does not do anything else, so the window is not displayed and a user cannot interact with it. Use AddWindow function instead of CreateWindow. [*] All text output is colorized by default. Multicolor property is removed. If you want to draw text as is then use DrawRaw* functions. [*] Now all drawing function uses the current canvas colors, so all color function arguments of all drawing functions are removed. Use global functions SetTextColor and SetBackColor to change colors before drawing. PopAttributes and PushAttributes may come handy to save/restore canvas attributes between drawing calls [*] Renamed a few constants to get rid of negative constructions: DoNotScale -> Fixed DoNotChange -> KeepValue [-] The first argument view of all Create* functions is removed as obsolete. Now library does not require to set parent Window. It is sufficient to set only control's parent