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