All Versions
6
Latest Version
Avg Release Cycle
4 days
Latest Release
-
Changelog History
Changelog History
-
v3.0.0 Changes
๐ Build
- ๐ฅ breaking: The library prefix is now back to "lib" (the default). This means non-cmake users should not link against "libftxui-dom" for instance.
Component
- Animations module! Components can implement the
OnAnimation
method and the animation::Animator to define some animated properties.Menu
now support animations.Button
now supports animations.
- ๐ Support SIGTSTP. (ctrl+z).
- ๐ Support task posting.
ScreenInteractive::Post(Task)
. Menu
can now be used in the 4 directions, usingMenuOption.direction
.Menu
can display an animated underline, usingMenuOption.underline.enabled
.Button
is now taking the focus in frame.- ๐ฅ breaking All the options are now using a transform function.
- ๐ฅ breaking The
Toggle
component is now implemented usingMenu
. - ๐ bugfix Container::Tab implements
Focusable()
. - ๐ bugfix Improved default implementations of ComponentBase
Focusable()
andActiveChild()
methods. - ๐ bugfix Automatically convert '\r' keys into '\n' for Linux programs that do not send the correct code for the return key, like the 'bind'. https://github.com/ArthurSonzogni/FTXUI/issues/337
- โ Add decorator for components:
operator|(Component, ComponentDecorator)
operator|(Component, ElementDecorator)
operator|=(Component, ComponentDecorator)
operator|=(Component, ElementDecorator)
- Add the
Maybe
decorator. - Add the
CatchEvent
decorator. - Add the
Renderer
decorator.
- ๐ฅ breaking remove the "deprectated.hpp" header and Input support for wide string.
DOM:
- ๐ฅ breaking: The
inverted
decorator now toggle in the inverted attribute. - โ Add
gauge
for the 4 directions. Expose the following API:cpp Element gauge(float ratio); Element gaugeLeft(float ratio); Element gaugeRight(float ratio); Element gaugeUp(float ratio); Element gaugeDown(float ratio); Element gaugeDirection(float ratio, GaugeDirection);
- โ Add
separatorHSelector
andseparatorVSelector
elements. This can be used to highlight an area. - โ Add the
automerge
decorator. This makes separator characters to be merged with others nearby. - ๐ Fix the
Table
rendering function, to allow automerging characters. - ๐ Bugfix: The
vscroll_indicator
now computes its offset and size correctly. - โ Add the
operator|=(Element, Decorator)
Screen:
- Add:
Color::Interpolate(lambda, color_a, color_b)
.
-
v2.0.0 Changes
๐ Features:
Screen
- โ Add the
automerge
to the Pixel bit field. This now controls which pixels are automatically merged.
DOM:
- โ Add the
Canvas
class andElementFrom('canvas')
function. Together users of the library can draw using braille and block characters. - ๐ Support
flexbox
dom elements. This is build symmetrically to the HTML one. All the following attributes are supported: direction, wrap, justify-content, align-items, align-content, gap - โ Add the dom elements helper based on
flexbox
:paragraph
paragraphAlignLeft
paragraphAlignCenter
paragraphAlignRight
paragraphAlignJustify
- โ Add the helper elements based on
flexbox
:hflow()
,vflow()
. - โ Add:
focusPositionRelative
andfocusPosition
- โ Add
Table
constructor from 2D vector of Element, instead of string.
Component
- โ Add the
collapsible
component. - โ Add the
ScreenInteractive::WithRestoredIO
. This decorates a callback. This runs it with the terminal hooks temporarilly uninstalled. This is useful if you want to execute command using directly stdin/stdout/sterr.
๐ Bug
Table
- The
table
horizontal and vertical separator are now correctly expanded.
Component
Input
shouldn't take focus when hovered by the mouse.- Modifying
Input
's during on_enter/on_change event is now working correctly.
๐ฅ Breaking changes:
- The behavior of
paragraph
has been modified. It now returns en Element, instead of a list of elements.
- โ Add the
-
v0.11.1
-
v0.11 Changes
github workflow
- โ Add Windows ad MacOS artefacts.
- ๐ Merge all the workflows.
๐ Bug
- On Unix system, fallback to {80,25} screen dimension on failure.
CMake
- Support for shared library, via
BUILD_SHARED_LIBS
option. - โ Add library version and symlinks.
-
v0.10 Changes
September 30, 2021๐ Bug
- ๐ Fix the automated merge of borders.
Dom
- ๐
Table()
class to build stylised table. See https://github.com/ArthurSonzogni/FTXUI/discussions/228 vscroll_indicator
. Show a scrollbar indicator on the right.separatorEmpty
. A separator drawing nothing.- ๐
separatorFixed
. A separator drawing the provided character.
Component
Maybe
: Display an component conditionnally based on a boolean.Dropdown
: A dropdown select list.
-
v0.9 Changes
September 26, 2021๐ The initial release where changelog where written.
This version includes:
screen
- ๐
Style:
- Bold.
- Blink.
- Dim.
- Inverted.
- Underlined.
- Foreground color.
- Background color.
- ๐ Support for UTF8 unicode.
- Full wide character: ๆต่ฏ.
- Combining characters: aโ
- A Stencil buffer.
- ๐ Automatically merge box drawing characters.
- Detect terminal dimension.
DOM
Element:
text
&vtext
separator
and 5 variations.gauge
border
and 6 variations.window
spinner
paragraph
andhflow
.
Layout:
hbox
vbox
dbox
gridbox
frame
: Drawing inside a virtual area, potentially larger than the real one.focus
,select
: scroll the inner view of a frame, to be in view.flex
& 8 variations.filler
Decorators:
bold
dim
inverted
blink
color
bgcolor
clearunder
Component
- Container:
Container::Vertical
Container::Horizontal
Container::Tab
Button
Checkbox
Input
Menu
MenuEntry
Radiobox
Toggle
Slider
Renderer
& variationsCatchEvent
MISC
- Fuzzer
- โ Tests using gtest.
- ๐ Doxygen documentation
- IWYU
- 52 examples.
- ๐ Support for WebAssembly.
- ๐ Support for Window and fallback for broken terminal.
- ๐
Style: