mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-05-06 09:13:48 +08:00

It can be used to give developers a better control on the loop. Users can use it not to take full control of the thread, and poll FTXUI from time to time as part of an external loop. This resolves: https://github.com/ArthurSonzogni/FTXUI/issues/474
7.5 KiB
7.5 KiB
Changelog
current (development)
DOM
- Bugfix: Fix
focus
/select
when thevbox
/hbox
/dbox
contains aflexbox
- Bugfix: Fix the selected/focused area. It used to be 1 cell larger/longer than requested
- Bugfix: Forward the selected/focused area from the child in gridbox.
- Bugfix: Fix incorrect Canvas computed dimensions.
- Bugfix: Support
vscroll_indicator
with a zero inner size.
Component:
- Feature: Add the
Modal
component. - Feature:
Slider
supports taking references for all its arguments. - Feature:
Slider
supportsSliderOption
. It supports:- multiple directions.
- multiple colors.
- various values (value, min, max, increment).
- Feature: Define
ScreenInteractive::Exit()
. - Feature: Add
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. - Feature:
Input
supports CTRL+Left and CTRL+Right - Improvement: The
Menu
keeps the focus when an entry is selected with the mouse. - Bug: Add implementation of
ButtonOption::Border()
. It was missing.
Screen
- Feature: add
Box::Union(a,b) -> Box
- Bugfix: Fix resetting
dim
clashing with resetting ofbold
. - Feature: Add emscripten screen resize support.
- Bugfix: Add unicode 13 support for full width characters.
3.0.0
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:
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)
.
2.0.0
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.
0.11.1
Component
- Feature: Support for PageUp/PageDown/Home/End buttons.
- Bugfix: Check the selected element are within bounds for Dropdown.
Build
- Bugfix: Package library using the "Release config". Not debug.
0.11
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.
0.10 (2021-09-30)
Bug
- Fix the automated merge of borders.
Dom
Table()
class to build stylised table. See https://github.com/ArthurSonzogni/FTXUI/discussions/228vscroll_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.
0.9 (2021-09-26)
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.