Arthur Sonzogni
6f87740801
Compatify the Screen memory.
...
Instead of storing all the booleans with 5 bytes, use a bit field.
The size of a Pixel has been reduced by 25%, from 20 byte to 15 bytes.
2021-06-12 21:45:55 +02:00
Nathan Lanza
a24abdae19
Include utility header in autoreset.hpp for std::move
2021-06-07 10:10:34 +02:00
ArthurSonzogni
2445dc03d3
Add "long" to slider.
2021-06-02 21:13:23 +02:00
ArthurSonzogni
2504a24ee0
Add documentation for ResizableSplit
2021-05-28 15:07:08 +02:00
ArthurSonzogni
bba2abbb60
Introduce ResizableSplit
2021-05-28 15:07:08 +02:00
Arthur Sonzogni
aacb677e84
Introduce CatchEvent ( #104 )
2021-05-23 12:53:20 +02:00
Arthur Sonzogni
87a1d75bf1
Fix unsigned/signed comparison issues. ( #103 )
...
Seen here:
https://github.com/VedantParanjape/simpPRU/runs/2613171696
2021-05-18 21:48:32 +02:00
Arthur Sonzogni
7b88656e25
Add option to have button without border. ( #101 )
2021-05-18 17:49:53 +02:00
Arthur Sonzogni
30a85c4c5b
Clear terminal on resize. ( #99 )
2021-05-17 00:44:37 +02:00
Arthur Sonzogni
a574a6c3ee
Pass -Wshadow ( #97 )
...
Requested from:
https://github.com/robinlinden/hastur/pull/12
2021-05-16 17:18:11 +02:00
Arthur Sonzogni
7daeac25c0
Modify signature of Container::Tab(...) ( #92 )
...
Take selector at the end to get more pleasing results with clang-format.
2021-05-15 02:32:42 +02:00
Arthur Sonzogni
2723616dc8
Make StringRef borrow reference only when taking a pointer. ( #91 )
2021-05-15 01:34:37 +02:00
ArthurSonzogni
fcc49fdce7
Format using iwyu.
2021-05-15 00:19:19 +02:00
ArthurSonzogni
048efb6912
Add {Const,}StringRef to simplify components.
2021-05-14 21:47:51 +02:00
ArthurSonzogni
9fdf235836
Improve the documentation.
2021-05-14 20:56:37 +02:00
ArthurSonzogni
c9aa1805eb
Add the Renderer component.
2021-05-13 11:44:47 +02:00
ArthurSonzogni
6d75cb2748
Make component more functionnal
2021-05-09 22:35:34 +02:00
ArthurSonzogni
be219633e3
Merge remote-tracking branch 'origin' into feature/mouse-support
2021-05-01 23:45:13 +02:00
ArthurSonzogni
155758c073
Use IWYU.
2021-05-01 23:19:07 +02:00
ArthurSonzogni
eb399d20c5
Capture mouse for the slider component.
2021-05-01 18:13:56 +02:00
ArthurSonzogni
0af8201023
Add the slider component.
2021-04-29 00:18:58 +02:00
ArthurSonzogni
a27c878a3f
Mouse support. Fix & verify Webassembly support.
...
There was some undefined behavior to be fixed in the terminal input
parser.
The behavior of flush seems to have change. The fix was to invert '\0'
and std::flush.
2021-04-25 16:58:16 +02:00
ArthurSonzogni
0b9b6c692a
Improve mouse support
2021-04-25 15:22:38 +02:00
ArthurSonzogni
8037a5fa5f
Improve mouse support for menu and toggle.
2021-04-24 18:16:13 +02:00
ArthurSonzogni
890a41a64c
Add mouse implementation of most components.
2021-04-18 22:33:41 +02:00
ArthurSonzogni
d685a8655e
Parse mouse middle
2021-04-18 18:42:42 +02:00
ArthurSonzogni
cbd13499ae
Parse mouse events.
2021-04-18 18:32:38 +02:00
d
160b1c8bbc
Added Home, End, PageUp, PageDown events.
...
Added handling for Home and End for input component
2021-03-28 18:25:16 +02:00
Arthur Sonzogni
373b016ca9
Add webassembly support ( #79 )
2021-03-22 00:26:52 +01:00
ArthurSonzogni
cac94439ff
Add webassembly support
2021-03-21 23:30:46 +01:00
Arthur Sonzogni
6ed5051cfc
Add documentation about ./example/util/print_key_press ( #73 )
...
Fixed: https://github.com/ArthurSonzogni/FTXUI/issues/72
2021-02-13 20:00:00 +01:00
Robin Lindén
0a9a72cbaa
Workaround Windows.h breaking the Color::RGB function ( #70 )
...
wingdi.h (included via Windows.h) defines an RGB macro that breaks
things. If a user really wants that macro in the same file as FTXUI they
can move the Windows.h include to after the inclusion of FTXUI's
headers.
2021-02-09 14:18:29 +01:00
Arthur Sonzogni
406355df8c
Fix parsing of keys that are prefix of others. ( #58 )
...
The ESC key generates sequences that are prefix of others. For instance:
- ESC => [27]
- F1 => [27, 79, 8]
As a result, we can't generate the ESC event when receiving [27],
because it might be the start of the [27, 79, 8] sequence (or not).
Application usually applies a timeout to help detecting the ESC key.
This patch introduce a timeout. It is set to 50ms.
Bug: https://github.com/ArthurSonzogni/FTXUI/issues/55
2020-10-25 01:57:56 +02:00
Mike Wallio
c13621d1f9
Make cursor position public state ( #57 )
2020-10-24 16:48:59 +02:00
Mike Wallio
1cb08fd606
Fix event const correctness ( #56 )
2020-10-24 16:47:03 +02:00
Arthur Sonzogni
d969c74341
Improve color handling. ( #49 )
2020-10-16 22:31:24 +02:00
ArthurSonzogni
606e0efdfe
Implement Input::on_change.
2020-09-20 11:47:06 +02:00
ArthurSonzogni
5291f660ca
Automatically fix style.
2020-09-07 11:25:50 +02:00
ArthurSonzogni
d09996a6c7
Add more example for colors.
2020-09-07 11:25:50 +02:00
Damien D
dc8c090753
Add support for full RGB colors.
...
FTXUI supported only the 16 colors palette.
This patch adds support for the 256 palette and the TrueColor(8×8×8)
mode.
This was made by kerdelos@ and fixes issue:
https://github.com/ArthurSonzogni/FTXUI/issues/45
Co-authored-by: Damien D <kerdelos@gmail.com>
Co-authored-by: Arthur Sonzogni <sonzogniarthur@gmail.com>
2020-09-07 11:25:50 +02:00
ArthurSonzogni
4ad4946de3
Add the modal dialog example.
...
New component: clear_under.
2020-08-28 23:54:25 +02:00
ArthurSonzogni
5a8ed208da
Add the Button component.
2020-08-28 23:54:25 +02:00
ArthurSonzogni
81d79d311d
Add TakeFocus and SetActiveChild.
...
This allows developers to set child children component must be the
currently active/focused one.
This can be used to "control" where the focus is, without user
interactions.
2020-08-28 23:54:25 +02:00
ArthurSonzogni
114ab4ae2a
Add more documentation.
2020-08-28 23:54:25 +02:00
ArthurSonzogni
f2dc080a35
Variou details:
...
- Put the MIT copyright at the end.
- Move the directory /other -> tools
- Various improvements.
2020-08-28 23:54:25 +02:00
ArthurSonzogni
20b9a0f0f5
Add a doxygen documentation.
2020-08-15 10:38:14 +02:00
ArthurSonzogni
75c424cea9
Update document WIP.
2020-08-09 10:49:06 +02:00
vedantparanjape
33a970530b
Added on_enter() method to toggle
...
component
2020-08-05 01:34:46 +02:00
ArthurSonzogni
e3ca437a48
Introduce xflex and yflex.
2020-07-21 01:22:42 +02:00
ArthurSonzogni
61ca97840b
Fix default char for checkbox and radiobox on Windows.
...
This addresses:
https://github.com/ArthurSonzogni/FTXUI/issues/27
2020-07-21 01:22:42 +02:00
ArthurSonzogni
d2b991d5a3
Split frame into {x,y}frame
2020-06-07 15:59:09 +02:00
ArthurSonzogni
08ee49f3e6
Add flex_grow and flex_shrink.
...
Two new elements:
- flex_grow : Expand the element to occupy free space.
- flex_shrink: Minimize the element leave away missing space.
flex = flex_grow | flex_shrink.
Other changes:
- hbox and vbox are now non flexible by default.
- the vtext element has been added to help writting tests.
- Many new tests.
2020-06-07 02:30:45 +02:00
ArthurSonzogni
7f7775ba62
Simplify the requirement struct.
2020-06-01 16:24:22 +02:00
ArthurSonzogni
883b34503d
Add Receiver->HasPending()
2020-05-25 03:12:09 +02:00
ArthurSonzogni
e34f051f7a
Simplify the Render(screen, document) function.
2020-05-20 21:23:59 +02:00
ArthurSonzogni
e1a71d5b9f
Use shared_ptr instead of unique_ptr for elements.
...
This allow users to pass it into initializer list. Then clang-format
will produce 'acceptable' indentations.
This fixes:
https://github.com/ArthurSonzogni/FTXUI/issues/18
2020-05-20 20:51:20 +02:00
ArthurSonzogni
76fc52441f
Implement "alternative screen".
...
Apply this option automatically for "fullscreen" screen. Keep it
disabled for the other modes.
This fixes issue:
https://github.com/GiuseppeCesarano/just-fast/issues/2
2020-05-02 20:39:56 +02:00
ArthurSonzogni
f506be941d
Add automatic formatting and license.
2020-04-19 21:01:09 +02:00
ArthurSonzogni
a09ebcc442
Fix bug with container on Windows.
...
This fix the bug from:
https://github.com/ArthurSonzogni/FTXUI/pull/11
About:
~~~
Bug: Focus handling not working
in the examples (e.g. checkbox.cpp) I can toggle the individual
checkboxes but I cannot move between items, I tried to understand the
focus implementation but am I unsure which keypresses would move focus
between different components
~~~
2020-04-17 01:15:17 +02:00
ArthurSonzogni
76b216dd5e
Run test on travis.
2020-04-16 23:21:06 +02:00
ArthurSonzogni
fce29a03b3
Run clang-format.
2020-03-27 01:42:46 +01:00
ArthurSonzogni
6e7b4526a0
Add ReceiverTest.
...
And fix a small bug with the Receiver not eating all the input.
2020-03-27 01:01:37 +01:00
Mikael Olenfalk
2c82a4bf31
Remove unused file
2020-03-25 08:54:16 +01:00
ArthurSonzogni
5fc5766f1e
Add Windows input.
...
Co-authored-by: Mikael Olenfalk <mikael@olenfalk.se>
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
2020-03-25 02:24:43 +01:00
ArthurSonzogni
0a7b556a12
Switch name Producer/Consumer -> Sender/Receiver
...
The producer/consumer was created for:
https://github.com/ArthurSonzogni/FTXUI/pull/11
This patch makes rename everything from Producer/Consumer toward
Sender/Receiver.
2020-03-25 00:07:41 +01:00
ArthurSonzogni
09a1b16613
Add a Producer/Consumer system.
...
It allow you to create the two end of a pipe: A producer and consumer.
The producer can be moved into another thread.
Several producer can be created if necessary.
This will ease merging:
https://github.com/ArthurSonzogni/FTXUI/pull/11
2020-03-24 23:42:17 +01:00
ArthurSonzogni
493e734680
Set clang-format macro indent.
...
1) Set clang-format macro indent.
2) Run clang-format on every files.
2020-03-23 21:26:00 +01:00
ArthurSonzogni
1e35687d64
Make FTXUI compatible with clang warnings.
2020-02-15 20:41:44 +01:00
ArthurSonzogni
a8fdfafe6a
Support the -pedantic flag.
2020-02-11 21:44:55 +01:00
Arthur Sonzogni
7a45585626
Update README.md
2020-02-04 11:48:01 +01:00
Arthur Sonzogni
f17acfba4c
Update README.md
2020-02-03 16:05:41 +01:00
ArthurSonzogni
22f8f0d3b7
Using TAB key event.
...
A key event that makes use of TAB key to cycle the elements.
Co-authored-by: Trim Bresilla <trim.bresilla@gmail.com>"
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
2019-11-01 19:54:16 +01:00
ArthurSonzogni
e1efcf2d97
Make DEL to be a special character.
2019-07-02 23:09:20 +02:00
ArthurSonzogni
16ae64dfb4
Fix using undefined value bug.
2019-07-01 00:43:00 +02:00
ArthurSonzogni
32871fcc6b
Add -Wextra
2019-06-30 23:59:27 +02:00
ArthurSonzogni
8b79b3af99
Fix compilation errors in clang.
2019-06-30 10:11:37 +02:00
ArthurSonzogni
86c3b60a6f
Move the cursor to the input location.
...
Most CJK users use IME (input method) to type CJK characters. They need
the cursor to be at the correct location, not in the bottom right
corner.
This CL does:
* Move the cursor the focus() element.
* Hide the cursor (and show it at exit)
* Intercept SIGINT to guarantee proper cleanup all the time.
This should fix the second issue mentionned on:
https://github.com/ArthurSonzogni/FTXUI/issues/2
2019-06-29 18:52:58 +02:00
ArthurSonzogni
eb6baaceea
Support full-width characters (CJK)
...
+ 3 tests.
The goal is to fix:
https://github.com/ArthurSonzogni/FTXUI/issues/2#issuecomment-504871456
2019-06-24 23:39:37 +02:00
ArthurSonzogni
001a0ae925
Add UTF8 support and a better xterm parsing.
...
This fixes: https://github.com/ArthurSonzogni/FTXUI/issues/2
2019-06-23 17:52:31 +02:00
ArthurSonzogni
15da9cdc18
Improve ScreenInteractive wait function.
2019-02-02 16:59:08 +01:00
ArthurSonzogni
ef0de8d873
Add support for nxxm.
...
[nxxm](https://nxxm.github.io )
2019-02-02 02:25:06 +01:00