Ficheiros | |
file | exemplo2.C |
Programa que demostra a utilização do ecrã e dos menus de forma simples. | |
file | menu1.C |
Programa que demostra a utilização de menus simples. | |
file | menu.C |
Ficheiro de implementação do módulo menus. | |
file | menu.H |
Ficheiro de interface do módulo menus. | |
file | menu_impl.H |
Ficheiro auxiliar de implementação do módulo menus. | |
Componentes | |
class | ApendiceComCor |
Define ferramentas relacionadas com cores para os menus que as possuirem. Mais... | |
class | Menu |
Classe abstracta que representa a interface básica de todos os menus. Mais... | |
class | MenuComCor |
Classe abstracta que define a interface básica de todos os menus com cores. Mais... | |
class | MenuSimples |
Representa menus simples, que consistem numa sequência de itens. Mais... | |
class | MenuDeCores |
Representa menus de selecção das cores básicas usáveis no ecrã. Mais... | |
class | MenuDeSimOuNao |
Representa menus com apenas duas opções: sim e não. Mais... | |
class | Aviso |
Representa caixas de aviso, que apenas mostram uma mensagem e das quais se sai pressionando 'enter'. Mais... | |
class | CaixaDeTexto |
Representa caixas de texto, que quando executadas permitem ao utilizador introduzir uma cadeia de caracteres. Mais... |
Contém ferramentas para criar e executar vários tipos de menus e caixas de diálogo simples.
Os vários tipos de menus são exemplificados no programa abaixo:
#include <cstdlib> // para atoi(). #include <string> // para string. #include <Slang++/slang.H> using namespace std; using namespace Slang; int main() { // A definição dos menus e caixas de texto fora do ciclo leva a que estes // tenham memória, preservando as escolhas do utilizador entre interacções // indenpendentes: MenuSimples menu("Um menu que não faz nada...", "Perguntar se sim ou não\n" "Pedir uma cor\n" "Abrir caixa para inserir texto\n" "Abrir caixa para inserir número\n" "Sair"); MenuDeSimOuNao menu_de_sim_ou_nao("Responda sim ou não:"); MenuDeCores menu_de_cores("Escolha uma cor"); CaixaDeTexto caixa_para_texto("Escreva um texto:"); CaixaDeTexto caixa_para_numeros("Escreva um número:", "", "0123456789", true); do { menu.interage(); Posicao const posicao_original_do_cursor = ecra.posicaoDoCursor(); switch(menu.opcaoActual()) { case 0: { menu_de_sim_ou_nao.interage(); ecra << "Escolheu: "; if(menu_de_sim_ou_nao.opcaoActual() == true) ecra << "Sim"; else ecra << "Não"; break; } case 1: { menu_de_cores.interage(); ecra << "Escolheu: " << Cor(menu_de_cores.opcaoActual()); break; } case 2: { caixa_para_texto.interage(); ecra << "Texto: " << caixa_para_texto.textoActual(); break; } case 3: { caixa_para_numeros.interage(); ecra << "Número: " << atoi(caixa_para_numeros.textoActual().c_str()); break; } } ecra << posicao_original_do_cursor << baixaCursor << refresca; } while(menu.opcaoActual() != 4); Aviso("Vou terminando...").interage(); }