:computer: C++ Functional Terminal User Interface. :heart:
ComponentBase
copy constructor/assignment.Ref<{Component}Option>
becomes {Component}Option
in component constructors.ResizeableSplit
now support arbitrary element as a separator.input
is now supporting multiple lines.input
style is now customizeable.Component Button(ButtonOption options);
Component Checkbox(CheckboxOption options);
Component Input(InputOption options);
Component Menu(MenuOption options);
Component MenuEntry(MenuEntryOption options);
Component Radiobox(RadioboxOption options);
Component Slider(SliderOption<T> options);
Component ResizableSplit(ResizableSplitOption options);
ScreenInteractive::TrackMouse(false)
disable mouse support.hyperlink
decorator. For instance:
auto link = text("Click here") | hyperlink("https://github.com/FTXUI")
See the OSC 8 page.
FTXUI support proposed by @aaleino in #662.WordBreakProperty
becomes a uint8_t enum. This yields a 0.8%
performance improvement.FTXUI_DEV_WARNING
options to turn on warnings when building FTXUIFTXUI_BUILD_DOCS
FTXUI_BUILD_EXAMPLE
@ArthurSonzogni, @BurningEnlightenment, @GermanAizek, @LeeKyuHyuk, @LostInCompilation, @ProkopRandacek, @Ruebled, @SpaceIm, @StefanRvO, @avighnac, @cblack-dev, @clement-roblot, @dev-null-undefined, @hzeller , @jubalh, @lefticus , @lexika979, @mavam, @mingsheng13, @mr-mocap, @niosus, @p5quared, @robinlinden, @v1nns, @yrashk
DASHED
enum, and separatorDashed()
, borderDashed()
functions.borderStyled(BorderStyle, Color)
and borderStyled(Color)
.LinearGradient
. It can be used in color
and bgColor
.graph
area is positive.strikethrough
underlinedDouble
focusCursorBlock
focusCursorBlockBlinking
focusCursorBar
focusCursorBarBlinking
focusCursorUnderline
focusCursorUnderlineBlinking
focus
/select
when the vbox
/hbox
/dbox
contains a
flexbox
vscroll_indicator
with a zero inner size.vscroll_indicator
hidding the last column.Modal
component.Slider
supports taking references for all its arguments.Slider
supports SliderOption
. It supports:
ScreenInteractive::Exit()
.Loop
to give developers a better control on the main loop. This
can be used to integrate FTXUI into another main loop, without taking the full
control.Input
supports CTRL+Left and CTRL+RightInput
component.Menu
keeps the focus when an entry is selected with the
mouse.ButtonOption::Border()
. It was missing.Hoverable
component decorators.Box::Union(a,b) -> Box
dim
clashing with resetting of bold
.OnAnimation
method and
the animation::Animator to define some animated properties.
Menu
now support animations.Button
now supports animations.ScreenInteractive::Post(Task)
.Menu
can now be used in the 4 directions, using MenuOption.direction
.Menu
can display an animated underline, using
MenuOption.underline.enabled
.Button
is now taking the focus in frame.Toggle
component is now implemented using Menu
.Focusable()
.Focusable()
and
ActiveChild()
methods.operator|(Component, ComponentDecorator)
operator|(Component, ElementDecorator)
operator|=(Component, ComponentDecorator)
operator|=(Component, ElementDecorator)
Maybe
decorator.CatchEvent
decorator.Renderer
decorator.inverted
decorator now toggle in the inverted attribute.gauge
for the 4 directions. Expose the following API: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);
separatorHSelector
and separatorVSelector
elements. This can be used
to highlight an area.automerge
decorator. This makes separator characters to be merged
with others nearby.Table
rendering function, to allow automerging characters.vscroll_indicator
now computes its offset and size
correctly.operator|=(Element, Decorator)
Color::Interpolate(lambda, color_a, color_b)
.automerge
to the Pixel bit field. This now controls which pixels are
automatically merged.Canvas
class and ElementFrom('canvas')
function. Together users of
the library can draw using braille and block characters.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, gapflexbox
:
paragraph
paragraphAlignLeft
paragraphAlignCenter
paragraphAlignRight
paragraphAlignJustify
flexbox
: hflow()
, vflow()
.focusPositionRelative
and focusPosition
Table
constructor from 2D vector of Element, instead of string.collapsible
component.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.table
horizontal and vertical separator are now correctly expanded.Input
shouldn't take focus when hovered by the mouse.Input
's during on_enter/on_change event is now working correctly.paragraph
has been modified. It now returns en Element,
instead of a list of elements.The first version with a Changelog;
Element:
text
& vtext
separator
and 5 variations.gauge
border
and 6 variations.window
spinner
paragraph
and hflow
.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
Container::Vertical
Container::Horizontal
Container::Tab
Button
Checkbox
Input
Menu
MenuEntry
Radiobox
Toggle
Slider
Renderer
& variationsCatchEvent