Commit Graph

920 Commits

Author SHA1 Message Date
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
Alexandre Bury
126530b9a9 Cursive::new now takes the backend as argument 2018-04-01 16:39:03 -07:00
SEGFAULT
76d340f11d Making backend::Backend into a std::Boxable trait (#229)
* Making Backend into a Boxable Trait

* Fixed up some typos in the previous and modified some of the docs so they still compile.

* Minor Changes requested by @gyscos

* Whoops
2018-04-01 15:35:37 -07:00
marcin
9df4b21a26 Adding disable/enable functionality to text_area 2018-03-28 21:02:53 +02:00
Alexandre Bury
3588955f0b Add SelectView::insert_item 2018-03-25 00:30:48 -07:00
Alexandre Bury
8f04356baa Implement ListView::important_area 2018-03-23 17:00:46 -07:00
Alexandre Bury
e81307a77c Implement Dialog::important_area 2018-03-22 15:24:27 -07:00
Alexandre Bury
c9a4fbf181 Implement Panel::wrap_important_area 2018-03-22 15:21:54 -07:00
Alexandre Bury
d140e154aa Implement ViewWrapper::important_area 2018-03-22 15:15:49 -07:00
Alexandre Bury
6729453118 Implement Menubar::important_area 2018-03-22 15:13:51 -07:00
Alexandre Bury
5673b59c10 Implement {SelectView, MenuPopup}::important_area 2018-03-22 14:31:28 -07:00
Alexandre Bury
4778e4de6f Implement EditView::important_area 2018-03-22 14:17:00 -07:00
Alexandre Bury
a989fd5f80 Implement TextArea::important_area 2018-03-22 14:16:49 -07:00
Alexandre Bury
1ad515e5f0 rustfmt 2018-03-22 11:04:58 -07:00
Alexandre Bury
5c3c750033 Implement LinearLayout::important_area 2018-03-22 11:02:46 -07:00
Alexandre Bury
bd3ea469e9 Add View::important_area
In preparation for ScrollView
2018-03-16 18:07:01 -07:00
Alexandre Bury
e23a5cd3a2 Add Rect::offset 2018-03-16 18:06:53 -07:00
Alexandre Bury
5d3c0d3fb0 Add rect::Rect 2018-03-16 17:16:05 -07:00
Alexandre Bury
7ca632a10d Move Margins to view module 2018-03-16 16:09:47 -07:00
Alexandre Bury
92c1d1a5b2 Rename Vec4 -> Margins 2018-03-16 16:06:35 -07:00
Alexandre Bury
9bc723ab4a Do not accept any return value for callbacks
It got added so we could keep using `s.pop_layer()` in single-line callbacks.
It was confusing, and the return value was ignored anyway.
2018-03-16 15:50:56 -07:00
Alexandre Bury
acb73765e9 Add EditView::maximum_width
Currently only applied during text insertion.
Doesn't affect scrolling yet.
2018-03-15 16:07:28 -07:00
Alexandre Bury
2c73e35f85 Split import line
Not on stable yet it seems
2018-03-15 11:57:12 -07:00
Alexandre Bury
16a3bd7bbe Return callbacks from EditView::set_content
Just like for SelectView::select_up
2018-03-15 11:50:22 -07:00
Alexandre Bury
987796f2fa Return selection change callback in SelectView methods 2018-03-15 11:42:49 -07:00
Alexandre Bury
1deee26970 Better checks for mouse events on SelectView 2018-03-15 09:36:26 -07:00
Alexandre Bury
8d9d17d372 Update StackView tests 2018-03-14 15:19:56 -07:00
Alexandre Bury
1ad9a53cf7 Small refactoring 2018-03-14 15:11:27 -07:00
Alexandre Bury
7db1ee7335 Reverse View and AnyView
We now have `View: AnyView`
2018-03-14 14:59:41 -07:00
Alexandre Bury
f27f7792df Rename BoxableView -> IntoBoxedView
And add an implementation for Box<View>
2018-03-14 14:16:07 -07:00
Alexandre Bury
17ccda2d40 Use BoxableView trait bound 2018-03-14 13:39:30 -07:00
Alexandre Bury
e4bf9accc3 Add BoxableView and AnyBox
And remove `impl ViewWrapper for T: Deref<View>`
This means `Box<View>` doesn't implement `View` anymore.
2018-03-14 12:32:07 -07:00
Alexandre Bury
dea226a095 Add AnyView::as_boxed_any for easier downcasting 2018-03-14 11:18:28 -07:00
Alexandre Bury
06305c89a9 Add StackView::find_layer_from_id
Also `StackView::get` and `StackView::get_mut`
2018-03-11 16:53:41 -07:00
Alexandre Bury
1ae3bbff89 Fix pancurses input
Fixes #210
2018-03-08 10:03:41 -08:00
Alexandre Bury
5e58726ffd Add test for StackView::move_layer
From #213 (thanks xliiv)
2018-03-05 18:48:24 -08:00
Alexandre Bury
48514991d2 Add Cursive::clear_global_callbacks 2018-03-05 15:25:36 -08:00
Alexandre Bury
b4f32b56bb Fix move_layer index calculation
See #213
2018-03-04 16:54:16 -08:00
Nils Berg
8bf82a9b58 make SelectView less greedy 2018-03-01 21:13:15 +01:00
Alexandre Bury
99046d10c3 Use special key detection for pancurses
Shared with the ncurses backend code
2018-02-20 15:44:07 -08:00
Alexandre Bury
767e225db0 Only require maplit for ncurses bqckend 2018-02-20 14:50:13 -08:00
Alexandre Bury
beefac9c6a curses backends: don't crash on weird input 2018-02-20 11:18:02 -08:00
Alexandre Bury
3f35b87757 Use print! rather than println! for ncurses configuration 2018-02-20 10:43:38 -08:00
Alexandre Bury
c626779d8a Fix simple LinesIterator
Was stopping at the first empty line.
2018-02-19 19:55:31 -08:00
Alexandre Bury
179c804df8
Merge pull request #211 from xliiv/dialog-focus
Add get_current_focus to Dialog & make public enum Focus
2018-02-18 14:48:39 -08:00
Tymoteusz Jankowski
6faa1ff5a7 Add get_current_focus to Dialog & make public enum Focus 2018-02-18 23:23:04 +01:00
Alexandre Bury
62260a025e Rustfmt 2018-02-16 17:21:24 -08:00
Alexandre Bury
6b6398f109 Fix clippy warnings 2018-02-16 17:20:13 -08:00
Alexandre Bury
d33fb39cd9 Replace AsSpannedStr with Into<SpannedStr> 2018-02-16 17:16:01 -08:00
Alexandre Bury
d0a186d01e Move show_spaces option to spans::LinesIterator 2018-02-16 17:10:29 -08:00
Alexandre Bury
2760e92ce6 Use spans::LinesIterator from simple::LinesIterator 2018-02-16 17:04:39 -08:00
Alexandre Bury
0ff08f3a9f Add Row::overall_indices 2018-02-16 16:56:25 -08:00
Alexandre Bury
7772cd146d Add AsSpannedStr trait
For nicer calls to resolve
2018-02-16 16:32:54 -08:00
Alexandre Bury
25e65a87e8 Remove attribute type from spans::LinesIterator 2018-02-16 16:05:15 -08:00
Alexandre Bury
c220cc679a Remove attribute type from SpannedText 2018-02-16 15:35:51 -08:00
Alexandre Bury
7218b6c879 Add SpannedStr and SpannedText 2018-02-16 14:11:33 -08:00
Gergely Nagy
f478d57e51 FnOnce callbacks can be sent to cb_sink 2018-02-12 22:44:50 +01:00
Gergely Nagy
0ceb4ff4e2 Run multiple callbacks per step as the documentation suggests 2018-02-12 22:44:50 +01:00
Alexandre Bury
847fd7d800 Add SelectView::selected 2018-02-11 19:26:44 -08:00
Alexandre Bury
8f3441bc3c ListView: use checked subtraction between focus and scroll index 2018-02-11 19:07:38 -08:00
Alexandre Bury
bbc3d3d5b7
Merge pull request #204 from xliiv/focus_index_for_linear_layout
Add LinearLayout.get_focus_index
2018-02-08 10:05:43 -08:00
Tymoteusz Jankowski
56fe7ab0df Add LinearLayout.get_focus_index 2018-02-08 18:33:20 +01:00
Alexandre Bury
daac2d67b4 Add Vec2::saturating_add(XY<isize>)
And uses it to fix crash in position example
2018-02-07 16:44:22 -08:00
SEGFAULT
9e591ef635 Moving Windows in StackView (#200)
* Inital draft of reposition code.

* throwing it all in git so I can show @gycos the mess I made

* Cleaning up the example and removing that garbage getter function from StackView. More thought needs to be applied to that API.

* modified stackview to locally draw background, currently every frame. Adjusted surrounding elements to mirror this change.

* fixed dirty flag on stackView to use a cell. Also added dirty events on window resize.

* Final code cleanup.

* Fixed all highlighted issues in PR #200
2018-02-07 16:25:00 -08:00
Alexandre Bury
22e2360aa1 Merge separate TrackedView impl blocks 2018-01-29 17:34:06 -08:00
Alexandre Bury
f091cec861 Add BoxView::set_size 2018-01-27 22:12:29 -08:00
Alexandre Bury
b14a2ff5e7 Remove debug lines 2018-01-27 18:15:27 -08:00
Alexandre Bury
fbd4dd97f1 Add grayscale color matching for ncurses backend 2018-01-27 18:14:37 -08:00
Alexandre Bury
800470e22c Add Color::from_256colors test 2018-01-27 17:31:43 -08:00
Alexandre Bury
6f072ac894 Fix assert for 256 colors 2018-01-27 17:26:03 -08:00
Tymoteusz Jankowski
579b8fddd3 Fix getting view in inner_getters 2018-01-27 19:51:03 +01:00
Tymoteusz Jankowski
5bfe9548e8 Replace inner_getters!(T); with inner_getters!(self.view: T); 2018-01-27 10:37:08 +01:00
Tymoteusz Jankowski
b21280c106 Use inner_getters! in OnEventView 2018-01-26 23:28:20 +01:00
Tymoteusz Jankowski
4e2b8adf3d Merge branch 'master' into get-child 2018-01-26 23:15:14 +01:00
Tymoteusz Jankowski
4daf40e271 Change OnEventView.inner to OnEventView.view
This breaks compatibility!
2018-01-26 22:32:07 +01:00
Tymoteusz Jankowski
4545ed0bf3 fmt 2018-01-26 17:26:21 +01:00
Tymoteusz Jankowski
d3fadc7c3c Add SelectView.get_item_mut 2018-01-26 17:24:44 +01:00
Tymoteusz Jankowski
4dc403df78 Add SelectView.get_item 2018-01-26 13:25:19 +01:00
Tymoteusz Jankowski
9510d92736 Use inner_getters for rest of ViewWrappers (except on_event_view) 2018-01-26 12:08:28 +01:00
Tymoteusz Jankowski
84ea73617f Add & use inner_getter! in BoxView 2018-01-26 11:39:10 +01:00
Tymoteusz Jankowski
d0956b40b0 Add get_view for ViewWrapper (needs fix) 2018-01-25 14:08:01 +01:00
Alexandre Bury
057321abac Doc: add wikipedia link to TUI 2018-01-24 18:21:39 -08:00
Alexandre Bury
fac6312227 Fix more clippy warnings 2018-01-22 16:42:51 -08:00
Alexandre Bury
5dfdeab6ae Fix clippy warnings 2018-01-22 14:47:56 -08:00
Alexandre Bury
da8310b076 Rustfmt 2018-01-22 14:37:27 -08:00
Alexandre Bury
06086fdeb0 Dialog::get_content now returns &AnyView 2018-01-22 13:45:00 -08:00
Alexandre Bury
8aa901afb4
Merge pull request #190 from xliiv/dialog-content-get
Add get_content on Dialog
2018-01-22 13:18:08 -08:00
Tymoteusz Jankowski
c119f957eb Add Dialog.get_content 2018-01-22 21:01:23 +01:00
Alexandre Bury
3674c118cb Rustfmt 2018-01-22 11:55:56 -08:00
Alexandre Bury
98aff39904 Move View::as_any to separate trait AnyView 2018-01-22 11:50:25 -08:00
Alexandre Bury
1551fbb543 Add View::as_any and View::as_any_mut 2018-01-22 09:20:45 -08:00
Alexandre Bury
208b812976 Fix doc link 2018-01-21 11:20:08 -08:00
Alexandre Bury
431285135f Make Palette directly an EnumMap
Removes the "colors" intermediate member.
2018-01-21 11:17:22 -08:00
Alexandre Bury
b0f4dfbc17 Fix missing link 2018-01-20 21:18:29 -08:00
Alexandre Bury
c84bbbdf45 Update doc for theme module 2018-01-20 21:17:32 -08:00
Alexandre Bury
c3f2e9ad9c Add LinearLayout::get_child and get_child_mut 2018-01-17 11:07:04 -08:00
Alexandre Bury
5ac0fce363 Refactor ColorStyle
Add the notion of PaletteColor to use a color from the palette.

Breaking change: most color styles are now methods rather than enum
variants.
2018-01-17 10:22:06 -08:00
Alexandre Bury
d9215a2b39 Add Style::add 2018-01-16 22:41:22 -08:00
Alexandre Bury
6bb0812a39 TextArea: invalidate cache on set_content 2018-01-16 10:30:26 -08:00
Alexandre Bury
51eb6bf34c Have TextView::content take Into<StyledString> 2018-01-15 14:13:30 -08:00
Alexandre Bury
5003095171 Update ncurses and owning-ref dependencies 2018-01-15 13:58:26 -08:00
Alexandre Bury
39405ba1ec Refactor spans and markup
We now use mostly indexed spans into a source string.
Indexed Spans can still be resolved to a string slice when needed.
2018-01-15 13:53:27 -08:00
Alexandre Bury
a9d9239fac Correctly parse colors 232-255
Those are grayscale
2018-01-14 16:59:03 -08:00
Alexandre Bury
3058816f1a Add Dialog::buttons to iterate on buttons 2018-01-12 09:33:54 +01:00
Alexandre Bury
56f81eee7c Add Button::set_label 2018-01-12 09:33:47 +01:00
Alexandre Bury
0666a8b585 Button: add a way to get its label 2018-01-12 09:30:49 +01:00
Alexandre Bury
14f2bf636c OnEventView: add note regarding single callback per event 2018-01-11 18:49:48 +01:00
Alexandre Bury
0c24ed369b Allow multiple callbacks to be registered per event. 2018-01-11 18:47:44 +01:00
Alexandre Bury
2d62d2c91f Add Cursive::active_screen 2018-01-11 18:20:23 +01:00
Alexandre Bury
4879d8cc71 Fix ending newline problem 2018-01-11 00:16:13 +01:00
Alexandre Bury
afb224b860 Protect against empty spans 2018-01-11 00:12:21 +01:00
Alexandre Bury
890b3f13e1 TextView: print styled spans of text 2018-01-10 23:58:29 +01:00
Alexandre Bury
6f468658e1 Add Plain markup implementation 2018-01-10 14:44:27 +01:00
Alexandre Bury
59d67e891c Keep StyledString markup-agnostic, push trait to methods 2018-01-10 14:02:54 +01:00
Alexandre Bury
7ecf5f540b Add markup::{Markup, StyledString} 2018-01-10 13:54:32 +01:00
Alexander Gavrilov
f8f23a5dda Call resize_item on Windows only 2018-01-09 08:24:17 -08:00
Alexander Gavrilov
7469bd36be Call resize_term on KeySize 2018-01-09 08:01:22 -08:00
Alexandre Bury
4383526ec0 Fix some clippy warnings 2018-01-09 15:20:07 +01:00
Alexandre Bury
f8588e74c1 Rustfmt 2018-01-09 15:17:49 +01:00
Alexandre Bury
d41f1e937d Menubar: trigger leaf nodes on mouse release
Feels more natural
2018-01-09 14:53:55 +01:00
Alexandre Bury
d384cbdaf1 Allow menu leaves and delimiter in menubar 2018-01-09 14:37:40 +01:00
Alexandre Bury
ed94078218 Add span tests from markdown 2018-01-09 10:32:52 +01:00
Alexandre Bury
fc8d428028 Fix doc test 2018-01-09 10:10:05 +01:00
Alexandre Bury
c486d96810 Don't run doc example 2018-01-09 09:50:22 +01:00
Alexandre Bury
203ec4ac76 Improve doc for Cursive::find_id 2018-01-09 09:26:05 +01:00
Alexandre Bury
df97279442 TextView: add manual scroll methods 2018-01-08 19:02:35 +01:00
Alexandre Bury
a2244f0ac1 Add markdown parser 2018-01-08 17:18:35 +01:00
Alexandre Bury
15c3e77fc4 Split theme.rs into multiple files 2018-01-08 16:11:12 +01:00
Alexandre Bury
c2d2fa0527 Update Style to include a set of effects 2018-01-08 15:44:27 +01:00
Alexandre Bury
b59e480f60 Add missing imports 2018-01-08 13:15:28 +01:00
Alexandre Bury
c4670e5262 More utils re-organization 2018-01-08 12:33:43 +01:00
Alexandre Bury
7ac003c4de Re-organize utils module 2018-01-08 12:07:07 +01:00
Alexandre Bury
943da46e82 Add SpanListIterator 2018-01-08 01:25:30 +01:00
Alexandre Bury
1acde148be Implement From<Effect> and From<ColorStyle> for Style 2018-01-07 15:08:25 +01:00
Alexandre Bury
aa9db30a51 Add TextView::set_effect 2018-01-05 14:20:09 +01:00
Alexandre Bury
895557e91d Fix TextView deadlock 2018-01-05 14:20:08 +01:00
Alexandre Bury
2d7f8295cf Add Effect::{Bold,Italic,Underline} 2018-01-05 13:57:39 +01:00
Alexandre Bury
5af367fa18 Add missing use statements to doc example 2018-01-03 16:51:07 +01:00
Alexandre Bury
778c1f1d71 Better doc 2018-01-03 15:36:08 +01:00
Alexandre Bury
08a935d561 Don't run test examples when we call Cursive::new
It fails with some backends.
2017-12-31 20:29:05 +01:00
Alexandre Bury
8a05bd5421 TextView: improve documentation 2017-12-31 19:49:13 +01:00
Alexandre Bury
65ea8eeec8 No need to clone the Arc 2017-12-31 14:14:19 +01:00
Alexandre Bury
e4cd68a4eb Rustfmt 2017-12-30 23:03:42 +01:00
Alexandre Bury
799ec812e4 Add TextContent and TextContentRef
To manage the model separately from the view.
2017-12-30 23:00:48 +01:00
Alexandre Bury
8da659367d Add StackView::move_layer 2017-12-18 18:18:23 +01:00
Alexandre Bury
bd9b6a695b Return view on pop_layer
Callbacks now often allow (and ignore) a return type.
2017-12-16 14:41:15 +01:00
Alexandre Bury
1b7170e308 StackView: store Layer<Box<V>> rather than Box<Layer<V>>
Rather than storing a Layer<V> as a Box<View>,
stores a Layer<Box<View>>, so we can unwrap it when
popping layers.
2017-12-16 14:41:15 +01:00
Marcel Hellwig
9ce8896bba
updated dialog doc to reflect the default position 2017-12-12 09:19:05 +01:00
Marcel Hellwig
f8e7427f75 simplified offset calculation in dialogboxtitle 2017-12-12 09:07:13 +01:00
Marcel Hellwig
592ecf4c09 added option to position the header in a dialog 2017-12-12 08:38:14 +01:00
Alexandre Bury
9b9619aa53 Add View: Any 2017-12-11 18:54:40 -08:00
Alexandre Bury
bbee77f1b7 Add ViewWrapper::into_inner
And add some derive(Debug)
2017-12-11 17:31:55 -08:00
Alexandre Bury
d0c30ded21 Ncurses backend: use character pattern instead of string 2017-12-11 12:29:10 -08:00
Alexandre Bury
d328138531 OnEventView: better doc 2017-12-07 16:47:56 -08:00
Alexandre Bury
93c672df9d TextArea: fix possible panic with multi-bytes characters 2017-12-07 14:33:01 -08:00
Alexandre Bury
a7d38d9608 MenuPopup: better mouse scroll alignment 2017-12-07 14:14:52 -08:00
Alexandre Bury
fdf4a0db4b TextArea: fix cursor after content change 2017-12-07 13:48:41 -08:00
Alexandre Bury
70906aa5de Add mines example 2017-11-29 02:11:11 -08:00
Alexandre Bury
6bc63a40c5 Remove odds dependency
Now that `Vec::splice` is stable.
Note: this means rustc >= 1.22 is required.
2017-11-25 10:16:35 -08:00
Alexandre Bury
5a52b8de69 Replace eprintln! with warn! 2017-11-20 12:47:51 -08:00
Alexandre Bury
0c39f52016 ncurses: compute whole modifier table at runtime 2017-11-20 11:44:23 -08:00
Alexandre Bury
b2097bd1c8 ncurses: detect key offset at runtime 2017-11-19 20:13:57 -08:00
Alexandre Bury
c10da1390b Use dynamic key code map in ncurses backend
In preparation for detecting key codes dynamically.
(Different ncurses versions will use different code offsets)
2017-11-19 17:14:20 -08:00
Alexandre Bury
6fe6b72f89 Use std::cmp::min rather than usize::min 2017-11-19 15:44:28 -08:00
Alexandre Bury
42dbe40e3f Fix modifier keys on ncurses
I think we really need to read terminfo instead...
2017-11-19 11:08:52 -08:00
Alexandre Bury
b6cfd43556 Replace last u32 with mmask_t
I missed this one...
2017-11-19 01:21:57 -08:00
Alexandre Bury
eeca719a92 Rename split_u32 -> split_i32 2017-11-19 01:14:53 -08:00
Alexandre Bury
a11d02dfa4 Use mmask_t instead of u32 2017-11-19 01:13:24 -08:00
Alexandre Bury
0b5b6ceace Add mouse support to pancurses 2017-11-19 00:40:56 -08:00
Alexandre Bury
1f1a651371 Fix linear layout offset check 2017-11-17 12:42:30 -08:00
Alexandre Bury
dc75cdd115 LinearLayout: use ChildIterator everywhere
For a more consistent sizing.
2017-11-06 23:51:44 -08:00
Alexandre Bury
11ea8a592b Never layout a child larger than the parent 2017-11-06 17:12:39 -08:00
Adrian Neumann
c92b1acb6e Ignore keys properly in SelectView::on_event
on_event consumes all keypresses by trying to jump to the item that matches the char. Even if no such item is found, the key event is lost to the rest of the application. By returning EventResult::Ignored when the key press has no effect, the key event that have no effect on the SelectView can still be used by somebody else.
2017-10-26 20:23:00 +02:00
Alexandre Bury
e7ee525bb6 Fix possible panic in ListView 2017-10-14 23:08:18 -07:00
Alexandre Bury
420454cc0f Better mouse scroll drag
Now saturates when to the top or left.
2017-10-14 21:50:08 -07:00
Alexandre Bury
f90621811c More rustfmt 2017-10-14 21:18:50 -07:00
Alexandre Bury
294a4102b4 Fix mouse support for ListView 2017-10-14 21:01:07 -07:00
Alexandre Bury
850e0b2cd1 Better bounds on SelectView clickable area 2017-10-13 18:11:25 -07:00
Alexandre Bury
ca23a9c10f Fix mouse position with TextArea 2017-10-13 18:04:41 -07:00
Alexandre Bury
a5952d0741 Fix some mouse/scroll issues with SelectView and TextView 2017-10-13 17:53:39 -07:00
Alexandre Bury
9026d87aab Fix panic with mouse click in TextArea 2017-10-13 16:29:53 -07:00
Alexandre Bury
a4874beee0 Use intermediate type
Again, to fix a clippy warning.
2017-10-13 15:40:33 -07:00
Alexandre Bury
46dec4b0ca Fix clippy warning 2017-10-13 15:38:24 -07:00
Alexandre Bury
d6c282a799 Open menubar with Press rather than Release 2017-10-13 15:22:59 -07:00
Alexandre Bury
1ba00032a1 Fix menubar mouse behaviour 2017-10-13 15:17:41 -07:00
Alexandre Bury
93982517ae Fix clippy warnings 2017-10-13 11:24:17 -07:00
Alexandre Bury
111d593f55 Merge branch 'master' 2017-10-13 11:01:39 -07:00
Alexandre Bury
ef0909d41e Add mouse support to Slider 2017-10-13 10:53:24 -07:00
Alexandre Bury
5f3e4b1842 Produce mouse events from BLT backend 2017-10-13 00:20:27 -07:00
Alexandre Bury
acd12326e1 Produce mouse events in termion backend 2017-10-12 21:24:17 -07:00
Alexandre Bury
ab1f4a2ba6 Correct event relativization in Panel 2017-10-12 20:43:33 -07:00
Alexandre Bury
67a6640142 Add mouse support to TextArea 2017-10-12 20:41:34 -07:00
Alexandre Bury
def6b3af27 Fix compilation 2017-10-12 20:13:49 -07:00
Alexandre Bury
aaf41f3ec4 Add mouse support to EditView 2017-10-12 17:38:21 -07:00
Alexandre Bury
0150ebfc9e Add mouse support to LinearLayout 2017-10-12 17:29:19 -07:00
Alexandre Bury
13059dae0b Add mouse support to radio view 2017-10-12 17:29:12 -07:00
Alexandre Bury
1b67c3eceb Add mouse support to menubar and MenuPopup 2017-10-12 16:44:03 -07:00
Alexandre Bury
f64ce80a58 Add mouse support to ListView 2017-10-12 16:44:03 -07:00
Alexandre Bury
394e61a328 Fix SelectView mouse handling 2017-10-12 16:44:03 -07:00
Alexandre Bury
75d5868162 Fix shadowview event relativization 2017-10-12 16:44:03 -07:00
Alexandre Bury
a4ca7bbf1e Rustfmt 2017-10-12 16:43:59 -07:00
Alexandre Bury
74612c65e5 Move Cursive root to its own module 2017-10-12 16:33:24 -07:00
Alexandre Bury
75ad6315e1 Add mouse support to checkbox 2017-10-12 15:10:09 -07:00
Alexandre Bury
2fed1f3ff4 Add mouse support for regular SelectView 2017-10-12 14:32:48 -07:00
Alexandre Bury
f5492da4e4 More natural thumb drag 2017-10-12 12:35:57 -07:00
Alexandre Bury
e7da474769 Remove debug lines 2017-10-12 12:30:59 -07:00
Alexandre Bury
3a836aaa92 Fixes drag scroll position 2017-10-12 12:30:00 -07:00
Alexandre Bury
5931ab17c8 Add mouse scroll support to TextView 2017-10-11 18:06:58 -07:00
Alexandre Bury
a6fb0e71cd Include padding and borders in Dialog event relativization 2017-10-11 15:13:10 -07:00
Alexandre Bury
2932b9de50 Remove eprintln debug lines 2017-10-11 15:08:19 -07:00
Alexandre Bury
f3528088cd Add mouse support to Dialog and Button 2017-10-11 15:07:25 -07:00
Alexandre Bury
ba11200341 Add Vec::fits_in_rect 2017-10-11 15:07:13 -07:00
Alexandre Bury
0bb1fb4b2a Add Event::grabs_focus 2017-10-11 15:06:35 -07:00
Alexandre Bury
f02dda5a0a Docs 2017-10-11 11:51:46 -07:00
Alexandre Bury
4e07d8891f Add mouse event relativization to StackView and ShadowView
So that key_codes example works fine.
2017-10-11 11:35:18 -07:00
Alexandre Bury
2d703811c5 Add Event::relativize 2017-10-11 11:33:35 -07:00
Peter Kloss
759f57f1f8 fix some clippy warnings 2017-10-11 18:09:49 +02:00
Alexandre Bury
e07e156ad0 Fix types for different ncurses versions 2017-10-10 18:01:03 -07:00
Alexandre Bury
9497ded014 Output mouse events from ncurses backend 2017-10-10 17:50:44 -07:00
Alexandre Bury
c64e7dd7b3 Add MouseEvent::Hold 2017-10-10 17:49:53 -07:00
Alexandre Bury
a68fd3493b Add MouseEvent to the Event enum 2017-10-08 17:13:50 -07:00
Alexandre Bury
997895347c Derive Eq for XY 2017-10-08 16:49:34 -07:00
Alexandre Bury
7df4b06ef8 Backend::poll_event now takes &mut self
To manage an internal buffer, in case backend events and cursive events
don't match 1-for-1.

Planned uses: mouse support (translate click into Press+Release).
2017-10-08 16:02:43 -07:00
Alexandre Bury
c1d979b91c Implement From<(u16,u16)> for Vec2 2017-10-08 15:58:14 -07:00
Alexandre Bury
7244896263 Derive Hash for XY 2017-10-08 15:56:03 -07:00
Alexandre Bury
d815afdf78 Fix ViewWrapper doc comment 2017-09-24 18:50:45 -07:00
Alexandre Bury
607e6f1bdc Implement ViewWrapper for DerefMut<T: View>
This means View is implemented for Box<T: View>, Box<View>, ...
2017-09-24 12:24:23 -07:00
Alexandre Bury
1a4e1c104e Implement View for Box<View> 2017-09-23 13:53:26 -07:00
Alexandre Bury
6fa5b18cc6 Add Canvas::wrap(View)
Behaves like a dynamic ViewWrapper
2017-09-23 13:33:10 -07:00
Alexandre Bury
da6a92f508 feat: Add SelectView::select_{up,down} 2017-08-23 17:01:07 -07:00
Alexandre Bury
6bb3e88c2e feat: Add pre-events and inner events to OnEventView 2017-08-23 16:43:17 -07:00
Alexandre Bury
2ac5dcb559 Merge pull request #152 from hcpl/use-log
Use `log` crate
2017-08-23 12:31:51 -07:00
Alexandre Bury
a1737ca0ba Fix ncurses input key codes 2017-08-23 09:59:54 -07:00
hcpl
ca4410030a Use log crate
This provides a uniform way to handle logging and can be combined with
logs from other libraries in end-user apps.
2017-08-23 17:49:09 +03:00
Alexandre Bury
391c5af462 Fix assert 2017-08-15 09:33:50 -07:00
Alexandre Bury
a48ff9082f Replace println_stderr! with eprintln! 2017-08-14 17:01:49 -07:00
Alexandre Bury
05bac7a192 More safe subtractions all around. 2017-08-14 16:32:39 -07:00
Alexandre Bury
4b59808f84 Safer substractions
Use more saturating_sub.
Fixes #148.
2017-08-14 15:13:49 -07:00
Alexandre Bury
b021458352 Use more elegant saturating_sub 2017-08-01 09:47:08 -07:00
Alexandre Bury
d2f2f642c1 Protect LinesIterator from zero width
Fixes #147
2017-08-01 09:44:40 -07:00
Alexandre Bury
22b8364877 Fix clippy warnings
Add default implementations
Return &mut View instead of &mut Box<View>
2017-07-18 01:43:50 +02:00
Alexandre Bury
2ffae1f524 Rename {Color,ColorStyle}::Default to TerminalDefault 2017-07-18 01:36:34 +02:00
Alexandre Bury
a668e7bc06 Merge remote-tracking branch 'hcpl/default-color' 2017-07-18 01:01:35 +02:00
Alexandre Bury
20e6938bbb fix: consider scrollable in TextArea required size 2017-07-18 00:15:05 +02:00
hcpl
e0d69da844 Set *curses backends to use default colors 2017-07-16 17:37:15 +03:00
hcpl
28d0db1bb6 Make use of colors preset by terminals 2017-07-16 16:05:04 +03:00
Alexandre Bury
94c67b2257 Update dependencies 2017-07-07 10:50:09 -07:00
Alexandre Bury
66af7fab7c IdView: skip view if borrowing fails.
Fixes #144
2017-07-03 01:29:30 -07:00
Alexandre Bury
19f87076f9 Use 256 color pairs in pancurses 2017-06-14 00:59:17 -07:00
Alexandre Bury
e4464cb44d Merge remote-tracking branch 'origin/master' into custom_color 2017-06-14 00:44:04 -07:00
Alexandre Bury
9089d9fd88 Cleaner colors example 2017-06-14 00:43:03 -07:00
Alexandre Bury
7a7ccbf45c Add colors example 2017-06-14 00:08:58 -07:00
Alexandre Bury
88d3d81e88 Use pancurses::chtype directly 2017-06-13 23:49:55 -07:00
Alexandre Bury
2cdf546455 Fix pancurses backend 2017-06-13 23:30:55 -07:00
Alexandre Bury
98be066b4d Don't re-apply current color 2017-06-12 23:51:41 -07:00
Alexandre Bury
dea07d29cf Give the background color to the clear method. 2017-06-12 23:29:26 -07:00
Alexandre Bury
059812f427 Update termion backend 2017-06-12 18:31:08 -07:00
Alexandre Bury
9f5ce65e34 Fix doc comment 2017-06-12 18:03:52 -07:00
Alexandre Bury
93b5421f53 Rename KeyEventView to OnEventView 2017-06-12 16:39:20 -07:00
Alexandre Bury
6fa062775b Add non-chainable methods to MenuPopup 2017-06-12 16:39:20 -07:00
Alexandre Bury
5c42a59954 Refactor colors management
Do not register pairs with backend. Let backend cache color pairs if
needed.
2017-06-12 11:59:33 -07:00
Alexandre Bury
9e1a83f7cc Set up Custom color in termion and ncurses backends 2017-06-11 15:01:35 -07:00
Alexandre Bury
900bdfea58 Reset running = true in Cursive::run
This allows to start another loop after quitting the first time.
2017-06-08 15:02:00 -07:00
Alexandre Bury
ffe5b57749 Add ListView::is_empty 2017-06-08 09:41:53 -07:00
Alexandre Bury
bdc49a558f Remove unused warning for println_stderr macro. 2017-06-05 20:41:01 -07:00
Alexandre Bury
cbe37172b5 pancurses: set ESCDELAY after initializing screen 2017-05-23 15:25:52 -07:00
Alexandre Bury
db0398ec81 ncurses: specify ESCDELAY after setting locale
Otherwise the locale change is ignored on some systems
2017-05-23 15:22:18 -07:00
Alexandre Bury
d031d3784a Add methods to access ListView's children 2017-05-21 09:50:16 -07:00
Alexandre Bury
f608073bf5 Add Button::set_callback 2017-05-19 11:12:45 -07:00
Alexandre Bury
b799d83077 Add ColorStyle::Custom for theme-independent coloring
Moved `color_id` to curses backend.
2017-05-15 19:29:31 -07:00
quininer kel
f34e1d9a02 Fix VecExt::splice conflict with Vec::splice 2017-04-26 18:36:23 +08:00
quininer kel
440578c7d1 Add termion AlternateScreen support 2017-04-26 14:20:52 +08:00
Alexandre Bury
d4f1439abd Fix clippy warnings 2017-04-23 15:16:39 -07:00
Alexandre Bury
2fd30e3e10 TextArea: fix off-by-one required_size 2017-04-21 21:51:30 -07:00
Markus Unterwaditzer
3ec0eb3ff4 docs 2017-04-22 00:03:13 +02:00
Markus Unterwaditzer
065789c286 Grow horizontally as well 2017-04-21 23:58:19 +02:00
Markus Unterwaditzer
14cfe3604a Automatically grow textarea 2017-04-21 23:03:10 +02:00
Alexandre Bury
5edc6fc163 Add chainable EditView::filler methods
And a few other filler fixes
2017-04-03 11:13:16 -07:00
Afonso Bordado
b2bcf4138a EditView: Add a customizable filler character (#127)
* Add a customizable filler character
* Change filler character to string
2017-04-03 11:03:56 -07:00
Alexandre Bury
2643ecbb15 Add chainable methods for StackView 2017-04-03 10:41:34 -07:00