Alexandre Bury
66af7fab7c
IdView: skip view if borrowing fails.
...
Fixes #144
2017-07-03 01:29:30 -07:00
Alexandre Bury
9f5ce65e34
Fix doc comment
2017-06-12 18:03:52 -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
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
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
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
Alexandre Bury
d7eaa5a086
Rename View::get_min_size
-> required_size
2017-01-23 22:53:03 -08:00
Alexandre Bury
924c74afbe
Add ScrollStrategy to TextView
2017-01-21 11:44:40 -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
nabijaczleweli
c81579a20a
Disable failing doctests
2016-10-11 19:11:40 +02:00
nabijaczleweli
c69db62844
Fix backend tests
2016-10-10 23:08:07 +02:00
nabijaczleweli
af0c97749d
Fix doctests using ::B
2016-10-10 20:23:00 +02:00
Alexandre Bury
3b3f403f7a
Apply rustfmt
2016-10-02 15:22:29 -07:00
Alexandre Bury
0401b3ab53
Use better type for wrap_impl!
macro
...
`ty` is better than `path`
2016-09-24 16:56:42 -07:00
Alexandre Bury
2e06dd70cb
Apply rustfmt
2016-09-22 22:11:13 -07:00
Alexandre Bury
829dd77deb
Add &Backend
to Printer struct
...
Makes `::B` public but undocumented.
Backend is currently an immutable ref, may need to become
mutable to be more useful (will need to change the View trait)
2016-09-22 22:00:58 -07:00
Alexandre Bury
05a862d98b
Remove unused import in test module
2016-09-22 17:12:53 -07:00
Alexandre Bury
a5135a7aff
Better documentation for view::Finder
...
Also adds `Finder::find_id`
2016-09-21 14:57:03 -07:00
Alexandre Bury
93980a7d0c
Rename View::find
-> View::find_any
...
And add the `Finder` trait on Views to provide a true `find`.
2016-09-21 11:33:44 -07:00
Alexandre Bury
7d16f70d67
Add some tests to view::position
2016-09-20 18:32:31 -07:00
Alexandre Bury
08d1c1e5b0
Use an associated type in ViewWrapper
...
This removes the need for dynamic dispatching
2016-09-19 17:20:20 -07:00
Alexandre Bury
53402a0063
Add link wrap_impl!
doc
2016-09-01 11:56:11 -07:00
Alexandre Bury
b38995b906
Refactor BoxView
...
Add `Boxable` trait.
2016-08-03 21:55:41 -07:00
Alexandre Bury
bd78418083
Add scrollbar_padding
to ScrollBase
...
And use it in TextArea
2016-08-02 00:49:59 -07:00
Alexandre Bury
93ceb17c21
Rename scrollbar_padding
-> scrollbar_offset
in ScrollBase
2016-08-02 00:36:27 -07:00
Alexandre Bury
24e4e41a85
Move DummyView to views
module
2016-07-29 23:36:40 -07:00
Alexandre Bury
fb10e58188
Move LinesIterator
to utils
module
2016-07-28 23:05:33 -07:00
Alexandre Bury
f87d0e7c5b
Move views to new views
module
2016-07-28 16:36:01 -07:00
Alexandre Bury
51a1a19f92
Fix progressbar doc
2016-07-28 00:29:11 -07:00
Alexandre Bury
2597c9a566
Add a center()
convenient method to TextView
...
Avoids having to import HAlign
2016-07-27 23:58:57 -07:00
Alexandre Bury
261d2aac48
Remove Ticker
alias
...
The `Counter` NewType can fill this role.
2016-07-27 23:55:34 -07:00
Alexandre Bury
c689a3ba7e
Add non-chainable add_child
to LinearLayout
2016-07-27 23:52:21 -07:00
Alexandre Bury
bea7240271
Wrap Arc<AtomicUsize>
around NewType Counter
...
And offers a simpler API
2016-07-26 23:29:13 -07:00
Alexandre Bury
8290c3f62a
Make progressbar more robust to invalid min/max values
2016-07-26 23:05:18 -07:00
Alexandre Bury
2cedc8ae76
Add comments to progress bar
2016-07-26 21:48:26 -07:00
Alexandre Bury
8eb61e0239
Add start
and with_task
to ProgressBar
2016-07-26 12:25:06 -07:00
Alexandre Bury
eb6b5d5728
Fix LinearLayout children width
...
Now properly gives the full width to every children.
2016-07-26 10:49:37 -07:00
Alexandre Bury
0643c50bd5
Add async-callback channel to Cursive
...
And remove it from ProgressBar
2016-07-26 10:13:36 -07:00
Alexandre Bury
04f961657f
ProgressBar takes all given width
2016-07-26 09:55:22 -07:00
Alexandre Bury
6e021867ab
ProgressBar now shows a percentage status
...
The label can be customized though `ProgressBar::with_label`.
2016-07-25 23:54:33 -07:00
Alexandre Bury
5dd20db676
Add Dialog::empty
and Dialog::content
...
Allows to set the content after the title, for when it's more
readable.
2016-07-25 20:43:01 -07:00
Alexandre Bury
7283e7f3af
Rustfmt
2016-07-25 13:39:10 -07:00
Alexandre Bury
5e6222bf23
Use intermediate type for the callback promise
...
Using actual promises would still be better
2016-07-25 13:38:13 -07:00
Alexandre Bury
c1c9322319
Add panel view
2016-07-25 13:35:46 -07:00
Alexandre Bury
6c71ac14b0
More linear progress bar progression
...
Each cell should receive the same number of ticks
2016-07-25 12:18:05 -07:00
Alexandre Bury
47acf1667d
Remove brackets from progress bar
...
It was ugly, really.
Put a Panel (doesn't exist yet) around it if you want.
2016-07-24 23:03:59 -07:00
Alexandre Bury
e29511e757
Add ProgressBar
...
Also make Callback its own NewType to add comversion methods.
2016-07-24 23:01:09 -07:00
Alexandre Bury
0a8228d073
Add examples to documentation
2016-07-20 22:08:06 -07:00
Alexandre Bury
f28ac264f1
Add prelude import module
...
Update examples to use it.
2016-07-20 21:25:14 -07:00
Alexandre Bury
64d176ffa5
Add proper select popup placement
...
Added a popup select to the `list_view` example
2016-07-20 00:30:00 -07:00
Alexandre Bury
8b6022a398
Add popup mode to SelectView
...
Single-line, opens a popup on selection.
2016-07-19 23:47:27 -07:00
Alexandre Bury
783fa0f1e2
Fix typo in docs
2016-07-19 20:50:21 -07:00
Alexandre Bury
a1d0231e2c
Make Menubar
a proper View
2016-07-19 20:44:50 -07:00
Alexandre Bury
4120203844
More fixes for insufficient space.
2016-07-17 01:20:41 -07:00
Alexandre Bury
8750185f8c
Don't crash on insufficient space
2016-07-16 22:06:28 -07:00
Alexandre Bury
ab3a55abaf
Add enabled state to Button
2016-07-16 18:49:17 -07:00
Alexandre Bury
58a04bbb13
Add enabled state to SelectView
2016-07-16 18:46:18 -07:00
Alexandre Bury
02b6b6601f
Add enabled state to Checkbox
2016-07-16 18:36:54 -07:00
Alexandre Bury
77a623674a
Add on_change callback to CheckBox
2016-07-16 18:18:33 -07:00
Alexandre Bury
05f66b8e1b
Add macro'd Default implementations
2016-07-16 17:28:42 -07:00
Alexandre Bury
d4afdf024f
Add checkbox view
2016-07-16 17:22:24 -07:00
Alexandre Bury
5ee8706582
Add scrollable
flag to TextViews
2016-07-16 17:08:17 -07:00
Alexandre Bury
5b25893496
Rustfmt
2016-07-16 13:52:28 -07:00
Alexandre Bury
a22c92a1a1
Add ListView
...
Also added `examples/list_view.rs`.
2016-07-16 13:25:21 -07:00
Alexandre Bury
2b54d6df28
Make View::draw
take a &self (instead of a &mut self)
...
TrackedView, the only user of the mutability, now uses internal
mutability with a Cell.
2016-07-15 23:44:38 -07:00
Alexandre Bury
bd5c45ac0e
Fix clippy warnings
2016-07-14 22:32:43 -07:00
Alexandre Bury
91fdf96066
Add Direction
enum
...
And add a Direction argument to take_focus
2016-07-14 22:23:06 -07:00
Alexandre Bury
1b34934df7
Fix printer::Printer
imports
2016-07-13 23:25:54 -07:00
Alexandre Bury
d9e4512752
Fix linear layout focus switch
2016-07-13 22:16:55 -07:00
Alexandre Bury
5059e21cb1
Fix focus in LinearLayout
...
Focus now at least works. #42 is still open though.
2016-07-13 22:11:03 -07:00
Alexandre Bury
9390504290
Add documentation to BoxView
2016-07-13 21:30:30 -07:00
Alexandre Bury
e166869c51
Add some documentation to view
module
2016-07-13 20:52:24 -07:00
Alexandre Bury
03c400ad44
Fix linear layout in constrained space
2016-07-13 01:19:05 -07:00
Alexandre Bury
7f530e34b7
Add XY generic struct
2016-07-12 21:03:17 -07:00
Alexandre Bury
309c471a63
Add #![deny(missing_docs)]
...
And fill the appropriate missing ones
2016-07-11 20:26:33 -07:00
Alexandre Bury
c597c262fe
Add single-orientation FullView
...
full_width and full_height
2016-07-11 19:35:18 -07:00
Alexandre Bury
b7a270f258
Split width
and height
in BoxView
...
They are now both optional
2016-07-11 19:24:50 -07:00
Alexandre Bury
c07e8b6aee
Rustfmt
2016-07-10 19:11:21 -07:00
Alexandre Bury
6e0819f723
Simplify Event enum
...
Now properly unify Alt/Ctrl/Shift handling
2016-07-10 18:27:26 -07:00
Alexandre Bury
99bf28dfd6
Add needs_relayout
method to View
trait.
...
Purely optimization-focused trait (it is safe to ignore it entirely).
Allows view groups to take shortcuts if they know their children didn't
change since last time.
2016-07-10 17:41:49 -07:00
Alexandre Bury
4b095a0652
Apply rustfmt
2016-07-09 19:05:51 -07:00
Alexandre Bury
08ab18608b
Clear the screen only on window resize and layer removal
...
Should actually also be done if a layer shrinks.
Luckily, clear can be called anytime, as draw() is the last action
performed in the event loop - so it's safe to clear the screen in any
event callback, or even during layout.
2016-07-09 18:49:37 -07:00
Alexandre Bury
9b2dec2a7f
Use proper bounds for dialogs
...
Buttons height was not removed from the budget for get_min_size
2016-07-09 18:36:07 -07:00
Alexandre Bury
455a2a817c
Invalidate TextView cache on content change
2016-07-09 18:26:52 -07:00
Alexandre Bury
2860467f29
Cache layout in TextView
...
Calling either get_min_size or layout will cache the results, so the
next call with the same constraints will not re-compute everything.
2016-07-09 18:23:58 -07:00
Alexandre Bury
4498d206f5
Support wide characters in TextViews
...
Added some japanese paragraphs to the lorem example.
2016-07-04 21:30:13 -07:00
Alexandre Bury
cc72aa4ddc
Better wide char support
2016-07-04 16:04:32 -07:00
Alexandre Bury
d89c83f0ed
MenuPopup now supports PageUp/Down and Home/End
2016-07-02 20:53:13 -07:00
Alexandre Bury
0fd3bc113f
Fix layout bug in StackView
...
Only skip padding for non-centered views
2016-07-02 19:46:23 -07:00
Alexandre Bury
8220fe529e
Better menubar example
...
Added scrolling support, and left/right navigation
2016-07-02 19:37:38 -07:00
Alexandre Bury
1d54764cdb
Working menubar example
...
Also update callback: use Rc instead of Box
2016-07-02 15:02:42 -07:00
Alexandre Bury
1863e48b07
Add MenuPopup view
2016-07-02 01:01:09 -07:00
Alexandre Bury
1b1d7166a1
Replace SizeRequest with simple Vec2
...
We may go back to an enum though, to handle text views in LinearLayouts.
But the previous Fixed/AtMost/Unknown distinction was useless.
2016-07-02 00:47:38 -07:00
Alexandre Bury
c958093b74
Add TrackedView to cache the view size
2016-07-01 20:23:58 -07:00
Alexandre Bury
87cd1ce23f
Add position parameter to stack view layers
...
Can be centered, absolute or relative to the previous layer.
Can be set independently for each axis.
2016-07-01 19:19:43 -07:00