Commit Graph

233 Commits

Author SHA1 Message Date
nick black
a77774f4dc
notcurses_at_yx(): value-result u32+u64, not cell
Resolves #410. notcurses_at_yx() accepted a cell*, but the
gcluster of this cell was always set to 0. The EGC is instead
a heap-allocated copy, returned as the primary return value.
This is due to the absence of an egcpool to bind against.
Existing callers can be converted thus:

* instead of passing cell 'c', pass &(c)->attrword, &(c)->channels
* either initialize 'c' with CELL_TRIVIAL_INITIALIZER, or set its
   gcluster field to 0 following the call

I've updated all calls from tests/demos, updated the docs, and
updated the C++ and Python wrappers.
2020-03-27 03:49:13 -04:00
nick black
73b61f6a69 Add bound planes (#71) plus docs/tests
Add ncplane_bound(3). This allows a new plane N to be created in the
*bound* state relative to another ncplane B. If B moves, N moves the
same amount. If N is moved, the coordinates are taken relative to B
as opposed to the standard plane. If B is destroyed, N is destroyed.
Each plane can have many planes bound to it, but can only be bound to
a single plane. Add ncplane_reparent(3). This allows a plane to be
detached from any plane to which it is bound, and optionally rebound
to a new plane. The standard plane cannot be reparented.
Documentation and unit tests have been added for both.
2020-03-27 03:13:30 -04:00
nick black
013e445209
add notcurses_multiselector(3) to notcurses(3) 2020-03-25 07:38:35 -04:00
nick black
ae1421db15
ncvisual_render() API change/documentation #422
ncvisual_render() now returns the number of cells emitted
rather than just 0/-1. -1 is still returned on failure.
Rather than 0 for length meaning "all possible length", it
now means 0, and -1 means "all possible length". All demos,
tests, and PoCs have been updated. #422
2020-03-24 18:43:10 -04:00
nick black
7c6b655483 v1.2.4 2020-03-24 16:25:47 -04:00
Nick Black
52bdbc6724
ncplane_translate() accept NULL dest as standard plane #408 (#411)
* tetris man page
* tetris basic skeleton
* tetris: Ticker()
* README: fix up some obsolete terminology
* tetris: draw the game board
* tetris: add NewPiece()
* tetris: draw tetriminos
* tetris: check for stuck piece, move it down
* Accept NULL dst in ncplane_translate() #408
2020-03-22 17:33:08 -04:00
nick black
38f4255dc0 Define ncplane_mergedown() #361
ncplane_mergedown() is similar to the "Merge down" operation
in the GIMP. It writes to the destination plane the result
of rendering the source and destination frames per se.
2020-03-21 05:09:31 -04:00
nick black
ba90c70a47
ncplane_cursor_yx() takes const first argument 2020-03-14 21:15:37 -04:00
nick black
db30bcf0d2
document new ncdirect functions for cursor #402 2020-03-13 09:56:46 -04:00
Nick Black
c056a0a026
Subregion renders #293 (#404)
Add four new fields to notcurses_options: margin_{tblr}, which requests margins to the top, right, bottom, and left. Render only within those margins, leaving the screen otherwise untouched (well, cleared if using the alternate screen). #293
2020-03-13 05:07:33 -04:00
nick black
be089747a7 ncmultiselector_selected() #322 2020-03-09 15:31:16 -04:00
nick black
2dd97de4e4 multiselector man page 2020-03-09 15:31:16 -04:00
nick black
eead4c1414
notcurses_highgradient() added #398 2020-03-08 04:05:55 -04:00
nick black
ac683e21d2
v1.2.3 2020-03-07 18:53:36 -05:00
nick black
333f7c1192
define ncplane_rotate_cw/ccw() 2020-03-05 18:07:20 -05:00
nick black
afe724ee1d
docs: update for ncplane_translate_abs() 2020-03-03 01:04:28 -05:00
nick black
bb579d0d05
notcurses_directmode()->ncdirect_init() 2020-03-02 20:19:16 -05:00
nick black
a09bdc4ade
Add seqnum field to ncinput #374 2020-02-24 18:11:39 -05:00
nick black
ddd33fea31
ncdirect_move() doc, readme, python, c++ #382 2020-02-24 16:56:51 -05:00
nick black
e72111ac8b
v1.2.2 2020-02-24 00:03:00 -05:00
nick black
9b0603bb32
Implement + test ncplane_mouseevent_p() #305 2020-02-23 03:50:17 -05:00
nick black
5e38da9ea3
implement ncplane_stain() #347 2020-02-21 07:00:53 -05:00
nick black
002e8be574
implement ncplane_format() #347 2020-02-21 06:52:57 -05:00
nick black
2780734efd
add ncplane_translate() 2020-02-21 06:26:57 -05:00
nick black
dc4271ca23
dumbass 2020-02-21 00:13:47 -05:00
nick black
f9d98dd05c
notcurses_stdplane_dimyx() #365 2020-02-20 23:40:13 -05:00
nick black
88c49df1b1
v1.2.1
DSFG demo can't have luigi
s/1.2.0/1.2.1/g
2020-02-20 05:13:22 -05:00
nick black
35d850f008
Implement + test ncplane_putegc_stainable() #352 2020-02-20 04:41:56 -05:00
nick black
7b27953c17
notcurses_reel(3): fix up some references 2020-02-19 23:00:52 -05:00
Nick Black
e5d6685c92
No locks, more lox #290 (#358)
* README/CMake: only require doctest 2.3.5

* man pages: remove talk of locking #290

* Remove locking from notcurses core #290

* Purge locking from notcurses core #290
2020-02-18 20:03:20 -05:00
Jakub Wilk
f08d51c5e7 fix typos 2020-02-18 08:03:59 -05:00
nick black
2b08c53075 prep for 1.2.0 2020-02-17 21:57:52 -05:00
nick black
c6520ab84c add notcurses_drop_planes, use from demo #346 2020-02-16 11:21:21 -05:00
nick black
8ecb4ba6a8 declare gradient functions #340 2020-02-16 11:21:21 -05:00
nick black
124004c87c add nplane_polyfill_yx() #340 2020-02-14 05:38:08 -05:00
nick black
ce3e5d112e add ncdirect_clear() #343 2020-02-14 05:38:08 -05:00
nick black
6d629025e3 add ncdirect_fg_default() and ncdirect_bg_default() 2020-02-14 05:38:08 -05:00
nick black
8beb5d66fd
demo: hook up Ctrl+'u' for about screen #338 2020-02-12 13:13:03 -05:00
nick black
9fc53e811f
ncplane_perimeter() plus unit test 2020-02-12 12:29:28 -05:00
nick black
d8c42d4d1e
ncmenu_selected() fills in an ncinput #333 2020-02-12 09:11:28 -05:00
nick black
048b17952e
notcurses_ncinput(3): add NOTE about shift key 2020-02-11 22:44:45 -05:00
nick black
155650afa4
notcurses_ncplane(3): update blitter signatures 2020-02-11 20:36:42 -05:00
nick black
887726b0d9 Debian: move all symbols/history to 1.1.8 2020-02-11 19:11:34 -05:00
nick black
cda600a4aa :/ 2020-02-10 21:37:20 -05:00
nick black
b0c72607c4
ncmenu_offer_input(), use it in demo/pocmenu #333 2020-02-10 20:22:23 -05:00
nick black
aacec297b2
ncmenu: declare ncmenu_offer_input() 2020-02-10 15:41:25 -05:00
nick black
74b9690cf3
ncmenu: remove dumb restrictions/special casing 2020-02-10 15:18:28 -05:00
nick black
1b6727404a
notcurses_output: spelling 2020-02-10 01:04:01 -05:00
nick black
1ed6000193 ncstats: add plane count, fix fbbytes accounting 2020-02-07 09:19:08 -05:00
nick black
74775b97ec
enmetric->ncmetric #324 2020-02-05 20:18:11 -05:00
nick black
89f516dcaa
tablet->nctablet, add ncreel to python #324 2020-02-05 20:04:56 -05:00
nick black
c519c95fff
panelreel -> ncreel #324 2020-02-05 17:29:42 -05:00
nick black
b284901d18
prep for 1.1.6 2020-02-05 04:08:42 -05:00
nick black
bb7b92ea4a
ncdirect_styles_*() declarations #321 2020-02-05 02:27:41 -05:00
nick black
429e00d612 v1.1.5 2020-02-04 23:26:55 -05:00
nick black
5cd3a4c41d
ncdirect_dim_y()/x() 2020-02-04 03:04:38 -05:00
nick black
2a9f3c5ab3
ncmenu_selected(), update docs #179 2020-02-04 01:05:51 -05:00
nick black
4d613217b3
ncmenu: only allow one at a time 2020-02-04 00:17:51 -05:00
nick black
10a269c963
ncmenu: reject double menu 2020-02-04 00:08:03 -05:00
nick black
2ced7357ce ncmenu man page #179 2020-02-02 12:57:32 -05:00
nick black
db53b36d94 ncmenu: calculate height based off sections #179 2020-02-02 12:57:32 -05:00
nick black
fdc541c6e5 copy over menu elements #179 2020-02-02 05:13:40 -05:00
nick black
8984422f1e basics of menu #179 2020-02-02 05:13:40 -05:00
nick black
6fde6e66b7 markdown syntax fixen 2020-02-02 05:13:40 -05:00
nick black
6e642f1749 more menu work #179 2020-02-02 05:13:40 -05:00
nick black
e9dba91cf4 menus: basic declarations #179 2020-02-02 05:13:40 -05:00
nick black
60c19017f0
v1.1.4 2020-02-02 02:48:22 -05:00
nick black
25ce448889
rgba_blit()/bgrx_blit() #311 2020-02-02 02:20:01 -05:00
nick black
746ef96ea1 prep for v1.1.3 2020-02-01 02:37:55 -05:00
nick black
eefd6eda38
notcurses_select(3): fix man page formatting 2020-02-01 02:31:05 -05:00
nick black
c1664170fd
selector: bgchannels only inside the body #302 2020-01-31 21:25:21 -05:00
nick black
741761787f
notcurses_selector(3) man page #302 2020-01-31 17:44:30 -05:00
Nick Black
da0283ac25
Selector widget #166, subtitles #95 (#301)
Get rid of annoying empty line in notcurses-view (and ncvisuals at offsets in general)
Implement most of the Selector widget. Need to add styling and scrolling still. #166
Reenable ubuntu focal build
Subtitles! We decode them, and display them in notcurses-view. If ncvisual_simple_streamer() is provided an extra ncplane, it will use it to display subtitles. #95
We now build Python by default, as things are working much better.
ncplane_set_base() now takes channel, attrword, and EGC, so you can usually avoid having to set up and release a cell. ncplane_set_base_cell() takes over duty from ncplane_set_base() for ease of conversion.
notcurses-demo and notcurses-view now both accept a 0 for delay multiplier, meaning 'go as fast as you possibly can'. Very small multipliers (e.g. 0.00001) no longer cause floating point exceptions.
fading routines no longer cause floating point exceptions on very small timescales.
2020-01-30 08:55:01 -05:00
nick black
c9bfc54381
prep for 1.1.2 2020-01-29 01:03:00 -05:00
nick black
ac791c781d
1.1.1, update version numbers 2020-01-27 02:15:38 -05:00
nick black
1fd0563093
Direct mode with its own type #77
Introduce the new type 'ncdirect', a stripped-down 'notcurses'
suitable for inline modification of regular output. Used the new
type because otherwise there were going to be if(directmode) checks
everywhere. Direct mode encompasses only colorizing and styling.
Add new man page notcurses_directmode(3). Add new section to README.
Add new PoC using direct mode RGB. Update demo table summary to use
direct mode.
2020-01-25 01:13:04 -05:00
nick black
2ea10d4b28 Remove clear_screen_start option
As it turns out, we can't portably load the initial terminal contents
(there are some hacks of various EXTREME nature, but none of them are
worth it for the rather limited benefit). The O(1)-time damage
inference requires knowledge of what was previously present to
inibit unnecessary draws. We would then need some special cell value
indicating "not yet written to" to distinguish a purposeful null
cell from an initial cell. Again, we could do this, but for what value?

Finally, the idea of clearing new area on SIGWINCH was always flawed,
as we can't do that from a signal handler.

With the advent of direct mode #77, the reason for this largely goes
away in any case.
2020-01-24 04:06:41 -05:00
nick black
6e92492117
docs, python: add notcurses_canchangecolor() 2020-01-19 06:16:09 -05:00
nick black
dec2ab515e python: update palette256 API wrapper 2020-01-19 04:07:25 -05:00
Nick Black
3d612aebcb
ruins color cycling demo #253 (#287)
* palette_set: update pal256 damage map #230
* drone: use newest builders
* palette: send oc on exit for color reset #285
* palette_new: copy existing palette in #230
* Python: use checkRGB everywhere
* more palette unit testing
* add ncplane_set_*_palindex()
* render fg palindex #230
* palette index color is out of 1000
* jungle demo works #253
2020-01-18 20:42:29 -05:00
nick black
b02acd8631
Curry a void* to fader callbacks #284 2020-01-17 09:30:53 -05:00
nick black
3bd0732e81 notcurses_view: accept -s option 2020-01-17 08:35:28 -05:00
nick black
011f7524bb reject bad demo spec before starting 2020-01-17 08:35:28 -05:00
nick black
55b7dc992b notcurses_resize(3) man page #279 2020-01-17 08:35:28 -05:00
nick black
08f6fa0e79 implement ncplane_dup() 2020-01-17 08:35:28 -05:00
nick black
6365fc0917 encode palette index into channels/attr #230 2020-01-17 08:35:28 -05:00
nick black
684bcdcc8c introduce palette256 #230 2020-01-17 08:35:28 -05:00
nick black
76228019ee cell.3: update cell_blend_*() signatures 2020-01-15 05:20:58 -05:00
nick black
2c2542a553 docs/rust/python: update versions to 1.1.0 2020-01-15 04:50:54 -05:00
nick black
8f07eb9ffe
hierarchal->hierarchical 2020-01-14 16:46:16 -05:00
nick black
dd7f8eff4b
ncvisual_stream: add timescale param 2020-01-14 15:50:17 -05:00
nick black
7c687faea0
pulsing text + unit test + docs #163 2020-01-14 01:09:37 -05:00
nick black
23b5078ed1
pulsing text declarations 2020-01-14 01:09:26 -05:00
nick black
4fca9425d9 notcurses_cell.3: add clipped 2020-01-12 07:46:38 -05:00
nick black
d5c82e2024 notcurses_ncplane.3: add ncplane_clipped() 2020-01-12 07:46:38 -05:00
nick black
eba64b0990
man page syntax fixups 2020-01-10 10:56:13 -05:00
nick black
dd3046ddf3
notcurses_input.3: fix syntax 2020-01-10 10:30:39 -05:00
nick black
5a555ff917
v1.0.2 2020-01-09 05:50:20 -05:00
nick black
7e40453199
v1.0.1 2020-01-09 05:22:34 -05:00
nick black
202115d826 Add python3-all-dev build-dep 2020-01-07 16:15:27 -05:00
Nick Black
f5c6297902
Chun Li demo (#251)
* chun li demo
* ncvisual_decode: allow multiple renders of the same frame
* add -H to notcurses-demo man page
* update section 1 man page versions
2020-01-04 07:21:54 -05:00
nick black
5dd90f3735 add ncplane_dim_[yx] quick accessors 2020-01-04 04:34:29 -05:00
Nick Black
f6975d11d5
Docs/API sweep for 1.0.0 #244 #249 (#250)
* sync up some docs #244
* sync README and man page
* notcurses_output() man page work
* pull attr/channels from output functions #244
* witherworm: clean up explicit moves #244
* still more man page work
* notcurses_lines, last of the man pages i think
* panelreel man page #244
* debian: ruby-ronn->pandoc
* debian: full multiarch compliance
* debian: symbols file
* pandoc: fix syntax for lexgrog
* fm6.mkv: strip audio
* pandoc: fix up apropos man syntax #249
* ncurses_lines man page
2020-01-04 02:37:55 -05:00
nick black
9ceb708c00 man page syntax fixes 2020-01-03 05:51:27 -05:00
nick black
029256e6fc
notcurses-input docs 2020-01-01 22:39:16 -05:00
nick black
dee889ee05
some documentation on cells/threads 2020-01-01 22:06:07 -05:00
nick black
94f597a9bb ronn -> pandoc #245 2020-01-01 21:26:21 -05:00
nick black
e81e58035e
notcurses_at_yx() added 2019-12-31 20:51:20 -05:00
nick black
d1921943ee
notcurses_ncplane(3) details 2019-12-31 18:53:52 -05:00
nick black
5c3dc72e51
update notcurses_ncplane(3) SEE ALSO links 2019-12-30 13:13:42 -05:00
nick black
41ff6fa5bd
update man pages for ncplane_new() 2019-12-30 07:49:06 -05:00
nick black
ed980f1059 pull _get from all accessors 2019-12-30 01:10:10 -05:00
nick black
924d80f0d5
don't blend default colors #235 2019-12-29 17:49:38 -05:00
nick black
f48cdd2a0e
more man pages (#213) 2019-12-29 16:41:28 -05:00
nick black
d06ea0463c
cell man page #213 2019-12-29 16:26:04 -05:00
nick black
fabb2f44d4
notcurses_render ronn syntax fix #213 2019-12-29 03:48:33 -05:00
nick black
46b1b8e622
notcurses_stats man page #213 2019-12-29 03:24:32 -05:00
nick black
e3e619beae
notcurses_render ma page #213 2019-12-29 02:30:25 -05:00
nick black
2bc3717a01
link up man references (#213) 2019-12-28 22:47:50 -05:00
nick black
a43eab6921
notcurses_newplane(3) man page #213 2019-12-28 22:05:55 -05:00
nick black
665d54e33c
man page linking (#213) 2019-12-28 21:54:02 -05:00
nick black
daad1c7ea3
more man pages (#213) 2019-12-28 21:02:54 -05:00
nick black
a0d00c8aa3
man page work (#213) 2019-12-28 20:57:10 -05:00
nick black
9849e66c43
section 3, not 3notcurses 2019-12-28 20:17:34 -05:00
nick black
502a1bf0e8
notcurses_stop(3) man page #213 2019-12-28 20:15:11 -05:00
nick black
734708616b
html documentation 2019-12-28 20:11:08 -05:00
nick black
7c5a13e7ac
notcurses_init(3) man page #213 2019-12-28 19:58:05 -05:00
nick black
21c3861804
s/bannner/banner/g, heh 2019-12-28 18:37:44 -05:00
nick black
38cff7e54f
man pages #213 2019-12-27 08:35:16 -05:00
nick black
4ce774ba13
man pages: fix install #213 2019-12-27 08:20:48 -05:00
nick black
e05bde3d5a
gimme a bit of top-level man page 2019-12-27 08:16:13 -05:00
nick black
cad8471d76
build man pages using ronn 2019-12-27 07:36:42 -05:00
nick black
a72bf25907
install section 3 man page 2019-12-12 07:38:04 -05:00