finalcut/ChangeLog

1890 lines
67 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2021-06-26 Markus Gans <guru.mail@muenster.de>
* Global non-constant variables are now encapsulated in classes
2021-06-19 Markus Gans <guru.mail@muenster.de>
* Moving the creator methods from FTerm to its own class
2021-06-16 Markus Gans <guru.mail@muenster.de>
* Converted the internal timer from timeval
to std::chrono::time_point<system_clock>
2021-06-06 Markus Gans <guru.mail@muenster.de>
* Bug fixing in FString and FTermDetection
* FTermDetection now has clean code by using FString instead of char*
* Replace std::strlen with stringLength
2021-06-03 Markus Gans <guru.mail@muenster.de>
* Some FString optimizations
2021-05-30 Markus Gans <guru.mail@muenster.de>
* FString internally changed from wchar_t* to std::wstring
2021-05-24 Markus Gans <guru.mail@muenster.de>
* Using std::string for the attribute buffer
2021-05-22 Markus Gans <guru.mail@muenster.de>
* Convert FOptiMove from char[] to std::string
2021-05-13 Markus Gans <guru.mail@muenster.de>
* Prevent duplicate widget in the close widget list
2021-05-07 Markus Gans <guru.mail@muenster.de>
* Some pointers were replaced by references
2021-05-04 Markus Gans <guru.mail@muenster.de>
* Prevent flickering when resizing terminals or redrawing
the screen via ctrl-l
2021-05-02 Markus Gans <guru.mail@muenster.de>
* Bugfix for sending multiple SIGWINCH signals from
gnome-terminal under Wayland
2021-05-01 Markus Gans <guru.mail@muenster.de>
* Replace some std::bind with lambda functions
2021-04-30 Markus Gans <guru.mail@muenster.de>
* Fixes Linux console bug from February 20, 2021
2021-04-27 Markus Gans <guru.mail@muenster.de>
* Code optimization at widget focus
2021-04-24 Markus Gans <guru.mail@muenster.de>
* Fixed mutex deadlock in FLogger
2021-04-21 Markus Gans <guru.mail@muenster.de>
* Fixes the detection of the terminal size after a SIGWINCH signal
2021-04-18 Markus Gans <guru.mail@muenster.de>
* Decoupling the FWidget and FWindow classes from FVTerm
* Avoid redrawing widgets when show() is called multiple times
* Readjustment of the root widget when the terminal size is changed
2021-04-11 Markus Gans <guru.mail@muenster.de>
* Better support for kitty terminals
2021-03-31 Markus Gans <guru.mail@muenster.de>
* argv is now stored internally as a std::vector container
2021-03-30 Markus Gans <guru.mail@muenster.de>
* Stops terminal refresh during dialog resizing until all
child widgets have been redrawn
2021-03-28 Markus Gans <guru.mail@muenster.de>
* Widget now have the virtual method initLayout() to set
the widget layouts automatically before the first drawing
on the terminal is done. Also texts in full-width characters,
whose character width is determined automatically, should be
calculated here.
2021-03-15 Markus Gans <guru.mail@muenster.de>
* Dynamic adjustment of the terminal refresh rate between
5 and 60 Hz
2021-03-09 Markus Gans <guru.mail@muenster.de>
* Implementation of an own padding print method for sending
control codes to the terminal
2021-02-28 Markus Gans <guru.mail@muenster.de>
* Removing the termcap library from the header files so
that FINAL CUT programs are not affected by the preprocessor
#define macros.
Many thanks to Zhenyu Zhang for this optimization suggestion
2021-02-24 Markus Gans <guru.mail@muenster.de>
* Fixed the incorrect display on terminals without
UTF-8 character encoding
2021-02-20 Markus Gans <guru.mail@muenster.de>
* Optimize terminal output buffer queue with differencing
for strings, and control characters and control sequences
2021-02-09 Markus Gans <guru.mail@muenster.de>
* Added support for combined unicode characters
* Added a unit test for the FTermBuffer class
* Added a unit test for the FTterm functions
2020-12-31 Markus Gans <guru.mail@muenster.de>
* Refactoring to scoped enumerations
2020-11-18 Markus Gans <guru.mail@muenster.de>
* The terminal update rate is now limited to 60 Hz
2020-11-14 Markus Gans <guru.mail@muenster.de>
* Version 0.7.1
* Bugfix: The cursor position was not changed anymore
if there was no change to the content
* Forcing a direct update for faster terminal output
2020-11-07 Markus Gans <guru.mail@muenster.de>
* Version 0.7.0
2020-11-04 Markus Gans <guru.mail@muenster.de>
* Elimination of unnecessary terminal flushes
2020-11-03 Markus Gans <guru.mail@muenster.de>
* Use FIONREAD to get the number of characters available
for reading on stdin
2020-11-02 Markus Gans <guru.mail@muenster.de>
* Non-blocking reading before timeout after keystroke
* Every fourth event processing causes a terminal flush
* Call of TIOCLINUX only in the Linux console
2020-11-01 Markus Gans <guru.mail@muenster.de>
* Now FINAL CUT queues keyboard and mouse input to speed up
the processing of widget events
2020-10-22 Markus Gans <guru.mail@muenster.de>
* Repair terminal update skipping
2020-10-20 Markus Gans <guru.mail@muenster.de>
* For fast mouse movements the keyboard interval was increased
from 13.3 to 30 Hz
2020-10-19 Markus Gans <guru.mail@muenster.de>
* Optimize the terminal output speed
2020-10-17 Markus Gans <guru.mail@muenster.de>
* Fixes unit test segfault
2020-10-11 Markus Gans <guru.mail@muenster.de>
* Solaris build fix
* Added saving and restoring xterm titles to the stack
for vte terminals
* Menu key - activates the menu bar
* Shift-Menu - opens the dialog menu
2020-10-08 Markus Gans <guru.mail@muenster.de>
* Better keyboard support for urxvt terminals
* Screen reports (like Secondary DA) are now read directly
* Report Cursor Position (DECXCPR) support
* FListView and FListBox now have direct access to the list of client
elements via data()
2020-10-05 Markus Gans <guru.mail@muenster.de>
* Now hides the input cursor when a widget gets hidden
2020-10-04 Markus Gans <guru.mail@muenster.de>
* Replaces some C-style arrays with std::array
* Now you can use the arrow keys to move a window into the visible area
* Removes FData memory leak in FListBoxItem and FListViewItem
2020-09-27 Markus Gans <guru.mail@muenster.de>
* An explanation of the widget tree was added to the document
of the first steps
2020-09-26 Markus Gans <guru.mail@muenster.de>
* FData improvements
* The number of FObject children can now be limited with
setMaxChildren()
* FApplication can now have no more than one child widget
2020-09-25 Markus Gans <guru.mail@muenster.de>
* std::clog now streams everything to the FLogger object
* Added a unit test for the FData class
2020-09-23 Markus Gans <guru.mail@muenster.de>
* Bugfix: empty FString() + wchar_t
2020-09-22 Markus Gans <guru.mail@muenster.de>
* Bugfix in FDialog::setSize(): Automatic size adjustment and
simultaneous widget movement are now possible.
2020-09-18 Markus Gans <guru.mail@muenster.de>
* The generic data type FDataPtr is now deprecated and was
completely replaced by the template class FData
2020-09-11 Markus Gans <guru.mail@muenster.de>
* Fixes a problem with mouse input in Cygwin in non-blocking read mode
2020-09-08 Markus Gans <guru.mail@muenster.de>
* Speed up the reaction time of the gpm mouse
* FListView now correctly adjusts the size of the scrollbar,
when expanding and collapsing by double-clicking
2020-08-30 Markus Gans <guru.mail@muenster.de>
* Adding Windows Terminal detection
2020-08-15 Markus Gans <guru.mail@muenster.de>
* The call of the function setNonBlockingRead() resulted in
a high CPU load in idle mode.
Thanks to Pavel Stehule for reporting this problem.
2020-08-11 Markus Gans <guru.mail@muenster.de>
* New callback backend was implemented. Callback functions with any
number of arguments are now possible.
2020-07-19 Markus Gans <guru.mail@muenster.de>
* API: Some method name changes:
FObject::delOwnTimer() -> FObject::delOwnTimers()
FObject::delAllTimer() -> FObject::delAllTimers()
FWidget::delCallbacks() -> FWidget::delAllCallbacks()
2020-07-08 Markus Gans <guru.mail@muenster.de>
* New data wrapper class FData
2020-07-06 Markus Gans <guru.mail@muenster.de>
* Add a document that describes how to create user themes
2020-06-11 Markus Gans <guru.mail@muenster.de>
* New widget FBusyIndicator to indicate background activity
* Added example/busy to demonstrate the functionality of this widget
2020-06-07 Markus Gans <guru.mail@muenster.de>
* The --log-file parameter stores log output to any file. The file
can be viewed directly on another terminal with "tail -f".
2020-06-06 Markus Gans <guru.mail@muenster.de>
* Now, the terminal is not initialized before the method show()
is called. Or you force it explicitly via the FApplication object.
* Simplification of FMouse::createMouseObject()
2020-05-30 Markus Gans <guru.mail@muenster.de>
* With the two new methods FApplication::setDarkTheme() and
FApplication::setDefaultTheme() you can now change the theme
within an application. An example can be found in examples/ui
via the menu items "View" -> "Dark mode".
2020-05-29 Markus Gans <guru.mail@muenster.de>
* Adding a dark theme. Can be activated with the --dark-theme parameter.
2020-05-28 Markus Gans <guru.mail@muenster.de>
* FColorPalette now also uses polymorphism, so you can now
easily create your own color palette theme
2020-05-26 Markus Gans <guru.mail@muenster.de>
* FWidgetColors now uses polymorphism, so you can now easily
create your own widget color theme
* FApplication has got the new virtual method processExternalUserEvent()
for user code
2020-05-24 Markus Gans <guru.mail@muenster.de>
* New class FStringStream implements input and output operations
on FString based streams
* Fixed memory leak in FString move assignment operator
2020-05-21 Markus Gans <guru.mail@muenster.de>
* Fixed the event queue in FApplication
2020-05-16 Markus Gans <guru.mail@muenster.de>
* More direct access to the static FTerm functions
2020-05-13 Markus Gans <guru.mail@muenster.de>
* The new class FLogger for logging, which can be redirected
to different I/O channels
* Adding the event-log example to show the logging functionality
2020-05-02 Markus Gans <guru.mail@muenster.de>
* Transfer of all termcap functions into the FTermcap class
2020-04-28 Markus Gans <guru.mail@muenster.de>
* Adding the missing method getClientSize()
* Static code for the special built-in key sequences
2020-04-15 Markus Gans <guru.mail@muenster.de>
* Better support of general arrow keys
* Improved event handling code
2020-04-13 Markus Gans <guru.mail@muenster.de>
* Several small code improvements
2020-04-09 Markus Gans <guru.mail@muenster.de>
* A dialog can now be displayed without a framing border.
Many thanks to basedtho for this tip
2020-03-22 Markus Gans <guru.mail@muenster.de>
* A small benchmakt test was added to the Rotozoomer example
2020-03-08 Markus Gans <guru.mail@muenster.de>
* A rotozoomer example was added to demonstrate the drawing speed
of FINAL CUT
2020-03-07 Markus Gans <guru.mail@muenster.de>
* Fixes keyboard input buffer problem when opening a modal dialog
* Exit the move-resize-mode when the close confirmation dialog
is displayed
2020-03-05 Markus Gans <guru.mail@muenster.de>
* Unbuffered reading of keystrokes for better latency
* Mouse adjustments when resizing an rxvt terminal
2020-02-25 Markus Gans <guru.mail@muenster.de>
* New command line switch "--no-terminal-data-request" to disable
font and title determination
2020-02-19 Markus Gans <guru.mail@muenster.de>
* Some small code improvements
* SGRoptimizer improved
2020-02-16 Markus Gans <guru.mail@muenster.de>
* Printing a FStyle object allows you to change video attributes
2020-02-13 Markus Gans <guru.mail@muenster.de>
* Rename setTransShadow() to setColorOverlay()
2020-02-11 Markus Gans <guru.mail@muenster.de>
* Fix collapse() and expand() in FListViewItem()
2020-02-09 Markus Gans <guru.mail@muenster.de>
* Adding a tty check for stdin
* An application structure diagram was added to the document
of the first steps
2020-02-04 Markus Gans <guru.mail@muenster.de>
* Fix in FListViewIterator
* Add screenshorts to the first steps document
2020-02-02 Markus Gans <guru.mail@muenster.de>
* The methods clear() and remove() were added to FListView
* Add some const type qualifiers
* A small GNU autoconf-archive check
2020-01-12 Markus Gans <guru.mail@muenster.de>
* Add a "widget layout" chapter to the first steps document
2020-01-09 Markus Gans <guru.mail@muenster.de>
* With setText() and clearText() the text in the edit line can be changed
without changing the content of the combo box
* The setCurrentItem() method was added to the FComboBox widget class.
Thanks cybin for the sample code
2020-01-03 Markus Gans <guru.mail@muenster.de>
* Illustrations to explain the widget layout
2019-12-31 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Correction for height and width alignment in adjustSize()
* Better setSize() implementation in some widgets
2019-12-20 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* New widget class FComboBox to provide a dropdown list
with an input field
2019-11-17 Markus Gans <guru.mail@muenster.de>
* Revision of FString number input stream
2019-11-16 Markus Gans <guru.mail@muenster.de>
* New widget class FSpinBox to provide spin boxes
2019-11-06 Markus Gans <guru.mail@muenster.de>
* Improved display of the NewFont midline
2019-11-03 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Unicode support for 8x16graph font
2019-10-20 Markus Gans <guru.mail@muenster.de>
* New method setInputType() in FLineEdit that allows to obscure
password entries
* FAcceleratorList reimplemented as non-pointer
2019-10-15 Markus Gans <guru.mail@muenster.de>
* Version 0.6.0
2019-10-13 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Replacing null-terminated wide strings with FString objects
* Fix for getColumnWidth() with newfont character
2019-09-29 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Improve FStartOptions implementation
2019-09-08 Markus Gans <guru.mail@muenster.de>
* Remove the lines of the #pragma pack() directive from the code
because they caused a misaligned address
2019-09-06 Markus Gans <guru.mail@muenster.de>
* Outsourcing the initialization data to a separate struct
2019-09-04 Markus Gans <guru.mail@muenster.de>
* The Cygwin and Linux console do not use cp437 character encoding
by default anymore
2019-09-01 Markus Gans <guru.mail@muenster.de>
* Removing public + protected data members from classes
2019-08-25 Markus Gans <guru.mail@muenster.de>
* More use of direct initializations
2019-08-18 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Pitch and duration of system speaker can now be changed
on OpenBSD
2019-08-07 Markus Gans <guru.mail@muenster.de>
* Fixes the Cygwin build
2019-08-04 Markus Gans <guru.mail@muenster.de>
* Reduce the number of interface parameters
2019-07-31 Markus Gans <guru.mail@muenster.de>
* Unit test for the move assignment operator and move constructor
in FPoint, FSize and FRect
2019-07-28 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Reduce include entries in the header files
2019-07-14 Markus Gans <guru.mail@muenster.de>
* Reduces the use of raw loops
* Add a unit test for FTermOpenBSD to test the OpenBSD
and NetBSD console
2019-06-30 Markus Gans <guru.mail@muenster.de>
* Expanding the unit test for FTermLinux
* Update the cp437 unicode map
* Reducing the special cases for Solaris
2019-06-19 Markus Gans <guru.mail@muenster.de>
* Add a unit test for FTermLinux with a Linux console emulation
and a dedicated FSystem test instance
2019-06-12 Markus Gans <guru.mail@muenster.de>
* Fixes problem with scroll bar view after first draw
2019-06-02 Markus Gans <guru.mail@muenster.de>
* Avoid drawing the scroll bars if the widget is non-visible
2019-05-27 Markus Gans <guru.mail@muenster.de>
* Use the Singleton design pattern to get a single object instance
via FTerm
2019-05-26 Marek Habersack <grendel@twistedcode.net>
* Fix a segfault when processing input to empty FListView
2019-05-17 Markus Gans <guru.mail@muenster.de>
* Move system calls to the new class FSystem
2019-04-27 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Add a "scroll view" chapter to the first steps document
2019-02-28 Markus Gans <guru.mail@muenster.de>
* Add an lambda expression callback example to the first steps document
2019-02-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Add a "dynamic layout" chapter into the first steps document
2019-01-30 Markus Gans <guru.mail@muenster.de>
* Printing an FColorPair object can change the foreground and
background color
2019-01-27 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Refactoring of some methods in FVTerm and FDialog
2019-01-21 Markus Gans <guru.mail@muenster.de>
* More accurate interfaces through the strict use of FPoint()
and FSize()
2019-01-16 Markus Gans <guru.mail@muenster.de>
* New class FSize for storing dimensions
2019-01-12 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Generalize hide() method
2019-01-09 Markus Gans <guru.mail@muenster.de>
* Improvement in widget focusing
* Better widget visibility handling with the methods hide() and show()
2019-01-05 Markus Gans <guru.mail@muenster.de>
* Use of initializer_list for FListBox, FListView and FTextView
2019-01-04 Markus Gans <guru.mail@muenster.de>
* Use the final specifier
2019-01-03 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Use the override specifier
2018-12-30 Markus Gans <guru.mail@muenster.de>
* Cygwin compiled fix for C++11
2018-12-29 Markus Gans <guru.mail@muenster.de>
* Text scrolling in FTextView was broken since February 17th!
* Replace redundant FString code with templates
2018-12-28 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Add a "event processing" chapter into the first steps document
2018-12-24 Markus Gans <guru.mail@muenster.de>
* Events can not only be sent to FWidgets, but also to FObjects
* New event FUserEvent for user-defined events
2018-12-19 Markus Gans <guru.mail@muenster.de>
* Use of smart pointers
* Add a "memory management" chapter into the first steps document
2018-12-17 Markus Gans <guru.mail@muenster.de>
* Improve FButton mouse click animation
* Minor data type corrections
* Reactivate the event queue
2018-12-15 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Easier handling of fc::SpecialCharacter
2018-12-01 Markus Gans <guru.mail@muenster.de>
* Switched to the language standard C++11
* Use delegated constructors and in-class default member initializers
2018-12-01 Markus Gans <guru.mail@muenster.de>
* Improved gpm wheel mouse support
* Fix compile in optimization level 2 for newer gcc
2018-11-27 Markus Gans <guru.mail@muenster.de>
* Correct vertical scroll bar position after sorting in FListView
2018-11-25 Markus Gans <guru.mail@muenster.de>
* Version 0.5.0
* Namespace fix in FTermFreeBSD and FTermOpenBSD
* Fix compiler warning on non-x86 architectures
2018-11-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* New type FKey for key inputs
* The integer type of FPoint and FRect changed from short to int
2018-11-18 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Clicking on the column header in FListView now changes the sort order
2018-11-10 Markus Gans <guru.mail@muenster.de>
* FListView now has a sort indicator to display the sort order
2018-11-07 Markus Gans <guru.mail@muenster.de>
* Use new type FColor for color values
2018-11-05 Markus Gans <guru.mail@muenster.de>
* FButton now uses the widget flags directly
2018-11-04 Markus Gans <guru.mail@muenster.de>
* Widget flags are now stored in a bit field
2018-11-03 Markus Gans <guru.mail@muenster.de>
* New method rgb2ColorIndex() to converts a 24-bit RGB color
to a 256-color compatible approximation
2018-11-01 Markus Gans <guru.mail@muenster.de>
* Moved FTerm debug access methods to FTermDebugData
2018-10-29 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Building Fix for a negative value check (gcc < 4.8)
* Adding the capacity() method to the FString class
2018-10-21 Markus Gans <guru.mail@muenster.de>
* Moving static attributes from FApplication to FWidget
2018-10-17 Markus Gans <guru.mail@muenster.de>
* Changed more variables from int to std::size_t
2018-10-14 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* FKeyboard now uses references for keyboard buffer passing
2018-10-09 Markus Gans <guru.mail@muenster.de>
* Terminal detection for newer vte libraries (>= 0.53.0)
2018-10-08 Markus Gans <guru.mail@muenster.de>
* Move all termcap code into FTermcap
* Some small code splits
2018-10-05 Markus Gans <guru.mail@muenster.de>
* Remove redundant program code from FString
2018-10-03 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Extract FTerm data members into the data class FTermData
2018-09-28 Markus Gans <guru.mail@muenster.de>
* FListView now has the ability to sort by columns
2018-09-27 Markus Gans <guru.mail@muenster.de>
* Move time event processing from FApplication to FObject
2018-09-26 Markus Gans <guru.mail@muenster.de>
* The FListViewItem class now has a getData() and a setData() method
similar to the FListBoxItem class.
2018-09-24 Markus Gans <guru.mail@muenster.de>
* Stricter use of the keyword virtual
* Add a first steps document
2018-09-20 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Implement a ttytype test for the FTermDetection unit test
2018-09-14 Markus Gans <guru.mail@muenster.de>
* Added unit test for FTermDetection with a terminal simulation
for common terminals
* Some minor terminal detection bug fixes
2018-09-12 Markus Gans <guru.mail@muenster.de>
* Removes the deprecated keyword "register"
from the source code
2018-09-02 Markus Gans <guru.mail@muenster.de>
* Fix mouse wheel behavior over horizontal scroll bars
in FTextView
* Some small code improvements
2018-09-01 Markus Gans <guru.mail@muenster.de>
* Compiles now with newer gcc
2018-08-31 Markus Gans <guru.mail@muenster.de>
* Fixed a problem for a non-debug compilation
2018-08-08 Markus Gans <guru.mail@muenster.de>
* Added unit test for FTermcapQuirks
2018-07-29 Markus Gans <guru.mail@muenster.de>
* Added numeric Keypad [/], [*], [-], [+] support
* Handling of keys that are substrings of other keys
* More tests in FKeyboard unit test
2018-07-27 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Added unit test for FKeyboard
2018-07-15 Markus Gans <guru.mail@muenster.de>
* Keyboard functions are now in a separate class
* Fix Parameter passing in term::init_OptiAttr
2018-07-08 Markus Gans <guru.mail@muenster.de>
* Extension of the unit test of FOptiMove
2018-07-01 Markus Gans <guru.mail@muenster.de>
* All in FOptiMove required termcap values can now be passed
with a single struct
2018-06-25 Markus Gans <guru.mail@muenster.de>
* All termcap values required in FOptiAttr can now be passed
with a single struct
2018-06-17 Markus Gans <guru.mail@muenster.de>
* Added special console options for FreeBSD, NetBSD and OpenBSD
2018-06-12 Markus Gans <guru.mail@muenster.de>
* Linux functions from FTerm moved into the FTermLinux class
2018-05-27 Markus Gans <guru.mail@muenster.de>
* Move FreeBSD, NetBSD and OpenBSD functions to separate classes
2018-05-20 Markus Gans <guru.mail@muenster.de>
* Methods outsourcing from FTerm to FTermXTerminal
2018-05-06 Markus Gans <guru.mail@muenster.de>
* Some protected data members in FTerm moved to private
2018-05-03 Markus Gans <guru.mail@muenster.de>
* Fix resetColorMap in FTerm
2018-05-02 Markus Gans <guru.mail@muenster.de>
* Outsourcing of data from FTerm to the classes FTermios,
FTermDetection and FTermcapQuirks
2018-04-19 Markus Gans <guru.mail@muenster.de>
* Placing the terminal types in FTerm in a separate structure
2018-04-15 Markus Gans <guru.mail@muenster.de>
* Fake-reverse bugfix in FOptiAttr
* Strict use of fc::colornames in FOptiAttr
* Stream support for FPoint and FRect
2018-04-11 Markus Gans <guru.mail@muenster.de>
* Remove Cygwin bold color quirks fix in FOptiAttr
* Added unit test for FOptiAttr
2018-04-08 Markus Gans <guru.mail@muenster.de>
* Improved Linux terminal quirks
* Improvement in class FOptiAttr
2018-04-02 Markus Gans <guru.mail@muenster.de>
* Improved cygwin terminal quirks
* Optimized character set switching in FOptiAttr
2018-03-30 Markus Gans <guru.mail@muenster.de>
* Added unit test for FOptiMove
2018-03-28 Markus Gans <guru.mail@muenster.de>
* Add boundary check to FOptiMove
2018-03-25 Markus Gans <guru.mail@muenster.de>
* Added unit test for the mouse classes
* Fixed small parsing errors with mouse events
2018-03-17 Markus Gans <guru.mail@muenster.de>
* Added unit test for FObject
* Some minor bug fixes in FObject
2018-03-13 Markus Gans <guru.mail@muenster.de>
* Added unit test for FRect
2018-03-11 Markus Gans <guru.mail@muenster.de>
* Added unit test for FPoint
2018-03-10 Markus Gans <guru.mail@muenster.de>
* Unit tests for the FString class completed
* Minor bug fixes in FString
2018-02-25 Markus Gans <guru.mail@muenster.de>
* First CppUnit tests implemented
2018-02-22 Markus Gans <guru.mail@muenster.de>
* Generalize mouse event passing in FMenuItem
2018-02-19 Markus Gans <guru.mail@muenster.de>
* Refactoring FTerm::init_termcaps
* Refactoring FTerm::init_encoding
2018-02-18 Markus Gans <guru.mail@muenster.de>
* Avoid scroll bar overshooting
* Refactoring FListView::onMouseMove
* Refactoring FDialog::initDialogMenu
2018-02-17 Markus Gans <guru.mail@muenster.de>
* Generalize scroll functions in FTextView
* Refactoring FButtonGroup::drawLabel
* Refactoring FToggleButton::drawLabel
2018-02-11 Markus Gans <guru.mail@muenster.de>
* Refactoring FWidget::focusNextChild and FWidget::focusPrevChild
* Refactoring FListView::onWheel
* Refactoring FListView::drawColumnLabels
* Refactoring FTerm::getSystemTermType
* Rename getTermName() to getTermFileName()
2018-02-10 Markus Gans <guru.mail@muenster.de>
* Refactoring FOptiMove::verticalMove and FOptiMove::horizontalMove
* Refactoring FVTerm::getCharacter
* Refactoring FWidget::drawBorder
2018-02-02 Markus Gans <guru.mail@muenster.de>
* Avoids flickering when redrawing a focused widget
2018-01-31 Markus Gans <guru.mail@muenster.de>
* Refactoring FSwitch::drawCheckButton
* Refactoring FWidget::redraw
* Refactoring FMessageBox::init
* Refactoring FFileDialog::init
2018-01-30 Markus Gans <guru.mail@muenster.de>
* Refactoring FLabel::draw
* Refactoring FFileDialog::readDir
2018-01-28 Markus Gans <guru.mail@muenster.de>
* Refactoring FApplication::processKeyboardEvent
* Shorter methods and a fix for recreating new windows
in the window example
2018-01-25 Markus Gans <guru.mail@muenster.de>
* UTF-8 fix for Solaris
2018-01-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Small array optimizations in the examples
2018-01-14 Markus Gans <guru.mail@muenster.de>
* Mouse functions are now in a separate class
2018-01-05 Markus Gans <guru.mail@muenster.de>
* Refactoring FVTerm::restoreVTerm
* Fixed buffer size in FOptiMove
2018-01-03 Markus Gans <guru.mail@muenster.de>
* Refactoring FOptiMove::relativeMove
* Refactoring attribute settings in FOptiAttr
* Refactoring FTerm::parseKeyString and timeout settings
2018-01-02 Markus Gans <guru.mail@muenster.de>
* Refactoring of secondary device attributes parsing
* Small menu improvements
2017-12-31 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Refactoring of the FDialog mouse event handler
2017-12-27 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Refactoring FButton::draw
* Passing more strings by reference
2017-12-21 Markus Gans <guru.mail@muenster.de>
* Refactoring FMenuBar::drawItems
* (de)allocation functions in FTerm
2017-12-19 Markus Gans <guru.mail@muenster.de>
* Refactoring FMenu::drawItems
2017-12-17 Markus Gans <guru.mail@muenster.de>
* The Final Cut now also compiles under Solaris
2017-12-14 Markus Gans <guru.mail@muenster.de>
* Add Sun Microsystems workstation console support
2017-12-10 Markus Gans <guru.mail@muenster.de>
* Refactoring of the FMenu mouse event handler
2017-12-08 Markus Gans <guru.mail@muenster.de>
* More individual arithmetic operations methods in
the implementation of the calculator example
2017-12-05 Markus Gans <guru.mail@muenster.de>
* Refactoring FApplication::processMouseEvent
* Refactoring FApplication::processKeyboardEvent
2017-12-02 Markus Gans <guru.mail@muenster.de>
* Refactoring FListBox::drawList and FListBox::onKeyPress
* Refactoring FWidget::event
2017-12-02 Markus Gans <guru.mail@muenster.de>
* Refactoring FApplication::linuxModifierKeyCorrection and
FVTerm::updateVTerm
* Fix getLinuxModifierKey() subcode value as non-const
2017-11-30 Markus Gans <guru.mail@muenster.de>
* Refactoring FVTerm::updateTerminalLine
2017-11-26 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Splitting quirks in serperate methods
2017-11-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Remove duplicated code from FOptiAttr::changeAttribute
2017-11-22 Markus Gans <guru.mail@muenster.de>
* Remove duplicated code in FVTerm::print
2017-11-19 Markus Gans <guru.mail@muenster.de>
* Splitting the FString example into sub-functions to make
the code more comprehensible
2017-11-18 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Improved code coverage tests
2017-11-08 Markus Gans <guru.mail@muenster.de>
* Simulate invisible characters on terminals that do not
support this attribute
2017-11-04 Markus Gans <guru.mail@muenster.de>
* Version 0.4.0
* Change license from GPL v3 to LGPL v3
2017-11-03 Markus Gans <guru.mail@muenster.de>
* Small NewFont improvements
* Fixed bug: The window example called a callback method after
the child data was deleted
2017-11-02 Markus Gans <guru.mail@muenster.de>
* Move fonts into the root directory
2017-10-30 Markus Gans <guru.mail@muenster.de>
* Fix scrollview functionality with new inheritance structure
* Add a standardized close confirmation dialog
* Only <final/final.h> can now be directly integrated in programs
2017-10-29 Markus Gans <guru.mail@muenster.de>
* Adaptation of the inheritance diagrams in the header files
* Add a standardized cb_exitApp callback method to FApplication
2017-10-27 Markus Gans <guru.mail@muenster.de>
* FWidget now inherits directly from FObject
2017-10-23 Markus Gans <guru.mail@muenster.de>
* A FListView tree branch can now be expand and collapsed
with a single click
2017-10-19 Markus Gans <guru.mail@muenster.de>
* Optimized Color palette (less saturated colors)
2017-10-18 Markus Gans <guru.mail@muenster.de>
* Expand or collapse a tree element with a double-click
* FListView::adjustViewport() improved
2017-10-15 Markus Gans <guru.mail@muenster.de>
* FObject double free prevention of fc::empty_string
2017-10-14 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* New data type FStringList introduced
* Stream and assignment operator support for FLineEdit
2017-09-20 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* The command line help text is now available in all applications
2017-09-17 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Fix byte access in data type char_data
2017-09-11 Markus Gans <guru.mail@muenster.de>
* Some code improvements
* Fix handling of negative numbers in FString::toLong()
2017-09-09 Markus Gans <guru.mail@muenster.de>
* Wrong UTF-8 string length fixed when attaching to FString
2017-09-07 Markus Gans <guru.mail@muenster.de>
* Type definition exported into a separate header file
2017-09-03 Markus Gans <guru.mail@muenster.de>
* Fixes wrong maximum line width in FListView
2017-08-26 Markus Gans <guru.mail@muenster.de>
* Improve code readability through spaces between
the operands and the operators
2017-08-24 Markus Gans <guru.mail@muenster.de>
* Rename fapp.{cpp,h} to fapplication.{cpp,h}
2017-08-20 Markus Gans <guru.mail@muenster.de>
* Screen characters got a union structure for a faster
attribute compare operation
2017-08-11 Markus Gans <guru.mail@muenster.de>
* Some code changes for GCC 7
* Implementation of a copy constructor for FPoint and FRect
2017-08-06 Markus Gans <guru.mail@muenster.de>
* Fix GNU Screen support for vte/gnome-terminals
* Advanced streaming functionality for FTermBuffer
and FVTerm::print()
2017-07-31 Markus Gans <guru.mail@muenster.de>
* New methods to retrieve or modify FListViewItem text or
a FListView column text for a specific column
2017-07-28 Markus Gans <guru.mail@muenster.de>
* Possibility for a FListView column to set
the alignment (left, center or right)
2017-07-23 Markus Gans <guru.mail@muenster.de>
* Check an object with isInstanceOf(...) whether it is
an instance of a specified class
2017-07-18 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* New class FTermBuffer to buffer terminal outputs
* Add the possibility to print from the terminal buffer
2017-07-03 Markus Gans <guru.mail@muenster.de>
* Use more static const variables where it makes sense
2017-06-26 Markus Gans <guru.mail@muenster.de>
* FString::rtrim() and FString::left() now return an FString
object with the correct character length
2017-06-18 Markus Gans <guru.mail@muenster.de>
* Move the dragScroll enumeration into the fc namespace
2017-06-11 Markus Gans <guru.mail@muenster.de>
* New method FObject::isWidget()
* Non-widget objects inherit from FObjects will no longer
affect the widget lists
2017-06-05 Markus Gans <guru.mail@muenster.de>
* The focus and active flag is set centrally in FWidget
2017-05-20 Markus Gans <guru.mail@muenster.de>
* Recalculate the horizontal FListBox scroll bar size
on lazy conversion
2017-05-19 Markus Gans <guru.mail@muenster.de>
* FListBox: Import of data from a container via
"lazy conversion" during item print
2017-04-23 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Fix unsigned integer underflow in FString::_insert()
2017-04-14 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Enable xterm "metaSendsEscape" switch
2017-04-09 Markus Gans <guru.mail@muenster.de>
* The Final Cut compiles now also under NetBSD
* Rename preprocessor macro names with leading underscore
2017-04-08 Markus Gans <guru.mail@muenster.de>
* Looking in /etc/ttys for the type of terminal
2017-04-06 Markus Gans <guru.mail@muenster.de>
* Change cursor style on a FreeBSD console
2017-04-05 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Fixed bug: termcap "me" does not reset
the alternate character set
2017-03-28 Markus Gans <guru.mail@muenster.de>
* Improved graphic charset pairs (vt100)
for FreeBSD console
2017-03-26 Markus Gans <guru.mail@muenster.de>
* The Final Cut compiles now under FreeBSD
* A new test program to show the termcap variables
2017-03-19 Markus Gans <guru.mail@muenster.de>
* Add the "mouse" example to illustrate mouse programming
2017-03-17 Markus Gans <guru.mail@muenster.de>
* More constant character pointers
2017-03-13 Markus Gans <guru.mail@muenster.de>
* Corrects directly the input cursor position on window moving
2017-03-12 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Improve input cursor positioning in FScrollView
2017-02-24 Markus Gans <guru.mail@muenster.de>
* Corrected swapped top and left offset variables
in the class FVTerm
2017-02-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Allows a window to have more than one FScrollView widget
2017-02-07 Markus Gans <guru.mail@muenster.de>
* Uses termcap capability U8 to identify terminals that
can't display vt100 line-drawing in UTF-8 mode
2017-01-28 Markus Gans <guru.mail@muenster.de>
* Allow to change the focus out from FScrollView to another widget
2017-01-26 Markus Gans <guru.mail@muenster.de>
* FScrollView now scrolls automatically to the focused widget
2017-01-22 Markus Gans <guru.mail@muenster.de>
* A FScrollView object can now have client widgets
on the scrolling area
2017-01-15 Markus Gans <guru.mail@muenster.de>
* Virtual window gets a preprocessing handler. This allows
a preprocessing method to be called before the vterm is updated.
2017-01-07 Markus Gans <guru.mail@muenster.de>
* Add scrollTo and scrollBy methods to FScrollView
2017-01-03 Markus Gans <guru.mail@muenster.de>
* FScrollView now has on-demand scroll bars
* Arrow keys support for FScrollView viewport scrolling
2017-01-02 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Reduce public methods in FVTerm
2016-12-27 Markus Gans <guru.mail@muenster.de>
* Avoid non-working tab-cursor-movements on Linux terminals
with activated PC or VT100 encoding
2016-12-26 Markus Gans <guru.mail@muenster.de>
* Add the ability to stream text into a widget's virtual window
with print() << '#' << 5; or *this << ...
2016-12-22 Markus Gans <guru.mail@muenster.de>
* VTerm marks printed characters for a correct determination
of unchanged characters
* Correct gpm detection in configure script
2016-12-18 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Reduce the character output by using character erase
and character repeat
2016-12-11 Markus Gans <guru.mail@muenster.de>
* Accelerates text line drawing by clear with CSI sequences
to begin or to end of the current line.
2016-11-29 Markus Gans <guru.mail@muenster.de>
* Restore the xterm window title and font
only if it could be read before
2016-11-27 Markus Gans <guru.mail@muenster.de>
* Some minor bug fixes
* Version 0.3.0
2016-11-26 Markus Gans <guru.mail@muenster.de>
* Improvements for ansi terminal emulators
* Add the opti-move test program
* Optimized the terminal clear screen
2016-11-20 Markus Gans <guru.mail@muenster.de>
* Increase speed on cygwin terminals
* Improve tty settings
2016-11-13 Markus Gans <guru.mail@muenster.de>
* Do not draw shadows on a Linux console if not
all characters are available
2016-11-12 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* The adjustment of xterm default colors now is configurable
2016-11-05 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* xterm should be able to use at least 16 colors
2016-11-01 Markus Gans <guru.mail@muenster.de>
* The class declaration now has a consistent order
2016-10-17 Markus Gans <guru.mail@muenster.de>
* Refactor the VGA attribute controller access code
2016-10-15 Markus Gans <guru.mail@muenster.de>
* Each virtual window gets its own virtual print cursor
2016-10-14 Markus Gans <guru.mail@muenster.de>
* Virtual windows can now store their own offset information
* Correct implementation of the move() method
2016-10-13 Markus Gans <guru.mail@muenster.de>
* Reduces in the code the number of friend classes
2016-10-11 Markus Gans <guru.mail@muenster.de>
* Separate the virtual terminal into a own class vterm
2016-10-09 Markus Gans <guru.mail@muenster.de>
* Remove some duplicate code
2016-10-08 Markus Gans <guru.mail@muenster.de>
* Add the possibility to scroll text up and down
in a virtual window
2016-10-06 Markus Gans <guru.mail@muenster.de>
* The input cursor is now controlled by the virtual terminal
2016-10-02 Markus Gans <guru.mail@muenster.de>
* FStatusBar and FMenuBar use now the always-on-top
window option
2016-10-01 Markus Gans <guru.mail@muenster.de>
* Add an always-on-top mode for window objects
* New FToolTip widget to show assisted information
2016-09-30 Markus Gans <guru.mail@muenster.de>
* Using arrow keys to move or to resize a window
2016-09-28 Markus Gans <guru.mail@muenster.de>
* The size is now dynamically changeable with the mouse
in a resizable window.
2016-09-26 Markus Gans <guru.mail@muenster.de>
* FLabel now transmits the Click events to the parent widget
2016-09-25 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Activate the title bar menu with ctrl+^
2016-09-11 Markus Gans <guru.mail@muenster.de>
* New zoom interaction-elements to maximize a FDialog
2016-09-08 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* FButton, FLineEdit and FProgressbar has shadow now enabled
by default
* FDialog has now transparent shadow as default
2016-09-03 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Method setGeometry assigns now the full widget size to
the double_flatline_mask (previously, it was the adjust size)
2016-08-28 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* A new inherit background option for characters
* Use inherit background for the simple shadows
* Updating the transparent example program
2016-08-25 Markus Gans <guru.mail@muenster.de>
* Use the new transparent shadow option in drawShadow()
2016-08-21 Markus Gans <guru.mail@muenster.de>
* Improved transparent shadow background
* Add "transparent" example to demonstrate transparency
2016-08-20 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Screen characters now have a transparent
and a transparent shadow option
2016-07-31 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Delete all callbacks from a widget with delCallbacks()
* Remove dialog list item callback from the associated window
2016-07-28 Markus Gans <guru.mail@muenster.de>
* Improvements for the window focus
2016-07-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Add a modifier key correction for the Linux tty
* Support to read meta+enter from keyboard
2016-07-16 Markus Gans <guru.mail@muenster.de>
* Support to read meta+tab from keyboard
2016-07-16 Markus Gans <guru.mail@muenster.de>
* Switch to a specific dialog with meta key + 1..9
* Add more meta key escape sequences (for putty)
2016-07-14 Markus Gans <guru.mail@muenster.de>
* Adding a dialog list with the entries in the chronological
order of the generation
2016-07-13 Markus Gans <guru.mail@muenster.de>
* Bind accelerator key from the FMenuItem to the root widget
2016-07-12 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Remove obsolete code from FDialog destructor
* FDialog focus fix
2016-07-08 Markus Gans <guru.mail@muenster.de>
* Better code readability: control structures (if/else, while, switch)
are now separated by a blank line.
2016-07-06 Markus Gans <guru.mail@muenster.de>
* Stop terminal updates during processCloseWidget() is working
2016-07-03 Markus Gans <guru.mail@muenster.de>
* Add the new class FDialogListMenu to switch between dialog menus
* More consistent method names:
rename parentWidget() to getParentWidget()
2016-06-27 Markus Gans <guru.mail@muenster.de>
* Fix the use-after-free bug for previous_widget
2016-06-26 Markus Gans <guru.mail@muenster.de>
* Bug fix for FWindow::activatePrevWindow()
2016-06-25 Markus Gans <guru.mail@muenster.de>
* Move processNextEvent() code into sub functions
2016-06-22 Markus Gans <guru.mail@muenster.de>
* Adding required updateTerminal() calls for FMenuBar
2016-06-19 Markus Gans <guru.mail@muenster.de>
* Clear status bar text in FMenuBar::leaveMenuBar()
* Fixes some status bar update issues and focus problems
2016-06-18 Markus Gans <guru.mail@muenster.de>
* Improved status bar text updating at window change
2016-06-16 Markus Gans <guru.mail@muenster.de>
* Bug fix in FTerm updateVTerm() for updates from vdesktop
* Bug fix in FDialog onWindowActive() for combined setFocus()
and activateWindow()
2016-06-13 Markus Gans <guru.mail@muenster.de>
* Improved title bar menu integration
2016-06-12 Markus Gans <guru.mail@muenster.de>
* Add a title bar menu to close dialogs
2016-05-24 Markus Gans <guru.mail@muenster.de>
* Use nl_langinfo to determine the numeric thousands separator
for Fstring::setFormatedNumber as default parameter
2016-05-22 Markus Gans <guru.mail@muenster.de>
* Fix for menus in modal dialogs
2016-05-16 Markus Gans <guru.mail@muenster.de>
* Improve adjustSize()
* Implement adjustSizeGlobal() for all widgets
* Don't focus menus with focusFirstChild() and focusLastChild()
* Remove duplicate code
2016-05-01 Markus Gans <guru.mail@muenster.de>
* Better terminal identification
2016-04-30 Markus Gans <guru.mail@muenster.de>
* Improve 256 color terminal detection
2016-04-19 Markus Gans <guru.mail@muenster.de>
* Fix the missing typecast for SpecialCharacter in "ui.cpp"
2016-02-04 Markus Gans <guru.mail@muenster.de>
* KDE Konsole detection improved
* OSC sequence support for GNU Screen and tmux
2016-01-31 Markus Gans <guru.mail@muenster.de>
* Better escape sequences readability through
symbolic names like ESC, CSI or OSC
2016-01-24 Markus Gans <guru.mail@muenster.de>
* Moving widget flags into the class fc
2016-01-17 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Better default color handling in FOptiAttr
2016-01-07 Markus Gans <guru.mail@muenster.de>
* Add the new class FOptiAttr to control video attributes and colors
for output on terminals
2015-12-23 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Add delOwnTimer() for FObject
* Close sub-menu on right and middle click
* Version 0.2.0
2015-12-18 Markus Gans <guru.mail@muenster.de>
* Optimize menu example
* More string types for FString relational operators
2015-12-16 Markus Gans <guru.mail@muenster.de>
* Avoid to show menus outside of the screen
2015-12-12 Markus Gans <guru.mail@muenster.de>
* Improve sub-sub-menu handling
2015-12-10 Markus Gans <guru.mail@muenster.de>
* PC encoding: Avoid to print ASCII sign 0x00..0x1f in xterm
* Newfont Bullet sign
2015-12-08 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Better handling of empty strings in FLineEdit and FButton
* Add a sub-menu to the "ui.cpp" example
2015-11-25 Markus Gans <guru.mail@muenster.de>
* Small menu improvements
2015-11-24 Markus Gans <guru.mail@muenster.de>
* Improved mouse and keyboard handling in sub-menus
2015-11-22 Markus Gans <guru.mail@muenster.de>
* Add sub-menu support
2015-11-19 Markus Gans <guru.mail@muenster.de>
* Add the missing resetXTermHighlightBackground method
2015-11-15 Markus Gans <guru.mail@muenster.de>
* Add two new classes FCheckMenuItem and FRadioMenuItem
for menu check marks and menu option marks (bullets)
2015-11-12 Markus Gans <guru.mail@muenster.de>
* Improve menu accelerator keys
* Shows accelerator keys on the right side of the FMenu.
2015-11-08 Markus Gans <guru.mail@muenster.de>
* Activate the previous window in case if the menu is open and
the mouse click has activated no window.
2015-11-07 Markus Gans <guru.mail@muenster.de>
* Improved menu focus handling
* Menu supports newfont
2015-11-05 Markus Gans <guru.mail@muenster.de>
* Menu bar navigation without menu drop down
2015-11-03 Markus Gans <guru.mail@muenster.de>
* Improve keyboard shortcut handling in menus
2015-11-01 Markus Gans <guru.mail@muenster.de>
* First working version of an application menu,
it uses the new classes FMenuBar, FMenu and FMenuItem
(alpha state)
2015-10-29 Markus Gans <guru.mail@muenster.de>
* Support for the menu key
2015-10-23 Markus Gans <guru.mail@muenster.de>
* Color setting improvements
2015-10-22 Markus Gans <guru.mail@muenster.de>
* Make cursor visibility more standards compliant.
2015-10-18 Markus Gans <guru.mail@muenster.de>
* Hidden windows are now non-clickable
2015-10-17 Markus Gans <guru.mail@muenster.de>
* More faster header inline code
* Improve getXTermFont() and getXTermTitle()
* Newfont characters are now printable in FLabel, FMenuBar and FMenu.
2015-10-16 Markus Gans <guru.mail@muenster.de>
* Fixed: calculator behavior for negative values
in trigonometric functions
2015-10-13 Markus Gans <guru.mail@muenster.de>
* Reduce the number of getParent() function calls for print operations
2015-10-11 Markus Gans <guru.mail@muenster.de>
* Improve attribute setting for bold, reverse and underline output
* Better support for monochrom terminals
2015-10-10 Markus Gans <guru.mail@muenster.de>
* Deactivate a key from the status bar automatically
after getting back from the callback.
2015-10-09 Markus Gans <guru.mail@muenster.de>
* Eliminate duplicate code
2015-10-06 Markus Gans <guru.mail@muenster.de>
* Refactoring FTerm::init()
2015-10-05 Markus Gans <guru.mail@muenster.de>
* Improve compatibility with initialize_color
* Better support for TeraTerm
2015-10-02 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Some code improvements
2015-09-27 Markus Gans <guru.mail@muenster.de>
* Add methods getPos and setPos to FRect and FWidget
2015-09-24 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Further code optimizations
2015-09-22 Markus Gans <guru.mail@muenster.de>
* Add the possibility to hide a virtual window
* Some code optimizations
2015-09-18 Markus Gans <guru.mail@muenster.de>
* Fixed compile error on 32-bit architectures
2015-08-08 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* init() method for the FStatusKey constructor
to avoid code duplication
2015-07-18 Markus Gans <guru.mail@muenster.de>
* Add multiple lines support for FLabel
2015-07-12 Markus Gans <guru.mail@muenster.de>
* Improve focusFirstChild() and focusLastChild()
2015-07-09 Markus Gans <guru.mail@muenster.de>
* Better contrast on 8 color terminals
2015-07-06 Markus Gans <guru.mail@muenster.de>
* Bug fix disable cursor on focus FSwitch
* Hold down the mouse button displays FSwitch in a different color.
2015-07-04 Markus Gans <guru.mail@muenster.de>
* New class FSwitch
* Add the watch example to demonstrate FSwitch
* Version 0.1.1
2015-07-02 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Use the object timer for the click animation in FButton
2015-06-28 Markus Gans <guru.mail@muenster.de>
* Add exception handling for toLong() and toULong()
in FString
2015-06-27 Markus Gans <guru.mail@muenster.de>
* Add toFloat(), toDouble() and setNumber(...) for
floating point values to FString
2015-06-22 Markus Gans <guru.mail@muenster.de>
* Add a simple calculator with trigonometric functions
2015-06-21 Markus Gans <guru.mail@muenster.de>
* 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 <guru.mail@muenster.de>
* Add the possibility to change the colors from FButton
2015-06-15 Markus Gans <guru.mail@muenster.de>
* Add the possibility to turn off click animation
on FButton
2015-06-14 Markus Gans <guru.mail@muenster.de>
* correction for the modifier letter small x
in the character map
2015-06-12 Markus Gans <guru.mail@muenster.de>
* Add Some mathematical signs to the character map
2015-05-28 Markus Gans <guru.mail@muenster.de>
* Add keyword 'explicit' to some constructors
2015-05-25 Markus Gans <guru.mail@muenster.de>
* Add a Mandelbrot set program
2015-05-24 Markus Gans <guru.mail@muenster.de>
* Bug fix in FLineEdit (ypos from the label)
* Bug fix in FDialog onWindowActive (status bar check)
2015-05-15 Markus Gans <guru.mail@muenster.de>
* 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