Florian Dehau
a74d335cb4
Fix clippy warnings
2019-04-14 11:48:35 +02:00
Florian Dehau
7a5ad3fbdb
Fix sparkline panic when max is zero
2019-04-14 11:35:41 +02:00
Florian Dehau
4436110c44
Improve onboarding in documentation
2019-03-24 21:37:55 +01:00
Florian Dehau
f8b3526426
Add code example for Constraint::Ratio
2019-03-10 18:05:27 +01:00
Florian Dehau
43e38ac483
Fix Buffer::merge
...
Coordinates returned by Buffer::pos_of were interpreted as local coordinates
while they were global. This was resulting in panics due to out of bounds
accesses. Interpreting the coordinates as global and using correct offsets
when computing the new index within the buffer for each cell fix the issue.
2019-03-10 17:36:14 +01:00
David Flemström
21e79ca078
Rebase and include necessary curses changes
2019-03-10 15:56:56 +01:00
David Flemström
a25bbea555
Add workarounds for weird termion escape code handling
2019-03-10 15:56:56 +01:00
David Flemström
b7664a4108
Support several modifiers and indexed colors at once
2019-03-10 15:56:56 +01:00
David Flemström
d360cd3434
Support exact ratios for layout constraints
2019-02-28 07:15:24 +01:00
Florian Dehau
e037db076c
fix(backend/curses): use chtype to achieve platform agnostic conversion of graphemes
2019-02-26 08:56:49 +01:00
Florian Dehau
3ef19f41e6
fix(backend/curses): avoid platform specific conversion of graphemes
2019-02-26 08:32:36 +01:00
Florian Dehau
da90ec15fa
fix: add missing get_cursor and set_cursor on CursesBackend
2019-02-26 08:13:00 +01:00
Florian Dehau
7f5af46300
style: fmt
2019-02-26 08:12:43 +01:00
defiori
624e6ee047
fix: filter out wide unicode characters on windows
2019-02-26 07:49:59 +01:00
defiori
4a1f3cd61f
feat: curses instance can be passed to backend
2019-02-26 07:49:59 +01:00
defiori
d75198a8ee
feat: add pancurses backend
2019-02-26 07:49:59 +01:00
defiori
cadb41c9e3
fix: unified crossterm backend
2019-02-26 07:45:19 +01:00
defiori
b30cae0473
feat: crossterm backend can use alternate screen
2019-02-26 07:45:19 +01:00
scauligi
7290086fe9
forgot to flush
2019-02-26 07:38:35 +01:00
scauligi
bca920bea0
get/set cursor position
2019-02-26 07:38:35 +01:00
Jonathan
cd41ca571f
Modified with_crossterm naming scheme
2019-02-10 22:47:56 +01:00
Jonathan
dc654e9f6c
Added ability to create crossterm with previously created crossterm::Screen
2019-02-10 22:47:56 +01:00
Florian Dehau
b669cf9ce7
style: fix clippy warnings
2019-02-03 22:42:09 +01:00
Florian Dehau
97f764b45d
feat: handle crossterm errors
2019-02-03 20:02:36 +01:00
Florian Dehau
52a40ec99a
fix: remove undefined crossterm attributes in windows builds
2019-01-23 07:28:40 +01:00
Sven-Hendrik Haase
a78fa73b34
Add new shape: Rectangle
2019-01-15 15:47:05 +00:00
Jens Krause
1c0b0abf61
Use UnicodeWidthStr::width()
...
to get width of `divider`.
Also use `set_string` instead of `set_symbol`. The latter cuts content of a multi-char divider.
2019-01-13 17:21:03 +00:00
Jens Krause
f7c6620e25
Fix documented example to fix doc-tests on CI
2019-01-13 17:21:03 +00:00
Jens Krause
16372f7847
Don't show divider after last tab
2019-01-13 17:21:03 +00:00
Jens Krause
72c2eb7182
Add divider
to Tabs
...
to change appearance of tab dividers.
2019-01-13 17:21:03 +00:00
Sven-Hendrik Haase
144bfb71cf
Upgrade to 2018 edition
2019-01-13 14:35:51 +00:00
Karoline Pauls
3fd9e23851
Buffer: correct diffing of buffers with multi-width characters
...
Resolves #104
2019-01-13 13:46:39 +00:00
Karoline Pauls
10642d0e04
Paragraph: word wrapping
2018-12-22 15:38:51 +01:00
Karoline Pauls
1802cf8dbc
Improve wrapping of double-width characters
2018-12-22 15:38:51 +01:00
Karoline Pauls
090975481b
Update tests and docs to take size from the Frame
2018-12-07 21:32:00 +01:00
Karoline Pauls
228816f5f8
Frame: provide consistent size for rendering
2018-12-07 21:32:00 +01:00
Karoline Pauls
8522e028f1
Run cargo fmt
with the new Rust stable toolchain (1.31.0)
2018-12-07 19:54:13 +01:00
Ash
a2776dfc86
Make sure we always emit a cursor goto for the first update.
...
Otherwise, if the first update is to (1, 0) then no goto occurs.
2018-12-07 19:52:22 +01:00
Karoline Pauls
cc95c8cfb0
Gauge: use f64 internally and allow to set any f64 between 0 and 1
2018-12-05 21:20:12 +01:00
Karoline Pauls
89dac9d2a6
buffer: add quotes to fmt::Debug for better testing experience
2018-12-05 21:20:12 +01:00
Karoline Pauls
8cdfc883b9
Feature: Autoresize
...
It basically never makes sense to render without syncing the size.
Without resizing, if shrinking, we get artefacts. If growing, we may get
panics (before this change the Rustbox sample (the only one which didn't
handle resizing on its own) panicked because the widget would get an
updated size, while the terminal would not).
2018-12-04 08:39:32 +01:00
Florian Dehau
b3689eceb7
feat: update outdated dependencies
2018-11-25 21:49:37 +01:00
Karoline Pauls
5cee2afc6d
Limit Rect size to prevent u16 overflow
2018-11-25 19:59:12 +01:00
Florian Dehau
4c46ef69e9
Release v0.3.0
2018-11-04 20:25:07 +01:00
Florian Dehau
22e8fade7e
feat: add experimental test backend
2018-11-04 20:16:10 +01:00
Florian Dehau
fdf3015ad0
feat(terminal): log error if failed to show cursor on drop
2018-10-14 17:00:13 +02:00
Karoline Pauls
03bfcde147
[widgets][paragraph]: Truncate long lines when wrap is false
2018-10-14 16:11:28 +02:00
Florian Dehau
7b4d35d224
feat: restore the cursor state on terminal drop
2018-09-24 08:03:52 +02:00
Florian Dehau
d8e5f57d53
style: fmt
2018-09-23 21:00:36 +02:00
Florian Dehau
aa85e597d9
fix(crossterm): fix goto coordinates
2018-09-23 21:00:18 +02:00
Florian Dehau
5d52fd2486
refactor: remove custom termion backends
2018-09-23 20:55:50 +02:00
Florian Dehau
4ae9850e13
fix: replace links to assets
2018-09-09 08:55:51 +02:00
Antoine Büsch
f795173886
Unify Item and Text
2018-09-08 08:41:57 +02:00
Antoine Büsch
e42ab1fed8
Move Text to widgets/mod.rs
2018-09-08 08:41:57 +02:00
Antoine Büsch
0544c023f5
Rename Text::{Data -> Raw, StyledData -> Styled}
2018-09-08 08:41:57 +02:00
Antoine Büsch
ff47f9480b
Introduce builder methods for Text to make it more ergonomic
2018-09-08 08:41:57 +02:00
Antoine Büsch
70561b7c54
Fix examples and doctests
2018-09-08 08:41:57 +02:00
Antoine Büsch
559c9c75f3
Make Text accept both borrowed and owned strings
2018-09-08 08:41:57 +02:00
Florian Dehau
6c69160d6b
feat: remove unecessary borrows of Style
2018-09-07 22:24:52 +02:00
Florian Dehau
cf169d1582
style: run rustfmt and clippy
2018-09-04 22:23:44 +02:00
Florian Dehau
bcd1e30376
refactor: update List select behavior
...
* allow a selectable list to have no selected item
* show highlight_symbol only when something is selected
2018-09-04 22:23:44 +02:00
Florian Dehau
40bad7a718
feat: add initial support for crossterm
2018-09-04 22:23:44 +02:00
Florian Dehau
3d63f9607f
doc: update main documentation
2018-09-04 22:23:44 +02:00
Florian Dehau
13e194cd26
refactor: update widgets
...
* all widgets use the consumable builder pattern
* `draw` on terminal expect a closure that take a frame as only arg
2018-09-04 22:23:44 +02:00
Florian Dehau
d6016788ef
refactor: clippy + rustfmt
2018-09-04 22:23:44 +02:00
Florian Dehau
ad602a54bf
refactor(widgets): replace text rendering in Paragraph
...
* remove custom markup language
* add Text container for both raw and styled strings
2018-09-04 22:23:44 +02:00
Florian Dehau
7181970a32
feat: split layout from rendering
...
* remove layout logic from Terminal
* replace Group with Layout
* add Frame intermediate object
2018-09-04 22:23:44 +02:00
Jeremy Day
cfc90ab7f6
fix(widgets): Prevent chart legend from rendering when no dataset has a name
2018-08-24 06:27:16 +02:00
Florian Dehau
9a9f49f467
fix(backend): Add missing color pattern
2018-06-09 11:49:44 +02:00
Florian Dehau
df7493fd33
style: Run rustfmt
2018-06-09 11:26:59 +02:00
Florian Dehau
5de571fb03
feat(widgets): Add start_corner option to List
2018-06-09 11:26:59 +02:00
Florian Dehau
62df7badf3
feat(layout): Add Corner enum
2018-06-09 11:26:59 +02:00
Robin Nehls
3f8a9079ee
[widgets] implement text alignment for paragraph widget
2018-05-25 21:09:27 +02:00
Robin Nehls
5981767543
[style] add enum for text alignment
2018-05-25 21:09:27 +02:00
Florian Dehau
36146d970a
[style] rustfmt
2018-05-25 07:57:00 +02:00
Florian Dehau
36a5eb2110
Format code
2018-05-06 15:54:47 +02:00
Florian Dehau
f96db9c74f
[layout] Replace FnMut with FnOnce in Group::render
...
As the function does not need to mutate state and be run multiple times.
2018-05-06 11:49:32 +02:00
Florian Dehau
ef2054a45b
[lib] Derive Debug on Terminal
2018-04-15 22:09:36 +02:00
Xavier Bestel
f4052e0e71
fix colors use, add missing Blue
2018-04-04 08:45:58 +02:00
Florian Dehau
36dea8373f
[widgets][paragraph] Fix text wrapping
2018-04-01 19:03:49 +02:00
Florian Dehau
2cb823a15b
[lib] Fix conversion from cassowary-rs results to internal layouts
...
The library used to compute the layout may returned negative results
given strange contraints. To avoid overflows on unsigned integers operations,
those results will be converted to 0 instead of being converted as is.
2018-04-01 18:28:17 +02:00
Florian Dehau
4b53acab14
[doc] Fix layout example in documentation
2018-04-01 18:28:17 +02:00
Florian Dehau
fcd1b7b187
[widgets][list] Set the style of the underlying list
2018-04-01 12:36:11 +02:00
Magnus Bergmark
d0d2f88346
BUG: Buffer::pos_of panics on inside-bounds index
...
- Add tests for this behavior.
- Extend documentation of Buffer::pos_of and Buffer::index_of
- Clarify that the coordinates should be in global coordinate-space
(rather than local).
- Document panics.
- Add examples.
2018-04-01 11:13:35 +02:00
Rafael Escobar
c56173462a
Export AlternateScreenBackend.
2018-01-30 22:16:41 +01:00
Florian Dehau
f816e6bbc4
[backends] Improve termion backend
...
* Add AlternateScreenBackend
* Add a way to create a TermionBackend with a custom config
* Improve return values of several methods
2018-01-30 22:16:41 +01:00
Florian Dehau
7d273b576d
Bump version
2017-12-26 22:13:40 +01:00
Florian Dehau
6a3b9fb130
[src][chart] fmt
2017-12-26 21:45:46 +01:00
Florian Dehau
c3c5109c5a
[src] Fix build and tests
2017-12-26 21:45:46 +01:00
Florian Dehau
151d7e8a1c
[src] Update dependencies
...
* Update all dependencies to their latest versions
* Change border to Borders to match v1.0 of bitflags
2017-12-26 21:45:46 +01:00
Florian Dehau
af16518650
[src] Run rustfmt
2017-12-26 21:45:46 +01:00
Florian Dehau
8907ab90a1
[doc] Move "Get started" from README to src/lib.rs
2017-12-26 21:45:46 +01:00
Florian Dehau
5dd03d91ad
[widgets] Fix a bug in chart layout
2017-12-26 20:41:40 +01:00
Emmanuel Sales
cb8af88adf
Add Copy trait for layout enums
2017-12-26 09:21:12 +01:00
Florian Dehau
3012215e32
[widgets][tabs] Use generic type for tabs titles
2017-10-30 23:38:17 +01:00
Florian Dehau
ba80889333
[clippy] Fix warnings
2017-10-30 23:14:57 +01:00
Florian Dehau
1f285fbac0
[src] Run cargo fmt
2017-10-30 23:14:57 +01:00
Florian Dehau
3cc3585e48
[widgets][chart] Use generic type for labels
2017-10-30 21:18:31 +01:00
talha
3045ac4124
Minor codestyle fixes
2017-10-30 17:15:28 +01:00
Florian Dehau
71545a0aa8
Run cargo fmt
2017-09-11 08:15:39 +02:00
Florian Dehau
3b8cc241ac
[widgets] Fix table doc test
2017-09-11 07:43:19 +02:00
Florian Dehau
ca3308e945
[widgets] Fix Row export
2017-09-11 07:43:19 +02:00
Florian Dehau
c18885d38b
[widgets] Refactor Table Widget
...
* Add Row enum
* Move to a generic definition of table which allow iterators to be
passed as arguments and therefore reduce allocations
2017-09-11 07:43:19 +02:00
Florian Dehau
d6a91d1865
Fix List lifetime issues
...
Add a new lifetime for the items inside the list
2017-09-10 21:38:17 +02:00
Florian Dehau
41eac2aa4e
Refactor demo example
2017-09-10 21:38:17 +02:00
Florian Dehau
89a173fe9b
Refactor List Widget
...
* Add a generic item object for the list. The item can either be some data
alone or some data and its style
* The List widget now store an Iterator over those element. This should
avoid the need of allocating memory to store its elements
* The List consume the Iterator when it is drawn
2017-09-10 21:38:17 +02:00
Florian Dehau
b1737ce667
Update Widget Trait
...
The draw function now take a &mut reference to the widget, allowing the
widget to modify itself when drawn. This change the semantic of the draw
call since the widget should now be considered "consumed" after it.
2017-09-10 21:38:17 +02:00
Florian Dehau
a9aa23aead
Add mouse support in TermionBackend
...
* Old TermionBackend is replaced by RawBackend
* Add TermionBackend with mouse support called MouseBackend
2017-09-07 08:32:08 +02:00
Florian Dehau
b2bb24b9d2
Fix rustfmt and clippy errors
2017-05-21 12:49:12 +02:00
Sebastian Woetzel
81cedbd6f2
fixes scroll handling for paragraph widget
2017-04-30 19:10:46 +02:00
Florian Dehau
116ee4439a
Improve Paragraph widget
...
* Add the possibility to disable the markup rendering
* Fix parser error
2016-11-28 10:00:35 +01:00
Florian Dehau
e585bfeab5
Make List more user-friendly
2016-11-28 09:55:13 +01:00
Florian Dehau
feefa5d54f
Convert backends to conditionnal features for compilation
2016-11-28 09:52:51 +01:00
Florian Dehau
4f8a57d500
Fix clippy warnings
2016-11-07 22:57:13 +01:00
Florian Dehau
b30fede80c
Add the possibility to provide a RustBox instance at backend initialization
2016-11-07 22:28:50 +01:00
Florian Dehau
4bb2b8eb24
Add support for multiline gauge
2016-11-07 22:27:28 +01:00
Florian Dehau
5efc52e03d
Fix parser in paragraph
2016-11-07 22:27:09 +01:00
Florian Dehau
a3c96865a8
Custom label for gauge
2016-11-07 15:57:35 +01:00
Florian Dehau
17c95cf826
Fix table example
2016-11-07 11:58:36 +01:00
Florian Dehau
ad239ef23c
Update list and table to be more flexible
...
* Move List to SelectableList
* Create a more generic List
* Change the way to pass items to the table widget
* Update demo
2016-11-07 11:56:08 +01:00
Florian Dehau
6fb044950a
Fix layout cache on nightly
2016-11-06 21:42:14 +01:00
Florian Dehau
b19c014889
Fix layout cache on nightly
2016-11-06 21:41:54 +01:00
Florian Dehau
662e2dd102
Fix examples
2016-11-06 21:41:32 +01:00
Florian Dehau
224eb2d8e0
Add support for text styling
2016-11-06 18:49:57 +01:00
Florian Dehau
9bc61551e2
Refactor Terminal to be able to support multiple backends
...
* Add Rustbox as an other possible backend
2016-11-05 19:18:48 +01:00
Florian Dehau
652ff12380
More documentation
2016-11-04 19:27:19 +01:00
Florian Dehau
fcac19d6c5
Documentation
2016-11-04 17:54:57 +01:00
Florian Dehau
7a25987352
Canvas widget refactoring
2016-11-04 17:53:51 +01:00
Florian Dehau
19a9cf8239
Fix text width measure in Text widget
2016-11-04 14:12:52 +01:00
Florian Dehau
93cc237007
Documentation
2016-11-03 23:59:04 +01:00
Florian Dehau
9e5195096a
More work on the widgets API
...
* Change slice to vecs in table and canvas to ease the interaction with data
constructed on the fly
* Add a legend to charts based on datasets' names and colors
* Update demo to reflect previous updates
2016-11-03 12:20:39 +01:00
Florian Dehau
20465f2159
Change dot symbol for line chart
2016-11-03 12:16:31 +01:00
Florian Dehau
a5b632aeb0
Cleanup API
2016-11-02 19:16:53 +01:00
Florian Dehau
a36e20f217
Add background_color support for all existing wigets
2016-11-02 17:08:52 +01:00
Florian Dehau
d038b283db
Fix chart and canvas widgets
2016-11-01 22:54:16 +01:00
Florian Dehau
cd919e69f5
Fix some display errors
2016-11-01 15:59:33 +01:00
Florian Dehau
dd6cdf1f11
Add Table widget base implementation
2016-11-01 15:59:05 +01:00
Florian Dehau
654be037be
Redefine canvas widget and add shapes
...
* Give the canvas widget a proper modules and define a standard way to
draw to it (Shape trait)
* Add Points, Line, Rectangle and Map shapes
2016-11-01 12:09:14 +01:00
Florian Dehau
107d7297af
Fix some layout problems
2016-10-31 18:04:10 +01:00
Florian Dehau
f0979dfeee
Improve canvas functionalities and fix clippy warnings
2016-10-28 19:30:30 +02:00
Florian Dehau
25bb360f13
Fix list selection
2016-10-27 23:21:42 +02:00
Florian Dehau
d8d18d3d9d
Fix layout computation
2016-10-27 23:03:31 +02:00
Florian Dehau
c862fa9ce3
Add Map widget
2016-10-27 22:55:24 +02:00
Florian Dehau
286e345dbc
Add data for drawing a world map
2016-10-27 19:37:29 +02:00
Florian Dehau
7bdb11c681
Add Canvas widget
...
* Add a canvas widget to draw shapes using braille dots
* Use this widget in the chart widget when the braille mode is selected
2016-10-27 19:36:55 +02:00
Florian Dehau
da67a679f7
Add Tabs widget
2016-10-27 19:35:08 +02:00
Florian Dehau
b0b1645010
Rename set_characters method in buffer interface
2016-10-27 19:33:32 +02:00
Florian Dehau
95a160cf50
Add braille mode for the chart widget
2016-10-27 12:35:56 +02:00
Florian Dehau
bcb3d751bf
Rename buffer methods
2016-10-27 12:35:26 +02:00
Florian Dehau
85bd76e17d
Small improvements
2016-10-26 19:19:46 +02:00
Florian Dehau
c91436baee
Change rendering method and adapt widget trait accordingly
2016-10-26 14:32:45 +02:00
Florian Dehau
ea485b5439
Simpler layout and cleanup api
2016-10-23 14:14:43 +02:00
Florian Dehau
017eaa4122
Fix clippy warnings
2016-10-22 19:24:35 +02:00
Florian Dehau
0419fa7157
Update text widget (templating and wrapping)
2016-10-22 19:24:17 +02:00
Florian Dehau
063bde8764
Add bar chart prototype
2016-10-22 12:51:41 +02:00
Florian Dehau
85ca4f6b19
Add features to the list widgets
2016-10-22 11:26:46 +02:00
Florian Dehau
7a427c06d4
Update chart widget and fix colors in all widgets
2016-10-21 19:02:19 +02:00
Florian Dehau
15c3471f0b
Fix clippy warnings
2016-10-20 17:17:35 +02:00
Florian Dehau
d7131ead11
Cache layout and performance fixes
2016-10-20 16:26:34 +02:00
Florian Dehau
07ff2b08eb
Improve Chart Widget, safer buffer and unicode width
2016-10-20 12:01:09 +02:00
Florian Dehau
fde0ba95dd
Remove cache system and add unicode segmentation
2016-10-16 00:38:20 +02:00
Florian Dehau
bd404f0238
Cleanup code and add chart widget
2016-10-14 19:44:52 +02:00
Florian Dehau
6ed19df342
Update color support for block, gauge, list and sparkline
2016-10-13 17:57:45 +02:00
Florian Dehau
ea1397319c
Add support for multi line sparkline
2016-10-13 17:30:35 +02:00
Florian Dehau
86ae92b489
Add color support to the gauge widget
2016-10-13 17:30:18 +02:00
Florian Dehau
9816ccd4e3
Change layout properties and improve gauge and sparkline
2016-10-13 16:27:33 +02:00
Florian Dehau
275b210fd4
Change layout algorithm
2016-10-13 13:56:27 +02:00
Florian Dehau
d11dedd864
Add sparkline widget and fix warnings
2016-10-12 19:43:39 +02:00
Florian Dehau
5b5d37ee69
Add gauge, fix rendering and cleanup code
2016-10-12 16:12:42 +02:00
Florian Dehau
93f3263e2b
Fix redraw for disappearing widgets
2016-10-12 11:36:39 +02:00
Florian Dehau
13f6a5a98b
Add list widget and improve rendering
2016-10-11 19:54:35 +02:00
Florian Dehau
459201bc65
First commit
2016-10-09 19:46:53 +02:00