void start_ex_cmd(char symbol, int state) { log_msg("EXCMD", "start"); ex.ex_state = state; ex.state_symbol = symbol; window_refresh(); pos_T max = layout_size(); ex.curpos = 0; ex.curofs = 0; ex.maxpos = max.col - 2; ex.state = 0; ex.col_text = opt_color(COMPL_TEXT); ex.col_symb = opt_color(BUF_TEXT); switch (state) { case EX_CMD_STATE: menu_start(ex.menu); break; case EX_REG_STATE: ex.lm = window_get_focus()->matches; regex_mk_pivot(ex.lm); break; case EX_FIL_STATE: ex.fil = window_get_focus()->filter; //swap exline with filter string break; } ex.line = calloc(max.col, sizeof(char*)); ex.cmd.cmds = NULL; ex.cmd.line = NULL; hist_push(state); cmdline_build(&ex.cmd, ex.line); }
Dpause() { #ifdef hpux return FALSE; #else #if BSDUNIX || LINUX extern int sgarbf; (*term.t_move)( term.t_nrow - 1, 0 ); (*term.t_eeop)(); ttflush(); ttclose(); killpg(getpgrp(0), 18); /* SIGTSTP -- stop the current program */ ttopen(); sgarbf = TRUE; window_refresh(FALSE, 1); #endif return( TRUE ); #endif }
void stop_ex_cmd() { log_msg("EXCMD", "stop_ex_cmd"); if (ex.ex_state == EX_CMD_STATE) menu_stop(ex.menu); ex.lm = NULL; ex.fil = NULL; free(ex.line); cmdline_cleanup(&ex.cmd); if (!message_pending) { werase(ex.nc_win); wnoutrefresh(ex.nc_win); } ex.ex_state = EX_OFF_STATE; window_ex_cmd_end(); cmd_flush(); window_refresh(); }
void ed_close_cb(Plugin *plugin, Ed *ed, bool closed) { log_msg("ED", "ed_close_cb"); if (closed) { ed->state |= ED_CLOSED; ed_cleanup(ed); return; } term_delete(ed->base); window_refresh(); if (!ed_read_temp(ed)) return ed_cleanup(ed); if (ed->state == ED_RENAME) return ed_stage_confirm(ed); if (ed->state == ED_CONFRM) return ed_do_rename(ed); }
/** * my_readline() * * Wrapper for readline(). Prepares appropriate prompt, locks screen * output. Recodes the result to utf-8. * * @return A pointer to utf8 string or NULL. */ static gchar *my_readline(void) { /* main loop could call current_prompt() * and break the buffer */ char *prompt = g_strdup(current_prompt()); char *res, *tmp; in_readline++; res = readline(prompt); in_readline--; if (config_print_line) { tmp = g_strdup_printf("%s%s\n", prompt, (res) ? res : ""); window_write(window_current->id, tmp); g_free(tmp); } else { window_refresh(); } g_free(prompt); return res; }
static void do_sleep(int seconds) { time_t target; int delta; if (!ncurses_initialized()) { sleep(seconds); return; } target = time(NULL) + seconds; delta = seconds; do { int c; usleep(6000); halfdelay(delta * 10); c = getch(); switch (c) { case KEY_BTAB: show_prev_tab(); break; case '\t': show_next_tab(); break; case KEY_RIGHT: cursor_right(); break; case KEY_LEFT: cursor_left(); break; case KEY_NPAGE: case KEY_DOWN: cursor_down(); break; case KEY_PPAGE: case KEY_UP: cursor_up(); break; case ' ': case '\n': cursor_enter(); break; case 's': if (set_refresh_timeout()) return; break; case 'r': window_refresh(); return; case KEY_EXIT: case 'q': case 27: // Escape leave_powertop = 1; return; } delta = target - time(NULL); if (delta <= 0) break; } while (1); }
void game_display(struct game* game) { assert(game); int map_w, map_h; window_clear(); if(game->nb_player == 1) { map_w = map_get_width(level_get_curr_map(game->curr_level)); map_h = map_get_height(level_get_curr_map(game->curr_level)); for(int i = 0; i < map_w; i++) for(int j = 0; j < map_h+2; j++) window_display_image(sprite_get_empty(), i * SIZE_BLOC, j * SIZE_BLOC); } level_display(game_get_curr_level(game)); monster_display(level_get_curr_map(game->curr_level)); bomb_display(game, level_get_curr_map(game->curr_level)); game_banner_display(game); if(game->nb_player == 1) { // Single player struct player* player = game->players[0]; // Always display player_display(player); if(game->game_state == PLAYING) { player_move(game, player, level_get_curr_map(game->curr_level)); monster_move(game, level_get_curr_map(game->curr_level), player); player_update(player); monster_update(level_get_curr_map(game->curr_level)); } } else { // Multi player struct player* players_in_order[game->nb_player]; for(int i=0; i<game->nb_player; i++) players_in_order[i] = game->players[i]; game_order_players_array(game, players_in_order); for(int i = 0; i < game->nb_player; i++) { player_display(players_in_order[i]); if(game->game_state == PLAYING) { player_move(game, players_in_order[i], level_get_curr_map(game->curr_level)); player_update(players_in_order[i]); } } // end for each player } // end Multi player if(game->game_state == PLAYING) { bomb_update(level_get_curr_map(game->curr_level)); } else if(game->game_state == PAUSED) { map_w = map_get_width(level_get_curr_map(game->curr_level)); map_h = map_get_height(level_get_curr_map(game->curr_level)); int mid_w = map_w / 2 * SIZE_BLOC + map_w%2 * SIZE_BLOC / 2; int mid_h = map_h / 2 * SIZE_BLOC + map_h%2 * SIZE_BLOC / 2; menu_display(mid_w, mid_h); } window_refresh(); }
void multi_display(struct game* game) { assert(game); struct map* map = NULL; int w, h; int* scores; switch(game_get_state(game)) { case PLAYING: case PAUSED: game_display(game); if(player_get_nb_player_alive(game) == 1) multi_change_state(game, SCORE); break; case CHOOSE_MAP: map = level_get_curr_map(game_get_curr_level(game)); w = 10 + 15 + sprite_get_max_width() + 50 + SIZE_BLOC * map_get_width(map); h = max(30 * (sprite_get_nb_map_multi() + 1), SIZE_BLOC * map_get_height(map)); window_resize( w, h); window_clear(); for(int i = 0; i < sprite_get_nb_map_multi(); i++) { window_display_image( sprite_get_map_multi(i), 10 + 15, 15 + 30 * i); } window_display_image(sprite_get_menu(M_S_SELECT_BLACK), 10, 15 + 30 * game_get_pos(game)); map_display( map, 10 + 15 + sprite_get_max_width() + 50, (h-(SIZE_BLOC * map_get_height(map))) / 2); window_refresh(); break; case SCORE: window_clear(); level_display(game_get_curr_level(game)); bomb_display(game, level_get_curr_map(game_get_curr_level(game))); for(int i = 0; i < game_get_nb_player(game); i++) player_display(game_get_player(game, i+1)); int map_w = map_get_width(level_get_curr_map(game_get_curr_level(game))); int map_h = map_get_height(level_get_curr_map(game_get_curr_level(game))); int mid_w = map_w / 2 * SIZE_BLOC + map_w%2 * SIZE_BLOC / 2; int mid_h = map_h / 2 * SIZE_BLOC + map_h%2 * SIZE_BLOC / 2; window_display_image( sprite_get_menu(M_BG_GREY), mid_w - 240, mid_h - 262); window_display_image( sprite_get_score(player_get_id_player_alive(game)), mid_w - 200, mid_h - 222); scores = game_get_scores(game); for(int i = 0; i < game_get_nb_player(game); i++) { window_display_sprite( sprite_get_players(i+1), sprite_get_rect_player_anim(0, i+1, SOUTH), mid_w - 200, mid_h - 222 + 80 + 80 * i); window_display_image( sprite_get_number_white(scores[i]), mid_w - 140, mid_h - 222 + 100 + 80 * i); } window_refresh(); break; } }