2021-10-10 18:52:34 +08:00
|
|
|
Changelog
|
|
|
|
=========
|
2021-09-26 20:48:48 +08:00
|
|
|
|
2022-01-23 00:58:33 +08:00
|
|
|
current (development)
|
|
|
|
---------------------
|
|
|
|
|
2023-03-10 03:21:23 +08:00
|
|
|
### Component
|
|
|
|
- Breaking: MenuDirection enum is renamed Direction
|
2023-05-18 17:21:34 +08:00
|
|
|
- Breaking: GaugeDirection enum is renamed Direction
|
|
|
|
- Breaking: Direction enum is renamed WidthOrHeight
|
|
|
|
- Breaking: Remove `ComponentBase` copy constructor/assignment.
|
2023-06-25 23:22:05 +08:00
|
|
|
- Breaking: MenuOption::entries is renamed MenuOption::entries_option.
|
2023-08-13 23:36:41 +08:00
|
|
|
- Breaking: `Ref<{Component}Option>` becomes `{Component}Option` in component constructors.
|
2023-05-29 17:52:39 +08:00
|
|
|
- Feature: `ResizeableSplit` now support arbitrary element as a separator.
|
2023-05-18 17:21:34 +08:00
|
|
|
- Feature: `input` is now supporting multiple lines.
|
|
|
|
- Feature: `input` style is now customizeable.
|
2023-06-24 23:15:23 +08:00
|
|
|
- Bugfix: Support F1-F5 from OS terminal.
|
2023-06-25 23:22:05 +08:00
|
|
|
- Feature: Add struct based constructor:
|
|
|
|
```cpp
|
|
|
|
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);
|
|
|
|
```
|
2023-08-19 16:57:50 +08:00
|
|
|
- Feature: Add `ScreenInteractive::TrackMouse(false)` disable mouse support.
|
2023-05-18 17:21:34 +08:00
|
|
|
|
2023-06-05 03:06:19 +08:00
|
|
|
### Dom
|
|
|
|
- Feature: Add `hyperlink` decorator. For instance:
|
|
|
|
```cpp
|
|
|
|
auto link = text("Click here") | hyperlink("https://github.com/FTXUI")
|
|
|
|
```
|
|
|
|
See the [OSC 8 page](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda).
|
|
|
|
FTXUI support proposed by @aaleino in [#662](https://github.com/ArthurSonzogni/FTXUI/issues/662).
|
|
|
|
|
2023-08-03 23:41:54 +08:00
|
|
|
### Screen
|
|
|
|
- Breaking: `WordBreakProperty` becomes a uint8_t enum. This yields a 0.8%
|
|
|
|
performance improvement.
|
2023-08-08 06:46:51 +08:00
|
|
|
- Breaking: Remove user defined Pixel constructor and equality operator.
|
|
|
|
- Performance: 19% faster on benchmarks.
|
2023-08-03 23:41:54 +08:00
|
|
|
|
2023-06-05 03:06:19 +08:00
|
|
|
|
2023-05-19 23:50:23 +08:00
|
|
|
### Build
|
|
|
|
- Check version compatibility when using cmake find_package()
|
2023-06-04 20:35:08 +08:00
|
|
|
- Add `FTXUI_DEV_WARNING` options to turn on warnings when building FTXUI
|
|
|
|
- Turn OFF by default `FTXUI_BUILD_DOCS`
|
|
|
|
- Turn OFF by default `FTXUI_BUILD_EXAMPLE`
|
2023-05-19 23:50:23 +08:00
|
|
|
|
2023-05-29 17:52:39 +08:00
|
|
|
4.1.1
|
2023-05-18 17:21:34 +08:00
|
|
|
-----
|
|
|
|
|
|
|
|
### Component
|
|
|
|
- Fix: Support arrow keys in application mode
|
2023-03-31 23:44:01 +08:00
|
|
|
- Fix: Remove useless new line when using an alternative screen.
|
2023-03-10 03:21:23 +08:00
|
|
|
|
2023-03-16 05:50:27 +08:00
|
|
|
### Dom
|
2023-05-19 17:59:23 +08:00
|
|
|
- Feature: Add the dashed style for border and separator:
|
|
|
|
- See `DASHED` enum, and `separatorDashed()`, `borderDashed()` functions.
|
2023-03-16 20:15:14 +08:00
|
|
|
- Feature: Add colored borders.
|
2023-05-19 17:59:23 +08:00
|
|
|
- See functions: `borderStyled(BorderStyle, Color)` and `borderStyled(Color)`.
|
|
|
|
- Feature: Add `LinearGradient`. It can be used in `color` and `bgColor`.
|
2023-03-22 20:59:02 +08:00
|
|
|
- Improvement: Color::Interpolate() uses gamma correction.
|
2023-05-18 17:21:34 +08:00
|
|
|
- Fix: Check the `graph` area is positive.
|
2023-03-16 05:50:27 +08:00
|
|
|
|
2023-05-18 17:21:34 +08:00
|
|
|
### Build/Install
|
|
|
|
- Use globally set CMAKE_CXX_STANDARD if it is set.
|
2023-05-29 17:52:39 +08:00
|
|
|
- Expose the pkg-config file
|
|
|
|
- Check version compatibility when using cmake find_package()
|
|
|
|
|
|
|
|
4.1.0 (Abandonned)
|
|
|
|
-----
|
|
|
|
This version is abandonned and must not be used. It introduced a breaking change in the API.
|
2023-03-10 03:21:23 +08:00
|
|
|
|
2023-02-12 21:09:47 +08:00
|
|
|
4.0.0
|
|
|
|
-----
|
|
|
|
|
2022-05-23 03:41:29 +08:00
|
|
|
### DOM
|
2023-01-22 18:02:27 +08:00
|
|
|
- Feature: more styles:
|
|
|
|
- `strikethrough`
|
|
|
|
- `underlinedDouble`
|
2022-11-11 21:09:53 +08:00
|
|
|
- Feature: Customize the cursor. Add the following decorators:
|
|
|
|
- `focusCursorBlock`
|
|
|
|
- `focusCursorBlockBlinking`
|
|
|
|
- `focusCursorBar`
|
|
|
|
- `focusCursorBarBlinking`
|
|
|
|
- `focusCursorUnderline`
|
|
|
|
- `focusCursorUnderlineBlinking`
|
2022-05-23 03:41:29 +08:00
|
|
|
- Bugfix: Fix `focus`/`select` when the `vbox`/`hbox`/`dbox` contains a
|
|
|
|
`flexbox`
|
2022-05-29 04:35:52 +08:00
|
|
|
- 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.
|
2022-06-02 03:13:39 +08:00
|
|
|
- Bugfix: Fix incorrect Canvas computed dimensions.
|
2022-08-22 05:04:32 +08:00
|
|
|
- Bugfix: Support `vscroll_indicator` with a zero inner size.
|
2023-02-12 20:51:51 +08:00
|
|
|
- Bugfix: Fix `vscroll_indicator` hidding the last column.
|
2022-05-23 03:41:29 +08:00
|
|
|
|
2022-06-12 23:08:22 +08:00
|
|
|
### Component:
|
|
|
|
- Feature: Add the `Modal` component.
|
2022-08-13 22:26:53 +08:00
|
|
|
- Feature: `Slider` supports taking references for all its arguments.
|
2022-08-31 00:52:33 +08:00
|
|
|
- Feature: `Slider` supports `SliderOption`. It supports:
|
|
|
|
- multiple directions.
|
|
|
|
- multiple colors.
|
|
|
|
- various values (value, min, max, increment).
|
2022-10-19 03:29:27 +08:00
|
|
|
- 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.
|
2022-10-07 03:16:55 +08:00
|
|
|
- Feature: `Input` supports CTRL+Left and CTRL+Right
|
2022-11-11 21:09:53 +08:00
|
|
|
- Feature: Use a blinking bar in the `Input` component.
|
2022-08-21 23:23:13 +08:00
|
|
|
- Improvement: The `Menu` keeps the focus when an entry is selected with the
|
|
|
|
mouse.
|
2022-10-19 04:58:22 +08:00
|
|
|
- Bugfix: Add implementation of `ButtonOption::Border()`. It was missing.
|
|
|
|
- Bugfix: Provide the correct key for F1-F4 and F11.
|
2022-12-04 18:54:49 +08:00
|
|
|
- Feature: Add the `Hoverable` component decorators.
|
2022-06-12 23:08:22 +08:00
|
|
|
|
2022-05-23 03:41:29 +08:00
|
|
|
### Screen
|
|
|
|
- Feature: add `Box::Union(a,b) -> Box`
|
2022-08-22 05:04:32 +08:00
|
|
|
- Bugfix: Fix resetting `dim` clashing with resetting of `bold`.
|
|
|
|
- Feature: Add emscripten screen resize support.
|
2022-09-29 16:50:27 +08:00
|
|
|
- Bugfix: Add unicode 13 support for full width characters.
|
2022-11-19 21:22:44 +08:00
|
|
|
- Bugfix: Fix MSVC treating codecvt C++17 deprecated function as an error.
|
2022-05-23 03:41:29 +08:00
|
|
|
|
2023-01-15 03:37:42 +08:00
|
|
|
### Build
|
|
|
|
- Support using the google test version provided by the package manager.
|
|
|
|
|
2022-03-21 03:58:56 +08:00
|
|
|
3.0.0
|
|
|
|
-----
|
|
|
|
|
2022-02-19 17:48:07 +08:00
|
|
|
### 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
|
2022-03-21 01:13:11 +08:00
|
|
|
- **Animations** module! Components can implement the `OnAnimation` method and
|
|
|
|
the animation::Animator to define some animated properties.
|
2022-03-14 01:51:46 +08:00
|
|
|
- `Menu` now support animations.
|
|
|
|
- `Button` now supports animations.
|
2022-02-13 18:11:34 +08:00
|
|
|
- Support SIGTSTP. (ctrl+z).
|
|
|
|
- Support task posting. `ScreenInteractive::Post(Task)`.
|
2022-03-14 01:51:46 +08:00
|
|
|
- `Menu` can now be used in the 4 directions, using `MenuOption.direction`.
|
|
|
|
- `Menu` can display an animated underline, using
|
|
|
|
`MenuOption.underline.enabled`.
|
2022-04-03 21:04:33 +08:00
|
|
|
- `Button` is now taking the focus in frame.
|
2022-03-14 01:51:46 +08:00
|
|
|
- **breaking** All the options are now using a transform function.
|
|
|
|
- **breaking** The `Toggle` component is now implemented using `Menu`.
|
2022-02-19 18:49:12 +08:00
|
|
|
- **bugfix** Container::Tab implements `Focusable()`.
|
|
|
|
- **bugfix** Improved default implementations of ComponentBase `Focusable()` and
|
|
|
|
`ActiveChild()` methods.
|
2022-03-04 20:23:45 +08:00
|
|
|
- **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
|
2022-03-12 22:18:36 +08:00
|
|
|
- Add decorator for components:
|
|
|
|
- `operator|(Component, ComponentDecorator)`
|
|
|
|
- `operator|(Component, ElementDecorator)`
|
2022-03-14 01:51:46 +08:00
|
|
|
- `operator|=(Component, ComponentDecorator)`
|
2022-03-12 22:18:36 +08:00
|
|
|
- `operator|=(Component, ElementDecorator)`
|
|
|
|
- Add the `Maybe` decorator.
|
|
|
|
- Add the `CatchEvent` decorator.
|
|
|
|
- Add the `Renderer` decorator.
|
2022-04-27 17:33:42 +08:00
|
|
|
- **breaking** remove the "deprectated.hpp" header and Input support for wide
|
|
|
|
string.
|
2022-02-13 18:11:34 +08:00
|
|
|
|
2022-03-14 01:51:46 +08:00
|
|
|
### 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)`.
|
|
|
|
|
2022-01-23 00:58:33 +08:00
|
|
|
2.0.0
|
|
|
|
-----
|
2021-09-26 21:19:17 +08:00
|
|
|
|
2021-12-12 00:58:25 +08:00
|
|
|
### Features:
|
2021-12-13 04:31:54 +08:00
|
|
|
|
2022-01-22 22:38:01 +08:00
|
|
|
#### Screen
|
|
|
|
- Add the `automerge` to the Pixel bit field. This now controls which pixels are
|
|
|
|
automatically merged.
|
|
|
|
|
2021-12-13 04:31:54 +08:00
|
|
|
#### DOM:
|
2021-12-23 21:17:33 +08:00
|
|
|
- Add the `Canvas` class and `ElementFrom('canvas')` function. Together users of
|
|
|
|
the library can draw using braille and block characters.
|
2021-12-12 00:58:25 +08:00
|
|
|
- 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()`.
|
2021-12-13 18:38:31 +08:00
|
|
|
- Add: `focusPositionRelative` and `focusPosition`
|
2022-01-16 23:46:32 +08:00
|
|
|
- Add `Table` constructor from 2D vector of Element, instead of string.
|
2021-12-13 18:38:31 +08:00
|
|
|
|
|
|
|
#### Component
|
2022-01-02 22:48:56 +08:00
|
|
|
- Add the `collapsible` component.
|
2022-01-19 20:38:39 +08:00
|
|
|
- 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.
|
2021-12-12 00:58:25 +08:00
|
|
|
|
2021-12-13 04:31:54 +08:00
|
|
|
### Bug
|
|
|
|
|
2022-01-22 22:38:01 +08:00
|
|
|
#### Table
|
|
|
|
- The `table` horizontal and vertical separator are now correctly expanded.
|
|
|
|
|
2021-12-13 04:31:54 +08:00
|
|
|
#### Component
|
|
|
|
- `Input` shouldn't take focus when hovered by the mouse.
|
|
|
|
- Modifying `Input`'s during on_enter/on_change event is now working correctly.
|
|
|
|
|
2021-12-12 00:58:25 +08:00
|
|
|
### Breaking changes:
|
|
|
|
- The behavior of `paragraph` has been modified. It now returns en Element,
|
2021-12-13 04:31:54 +08:00
|
|
|
instead of a list of elements.
|
2021-11-07 19:01:17 +08:00
|
|
|
|
2021-10-24 03:13:23 +08:00
|
|
|
0.11.1
|
|
|
|
------
|
2021-10-22 20:04:07 +08:00
|
|
|
|
2021-10-24 03:13:23 +08:00
|
|
|
# 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.
|
2021-10-22 20:04:07 +08:00
|
|
|
|
2021-10-17 22:03:18 +08:00
|
|
|
0.11
|
|
|
|
----
|
|
|
|
|
|
|
|
## github workflow
|
|
|
|
- Add Windows ad MacOS artefacts.
|
|
|
|
- Merge all the workflows.
|
|
|
|
|
2021-10-09 17:51:00 +08:00
|
|
|
## Bug
|
|
|
|
- On Unix system, fallback to {80,25} screen dimension on failure.
|
|
|
|
|
2021-10-10 18:52:34 +08:00
|
|
|
## CMake
|
|
|
|
- Support for shared library, via `BUILD_SHARED_LIBS` option.
|
|
|
|
- Add library version and symlinks.
|
|
|
|
|
|
|
|
0.10 (2021-09-30)
|
|
|
|
--------------------
|
2021-10-01 03:13:16 +08:00
|
|
|
|
|
|
|
## Bug
|
|
|
|
- Fix the automated merge of borders.
|
|
|
|
|
2021-09-26 21:19:17 +08:00
|
|
|
### Dom
|
2021-10-16 05:04:11 +08:00
|
|
|
- `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.
|
2021-09-26 21:19:17 +08:00
|
|
|
|
|
|
|
### Component
|
2021-10-16 05:04:11 +08:00
|
|
|
- `Maybe`: Display an component conditionnally based on a boolean.
|
|
|
|
- `Dropdown`: A dropdown select list.
|
2021-09-26 21:19:17 +08:00
|
|
|
|
2021-10-10 18:52:34 +08:00
|
|
|
0.9 (2021-09-26)
|
|
|
|
----------------
|
2021-09-26 20:48:48 +08:00
|
|
|
|
|
|
|
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` 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`
|
|
|
|
|
|
|
|
### Component
|
|
|
|
|
|
|
|
- Container:
|
|
|
|
- `Container::Vertical`
|
|
|
|
- `Container::Horizontal`
|
|
|
|
- `Container::Tab`
|
|
|
|
- `Button`
|
|
|
|
- `Checkbox`
|
|
|
|
- `Input`
|
|
|
|
- `Menu`
|
|
|
|
- `MenuEntry`
|
|
|
|
- `Radiobox`
|
|
|
|
- `Toggle`
|
|
|
|
- `Slider`
|
|
|
|
- `Renderer` & variations
|
|
|
|
- `CatchEvent`
|
|
|
|
|
|
|
|
### MISC
|
|
|
|
|
|
|
|
- Fuzzer
|
|
|
|
- Tests using gtest.
|
|
|
|
- Doxygen documentation
|
|
|
|
- IWYU
|
|
|
|
- 52 examples.
|
|
|
|
- Support for WebAssembly.
|
|
|
|
- Support for Window and fallback for broken terminal.
|