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
Alexandre Bury
bdbf6d759e
Add EditView::set_style
2017-04-02 15:38:25 -07:00
Alexandre Bury
d3669814b5
Fix warnings
...
* Allow dead code for curses-only utf8 module
* Remove intermediate variable in IdView
2017-03-27 13:27:50 -07:00
Alexandre Bury
7c95114955
Add SelectView::set_selection
2017-03-27 13:14:03 -07:00
Alexandre Bury
09202f55c8
Reset focus in SelectView::clear
2017-03-27 13:07:22 -07:00
Alexandre Bury
c300e0628d
Rename find
-> call_on
...
And update tutorials
2017-03-26 20:50:50 -07:00
Alexandre Bury
c3c69e7892
Merge IdView and RefCellView
...
And remove `with_id_mut`
2017-03-25 21:56:31 -07:00
Alexandre Bury
146ebd8931
Rename find_id -> call_on_id, find_id_mut -> find_id
2017-03-25 18:22:14 -07:00
Alexandre Bury
cdb3df7fc8
Merge branch 'master' into refview
2017-03-25 15:01:57 -07:00
Alexandre Bury
017bb21710
Add View::focus_view
2017-03-25 14:50:52 -07:00
Alexandre Bury
2cd2787119
Event::Unknown now carries the unknown bytes rather than a i32
...
And termion has been updated to use termion::Event::Unsupported
2017-03-25 11:01:25 -07:00
Alexandre Bury
77433e80ee
fix: add Panel::wrap_layout
...
Fixes #119
2017-03-15 16:35:20 -07:00
Alexandre Bury
0bbc10706e
EditVIew: Add mutable and non-mutable callback methods
...
mutable callbacks disable recursive calls
2017-03-08 16:29:24 -08:00
Alexandre Bury
cbe237624f
Update toml to 0.3
2017-03-06 22:49:56 -08:00
Alexandre Bury
4f82e87d0d
Merge pull request #115 from hacksaar/master
...
use Iterator::sum() for summing instead of fold
2017-03-06 14:58:17 -08:00
Alexandre Bury
87676295a0
fix: Check for insufficient space in Panel::required_size
2017-03-06 14:53:10 -08:00
Constantin Berhard
36d5aa016a
use Iterator::sum() for summing instead of fold
2017-03-06 22:46:16 +01:00
Alexandre Bury
5f5fb4e502
Add comments
2017-03-06 10:38:18 -08:00
Alexandre Bury
30cac851e7
Fix utils::prefix
...
And add a few tests
2017-03-06 10:34:58 -08:00
Constantin Berhard
dc7754d38f
fix #113
2017-03-06 15:32:03 +01:00
Alexandre Bury
e0b279d9df
Fix clippy warnings
2017-03-05 15:18:15 -08:00
Alexandre Bury
6f129ac83d
Only include chan dependancy with termion backend.
...
We may want to use channels for all backend some day, but not today.
2017-03-05 14:45:21 -08:00
Alexandre Bury
7d9cb03ffb
More checks against small viewports
...
Prevents panics when the terminal is resized.
2017-03-05 11:35:20 -08:00
Ilkka Halila
ea053640fe
Use new Attributes and ColorPairs
...
Pancurses now has an Attribute and ColorPair type, making for a more strongly typed way of handling them when compared to using chtypes.
Also window now has an .attrget() function so pan::Concrete does not need to track the current color any longer.
2017-03-05 13:53:50 +02:00
Alexandre Bury
cb3adc5baf
feat: find_id
can now find views declared with with_id_mut
2017-02-26 15:52:42 -08:00
Alexandre Bury
34c7462877
fix: protect scroll operations when non-scrollable
...
Fixes #109
2017-02-26 14:53:50 -08:00
Alexandre Bury
b50d2f077f
Make RefCellView re-entrant safe
...
Don't crash if the view is already borrowed.
2017-02-08 15:33:43 -08:00
Alexandre Bury
1b8d109e94
Add with_id_mut
and find_id_mut
convenient methods.
2017-02-08 15:20:41 -08:00
Alexandre Bury
b0193b0ebc
Add RefCellView
...
Wraps a view and provide interior mutability
2017-02-08 12:13:14 -08:00
Alexandre Bury
b63762d441
View::find_any now takes a closure instead of returning reference
...
Also updated Finder::find and find_id.
2017-02-07 15:49:06 -08:00
Robin Stumm
99fa86bec9
return length and width from utils::prefix() (renamed from utils::prefix_length()) as per df835d1
2017-02-01 20:47:33 +01:00
Alexandre Bury
df835d1a10
utils::prefix_length: move current_width
out of the scan loop
...
To prepare returning both length and width.
2017-01-31 16:31:34 -08:00
Alexandre Bury
8b88bf9ba2
Add Menubar::is_empty(&self)
...
And fix another clippy warning
2017-01-27 14:51:46 -08:00
Alexandre Bury
afc681bcf4
Add Canvas::state_mut(&mut self)
...
And missing Canvas::needs_relayout closure.
2017-01-24 10:48:00 -08:00
Alexandre Bury
d7eaa5a086
Rename View::get_min_size
-> required_size
2017-01-23 22:53:03 -08:00
Alexandre Bury
451d27b58e
Fix Canvas doc comment
2017-01-23 22:03:39 -08:00
Alexandre Bury
26e6f4ff97
Add Canvas view
2017-01-23 22:01:25 -08:00
Alexandre Bury
c970712c3b
Add TextView::append_content
...
Also don't strip the newline anymore when setting content.
Instead, just ignore trailing newline when computing rows.
2017-01-23 20:22:43 -08:00
Alexandre Bury
f504ad8f0e
Add fullscreen layers to StackView
...
Fixes #87
2017-01-23 18:54:52 -08:00
Alexandre Bury
053544d192
Fix inverted outset color
...
Update the `theme` screenshot
2017-01-23 17:53:53 -08:00
Alexandre Bury
fa82690c10
Fix docs for Cursive::menubar()
...
... again
2017-01-23 16:54:27 -08:00
Alexandre Bury
0977daa12d
Unify method names on Menubar and MenuTree
2017-01-23 16:51:48 -08:00
Alexandre Bury
24b342ced8
Fix doc for Cursive::menubar()
2017-01-23 15:58:38 -08:00
Alexandre Bury
ed841825f2
Add methods to edit menubar and menutrees
...
Fixes #101
2017-01-23 15:50:56 -08:00
Alexandre Bury
0849ae6efa
Add comments
2017-01-21 15:06:31 -08:00
Alexandre Bury
3ecae579e8
Adjust the scroll after setting the scroll strategy
2017-01-21 11:46:56 -08:00
Alexandre Bury
924c74afbe
Add ScrollStrategy to TextView
2017-01-21 11:44:40 -08:00
Alexandre Bury
dccce56f6e
Fix off-by-1 errors on termion
...
Termion's Goto is 1-based, Cursive's print_at is 0-based
2017-01-19 13:44:49 -08:00
Alexandre Bury
06ce7b570f
Fix clippy warnings
2017-01-19 11:12:12 -08:00
Alexandre Bury
97287a0b0b
Remove unused imports
2017-01-10 17:48:47 -08:00
Alexandre Bury
14f971e2bc
Allow negative relative offset in Position
...
Was causing crashes when popup-SelectViews were larger than their
parent.
Made some methods on Vec2 more generic to XY<T: ...>
2017-01-10 17:47:31 -08:00
Alexandre Bury
ddff15b6cf
Merge pull request #96 from Ameobea/termion-clearing
...
Fixed issue with resetting background color for Termion backend
2017-01-10 17:45:39 -08:00
Casey Primozic
7ca9821145
Fixed issue with resetting background color for Termion backend
...
- Background color was being set back to the theme's background color rather than the terminal's background color when the backend was `finish()`ed. This resets the background color to the default instead.
2017-01-10 19:22:05 -06:00
Casey Primozic
9894dd9715
Added functions to register callbacks for ListView
...
- Added `on_selected()` and `set_on_selected()` funtions that are called when the focus is changed
- Added `focused()` to return the index of the currently focused item.
2017-01-10 19:20:06 -06:00
Alexandre Bury
8c366389a7
Fix type cast in pancurses backend
2017-01-06 21:25:10 -08:00
Alexandre Bury
2bacfcb11e
Add manual-loop methods
...
is_running() and step()
2016-12-15 20:39:50 +01:00
Alexandre Bury
858067ef6b
Detect terminal resize in termion backend
...
Using the chan_signal crate
2016-12-13 22:10:00 -08:00
Alexandre Bury
ea3dde33ec
Use async input for termion backend
...
This enables async refresh, fixing the `logs` and `progress` examples.
2016-12-13 20:54:18 -08:00
Alexandre Bury
89ec140f41
Update doc comments
2016-12-12 10:20:19 -08:00
Alexandre Bury
0ab2c6db07
Update pancurses backend
2016-11-24 23:42:31 -08:00
Alexandre Bury
508c9833e3
Add Esc support to termion backend
2016-11-04 16:24:52 -07:00
Alexandre Bury
ce009d0e5f
Back to upstream termion
...
Just figured I could implement Color for a custom wrapper struct.
2016-11-04 10:30:06 -07:00
Alexandre Bury
949b1e9632
Add tab support to pancurses
2016-10-28 17:13:53 -07:00
Alexandre Bury
60bddf7e8d
Better input support in termion backend
...
Still many key combinations unsupported.
2016-10-24 11:16:56 -07:00
Alexandre Bury
965b32bd9b
Bring colors to termion backend
...
Currently require termion fork for color storage support.
2016-10-21 17:18:26 -07:00
nabijaczleweli
13d84970d3
Correctly handle backspace in pancurses backend on Windows
...
Closes #81
2016-10-15 17:48:31 +02:00
Craig M. Brandenburg
df0d93ae74
Documentation spell fix
2016-10-15 06:24:24 -07:00
Alexandre Bury
bfb422067a
Doc fixes
2016-10-14 18:18:19 -07:00
Alexandre Bury
fde1091051
Fix focus in ListView
2016-10-13 11:57:24 -07:00
Alexandre Bury
e81a569e31
Add From<((left,right), (top, bottom))> to Vec4
2016-10-12 15:37:55 -07:00
Alexandre Bury
7e382593a8
Remember current color style in pancurses backend
2016-10-12 14:14:32 -07:00
nabijaczleweli
e33474dd74
Fix back-end warnings
2016-10-12 20:06:04 +02:00
Alexandre Bury
2dc75c2ec0
Make window resizeable in BLT backend
2016-10-12 09:35:03 -07:00
Alexandre Bury
65d86f3638
Add Event::Exit
...
Currently only sent by the bear lib terminal.
2016-10-11 17:48:37 -07:00
Alexandre Bury
4aaee06d9e
Fix screen clear on layer removal
...
Fixes #78 .
2016-10-11 17:29:13 -07:00
nabijaczleweli
c4baa0f570
Add BearLibTerminal backend
2016-10-12 01:48:22 +02:00
Alexandre Bury
821d9f1783
Parse utf8 chars in pancurses backend
...
Closes #76
2016-10-11 16:08:44 -07:00
Alexandre Bury
072c1d9b5c
Fix some input in pancurses backend
2016-10-11 12:31:31 -07:00
nabijaczleweli
8a6a49fbc3
Fix Enter being Character('\n') in pancurses backend
...
Closes #73
2016-10-11 20:59:28 +02:00
nabijaczleweli
5eccc2f518
Fix inverted screen size in pancurses backend
...
Closes #71
2016-10-11 20:53:54 +02:00
Alexandre Bury
04f528e2de
Fix clippy warnings
2016-10-11 11:04:01 -07:00
nabijaczleweli
c81579a20a
Disable failing doctests
2016-10-11 19:11:40 +02:00
nabijaczleweli
9fb8309d3a
Hello yes this is typo man
2016-10-10 23:12:42 +02:00
nabijaczleweli
c69db62844
Fix backend tests
2016-10-10 23:08:07 +02:00
nabijaczleweli
51af4350fc
Apply key mappings as they are so far
2016-10-10 23:06:55 +02:00
nabijaczleweli
80e3e4f536
Hide backend
2016-10-10 22:02:07 +02:00
nabijaczleweli
bd93f450df
Handle F[14;15]
2016-10-10 21:55:25 +02:00
nabijaczleweli
c84cafb4fd
Update pancurses to 0.4.0
2016-10-10 20:51:32 +02:00
nabijaczleweli
af0c97749d
Fix doctests using ::B
2016-10-10 20:23:00 +02:00
nabijaczleweli
4c9c4b5568
Move back-end selection to backend::Concrete instead of ::B
2016-10-10 10:34:33 +02:00
nabijaczleweli
2c009f694b
Add PauseBreak and F0 keys. Properly handle Tab
2016-10-10 10:34:33 +02:00
nabijaczleweli
79c4bf29c2
Don't explicitly list features
2016-10-10 10:34:33 +02:00
nabijaczleweli
01951aa213
Mostly add pancurses support. Test pancurses support on Travis
2016-10-10 10:34:33 +02:00
Alexandre Bury
9871e12734
Update for latest ncurses-rs
2016-10-09 17:48:31 -07:00
Alexandre Bury
651c7d619b
Remove debug artifacts
...
And bring back the shadows!
2016-10-09 17:43:24 -07:00
Alexandre Bury
686de0831c
Take &self
in TermionBackend::clear()
2016-10-09 16:03:49 -07:00
Alexandre Bury
ad7606ca55
Switch backend with cargo features
...
Use `termion` feature and disable default features to use the termion
backend.
2016-10-09 16:02:26 -07:00
Alexandre Bury
df4397a174
Add stub termion backend
...
Not supported: input, colors, effects, async
2016-10-09 16:02:26 -07:00
Alexandre Bury
90c9d51a6c
Add comments to menubar example
2016-10-09 15:59:29 -07:00
Alexandre Bury
44dbd5826e
Make Backend::clear
take &self
2016-10-09 15:47:06 -07:00
Alexandre Bury
bb62452149
EditView: Prevent overflow error with no available space
2016-10-04 17:51:18 -07:00