本文整理汇总了C++中cbreak函数的典型用法代码示例。如果您正苦于以下问题:C++ cbreak函数的具体用法?C++ cbreak怎么用?C++ cbreak使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cbreak函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ncurses_init
int
ncurses_init()
{
int bg, fg;
const char *term;
// Set Locale
setlocale(LC_CTYPE, "");
// Initialize curses
if (!initscr()) {
fprintf(stderr, "Unable to initialize ncurses mode.\n");
return -1;
}
// Check if user wants a black background
if (setting_has_value(SETTING_BACKGROUND, "dark")) {
assume_default_colors(COLOR_WHITE, COLOR_BLACK);
} else {
use_default_colors();
}
// Enable Colors
start_color();
cbreak();
// Dont write user input on screen
noecho();
// Hide the cursor
curs_set(0);
// Only delay ESC Sequences 25 ms (we dont want Escape sequences)
ESCDELAY = 25;
// Redefine some keys
term = getenv("TERM");
if (term
&& (!strcmp(term, "xterm") || !strcmp(term, "xterm-color") || !strcmp(term, "vt220"))) {
define_key("\033[H", KEY_HOME);
define_key("\033[F", KEY_END);
define_key("\033OP", KEY_F(1));
define_key("\033OQ", KEY_F(2));
define_key("\033OR", KEY_F(3));
define_key("\033OS", KEY_F(4));
define_key("\033[11~", KEY_F(1));
define_key("\033[12~", KEY_F(2));
define_key("\033[13~", KEY_F(3));
define_key("\033[14~", KEY_F(4));
define_key("\033[17;2~", KEY_F(18));
}
if (setting_has_value(SETTING_BACKGROUND, "dark")) {
fg = COLOR_WHITE;
bg = COLOR_BLACK;
} else {
fg = COLOR_DEFAULT;
bg = COLOR_DEFAULT;
}
// Initialize colorpairs
init_pair(CP_CYAN_ON_DEF, COLOR_CYAN, bg);
init_pair(CP_YELLOW_ON_DEF, COLOR_YELLOW, bg);
init_pair(CP_MAGENTA_ON_DEF, COLOR_MAGENTA, bg);
init_pair(CP_GREEN_ON_DEF, COLOR_GREEN, bg);
init_pair(CP_RED_ON_DEF, COLOR_RED, bg);
init_pair(CP_BLUE_ON_DEF, COLOR_BLUE, bg);
init_pair(CP_WHITE_ON_DEF, COLOR_WHITE, bg);
init_pair(CP_DEF_ON_CYAN, fg, COLOR_CYAN);
init_pair(CP_DEF_ON_BLUE, fg, COLOR_BLUE);
init_pair(CP_WHITE_ON_BLUE, COLOR_WHITE, COLOR_BLUE);
init_pair(CP_BLACK_ON_CYAN, COLOR_BLACK, COLOR_CYAN);
init_pair(CP_WHITE_ON_CYAN, COLOR_WHITE, COLOR_CYAN);
init_pair(CP_YELLOW_ON_CYAN, COLOR_YELLOW, COLOR_CYAN);
init_pair(CP_BLUE_ON_CYAN, COLOR_BLUE, COLOR_CYAN);
init_pair(CP_BLUE_ON_WHITE, COLOR_BLUE, COLOR_WHITE);
init_pair(CP_CYAN_ON_WHITE, COLOR_CYAN, COLOR_WHITE);
init_pair(CP_CYAN_ON_BLACK, COLOR_CYAN, COLOR_BLACK);
return 0;
}
示例2: main
int main(int argc, char *argv[]) {
int i, option, task_list_size;
int cflag = 0, lflag = 0, dflag = 0, iflag = 0;
char *cvalue, *dvalue;
char *tasks[100];
FILE *task_list;
while((option = getopt(argc, argv, "ilc:d:")) != -1) {
switch(option) {
case 'i':
iflag = 1;
break;
case 'c':
cflag = 1;
cvalue = optarg;
break;
case 'd':
dflag = 1;
dvalue = optarg;
break;
case 'l':
lflag = 1;
break;
default:
fprintf(stderr, "Usage: %s [-c task] [-d task] [-l] [-i]\n", argv[0]);
exit(EXIT_FAILURE);
}
}
if(iflag) {
WINDOW *window;
int startx = 5, starty = 3, c, highlight;
char buffer[100];
initscr();
clear();
raw();
noecho();
cbreak();
curs_set(0);
startx = (80 - WIDTH);
starty = (24 - HEIGHT);
window = newwin(HEIGHT, WIDTH, starty, startx);
keypad(window, TRUE);
while(1) {
mvwprintw(window, starty, startx, "TODOs ('c' to add, 'd' to remove)");
wclrtoeol(window);
if((task_list_size = read_tasks(tasks, task_list))) {
for(i = 0; i < task_list_size; i++) {
if(highlight == i) {
wattron(window, A_REVERSE);
mvwprintw(window, starty + (i + 2), startx, "%d. %s", i + 1, tasks[i]);
wattroff(window, A_REVERSE);
} else {
mvwprintw(window, starty + (i + 2), startx, "%d. %s", i + 1, tasks[i]);
}
wclrtoeol(window);
}
wclrtobot(window);
} else {
mvwprintw(window, starty + 2, startx, "None!");
wclrtoeol(window);
wclrtobot(window);
}
wrefresh(window);
c = wgetch(window);
switch(c) {
case KEY_UP:
if(highlight == 0) {
highlight = task_list_size - 1;
} else {
--highlight;
}
break;
case KEY_DOWN:
if(highlight == task_list_size - 1) {
highlight = 0;
} else {
++highlight;
}
break;
case 'd':
if(delete_task(tasks[highlight], task_list) == 1) {
--highlight;
}
break;
case 'c':
mvwprintw(window, starty, startx, "Creating task: ");
wclrtoeol(window);
echo();
if(wgetstr(window, buffer) == OK) {
if(create_task(buffer, task_list) == 1) {
//.........这里部分代码省略.........
示例3: spitm
/**
* Main function. Initializes and starts the game
*/
int spitm() {listP mao1,mao2,pl11,pl12,pl13,pl14,pl21,pl22,pl23,pl24;
int stock1[stk],stock2[stk],baralho[(num*2)-2],pc1[sz],pc2[sz],pc3[sz];
mao1=mao2=pl11=pl12=pl13=pl14=pl21=pl22=pl23=pl24=NULL;
int vencedor=0,turno=1,o,d,i=0,n=0,x=(LINES/2),y=(COLS/2);
initscr();
cbreak();
keypad(stdscr,TRUE);
noecho();
start_color();
init_pair(1,COLOR_WHITE,COLOR_GREEN);
init_pair(2,COLOR_RED,COLOR_GREEN);
bkgd(COLOR_PAIR(1));
attron(COLOR_PAIR(2));
limpa(pc1,13);
limpa(pc2,13);
limpa(pc3,13);
shuff(baralho);
atoa(baralho,stock1,20);
atoa(baralho,stock2,20);
mao1=atod(baralho,mao1,5);
mao2=atod(baralho,mao2,5);
while(!i) {
if(stock1[0] > stock2[0]) {
turno=1;i++;
};break;
if(stock1[0] < stock2[0]) {
turno=2;
i++;
};break;
barStk(stock1,stk);
barStk(stock2,stk);
};
while(vencedor==0) {
while(elemN(mao1)<5)
mao1=atod(baralho,mao1,1);
while(turno==1) {
clear();
mostrac(mao1,pl11, pl12,pl13, pl14, mao2, pl21, pl22, pl23,pl24, pc1, pc2, pc3, stock1, stock2,turno);
echo();
mvprintw(22,0,"Insira origem(1-10) e destino (1-7):__ __");
mvscanw(22,36," %d %d",&o,&d);
if(o>0 && o<6) {
if(d==1) {
if (showi(mao1,elemN(mao1)-o) == topAr(pc1)+1) {
dtoa(mao1,elemN(mao1)-o,pc1);
};
};
if(d==2) {
if (showi(mao1,elemN(mao1)-o) == topAr(pc2)+1) {
dtoa(mao1,elemN(mao1)-o,pc2);
};
};
if(d==3) {
if (showi(mao1,elemN(mao1)-o) == topAr(pc3)+1) {
dtoa(mao1,elemN(mao1)-o,pc3);
};
};
if(d==4) {
pl11=poe(pl11,showi(mao1,elemN(mao1)-o));
if(elemN(mao1) == o) {
mao1=rmUlt(mao1);turno=2;
} else {
rmI(mao1,elemN(mao1)-(o));
turno=2;
};
};
if(d==5) {
pl12=poe(pl12,showi(mao1,elemN(mao1)-o));
if(elemN(mao1) == o) {
mao1=rmUlt(mao1);
turno=2;
} else {
rmI(mao1,elemN(mao1)-(o));
turno=2;
};
};
if(d==6) {
pl13=poe(pl13,showi(mao1,elemN(mao1)-o));
if(elemN(mao1) == o) {
mao1=rmUlt(mao1);
turno=2;
} else {
rmI(mao1,elemN(mao1)-(o));
turno=2;
};
};
if(d==7) {
pl14=poe(pl14,showi(mao1,elemN(mao1)-o));
if(elemN(mao1) == o) {
mao1=rmUlt(mao1);
turno=2;
} else {
rmI(mao1,elemN(mao1)-(o));
//.........这里部分代码省略.........
示例4: init_display
void
init_display(void)
{
bool no_display = !!getenv("TIG_NO_DISPLAY");
const char *term;
int x, y;
die_callback = done_display;
/* XXX: Restore tty modes and let the OS cleanup the rest! */
if (atexit(done_display))
die("Failed to register done_display");
/* Initialize the curses library */
if (!no_display && isatty(STDIN_FILENO)) {
cursed = !!initscr();
opt_tty = stdin;
} else {
/* Leave stdin and stdout alone when acting as a pager. */
FILE *out_tty;
opt_tty = fopen("/dev/tty", "r+");
out_tty = no_display ? fopen("/dev/null", "w+") : opt_tty;
if (!opt_tty || !out_tty)
die("Failed to open /dev/tty");
cursed = !!newterm(NULL, out_tty, opt_tty);
}
if (!cursed)
die("Failed to initialize curses");
nonl(); /* Disable conversion and detect newlines from input. */
cbreak(); /* Take input chars one at a time, no wait for \n */
noecho(); /* Don't echo input */
leaveok(stdscr, false);
init_colors();
getmaxyx(stdscr, y, x);
status_win = newwin(1, x, y - 1, 0);
if (!status_win)
die("Failed to create status window");
/* Enable keyboard mapping */
keypad(status_win, true);
wbkgdset(status_win, get_line_attr(NULL, LINE_STATUS));
enable_mouse(opt_mouse);
#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20080119)
set_tabsize(opt_tab_size);
#else
TABSIZE = opt_tab_size;
#endif
term = getenv("XTERM_VERSION") ? NULL : getenv("COLORTERM");
if (term && !strcmp(term, "gnome-terminal")) {
/* In the gnome-terminal-emulator, the warning message
* shown when scrolling up one line while the cursor is
* on the first line followed by scrolling down one line
* corrupts the status line. This is fixed by calling
* wclear. */
use_scroll_status_wclear = true;
use_scroll_redrawwin = false;
} else if (term && !strcmp(term, "xrvt-xpm")) {
/* No problems with full optimizations in xrvt-(unicode)
* and aterm. */
use_scroll_status_wclear = use_scroll_redrawwin = false;
} else {
/* When scrolling in (u)xterm the last line in the
* scrolling direction will update slowly. */
use_scroll_redrawwin = true;
use_scroll_status_wclear = false;
}
}
示例5: WinMain
//.........这里部分代码省略.........
}
// Ingore unknown options.
if (!arg_handled) {
--saved_argc;
++saved_argv;
}
}
}
if (!assure_dir_exist(FILENAMES["user_dir"].c_str())) {
printf("Can't open or create %s. Check permissions.\n",
FILENAMES["user_dir"].c_str());
exit(1);
}
setupDebug();
if (setlocale(LC_ALL, "") == NULL) {
DebugLog(D_WARNING, D_MAIN) << "Error while setlocale(LC_ALL, '').";
}
// Options strings loaded with system locale
initOptions();
load_options();
set_language(true);
if (initscr() == NULL) { // Initialize ncurses
DebugLog( D_ERROR, DC_ALL ) << "initscr failed!";
return 1;
}
init_interface();
noecho(); // Don't echo keypresses
cbreak(); // C-style breaks (e.g. ^C to SIGINT)
keypad(stdscr, true); // Numpad is numbers
#if !(defined TILES || defined _WIN32 || defined WINDOWS)
// For tiles or windows, this is handled already in initscr().
init_colors();
#endif
// curs_set(0); // Invisible cursor
set_escdelay(10); // Make escape actually responsive
std::srand(seed);
g = new game;
// First load and initialize everything that does not
// depend on the mods.
try {
g->load_static_data();
if (verifyexit) {
if(g->game_error()) {
exit_handler(-999);
}
exit_handler(0);
}
if (check_all_mods) {
// Here we load all the mods and check their
// consistency (both is done in check_all_mod_data).
g->init_ui();
popup_nowait("checking all mods");
g->check_all_mod_data();
if(g->game_error()) {
exit_handler(-999);
}
// At this stage, the mods (and core game data)
// are find and we could start playing, but this
示例6: ccbi_cbreak
uint8_t ccbi_cbreak(int on) { return chk(on ? nocbreak() : cbreak()); }
示例7: main
int
main(int argc, char *argv[])
{
time_t now;
struct tm *tm;
long t, a;
int i, j, s, k;
int count = 0;
FILE *ofp = stdout;
FILE *ifp = stdin;
bool scrol = FALSE;
setlocale(LC_ALL, "");
CATCHALL(sighndl);
while ((k = getopt(argc, argv, "sn")) != -1) {
switch (k) {
case 's':
scrol = TRUE;
break;
case 'n':
ifp = fopen("/dev/null", "r");
redirected = TRUE;
break;
default:
usage();
}
}
if (optind < argc) {
count = atoi(argv[optind++]);
assert(count >= 0);
}
if (optind < argc)
usage();
if (redirected) {
char *name = getenv("TERM");
if (name == 0
|| newterm(name, ofp, ifp) == 0) {
fprintf(stderr, "cannot open terminal\n");
ExitProgram(EXIT_FAILURE);
}
} else {
initscr();
}
cbreak();
noecho();
nodelay(stdscr, 1);
curs_set(0);
hascolor = has_colors();
if (hascolor) {
short bg = COLOR_BLACK;
start_color();
#if HAVE_USE_DEFAULT_COLORS
if (use_default_colors() == OK)
bg = -1;
#endif
init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED);
init_pair(PAIR_OTHERS, COLOR_RED, bg);
init_pair(PAIR_FRAMES, COLOR_WHITE, bg);
(void) attrset(COLOR_PAIR(PAIR_OTHERS));
}
restart:
for (j = 0; j < 5; j++)
older[j] = newer[j] = next[j] = 0;
clear();
drawbox(FALSE);
do {
char buf[30];
time(&now);
tm = localtime(&now);
mask = 0;
set(tm->tm_sec % 10, 0);
set(tm->tm_sec / 10, 4);
set(tm->tm_min % 10, 10);
set(tm->tm_min / 10, 14);
set(tm->tm_hour % 10, 20);
set(tm->tm_hour / 10, 24);
set(10, 7);
set(10, 17);
for (k = 0; k < 6; k++) {
if (scrol) {
for (i = 0; i < 5; i++)
newer[i] = (newer[i] & ~mask) | (newer[i + 1] & mask);
newer[5] = (newer[5] & ~mask) | (next[k] & mask);
} else
newer[k] = (newer[k] & ~mask) | (next[k] & mask);
next[k] = 0;
for (s = 1; s >= 0; s--) {
standt(s);
//.........这里部分代码省略.........
示例8: main
//.........这里部分代码省略.........
exit(1);
}
wcommand = (wchar_t*)malloc((wcommand_characters+1) * sizeof(wcommand));
if(wcommand == NULL) {
fprintf(stderr, "Unicode Handling Error (malloc)\n");
exit(1);
}
mbstowcs(wcommand, command, wcommand_characters+1);
wcommand_columns = wcswidth(wcommand, -1);
get_terminal_size();
/* Catch keyboard interrupts so we can put tty back in a sane state. */
signal(SIGINT, die);
signal(SIGTERM, die);
signal(SIGHUP, die);
signal(SIGWINCH, winch_handler);
/* Set up tty for curses use. */
curses_started = 1;
initscr();
if (option_color) {
if (has_colors()) {
start_color();
use_default_colors();
init_ansi_colors();
} else
option_color = 0;
}
nonl();
noecho();
cbreak();
if (precise_timekeeping)
next_loop = get_time_usec();
for (;;) {
time_t t = time(NULL);
char *ts = ctime(&t);
int tsl = strlen(ts);
char *header;
FILE *p;
int x, y;
int oldeolseen = 1;
if (screen_size_changed) {
get_terminal_size();
resizeterm(height, width);
clear();
/* redrawwin(stdscr); */
screen_size_changed = 0;
first_screen = 1;
}
if (show_title) {
// left justify interval and command,
// right justify time, clipping all to fit window width
int hlen = asprintf(&header, "Every %.1fs: ", interval);
// the rules:
// width < tsl : print nothing
// width < tsl + hlen + 1: print ts
// width = tsl + hlen + 1: print header, ts
示例9: ncurses_setup
static WINDOW *
ncurses_setup(void){
struct ncurses_input_marshal *nim;
const char *errstr = NULL;
WINDOW *w = NULL;
fprintf(stderr,"Entering ncurses mode...\n");
if(initscr() == NULL){
fprintf(stderr,"Couldn't initialize ncurses\n");
return NULL;
}
if(cbreak() != OK){
errstr = "Couldn't disable input buffering\n";
goto err;
}
if(noecho() != OK){
errstr = "Couldn't disable input echoing\n";
goto err;
}
if(intrflush(stdscr,TRUE) != OK){
errstr = "Couldn't set flush-on-interrupt\n";
goto err;
}
if(scrollok(stdscr,FALSE) != OK){
errstr = "Couldn't disable scrolling\n";
goto err;
}
if(nonl() != OK){
errstr = "Couldn't disable nl translation\n";
goto err;
}
if(start_color() != OK){
errstr = "Couldn't initialize ncurses color\n";
goto err;
}
if(use_default_colors()){
errstr = "Couldn't initialize ncurses colordefs\n";
goto err;
}
w = stdscr;
keypad(stdscr,TRUE);
if(nodelay(stdscr,FALSE) != OK){
errstr = "Couldn't set blocking input\n";
goto err;
}
if(preserve_colors() != OK){
errstr = "Couldn't preserve initial colors\n";
goto err;
}
if(setup_extended_colors() != OK){
errstr = "Couldn't initialize extended colors\n";
assert(init_pair(BORDER_COLOR,COLOR_GREEN,-1) == OK);
assert(init_pair(HEADER_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(FOOTER_COLOR,COLOR_YELLOW,-1) == OK);
assert(init_pair(DBORDER_COLOR,COLOR_WHITE,-1) == OK);
assert(init_pair(DHEADING_COLOR,COLOR_WHITE,-1) == OK);
assert(init_pair(UBORDER_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UHEADING_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(PBORDER_COLOR,COLOR_YELLOW,-1) == OK);
assert(init_pair(PHEADING_COLOR,COLOR_RED,-1) == OK);
assert(init_pair(BULKTEXT_COLOR,COLOR_WHITE,-1) == OK);
assert(init_pair(BULKTEXT_ALTROW_COLOR,COLOR_WHITE,-1) == OK);
assert(init_pair(IFACE_COLOR,COLOR_WHITE,-1) == OK);
assert(init_pair(LCAST_COLOR,COLOR_CYAN,-1) == OK); // will use A_BOLD via OUR_BOLD
assert(init_pair(UCAST_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(MCAST_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(BCAST_COLOR,COLOR_MAGENTA,-1) == OK);
assert(init_pair(LSELECTED_COLOR,-1,COLOR_CYAN) == OK);
assert(init_pair(USELECTED_COLOR,-1,COLOR_CYAN) == OK);
assert(init_pair(MSELECTED_COLOR,-1,COLOR_BLUE) == OK);
assert(init_pair(BSELECTED_COLOR,-1,COLOR_MAGENTA) == OK);
assert(init_pair(LCAST_L3_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UCAST_L3_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(MCAST_L3_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(BCAST_L3_COLOR,COLOR_MAGENTA,-1) == OK);
assert(init_pair(LCAST_RES_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UCAST_RES_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(MCAST_RES_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(BCAST_RES_COLOR,COLOR_MAGENTA,-1) == OK);
assert(init_pair(LCAST_ALTROW_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UCAST_ALTROW_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(MCAST_ALTROW_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(BCAST_ALTROW_COLOR,COLOR_MAGENTA,-1) == OK);
assert(init_pair(LCAST_ALTROW_L3_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UCAST_ALTROW_L3_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(MCAST_ALTROW_L3_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(BCAST_ALTROW_L3_COLOR,COLOR_MAGENTA,-1) == OK);
assert(init_pair(LCAST_ALTROW_RES_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UCAST_ALTROW_RES_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(MCAST_ALTROW_RES_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(BCAST_ALTROW_RES_COLOR,COLOR_MAGENTA,-1) == OK);
assert(init_pair(SUBDISPLAY_COLOR,COLOR_WHITE,-1) == OK);
}else{
assert(init_pair(BORDER_COLOR,COLOR_ALUMINIUM,-1) == OK);
assert(init_pair(HEADER_COLOR,COLOR_BLUE,-1) == OK);
assert(init_pair(FOOTER_COLOR,COLOR_YELLOW,-1) == OK);
assert(init_pair(DBORDER_COLOR,COLOR_ALUMINIUM,-1) == OK);
assert(init_pair(DHEADING_COLOR,COLOR_WHITE,-1) == OK);
assert(init_pair(UBORDER_COLOR,COLOR_CYAN,-1) == OK);
assert(init_pair(UHEADING_COLOR,COLOR_ORANGE,-1) == OK);
//.........这里部分代码省略.........
示例10: start_ncurses
int start_ncurses(const char *prog_name, const char *real_prog_name)
{
#if defined(DJGPP) || defined(__MINGW32__)
if(initscr()==NULL)
{
log_critical("initscr() has failed. Exiting\n");
printf("initscr() has failed. Exiting\n");
printf("Press Enter key to quit.\n");
(void)getchar();
return 1;
}
#else
get_newterm(real_prog_name);
if(screenp==NULL)
{
log_critical("Terminfo file is missing.\n");
#if defined(__CYGWIN__)
printf("The terminfo file '63\\cygwin' is missing.\n");
#else
printf("Terminfo file is missing.\n");
#endif
printf("Extract all files and subdirectories before running the program.\n");
printf("Press Enter key to quit.\n");
(void)getchar();
return 1;
}
#endif
/* Should solve a problem with users who redefined the colors */
if(has_colors())
{
start_color();
#ifdef HAVE_ASSUME_DEFAULT_COLORS
assume_default_colors(COLOR_WHITE,COLOR_BLACK);
#endif
init_pair(1, COLOR_RED, COLOR_BLACK);
init_pair(2, COLOR_GREEN, COLOR_BLACK);
}
noecho();
#ifndef DJGPP
nonl(); /*don't use for Dos version but enter will work with it... dilema */
#endif
/* intrflush(stdscr, FALSE); */
cbreak();
curs_set(0);
{
int quit=0;
while(LINES>=8 && LINES<MINIMUM_LINES && quit==0)
{
aff_copy(stdscr);
wmove(stdscr,4,0);
wprintw(stdscr,"%s need %d lines to work.", prog_name, MINIMUM_LINES);
wmove(stdscr,5,0);
wprintw(stdscr,"Please enlarge the terminal.");
wmove(stdscr,LINES-2,0);
wattrset(stdscr, A_REVERSE);
waddstr(stdscr,"[ Quit ]");
wattroff(stdscr, A_REVERSE);
wrefresh(stdscr);
switch(wgetch(stdscr))
{
case 'q':
case 'Q':
case KEY_ENTER:
#ifdef PADENTER
case PADENTER:
#endif
case '\n':
case '\r':
quit=1;
break;
}
}
}
if(LINES < MINIMUM_LINES)
{
end_ncurses();
printf("%s need %d lines to work.\nPlease enlarge the terminal and restart %s.\n", prog_name, MINIMUM_LINES, prog_name);
log_critical("Terminal has only %d lines\n",LINES);
return 1;
}
return 0;
}
示例11: main
int main()
{
FILE * pwrite = fopen("/dev/rfcomm0", "w");
if(pwrite == NULL){
printf("couldn't open rfcomm\n");
return 0;
}
int c;
initscr();
clear();
noecho();
cbreak(); /* Line buffering disabled. pass on everything */
keypad(stdscr, TRUE);
mvprintw(0, 0, "Use arrow keys to choose direction of motion");
mvprintw(1, 0, "Press the same key to undo your selection");
mvprintw(2, 0, "Spacebar switches between high/low speed");
refresh();
while(1)
{ c = getch();
// clear();
switch(c)
{
case ' ':
fputc(' ', pwrite);
fflush(pwrite);
mvprintw(5, 0, "SPEED");
clrtoeol();
break;
case KEY_UP:
fputc('o', pwrite);
fflush(pwrite);
mvprintw(5, 0, "UP");
clrtoeol();
break;
case KEY_DOWN:
fputc('c', pwrite);
fflush(pwrite);
mvprintw(5, 0, "DOWN");
clrtoeol();
break;
case KEY_LEFT:
fputc('r', pwrite);
fflush(pwrite);
mvprintw(5, 0, "LEFT");
clrtoeol();
break;
case KEY_RIGHT:
fputc('l', pwrite);
fflush(pwrite);
mvprintw(5, 0, "RIGHT");
clrtoeol();
break;
default:
mvprintw(5, 0, "Undefined: %3d '%c'", c, c);
clrtoeol();
break;
}
refresh();
}
clrtoeol();
refresh();
endwin();
return 0;
}
示例12: init_gcu
//.........这里部分代码省略.........
arg_sound = FALSE;
}
/* Change setting */
use_sound = arg_sound;
}
#endif
#ifdef USE_GRAPHICS
/* Try graphics */
if (arg_graphics)
{
/* if USE_NCURSES_ACS is defined, we can do something with graphics in curses! */
#ifdef USE_NCURSES_ACS
use_graphics = TRUE;
#endif
}
#endif /* USE_GRAPHICS */
/*** Low level preparation ***/
#ifdef USE_GETCH
/* Paranoia -- Assume no waiting */
nodelay(stdscr, FALSE);
#endif
/* Prepare */
cbreak();
noecho();
nonl();
raw();
/* Extract the game keymap */
keymap_game_prepare();
/*** Now prepare the term(s) ***/
for (i = 0; i < num_term; i++)
{
int rows, cols;
int y, x;
switch (i)
{
/* Upper left */
case 0: rows = 24;
cols = 80;
y = x = 0;
break;
/* Lower left */
case 1: rows = LINES - 25;
cols = 80;
y = 24;
x = 0;
break;
/* Upper right */
case 2: rows = 24;
cols = COLS - 81;
y = 0;
x = 81;
示例13: pp_curs_cbreak
cell pp_curs_cbreak(cell x) {
if (!Running) return UNSPECIFIC;
cbreak();
return UNSPECIFIC;
}
示例14: main
int main(void)
{
WINDOW *win1;
int x, y, i, j, k; // j, k not used yet.
int xidx;
float xmu[3500] = {}, xvar[3500] = {}, deltamu[3500] = {}, deltavar[3500] = {};
float ymu[3500] = {}, yvar[3500] = {};
int xrnd[3500] = {};
int xused[3500] = {};
int scnarr[35][100] = {};
int slowness = 50;
initscr();
cbreak(); // Line buffering disabled
keypad(stdscr, TRUE); // allow softkeys
noecho(); // don't display input when (w)getch();
curs_set(0); // don't display the cursor.
getmaxyx(stdscr,y,x);
srand((unsigned)(int)time(NULL));
win1 = newwin(y,x,0,0);
for (i=0; i<3500; i++) { // i == xrnd[index]
xrnd[i] = rand()%100;
} // end i.
for (i=0; i<3500; i++) { // i == xrnd[] index
if (scnarr[0][xrnd[i]] == 1)
break;
for (j=34; j>=0; j--) { // j == vertical scan index
if (scnarr[j][xrnd[i]] != 1) {
/** */ for (k=0; k<=j; k++) { // k == white drop space
if (k>0)
mvwprintw(win1,k-1,xrnd[i]," ");
mvwprintw(win1,k,xrnd[i],"O");
wrefresh(win1);
// Enable This Line when running from localhost (not over ssh):
// waitmics(slowness);
}
/* **/
scnarr[j][xrnd[i]] = 1;
break;
}
}
xidx = i;
ymu[i] = (float)i/100;
}
wgetch(win1);
wclear(win1);
/*
***********************************************************************************************
*/
wrefresh(win1);
while (1) {
k = wgetch(win1);
if (k == 27) { //clear BS input, keep good stuff
k = wgetch(win1); //k == 91
k = wgetch(win1); //k==50s+getch: pgup/pgdn; k==60s up/dn/l/r
if (k/10 == 5) wgetch(win1); //ignore extra getch sent
}
if (k == 68) { //if KEY_LEFT:
wclear(win1); // print generated ballistic dep.
for (i=0; i<100; i++) {
for (j=34; j>=0; j--) {
if (scnarr[j][i] == 1) mvwprintw(win1, j, i, "O");
}
}
wrefresh(win1);
} else if (k == 67) { //if KEY_RIGHT
wclear(win1); // print statistics and graphs
mvwprintw(win1, 10, 10," xidx= %d", xidx);
mvwprintw(win1, 11, 10," ymu = %f", ymu[xidx]);
mvwprintw(win1, 13, 10," ymu[0:1500](by 100's): ");
for (i=0; i<15; i++) {
mvwprintw(win1, 14, i*6, "%.2f", ymu[i*100]);
}
wrefresh(win1);
} else if (k == 10) { //if ENTER
delwin(win1); // end
endwin();
system("clear");
break;
}
}
return k;
/*
***********************************************************************************************
*/
delwin(win1);
endwin();
system("clear");
return 0;
}
示例15: Sv_InitConsole
/**
* @brief
*/
void Sv_InitConsole(void) {
if (!dedicated->value) {
return;
}
#if defined(_WIN32)
if (AllocConsole()) {
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONERR$", "w", stderr);
} else {
Com_Warn("Failed to allocate console: %u\n", (uint32_t) GetLastError());
}
#endif
memset(&sv_console_state, 0, sizeof(sv_console_state));
sv_console_state.window = initscr();
sv_console_state.dirty = true;
cbreak();
noecho();
keypad(sv_console_state.window, TRUE);
nodelay(sv_console_state.window, TRUE);
curs_set(1);
if (has_colors() == TRUE) {
start_color();
use_default_colors();
init_pair(CON_COLOR_RED, COLOR_RED, -1);
init_pair(CON_COLOR_GREEN, COLOR_GREEN, -1);
init_pair(CON_COLOR_YELLOW, COLOR_YELLOW, -1);
init_pair(CON_COLOR_BLUE, COLOR_BLUE, -1);
init_pair(CON_COLOR_CYAN, COLOR_CYAN, -1);
init_pair(CON_COLOR_MAGENTA, COLOR_MAGENTA, -1);
init_pair(CON_COLOR_WHITE, COLOR_WHITE, -1);
}
#ifdef SIGWINCH
signal(SIGWINCH, Sv_ResizeConsole);
#endif
memset(&sv_console, 0, sizeof(sv_console));
sv_console.Append = Sv_Print;
Con_AddConsole(&sv_console);
if (dedicated->value) {
file_t *file = Fs_OpenRead("history");
if (file) {
Con_ReadHistory(&sv_console, file);
Fs_Close(file);
} else {
Com_Debug(DEBUG_SERVER, "Couldn't read history");
}
}
Com_Print("Server console initialized\n");
}