Commit Graph

840 Commits

Author SHA1 Message Date
nick black
e71c9284ef
man pages: address some syntax issues 2020-02-11 20:46:39 -05:00
nick black
ed0d5e6ae3
uniblock: spelling 2020-02-10 21:29:25 -05:00
nick black
ae62e046b0 python: add shebangs 2020-02-10 20:57:06 -05:00
nick black
80f11b2d0d add pydemo to test installed package 2020-02-10 20:51:08 -05:00
nick black
204181b706
ncselector_offer_input() and rewrite pocselector #333 2020-02-10 20:25:45 -05:00
nick black
b0c72607c4
ncmenu_offer_input(), use it in demo/pocmenu #333 2020-02-10 20:22:23 -05:00
nick black
79661633f0
ncmenu: knock out unterminated short descs 2020-02-10 15:49:03 -05:00
nick black
aacec297b2
ncmenu: declare ncmenu_offer_input() 2020-02-10 15:41:25 -05:00
nick black
093b4aa730
highcon: make text orderly 2020-02-10 15:24:58 -05:00
nick black
74b9690cf3
ncmenu: remove dumb restrictions/special casing 2020-02-10 15:18:28 -05:00
nick black
d6ea7f9b6c
CELL_ALPHA_HIGHCONTRAST: evaluate against final background 2020-02-10 15:17:51 -05:00
nick black
5086bbf1fc
demo: less pronounced menu color 2020-02-10 01:56:09 -05:00
nick black
ab8417e488
demo: handle remaining menu inputs 2020-02-10 00:38:34 -05:00
nick black
d3c26320ef
demo: don't draw sections transparently #336 2020-02-10 00:29:03 -05:00
nick black
92cb0b9abf
demo: handle menu navigation 2020-02-10 00:26:32 -05:00
nick black
2dde1d4af7
demo: hold arrow keys back for menu 2020-02-10 00:09:27 -05:00
nick black
b56e597bb8 uniblock: adapt to ncmenu 2020-02-09 06:30:17 -05:00
nick black
1fc5afbe8d uniblock: adapt for demo menu 2020-02-09 06:30:17 -05:00
nick black
006ee00142 boxdemo: adapt to menu 2020-02-09 06:30:17 -05:00
nick black
501fe166e4 trans: adapt to ncmenu #332 2020-02-09 06:30:17 -05:00
nick black
d55f1b78d8 xray: adapt to menu 2020-02-09 06:30:17 -05:00
nick black
328426c3e7 demo: adapt intro to menu 2020-02-09 06:30:17 -05:00
nick black
28bfa4d854 ncmenu: right-align selected sections #332 2020-02-09 06:30:17 -05:00
nick black
71dbfd74f7 ncmenu: step around alignment NULL #332 2020-02-09 06:30:17 -05:00
nick black
3bbb752554 ncmenu: unrolled body needs be transparent #329 2020-02-09 06:30:17 -05:00
nick black
25e2f59f4b ncmenu: searching for cause of discoloration #329 2020-02-09 06:30:17 -05:00
nick black
cdcc275e07
HUD: always display a close button in upper right 2020-02-07 10:22:36 -05:00
nick black
80e449cf79
demo: fix up ignore option 2020-02-07 09:42:49 -05:00
nick black
5c67591294
python: match new blend signatures 2020-02-07 09:39:05 -05:00
nick black
5b20651836 demo: add menu, but disable for now 2020-02-07 09:19:08 -05:00
nick black
3cdac5ce28 high-contrast text, simple linear average model #181 2020-02-07 09:19:08 -05:00
nick black
1ed6000193 ncstats: add plane count, fix fbbytes accounting 2020-02-07 09:19:08 -05:00
nick black
6798233afe highcontrast demo: turn on motto 2020-02-07 09:19:08 -05:00
nick black
290bd983ac highcontrast demo: tighten up minimize() #181 2020-02-07 09:19:08 -05:00
nick black
f5fd95287e highcontrast: kill nonsense line 2020-02-07 09:19:08 -05:00
nick black
f688f9b9c3 highcontrast demo cycle #181 2020-02-07 09:19:08 -05:00
nick black
8e29b5ba0f add highcon demo #181 2020-02-07 09:19:08 -05:00
nick black
05997f9988
notcurses-demo: accept -i to continue on demo failure 2020-02-07 01:05:27 -05:00
nick black
dfe4a99446
ncplane_putegc_yx: set sbytes on error path 2020-02-07 01:05:08 -05:00
nick black
85e377e652
Accept US-ASCII/C encoding, with warning. 2020-02-06 22:05:48 -05:00
nick black
62488eaf10
blit->ncblit #324 2020-02-05 20:40:36 -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
b38985e99c
demo: print default data dir in usage() 2020-02-05 16:49:06 -05:00
nick black
01bc543399
tag demos requiring ffmpeg 2020-02-05 10:41:13 -05:00
nick black
0bff959eed
demo: don't allow HUD to drive rendering 2020-02-05 07:50:55 -05:00
nick black
14f03f781a
add some missing locking #290 2020-02-05 06:02:14 -05:00
nick black
09ff64e19f
ncdirect_style_*() #321 2020-02-05 02:52:45 -05:00
nick black
bb7b92ea4a
ncdirect_styles_*() declarations #321 2020-02-05 02:27:41 -05:00
nick black
6bf812a306 demo: elide nonfree demos in DFSG build #316 2020-02-04 23:18:40 -05:00
nick black
832451a966
notcurses-view: erase base plane each frame #314
On a resize, notcurses-view left cruft in the middle of the
top line due to the frame/time being moved. An erase is awfully
heavyweight here, in the abstract, but it gets the job done
simply, and doesn't seem to have much performance impact.
2020-02-04 22:33:10 -05:00
nick black
ab3a91c5d0
python for ncdirect 2020-02-04 04:16:16 -05:00
nick black
8ac16b734f
keep ncmenu on top #179 2020-02-04 02:20:02 -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
039a390877
ncmenu: print item shortcut aligned right #179 2020-02-03 23:55:19 -05:00
nick black
49013433ea
demo: spruce up table a bit more 2020-02-03 22:37:08 -05:00
nick black
f54e73278e
chunli: return error on load failure 2020-02-03 22:36:59 -05:00
nick black
79a92fcfb1
ncmenu: highlight shortcut keys for menu items 2020-02-03 22:14:29 -05:00
nick black
553f81da4e
ncmenu: unicode shortcut test 2020-02-03 21:35:41 -05:00
nick black
3821b66bc7
menu: highlight (bold+uline) section shortcuts 2020-02-03 21:32:04 -05:00
nick black
5cd4fc9a1f
menu: reject empty sections #179 2020-02-03 13:08:45 -05:00
nick black
0977fa0d56
menu: don't alight cursor on separators 2020-02-03 12:33:06 -05:00
nick black
ee6eb1a37b
ncmenu: support iteration within a section 2020-02-03 01:07:58 -05:00
nick black
fa88f9b525
ncmenu: nextsection/prevsection 2020-02-02 19:02:52 -05:00
nick black
88a0ffff07 ncmenu: fill in sections #179 2020-02-02 12:57:32 -05:00
nick black
c3ad38adb9 ncmenu: size body width based on items #179 2020-02-02 12:57:32 -05:00
nick black
4586dd7e19 ncmenu: properly place unrolled menu #179 2020-02-02 12:57:32 -05:00
nick black
ce965fcbcd ncmenu: add unroll and rollup #179 2020-02-02 12:57:32 -05:00
nick black
2118c5d81a menu: draw background only onto header row #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
7708ec5c96
notcurses_stop_minimal() for use from signal handler #313 2020-02-02 06:26:24 -05:00
nick black
31a07dab33
menu: extend across width of screen #179 2020-02-02 06:02:57 -05:00
nick black
015ce4764e ncmenu: set up the section headers #179 2020-02-02 05:13:40 -05:00
nick black
fdc541c6e5 copy over menu elements #179 2020-02-02 05:13:40 -05:00
nick black
54c57b3487 s/CELL_STYLE/NCSTYLE/ throughout 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
6e642f1749 more menu work #179 2020-02-02 05:13:40 -05:00
nick black
321ea908f1
Fix up BGR/RGB reversal in blitter #311 2020-02-02 02:22:38 -05:00
nick black
25ce448889
rgba_blit()/bgrx_blit() #311 2020-02-02 02:20:01 -05:00
nick black
f3af2b8760
Convert mbtowc to mbrtowc everywhere #308 2020-02-01 17:21:13 -05:00
nick black
44f80694a3
selector: bind with ┴ where appropriate #309 2020-02-01 14:24:56 -05:00
nick black
4716b5f495
selector: bind riser to body #309 2020-02-01 14:01:20 -05:00
nick black
20e4c106a2
FreeBSD build fixen #304 2020-02-01 04:12:54 -05:00
nick black
4af5c79b2a
notcurses-input: cast input to wchar_t for output 2020-02-01 04:01:06 -05:00
nick black
39f99dfa4a
Selector: final styling touches #302 2020-02-01 02:25:00 -05:00
nick black
c1664170fd
selector: bgchannels only inside the body #302 2020-01-31 21:25:21 -05:00
nick black
eab1ce0262
selector: align secondary/footer #302 2020-01-31 20:38:58 -05:00
nick black
45235fc076
Selector: add arrows if there are more options #302 2020-01-31 19:58:55 -05:00
nick black
fad612bd2f
Use column width in selector calculations #302 2020-01-31 19:51:14 -05:00
nick black
43ce3e5ccb
selector: don't FPE on empty itemlist #302 2020-01-31 02:49:34 -05:00
nick black
05a83e54c7
Selector: inverse rather than reverse video #302 2020-01-31 00:55:25 -05:00
nick black
fe51f93a4c
selector: destroy ncplane on exit 2020-01-31 00:28:34 -05:00
nick black
77432ee1c5
set ~ICRNL with termios.c_iflag #303 2020-01-31 00:26:52 -05:00
nick black
99b79cbf4f
ncselector_create: fix base_egc fuckup #302 2020-01-31 00:02:00 -05:00
nick black
6a4cfcde95
selector: always rotate options #302 2020-01-30 23:05:30 -05:00
nick black
d30df23f43
selector: support non-zero default idx #302 2020-01-30 22:42:25 -05:00
nick black
09d2e35372 C++ wrappers: kill Visual::destroy_plane() #299
ncvisual_destroy() already calls ncplane_destroy() when
appropriate. There's never a need for the C++ wrappers
to explicitly free the Visual's underlying Plane. With
this change, valgrind no longer complains upon exiting
notcurses-view(1).
2020-01-30 22:17:07 -05:00
nick black
a57f0f234c
selector styling 2020-01-30 22:16:03 -05:00
nick black
e4dcccc409
selector: implement scrolling 2020-01-30 19:54:20 -05:00
nick black
3991b3e53a
selector: implement maxdisplay. unit tests! 2020-01-30 19:37:21 -05:00
nick black
ac2b951fa9
ncselector_selected(), unit tests 2020-01-30 16:40:02 -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
345ed60abd
Improve smcup handling
If we're going to issue smcup to switch to the alternate screen,
flush immediately after doing so. Otherwise, subsequent output
prior to the first render can be swept away. See growlight issue
75: https://github.com/dankamongmen/growlight/issues/75. In the
demo, we now get this output either (a) at the beginning (if smcup
is inhibited) or (b) at the end (default). Only perform our pause
on startup in case (a).
2020-01-29 00:25:18 -05:00
Marek Habersack
cd6d1e16d1 Properly clean up when NotCurses instance is destructed
We need to set `_instance` to `nullptr` or we'll leave a dangling
pointer.
2020-01-27 02:18:05 -05:00
nick black
4e19d51e57
geom: tighten things up a bit 2020-01-27 00:58:34 -05:00
nick black
652cfbc9f1
more dumb geometry block tricks 2020-01-25 22:35:26 -05:00
nick black
c3d4ac8caa
geom.c: PoC fun with geometric shapes 2020-01-25 22:21:47 -05:00
nick black
c04a68896c
README: add FAQ entry about c++ scopes 2020-01-25 11:06:08 -05:00
nick black
24fc43fab5
demo: support 100k+ frames in HUD 2020-01-25 08:03:58 -05:00
nick black
2cad2bbfd5 direct mode: properly initialize termcaps #77 2020-01-25 07:17:45 -05:00
nick black
81b58234ee
direct mode: reset terminal, check vals #77 2020-01-25 01:37:51 -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
83e40d3472
direct mode RGB PoC 2020-01-24 23:29:13 -05:00
nick black
ceb15e4e8f demo summary: PoC direct mode with color #77 2020-01-24 04:06:41 -05:00
nick black
3d4e157af6 direct-mode coloring #77 2020-01-24 04:06:41 -05:00
nick black
d8849bb4b1 uniblocks: add a few missing blocks 2020-01-24 04:06:41 -05:00
nick black
e899f8b7ed demo summary: also print real FPS 2020-01-24 04:06:41 -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
78650e00da
replace gibberish with einstein field equation RHS 2020-01-22 22:07:23 -05:00
nick black
55699c6a3c
render summary: autoscale all times 2020-01-22 08:28:56 -05:00
Marek Habersack
75a90461dd Add C++ bindings 2020-01-22 06:47:43 -05:00
nick black
22f71c9a80
implement quantize_rgb8() for linux console #288 #4 2020-01-21 00:43:36 -05:00
nick black
48025cd794
report Alt in ncinput #228 2020-01-20 00:10:18 -05:00
nick black
be3a53f3cf
input: function key defs through kf59 2020-01-20 00:00:09 -05:00
nick black
1aa462385e
detect ctrl+letter, prep ncinput appropriately #228 2020-01-19 23:45:55 -05:00
nick black
4ece4a9075
demo: skip demos which we don't have support for 2020-01-19 06:09:59 -05:00
nick black
b7bc693ef7
i'm WarMECH, bitch 2020-01-19 04:39:15 -05:00
nick black
ec5e857a6c
palette256: fix up unit tests 2020-01-19 04:04:13 -05:00
nick black
004f5ca1ea
Note copyright of Mark Ferrari for jungle demo 2020-01-19 02:31:08 -05:00
nick black
bee5be9d80
chunli: finalize out 2020-01-19 02:30:46 -05:00
nick black
19db2a5675
still more chunli 2020-01-19 00:50:38 -05:00
nick black
cffd08418a
more chun li 2020-01-19 00:04:57 -05:00
nick black
bb0cdb2b88
demo: add demo_nanosleep() for HUD 2020-01-18 21:38:02 -05:00
nick black
1e403123e1
s/notcurses_render/demo_render/g pass 2020-01-18 21:17:05 -05:00
nick black
6a2dae0279
box: punch it up a little 2020-01-18 20:58:05 -05:00
nick black
eb8ecb2433
jungle: center image, use demo_render() 2020-01-18 20:50:14 -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
02698ebbd1
add jungle demo 2020-01-18 16:08:25 -05:00
nick black
03e3c5406d
interrogate_term: check CCC if initc is defined 2020-01-18 16:06:24 -05:00
nick black
f450c1261a
libav: don't molest user pointer 2020-01-17 12:19:32 -05:00
nick black
c23b4196a2
notcurses-view: get status line back, urk 2020-01-17 12:19:25 -05:00
nick black
3e9347a339
palette color: unit test for alpha clear 2020-01-17 11:49:21 -05:00
nick black
f5e151e9a0
render+raster palette-index support #230 2020-01-17 11:34:25 -05:00
nick black
b02acd8631
Curry a void* to fader callbacks #284 2020-01-17 09:30:53 -05:00
nick black
d95069fb1e
fallin: more blocks, many more #283 2020-01-17 09:02:26 -05:00
nick black
ed783fe421 drop ncplane_erase() from slider 2020-01-17 08:35:28 -05:00
nick black
98fe08727b fallen: open the curtain on patents.png 2020-01-17 08:35:28 -05:00