void funcao_sair(int ini, int *close) { int c; STRING s[3]; PTELA tela; tela = salva_tela(); // salva janela strcpy(s[0], "sair sem salvar"); strcpy(s[1], "sair salvando"); strcpy(s[2], "calcelar"); apaga_tela(); seleciona_menu(ini, 32, 38); c = funcao_menu(s, 3, ini, 5, 32, 49); // abremenu switch (c) { case 2:{ reccfg(); (*close) = 1; }; break; case 1: (*close) = 1; break; } restaura_tela(tela); // restaura tel print_xy_int(79, 0, c); }
desktop *monitora_desktop(desktop *xdesktop) { if (xdesktop->lista_caixas->prox) { lista *no_ativo = busca_por_ativo(xdesktop->lista_caixas); struct termios conf; int carac; tcgetattr (0, &conf); sem_enter(conf); carac = le_caracter(); if (carac == TAB) { no_ativo->comando->ativado = false; no_ativo->comando = garante_invisib_itens(no_ativo->comando); no_ativo = proxima_caixa_disp(no_ativo); no_ativo->comando->ativado = true; } tcsetattr(0, TCSANOW, &conf); if (carac == ESC) { free_lista(&(xdesktop->lista_caixas)); free(xdesktop); restaura_tela(); exit(0); } if (carac == DEL) { clrscr(); xdesktop = gerencia_remocao(xdesktop); } no_ativo->comando->monitora(no_ativo->comando, carac); } return xdesktop; }
desktop *desenha_desktop(desktop *xdesktop) { if (xdesktop->lista_caixas->prox) { lista *no_ativo; lista *perc = xdesktop->lista_caixas->prox; colore_tela(); do{ /*lembre q a lista tem noh sentinela*/ if (perc->comando->visibilidade) perc->comando->desenha(perc->comando); perc=perc->prox; } while(perc!=xdesktop->lista_caixas->prox); printf("\n"); /*a fim de posicionar o cursor*/ no_ativo = busca_por_ativo(xdesktop->lista_caixas); if (!no_ativo) { /*1a vez q desenhamos*/ lista *aux = xdesktop->lista_caixas->prox; if (aux->comando->disponibilidade == false) aux = proxima_caixa_disp(perc); aux->comando->ativado = true; goto_xy(aux->comando->x, aux->comando->y); } else trata_cursor(no_ativo->comando); } else { puts("Nao ha controles neste desktop. O programa será abortado."); free_lista(&(xdesktop->lista_caixas)); free(xdesktop); restaura_tela(); exit(0); } return xdesktop; }
void funcao_info(int ini) { STRING s[5]; PTELA tela; tela = salva_tela(); // salva janela strcpy(s[0], "tamanho do disco"); strcpy(s[1], "espaco livre"); strcpy(s[2], "memoria total"); strcpy(s[3], "memoria utilizada"); strcpy(s[4], "memoria livre"); apaga_tela(); seleciona_menu(ini, 17, 30); info(funcao_menu(s, 5, ini, 7, 17, 36)); // abremenu restaura_tela(tela); // restaura tel }
void funcao_conf(PNO * p_ini, char *path, int ini, int *pos, int fim) { STRING s[4]; PTELA tela; tela = salva_tela(); // salva janela strcpy(s[0], "letra normal"); strcpy(s[1], "letra ativa"); strcpy(s[2], "fundo normal"); strcpy(s[3], "fundo ativo"); apaga_tela(); seleciona_menu(ini, 0, 15); conf(funcao_menu(s, 4, ini, 6, 0, 15)); // abremenu restaura_tela(tela); // restaura tel print_dir(p_ini, path, ini, pos, fim); }