1 #include <stdlib.h>
2 #include <locale.h>
3 #include <notcurses/direct.h>
4
main(void)5 int main(void){
6 if(!setlocale(LC_ALL, "")){
7 return EXIT_FAILURE;
8 }
9 uint64_t flags = NCDIRECT_OPTION_DRAIN_INPUT;
10 struct ncdirect* n = ncdirect_core_init(NULL, stdout, flags);
11 for(int i = 1 ; i < 15 ; ++i){
12 uint64_t c1 = 0, c2 = 0;
13 ncchannels_set_fg_rgb8(&c1, 0x0, 0x10 * i, 0xff);
14 ncchannels_set_fg_rgb8(&c2, 0x10 * i, 0x0, 0x0);
15 if(ncdirect_hline_interp(n, "-", i, c1, c2) < i){
16 ncdirect_stop(n);
17 return EXIT_FAILURE;
18 }
19 ncdirect_set_fg_default(n);
20 ncdirect_set_bg_default(n);
21 putchar('\n');
22 }
23 for(int i = 1 ; i < 15 ; ++i){
24 uint64_t c1 = 0, c2 = 0;
25 ncchannels_set_fg_rgb8(&c1, 0x0, 0x10 * i, 0xff);
26 ncchannels_set_fg_rgb8(&c2, 0x10 * i, 0x0, 0x0);
27 if(ncdirect_vline_interp(n, "|", i, c1, c2) < i){
28 ncdirect_stop(n);
29 return EXIT_FAILURE;
30 }
31 ncdirect_set_fg_default(n);
32 ncdirect_set_bg_default(n);
33 if(i < 14){
34 if(ncdirect_cursor_up(n, i)){
35 ncdirect_stop(n);
36 return EXIT_FAILURE;
37 }
38 }
39 }
40 printf("\n");
41 uint64_t ul, ur, ll, lr;
42 ul = ur = ll = lr = 0;
43 ncchannels_set_fg_rgb8(&ul, 0xff, 0x0, 0xff);
44 ncchannels_set_fg_rgb8(&ur, 0x0, 0xff, 0x0);
45 ncchannels_set_fg_rgb8(&ll, 0x0, 0x0, 0xff);
46 ncchannels_set_fg_rgb8(&lr, 0xff, 0x0, 0x0);
47 if(ncdirect_rounded_box(n, ul, ur, ll, lr, 10, 10, 0) < 0){
48 ncdirect_stop(n);
49 return EXIT_FAILURE;
50 }
51 ncdirect_cursor_up(n, 9);
52 if(ncdirect_double_box(n, ul, ur, ll, lr, 10, 20, 0) < 0){
53 ncdirect_stop(n);
54 return EXIT_FAILURE;
55 }
56 printf("\n");
57 if(ncdirect_stop(n)){
58 return EXIT_FAILURE;
59 }
60 return EXIT_SUCCESS;
61 }
62