You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KED/ked/ncurses/training/ctrl_and_sprecial_var/main.cpp

54 lines
1.2 KiB

#include <ncurses.h>
#define ctrl(x) (x & 0x1F) // Detection of ctrl+x presses please do not forget that in unix ctrl+c and ctrl+z are special commands.
int main(int argv, char ** argc)
{
//Init Ncurses
initscr();
noecho();
cbreak();
if(has_colors() == FALSE)
{
printf("Colors cnat be used in this terminal\n");
endwin();
}
start_color();
init_pair(1, COLOR_YELLOW, COLOR_BLACK);
init_pair(2, COLOR_RED, COLOR_BLACK);
init_pair(3, COLOR_BLUE, COLOR_WHITE);
// You can cumulate attributes in this speacil variable
attr_t emphasis = A_REVERSE | COLOR_PAIR(1);
attr_t console = A_REVERSE | COLOR_PAIR(3);
// Hee is the example use case if that given variable
attron(emphasis);
mvprintw(1,0,"emphasis with reversed color pair 1");
attroff(emphasis);
char c;
//Nwo if we want to create a char with attirbites on it ?
chtype cht = 'a' | A_UNDERLINE | COLOR_PAIR(2);
attron(console);
mvprintw(4,0,"Every char for ncurses is a chtype");
attroff(console);
mvaddch(5,0,cht);
while(c = getch())
{
attron(console);
mvprintw(10,0,"KEY Name : %s - 0x%02x\n", keyname(c), c);
if(c == ctrl('a'))
{
mvprintw(9,0,"ctrl-a detected");
}
}
endwin();
}