Commit Graph

226 Commits

Author SHA1 Message Date
Alexandre Bury
6b781684ef Rename ListView -> SelectView
And added documentation.
2015-05-30 21:32:24 -07:00
Alexandre Bury
969650ab1a Add basic ListView
Show a selection among a list of items.
Maybe should be called SelectView?
TODO:
* Scrolling
* Error handling with empty list
* Action on Enter on an item
2015-05-30 21:05:34 -07:00
Alexandre Bury
23aa9e6da7 Update for latest ncurses-rs fix
Del and Ins are now correctly reported.
2015-05-29 20:44:53 -07:00
Alexandre Bury
00b75a98f6 Add input support for more keys
Shift and Ctrl Function keys
Shift-Del
2015-05-29 11:31:20 -07:00
Alexandre Bury
e07a0319f2 Add Home/End navigation to text views. 2015-05-28 17:48:21 -07:00
Alexandre Bury
8ee04c525f Escapes % when printing strings. 2015-05-28 17:37:00 -07:00
Alexandre Bury
6c6f929430 Better UTF-8 support in views
EditView, TextView, Dialog and Button should now properly display and
layout non-ascii text.
The lorem example now includes greek text to show this.
2015-05-28 17:32:28 -07:00
Alexandre Bury
ae93b68c05 Recognizes more modified keys
Shift-tab and a few others
2015-05-28 16:19:16 -07:00
Alexandre Bury
dd11d34206 Merged Fn keys into a single enum value 2015-05-28 14:57:21 -07:00
Alexandre Bury
3adb95c7ab Add support for Shift and Ctrl input
Careful: Ctrl-4 and ctrl-\ currently make ncurses crash.
Also some letters combine with Ctrl to make other codes. Run stty -a to
see some mappings.
Basically, you'll have issues with:
C,I,J,M,Q,S,Z
and non-letters.
2015-05-28 14:44:10 -07:00
Alexandre Bury
37e54b3598 Add input support for Esc 2015-05-28 13:49:13 -07:00
Alexandre Bury
6c69453639 Add Insert and Fn keys.
TODO: keys are apparently treated differently when shift is pressed.
Find a better representation.
2015-05-28 12:22:39 -07:00
Alexandre Bury
35c48e13d8 Fix backspace detection
Backspace is code 127 (so right inside utf-8 territory) but we want to
treat is as special key, like codes < 32.
2015-05-27 22:38:59 -07:00
Alexandre Bury
0bdb86181b Add Tab key to events 2015-05-27 22:21:23 -07:00
Alexandre Bury
3d1507c3cf Add UTF-8 input support
Didn't the proper methods in the standard lib, so I implemented a simple
utf-8 char reader.
2015-05-27 22:17:52 -07:00
Alexandre Bury
f9c9e56518 Transform ncurses i32 key into Event enum
Prepares support for unicode char input spanning multiple ncurses
characters.
2015-05-27 18:04:33 -07:00
Alexandre Bury
9ab4848180 Better char selection in EditView 2015-05-27 00:15:19 -07:00
Alexandre Bury
c1ea3e7345 Update doc 2015-05-27 00:09:22 -07:00
Alexandre Bury
8d70338214 Prints cursor in EditView 2015-05-27 00:01:37 -07:00
Alexandre Bury
abb09cf4bb Split style and color
Color is a color-pair
Style is an attribute, like Bold or Reversed
2015-05-26 21:45:00 -07:00
Alexandre Bury
5407c53545 Dialog gives focus to its content first 2015-05-26 17:10:47 -07:00
Alexandre Bury
97d97afa8d Fix warnings 2015-05-26 17:08:27 -07:00
Alexandre Bury
44899bdcd6 Add/fix some doc 2015-05-26 16:48:27 -07:00
Alexandre Bury
3460f8123d EditView can now have a minimum size 2015-05-26 16:11:22 -07:00
Alexandre Bury
e8fcaabd6c Add EditView
TODO: proper visualization:
* Display cursor when focused (instead of color change)
* Do not use HIGHLIGHT, but something like INVERTED
2015-05-26 15:48:35 -07:00
Alexandre Bury
0dc079233a Unfocused view draw an inactive scrollbar 2015-05-25 22:38:11 -07:00
Alexandre Bury
dd4d0692b2 TextView now scrolls content if needed 2015-05-25 22:35:50 -07:00
Alexandre Bury
25e1ca6074 Rename Margins -> Vec4
And move it to the vec module
2015-05-25 14:56:51 -07:00
Alexandre Bury
dca9d7f662 Use usize for Vec2 instead of u32
Much less casts needed now.
2015-05-25 14:46:29 -07:00
Alexandre Bury
222c4465d9 Fix bad TextView layout 2015-05-25 01:32:55 -07:00
Alexandre Bury
9ffcaef7ab Add some comments to TextView 2015-05-25 01:24:40 -07:00
Alexandre Bury
89221fae55 Updated style file format 2015-05-25 01:13:10 -07:00
Alexandre Bury
bfccae1b8e New TextView layout computation
Lines are now computed during layout. Draw is simpler.
This is in preparation to scrolling addition to TextView.
2015-05-25 01:10:43 -07:00
Alexandre Bury
1f3e17b591 Ignore last line in newline-terminated strings
Files for instance always end in a newline, but it doesn't mean we want
an empty line after the text.
2015-05-24 18:51:49 -07:00
Alexandre Bury
8780dd1dde Better printer cropping
Printer now also crops horizontally.
Also applies to hline and vline.
2015-05-24 01:49:50 -07:00
Alexandre Bury
5d9e8f760b Have child views take focus when added to StackView. 2015-05-24 01:22:27 -07:00
Alexandre Bury
e79207ac6e Fix TextView size computation
We weren't counting spaces.
2015-05-23 20:12:11 -07:00
Alexandre Bury
a2b4273589 Fix warnings 2015-05-23 17:11:58 -07:00
Alexandre Bury
081b7545b9 Remove viewpath in callbacks 2015-05-23 17:07:22 -07:00
Alexandre Bury
5a4c34361c Update mutation example 2015-05-23 16:46:38 -07:00
Alexandre Bury
7e823435cd Stop using ncurses::WINDOW
Overlap is a mess. Let's do it ourselve.
2015-05-23 15:58:06 -07:00
Alexandre Bury
d9b56574d2 Add selector by ID 2015-05-23 10:33:29 -07:00
Alexandre Bury
77aae36836 Fix bad crate doc 2015-05-22 17:25:20 -07:00
Alexandre Bury
7e4873f5b7 Fix logs demo 2015-05-22 17:24:02 -07:00
Alexandre Bury
9fc946d6bd Remove unused mpsc import. 2015-05-22 17:10:47 -07:00
Alexandre Bury
94e723d3f0 Add some doc 2015-05-22 16:57:29 -07:00
Alexandre Bury
d9652ac728 Add animated example. 2015-05-22 16:28:05 -07:00
Alexandre Bury
44cb27c594 Remove unused file 2015-05-22 00:48:14 -07:00
Alexandre Bury
b2e52dc702 Add some (non-doc) comments. 2015-05-22 00:43:58 -07:00
Alexandre Bury
3df17cc64b Improved lorem example
TODO: add margins around the textview?
2015-05-22 00:06:33 -07:00
Alexandre Bury
25726140d8 Add colors and styles to printer 2015-05-21 23:29:49 -07:00
Alexandre Bury
9b998b0dd4 Add missing documentation. 2015-05-20 11:11:55 -07:00
Alexandre Bury
7cfdd8e9fe Add doc to print_box 2015-05-20 10:36:35 -07:00
Alexandre Bury
919e60d4ce Add lines and boxes to printer.
Dialog now draws its box.
2015-05-20 10:31:38 -07:00
Alexandre Bury
7d301e1980 Add documentation 2015-05-19 17:31:52 -07:00
Alexandre Bury
ecd3c96d20 Unify wrap_impl macros
Use a different pattern rather than different macro
2015-05-19 16:53:50 -07:00
Alexandre Bury
191c2899ea Add non-boxed wrap_impl! macro
Although maybe sized_view should rather use a box internally.
2015-05-19 16:40:32 -07:00
Alexandre Bury
c8136c67e0 Add focus system
May need to add a direction to take_focus
2015-05-19 15:54:11 -07:00
Alexandre Bury
ca5c485847 Fix Button on_key_event
KEY_ENTER is actually almost never called. The return key sends the
ascii code for '\n' instead.
2015-05-19 10:58:42 -07:00
Alexandre Bury
04121414e1 Add proper draw and layout to Dialog 2015-05-18 19:41:35 -07:00
Alexandre Bury
68819c89bf Fixed variable case warnings 2015-05-18 15:31:55 -07:00
Alexandre Bury
493ed1322c Fix stack_view when screen is smaller than content 2015-05-18 12:24:08 -07:00
Alexandre Bury
1fcca9b3a9 Rename module vec2 -> vec
Margins may be moved to vec::Vec4 some day
2015-05-18 11:51:30 -07:00
Alexandre Bury
0302e74063 Fix text view size with multiline content 2015-05-18 11:18:04 -07:00
Alexandre Bury
74f0fee9b6 Add Dialog skeleton 2015-05-16 14:02:15 -07:00
Alexandre Bury
a8c8855831 Moved example to separate directory
And add it to Cargo.toml
2015-05-16 13:09:38 -07:00
Alexandre Bury
e17ca97136 Add ViewPath and Cursive::find
Callbacks now include a path to the triggering view.
The Cursive root can find the View corresponding to a ViewPath.
In the future, ViewPaths may be returned when creating the layout.
2015-05-15 17:56:38 -07:00
Alexandre Bury
6cd2a28966 StackView now centers its children 2015-05-15 16:06:48 -07:00
Alexandre Bury
90ea4af1ea Implement TextView::draw 2015-05-15 15:00:20 -07:00
Alexandre Bury
6fad4aa36a More documentation 2015-05-15 12:16:58 -07:00
Alexandre Bury
e5c623bb07 Add printer abstraction on ncurses::WINDOW
Also rename Size -> Vec2
2015-05-15 12:03:19 -07:00
Alexandre Bury
4ebb422611 Hide the cursor 2015-05-14 18:41:13 -07:00
Alexandre Bury
ec7b76c564 Add screens to Cursive 2015-05-14 18:38:58 -07:00
Alexandre Bury
506c41c0f8 Fix some warnings 2015-05-14 17:48:24 -07:00
Alexandre Bury
a387bf5f06 Add stack, box and text views
Also add some documentation
2015-05-14 17:41:17 -07:00
Alexandre Bury
13c4e86779 First commit 2015-05-09 12:18:31 -07:00