Commit Graph

899 Commits

Author SHA1 Message Date
Alexandre Bury
e51be07e5d Update to Rust 2018
Run `cargo fix --edition` and update Cargo.toml
2019-02-28 15:54:12 -08:00
Alexandre Bury
88d2fb1f46 Simplifies backend input 2019-02-28 13:41:40 -08:00
Alexandre Bury
9bcbda4e7b Update Cursive::new example to compile on windows 2019-02-24 18:39:17 -08:00
Alexandre Bury
0fbb1c9cdd Do not run Cursive::new test 2019-02-22 16:14:07 -08:00
Alexandre Bury
8fe9a1d54e Better documentation for Cursive 2019-02-22 15:30:22 -08:00
Alexandre Bury
d7e57fd280 Rename toggle_debug_view -> toggle_debug_console 2019-02-22 15:02:34 -08:00
Alexandre Bury
3a7e10cffe Update debug view 2019-02-22 13:55:07 -08:00
Alexandre Bury
8b3f5a8de7 Add CursiveLogger and DebugView 2019-02-22 12:38:16 -08:00
Alexandre Bury
4852d25f51 Fix doc for Finder::call_on 2019-02-22 10:26:56 -08:00
Alexandre Bury
28ce8ca8bd Rename Finder::find_id -> Finder::call_on_id and add proper find_id
The previous naming looked like a bad case of copy-pasta.
2019-02-21 11:21:06 -08:00
Alexandre Bury
027038db6f Add StackView::remove_layer 2019-02-12 17:24:34 -08:00
Alexandre Bury
ec8f7c93e8 Wrap each layer in a CircularFocus 2019-01-24 11:57:30 -08:00
Alexandre Bury
3e1eefd2db Add CircularFocus view
Can be used to have focus wrap around when pressing Tab or Arrow keys.
2019-01-24 11:47:22 -08:00
Daniel Akhterov
1862b94c56 Hide Scrollbars 2018-12-30 14:49:23 -08:00
Alexandre Bury
2ab81ae6c9 Add HideableView::is_visible 2018-12-20 13:39:55 -08:00
Alexandre Bury
514751ff8a Replace try! with ? 2018-12-17 14:02:40 -08:00
Alexandre Bury
79e23bb70e Update dependencies 2018-11-30 16:55:47 -08:00
Alexandre Bury
a6d9b46bf3
Merge pull request #299 from agavrilov/radiogroup_callback
Add on_change callback to `RadioGroup`
2018-11-30 15:46:23 -08:00
Alexander Gavrilov
fcfca86a36 Add chainable variant of on_change 2018-11-30 15:44:56 -08:00
Alexander Gavrilov
8ea55a69a0 Add on_change callback 2018-11-30 14:34:17 -08:00
Alexandre Bury
6b278495d5 Use StyledString in SelectView 2018-11-30 13:19:08 -08:00
Alexandre Bury
7a58970163 Add PaddedView 2018-11-18 20:05:31 -08:00
Alexandre Bury
8e016a7f0a Update doc and changelog 2018-11-09 14:38:04 -08:00
Alexandre Bury
edeb7a8c13 Add EnableableView 2018-11-09 14:19:37 -08:00
Alexandre Bury
193f098ee0 Add Printer::enabled 2018-11-09 14:08:43 -08:00
Alexandre Bury
99dc97a092 Fix EventTrigger::none 2018-11-09 11:27:46 -08:00
Alexandre Bury
b60c69ca63 Fix example and add doc tests 2018-11-09 10:54:57 -08:00
Alexandre Bury
d9d34b4350 Add EventTrigger, refactor OnEventView 2018-11-09 10:40:06 -08:00
Alexandre Bury
3f4719c148 Fix typo in doc 2018-11-08 12:05:18 -08:00
Alexandre Bury
e82f0a077d Added doc & examples to utilities types 2018-11-08 11:24:48 -08:00
Alexandre Bury
02c2680eaa Do not infer WheelDown on non-legacy ncurses backends 2018-11-05 15:19:00 -08:00
Alexandre Bury
e111f982b9 Update for latest bear-lib-terminal 2018-11-05 11:03:52 -08:00
Alexandre Bury
005d505cc4 Enable wheel down detection on ubuntu 2018-11-05 10:59:55 -08:00
Alexandre Bury
9430fec91b Prepare for next ncurses release 2018-11-02 10:06:53 -07:00
Alexandre Bury
3b81305b16 Update ncurses backend to use mouse_v1 2018-11-01 14:38:14 -07:00
Alexandre Bury
b0a86ceb61 Rephrase doc 2018-10-22 19:30:09 -07:00
Alexandre Bury
9b3b16f64d Fix important_size for SelectView and ListView 2018-10-18 13:36:17 -07:00
Alexander Gavrilov
a5e9f890d0 Do not compile signal_hook on Windows 2018-10-18 07:52:38 -07:00
Alexandre Bury
44ddfc7abf Update Cursive::find_id doc comment
Mention SelectView and the need to get the type right.
2018-10-04 16:41:14 -07:00
Jacob Budin
38fdcc7bf8 Simplify Panel::wrap_needs_relayout 2018-10-02 14:20:14 -04:00
Jacob Budin
8d3be52927 Add title to views::Panel 2018-10-02 12:02:10 -04:00
Alexandre Bury
3d81ad92ec SelectView: make autojump opt-in 2018-09-27 16:01:37 -07:00
Alexandre Bury
333392e034 Add immut! macros 2018-09-24 14:28:23 -07:00
Alexandre Bury
810dc6a591 Fix desperate LinearLayout 2018-09-12 16:13:41 -07:00
Alexandre Bury
be977c705f Add Cursive::on_event 2018-09-05 08:55:29 -07:00
Alexandre Bury
b21224cf1c Add EventResult::and 2018-09-05 08:51:34 -07:00
Alexandre Bury
760cf11d92 Invalidate cache on mutable child access 2018-08-26 12:25:22 -07:00
Ben-Alderson
fe93b945fd Fix crash when removing a child from LinearLayout when final child has focus 2018-08-26 14:58:23 -04:00
Alexandre Bury
92f919978c Rustfmt 2018-08-22 13:33:29 -07:00
Alexandre Bury
2f0f632e22 Fix possible panic in scrollview with full-height bar 2018-08-20 14:47:10 -07:00
Alexandre Bury
2167ba68a1 Fix panic with empty content in ScrollView 2018-08-20 13:34:47 -07:00
Alexandre Bury
acc1405c2a Fix size cache in ScrollView 2018-08-20 13:30:42 -07:00
Alexandre Bury
5a6c84a55e Use With trait for chainable variant 2018-08-08 10:25:25 -07:00
Henry
528e986fc3 Modified ProgressBar to allow for customization of bar's color. (#279)
Added `color` component to `ProgressBar`.
Modified `ProgressBar::new` to default to `highlight` color.
Modified existing methods to use `color` component when printing.
Added relevant methods to change `color` component.
2018-08-08 10:23:15 -07:00
Alexandre Bury
56d7646086 Lose menubar focus after leaf action 2018-08-05 18:17:56 -07:00
Alexandre Bury
12d5e260f0 Fix ScrollView layout size 2018-07-25 20:58:22 -07:00
Alexandre Bury
28bb7af6af Add Callback::from_fn_mut
Cursive::add_global_callback now takes a FnMut
2018-07-25 15:05:18 -07:00
Alexandre Bury
b2d800c798 Fix panic with empty LinearLayout 2018-07-25 09:12:27 -07:00
Alexandre Bury
62807f84fb Fix ScrollView layout size 2018-07-24 23:32:36 -07:00
Alexandre Bury
61543d99b3 Fix event priority in ScrollView 2018-07-24 23:09:09 -07:00
Alexandre Bury
09fcbf225e Fix underflow in ScrollView 2018-07-24 22:53:56 -07:00
Alexandre Bury
c49d18034d Fix focus cycle on dialogs without buttons 2018-07-24 22:37:52 -07:00
Alexandre Bury
840fd627b7 Remove internal scrolling from SelectView 2018-07-24 19:38:24 -07:00
Alexandre Bury
49e1d1d15e Remove internal scrolling from list_view 2018-07-24 19:06:07 -07:00
Alexandre Bury
1af1b9e5fd Fix doc comment 2018-07-22 20:26:17 -07:00
Alexandre Bury
0046eba66d SelectVIew::selection now returns Option<Rc<T>> 2018-07-22 20:25:13 -07:00
Alexandre Bury
f5535f2db7 Update theme example to use Cursive::load_toml 2018-07-22 20:20:31 -07:00
Alexandre Bury
4ccc07c6d3 Update pancurses backend handling of multiple events 2018-07-22 20:13:49 -07:00
Alexandre Bury
6a728bf234 Move resize thread handling to separate module 2018-07-19 21:11:50 -07:00
Alexandre Bury
f4530d688b Fix compilation for non-Unix platforms 2018-07-19 20:50:46 -07:00
Alexandre Bury
5dfc27bd9f Fix compilation error on BLT backend 2018-07-19 20:13:37 -07:00
Alexandre Bury
af4e55ed18 Fix dummy & blt backends 2018-07-19 19:45:26 -07:00
Alexandre Bury
2610b697a8 Rustfmt 2018-07-19 19:44:59 -07:00
Alexandre Bury
acd3bbfcca Share resize thread logic between all unix backends 2018-07-18 20:01:26 -07:00
Alexandre Bury
e0cc2ea703 Share resize thread logic between ncurses backends 2018-07-18 19:49:10 -07:00
Alexandre Bury
fd75249633 Move resize-specific behaviour to backend 2018-07-18 18:17:39 -07:00
Alexandre Bury
1f1e238d2e Fix pancurses for windows 2018-07-08 12:54:35 -07:00
Alexandre Bury
6135b0df79 Refactor input system
* Moves from chan to crossbeam-channel
* Moves from chan_signal to signal-hook
2018-07-08 12:49:12 -07:00
Alexandre Bury
4c70b79663 LinearLayout: fix focus after removing child 2018-06-27 13:32:39 -07:00
Alexandre Bury
a47537ec2c Add Scrollable trait 2018-06-26 17:43:16 -07:00
Alexandre Bury
88fb6e7c54 Fix StackView tests 2018-06-26 15:19:00 -07:00
Alexandre Bury
927afafe88 Fix StackView::{get, get_mut} 2018-06-26 13:54:49 -07:00
Alexandre Bury
a31dd01e5e Remove debug line 2018-06-26 13:27:51 -07:00
Alexandre Bury
70327a85e9 Add LinearLayout::remove_child 2018-06-26 13:27:14 -07:00
Alexandre Bury
acf075369c Smoother progress bars 2018-06-26 13:17:57 -07:00
Alexandre Bury
a4111accce Remove debug lines 2018-06-24 10:56:02 -07:00
Alexandre Bury
fda4bae8d6 Better ncurses synchronization
Prevent any concurrent access to ncurses in event-driven steps.
2018-06-23 18:41:15 -07:00
Alexandre Bury
e3887847fd Remove ScrollBase from TextView
Wrap the `TextView` in a `ScrollView` to achieve scrolling.
2018-06-22 14:57:55 -07:00
Alexandre Bury
9a21273167 Fix scrollview cache 2018-06-22 14:50:48 -07:00
Alexandre Bury
3a9ee0df41 Fix scrollview mouse grab 2018-06-22 13:13:58 -07:00
Alexandre Bury
6ce2dba8a1 Fix clippy warnings 2018-06-21 14:44:30 -07:00
Alexandre Bury
bd78bca91b Don't drag scrollbars if they're not visible 2018-06-20 17:35:58 -07:00
Alexandre Bury
2935f0f569 Add scroll strategy to ScrollView 2018-06-20 11:56:22 -07:00
Alexandre Bury
9bd1eb320d Add size cache to ScrollView 2018-06-20 11:48:09 -07:00
Alexandre Bury
88a15a75f1 Dialog: add methods to deal with buttons 2018-06-18 23:22:16 -07:00
Alexandre Bury
6e1fc7fdb5 Update dependencies 2018-06-18 23:13:02 -07:00
Alexandre Bury
b96ea52a92 Do not import chan_signal if not required 2018-06-18 18:47:11 -07:00
Alexandre Bury
3f16e8ed60 Do not use chan_signal on windows 2018-06-18 16:50:09 -07:00
Alexandre Bury
26e5f51192 Use term_size instead of ioctl 2018-06-18 16:08:55 -07:00
Alexandre Bury
f3d822c00c Fixes for ScrollView 2018-06-17 18:17:16 -07:00
Alexandre Bury
804e41ec43 Fix resize event 2018-06-17 17:26:03 -07:00
Alexandre Bury
14fe6f3b36 Cargo fmt 2018-06-16 13:23:09 -07:00
Alexandre Bury
35eb1ec5a2 Fix pancurses 2018-06-16 12:57:20 -07:00
Alexandre Bury
83bcf4fb72 Merge branch 'master' into callback_preemption 2018-06-16 11:03:39 -07:00
Alexandre Bury
3f5b37951b Do not consume input before exit 2018-06-16 10:58:55 -07:00
Paul
03e143f4c3 Implement scroll_to_top, scroll_to_bottom, scroll_to_left, and scroll_to_right 2018-06-16 10:51:17 -07:00
Alexandre Bury
5e1956b737 Merge branch 'master' into scroll 2018-06-15 23:21:10 -07:00
Alexandre Bury
363913c68b Fix panics from overflow subtraction 2018-06-15 23:13:57 -07:00
Alexandre Bury
5cf870baaf Add scrollbar grab to ScrollView 2018-06-15 20:24:05 -07:00
Alexandre Bury
0c318b7194 Add scrollbars to ScrollView 2018-06-15 19:18:24 -07:00
Alexandre Bury
d52299a6e1 Add HideableView 2018-06-13 21:35:37 -07:00
Alexandre Bury
9569e991bf Make Palette::add_namespace public 2018-06-10 23:35:31 -07:00
Alexandre Bury
8acc08f340 Rustfmt 2018-06-10 23:29:19 -07:00
Alexandre Bury
017e100b1b Add custom values to Palette
This updates `Palette` to add a tree of custom values.
Branches from this tree can be copied back to the root with
Palette::merge. This can be used to group related values together.
2018-06-10 23:29:19 -07:00
Robin Stumm
e81e67cebe add transparent layer to StackView
test StackView::get()
2018-06-06 13:44:20 +02:00
Alexandre Bury
70cddae454 Add comments 2018-05-21 22:51:10 -07:00
Alexandre Bury
8edc0e20c9 Cargo fmt 2018-05-21 19:21:27 -07:00
Alexandre Bury
2db49da1fe Fix linearlayout focus grab 2018-05-21 18:08:41 -07:00
Alexandre Bury
5eddc1b89a Scolling fixes 2018-05-21 17:54:43 -07:00
Alexandre Bury
94504ae91b Scrollview: move offset to keep important area in view 2018-05-21 17:25:32 -07:00
Andrzej J Skalski
cabeef1d16 added with_theme to Printer 2018-05-21 15:53:38 +02:00
Alexandre Bury
c8d39910ab Backend: add AtomicBool to stop input thread 2018-05-20 10:55:13 -07:00
Alexandre Bury
0b6e5b6ad4 Add event polling to Blt backend
Basically simulates a constant set_fps(30)
2018-05-20 10:42:52 -07:00
Alexandre Bury
05e1212a50 Refactor Backend input model
Backends now have to send input to the given `chan::Sender<Event>`.
They send these events from a separate thread, allowing selection
between input and callbacks.

