easydoneitCTui

Log

Files

Refs

LICENSE

tui.c (1946B)

     1 #include "libsheepyObject.h"
     2 #include <ncurses.h>
     3 
     4 WINDOW *initScreen(int *row, int *col) {
     5         WINDOW *w;
     6 
     7         w = initscr();
     8         pTestErrorCmd(w == NULL, XFAILURE);
     9 
    10         getmaxyx(stdscr,*row,*col);
    11 
    12         // prevent ctrl-c:
    13         raw();
    14         //cbreak();
    15         // dont echo what is typed
    16         noecho();
    17         // hide cursor
    18         curs_set(0);
    19 
    20         if ( has_colors() ) {
    21                 start_color();
    22                 /*  Initialize a bunch of colour pairs, where:
    23                     init_pair(pair number, foreground, background);
    24                     specifies the pair.                                  */
    25 
    26                 init_pair(1,  COLOR_BLUE,    COLOR_WHITE);
    27                 init_pair(2,  COLOR_GREEN,   COLOR_BLACK);
    28                 init_pair(3,  COLOR_YELLOW,  COLOR_BLACK);
    29                 init_pair(4,  COLOR_BLUE,    COLOR_BLACK);
    30                 init_pair(5,  COLOR_MAGENTA, COLOR_BLACK);
    31                 init_pair(6,  COLOR_CYAN,    COLOR_BLACK);
    32                 init_pair(7,  COLOR_BLUE,    COLOR_WHITE);
    33                 init_pair(8,  COLOR_WHITE,   COLOR_RED);
    34                 init_pair(9,  COLOR_BLACK,   COLOR_GREEN);
    35                 init_pair(10, COLOR_BLUE,    COLOR_YELLOW);
    36                 init_pair(11, COLOR_WHITE,   COLOR_BLUE);
    37                 init_pair(12, COLOR_WHITE,   COLOR_MAGENTA);
    38                 init_pair(13, COLOR_BLACK,   COLOR_CYAN);
    39                 init_pair(14, COLOR_RED,     COLOR_BLACK);
    40         }
    41 
    42         /* Get all the mouse events */
    43         // disable mouse to have copy/paste mousemask(ALL_MOUSE_EVENTS, NULL);
    44 
    45         // Enable F keys
    46         keypad(w, 1);
    47 
    48         return w;
    49 }
    50 
    51 void reInitScreen(WINDOW *w) {
    52         // prevent ctrl-c:
    53         raw();
    54         //cbreak();
    55         // dont echo what is typed
    56         noecho();
    57         // hide cursor
    58         curs_set(1);
    59         curs_set(0);
    60 
    61         /* Get all the mouse events */
    62         // disable mouse to have copy/paste mousemask(ALL_MOUSE_EVENTS, NULL);
    63 
    64         // Enable F keys
    65         keypad(w, 1);
    66 }
    67 
    68 void finalizeScreen(WINDOW *w) {
    69         delwin(w);
    70         endwin();
    71         refresh();
    72 }
    73 
    74 static void **subWins = NULL;
    75 
    76 void setSubwindows(void **subwins) {
    77         subWins = subwins;
    78 }
    79 
    80 void refreshAll(void) {
    81         forEachType(void, subWins, wd) {
    82                 wnoutrefresh(*wd);
    83         }
    84         doupdate();
    85         //refresh();
    86 }
    87 
    88 void eraseSubwindows(void) {
    89         forEachType(void, subWins, wd) {
    90                 werase(*wd);
    91         }
    92 }