2019-12-31 Markus Gans * The new SGRoptimizer class allows several consecutive parameters from the SGR (Select Graphic Rendition) attributes to be combined into one 2019-12-23 Markus Gans * Correction for height and width alignment in adjustSize() * Better setSize() implementation in some widgets 2019-12-20 Markus Gans * Fixed the drawing of FLabel widget with the default size of 1×1 character. Thanks to terranpro for reporting this issue 2019-12-16 Markus Gans * New widget class FComboBox to provide a dropdown list with an input field 2019-11-17 Markus Gans * Revision of FString number input stream 2019-11-16 Markus Gans * New Widget class FSpinBox to provide spin boxes 2019-11-06 Markus Gans * Improved display of the NewFont midline 2019-11-03 Markus Gans * Newfont specialization for 8x16 and 9x16 pixel character * Fixes the display of reverse characters on the 16 color Linux console 2019-10-28 Markus Gans * Unicode support for 8x16graph font 2019-10-20 Markus Gans * New method setInputType() in FLineEdit that allows to obscure password entries * FAcceleratorList reimplemented as non-pointer 2019-10-15 Markus Gans * Version 0.6.0 2019-10-13 Markus Gans * Compile fix for Cygwin and Linux on arm architectures * A small color palette optimization * Corrected east asian ambiguous character width for OpenBSD, NetBSD, FreeBSD and Solaris 2019-10-05 Markus Gans * Internal redesign of the callback call * Mapping of key functions in an associative container to simplify onKeyPress() in FListBox, FListView, FTextView and FScrollView 2019-10-01 Markus Gans * Replacing null-terminated wide strings with FString objects * Fix for getColumnWidth() with newfont character 2019-09-29 Markus Gans * Streaming into an FTextView() object * Fixes the streaming of empty FString objects into a stream with a width > 0 * The FString operator [] now returns a null character ('\0') if the position is equal to the string length 2019-09-28 Markus Gans * Support for displaying full-width characters (2 columns wide) on the terminal. This is particularly important for the correct display of CJK characters 2019-09-16 Markus Gans * Improve FStartOptions implementation 2019-09-08 Markus Gans * Remove the lines of the #pragma pack() directive from the code because they caused a misaligned address 2019-09-06 Markus Gans * Outsourcing the initialization data to a separate struct 2019-09-04 Markus Gans * The Cygwin and Linux console do not use cp437 character encoding by default anymore 2019-09-01 Markus Gans * Removing public + protected data members from classes 2019-08-25 Markus Gans * More use of direct initializations 2019-08-18 Markus Gans * Solved problem detecting terminal size on quick changes * Update VTerm information only in case of changes * Fixes print() << FPoint() behavior in FScrollView 2019-08-11 Markus Gans * FRect has now got a scaleBy() method * Convert drawBorder() to a non-member function using FRect * Converts getHotkeyPos() for sharing into a non-member function 2019-08-10 Markus Gans * Pitch and duration of system speaker can now be changed on OpenBSD 2019-08-07 Markus Gans * Fixes the Cygwin build 2019-08-04 Markus Gans * Reduce the number of interface parameters 2019-07-31 Markus Gans * Unit test for the move assignment operator and move constructor in FPoint, FSize and FRect 2019-07-28 Markus Gans * FreeBSD can now change the frequency and duration of the pc speaker signal * Added a unit test for the FTermFreeBSD class to test the FreeBSD console 2019-07-21 Markus Gans * Reduce include entries in the header files 2019-07-14 Markus Gans * Reduces the use of raw loops * Add a unit test for FTermOpenBSD to test the OpenBSD and NetBSD console 2019-06-30 Markus Gans * Expanding the unit test for FTermLinux * Update the cp437 unicode map * Reducing the special cases for Solaris 2019-06-19 Markus Gans * Add a unit test for FTermLinux with a Linux console emulation and a dedicated FSystem test instance 2019-06-12 Markus Gans * Fixes problem with scroll bar view after first draw 2019-06-02 Markus Gans * Avoid drawing the scroll bars if the widget is non-visible 2019-05-27 Markus Gans * Use the Singleton design pattern to get a single object instance via FTerm 2019-05-26 Marek Habersack * Fix a segfault when processing input to empty FListView 2019-05-17 Markus Gans * Move system calls to the new class FSystem 2019-04-27 Markus Gans * Add the reserve() method to FListBox to increase the capacity of the list * Use shrink_to_fit() to save memory space 2019-03-24 Markus Gans * Add a "scroll view" chapter to the first steps document 2019-02-28 Markus Gans * Add an lambda expression callback example to the first steps document 2019-02-24 Markus Gans * FLineEdit now has the ability to define a character input filter via regular expression (regex) * Now FLineEdit can define a maximum character length for the input * The cursor position can now be set directly in FLineEdit * Added the 7-segment example to demonstrate the use of FTermBuffer and FLineEdit input filters 2019-02-07 Markus Gans * Add a "dynamic layout" chapter into the first steps document 2019-01-30 Markus Gans * Printing an FColorPair object can change the foreground and background color 2019-01-27 Markus Gans * The print command can now have an FPoint object as a parameter to set the cursor position * Refactoring of the FProgressbar drawing methods 2019-01-24 Markus Gans * Refactoring of some methods in FVTerm and FDialog 2019-01-21 Markus Gans * More accurate interfaces through the strict use of FPoint() and FSize() 2019-01-16 Markus Gans * New class FSize for storing dimensions 2019-01-12 Markus Gans * Refactoring FFileDialog::fileOpenChooser * Refactoring FFileDialog::fileSaveChooser * Refactoring FListBox::init() * Refactoring FListView::init() * Refactoring FTextView::init() * Refactoring FTermXTerminal::resetXTermForeground() * Refactoring FTermXTerminal::resetXTermBackground() * Refactoring FTermXTerminal::resetXTermCursorColor() * Refactoring FTermXTerminal::resetXTermMouseForeground() * Refactoring FTermXTerminal::resetXTermMouseBackground() * Refactoring FTermXTerminal::resetXTermHighlightBackground() 2019-01-11 Markus Gans * Generalize hide() method 2019-01-09 Markus Gans * Improvement in widget focusing * Better widget visibility handling with the methods hide() and show() 2019-01-05 Markus Gans * Use of initializer_list for FListBox, FListView and FTextView 2019-01-04 Markus Gans * Use the final specifier 2019-01-03 Markus Gans * Improved PC encoding for Cygwin and Linux * Integration of an output filter to replace missing characters * Better Linux console support for UTF-8 encoding (Default is PC charset encoding) * Better background color for all terminals with a fixed color palette 2018-12-31 Markus Gans * Use the override specifier 2018-12-30 Markus Gans * Cygwin compiled fix for C++11 2018-12-29 Markus Gans * Text scrolling in FTextView was broken since February 17th! * Replace redundant FString code with templates 2018-12-28 Markus Gans * Add the assignment operator (=) for FButton to set the button text * Corrected shortening of overlong texts in the title bar of FDialog * Add a "signals and callbacks" chapter into the first steps document 2018-12-25 Markus Gans * Add a "event processing" chapter into the first steps document 2018-12-24 Markus Gans * Events can not only be sent to FWidgets, but also to FObjects * New event FUserEvent for user-defined events 2018-12-19 Markus Gans * Use of smart pointers * Add a "memory management" chapter into the first steps document 2018-12-17 Markus Gans * Improve FButton mouse click animation * Minor data type corrections * Reactivate the event queue 2018-12-15 Markus Gans * Use of the C++11 auto specifier in the program code * Code reduction by using of range-based for loop * The example program for video attributes now replaces the switch statement with a vector of lambda expressions 2018-12-09 Markus Gans * Better handling of the scroll bar maximum * Deactivate copy constructor and assignment operator with "= delete" * Use nullptr instead of 0 to initialize a pointer values 2018-12-06 Markus Gans * Easier handling of fc::SpecialCharacter 2018-12-01 Markus Gans * Switched to the language standard C++11 * Use delegated constructors and in-class default member initializers 2018-12-01 Markus Gans * Improved gpm wheel mouse support * Fix compile in optimization level 2 for newer gcc 2018-11-27 Markus Gans * Correct vertical scroll bar position after sorting in FListView 2018-11-25 Markus Gans * Version 0.5.0 * Namespace fix in FTermFreeBSD and FTermOpenBSD * Fix compiler warning on non-x86 architectures 2018-11-24 Markus Gans * Improved Sun Microsystems workstation console quirks * Handling environment variables with numbers in FTerm * Memory management fix in example program transparent 2018-11-21 Markus Gans * New type FKey for key inputs * The integer type of FPoint and FRect changed from short to int 2018-11-18 Markus Gans * The FListViewItem class now provides checkable list view items * Adding the checklist example to demonstrate the checkable FListViewItems * A checkable FListViewItem now shows the input cursor 2018-11-12 Markus Gans * Clicking on the column header in FListView now changes the sort order 2018-11-10 Markus Gans * FListView now has a sort indicator to display the sort order 2018-11-07 Markus Gans * Use new type FColor for color values 2018-11-05 Markus Gans * FButton now uses the widget flags directly 2018-11-04 Markus Gans * Widget flags are now stored in a bit field 2018-11-03 Markus Gans * New method rgb2ColorIndex() to converts a 24-bit RGB color to a 256-color compatible approximation 2018-11-01 Markus Gans * Moved FTerm debug access methods to FTermDebugData 2018-10-29 Markus Gans * FTerm is now a data member of FVTerm * Fix FListBox prevListItem() * Setting the value can_change_color_palette in FTermcapQuirks 2018-10-26 Markus Gans * Building Fix for a negative value check (gcc < 4.8) * Adding the capacity() method to the FString class 2018-10-21 Markus Gans * Moving static attributes from FApplication to FWidget 2018-10-17 Markus Gans * Changed more variables from int to std::size_t 2018-10-14 Markus Gans * A width or height can not be negative. For that reason the change from int to std::size_t * FString fix for 32-bit architectures 2018-10-13 Markus Gans * Avoid using dynamic_cast so that you can compile Final Cut without Run-Time Type Information (RTTI). Thanks to user1095108 for reporting that. 2018-10-11 Markus Gans * FKeyboard now uses references for keyboard buffer passing 2018-10-09 Markus Gans * Terminal detection for newer vte libraries (>= 0.53.0) 2018-10-08 Markus Gans * Move all termcap code into FTermcap * Some small code splits 2018-10-05 Markus Gans * Remove redundant program code from FString 2018-10-03 Markus Gans * At the end of the lifetime of an FMenuItem object, delete its entry from the object list of the parent object * Reduce the use of the new operators in the examples * Adding a unit test for the FTermData class 2018-10-01 Markus Gans * Extract FTerm data members into the data class FTermData 2018-09-28 Markus Gans * FListView now has the ability to sort by columns 2018-09-27 Markus Gans * Move time event processing from FApplication to FObject 2018-09-26 Markus Gans * The FListViewItem class now has a getData() and a setData() method similar to the FListBoxItem class. 2018-09-24 Markus Gans * Stricter use of the keyword virtual * Add a first steps document 2018-09-20 Markus Gans * Added pkg-config file finalcut.pc * The entire library source code is now encapsulated under the namespace finalcut. All examples and tests have been modified to fit the namespace. 2018-09-16 Markus Gans * Implement a ttytype test for the FTermDetection unit test 2018-09-14 Markus Gans * Added unit test for FTermDetection with a terminal simulation for common terminals * Some minor terminal detection bug fixes 2018-09-12 Markus Gans * Removes the deprecated keyword "register" from the source code 2018-09-02 Markus Gans * Fix mouse wheel behavior over horizontal scroll bars in FTextView * Some small code improvements 2018-09-01 Markus Gans * Compiles now with newer gcc 2018-08-31 Markus Gans * Fixed a problem for a non-debug compilation 2018-08-08 Markus Gans * Added unit test for FTermcapQuirks 2018-07-29 Markus Gans * Added numeric Keypad [/], [*], [-], [+] support * Handling of keys that are substrings of other keys * More tests in FKeyboard unit test 2018-07-27 Markus Gans * The array for keyboard input of UTF-8 characters was not long enough for 4 bytes of UTF-8 codes. * More tests in FKeyboard unit test 2018-07-22 Markus Gans * Added unit test for FKeyboard 2018-07-15 Markus Gans * Keyboard functions are now in a separate class * Fix Parameter passing in term::init_OptiAttr 2018-07-08 Markus Gans * Extension of the unit test of FOptiMove 2018-07-01 Markus Gans * All in FOptiMove required termcap values can now be passed with a single struct 2018-06-25 Markus Gans * All termcap values required in FOptiAttr can now be passed with a single struct 2018-06-17 Markus Gans * Added special console options for FreeBSD, NetBSD and OpenBSD 2018-06-12 Markus Gans * Linux functions from FTerm moved into the FTermLinux class 2018-05-27 Markus Gans * Move FreeBSD, NetBSD and OpenBSD functions to separate classes 2018-05-20 Markus Gans * Methods outsourcing from FTerm to FTermXTerminal 2018-05-06 Markus Gans * Some protected data members in FTerm moved to private 2018-05-03 Markus Gans * Fix resetColorMap in FTerm 2018-05-02 Markus Gans * Outsourcing of data from FTerm to the classes FTermios, FTermDetection and FTermcapQuirks 2018-04-19 Markus Gans * Placing the terminal types in FTerm in a separate structure 2018-04-15 Markus Gans * Fake-reverse bugfix in FOptiAttr * Strict use of fc::colornames in FOptiAttr * Stream support for FPoint and FRect 2018-04-11 Markus Gans * Remove Cygwin bold color quirks fix in FOptiAttr * Added unit test for FOptiAttr 2018-04-08 Markus Gans * Improved Linux terminal quirks * Improvement in class FOptiAttr 2018-04-02 Markus Gans * Improved cygwin terminal quirks * Optimized character set switching in FOptiAttr 2018-03-30 Markus Gans * Added unit test for FOptiMove 2018-03-28 Markus Gans * Add boundary check to FOptiMove 2018-03-25 Markus Gans * Added unit test for the mouse classes * Fixed small parsing errors with mouse events 2018-03-17 Markus Gans * Added unit test for FObject * Some minor bug fixes in FObject 2018-03-13 Markus Gans * Added unit test for FRect 2018-03-11 Markus Gans * Added unit test for FPoint 2018-03-10 Markus Gans * Unit tests for the FString class completed * Minor bug fixes in FString 2018-02-25 Markus Gans * First CppUnit tests implemented 2018-02-22 Markus Gans * Generalize mouse event passing in FMenuItem 2018-02-19 Markus Gans * Refactoring FTerm::init_termcaps * Refactoring FTerm::init_encoding 2018-02-18 Markus Gans * Avoid scroll bar overshooting * Refactoring FListView::onMouseMove * Refactoring FDialog::initDialogMenu 2018-02-17 Markus Gans * Generalize scroll functions in FTextView * Refactoring FButtonGroup::drawLabel * Refactoring FToggleButton::drawLabel 2018-02-11 Markus Gans * Refactoring FWidget::focusNextChild and FWidget::focusPrevChild * Refactoring FListView::onWheel * Refactoring FListView::drawColumnLabels * Refactoring FTerm::getSystemTermType * Rename getTermName() to getTermFileName() 2018-02-10 Markus Gans * Refactoring FOptiMove::verticalMove and FOptiMove::horizontalMove * Refactoring FVTerm::getCharacter * Refactoring FWidget::drawBorder 2018-02-02 Markus Gans * Avoids flickering when redrawing a focused widget 2018-01-31 Markus Gans * Refactoring FSwitch::drawCheckButton * Refactoring FWidget::redraw * Refactoring FMessageBox::init * Refactoring FFileDialog::init 2018-01-30 Markus Gans * Refactoring FLabel::draw * Refactoring FFileDialog::readDir 2018-01-28 Markus Gans * Refactoring FApplication::processKeyboardEvent * Shorter methods and a fix for recreating new windows in the window example 2018-01-25 Markus Gans * UTF-8 fix for Solaris 2018-01-24 Markus Gans * Fixes compiler errors for latest Cygwin versions * Widget color scheme settings moved to a separate class * The color palette redefinition now has its own class 2018-01-21 Markus Gans * The Final Cut can now also be compiled under Cygwin * Fixed bug in FScrollView::scrollTo * Refactoring FStatusBar::drawKeys * Refactoring FListView::drawListLine 2018-01-17 Markus Gans * Small array optimizations in the examples 2018-01-14 Markus Gans * Mouse functions are now in a separate class 2018-01-05 Markus Gans * Refactoring FVTerm::restoreVTerm * Fixed buffer size in FOptiMove 2018-01-03 Markus Gans * Refactoring FOptiMove::relativeMove * Refactoring attribute settings in FOptiAttr * Refactoring FTerm::parseKeyString and timeout settings 2018-01-02 Markus Gans * Refactoring of secondary device attributes parsing * Small menu improvements 2017-12-31 Markus Gans * Refactoring of the FListBox mouse event handler * Refactoring of the FMenuBar mouse event handler * Replace the switch-case in the calculator example by an STL map with method pointers 2017-12-29 Markus Gans * Refactoring of the FDialog mouse event handler 2017-12-27 Markus Gans * Generalize scroll functions in FScrollView * Refactoring FScrollbar::drawBar * Refactoring FLineEdit::onKeyPress * Refactoring FMenu::onKeyPress * Refactoring FDialog::onKeyPress * Refactoring FDialog::drawTitleBar * New FDialog methods moveUp(), moveDown(), moveLeft(), moveRight(), reduceHeight(), expandHeight(), reduceWidth(), and expandWidth() 2017-12-25 Markus Gans * Refactoring FButton::draw * Passing more strings by reference 2017-12-21 Markus Gans * Refactoring FMenuBar::drawItems * (de)allocation functions in FTerm 2017-12-19 Markus Gans * Refactoring FMenu::drawItems 2017-12-17 Markus Gans * The Final Cut now also compiles under Solaris 2017-12-14 Markus Gans * Add Sun Microsystems workstation console support 2017-12-10 Markus Gans * Refactoring of the FMenu mouse event handler 2017-12-08 Markus Gans * More individual arithmetic operations methods in the implementation of the calculator example 2017-12-05 Markus Gans * Refactoring FApplication::processMouseEvent * Refactoring FApplication::processKeyboardEvent 2017-12-02 Markus Gans * Refactoring FListBox::drawList and FListBox::onKeyPress * Refactoring FWidget::event 2017-12-02 Markus Gans * Refactoring FApplication::linuxModifierKeyCorrection and FVTerm::updateVTerm * Fix getLinuxModifierKey() subcode value as non-const 2017-11-30 Markus Gans * Refactoring FVTerm::updateTerminalLine 2017-11-26 Markus Gans * Better code readability by splitting FOptiMove::moveCursor into sub-functions * Improved alignment of the code by changing the indentation in Boolean expressions 2017-11-25 Markus Gans * Splitting quirks in serperate methods 2017-11-24 Markus Gans * Detects Linux console font with 512 characters and reduces the number of colors to 8 * Color palette defined for 8 colors 2017-11-23 Markus Gans * Remove duplicated code from FOptiAttr::changeAttribute 2017-11-22 Markus Gans * Remove duplicated code in FVTerm::print 2017-11-19 Markus Gans * Splitting the FString example into sub-functions to make the code more comprehensible 2017-11-18 Markus Gans * Improved command line paramenter handling * New command line paramenter --no-terminal-detection * New command line paramenter --no-color-change * Splitting init_termcaps() into multiple submethods 2017-11-11 Markus Gans * Improved code coverage tests 2017-11-08 Markus Gans * Simulate invisible characters on terminals that do not support this attribute 2017-11-04 Markus Gans * Version 0.4.0 * Change license from GPL v3 to LGPL v3 2017-11-03 Markus Gans * Small NewFont improvements * Fixed bug: The window example called a callback method after the child data was deleted 2017-11-02 Markus Gans * Move fonts into the root directory 2017-10-30 Markus Gans * Fix scrollview functionality with new inheritance structure * Add a standardized close confirmation dialog * Only can now be directly integrated in programs 2017-10-29 Markus Gans * Adaptation of the inheritance diagrams in the header files * Add a standardized cb_exitApp callback method to FApplication 2017-10-27 Markus Gans * FWidget now inherits directly from FObject 2017-10-23 Markus Gans * A FListView tree branch can now be expand and collapsed with a single click 2017-10-19 Markus Gans * Optimized Color palette (less saturated colors) 2017-10-18 Markus Gans * Expand or collapse a tree element with a double-click * FListView::adjustViewport() improved 2017-10-15 Markus Gans * FObject double free prevention of fc::empty_string 2017-10-14 Markus Gans * Fixed a bug in the FObject check of parent objects * Replace the deprecated readdir_r function (CVE-2013-4237) * First implementation of a tree view in the FListView class (alpha state) 2017-10-02 Markus Gans * DECSCUSR - Set Cursor Style support for VTE >= 0.40.0 and gnome-terminal >= 3.16 * Checks if the FScrollview viewport fits into the print area 2017-10-02 Markus Gans * SGR and URXVT mouse support for coordinates greater-than 255 columns or lines * Add copyright information to the source files 2017-09-21 Markus Gans * New data type FStringList introduced * Stream and assignment operator support for FLineEdit 2017-09-20 Markus Gans * FString has now got its own streaming functionality for inbound and outbound type conversion * Added stream and assignment operator support for FLabel 2017-09-19 Markus Gans * The command line help text is now available in all applications 2017-09-17 Markus Gans * FObject has received the iterator child access methods begin() and end() * All include files were moved to a separate directory * std::scanf used now fields with width limit 2017-09-15 Markus Gans * Fix byte access in data type char_data 2017-09-11 Markus Gans * Some code improvements * Fix handling of negative numbers in FString::toLong() 2017-09-09 Markus Gans * Wrong UTF-8 string length fixed when attaching to FString 2017-09-07 Markus Gans * Type definition exported into a separate header file 2017-09-03 Markus Gans * Fixes wrong maximum line width in FListView 2017-08-26 Markus Gans * Improve code readability through spaces between the operands and the operators 2017-08-24 Markus Gans * Rename fapp.{cpp,h} to fapplication.{cpp,h} 2017-08-20 Markus Gans * Screen characters got a union structure for a faster attribute compare operation 2017-08-11 Markus Gans * Some code changes for GCC 7 * Implementation of a copy constructor for FPoint and FRect 2017-08-06 Markus Gans * Fix GNU Screen support for vte/gnome-terminals * Advanced streaming functionality for FTermBuffer and FVTerm::print() 2017-07-31 Markus Gans * New methods to retrieve or modify FListViewItem text or a FListView column text for a specific column 2017-07-28 Markus Gans * Possibility for a FListView column to set the alignment (left, center or right) 2017-07-23 Markus Gans * Check an object with isInstanceOf(...) whether it is an instance of a specified class 2017-07-18 Markus Gans * New Widget class FListView (filled with FListViewItem) to allow a multi-column data view * Add the listview example to demonstrate FListView 2017-07-11 Markus Gans * New class FTermBuffer to buffer terminal outputs * Add the possibility to print from the terminal buffer 2017-07-03 Markus Gans * Use more static const variables where it makes sense 2017-06-26 Markus Gans * FString::rtrim() and FString::left() now return an FString object with the correct character length 2017-06-18 Markus Gans * Move the dragScroll enumeration into the fc namespace 2017-06-11 Markus Gans * New method FObject::isWidget() * Non-widget objects inherit from FObjects will no longer affect the widget lists 2017-06-05 Markus Gans * The focus and active flag is set centrally in FWidget 2017-05-20 Markus Gans * Recalculate the horizontal FListBox scroll bar size on lazy conversion 2017-05-19 Markus Gans * FListBox: Import of data from a container via "lazy conversion" during item print 2017-04-23 Markus Gans * Import of data from a standard container in FListBox is now possible * The new "listbox" example shows the handling with standard containers 2017-04-17 Markus Gans * Speed up FString::setNumber() by using a decimal string lookup table * FString allocates no new memory if the size is sufficient 2017-04-15 Markus Gans * Fix unsigned integer underflow in FString::_insert() 2017-04-14 Markus Gans * The Final Cut compiles also under OpenBSD * The alt key now always generates an esc prefix on an OpenBSD and a NetBSD console 2017-04-11 Markus Gans * Enable xterm "metaSendsEscape" switch 2017-04-09 Markus Gans * The Final Cut compiles now also under NetBSD * Rename preprocessor macro names with leading underscore 2017-04-08 Markus Gans * Looking in /etc/ttys for the type of terminal 2017-04-06 Markus Gans * Change cursor style on a FreeBSD console 2017-04-05 Markus Gans * Replace non-printable characters for Tera Term and Cygwin terminal directly at start-up. Special cases in the code are no longer necessary. * New method setInsertCursorStyle() to change the appearance of a cursor 2017-04-02 Markus Gans * Remap the meta key to left alt key at runtime on the FreeBSD console for the accelerator key access (Console switching is still possible with Ctrl-Alt-F1 through Ctrl-Alt-F8) * Avoid non-printable ASCII codes < 0x1c on a FreeBSD console 2017-03-30 Markus Gans * Fixed bug: termcap "me" does not reset the alternate character set 2017-03-28 Markus Gans * Improved graphic charset pairs (vt100) for FreeBSD console 2017-03-26 Markus Gans * The Final Cut compiles now under FreeBSD * A new test program to show the termcap variables 2017-03-19 Markus Gans * Add the "mouse" example to illustrate mouse programming 2017-03-17 Markus Gans * More constant character pointers 2017-03-13 Markus Gans * Corrects directly the input cursor position on window moving 2017-03-12 Markus Gans * The FButtonGroup now has a scrolling area with on-demand scroll bars * Add the "choice" example to demonstrate the FButtonGroup auto-adjusting with on-demand scroll bars * FRect can now combine two FRect objects * The FButtonGroup got the possibility of index access to a child button. * Fixed bug in FString copy constructor 2017-03-08 Markus Gans * Improve input cursor positioning in FScrollView 2017-02-24 Markus Gans * Corrected swapped top and left offset variables in the class FVTerm 2017-02-24 Markus Gans * FListBox gets the option to save a data pointer for every FListBoxItem element * Fixes incorrect return value of FString::toString() 2017-02-19 Markus Gans * New FWidget methods setMinimumWidth(), setMinimumHeight(), setMaximumWidth() and setMaximumHeight() * FButtonGroup now inherits from FScrollView. This supports many buttons to be displayed in a smaller frame. 2017-02-18 Markus Gans * Allows a window to have more than one FScrollView widget 2017-02-07 Markus Gans * Uses termcap capability U8 to identify terminals that can't display vt100 line-drawing in UTF-8 mode 2017-01-28 Markus Gans * Allow to change the focus out from FScrollView to another widget 2017-01-26 Markus Gans * FScrollView now scrolls automatically to the focused widget 2017-01-22 Markus Gans * A FScrollView object can now have client widgets on the scrolling area 2017-01-15 Markus Gans * Virtual window gets a preprocessing handler. This allows a preprocessing method to be called before the vterm is updated. 2017-01-07 Markus Gans * Add scrollTo and scrollBy methods to FScrollView 2017-01-03 Markus Gans * FScrollView now has on-demand scroll bars * Arrow keys support for FScrollView viewport scrolling 2017-01-02 Markus Gans * The new FScrollView widget provides a scrollable viewport to change the area of interest * The scrollview example illustrates the use of FScrollView class 2016-12-28 Markus Gans * Reduce public methods in FVTerm 2016-12-27 Markus Gans * Avoid non-working tab-cursor-movements on Linux terminals with activated PC or VT100 encoding 2016-12-26 Markus Gans * Add the ability to stream text into a widget's virtual window with print() << '#' << 5; or *this << ... 2016-12-22 Markus Gans * VTerm marks printed characters for a correct determination of unchanged characters * Correct gpm detection in configure script 2016-12-18 Markus Gans * Only perform VTerm updates on terminal updates * Skipping the print of characters without changes * Combined scrollAreaForward and scrollAreaReverse with terminal scroll sequences 2016-12-15 Markus Gans * Reduce the character output by using character erase and character repeat 2016-12-11 Markus Gans * Accelerates text line drawing by clear with CSI sequences to begin or to end of the current line. 2016-11-29 Markus Gans * Restore the xterm window title and font only if it could be read before 2016-11-27 Markus Gans * Some minor bug fixes * Version 0.3.0 2016-11-26 Markus Gans * Improvements for ansi terminal emulators * Add the opti-move test program * Optimized the terminal clear screen 2016-11-20 Markus Gans * Increase speed on cygwin terminals * Improve tty settings 2016-11-13 Markus Gans * Do not draw shadows on a Linux console if not all characters are available 2016-11-12 Markus Gans * Better support for Linux terminals with 8 colors * Optimized input cursor positioning for terminals without hidden cursor * Switch locale name from "en_US" to "C" * Fix FString toLong() 2016-11-06 Markus Gans * The adjustment of xterm default colors now is configurable 2016-11-05 Markus Gans * Determine xterm maximum number of colors via OSC 4 * The method clearArea can now fill the background with certain character 2016-11-03 Markus Gans * xterm should be able to use at least 16 colors 2016-11-01 Markus Gans * The class declaration now has a consistent order 2016-10-17 Markus Gans * Refactor the VGA attribute controller access code 2016-10-15 Markus Gans * Each virtual window gets its own virtual print cursor 2016-10-14 Markus Gans * Virtual windows can now store their own offset information * Correct implementation of the move() method 2016-10-13 Markus Gans * Reduces in the code the number of friend classes 2016-10-11 Markus Gans * Separate the virtual terminal into a own class vterm 2016-10-09 Markus Gans * Remove some duplicate code 2016-10-08 Markus Gans * Add the possibility to scroll text up and down in a virtual window 2016-10-06 Markus Gans * The input cursor is now controlled by the virtual terminal 2016-10-02 Markus Gans * FStatusBar and FMenuBar use now the always-on-top window option 2016-10-01 Markus Gans * Add an always-on-top mode for window objects * New FToolTip widget to show assisted information 2016-09-30 Markus Gans * Using arrow keys to move or to resize a window 2016-09-28 Markus Gans * The size is now dynamically changeable with the mouse in a resizable window. 2016-09-26 Markus Gans * FLabel now transmits the Click events to the parent widget 2016-09-25 Markus Gans * Splitting gotoxy in printPos (local position) and printPosTerm (global terminal position) * Replacing the widget position variables by FRect objects * Rename getGeometryShadow() to getGeometryWithShadow() * Rename getGeometryGlobal() to getTermGeometry() * Rename getGeometryGlobalShadow() to getTermGeometryWithShadow() * Rename globalToLocalPos() to termToWidgetPos() * Rename getGlobalX() to getTermX() * Rename getGlobalY() to getTermY() * Rename getGlobalPos() to getTermPos() * setColor() without parameters sets the default widget colors * New methods setMinimumSize(), setMaximumSize(), setFixedSize() and setSize() 2016-09-12 Markus Gans * Activate the title bar menu with ctrl+^ 2016-09-11 Markus Gans * New zoom interaction-elements to maximize a FDialog 2016-09-08 Markus Gans * Different color when focusing the title bar button * Move clearArea() from FWidget to FTerm * Move setWidth(), setHeight() and setGeometry from FDialog to FWindow 2016-09-04 Markus Gans * FButton, FLineEdit and FProgressbar has shadow now enabled by default * FDialog has now transparent shadow as default 2016-09-03 Markus Gans * The method clearFlatBorder() replace now a double flatline with a single flatline * Add the possibility to set the double_flatline_mask for every position on all sides 2016-09-02 Markus Gans * Method setGeometry assigns now the full widget size to the double_flatline_mask (previously, it was the adjust size) 2016-08-28 Markus Gans * Remove obsolete code from FDialog * An incorrect parameter can now return an error message on program exit * Termcap S2 and S3 fallback only for the vte/gnome-terminal and the Linux terminal 2016-08-27 Markus Gans * A new inherit background option for characters * Use inherit background for the simple shadows * Updating the transparent example program 2016-08-25 Markus Gans * Use the new transparent shadow option in drawShadow() 2016-08-21 Markus Gans * Improved transparent shadow background * Add "transparent" example to demonstrate transparency 2016-08-20 Markus Gans * Switch back to the own dialog when you closing a dialog menu * switchToPrevWindow() is looking for another window if no previous window was found 2016-08-14 Markus Gans * Screen characters now have a transparent and a transparent shadow option 2016-07-31 Markus Gans * Rename setUpdateVTerm to updateVTerm * Rename clrscr to clearArea * The widget clearing method updates now only non-covered characters on the virtual terminal. 2016-07-31 Markus Gans * Resetting the local window widget focus at the end of the lifetime of a widget. * Fix method setPos in the class FRect * Add the windows example to show the window behavior 2016-07-30 Markus Gans * Delete all callbacks from a widget with delCallbacks() * Remove dialog list item callback from the associated window 2016-07-28 Markus Gans * Improvements for the window focus 2016-07-24 Markus Gans * Add missing null pointer check in FOptiAttr before dereferencing * Remove callbacks and accelerator keys from FDialogListMenu on closing of a dialog window * Execute accelerator keys only once * Improved window focus behavior 2016-07-23 Markus Gans * Add a modifier key correction for the Linux tty * Support to read meta+enter from keyboard 2016-07-16 Markus Gans * Support to read meta+tab from keyboard 2016-07-16 Markus Gans * Switch to a specific dialog with meta key + 1..9 * Add more meta key escape sequences (for putty) 2016-07-14 Markus Gans * Adding a dialog list with the entries in the chronological order of the generation 2016-07-13 Markus Gans * Bind accelerator key from the FMenuItem to the root widget 2016-07-12 Markus Gans * The status bar and the menu bar insert now the accelerator keys into the global scope of the root widget 2016-07-10 Markus Gans * Remove obsolete code from FDialog destructor * FDialog focus fix 2016-07-08 Markus Gans * Better code readability: control structures (if/else, while, switch) are now separated by a blank line. 2016-07-06 Markus Gans * Stop terminal updates during processCloseWidget() is working 2016-07-03 Markus Gans * Add the new class FDialogListMenu to switch between dialog menus * More consistent method names: rename parentWidget() to getParentWidget() 2016-06-27 Markus Gans * Fix the use-after-free bug for previous_widget 2016-06-26 Markus Gans * Bug fix for FWindow::activatePrevWindow() 2016-06-25 Markus Gans * Move processNextEvent() code into sub functions 2016-06-22 Markus Gans * Adding required updateTerminal() calls for FMenuBar 2016-06-19 Markus Gans * Clear status bar text in FMenuBar::leaveMenuBar() * Fixes some status bar update issues and focus problems 2016-06-18 Markus Gans * Improved status bar text updating at window change 2016-06-16 Markus Gans * Bug fix in FTerm updateVTerm() for updates from vdesktop * Bug fix in FDialog onWindowActive() for combined setFocus() and activateWindow() 2016-06-13 Markus Gans * Improved title bar menu integration 2016-06-12 Markus Gans * Add a title bar menu to close dialogs 2016-05-24 Markus Gans * Use nl_langinfo to determine the numeric thousands separator for Fstring::setFormatedNumber as default parameter 2016-05-22 Markus Gans * Fix for menus in modal dialogs 2016-05-16 Markus Gans * Improve adjustSize() * Implement adjustSizeGlobal() for all widgets * Don't focus menus with focusFirstChild() and focusLastChild() * Remove duplicate code 2016-05-01 Markus Gans * Better terminal identification 2016-04-30 Markus Gans * Improve 256 color terminal detection 2016-04-19 Markus Gans * Fix the missing typecast for SpecialCharacter in "ui.cpp" 2016-02-04 Markus Gans * KDE Konsole detection improved * OSC sequence support for GNU Screen and tmux 2016-01-31 Markus Gans * Better escape sequences readability through symbolic names like ESC, CSI or OSC 2016-01-24 Markus Gans * Moving widget flags into the class fc 2016-01-17 Markus Gans * Moving events into the class fc * Avoid height and width underflow in adjustSize() * Fix default color handling on Cygwin and Linux terminals 2016-01-10 Markus Gans * Better default color handling in FOptiAttr 2016-01-07 Markus Gans * Add the new class FOptiAttr to control video attributes and colors for output on terminals 2015-12-23 Markus Gans * Add video attribute support for dim (half-bright) and italic * An example program to test video attributes on your terminal 2015-12-20 Markus Gans * Add the possibility to switch off the cursor optimization for bad ANSI-terminal implementations like HyperTerminal (e.g. horizontal absolute position (ch) has there no function) * Now you can activate the menu with ctrl+space, too. (For terminals with no meta key support) 2015-12-20 Markus Gans * Bug fix in FTerm updateVTerm() for updates from vdesktop * Add raiseWindow() to FMenuBar::leaveMenuBar() * Fix allocation of null strings with the FString = operator * Fix for non printable characters in Cygwin and TeraTerm * Fix missing eat_newline_glitch (xn) in TeraTerm 2015-12-19 Markus Gans * Add delOwnTimer() for FObject * Close sub-menu on right and middle click * Version 0.2.0 2015-12-18 Markus Gans * Optimize menu example * More string types for FString relational operators 2015-12-16 Markus Gans * Avoid to show menus outside of the screen 2015-12-12 Markus Gans * Improve sub-sub-menu handling 2015-12-10 Markus Gans * PC encoding: Avoid to print ASCII sign 0x00..0x1f in xterm * Newfont Bullet sign 2015-12-08 Markus Gans * Add "menu" example to demonstrate the behavior from FMenuBar, FMenu, FMenuItem, FCheckMenuItem and FRadioMenuItem widgets. * Show status bar messages, if no keys are available. 2015-11-29 Markus Gans * Better handling of empty strings in FLineEdit and FButton * Add a sub-menu to the "ui.cpp" example 2015-11-25 Markus Gans * Small menu improvements 2015-11-24 Markus Gans * Improved mouse and keyboard handling in sub-menus 2015-11-22 Markus Gans * Add sub-menu support 2015-11-19 Markus Gans * Add the missing resetXTermHighlightBackground method 2015-11-15 Markus Gans * Add two new classes FCheckMenuItem and FRadioMenuItem for menu check marks and menu option marks (bullets) 2015-11-12 Markus Gans * Improve menu accelerator keys * Shows accelerator keys on the right side of the FMenu. 2015-11-08 Markus Gans * Activate the previous window in case if the menu is open and the mouse click has activated no window. 2015-11-07 Markus Gans * Improved menu focus handling * Menu supports newfont 2015-11-05 Markus Gans * Menu bar navigation without menu drop down 2015-11-03 Markus Gans * Improve keyboard shortcut handling in menus 2015-11-01 Markus Gans * First working version of an application menu, it uses the new classes FMenuBar, FMenu and FMenuItem (alpha state) 2015-10-29 Markus Gans * Support for the menu key 2015-10-23 Markus Gans * Color setting improvements 2015-10-22 Markus Gans * Make cursor visibility more standards compliant. 2015-10-18 Markus Gans * Hidden windows are now non-clickable 2015-10-17 Markus Gans * More faster header inline code * Improve getXTermFont() and getXTermTitle() * Newfont characters are now printable in FLabel, FMenuBar and FMenu. 2015-10-16 Markus Gans * Fixed: calculator behavior for negative values in trigonometric functions 2015-10-13 Markus Gans * Reduce the number of getParent() function calls for print operations 2015-10-11 Markus Gans * Improve attribute setting for bold, reverse and underline output * Better support for monochrom terminals 2015-10-10 Markus Gans * Deactivate a key from the status bar automatically after getting back from the callback. 2015-10-09 Markus Gans * Eliminate duplicate code 2015-10-06 Markus Gans * Refactoring FTerm::init() 2015-10-05 Markus Gans * Improve compatibility with initialize_color * Better support for TeraTerm 2015-10-02 Markus Gans * No terminal updates until input data is pending. This speeds up the window moving with the mouse on terminals with a high latency. * Use now the select command before read ENQ and SEC_DA 2015-09-29 Markus Gans * Some code improvements 2015-09-27 Markus Gans * Add methods getPos and setPos to FRect and FWidget 2015-09-24 Markus Gans * Add macro _METHOD_CALLBACK and _FUNCTION_CALLBACK to simplify the use callback functions * The callback data pointer is now predefined with NULL as default argument 2015-09-23 Markus Gans * Further code optimizations 2015-09-22 Markus Gans * Add the possibility to hide a virtual window * Some code optimizations 2015-09-18 Markus Gans * Fixed compile error on 32-bit architectures 2015-08-08 Markus Gans * Bug fix in FDialog (use GlobalPos to move) * Don't check mouse click position on title bar again while FDialog is in move 2015-07-26 Markus Gans * init() method for the FStatusKey constructor to avoid code duplication 2015-07-18 Markus Gans * Add multiple lines support for FLabel 2015-07-12 Markus Gans * Improve focusFirstChild() and focusLastChild() 2015-07-09 Markus Gans * Better contrast on 8 color terminals 2015-07-06 Markus Gans * Bug fix disable cursor on focus FSwitch * Hold down the mouse button displays FSwitch in a different color. 2015-07-04 Markus Gans * New class FSwitch * Add the watch example to demonstrate FSwitch * Version 0.1.1 2015-07-02 Markus Gans * Add a joined right-left-line character to the newfont * Use the object timer for the progress bar animation in the ui example program 2015-07-01 Markus Gans * Use the object timer for the click animation in FButton 2015-06-28 Markus Gans * Add exception handling for toLong() and toULong() in FString 2015-06-27 Markus Gans * Add toFloat(), toDouble() and setNumber(...) for floating point values to FString 2015-06-22 Markus Gans * Add a simple calculator with trigonometric functions 2015-06-21 Markus Gans * Add the possibility to draw double lines on overlapped flat lines for the 8x16graph font * Bug fix in FButton (mouse click with unsetClickAnimation()) 2015-06-20 Markus Gans * Add the possibility to change the colors from FButton 2015-06-15 Markus Gans * Add the possibility to turn off click animation on FButton 2015-06-14 Markus Gans * correction for the modifier letter small x in the character map 2015-06-12 Markus Gans * Add Some mathematical signs to the character map 2015-05-28 Markus Gans * Add keyword 'explicit' to some constructors 2015-05-25 Markus Gans * Add a Mandelbrot set program 2015-05-24 Markus Gans * Bug fix in FLineEdit (ypos from the label) * Bug fix in FDialog onWindowActive (status bar check) 2015-05-15 Markus Gans * Remove never read value from code * Add the possibility to use exec() from FMessageBox to enter and leave the main event loop correctly * Add a "hello world" example