Commit Graph

313 Commits (master)

Author SHA1 Message Date
Caleb Bassi 262bf441ce Add linechart support
Closes #73

This commit only adds support for linecharts for the braille marker.
4 years ago
Caleb Bassi 7aae9b380e Add header_gap field to Table 4 years ago
Florian Dehau 9085c81e76 refactor: clean up border type for blocks
* Merge line symbols in a single module.
* Replace set_border_type with border_type to match other builder methods.
* Remove unecessary branching.
4 years ago
Matthew Stevenson 682349c03e update block example; add BorderType to exposed widgets API 4 years ago
Matthew Stevenson a72389b28c revert to single Block struct; add set_border_type method and BorderType enum 4 years ago
Matthew Stevenson 06d159fb7b add RoundedBlock and DoubleBlock structs that impl From Block; add Block::rounded() and Block::double_border() 4 years ago
Matthew Stevenson 578560766d add round corners and double lines to symbols 4 years ago
Florian Dehau 8293cef703 Release v0.8.0 5 years ago
Timon 60b99cfc66 feat: bump crossterm to 0.14 5 years ago
Kyle Ruzic b8d0f947e8 Added a verticle 'cross' to the symbols as it was missing for no real reason 5 years ago
Sebastian Woetzel bbd4363fa9 Bugfix: title_style was not used to style the axis title 5 years ago
Florian Dehau e0083fb8de chore: make the onboarding easier for Windows users. 5 years ago
Florian Dehau 3abafc307c Release v0.7.0 5 years ago
Timon e4873e4da9 feat(backend): bump crossterm to 0.13
* removed flush calls because execute already calls flush under the hood.
* moved some static functions into From traits
* removed useless clone in demo
* upgrade to crossterm 0.13
* map all errors
5 years ago
Florian Dehau 2233cdc9cc chore: add CI based on github actions 5 years ago
Florian Dehau 816bc9b5c8 style: fix formatting and clippy issues 5 years ago
Florian Dehau a82c82fcd7 fix(widgets): remove compilation warning in table widget 5 years ago
TheZoq2 bb28d02277 Update docs to point encourage installing 0.6 5 years ago
Jeffas 94877f4e7e Use constraints for table column widths
This allows table column widths to be adapted more and scale with the
UI.

The constraints are solved using the Cassowary solver. An added
constraint for fitting them all in the width is added.
5 years ago
Florian Dehau 3747ddbefb feat(backend): Refactor crossterm backend
* Remove compilation warnings
* Fix rendering artifacts in the crossterm demo. In particular, the bold modifier
was leaking on most of the terminal screen because the old logic was not
properly unsetting the bold modifier after use (took inspiration of the termion
backend implementation)
5 years ago
Florian Dehau 42731da546 Enable build failure on compilation warnings 5 years ago
Joseph Knight e183d63a5e typo in barcharg.rs 5 years ago
Joseph Knight e5fdd442c3 typo in sparkline.rs 5 years ago
Joseph Knight 97357c0e08 typo in curses.rs 5 years ago
Joseph Knight 8649ce4c78 fixed typo in symbols.rs 5 years ago
Timon_Post a0f6605f59 Implemented command api crossterm, for better perfomance. 5 years ago
Jeffas db9b1dd689 Make margins be vertical or horizontal
This adds support for margins to be either vertical or horizontal, or
both.
5 years ago
Joe Ardent 86f681a007 Silence check warnings about [lack of] use of 'dyn' for boxed trait objects. 5 years ago
Florian Dehau a3827aaeae Remove try call in termion backend 5 years ago
Jeremy Day 47c68e40a2 fix for canvas rendering edge cases causing overflow errors 5 years ago
Florian Dehau 2a7eec816a Add PartialEq to Text 5 years ago
Florian Dehau 8fbb764c9e Move Borders documentation 5 years ago
Florian Dehau 4756801fd9 Format 5 years ago
Russ f0e0b515ad avoid divide by zero 5 years ago
defiori 25a0825ae4 fix: curses backend cursor positions 5 years ago
scauligi b1ac297d71 fix crossterm terminal size and dark gray color 5 years ago
nytopop 8a9c76b003 Don't highlight Tabs separator behind selection 5 years ago
DarrienG 41cdd3e261 Provide clone and debug for Text type 5 years ago
Timon_Post f6a0a91a23 fmt 5 years ago
timonpost@hotmail.nl ffaaf5e39c review update 5 years ago
timonpost@hotmail.nl 567cf7b8e5 update 0.9.2 5 years ago
Florian Dehau a74d335cb4 Fix clippy warnings 5 years ago
Florian Dehau 7a5ad3fbdb Fix sparkline panic when max is zero 5 years ago
Florian Dehau 4436110c44 Improve onboarding in documentation 5 years ago
Florian Dehau f8b3526426 Add code example for `Constraint::Ratio` 5 years ago
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.
5 years ago
David Flemström 21e79ca078 Rebase and include necessary curses changes 5 years ago
David Flemström a25bbea555 Add workarounds for weird termion escape code handling 5 years ago
David Flemström b7664a4108 Support several modifiers and indexed colors at once 5 years ago
David Flemström d360cd3434 Support exact ratios for layout constraints 5 years ago
Florian Dehau e037db076c fix(backend/curses): use chtype to achieve platform agnostic conversion of graphemes 5 years ago
Florian Dehau 3ef19f41e6 fix(backend/curses): avoid platform specific conversion of graphemes 5 years ago
Florian Dehau da90ec15fa fix: add missing get_cursor and set_cursor on CursesBackend 5 years ago
Florian Dehau 7f5af46300 style: fmt 5 years ago
defiori 624e6ee047 fix: filter out wide unicode characters on windows 5 years ago
defiori 4a1f3cd61f feat: curses instance can be passed to backend 5 years ago
defiori d75198a8ee feat: add pancurses backend 5 years ago
defiori cadb41c9e3 fix: unified crossterm backend 5 years ago
defiori b30cae0473 feat: crossterm backend can use alternate screen 5 years ago
scauligi 7290086fe9 forgot to flush 5 years ago
scauligi bca920bea0 get/set cursor position 5 years ago
Jonathan cd41ca571f Modified with_crossterm naming scheme 5 years ago
Jonathan dc654e9f6c Added ability to create crossterm with previously created crossterm::Screen 5 years ago
Florian Dehau b669cf9ce7 style: fix clippy warnings 5 years ago
Florian Dehau 97f764b45d feat: handle crossterm errors 5 years ago
Florian Dehau 52a40ec99a fix: remove undefined crossterm attributes in windows builds 5 years ago
Sven-Hendrik Haase a78fa73b34 Add new shape: Rectangle 5 years ago
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.
5 years ago
Jens Krause f7c6620e25 Fix documented example to fix doc-tests on CI 5 years ago
Jens Krause 16372f7847 Don't show divider after last tab 5 years ago
Jens Krause 72c2eb7182 Add `divider` to `Tabs`
to change appearance of tab dividers.
5 years ago
Sven-Hendrik Haase 144bfb71cf Upgrade to 2018 edition 5 years ago
Karoline Pauls 3fd9e23851 Buffer: correct diffing of buffers with multi-width characters
Resolves #104
5 years ago
Karoline Pauls 10642d0e04 Paragraph: word wrapping 6 years ago
Karoline Pauls 1802cf8dbc Improve wrapping of double-width characters 6 years ago
Karoline Pauls 090975481b Update tests and docs to take size from the Frame 6 years ago
Karoline Pauls 228816f5f8 Frame: provide consistent size for rendering 6 years ago
Karoline Pauls 8522e028f1 Run `cargo fmt` with the new Rust stable toolchain (1.31.0) 6 years ago
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.
6 years ago
Karoline Pauls cc95c8cfb0 Gauge: use f64 internally and allow to set any f64 between 0 and 1 6 years ago
Karoline Pauls 89dac9d2a6 buffer: add quotes to fmt::Debug for better testing experience 6 years ago
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).
6 years ago
Florian Dehau b3689eceb7 feat: update outdated dependencies 6 years ago
Karoline Pauls 5cee2afc6d Limit Rect size to prevent u16 overflow 6 years ago
Florian Dehau 4c46ef69e9 Release v0.3.0 6 years ago
Florian Dehau 22e8fade7e feat: add experimental test backend 6 years ago
Florian Dehau fdf3015ad0 feat(terminal): log error if failed to show cursor on drop 6 years ago
Karoline Pauls 03bfcde147 [widgets][paragraph]: Truncate long lines when wrap is false 6 years ago
Florian Dehau 7b4d35d224 feat: restore the cursor state on terminal drop 6 years ago
Florian Dehau d8e5f57d53 style: fmt 6 years ago
Florian Dehau aa85e597d9 fix(crossterm): fix goto coordinates 6 years ago
Florian Dehau 5d52fd2486 refactor: remove custom termion backends 6 years ago
Florian Dehau 4ae9850e13 fix: replace links to assets 6 years ago
Antoine Büsch f795173886 Unify Item and Text 6 years ago
Antoine Büsch e42ab1fed8 Move Text to widgets/mod.rs 6 years ago
Antoine Büsch 0544c023f5 Rename Text::{Data -> Raw, StyledData -> Styled} 6 years ago
Antoine Büsch ff47f9480b Introduce builder methods for Text to make it more ergonomic 6 years ago
Antoine Büsch 70561b7c54 Fix examples and doctests 6 years ago
Antoine Büsch 559c9c75f3 Make Text accept both borrowed and owned strings 6 years ago
Florian Dehau 6c69160d6b feat: remove unecessary borrows of Style 6 years ago
Florian Dehau cf169d1582 style: run rustfmt and clippy 6 years ago
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
6 years ago
Florian Dehau 40bad7a718 feat: add initial support for crossterm 6 years ago
Florian Dehau 3d63f9607f doc: update main documentation 6 years ago
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
6 years ago
Florian Dehau d6016788ef refactor: clippy + rustfmt 6 years ago
Florian Dehau ad602a54bf refactor(widgets): replace text rendering in Paragraph
* remove custom markup language
* add Text container for both raw and styled strings
6 years ago
Florian Dehau 7181970a32 feat: split layout from rendering
* remove layout logic from Terminal
* replace Group with Layout
* add Frame intermediate object
6 years ago
Jeremy Day cfc90ab7f6 fix(widgets): Prevent chart legend from rendering when no dataset has a name 6 years ago
Florian Dehau 9a9f49f467 fix(backend): Add missing color pattern 6 years ago
Florian Dehau df7493fd33 style: Run rustfmt 6 years ago
Florian Dehau 5de571fb03 feat(widgets): Add start_corner option to List 6 years ago
Florian Dehau 62df7badf3 feat(layout): Add Corner enum 6 years ago
Robin Nehls 3f8a9079ee [widgets] implement text alignment for paragraph widget 6 years ago
Robin Nehls 5981767543 [style] add enum for text alignment 6 years ago
Florian Dehau 36146d970a [style] rustfmt 6 years ago
Florian Dehau 36a5eb2110 Format code 6 years ago
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.
6 years ago
Florian Dehau ef2054a45b [lib] Derive Debug on Terminal 6 years ago
Xavier Bestel f4052e0e71 fix colors use, add missing Blue 6 years ago
Florian Dehau 36dea8373f [widgets][paragraph] Fix text wrapping 6 years ago
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.
6 years ago
Florian Dehau 4b53acab14 [doc] Fix layout example in documentation 6 years ago
Florian Dehau fcd1b7b187 [widgets][list] Set the style of the underlying list 6 years ago
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.
6 years ago
Rafael Escobar c56173462a Export AlternateScreenBackend. 6 years ago
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
6 years ago
Florian Dehau 7d273b576d Bump version 7 years ago
Florian Dehau 6a3b9fb130 [src][chart] fmt 7 years ago
Florian Dehau c3c5109c5a [src] Fix build and tests 7 years ago
Florian Dehau 151d7e8a1c [src] Update dependencies
* Update all dependencies to their latest versions
* Change border to Borders to match v1.0 of bitflags
7 years ago
Florian Dehau af16518650 [src] Run rustfmt 7 years ago
Florian Dehau 8907ab90a1 [doc] Move "Get started" from README to src/lib.rs 7 years ago
Florian Dehau 5dd03d91ad [widgets] Fix a bug in chart layout 7 years ago
Emmanuel Sales cb8af88adf Add Copy trait for layout enums 7 years ago
Florian Dehau 3012215e32 [widgets][tabs] Use generic type for tabs titles 7 years ago
Florian Dehau ba80889333 [clippy] Fix warnings 7 years ago
Florian Dehau 1f285fbac0 [src] Run cargo fmt 7 years ago
Florian Dehau 3cc3585e48 [widgets][chart] Use generic type for labels 7 years ago
talha 3045ac4124 Minor codestyle fixes 7 years ago
Florian Dehau 71545a0aa8 Run cargo fmt 7 years ago
Florian Dehau 3b8cc241ac [widgets] Fix table doc test 7 years ago
Florian Dehau ca3308e945 [widgets] Fix Row export 7 years ago
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
7 years ago
Florian Dehau d6a91d1865 Fix List lifetime issues
Add a new lifetime for the items inside the list
7 years ago
Florian Dehau 41eac2aa4e Refactor demo example 7 years ago
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
7 years ago
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.
7 years ago
Florian Dehau a9aa23aead Add mouse support in TermionBackend
* Old TermionBackend is replaced by RawBackend
* Add TermionBackend with mouse support called MouseBackend
7 years ago
Florian Dehau b2bb24b9d2 Fix rustfmt and clippy errors 7 years ago