1use libc::{c_int, wchar_t};
2use base::{WINDOW, cchar_t};
3
4#[inline(always)]
5pub unsafe fn WACS(c: u8) -> cchar_t {
6 *_nc_wacs.offset(c as isize)
7}
8
9#[link(name = "ncursesw")]
10extern "C" {
11 pub static _nc_wacs: *const cchar_t;
12
13 pub fn add_wch(wch: *const cchar_t) -> c_int;
14 pub fn wadd_wch(win: *mut WINDOW, wch: *const cchar_t) -> c_int;
15 pub fn mvadd_wch(y: c_int, x: c_int, wch: *const cchar_t) -> c_int;
16 pub fn mavwadd_wch(win: *mut WINDOW, y: c_int, x: c_int, wch: *const cchar_t) -> c_int;
17 pub fn echo_wchar(wch: *const cchar_t) -> c_int;
18 pub fn wecho_wchar(win: *mut WINDOW, wch: *const cchar_t) -> c_int;
19
20 pub fn bkgrnd(wch: *const cchar_t) -> c_int;
21 pub fn wbkgrnd(win: *mut WINDOW, wch: *const cchar_t) -> c_int;
22 pub fn bkgrndset(wch: *const cchar_t);
23 pub fn wbkgrndset(win: *mut WINDOW, wch: *const cchar_t) -> c_int;
24 pub fn getbkgrnd(wch: *mut cchar_t) -> c_int;
25 pub fn wgetbkgrnd(win: *mut WINDOW, wch: *mut cchar_t) -> c_int;
26
27 pub fn get_wch(wch: *mut wchar_t) -> c_int;
28 pub fn wget_wch(win: *mut WINDOW, wch: *mut wchar_t) -> c_int;
29 pub fn mvget_wch(y: c_int, x: c_int, wch: *mut wchar_t) -> c_int;
30 pub fn mvwget_wch(win: *mut WINDOW, y: c_int, x: c_int, wch: *mut wchar_t) -> c_int;
31 pub fn unget_wch(wch: wchar_t) -> c_int;
32
33 pub fn in_wch(wcval: *mut cchar_t) -> c_int;
34 pub fn mvin_wch(y: c_int, x: c_int, wcval: *mut cchar_t) -> c_int;
35 pub fn mvwin_wch(win: *mut WINDOW, y: c_int, x: c_int, wcval: *mut cchar_t) -> c_int;
36 pub fn win_wch(win: *mut WINDOW, wcval: *mut cchar_t) -> c_int;
37
38 pub fn ins_wstr(wstr: *const wchar_t) -> c_int;
39 pub fn ins_nwstr(wstr: *const wchar_t, n: c_int) -> c_int;
40 pub fn wins_wstr(win: *mut WINDOW, wstr: *const wchar_t) -> c_int;
41 pub fn wins_nwstr(win: *mut WINDOW, wstr: *const wchar_t, n: c_int) -> c_int;
42 pub fn mvins_wstr(y: c_int, x: c_int, wstr: *const wchar_t) -> c_int;
43 pub fn mvins_nwstr(y: c_int, x: c_int, wstr: *const wchar_t, n: c_int) -> c_int;
44 pub fn mvwins_wstr(win: *mut WINDOW, y: c_int, x: c_int, wstr: *const wchar_t) -> c_int;
45 pub fn mvwins_nwstr(win: *mut WINDOW, y: c_int, x: c_int, wstr: *const wchar_t, n: c_int) -> c_int;
46
47 pub fn addwstr(wstr: *const wchar_t) -> c_int;
48 pub fn addnwstr(wstr: *const wchar_t, n: c_int) -> c_int;
49 pub fn waddwstr(win: *mut WINDOW, wstr: *const wchar_t) -> c_int;
50 pub fn waddnwstr(win: *mut WINDOW, wstr: *const wchar_t) -> c_int;
51 pub fn mvaddwstr(y: c_int, x: c_int, wstr: *const wchar_t) -> c_int;
52 pub fn mvaddnwstr(y: c_int, x: c_int, wstr: *const wchar_t, n: c_int) -> c_int;
53 pub fn mvwaddwstr(win: *mut WINDOW, y: c_int, x: c_int, wstr: *const wchar_t) -> c_int;
54 pub fn mvwaddnwstr(win: *mut WINDOW, y: c_int, x: c_int, wstr: *const wchar_t, n: c_int) -> c_int;
55
56 pub fn inwstr(string: *mut wchar_t) -> c_int;
57 pub fn innwstr(string: *mut wchar_t, n: c_int) -> c_int;
58 pub fn winwstr(win: *mut WINDOW, string: *mut wchar_t) -> c_int;
59 pub fn winnwstr(win: *mut WINDOW, string: *mut wchar_t, n: c_int) -> c_int;
60 pub fn mvinwstr(y: c_int, x: c_int, string: *mut wchar_t) -> c_int;
61 pub fn mvinnwstr(y: c_int, x: c_int, string: *mut wchar_t, n: c_int) -> c_int;
62 pub fn mvwinwstr(win: *mut WINDOW, y: c_int, x: c_int, string: *mut wchar_t) -> c_int;
63 pub fn mvwinnwstr(win: *mut WINDOW, y: c_int, x: c_int, string: *mut wchar_t, n: c_int) -> c_int;
64
65 pub fn border_set(ls: *const cchar_t, rs: *const cchar_t, ts: *const cchar_t, bs: *const cchar_t, tl: *const cchar_t, tr: *const cchar_t, bl: *const cchar_t, br: *const cchar_t) -> c_int;
66 pub fn wborder_set(win: *mut WINDOW, ls: *const cchar_t, rs: *const cchar_t, ts: *const cchar_t, bs: *const cchar_t, tl: *const cchar_t, tr: *const cchar_t, bl: *const cchar_t, br: *const cchar_t) -> c_int;
67 pub fn box_set(win: *mut WINDOW, verch: *const cchar_t, horch: *const cchar_t) -> c_int;
68 pub fn hline_set(wch: *const cchar_t, n: c_int) -> c_int;
69 pub fn whline_set(win: *mut WINDOW, wch: *const cchar_t, n: c_int) -> c_int;
70 pub fn mvhline_set(y: c_int, x: c_int, wch: *const cchar_t, n: c_int) -> c_int;
71 pub fn mvwhline_set(win: *mut WINDOW, y: c_int, x: c_int, wch: *const cchar_t, n: c_int) -> c_int;
72 pub fn vline_set(wch: *const cchar_t, n: c_int) -> c_int;
73 pub fn wvline_set(win: *mut WINDOW, wch: *const cchar_t, n: c_int) -> c_int;
74 pub fn mvvline_set(y: c_int, x: c_int, wch: *const cchar_t, n: c_int) -> c_int;
75 pub fn mvwvline_set(win: *mut WINDOW, y: c_int, x: c_int, wch: *const cchar_t, n: c_int) -> c_int;
76}