tuikit 0.4.6

Toolkit for writing TUI applications
Documentation
# Change Logs

## v0.4.6: 2022-05-04

Feature:
- parse `alt-space` to `Alt(' ')`
- implement binding of usercase chars(e.g. `shift-x`)

Fix:
- update `term` to `0.7`
- update `nix` to `0.24.1`
- layout example on README won't compile

## v0.4.5: 2021-02-15

Feature:
- Travis CI -> Github Actions

Fix:
- parse missing keynames(ctrl-up/down/left/right)

## v0.4.4: 2021-02-14

Feature:
- tuikit now returns concrete errors

Fix:
- restore the `clear_on_exit` behavior
- key listener no longer quit(hang) on unknown sequence

## v0.4.3: 2021-01-03

Feature:
- support bracketed paste mode

## v0.4.2: 2020-10-20

Fix:
- click/wheel events' row were not adjusted in non-fullscreen mode

## v0.4.1: 2020-10-18

Fix:
- `Term` not paused on drop.

## v0.4.0: 2020-10-15

Feature:
- support `hold` option that don't start term on creation.
- support user defined event.
- unify result types

## v0.3.4: 2020-10-06

Feature:
- widget `win` support header and right prompt
- new widget: `stack` for stacking widget bottom up
- keyboard now parses double click events
    - in this mode, `MousePress` event would no longer be generated
- keyboard now merges consecutive wheel events

Fix:
- show cursor when quiting alternate screen

## v0.3.3: 2020-06-26

- fix [skim#308]https://github.com/lotabout/skim/issues/308: skim hang on
    initialization

## v0.3.2: 2020-04-01

- fix skim#259 release lock correctly on pause
- fix skim#277: x10 mouse event was capped

## v0.3.1: 2020-02-05

- fix skim#232: use `cfmakeraw` to enable raw mode
- fix build with rust 1.32.0

## v0.3.0: 2020-01-30

Feature:
- Feature: option to clear screen or not after exit.
- Feature: new trait `Widget`

Bug fixes:
- fix skim#255: parse `space` as key ` `
- reset mouse status before exit.
- fix: adjust mouse position(row)'s origin

Examples:
- 256color_on_screen: reset attributes before flush
- fix #10: output help in split example
- get_keys: disable mouse before existing
- all: make examples quit on Ctrl-C

Depedency Update:
- `term` to `0.6`

## v0.2.9: 2019-07-28

Fix: [skim#192](https://github.com/lotabout/skim/issues/192): Start drawing in
a clean line.

## v0.2.8: 2019-06-05

Update dependenncy `nix` to `0.14`.

## v0.2.7: 2019-06-04

Features:
- Implement `From` trait for variaous struct
    * `From<Color> for Attr`
    * `From<Effect> for Attr`
    * `From<char> for Cell`
- `win/split` now accept `Into<...>` struct. Previously when initializing
    splits, you need to write `split.basis(10.into())`,
    now it's just `split.basis(10)`.
- Implement builder pattern for `Attr`. We could now do
    `Attr::default().fg(...).bg(...)`.
- Add two user defined event(`User1` and `User2`). Use it for your own need.

Bug fixes:
- fix compilation error on FreeBSD.

## v0.2.6: 2019-03-28

Reduce CPU usage on idle.

## v0.2.5: 2019-03-28

Clear screen on resize

## v0.2.4: 2019-03-22

Fix: ESC key not working

## v0.2.3: 2019-03-23

- Support more alt keys
- impl `Draw` for `Box<T: Draw>`

## v0.2.2: 2019-03-19

API change: `Draw::content_size` -> `Draw::size_hint` and returns
`Option<usize>`. So that `None` could indicates "I don't know".

## v0.2.1: 2019-03-17

- fix: build failed with rust 2018 (1.31.0)

## v0.2.0: 2019-03-17

Feature:
- Support layout(e.g. `HSplit`, `VSplit`)
- `term.send_event` to inject event to `Term`'s event loop
- `use tuikit::prelude::*` to simplify import

## v0.1.5: 2019-03-02

Fix: Synchronize the pause and restart event.

## v0.1.4: 2019-02-25

Fix: output will replace raw ESC(`\x1b`) with `?` so that terminal won't mess up.

## v0.1.3: 2019-02-24

Fix: report cursor position (0, 0) on terminals that doesn't support CPR.

## v0.1.2: 2019-02-24

Features:
- support specifying `min-height` and `max-height`
- screen: able to iterate over all cells
- attr: add `extend` method for composing `Attr`.

Bug Fixes:
- #1 Increase timeout(to 300ms) on initialize to support slow terminals
- #3 erase contents on exit
- screen: fix panic on height/width of `0`
- fix some key parsing error