Commit Graph

559 Commits

Author SHA1 Message Date
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