This project provides an AlignedView
for gyscos/cursive views which makes it possible to align the child view (center, left, right, top, bottom). The AlignedView
uses the required_size
reported by the child view and fills the rest of the available space with the views background color.
How does it look like? demo
![terminalizer](https://img.shields.io/badge/GIF-terminalizer-blueviolet.svg)
Usage
Simply add to your Cargo.toml
[]
= "^0"
Aligning a child view
The easiest way to align a view is via the Alignable
trait:
use Alignable;
let aligned = child_view.align_center;
This is the preferred way as it is chainable and consistent with cursive's Boxable
and Identifiable
traits.
As an alternative you can use the AlignedView
constructors directly:
use AlignedView;
let aligned = with_center;
Look into the documentation for a detailed explanation on the API.
Supported Alignments
Alignment | Construction method |
---|---|
top left | align_top_left |
top center | align_top_center |
top right | align_top_right |
center left | align_center_left |
center | align_center |
center right | align_center_right |
bottom left | align_bottom_left |
bottom center | align_bottom_center |
bottom right | align_bottom_right |
Troubleshooting
If you find any bugs/unexpected behaviour or you have a proposition for future changes open an issue describing the current behaviour and what you expected.
Development ![cargo test](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fdeinstapel.github.io%2Fcursive-aligned-view%2Fcargo-test.json)
Running the tests
Preparing integration tests
To perform the test it's advisable to install cargo-insta
in case your tests fail and you want to inspect the received output.
$ cargo install cargo-insta
You will also need insta to validate new tests you add or update older ones.
Running all test suites
Just run
$ cargo test
to execute all available tests.
Or if you want to interactively inspect failed tests
$ cargo insta test
shields.io endpoints
shields.io endpoints are generated inside the ./target/shields
folder. They are used in this README.
Authors
Fin Christensen
:octocat:
@fin-ger
:elephant:@fin_ger@weirder.earth
:bird:@fin_ger_github
Johannes Wünsche
:octocat:
@jwuensche
:elephant:@fredowald@mastodon.social
:bird:@Fredowald
Show your support
Give a :star: if this project helped you!