Commit Graph

424 Commits

Author SHA1 Message Date
igo95862
6792baf3ff
python: Implemented half of NcPlane functions 2021-05-08 22:15:26 +03:00
igo95862
4d4d5c043d
python: Add NcPlane initializers 2021-05-08 22:15:26 +03:00
igo95862
f88dededc0
python: Started with NcPlane 2021-05-08 22:15:26 +03:00
igo95862
4e820c779d
python: Implemented most of the notcurses context functions
The ones that depends on some other objects such as NcPlane
will be implemented in the future.
2021-05-08 22:15:26 +03:00
igo95862
0fc3d3efa6
python: Added notcurses context object with initializer and dealloc 2021-05-08 22:15:26 +03:00
igo95862
b9cf59ad22
python: Expose the variables containing definitions.
Instead of exposing all functions between modules we can only
expose the variables that contain the function pointers such
as `ChannelsFunctions` which has all channels functions.
2021-05-08 22:15:26 +03:00
igo95862
1037b652f9
python: Split new python binds module in to separated source files
Less thousand lines files
2021-05-08 22:15:26 +03:00
igo95862
92159867fc
python: Added all channels functions 2021-05-08 22:15:26 +03:00
igo95862
080428d3f7
python: Renamed check macros to use GNU prefix
Since they use GNU extensions. This reduces the collision
probability with the Python header.
2021-05-08 22:15:25 +03:00
igo95862
141f6411a1
python: Added ncstrwidth function 2021-05-08 22:15:25 +03:00
igo95862
1d9a9c5926
python: Added PY_CHECK_INT macro 2021-05-08 22:15:25 +03:00
igo95862
f07163e6c8
python: Add special macros for error handling
Can only be used on clang or gcc but I think the library already
requires them.
2021-05-08 22:15:25 +03:00
igo95862
97804f2050
python: Add notcurses_version_components function 2021-05-08 22:15:25 +03:00
igo95862
76909dd77e
python: Use CFLAGS for extra warnings and LDFLAGS to not strip
Without --no-as-needed the binaries created will not be linked
against notcurses.
2021-05-08 22:15:25 +03:00
igo95862
259dee29b5
python: Removed old implementation 2021-05-08 22:15:25 +03:00
igo95862
1099c9a6f5
python: Update setup.py. Actually link against libnotcurses 2021-05-08 22:15:25 +03:00
igo95862
676bfdcf18
python: Update __init__.py to use new module 2021-05-08 22:15:24 +03:00
igo95862
e410dc3d51
python: Create notcurses misc module 2021-05-08 22:15:24 +03:00
igo95862
32075e22dc
python: Started with new header file 2021-05-08 22:15:24 +03:00
igo95862
535fffa9d5
python: Improved ISO C compliance 2020-12-01 18:01:36 +03:00
igo95862
788a327c98
python: Fixed the error check on input using wrong c type 2020-12-01 17:56:28 +03:00
igo95862
b2163e8f8c
python: Added Py_UNUSED macros for unused arguments 2020-12-01 17:49:34 +03:00
igo95862
ce3ddb8d4e
python: Fixed compile error because ncplane_options was changed 2020-12-01 17:40:35 +03:00
igo95862
ba04f79c44
python: Removed unneccesary comments 2020-11-30 22:21:20 +03:00
igo95862
4489c25297 igo95862's new python bindings 2020-11-29 12:50:55 -05:00
nick black
f2d3b26fcb
move python-cffi to cffi 2020-11-22 01:45:23 -05:00
nick black
500e0af6f0
don't require pypandoc 1.5; 1.4 is enough 2020-11-22 00:48:31 -05:00
nick black
73b2f1bf19
v2.0.7 2020-11-22 00:22:11 -05:00
nick black
acdcf9e41f
v2.0.6 2020-11-21 23:35:24 -05:00
nick black
537caa2173
v2.0.5 2020-11-21 22:29:02 -05:00
nick black
1e6f8e4901 USAGE/python/man: update ncplane_options #1115 2020-11-17 23:42:36 -05:00
nick black
92add03a30
python: run setup.py without pypandoc #1110 2020-11-12 14:40:18 -05:00
nick black
7622cefc3a
v2.0.4 2020-11-10 10:50:30 -05:00
nick black
0d31a03be9
v2.0.3 2020-11-09 13:45:59 -05:00
José Luis Cruz
1c4b3475ff
fix markdown link 2020-11-07 15:15:31 +01:00
nick black
9cfff77624 python: declare sexblitter 2020-10-29 18:15:42 -04:00
nick black
8189d21709
v2.0.2 2020-10-25 10:10:50 -04:00
nick black
b35c680f48 add LoopVideo unit test #1066 2020-10-21 00:47:21 -04:00
nick black
19efd2c10a declare ncdirect_printf_aligned() in man page + python #1074 2020-10-19 09:40:10 -04:00
nick black
a4546c86e3
v2.0.1 2020-10-19 03:15:32 -04:00
nick black
6623fc92a0
ncmenu_item_set_status: man page, NEWS, python, c++ #1057 2020-10-15 03:03:43 -04:00
nick black
65974aeb0b
v2.0.0 2020-10-12 12:33:21 -04:00
nick black
8c9611d085
v1.7.6 2020-10-09 20:07:01 -04:00
nick black
d0f7d6be27
notcurses-direct-pydemo: disable cursor 2020-10-07 18:37:59 -04:00
nick black
f9e2c7863b
add notcurses_stats_alloc #1043 2020-10-06 23:33:28 -04:00
nick black
270b1b20ee implement notcurses_render_to_buffer() #214 2020-10-04 11:43:25 -04:00
nick black
b4f1065f69 declare notcurses_render_to_buffer() #214 2020-10-04 11:43:25 -04:00
nick black
20a49d053d
v1.7.5 2020-09-29 13:12:17 -04:00
nick black
683217ef07 normalize style setters #1034 2020-09-29 13:09:44 -04:00
nick black
315df85b2b
note that python bindings are quite incomplete 2020-09-28 02:03:52 -04:00
nick black
20bf1ae2d4
nctablet_ncplane() -> nctablet_plane() 2020-09-27 16:46:39 -04:00
nick black
ec85dd1c3b
ncreel_destroy: return void 2020-09-27 15:57:03 -04:00
nick black
f02263e977
v1.7.4 2020-09-20 17:30:46 -04:00
nick black
7b51bab79a add resizecb to ncplane_options struct #869 2020-09-20 08:54:56 -04:00
nick black
36aed3c521 add ncplane_create() + ncplane_options #1020 2020-09-20 05:52:27 -04:00
nick black
607c03edc4
rename _rgb_clipped functions rgb8_clipped 2020-09-19 21:55:01 -04:00
nick black
4459efa216
v1.7.3 2020-09-19 21:21:52 -04:00
nick black
a4367fcfb5 rip out ncplane_ creation functions #985 2020-09-18 17:46:57 -04:00
nick black
e42dbdfd60 _stainable() -> _stained() #985 2020-09-18 02:02:08 -04:00
nick black
d8cdc3996c python: update for RGB name changes #985 2020-09-18 01:39:21 -04:00
nick black
c85ac831c6 man pages: update for rgb name changes #985 2020-09-18 01:39:21 -04:00
nick black
b241a59337 python: mbswidth() -> ncstrwidth() #985 2020-09-15 01:40:19 -04:00
nick black
dab7247cdd
mbswidth: use utf8_egc_len() for segmentation #1014 2020-09-15 00:29:53 -04:00
nick black
c3e5e47a2a
ncreader: conform to the New Way #627 2020-09-13 13:53:11 -04:00
nick black
4f04f1bc31 remove bgchannels field from selector_options #627 2020-09-13 13:22:58 -04:00
nick black
306948507f ncmultiselect: normalize per new widget API #627 #1006 2020-09-13 13:22:58 -04:00
nick black
a4e2a87f79 python: update ncselector to match #627 2020-09-13 13:22:58 -04:00
nick black
bc097a5674
v1.7.2 2020-09-10 04:14:01 -04:00
nick black
70f062aff5
v1.7.1 2020-08-31 21:49:39 -04:00
nick black
2f28420034 rename ncplane_putsimple() -> ncplane_putchar() #912 2020-08-31 21:14:29 -04:00
nick black
64fe8f6c07
v1.7.0 2020-08-30 19:12:16 -04:00
nick black
4c7a1d0427 ncdirect_init: add flags parameter #976 2020-08-30 13:38:33 -04:00
nick black
d5a4cd2349
add notcurses-direct-pydemo 2020-08-30 03:06:06 -04:00
nick black
c93243fd54
v1.6.20 2020-08-30 01:25:44 -04:00
nick black
6868350c89
fix the motherfucking python yeeaarrrrhh #947 2020-08-29 21:28:11 -04:00
nick black
66f80c77f9
add ncplane_y() and ncplane_x() 2020-08-29 15:50:45 -04:00
nick black
e92b7fd6ea
v1.6.19 2020-08-27 12:43:28 -04:00
nick black
6526e58c00
v1.6.18.4 2020-08-27 12:30:29 -04:00
nick black
6ea73e6e45
v1.6.18.3 2020-08-27 08:18:38 -04:00
nick black
550c02d8ac
v1.6.18.2 2020-08-27 07:26:28 -04:00
nick black
d11d8175d0
v1.6.18.1 2020-08-27 03:10:48 -04:00
nick black
d3e23697af python: restore channel_set_rgb() 2020-08-26 23:12:59 -04:00
nick black
bd14d6d08c
python: drop experiment 2020-08-25 18:26:33 -04:00
nick black
6d7f9eb501
v1.6.18 2020-08-25 18:24:19 -04:00
nick black
9d75f575db
ncplane_set_[fb]channels 2020-08-25 17:28:29 -04:00
nick black
70a28feb63
ncreader: horizontal scrolling mostly works #839 2020-08-25 08:58:49 -04:00
nick black
7cbb2e9110 zoo demo: show cursor in reader box #835 2020-08-25 06:29:03 -04:00
nick black
a53d5a21a8 disable/enable cursor for rasterize 2020-08-25 04:55:06 -04:00
nick black
cab19cf790 Cursor work (placement, drop RETAIN_CURSOR) #953
notcurses_enable_cursor() now accepts placement arguments.
both it and notcurses_disable_cursor() now return int rather
than void. add notcurses_cursor_move_yx().
2020-08-25 03:11:50 -04:00
nick black
4dd1d6a4c8 Annihilate nc_err_e and all infrastructure #948 2020-08-24 17:20:29 -04:00
nick black
026b94969d cffi heap allocations are zero-initialized #942 2020-08-23 22:27:50 -04:00
Nick Black
73dc0a7d69
Zoo 2, electric boogaloo (#939)
* Reimplement the widget zoo demo. The previous PoC
  was a multithreaded monster with behavior dependent
  on screen geometry. Replace it with a single thread state
  machine. Closes #936.
* Support titles for ncplot. Adds title to the ncplot_options
  struct, which may be NULL. Closes #941 .
* Properly color ncplot according to maxchannels and
  minchannels. Closes #940
* Add tools/function-table.sh script for generating public API list.
2020-08-23 12:44:53 -04:00
nick black
32d352173b
ncdirect_flush: struct ncdirect is const 2020-08-23 01:00:00 -04:00
nick black
4ebf8f748c
v1.6.16 2020-08-22 23:12:04 -04:00
nick black
5c533c9f1a
ncplot: support legend styling 2020-08-21 07:34:50 -04:00
Nick Black
359ad1d36d
Generalized mergedown #779 (#932)
* Rename ncplane_mergedown -> ncplane_mergedown_simple()
* New ncplane_mergedown(), fully general projection of src to dst
2020-08-20 23:51:35 -04:00
nick black
d282682564
python: remove static inline functions from cffi #924 2020-08-20 22:11:22 -04:00
Nick Black
e1cf346ddb
internalize highgradient_sized implementation #920 (#922)
internalize highgradient_sized implementation #920
2020-08-19 13:15:26 -04:00
nick black
05da44b06b
hide blending functions #917 2020-08-18 08:41:55 -04:00
nick black
a2c95814b7 Remove cell_simple_p()
Get notcurses-tetris working again, since its collision
detection relied on simple vs non-simple EGCs, which are
no longer an operative concept. Closes #899.
2020-08-16 15:57:32 -04:00
nick black
49ae79341d
v1.6.15 2020-08-16 11:04:43 -04:00
nick black
5d1adda150
python: notcurses.py needs stylemask, not attrword 2020-08-16 10:21:40 -04:00
nick black
dc99d56ac1
v1.6.14 2020-08-16 10:06:33 -04:00
nick black
e897de3700
v1.6.13 2020-08-16 08:54:22 -04:00
nick black
c878d0b5ea
python: add ncplane_set_attr() 2020-08-16 07:27:55 -04:00
nick black
202b88615f
kill ncplane_styles(), duplicates ncplane_attrs() 2020-08-16 07:26:16 -04:00
nick black
046d4a9d5d
python: update *_palette_size() 2020-08-16 05:42:30 -04:00
nick black
d982006bc7 python: kill duplicate ncplane_attr 2020-08-16 01:44:36 -04:00
nick black
16ff667325 blissful endianness-opacity
not caring about endianness is the opiate of the masses.
happy, happy masses. remove endianness.h and all its baleful
influence by explicitly breaking up the cell structure. #892
2020-08-16 01:44:36 -04:00
nick black
4deaeac97e fuck python until it dies 2020-08-15 17:38:20 -04:00
nick black
e6dda217a0 python: bring tabletcb definition up to date 2020-08-13 17:12:49 -04:00
nick black
9704f5cbe7
v1.6.12 2020-08-12 09:37:59 -04:00
Nick Black
11d6a4eb89
New reel layout algorithm #818 (#870)
New reel layout algorithm based on trimming and sifting. Fixes the original issue of #818, though I'm not marking that bug fixed until I've resolved the little issues remaining with this one.
Back off CMake version dependency, see if we can get by with 3.11.4 for EPEL8 #851
Simplify tablet drawing tremendously by separating tablet border and data planes. Callbacks no longer need worry about the borders; they can simply fill the plane they're handed. #833
Improve notcurses_debug() a bit
Add ncplane_new_named() and friends to expose plane naming to the user.
Add internal ncplane_genocide() to kill a plane and all its bound descendents
New industrial-strength ncreel unit testing
notcurses-ncreel now accepts -ln for log level n
Add ncplane_parent() and ncplane_parent_const()
2020-08-09 17:40:59 -04:00
nick black
fa76f5a432
v1.6.11 2020-08-03 02:47:07 -04:00
nick black
ead60d06cc
unexport cell_egc_idx() 2020-08-02 23:45:58 -04:00
nick black
3d6fad1477
python: update ncreader_options definition 2020-08-01 19:56:34 -04:00
nick black
8cfd1677c4
v1.6.10 2020-08-01 17:53:19 -04:00
nick black
f5f9808d80 install notcurses-pydemo.1 as part of python #836 2020-07-29 09:37:35 -04:00
nick black
7174a84e94 zoo: add multiselector 2020-07-29 01:15:50 -04:00
nick black
1ded31596e
python: remove itemcount #831 2020-07-28 22:43:29 -04:00
nick black
d126c71dd6
v1.6.9 2020-07-26 23:27:11 -04:00
nick black
f8c16ceb79
v1.6.8 2020-07-26 22:20:52 -04:00
nick black
d59ff71a6c
remove cell_noforeground_p() from python 2020-07-26 22:07:15 -04:00
nick black
4f8673b0e9
v1.6.7 2020-07-26 21:25:52 -04:00
nick black
32277ab2b9
notcurses.py: define ncoptions, raise exception on init failure #807 2020-07-21 00:09:30 -04:00
nick black
17f1323c20
v1.6.6 2020-07-19 21:55:10 -04:00
nick black
104bbfef50
add notcurses_lex_blitter() 2020-07-19 21:53:01 -04:00
nick black
5422268d6f
python: install notcurses-pydemo from setup.py 2020-07-19 21:41:02 -04:00
nick black
308b49da5a
v1.6.5 2020-07-19 21:16:53 -04:00
nick black
ce32705c40
fix python compilation 2020-07-19 21:14:22 -04:00
nick black
b2e924319b
v1.6.4 2020-07-19 20:09:14 -04:00
nick black
37ceb753bf
notcurses-view: print blitter name #805 2020-07-19 02:54:53 -04:00
nick black
a4ee5bd9c7
v1.6.3 2020-07-16 12:53:42 -04:00
nick black
3f544a4ed1
v1.6.2 2020-07-15 23:34:25 -04:00
nick black
1cc0371373
v1.6.1 2020-07-12 03:20:50 -04:00
nick black
4a97c139e6
add ncplane_putstr_stainable() #754 2020-07-10 23:43:47 -04:00
nick black
a6b002fa77 add ncdirect box-drawing functions #753 2020-07-10 18:41:25 -04:00
nick black
96c6dc8e16 add ncdirect_canopen_images() and ncdirect_canutf8() #753 2020-07-10 18:41:25 -04:00
nick black
c783244185 ncdirect_hline_interp(), ncdirect_vline_interp(), dirlines PoC #753 2020-07-10 18:41:25 -04:00
nick black
750f88b70a split direct into its own header 2020-07-10 18:41:25 -04:00
nick black
3ef1a3a07d
add notcurses_version_components() 2020-07-09 02:17:55 -04:00
Nick Black
162f9910c2
Tons of work on ncreel (#776)
Tons of work on ncreel (#627, #749, #694)
Improve reel demo: get input wired up once more, avoid the FPS demo at bottom, print pointer and line count in each tablet, use new ncreel API. Improve notcurses-ncreel explorer: kill memory leaks (#694), draw tablets better, use new ncreel API. Fix bug in ncreel core where cruft could be left on the screen, via a very gross brute force algorithm. I'll likely come back and make this a bit less ghastly in the future #749. Remove weird one-off input system from ncreel, residue from outcurses. Make some of the normalizing changes speced out in #627

* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* more terminal environment variable notes
* TERMS.md: add Sakura, st
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* reel: tighten up reel following redraw
* reel: fix upper-left corner of topless perimeter
* ncreel: print linecount, return clipped value
* reel: draw focused tablet relative to reel
* reel: brute force decruftification, how embarrassing #749
2020-07-09 02:02:23 -04:00
nick black
c809913c22
ncreel: remove {tbrl}off from USAGE, python, docs #627 2020-07-06 16:00:29 -04:00
nick black
b6330d142b
add notcurses_render_file() #491 2020-07-05 07:14:07 -04:00
nick black
284dfc4fad
v1.6.0 2020-07-04 22:40:32 -04:00
nick black
b829398538 ncdirect_render_image: accept ncalign_e parameter #759 2020-07-03 21:24:00 -04:00
nick black
7a022a4c76 ncneofetch: show palette via direct mode #750 2020-07-01 20:30:06 -04:00
nick black
4863c7e3df
ncdirect_image_render: restore NCBLIT_2x2 #751 2020-07-01 01:14:42 -04:00
nick black
6ab11e679f
v1.5.3 2020-06-28 16:18:57 -04:00
nick black
354152b48b
Redefine CELL_ALPHA_ in their natural forms
CELL_ALPHA_OPAQUE et al were defined as 0..3, meaning
CELL_ALPHA_SHIFT had to be used to compare them to their
channel representations. Instead, define them in said
representation outright, eliminating the need to shift while
retaining arithmetic properties, and zero initialization for
CELL_ALPHA_OPAQUE. Eliminate CELL_ALPHA_SHIFT #738.
2020-06-28 01:53:42 -04:00