|
FTXUI 6.1.9
C++ functional terminal UI.
|
If all goes well (pending), ftxui should appear in the Bazel central repository. It can be imported into your project using the following lines:
MODULE.bazel
Thanks @robinlinden and @kcc for the reviews.
dbox behavior from ftxui 5.0.0. To apply bgcolor blending between the two layers, a new dboxBlend will be added.Feature: Support bazel build system. See #1032. Proposed by Kostya Serebryany @kcc
BUILD.bazel
ResizeableSplit with negative size.Same as v6.0.0.
Due to a problem tag v6.0.0 was replaced. This isn't a good practice and affect developers that started using it in the short timeframe. Submitting a new release with the same content is the best way to fix this.
See #1017 and #1019.
ScreenInteractive::ForceHandleCtrlC(false) to allow component to fully override the default Ctrl+C handler.ScreenInteractive::ForceHandleCtrlZ(false) to allow component to fully override the default Ctrl+Z handler.Mouse::WeelLeft and Mouse::WeelRight events on supported terminals.Event::DebugString().Input's insert mode. Add InputOption::insert option. Added by @mingsheng13.DropdownOption to configure the dropdown. See #826.ScreenInteractive::GetSelection().ScreenInteractive::SelectionChange(...) listener.Mouse transition:ScreenInteractive::FullscreenPrimaryScreen(). This allows displaying a fullscreen component on the primary screen, as opposed to the alternate screen.Input onchange was not called on backspace or delete key. Fixed by @chrysante in chrysante in PR #776.ResizeableSplit keyboard navigation. Fixed by #842.Menu focus. See #841ComponentBase::Index(). This allows to get the index of a component in its parent. See #932EntryState::index. This allows to get the index of a menu entry. See #932SliderOption::on_change. This allows to set a callback when the slider value changes. See #938.Dropdown with no entries.LinearGradient due to float precision and an off-by-one mistake. See #998.italic decorator. For instance: hscroll_indicator. It display an horizontal indicator reflecting the current scroll position. Proposed by @ibrahimnasson in issue 752extend_beyond_screen option to Dimension::Fit(..), allowing the element to be larger than the screen. Proposed by @LordWhiro. See #572 and #949.selectionColor decorator.selectionBackgroundColor decorator.selectionForegroundColor decorator.selectionStyle(style) decorator.selectionStyleReset decorator.Component::OnRender() becomes the method to override to render a component. This replaces Component::Render() that is still in use to call the rendering method on the children. This change allows to fix a couple of issues around focus handling.Box::IsEmpty().Color::RGBA(r,g,b,a).Color::HSVA(r,g,b,a).Color::Blend(Color).Color::IsOpaque()Adapter for ConstStringListRef. See #843.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.ScreenInteractive::TrackMouse(false) disable mouse support.hyperlink decorator. For instance: 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_DOCSFTXUI_BUILD_EXAMPLEDASHED enum, and separatorDashed(), borderDashed() functions.borderStyled(BorderStyle, Color) and borderStyled(Color).LinearGradient. It can be used in color and bgColor.graph area is positive.This version is abandonned and must not be used. It introduced a breaking change in the API.
strikethroughunderlinedDoublefocusCursorBlockfocusCursorBlockBlinkingfocusCursorBarfocusCursorBarBlinkingfocusCursorUnderlinefocusCursorUnderlineBlinkingfocus/select when the vbox/hbox/dbox contains a flexboxvscroll_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) -> Boxdim 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: 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.Supportflexboxdom elements. This is build symmetrically to the HTML one. All the following attributes are supported: direction, wrap, justify-content, align-items, align-content, gapAdd the dom elements helper based onflexbox: -paragraph -paragraphAlignLeft -paragraphAlignCenter -paragraphAlignRight -paragraphAlignJustifyAdd the helper elements based onflexbox:hflow(),vflow().Add:focusPositionRelativeandfocusPositionAddTable` 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.BUILD_SHARED_LIBS option.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.Maybe: Display an component conditionnally based on a boolean.Dropdown: A dropdown select list.The initial release where changelog where written.
This version includes:
text & vtextseparator and 5 variations.gaugeborder and 6 variations.windowspinnerparagraph and hflow.hboxvboxdboxgridboxframe: 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. fillerbolddiminvertedblinkcolorbgcolorclearunderContainer::VerticalContainer::HorizontalContainer::TabButtonCheckboxInputMenuMenuEntryRadioboxToggleSliderRenderer & variationsCatchEvent