README.md (4008B)
1 2 ## README 3 4 This is a fork of https://github.com/nsf/termbox 5 as of commit a04f34c11494a1dbfb6286fc95470dea4086c520 6 "Add a note: project is no longer maintained" 7 8 This README has been trimmed down to just the introduction and changelog 9 (below) which remain unchanged from the upstream version: 10 11 ## Termbox 12 13 Termbox is a library that provides minimalistic API which allows the 14 programmer to write text-based user interfaces. 15 16 It is based on a very simple abstraction. The main idea is viewing terminals as 17 a table of fixed-size cells and input being a stream of structured 18 messages. Would be fair to say that the model is inspired by windows console 19 API. The abstraction itself is not perfect and it may create problems in certain 20 areas. The most sensitive ones are copy & pasting and wide characters (mostly 21 Chinese, Japanese, Korean (CJK) characters). When it comes to copy & pasting, 22 the notion of cells is not really compatible with the idea of text. And CJK 23 runes often require more than one cell to display them nicely. Despite the 24 mentioned flaws, using such a simple model brings benefits in a form of 25 simplicity. And KISS principle is important. 26 27 At this point one should realize, that CLI (command-line interfaces) aren't 28 really a thing termbox is aimed at. But rather pseudo-graphical user interfaces. 29 30 ### Getting started 31 32 Termbox's interface only consists of 12 functions:: 33 34 ``` 35 tb_init() // initialization 36 tb_shutdown() // shutdown 37 38 tb_width() // width of the terminal screen 39 tb_height() // height of the terminal screen 40 41 tb_clear() // clear buffer 42 tb_present() // sync internal buffer with terminal 43 44 tb_put_cell() 45 tb_change_cell() 46 tb_blit() // drawing functions 47 48 tb_select_input_mode() // change input mode 49 tb_peek_event() // peek a keyboard event 50 tb_poll_event() // wait for a keyboard event 51 ``` 52 53 See src/termbox.h header file for full detail. 54 55 ### Changes 56 57 v1.1.2: 58 59 - Properly include changelog into the tagged version commit. I.e. I messed up 60 by tagging v1.1.1 and describing it in changelog after tagged commit. This 61 commit marked as v1.1.2 includes changelog for both v1.1.1 and v1.1.2. There 62 are no code changes in this minor release. 63 64 v1.1.1: 65 66 - Ncurses 6.1 compatibility fix. See https://github.com/nsf/termbox-go/issues/185. 67 68 v1.1.0: 69 70 - API: tb_width() and tb_height() are guaranteed to be negative if the termbox 71 wasn't initialized. 72 - API: Output mode switching is now possible, adds 256-color and grayscale color 73 modes. 74 - API: Better tb_blit() function. Thanks, Gunnar Zötl <gz@tset.de>. 75 - API: New tb_cell_buffer() function for direct back buffer access. 76 - API: Add new init function variants which allow using arbitrary file 77 descriptor as a terminal. 78 - Improvements in input handling code. 79 - Calling tb_shutdown() twice is detected and results in abort() to discourage 80 doing so. 81 - Mouse event handling is ported from termbox-go. 82 - Paint demo port from termbox-go to demonstrate mouse handling capabilities. 83 - Bug fixes in code and documentation. 84 85 v1.0.0: 86 87 - Remove the Go directory. People generally know about termbox-go and where 88 to look for it. 89 - Remove old terminfo-related python scripts and backport the new one from 90 termbox-go. 91 - Remove cmake/make-based build scripts, use waf. 92 - Add a simple terminfo database parser. Now termbox prefers using the 93 terminfo database if it can be found. Otherwise it still has a fallback 94 built-in database for most popular terminals. 95 - Some internal code cleanups and refactorings. The most important change is 96 that termbox doesn't leak meaningless exported symbols like 'keys' and 97 'funcs' now. Only the ones that have 'tb_' as a prefix are being exported. 98 - API: Remove unsigned ints, use plain ints instead. 99 - API: Rename UTF-8 functions 'utf8_*' -> 'tb_utf8_*'. 100 - API: TB_DEFAULT equals 0 now, it means you can use attributes alones 101 assuming the default color. 102 - API: Add TB_REVERSE. 103 - API: Add TB_INPUT_CURRENT. 104 - Move python module to its own directory and update it due to changes in the 105 termbox library.