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
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::Box
able 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