This currently breaks the BearLibTerminal backend, which requires all
calls to come from the UI thread.

This might not be super-safe for the ncurses backend also. We hope that
input and output are separate enough that they can run concurrently without
problem.
2018-05-20 09:59:35 -07:00
Alexandre Bury
2088d5de2a Cargo fmt 2018-05-17 17:37:39 -07:00
Alexandre Bury
755854963f Fix clippy warnings 2018-05-17 17:35:57 -07:00
Alexandre Bury
80f66262be Scrollview: use proper size for child's layout() call 2018-05-08 18:10:45 -07:00
Alexandre Bury
20cb033b8d Give wrapped rows full width 2018-05-05 09:04:32 -07:00
Alexandre Bury
d4ced015f6 EditView: keep cursor in view after key event 2018-05-03 08:36:17 -07:00
Alexandre Bury
32ee2de697 Scrollview: take scrollbar size into account 2018-05-01 17:55:13 -07:00
Alexandre Bury
0fbc5a888e Add inner size to printer
Renamed Printer::size -> output_size
2018-04-27 16:23:07 -07:00
Alexandre Bury
5586403080 printer: add doc 2018-04-24 17:19:07 -07:00
Alexandre Bury
8c2ff6bd4f Handle content_offset in print methods 2018-04-17 17:22:56 -07:00
Alexandre Bury
b80af07268 Remove Printer::is_new 2018-04-17 16:35:56 -07:00
Alexandre Bury
f0b3287d73 Merge branch 'master' into scroll 2018-04-16 22:42:42 -07:00
Alexandre Bury
1f6de5a591 Initial scrollview implementation 2018-04-16 22:39:46 -07:00
Alexandre Bury
56ce95f9b6 Add some more XY methods 2018-04-16 22:39:27 -07:00
Alexandre Bury
39babacbf5 Add AnyCb type alias 2018-04-16 22:39:16 -07:00
Alexandre Bury
3731b7375d Ncurses: better color approximation
On terminals with only 8 colors (like with `TERM=screen`)
2018-04-11 22:20:00 -07:00
Alexandre Bury
8c00b171c0 Ncurses: better color approximation
On terminals with only 8 colors (like with `TERM=screen`)
2018-04-11 22:16:08 -07:00
Alexandre Bury
ff9f669d73 Fix tests & examples 2018-04-10 12:51:40 -07:00
Alexandre Bury
a355171844 Fix clippy warnings 2018-04-10 11:53:25 -07:00
Alexandre Bury
b1e9afe0ff Add vpv example 2018-04-10 11:46:02 -07:00
Alexandre Bury
063589b0cd Move Counter to utils module 2018-04-10 11:45:36 -07:00
Alexandre Bury
d5178e778b Do not flush stdout in ncurses backend 2018-04-09 10:06:11 -07:00
Alexandre Bury
2729e77838 Ncurses backend: write mouse command to /dev/tty 2018-04-08 22:51:51 -07:00
Alexandre Bury
b34fb14957 Use ncurses::newterm instead of initscr
This leaves stdout untouched, so it can better be composed in other
commands.
2018-04-05 17:40:08 -07:00
Alexandre Bury
8641098781 Split Printer::sub_printer into sub-methods 2018-04-04 17:49:11 -07:00
Alexandre Bury
4042a45b8d Add basis for ScrollView 2018-04-04 17:48:51 -07:00
Alexandre Bury
fd09b5f806 Use Vec2 in backend methods 2018-04-02 18:08:12 -07:00