FTXUI v3.0.0 Release Notes

  • ๐Ÿ— 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, using MenuOption.direction.
    • Menu can display an animated underline, using MenuOption.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 using Menu.
    • ๐Ÿ›  bugfix Container::Tab implements Focusable().
    • ๐Ÿ›  bugfix Improved default implementations of ComponentBase Focusable() and ActiveChild() 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 and separatorVSelector 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).