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
e07a0319f2
Add Home/End navigation to text views.
2015-05-28 17:48:21 -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
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
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
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
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
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
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
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
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
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