Harri Pehkonen
1d0913bfb9
Adds opt-in support for applications that need to read piped data from stdin while still receiving interactive keyboard input ( #1094 )
...
Enables applications to read piped data while maintaining interactive
keyboard input by redirecting stdin to /dev/tty when explicitly enabled.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2025-10-19 17:17:28 +02:00
Copilot
252ce67830
Add min_size and max_size options to ResizableSplit component ( #1132 )
...
Build / Bazel, cl, windows-latest (push) Has been cancelled
Build / Bazel, clang++, macos-latest (push) Has been cancelled
Build / Bazel, clang++, ubuntu-latest (push) Has been cancelled
Build / Bazel, g++, macos-latest (push) Has been cancelled
Build / Bazel, g++, ubuntu-latest (push) Has been cancelled
Build / CMake, cl, windows-latest (push) Has been cancelled
Build / CMake, gcc, ubuntu-latest (push) Has been cancelled
Build / CMake, llvm, ubuntu-latest (push) Has been cancelled
Build / CMake, llvm, macos-latest (push) Has been cancelled
Build / Test modules (llvm, ubuntu-latest) (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
Bug:https://github.com/ArthurSonzogni/FTXUI/issues/1131
Bug:https://github.com/ArthurSonzogni/FTXUI/discussions/1130
2025-10-18 11:17:59 +02:00
Copilot
8249fcb41e
Add comprehensive GitHub Copilot instructions for FTXUI development ( #1121 )
Build / Bazel, cl, windows-latest (push) Has been cancelled
Build / Bazel, clang++, macos-latest (push) Has been cancelled
Build / Bazel, clang++, ubuntu-latest (push) Has been cancelled
Build / Bazel, g++, macos-latest (push) Has been cancelled
Build / Bazel, g++, ubuntu-latest (push) Has been cancelled
Build / CMake, cl, windows-latest (push) Has been cancelled
Build / CMake, gcc, ubuntu-latest (push) Has been cancelled
Build / CMake, llvm, ubuntu-latest (push) Has been cancelled
Build / CMake, llvm, macos-latest (push) Has been cancelled
Build / Test modules (llvm, ubuntu-latest) (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
2025-09-21 10:30:52 +02:00
ArthurSonzogni
d20b84f720
Fix receiver includes.
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (cl, cl, windows-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, macos-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, ubuntu-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, macos-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, ubuntu-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (cl, Windows MSVC, windows-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (gcc, Linux GCC, ubuntu-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, Linux Clang, ubuntu-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, MacOS clang, macos-latest) (push) Waiting to run
Build / Test modules (llvm, ubuntu-latest) (push) Waiting to run
Documentation / documentation (push) Waiting to run
2025-08-17 21:08:36 +02:00
Sylko Olzscher
40e1fac3d4
Warn against Microsoft <windows.h> min and max macro ( #1084 )
...
Warn users they have defined the min/max macros which is not
compatible with other code from the standard library or FTXUI.
Co-authored-by: Sylko Olzscher <sylko.olzscher@solostec.ch >
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2025-08-17 11:18:25 +02:00
Arthur Sonzogni
8ef18ab647
Remove pthread dependency
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (cl, cl, windows-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, macos-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, ubuntu-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, macos-latest) (push) Waiting to run
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, ubuntu-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (cl, Windows MSVC, windows-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (gcc, Linux GCC, ubuntu-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, Linux Clang, ubuntu-latest) (push) Waiting to run
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, MacOS clang, macos-latest) (push) Waiting to run
Build / Test modules (llvm, ubuntu-latest) (push) Waiting to run
Documentation / documentation (push) Waiting to run
2025-08-16 18:40:50 +02:00
Zane Zhou
68fc9b1212
Fix ScreenInteractive::FixedSize screen stomps on the history terminal output ( #1064 )
...
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (cl, cl, windows-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, macos-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (clang, clang++, ubuntu-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, macos-latest) (push) Has been cancelled
Build / Bazel, ${{ matrix.cxx }}, ${{ matrix.os }} (gcc, g++, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (cl, Windows MSVC, windows-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (gcc, Linux GCC, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, Linux Clang, ubuntu-latest) (push) Has been cancelled
Build / CMake, ${{ matrix.compiler }}, ${{ matrix.os }} (llvm, llvm-cov gcov, MacOS clang, macos-latest) (push) Has been cancelled
Build / Test modules (llvm, ubuntu-latest) (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2025-06-20 15:59:36 +02:00
Arthur Sonzogni
14da21b0ee
Improve documentation ( #1058 )
...
* Remove @ingroup from class member definitions
* Add the documentation for every public classes.
2025-06-05 11:35:14 +02:00
ArthurSonzogni
22576bae6b
Improve documentation theme.
2025-05-29 08:18:56 +02:00
Ayaan
b0e087ecef
Merge dom and component focus ( #978 )
...
Instead of two levels of focus with `focus` and `selected`, use a recursive
level. The components set the one "active" and hbox/vbox/dbox
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2025-03-19 15:33:05 +01:00
Clément Roblot
6fafa2dfed
Feature: Selection
...
Add support for selection content in the dom.
2024-12-27 09:45:13 +01:00
Mikołaj Lubiak
99df1ac8ba
Add SliderWithCallback
component ( #938 )
...
Add SliderOption::on_change.
Useful to observe a change to the value.
Signed-off-by: Mikołaj Lubiak <lubiak@proton.me >
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2024-10-29 08:03:59 +01:00
Herring
1d40687a40
Add index to EntryState ( #933 )
...
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2024-09-30 23:18:59 +02:00
Felix
7b1f4d435b
Solve issues with atomic copy ( #867 )
2024-05-26 15:28:05 +02:00
Arthur Sonzogni
8a2a9b0799
Generate compile commands for clangd. ( #855 )
...
Fix all the diagnostics reported.
Bug: https://github.com/ArthurSonzogni/FTXUI/issues/828
2024-05-01 14:32:22 +02:00
Jørn Gustav Larsen
d386df6f94
Enable raw keyboard input ( #832 )
...
In order for applications to receive all keyboard inputs, including the
Ctrl-C and Ctrl-Z, the raw input mode has been enabled. As result the
SIGINT will no longer be used, instead the keyboard Ctrl-C event is used
for exiting the framework, but only if no components has made use of it.
Co-authored-by: Jørn Gustav Larsen <jgl@fasttracksoftware.com >
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2024-04-28 15:17:54 +02:00
James
3c9fa60d28
Feature: Dropdown options with callback ( #826 )
...
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2024-04-06 17:45:10 +02:00
Arthur Sonzogni
a7b6785420
Restore cursor shape on exit. ( #793 ) ( #794 )
...
Fixed: https://github.com/ArthurSonzogni/FTXUI/issues/792
2023-12-17 10:35:21 +01:00
Arthur Sonzogni
348c3853d4
Restore cursor shape on exit. ( #793 )
...
Fixed: https://github.com/ArthurSonzogni/FTXUI/issues/792
2023-12-17 10:24:33 +01:00
Arthur Sonzogni
b970cb6ea8
feature: allow fullscreen without alternative screen ( #777 )
...
This should solve #766
The original PR was:
#767
Co-authored-by: rbrugo <brugo.riccardo@gmail.com >
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2023-11-11 17:57:07 +01:00
Clément Roblot
c31aecf2ed
Checkbox button debounce ( #774 )
...
This fixes: https://github.com/ArthurSonzogni/FTXUI/issues/773
Dragging the mouse with the left button pressed now avoids activating multiple
checkboxes.
Add support for detecting mouse press transition. Added:
```cpp
// The previous mouse event.
Mouse Mouse::previous;
// Return whether the mouse transitionned from:
// released to pressed => IsPressed()
// pressed to pressed => IsHeld()
// pressed to released => IsReleased()
bool Mouse::IsPressed(Button button) const;
bool Mouse::IsHeld(Button button) const;
bool Mouse::IsReleased(Button button) const;
```
A couple of components are now activated when the mouse is pressed,
as opposed to released.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2023-11-11 17:33:50 +01:00
benoitdudu
f499d34f7e
fix the doxygen documentation by moving comments at the right place ( #768 )
2023-10-19 16:58:02 -04:00
MingSheng
05c7bee6dd
Feature: input can now use overwrite mode when toggled with insert key ( #735 )
...
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2023-08-28 21:07:26 +02:00
ArthurSonzogni
5724f8483b
Move copyright to the top of files.
2023-08-19 13:57:01 +02:00
Stefan Ravn van Overeem
b3f1edc385
Add a TrackMouse(false) on ScreenInteractive to disable mouse events ( #726 )
...
When mouse events are enabled, it is not possible to select text in the
terminal and copy it somewhere else. This could be usefull for some
applications if they don't need to handle mouse events.
Add a function on the ScreenInteractive class to disable grabbing of
mouse events so that it is e.g. possible to select text in the user
interface. The function needs to be called on the screen object before
starting the application loop if such a behaviour is desired.
2023-08-19 10:57:50 +02:00
Arthur Sonzogni
e19550ae69
Feature: Windows. ( #690 )
...
Into ftxui/component/, add:
```
Container::Stacked(...)
Window(...);
```
Together, they can be used to display draggable/resizable windows.
Bug:https://github.com/ArthurSonzogni/FTXUI/issues/682
* Fix typo.
2023-07-15 16:29:48 +02:00
Arthur Sonzogni
455998d759
Remove Ref<XxxOption> and add new interfaces. ( #686 )
...
1. Stop taking Ref<XxxOption> in Component constructors. Instead, use
the XxxOption directly. Passing by copy avoid problems developers had
where one was shared in between multiple component, causing issues.
2. Add variants of most component constructors taking a struct only.
This replaces:
https://github.com/ArthurSonzogni/FTXUI/pull/670
This fixes:
https://github.com/ArthurSonzogni/FTXUI/issues/426
2023-06-25 17:22:05 +02:00
ArthurSonzogni
98b31ff1fe
Remove ButtonOption::Arthur()
...
It was added by mistacke previously.
2023-06-11 13:39:33 +02:00
Nick Fistere
9bfa241627
Delete copy constructor and copy operator ( #638 )
...
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2023-05-16 18:33:41 +02:00
Arthur Sonzogni
7de4f8683d
Feature: Add multi-line input. ( #630 )
2023-05-02 13:32:37 +02:00
Marc
eed7e2ea70
Multiple fixes: signed/unsigned, etc... ( #600 )
...
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2023-03-26 20:20:02 +02:00
Arthur Sonzogni
e177409bd3
Update float style in animation.cpp ( #607 )
...
Partially taken out of:
https://github.com/ArthurSonzogni/FTXUI/pull/600
Co-authored-by: LostInCompilation <12819635+LostInCompilation@users.noreply.github.com >
2023-03-26 16:42:08 +02:00
Arthur Sonzogni
9b074d1e27
Feature resizable spilt with custom separator ( #583 )
...
* Feature: ResizableSplit with custom separator
This resolves:
https://github.com/ArthurSonzogni/FTXUI/issues/580
Co-authored-by: Pin Loon Lee <pinloon_0428@hotmail.com >
2023-03-09 20:21:23 +01:00
Arthur Sonzogni
3e35f45830
Execute clang-tidy and IWYU. ( #576 )
2023-02-12 14:07:28 +01:00
Arthur Sonzogni
60b9e491db
Add all the Slider implementations. ( #532 )
...
This resolves:
https://github.com/ArthurSonzogni/FTXUI/issues/524
2022-12-22 21:15:54 +01:00
Arthur Sonzogni
0542227ba7
Execute clang tidy and IWYU ( #528 )
2022-12-19 19:44:43 +01:00
Arthur Sonzogni (slow/sick)
0d54285e19
Add the Hoverable wrapper. ( #522 )
...
This will make it easier for developers. For instance:
https://github.com/ArthurSonzogni/FTXUI/issues/521
2022-12-04 11:54:49 +01:00
mr-mocap
f21ca3aa14
Improve UNIX signal handling ( #518 )
...
There was a dead lock caused by the reentrancy of the post method.
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com >
2022-12-01 22:56:35 +01:00
Arthur Sonzogni
0acfd8f255
Introduce Loop. ( #476 )
...
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
2022-10-18 21:29:27 +02:00
Arthur Sonzogni
f4b47333be
Featre: Support ctrl+arrow in input. ( #494 )
...
CTRL+LEFT: Move the cursor to the beginning of the word.
CTRL+RIGHT: Move the cursor to the beginning of the word.
This was requested by:
https://github.com/ArthurSonzogni/FTXUI/issues/490
2022-10-06 21:16:55 +02:00
Arthur Sonzogni
b3ba747d82
Feature: Slider in any directions. ( #468 )
...
Add the `SliderOption` option supporting:
```cpp
{
Ref<T> value;
ConstRef<T> min = T(0);
ConstRef<T> max = T(100);
ConstRef<T> increment = (max() - min()) / 20;
GaugeDirection direction = GaugeDirection::Right;
Color color_active = Color::White;
Color color_inactive = Color::GrayDark;
};
```
In particular, this supports multiple direction. This resolves:
https://github.com/ArthurSonzogni/FTXUI/issues/467
This one do not support adding a label. The old constructors can still
be used to have a label.
2022-08-30 18:52:33 +02:00
Jan Sende
d04e04adc6
Fixed typo ( #465 )
2022-08-24 12:00:54 +02:00
Arthur Sonzogni
d755356481
Add ref for sliders. ( #457 )
...
This resolves:
https://github.com/ArthurSonzogni/FTXUI/issues/456
2022-08-13 16:26:53 +02:00
Arthur Sonzogni
925a7578d4
Feature: the Modal
component. ( #418 )
2022-06-12 17:08:22 +02:00
Arthur Sonzogni
c033ca61ae
Remove NXXM. Execute IWYU. ( #397 )
2022-05-08 08:44:38 +02:00
ArthurSonzogni
c2e1920449
Execute IWYU.
2022-04-28 10:43:31 +02:00
ArthurSonzogni
114cbfcffd
Add coverage and remove deprecated WideInput.
2022-04-27 11:33:42 +02:00
Arthur Sonzogni
aebde94352
Add clang-tidy. ( #368 )
2022-03-31 02:17:43 +02:00
Arthur Sonzogni
62fb6298be
Bug fixes. ( #367 )
...
- Do not draw more frames than what is needed.
- Fix MenuEntry transform state.
- Fix Canvas animated example.
2022-03-26 07:55:52 +01:00
Arthur Sonzogni
4da63b9260
Animation ( #355 )
2022-03-13 18:51:46 +01:00