FINAL CUT is a C++ class library and widget toolkit that enables developers to create text-based user interfaces. FINAL CUT is a standalone library that interacts directly with the terminal without relying on external libraries such as ncurses or termbox. FINAL CUT provides full mouse support, UTF-8 character encoding, full-width character support, and the ability to display combined Unicode characters. The library helps the programmer to create a text console application. It allows handling multiple text windows on the screen. The design of the C++ class structure of FINAL CUT was inspired by the Qt framework. It provides a variety of common controls, including dialog boxes, push buttons, check boxes, radio buttons, input lines, list boxes, and status bars. With FINAL CUT, developers can create text-based user interfaces that are both functional and visually appealing.

Tags development libraries c++ console tui widget toolkit terminal framework termcap
License GNU LGPLv3
State stable

Recent Releases

0.9.021 May 2023 22:36 minor feature: - Switched to the C++14 language standard - Strict use of trailing return type - Virtual window management has been completely rewritten and is now much faster - The way a widget gets the focus has been changed. Sending focus events is no longer a separate step - Reduced number of cycles to save CPU time - Speed up parsing of UTF-8 input - Added a ring buffer to hold unprocessed keyboard and mouse input. Advantages: pre-allocated memory and no expensive data copying or clearing - The output buffer queue has also been replaced with a ring buffer to improve performance - Key sequences are now identified using a hash map to speed up escape sequence searches - Faster drawing of shadows and boxes - Text highlighting (color and style) for the FTextView widget - FDialogListMenu is now automatically enabled and disabled depending on the number of dialogs - FFileDialog now shows the file filter in the title bar - Virtual windows can now also be moved up from the virtual terminal area - The FLineEdit and FTextView widgets now have additional public methods for more control - FLineEdit can set the alignment (left, center, or right) for the content of the entry - Individual columns can now be shown and hidden in FListView - Widget flags are now grouped in a hierarchical structure - New methods removeColumn() and removeAllColumns() for the FListView to remove columns - The terminal output class (derived from FOutput) can now be changed using the constructor of the FVTerm class - A new example demonstrating parallax scrolling with multi-layered stars - A new example for displaying X PixMap (XPM) images in a terminal - FObject now supports reverse iterators - The application is now notified when the focus in the terminal window changes through the new onTermFocusIn() and onTermFocusOut() event methods - FDialog size and position changes are now performed immediately before terminal output to redraw mouse-based changes just before output
0.8.031 Oct 2021 23:47 minor feature:
0.7.114 Nov 2020 20:39 minor feature:
0.7.007 Nov 2020 21:06 minor feature:
0.6.017 Oct 2019 13:08 minor feature:
0.5.025 Nov 2018 18:53 minor feature:
0.4.018 Jun 2018 00:49 minor feature: