Commit Graph

193 Commits (master)

Author SHA1 Message Date
Florian Dehau eee37011a5 chore: fix clippy warnings 2 years ago
David a61b078dea
chore: fix clippy warning (#601) 2 years ago
theogilbert 853d9047b0
feat(widgets/chart): add option to control alignment of axis labels (#568)
* feat(chart): allow custom alignment of first X-Axis label

* refactor(chart): rename ambiguous function parameter

* feat(chart): allow custom alignment of Y-Axis labels

* refactor(chart): refactor axis test cases

* refactor(chart): rename minor variable

* fix(chart): force centered x-axis label near Y-Axis

* fix(chart): fix subtract overflow on small rendering area

* refactor(chart): rename alignment property

* refactor(chart): merge two nested conditions

* refactor(chart): decompose x labels rendering loop
2 years ago
Florian Dehau 6069d89dee chore: fix all clippy warnings 2 years ago
Florian Dehau 9806217a6a feat!: use crossterm as default backend 3 years ago
Florian Dehau ca68bae4ed feat!(widgets/canvas): use spans for text of labels 3 years ago
Florian Dehau 8c1f58079f chore: fix build 3 years ago
Antoine Büsch 4845c03eec
feat(widgets/list): repeat highlight symbol on multi-line items (#533)
When this option is true, the hightlight symbol is repeated for each
line of the selected item, instead of just the first line.
3 years ago
JerzySpendel 80a929ccc6
chore: fix typo (#513) 3 years ago
Florian Dehau a7c21a9729 fix(widgets): avoid offset panic in `Table` and `List` when input changes 3 years ago
Florian Dehau a68e38e59e fix(table): use `Layout` in table column widths computation 3 years ago
Florian Dehau 8eb6336f5e refactor(widgets): remove iter::repeat for blank symbols 3 years ago
Florian Dehau 34a2be6458 fix(widgets/chart): remove panics with long axis labels 3 years ago
Florian Dehau fbd834469f doc(widgets/clear): clarify usage of clear 3 years ago
Florian Dehau 38dcddb126 fix(widgets/gauge): apply label style and avoid overflow on large labels 3 years ago
Oleks (オレクス) a346704cdc
feat(block): add option to center and right align the title (#462)
* Added ability to set title alignment, added tests, modified blocks example to show the feature

* Added test for inner with title in block

* Updated block example to show center alignment

* Formatting fixed

* Updated tests to use lamdas and be more concise. Updated title alignmnet code to be more straightforward and have correct behavior when placing title in the center without left border
3 years ago
Andrew Chin 24396d97ed doc: Add doctests that shows how Text can be created from Cow<str> 3 years ago
Florian Dehau 975c4165d0 chore: fix clippy warnings 3 years ago
Florian Dehau eb1e3be722 fix(widgets/block): make Block::inner return more accurate results on small areas 3 years ago
Vadim Chekan 74243394d9
fix(widgets/table): draw table header and border even if rows are empty (#426) 4 years ago
Florian Dehau 5ea54792c0 refactor(widgets/table): more flexible table
- control over the style of each cell and its content using the styling capabilities of Text.
- rows with multiple lines.
- fix panics on small areas.
- less generic type parameters.
4 years ago
Florian Dehau 79e27b1778 refactor(widgets/gauge): stop using unicode blocks by default 4 years ago
DashEightMate 0a05579a1c
feat(widgets/gauge): allow gauge to use unicode block for more descriptive progress (#377)
* gauge now uses unicode blocks for more descriptive progress

* removed unnecessary if

* changed function name to better reflect unicode

* standardized block symbols, added no unicode option, added tests

* formatting

* improved readability

* gauge tests now check color

* formatted
4 years ago
pm100 5bf40343eb
fix(widgets/paragraph): handle trailing nbsp in wrapped text (#405) 4 years ago
Florian Dehau 8a27036a54 fix(widgets/block): allow Block to render on small areas 4 years ago
acheronfail 5a9b59866b feat(widgets/listitem): derive PartialEq 4 years ago
Kemyt 98fb5e4bbd
fix(widgets/table): take borders into account when percentage and ration constraints are used (#385)
* Fix percentage and ratio constraints for table to take borders into account

Percentage and ratio constraints don't take borders into account, which causes
the table to not be correctly aligned. This is easily seen when using 50/50
percentage split with bordered table. However fixing this causes the last column
of table to not get printed, so there is probably another problem with columns
width determination.

* Fix rounding of cassowary solved widths to eliminate imprecisions

* Fix formatting to fit convention

Co-authored-by: Kemyt <kemyt4@gmail.com>
4 years ago
Florian Dehau 5050f1ce1c feat(widgets/gauge): add `LineGauge` variant of `Gauge` 4 years ago
Florian Dehau c4cd0a5f31 fix(widgets/chart): use the correct style to draw legend and axis titles
Before this change, the style of the points drawn in the graph area could reused to draw the
title of the axis and the legend. Now the style of these components put on top of the graph area
is solely based on the widget style.
4 years ago
Kemyt 62495c3bd1
fix(widgets/barchart): fix chart filled more than actual (#383)
* Fix barchart incorrectly showing chart filled more than actual

Determination of how filled the bar should be was incorrectly taking the
entire chart height into account, when in fact it should take height-1, because
of extra line with label. Because of that the chart appeared fuller than it
should and was full before reaching maximum value.

* Add a test case for checking if barchart fills correctly up to max value

Co-authored-by: Kemyt <kemyt4@gmail.com>
4 years ago
Brooks Rady 0abaa20de9
refactor: clean up some folds (#362) 4 years ago
Amjad Alsharafi c35a1dd79f
feat(widgets/canvas): added type Block in canvas markers (#350)
This allows for clearer colors than using Dot, especially when
decreasing the size of the terminal font in order to increase the
resolution of the canvas
4 years ago
Florian Dehau 0ffea495b1 refactor: implement cascading styles
- merge `Style` and `StyleDiff` together. `Style` now is used to activate or deactivate certain
style rules not to overidden all of them.
- update all impacted widgets, examples and tests.
4 years ago
Florian Dehau 88c4b191fb feat(text): add new text primitives 4 years ago
Brooks Rady 112d2a65f6
feat(widgets/paragraph): add option to preserve indentation when the text is wrapped (#327) 4 years ago
Xiaopeng Li d999c1b434
feat(widgets/paragraph): Add horizontal scroll (#329)
* `Paragraph:scroll` takes a tuple of offsets instead of a single vertical offset.
* `LineTruncator` takes this new horizontal offset into account to let the paragraph scroll horizontally.
4 years ago
Florian Dehau fdbea9e2ee fix(widgets/canvas): avoid panic on zero-width bounds 4 years ago
Alexander Batischev 8c2ee0ed85
feat(terminal): Add after-draw() cursor control to Frame (#91) (#309) 4 years ago
Stephan Dilly 7110fe0159 fix panic on narrow buffers (fixes #293) 4 years ago
Clement Tsang b72ced4511
fix(widgets/chart): remove overflow when dataset if empty (#274)
* docs: Fix missing code block fence
* use slice::windows to deal with underflow issue
* add test for empty dataset and lines
4 years ago
Darrien Glasser 359b7feb8c
fix(widgets/canvas): Add bounds check when drawing line high/low (#283)
* Add bounds check when drawing line high/low
* Add test to ensure codepath doesn't break
4 years ago
Florian Dehau 5d99b4af00 docs: improve widgets documentation 4 years ago
Björn Steinbrink 8f9aa276e8 fix(widgets/list): fix line length calculation for selectable lists
The code that outputs the list elements uses the full inner width of its
block, without taking the width of the highlight symbol into
consideration. This allows the elements to overflow the box and draw
over the block's border. To fix that, we need to reduce the target width
for the list elements.
4 years ago
Florian Dehau bc2a512101 feat: add missing `Clone` and `Copy` on types 4 years ago
Florian Dehau 4f728d363f fix(widgets/list): stop highlighting blank placeholders 4 years ago
Florian Dehau 584e1b0500 refactor(widgets/canvas): allow canvas to render with a simple dot character instead of braille patterns
This change allows developers to gracefully degrade the output if the targeted
terminal does not support the full range of unicode symbols.
4 years ago
Florian Dehau cee65ed283 feat: allow BarChart and Sparkline to use a more portable set of symbols
Add `BarChart::bar_set` and `Sparkline::bar_set` methods to customize
the set of symbols used to display the data. The new set should give
a better looking output on terminal that do not support a wide range
of unicode symbols.
4 years ago
Stephan Dilly 7676d3c7df add clear widget and popup example utilizing it 4 years ago
Loïc Girault d987225ac8 Add thick lines and line::Set struct
Add a new style of line and use a struct to avoid duplication of
matching
4 years ago
Florian Dehau 278c153d31 style: remove clippy warnings 4 years ago