本文整理汇总了C++中delwin函数的典型用法代码示例。如果您正苦于以下问题:C++ delwin函数的具体用法?C++ delwin怎么用?C++ delwin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了delwin函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
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 KEY_LEFT, print generatied ballistic deposition map
if (k == 68) {
wclear(win1);
/* deposition */ for (i=0; i<100; i++) {
/* map: */ for (j=34; j>=0; j--) {
if (scnarr[j][i] == 1) mvwaddch(win1,j,i,ACS_CKBOARD);
}
}
/* top value */ for (i=0; i<100; i++) {
mvwaddch(win1,35-yhts[i],i,ACS_HLINE);
}
/* average */ if (ymufin-((int)ymufin) < .5) {
/* indicator: */ for (i=0; i<100; i++) {
if (scnarr[35-(int)ymufin][i]==0)
mvwaddch(win1,36-ymufin,i,ACS_HLINE);
if (scnarr[35-(int)ymufin][i]==1)
mvwaddch(win1,36-ymufin,i,ACS_CKBOARD);
}
mvwprintw(win1,1,2,"y_mu: %.2f", ymufin);
mvwprintw(win1,2,2,"y_mu_remainder < .5");
mvwprintw(win1,35-(int)ymufin,0,"[%d]", (int)ymufin);
} else {
for (i=0; i<100; i++) {
if (scnarr[34-(int)ymufin][i]==0)
mvwaddch(win1,35-ymufin,i,ACS_HLINE);
if (scnarr[34-(int)ymufin][i]==1)
mvwaddch(win1,35-ymufin,i,ACS_CKBOARD);
}
mvwprintw(win1,1,2,"y_mu: %f", ymufin);
mvwprintw(win1,2,2,"y_mu_remainder >= .5");
mvwprintw(win1,34-(int)ymufin,0,"[%d]", (int)ymufin+1);
}
wrefresh(win1);
//if KEY_RIGHT, print statistics and graphs:
} else if (k == 67) {
wclear(win1);
/* headers */ mvwprintw(win1, 0, 0," N=%d \twidth=100\tmu_final=%.3f"
"\t\tvar_final=%.3f",ridx,ymu[ridx],yvar[ridx]);
mvwprintw(win1, 1, 0,"\t\t\t\tdelta_mu=%.5f\tdelta_var=%.5f"
,(ridx,ymu[ridx]/ridx),(yvar[ridx]/ridx));
mvwprintw(win1, 3, 0," ymu[0:%d] (by 10%% bins):",ridx);
mvwprintw(win1, 4, 0," yvar[0:%d] (by 10%% bins):",ridx);
for (i=0; i<=10; i++) {
ftemp = 35*(int)ymu[(int)(i*ridx/10)]/ymu[ridx];
ftmp2 = 35*(int)yvar[(int)(i*ridx/10)]/yvarmax;
/* graph ymu[t] */ mvwprintw(win1,33-ftemp,i*9+2,"%.2f",ymu[(int)(i*ridx/10)]);
wattron(win1,A_STANDOUT);
/* graph yvar[y] */ mvwprintw(win1,34-ftmp2,i*9+2,"%.2f",yvar[(int)(i*ridx/10)]);
wattroff(win1,A_STANDOUT);
/* plot x axis(%) */ mvwprintw(win1,34,i*9+3,"%02d%%",i*10);
}
wrefresh(win1);
//if KEY_UP, debug:
} else if (k==65) {
wclear(win1);
mvwprintw(win1,0,0,"i:");
mvwprintw(win1,7,0,"yhts[i]:\t(final)");
mvwprintw(win1,14,0,"ymu[1:%d]:\t(ymu, %%-wise)",ridx);
mvwprintw(win1,21,0,"yvar[0:%d]:\t(yvar, %%-wise)",ridx);
for (i=0; i<100; i++){
mvwprintw(win1,1+i/20,(i%20)*5," %2d",i);
mvwprintw(win1,8+i/20,(i%20)*5," %2d",yhts[i]);
mvwprintw(win1,15+i/20,(i%20)*5,"%4.1f",
ymu[((i+1)*ridx)/100]);
mvwprintw(win1,22+i/20,(i%20)*5,"%4.1f",
yvar[((i+1)*ridx)/100]);
}
wrefresh(win1);
//if ENTER, end:
} else if (k == 10) {
delwin(win1);
endwin();
system("clear");
break;
}
}
return k;
/*
***********************************************************************************************
*/
delwin(win1);
endwin();
system("clear");
return 0;
}
开发者ID:rcollins0618,项目名称:BDmodel-2014,代码行数:101,代码来源:project07.8.hrz.plus.c
示例2: delwin
void window::shutdown(void)
{
delwin(win);
}
开发者ID:DavidKeaton,项目名称:dre,代码行数:4,代码来源:ui.cpp
示例3: dialog_menu
//.........这里部分代码省略.........
if (scroll > 0) {
do_scroll(menu, &scroll, -1);
print_item(scroll, 0, FALSE);
} else {
if (choice > 0)
choice--;
}
}
} else if (key == KEY_NPAGE) {
for (i = 0; (i < max_choice); i++) {
if (scroll + max_choice < item_no) {
do_scroll(menu, &scroll, 1);
print_item(scroll+max_choice-1,
max_choice - 1, FALSE);
} else {
if (choice + 1 < max_choice)
choice++;
}
}
} else
choice = i;
print_item(scroll + choice, choice, TRUE);
print_arrows(dialog, item_no, scroll,
box_y, box_x + item_x + 1, menu_height);
wnoutrefresh(dialog);
wrefresh(menu);
continue; /* wait for another key press */
}
switch (key) {
case KEY_LEFT:
case TAB:
case KEY_RIGHT:
button = ((key == KEY_LEFT ? --button : ++button) < 0)
? 2 : (button > 2 ? 0 : button);
print_buttons(dialog, height, width, button);
wrefresh(menu);
break;
case ' ':
case 's':
case 'y':
case 'n':
case 'm':
case '/':
/* save scroll info */
if ((f = fopen("lxdialog.scrltmp", "w")) != NULL) {
fprintf(f, "%d\n", scroll);
fclose(f);
}
delwin(dialog);
fprintf(stderr, "%s\n", items[(scroll + choice) * 2]);
switch (key) {
case 's':
return 3;
case 'y':
return 3;
case 'n':
return 4;
case 'm':
return 5;
case ' ':
return 6;
case '/':
return 7;
}
return 0;
case 'h':
case '?':
button = 2;
case '\n':
delwin(dialog);
if (button == 2)
fprintf(stderr, "%s \"%s\"\n",
items[(scroll + choice) * 2],
items[(scroll + choice) * 2 + 1] +
first_alpha(items [(scroll + choice) * 2 + 1], ""));
else
fprintf(stderr, "%s\n",
items[(scroll + choice) * 2]);
remove("lxdialog.scrltmp");
return button;
case 'e':
case 'x':
key = ESC;
case ESC:
break;
}
}
delwin(dialog);
remove("lxdialog.scrltmp");
return -1; /* ESC pressed */
}
开发者ID:0xD34D,项目名称:android_external_busybox,代码行数:101,代码来源:menubox.c
示例4: main
//.........这里部分代码省略.........
net_shutdown();
return (EXIT_FAILURE);
}
}
am_trim(web_conf_path);
if (web_conf_path == NULL || web_conf_path[0] == '\0') {
fprintf(stderr, "Varnish vmod directory must not be empty\n");
net_shutdown();
return (EXIT_FAILURE);
} else {
char *t = NULL;
asprintf(&t, "%s/libvmod_am.so", web_conf_path);
if (am_whitespace(web_conf_path) > 0) {
fprintf(stderr, "Path to Varnish modules directory must not contain spaces\n");
am_free(t);
net_shutdown();
return (EXIT_FAILURE);
} else if (am_file_writeable(web_conf_path) == 0) {
fprintf(stderr, "Error opening Varnish modules directory\n");
am_free(t);
net_shutdown();
return (EXIT_FAILURE);
} else if (am_file_exists(t) == 1) {
fprintf(stderr, "This Varnish instance is already configured\n");
am_free(t);
net_shutdown();
return (EXIT_FAILURE);
}
am_free(t);
}
create_varnish_instance(ua);
fprintf(stderr, "\nVarnish and agent configuration files are here:\n%s\nCheck installation log %s for any errors.\n\n", web_conf_path_out, log_path);
} else {
display_usage();
}
net_shutdown();
return (EXIT_SUCCESS);
}
print_version(NULL, &version);
if (version != NULL) {
snprintf(vers, sizeof (vers), "Version: %s", version);
free(version);
}
initscr();
cbreak();
noecho();
keypad(stdscr, TRUE);
start_color();
init_pair(1, COLOR_RED, COLOR_BLACK);
getmaxyx(stdscr, y, x);
asprintf(&licpath, "%s/.license", instance_path);
if (am_file_exists(licpath) == 0) {
lic = license(y, x, &mr);
wrefresh(lic);
delwin(lic);
lic = NULL;
if (mr == KEY_F(4)) {
goto all_done;
} else {
am_setup_conf(licpath, NULL);
}
}
ret_to_menu:
refresh();
mr = mainmenu(y, x);
if (mr == 0) {
int cr = configure_step(y, x);
if (cr == KEY_F(4)) {
goto ret_to_menu;
}
} else if (mr >= 2 && mr < menu_size - 1) {
memset(remname, 0, sizeof (remname));
if (sscanf(menu_values[mr], "Remove '%[^''']' instance", remname) == 1) {
if (remove_step(remname, y, x) == KEY_F(4))
goto ret_to_menu;
}
goto ret_to_menu;
} else if (mr == 1) {
encrypt_step(y, x);
goto ret_to_menu;
}
all_done:
am_free(licpath);
clean_main_menu();
move(0, 0);
clrtoeol();
refresh();
endwin();
net_shutdown();
return (EXIT_SUCCESS);
}
开发者ID:JonathanFu,项目名称:OpenAM-1,代码行数:101,代码来源:main.c
示例5: newwin
//.........这里部分代码省略.........
if (it->second.getPage() == "world_default") {
world->world_options[it->first] = it->second;
}
}
}
std::vector<std::string> keys;
for (std::map<std::string, cOpt>::iterator it = world->world_options.begin();
it != world->world_options.end(); ++it) {
keys.push_back(it->first);
}
for (std::map<int, bool>::iterator mLine = mapLines.begin(); mLine != mapLines.end(); ++mLine) {
if (mLine->second) {
mvwputch(win, 2, mLine->first + 1, BORDER_COLOR, LINE_OXXX); // -.-
mvwputch(win, FULL_SCREEN_HEIGHT - 1, mLine->first + 1, BORDER_COLOR, LINE_XXOX); // _|_
}
}
wrefresh(win);
refresh();
input_context ctxt("WORLDGEN_OPTION_DIALOG");
ctxt.register_cardinal();
ctxt.register_action("HELP_KEYBINDINGS");
ctxt.register_action("QUIT");
ctxt.register_action("NEXT_TAB");
ctxt.register_action("PREV_TAB");
unsigned int sel = 0;
unsigned int curoption = 0;
do {
for (int i = 0; i < iContentHeight; i++) {
for (int j = 0; j < 79; j++) {
if (mapLines[j]) {
mvwputch(w_options, i, j, BORDER_COLOR, LINE_XOXO);
} else {
mvwputch(w_options, i, j, c_black, ' ');
}
}
}
curoption = 0;
for (std::map<std::string, cOpt>::iterator it = world->world_options.begin();
it != world->world_options.end(); ++it) {
nc_color cLineColor = c_ltgreen;
sTemp.str("");
sTemp << curoption + 1;
mvwprintz(w_options, curoption , 0, c_white, "%s", sTemp.str().c_str());
mvwprintz(w_options, curoption , 4, c_white, "");
if (sel == curoption) {
wprintz(w_options, c_yellow, ">> ");
} else {
wprintz(w_options, c_yellow, " ");
}
wprintz(w_options, c_white, "%s", (it->second.getMenuText()).c_str());
if (it->second.getValue() == "False") {
cLineColor = c_ltred;
}
mvwprintz(w_options, curoption, 62, (sel == curoption) ? hilite(cLineColor) : cLineColor, "%s",
(it->second.getValueName()).c_str());
++curoption;
}
wrefresh(w_options);
refresh();
const std::string action = ctxt.handle_input();
if (action == "DOWN") {
sel++;
if (sel >= world->world_options.size()) {
sel = 0;
}
} else if (action == "UP") {
if (sel == 0) {
sel = world->world_options.size() - 1;
} else {
sel--;
}
} else if (!world->world_options.empty() && action == "LEFT") {
world->world_options[keys[sel]].setPrev();
} else if (!world->world_options.empty() && action == "RIGHT") {
world->world_options[keys[sel]].setNext();
} else if (action == "PREV_TAB") {
werase(w_options);
delwin(w_options);
return -1;
} else if (action == "NEXT_TAB") {
werase(w_options);
delwin(w_options);
return 1;
} else if (action == "QUIT") {
return -999;
}
} while (true);
return 0;
}
开发者ID:Agnososyk,项目名称:Cataclysm-DDA,代码行数:101,代码来源:worldfactory.cpp
示例6: closewindow
void closewindow(WINDOW *w) {
delwin(w);
touchwin(debugwin);
wrefresh(debugwin);
}
开发者ID:Alcaro,项目名称:ZMZ,代码行数:5,代码来源:debugger.c
示例7: add_msg
//.........这里部分代码省略.........
xpos = 32;
ypos++;
}
mvwprintz(w_data, ypos, xpos, c_white, "OR ");
xpos += 3;
}
}
}
}
// Loop to print the required components
ypos++;
mvwprintz(w_data, ypos, 30, col, "Components required:");
for (int i = 0; i < 5; i++) {
if (current[line]->components[i].size() > 0) {
ypos++;
mvwputch(w_data, ypos, 30, col, '>');
}
xpos = 32;
for (int j = 0; j < current[line]->components[i].size(); j++) {
int count = current[line]->components[i][j].count;
itype_id type = current[line]->components[i][j].type;
nc_color compcol = c_red;
if (itypes[type]->count_by_charges() && count > 0) {
if (crafting_inv.has_charges(type, count))
compcol = c_green;
} else if (crafting_inv.has_amount(type, abs(count)))
compcol = c_green;
std::stringstream dump;
dump << abs(count) << "x " << itypes[type]->name << " ";
std::string compname = dump.str();
if (xpos + compname.length() >= 80) {
ypos++;
xpos = 32;
}
mvwprintz(w_data, ypos, xpos, compcol, compname.c_str());
xpos += compname.length();
if (j < current[line]->components[i].size() - 1) {
if (xpos >= 77) {
ypos++;
xpos = 32;
}
mvwprintz(w_data, ypos, xpos, c_white, "OR ");
xpos += 3;
}
}
}
}
wrefresh(w_data);
ch = input();
switch (ch) {
case '<':
if (tab == CC_WEAPON)
tab = CC_MISC;
else
tab = craft_cat(int(tab) - 1);
redraw = true;
break;
case '>':
if (tab == CC_MISC)
tab = CC_WEAPON;
else
tab = craft_cat(int(tab) + 1);
redraw = true;
break;
case 'j':
line++;
break;
case 'k':
line--;
break;
case '\n':
if (!available[line])
popup("You can't do that!");
else if (itypes[current[line]->result]->m1 == LIQUID &&
!u.has_watertight_container())
popup("You don't have anything to store that liquid in!");
else {
make_craft(current[line]);
done = true;
}
break;
case '?':
tmp = item(itypes[current[line]->result], 0);
full_screen_popup(tmp.info(true).c_str());
redraw = true;
break;
}
if (line < 0)
line = current.size() - 1;
else if (line >= current.size())
line = 0;
} while (ch != KEY_ESCAPE && ch != 'q' && ch != 'Q' && !done);
werase(w_head);
werase(w_data);
delwin(w_head);
delwin(w_data);
refresh_all();
}
开发者ID:Bultrano,项目名称:Cataclysm,代码行数:101,代码来源:crafting.cpp
示例8: main
int
main(int ac, char *av[])
{
bool restore;
/* Revoke setgid privileges */
setgid(getgid());
if (strcmp(av[0], "a.out") == 0) {
outf = fopen("q", "w");
setbuf(outf, NULL);
Debug = TRUE;
}
restore = FALSE;
switch (ac) {
case 2:
rest_f(av[1]);
restore = TRUE;
case 1:
break;
default:
usage();
/* NOTREACHED */
}
Play = PLAYER;
initscr();
delwin(stdscr);
stdscr = Board = newwin(BOARD_Y, BOARD_X, 0, 0);
Score = newwin(SCORE_Y, SCORE_X, 0, 40);
Miles = newwin(MILES_Y, MILES_X, 17, 0);
#ifdef attron
idlok(Board, TRUE);
idlok(Score, TRUE);
idlok(Miles, TRUE);
#endif
leaveok(Score, TRUE);
leaveok(Miles, TRUE);
clearok(curscr, TRUE);
srandomdev();
cbreak();
noecho();
signal(SIGINT, rub);
for (;;) {
if (!restore || (Player[PLAYER].total >= 5000
|| Player[COMP].total >= 5000)) {
if (Player[COMP].total < Player[PLAYER].total)
Player[PLAYER].games++;
else if (Player[COMP].total > Player[PLAYER].total)
Player[COMP].games++;
Player[COMP].total = 0;
Player[PLAYER].total = 0;
}
do {
if (!restore)
Handstart = Play = other(Handstart);
if (!restore || On_exit) {
shuffle();
init();
}
newboard();
if (restore)
mvwaddstr(Score, ERR_Y, ERR_X, Initstr);
prboard();
do {
domove();
if (Finished)
newscore();
prboard();
} while (!Finished);
check_more();
restore = On_exit = FALSE;
} while (Player[COMP].total < 5000
&& Player[PLAYER].total < 5000);
}
}
开发者ID:AhmadTux,项目名称:DragonFlyBSD,代码行数:75,代码来源:mille.c
示例9: delWindows
void delWindows(struct windows *win) {
delwin(win->main);
delwin(win->textpad);
delwin(win->menu);
delwin(win->status);
}
开发者ID:gmargari,项目名称:ncurses-game,代码行数:6,代码来源:textgame.c
示例10: main
//.........这里部分代码省略.........
}
size_t pid_list_size = pid_list_length * sizeof(*pid_list);
if (!(pid_list = realloc(pid_list, pid_list_size))) {
fprintf(stderr, "Failed to reserve memory.\n");
exit_status =
EXIT_FAILURE;
goto cleanup;
}
memset(pid_list, 0, pid_list_size);
if (syscall(__NR_get_pids, pid_list_length, pid_list) <= 0) {
fprintf(
stderr,
"Failed to perform the 'get_pids' system call. "
"Ensure that the 'task_info' subsystem was compiled "
"into the kernel.\n"
);
exit_status =
EXIT_FAILURE;
goto cleanup;
}
if (pad_height != pid_list_length + 1) {
pad_height =
pid_list_length + 1;
if (pad) {
delwin(pad);
}
pad = newpad(pad_height, header_length);
if (!pad) {
fprintf(
stderr,
"Failed to create a scrollable UI pad.\n"
);
exit_status =
EXIT_FAILURE;
goto cleanup;
}
keypad(pad, true);
}
size_t header_height =
Header_Height;
unsigned long uptime_days =
system.uptime / 86400;
unsigned long uptime_hours =
system.uptime / 3600 -
uptime_days * 24;
unsigned long uptime_minutes =
system.uptime / 60 -
uptime_days * 1440 -
uptime_hours * 60;
unsigned long uptime_seconds =
system.uptime % 60;
开发者ID:auca,项目名称:com.341,代码行数:67,代码来源:tasks.c
示例11: newwin
//.........这里部分代码省略.........
// |
winw1 = 12;
winw2 = 35;
winh1 = 3;
winh2 = 12;
winw12 = winw1 + winw2 + 1;
winw3 = 80 - winw1 - winw2 - 2;
winh3 = 25 - winh1 - winh2 - 2;
winh23 = winh2 + winh3 + 1;
winx1 = winw1;
winx2 = winw1 + winw2 + 1;
winy1 = winh1;
winy2 = winh1 + winh2 + 1;
page_size = winh23;
// h w y x
w_grid = newwin(25, 80, 0, 0);
w_mode = newwin(1, 80, 0, 0);
w_msg = newwin(winh1 - 1, 80, 1, 0);
w_disp = newwin(winh2, winw1, winy1 + 1, 0);
w_parts = newwin(winh2, winw2, winy1 + 1, winx1 + 1);
w_stats = newwin(winh3, winw12, winy2 + 1, 0);
w_list = newwin(winh23, winw3, winy1 + 1, winx2 + 1);
for (int i = 0; i < 25; i++)
{
mvwputch(w_grid, i, winx2, c_ltgray, i == winy1 || i == winy2? LINE_XOXX : LINE_XOXO);
if (i >= winy1 && i < winy2)
mvwputch(w_grid, i, winx1, c_ltgray, LINE_XOXO);
}
for (int i = 0; i < 80; i++)
{
mvwputch(w_grid, winy1, i, c_ltgray, i == winx1? LINE_OXXX : (i == winx2? LINE_OXXX : LINE_OXOX));
if (i < winx2)
mvwputch(w_grid, winy2, i, c_ltgray, i == winx1? LINE_XXOX : LINE_OXOX);
}
wrefresh(w_grid);
crafting_inv = gm->crafting_inventory();
int charges = ((it_tool *) g->itypes["welder"])->charges_per_use;
has_wrench = crafting_inv.has_amount("wrench", 1) ||
crafting_inv.has_amount("toolset", 1);
has_hacksaw = crafting_inv.has_amount("hacksaw", 1) ||
crafting_inv.has_amount("toolset", 1);
has_welder = (crafting_inv.has_amount("welder", 1) &&
crafting_inv.has_charges("welder", charges)) ||
(crafting_inv.has_amount("toolset", 1) &&
crafting_inv.has_charges("toolset", charges/5));
display_stats ();
display_veh ();
move_cursor (0, 0);
bool finish = false;
while (!finish)
{
char ch = input(); // See keypress.h
int dx, dy;
get_direction (gm, dx, dy, ch);
if (ch == KEY_ESCAPE)
finish = true;
else
if (dx != -2 && (dx || dy) &&
cx + dx >= -6 && cx + dx < 6 &&
cy + dy >= -6 && cy + dy < 6)
move_cursor(dx, dy);
else
{
int mval = cant_do(ch);
display_mode (ch);
switch (ch)
{
case 'i': do_install(mval); break;
case 'r': do_repair(mval); break;
case 'f': do_refill(mval); break;
case 'o': do_remove(mval); break;
case 'e': do_rename(mval); break;
default:;
}
if (sel_cmd != ' ')
finish = true;
display_mode (' ');
}
}
werase(w_grid);
werase(w_mode);
werase(w_msg);
werase(w_disp);
werase(w_parts);
werase(w_stats);
werase(w_list);
delwin(w_grid);
delwin(w_mode);
delwin(w_msg);
delwin(w_disp);
delwin(w_parts);
delwin(w_stats);
delwin(w_list);
erase();
}
开发者ID:Idorobots,项目名称:Cataclysm-DDA,代码行数:101,代码来源:veh_interact.cpp
示例12: translate_all
//.........这里部分代码省略.........
} else if( action == "LEFT" ) {
subtab.prev();
redraw = true;
} else if( action == "SCROLL_UP" ) {
scroll_pos--;
} else if( action == "SCROLL_DOWN" ) {
scroll_pos++;
} else if( action == "PREV_TAB" ) {
tab.prev();
subtab = list_circularizer<std::string>( craft_subcat_list[tab.cur()] );//default ALL
redraw = true;
} else if( action == "RIGHT" ) {
subtab.next();
redraw = true;
} else if( action == "NEXT_TAB" ) {
tab.next();
subtab = list_circularizer<std::string>( craft_subcat_list[tab.cur()] );//default ALL
redraw = true;
} else if( action == "DOWN" ) {
line++;
} else if( action == "UP" ) {
line--;
} else if( action == "CONFIRM" ) {
if( available.empty() || !available[line] ) {
popup( _( "You can't do that!" ) );
} else if( !current[line]->check_eligible_containers_for_crafting( ( batch ) ? line + 1 : 1 ) ) {
; // popup is already inside check
} else {
chosen = current[line];
batch_size = ( batch ) ? line + 1 : 1;
done = true;
}
} else if( action == "HELP_RECIPE" ) {
if( current.empty() ) {
popup( _( "Nothing selected!" ) );
redraw = true;
continue;
}
tmp = current[line]->create_result();
full_screen_popup( "%s\n%s", tmp.type_name( 1 ).c_str(), tmp.info( true ).c_str() );
redraw = true;
keepline = true;
} else if( action == "FILTER" ) {
filterstring = string_input_popup( _( "Search:" ), 85, filterstring,
_( "Special prefixes for requirements:\n"
" [t] search tools\n"
" [c] search components\n"
" [q] search qualities\n"
" [s] search skills\n"
" [S] search skill used only\n"
"Special prefixes for results:\n"
" [Q] search qualities\n"
"Examples:\n"
" t:soldering iron\n"
" c:two by four\n"
" q:metal sawing\n"
" s:cooking\n"
" Q:fine bolt turning"
) );
redraw = true;
} else if( action == "QUIT" ) {
chosen = nullptr;
done = true;
} else if( action == "RESET_FILTER" ) {
filterstring = "";
redraw = true;
} else if( action == "CYCLE_BATCH" ) {
if( current.empty() ) {
popup( _( "Nothing selected!" ) );
redraw = true;
continue;
}
batch = !batch;
if( batch ) {
batch_line = line;
chosen = current[batch_line];
} else {
line = batch_line;
keepline = true;
}
redraw = true;
}
if( line < 0 ) {
line = current.size() - 1;
} else if( line >= ( int )current.size() ) {
line = 0;
}
} while( !done );
werase( w_head );
werase( w_subhead );
werase( w_data );
delwin( w_head );
delwin( w_subhead );
delwin( w_data );
g->refresh_all();
return chosen;
}
开发者ID:madprogrammi,项目名称:Cataclysm-DDA,代码行数:101,代码来源:crafting_gui.cpp
示例13: dialog_checklist
//.........这里部分代码省略.........
item_set(scroll);
print_item(list, 0, TRUE);
print_arrows(dialog, choice, item_count(),
scroll, box_y, box_x + check_x + 5, list_height);
wnoutrefresh(dialog);
wrefresh(list);
continue; /* wait for another key press */
} else
i = choice - 1;
} else if (key == KEY_DOWN || key == '+') {
if (choice == max_choice - 1) {
if (scroll + choice >= item_count() - 1)
continue;
/* Scroll list up */
if (list_height > 1) {
/* De-highlight current last item before scrolling up */
item_set(scroll + max_choice - 1);
print_item(list,
max_choice - 1,
FALSE);
scrollok(list, TRUE);
wscrl(list, 1);
scrollok(list, FALSE);
}
scroll++;
item_set(scroll + max_choice - 1);
print_item(list, max_choice - 1, TRUE);
print_arrows(dialog, choice, item_count(),
scroll, box_y, box_x + check_x + 5, list_height);
wnoutrefresh(dialog);
wrefresh(list);
continue; /* wait for another key press */
} else
i = choice + 1;
}
if (i != choice) {
/* De-highlight current item */
item_set(scroll + choice);
print_item(list, choice, FALSE);
/* Highlight new item */
choice = i;
item_set(scroll + choice);
print_item(list, choice, TRUE);
wnoutrefresh(dialog);
wrefresh(list);
}
continue; /* wait for another key press */
}
switch (key) {
case 'H':
case 'h':
case '?':
button = 1;
/* fall-through */
case 'S':
case 's':
case ' ':
case '\n':
item_foreach()
item_set_selected(0);
item_set(scroll + choice);
item_set_selected(1);
delwin(list);
delwin(dialog);
return button;
case TAB:
case KEY_LEFT:
case KEY_RIGHT:
button = ((key == KEY_LEFT ? --button : ++button) < 0)
? 1 : (button > 1 ? 0 : button);
print_buttons(dialog, height, width, button);
wrefresh(dialog);
break;
case 'X':
case 'x':
key = KEY_ESC;
break;
case KEY_ESC:
key = on_key_esc(dialog);
break;
case KEY_RESIZE:
delwin(list);
delwin(dialog);
on_key_resize();
goto do_resize;
}
/* Now, update everything... */
doupdate();
}
delwin(list);
delwin(dialog);
return key; /* ESC pressed */
}
开发者ID:16rd,项目名称:rt-n56u,代码行数:101,代码来源:checklist.c
示例14: decide_needs
void npc::talk_to_u(game *g)
{
if (attitude == NPCATT_TALK)
attitude = NPCATT_NULL;
dialogue d;
d.alpha = &g->u;
d.beta = this;
d.topic_stack.push_back(chatbin.first_topic);
if (is_friend())
d.topic_stack.push_back(TALK_FRIEND);
int most_difficult_mission = 0;
for (int i = 0; i < chatbin.missions.size(); i++) {
mission_type *type = g->find_mission_type(chatbin.missions[i]);
if (type->urgent && type->difficulty > most_difficult_mission) {
d.topic_stack.push_back(TALK_MISSION_DESCRIBE);
chatbin.mission_selected = i;
most_difficult_mission = type->difficulty;
}
}
most_difficult_mission = 0;
bool chosen_urgent = false;
for (int i = 0; i < chatbin.missions_assigned.size(); i++) {
mission_type *type = g->find_mission_type(chatbin.missions_assigned[i]);
if ((type->urgent && !chosen_urgent) ||
(type->difficulty > most_difficult_mission &&
(type->urgent || !chosen_urgent) )) {
chosen_urgent = type->urgent;
d.topic_stack.push_back(TALK_MISSION_INQUIRE);
chatbin.mission_selected = i;
most_difficult_mission = type->difficulty;
}
}
if (d.topic_stack.back() == TALK_NONE) {
g->add_msg(_("%s says, \"Leave me alone.\""), name.c_str());
return;
}
moves -= 100;
decide_needs();
d.win = newwin(25, 80, 0, 0);
wborder(d.win, LINE_XOXO, LINE_XOXO, LINE_OXOX, LINE_OXOX,
LINE_OXXO, LINE_OOXX, LINE_XXOO, LINE_XOOX );
for (int i = 1; i < 24; i++)
mvwputch(d.win, i, 41, c_ltgray, LINE_XOXO);
mvwputch(d.win, 0, 41, c_ltgray, LINE_OXXX);
mvwputch(d.win, 24, 41, c_ltgray, LINE_XXOX);
mvwprintz(d.win, 1, 1, c_white, _("Dialogue with %s"), name.c_str());
mvwprintz(d.win, 1, 43, c_white, _("Your response:"));
// Main dialogue loop
do {
talk_topic next = d.opt(d.topic_stack.back(), g);
if (next == TALK_NONE) {
int cat = topic_category(d.topic_stack.back());
do
d.topic_stack.pop_back();
while (cat != -1 && topic_category(d.topic_stack.back()) == cat);
}
if (next == TALK_DONE || d.topic_stack.empty())
d.done = true;
else if (next != TALK_NONE)
d.topic_stack.push_back(next);
} while (!d.done);
delwin(d.win);
g->refresh_all();
}
开发者ID:Uvadzucumi,项目名称:Cataclysm,代码行数:72,代码来源:npctalk.cpp
示例15: delwin
CWindows::~CWindows()
{
delwin(m_this);
}
开发者ID:zaviga5001,项目名称:zenkaku,代码行数:4,代码来源:Windows.cpp
示例16: curses_line_input_dialog
void curses_line_input_dialog(const char *prompt, char *answer, int buffer)
{
int map_height, map_width, maxwidth, remaining_buf, winx, winy, count;
WINDOW *askwin, *bwin;
char input[buffer];
char *tmpstr;
int prompt_width = strlen(prompt) + buffer + 1;
int prompt_height = 1;
int height = prompt_height;
maxwidth = term_cols - 2;
if (iflags.window_inited) {
curses_get_window_size(MAP_WIN, &map_height, &map_width);
if ((prompt_width + 2) > map_width)
maxwidth = map_width - 2;
}
if (prompt_width > maxwidth) {
prompt_height = curses_num_lines(prompt, maxwidth);
height = prompt_height;
prompt_width = maxwidth;
tmpstr = curses_break_str(prompt, maxwidth, prompt_height);
remaining_buf = buffer - (strlen(tmpstr) - 1);
if (remaining_buf > 0 ) {
height += (remaining_buf / prompt_width);
if ((remaining_buf % prompt_width) > 0) {
height++;
}
}
}
if (iflags.window_inited) {
bwin = curses_create_window(prompt_width, height, UP);
wrefresh(bwin);
getbegyx(bwin, winy, winx);
askwin = newwin(height, prompt_width, winy + 1, winx + 1);
} else {
bwin = curses_create_window(prompt_width, height, CENTER);
wrefresh(bwin);
getbegyx(bwin, winy, winx);
askwin = newwin(height, prompt_width, winy + 1, winx + 1);
}
for (count = 0; count < prompt_height; count++) {
tmpstr = curses_break_str(prompt, maxwidth, count + 1);
if (count == (prompt_height - 1)) { /* Last line */
mvwprintw(askwin, count, 0, "%s ", tmpstr);
} else {
mvwaddstr(askwin, count, 0, tmpstr);
}
free(tmpstr);
}
echo();
curs_set(1);
wgetnstr(askwin, input, buffer-1);
curs_set(0);
strcpy(answer, input);
werase(bwin);
delwin(bwin);
curses_destroy_win(askwin);
noecho();
}
开发者ID:chasonr,项目名称:unnethack-i18n,代码行数:63,代码来源:cursdial.c
示例17: dialog_menu
//.........这里部分代码省略.........
} else
choice = MIN(choice+1, max_choice-1);
} else if (key == KEY_PPAGE) {
scrollok (menu, TRUE);
for (i=0; (i < max_choice); i++) {
if (scroll > 0) {
wscrl (menu, -1);
scroll--;
print_item (menu, items[scroll]->name, 0, FALSE,
(items[scroll]->tag[0] != ':'));
} else {
if (choice > 0)
choice--;
}
}
scrollok (menu, FALSE);
} else if (key == KEY_NPAGE) {
for (i=0; (i < max_choice); i++) {
if (scroll+max_choice < item_no) {
scrollok (menu, TRUE);
scroll(menu);
scrollok (menu, FALSE);
scroll++;
print_item (menu, items[scroll + max_choice - 1]->name,
max_choice-1, FALSE,
(items[scroll + max_choice - 1]->tag[0] != ':'));
} else {
if (choice+1 < max_choice)
choice++;
}
}
} else
choice = i;
print_item (menu, items[scroll + choice]->name, choice, TRUE,
(items[scroll + choice]->tag[0] != ':'));
print_arrows(dialog, item_no, scroll,
box_y, box_x+item_x+1, menu_height);
wnoutrefresh (dialog);
wrefresh (menu);
continue; /* wait for another key press */
}
switch (key) {
case KEY_LEFT:
case TAB:
case KEY_RIGHT:
button = ((key == KEY_LEFT ? --button : ++button) < 0)
? 2 : (button > 2 ? 0 : button);
print_buttons(dialog, height, width, button);
wrefresh (menu);
break;
case ' ':
case 's':
case 'y':
case 'n':
case 'm':
/* save scroll info */
if ( (f=fopen("lxdialog.scrltmp","w")) != NULL ) {
fprintf(f,"%d\n",scroll);
fclose(f);
}
delwin (dialog);
items[scroll + choice]->selected = 1;
switch (key) {
case 's': return 3;
case 'y': return 3;
case 'n': return 4;
case 'm': return 5;
case ' ': return 6;
}
return 0;
case 'h':
case '?':
button = 2;
case '\n':
delwin (dialog);
items[scroll + choice]->selected = 1;
remove("lxdialog.scrltmp");
return button;
case 'e':
case 'x':
key = ESC;
case ESC:
break;
}
}
delwin (dialog);
remove("lxdialog.scrltmp");
return -1; /* ESC pressed */
}
开发者ID:VargMon,项目名称:dd-wrt,代码行数:101,代码来源:menubox.c
示例18: dialog_yesno
/*
* Display a dialog box with two buttons - Yes and No
*/
int dialog_yesno(const char *title, const char *prompt, int height, int width)
{
int i, x, y, key = 0, button = 0;
WINDOW *dialog;
do_resize:
if (getmaxy(stdscr) < (height + 4))
return -ERRDISPLAYTOOSMALL;
if (getmaxx(stdscr) < (width + 4))
return -ERRDISPLAYTOOSMALL;
/* center dialog box on screen */
x = (COLS - width) / 2;
y = (LINES - height) / 2;
draw_shadow(stdscr, y, x, height, width);
dialog = newwin(height, width, y, x);
keypad(dialog, TRUE);
draw_box(dialog, 0, 0, height, width,
dlg.dialog.atr, dlg.border.atr);
wattrset(dialog, dlg.border.atr);
mvwaddch(dialog, height - 3, 0, ACS_LTEE);
for (i = 0; i < width - 2; i++)
waddch(dialog, ACS_HLINE);
wattrset(dialog, dlg.dialog.atr);
waddch(dialog, ACS_RTEE);
print_title(dialog, title, width);
wattrset(dialog, dlg.dialog.atr);
print_autowrap(dialog, prompt, width - 2, 1, 3);
print_buttons(dialog, height, width, 0);
while (key != KEY_ESC) {
key = wgetch(dialog);
switch (key) {
case 'Y':
case 'y':
delwin(dialog);
return 0;
case 'N':
case 'n':
delwin(dialog);
return 1;
case TAB:
case KEY_LEFT:
case KEY_RIGHT:
button = ((key == KEY_LEFT ? --button : ++button) < 0) ? 1 : (button > 1 ? 0 : button);
print_buttons(dialog, height, width, button);
wrefresh(dialog);
break;
case ' ':
case '\n':
delwin(dialog);
return button;
case KEY_ESC:
key = on_key_esc(dialog);
break;
case KEY_RESIZE:
delwin(dialog);
on_key_resize();
goto do_resize;
}
}
delwin(dialog);
return key; /* ESC pressed */
}
开发者ID:0919061,项目名称:PX4NuttX,代码行数:76,代码来源:yesno.c
-
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19254|2023-10-27
-
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:10005|2022-11-06
-
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8335|2022-11-06
-
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8703|2022-11-06
-
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8650|2022-11-06
-
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9675|2022-11-06
-
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8635|2022-11-06
-
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:8008|2022-11-06
-
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8671|2022-11-06
-
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7542|2022-11-06
|
请发表评论