Página principal   Módulos   Lista de namespaces   Hierarquia de classes   Lista de componentes   Lista de ficheiros   Membros do namespace   Componentes   Declarações   Paginas relacionadas  

menu_impl.H

Ir para a documentação deste ficheiro.
00001 // Métodos inline da classe ApendiceCor:
00002 
00003 inline Slang::ApendiceComCor::ApendiceComCor()
00004     : o_borda_(preto, branco),
00005       o_titulo_(vermelho, branco),
00006       o_itens_(preto, branco),
00007       o_corrente_(amarelo, azul) {
00008 }
00009 
00010 inline Slang::Ecra::ObjectoCor const& Slang::ApendiceComCor::o_borda() const {
00011     return o_borda_;
00012 }
00013 
00014 inline Slang::Ecra::ObjectoCor const& Slang::ApendiceComCor::o_titulo() const {
00015     return o_titulo_;
00016 }
00017 
00018 inline Slang::Ecra::ObjectoCor const& Slang::ApendiceComCor::o_itens() const {
00019     return o_itens_;
00020 }
00021 
00022 inline Slang::Ecra::ObjectoCor const& Slang::ApendiceComCor::o_corrente() const {
00023     return o_corrente_;
00024 }
00025 
00026 inline Slang::Ecra::ObjectoCor& Slang::ApendiceComCor::o_borda() {
00027     return o_borda_;
00028 }
00029 
00030 inline Slang::Ecra::ObjectoCor& Slang::ApendiceComCor::o_titulo() {
00031     return o_titulo_;
00032 }
00033 
00034 inline Slang::Ecra::ObjectoCor& Slang::ApendiceComCor::o_itens()    {
00035     return o_itens_;
00036 }
00037 
00038 inline Slang::Ecra::ObjectoCor& Slang::ApendiceComCor::o_corrente() {
00039     return o_corrente_;
00040 }
00041 
00042 
00043 // Métodos inline da classe MenuComCor:
00044 
00045 inline Slang::MenuComCor::MenuComCor(std::string const& titulo)
00046     : Menu(titulo) {
00047 }
00048 
00049 
00050 // Métodos inline da classe Menu:
00051 
00052 inline Slang::Menu::Menu(std::string const& titulo)
00053     : titulo_(titulo) {
00054 }
00055 
00056 inline Slang::Menu::~Menu() {
00057 }
00058 
00059 inline std::string Slang::Menu::titulo() const {
00060     return titulo_;
00061 }
00062 
00063 // Métodos inline da classe MenuSimples:
00064 
00065 inline Slang::MenuSimples::MenuSimples(std::string const& titulo, 
00066                                        std::string const itens[], 
00067                                        int numero_de_itens) 
00068     : MenuComCor(titulo),
00069       itens(itens, itens + numero_de_itens),
00070       numero_de_itens(numero_de_itens),
00071       corrente(0) {
00072     // Calcular dimensões:
00073     calculaDimensao();
00074     calculaPosicao();
00075 }
00076 
00077 inline void Slang::MenuSimples::calculaPosicao() const {
00078     posicao.linha((ecra.dimensao().linhas() - dimensao.linhas()) / 2);
00079     posicao.coluna((ecra.dimensao().colunas() - dimensao.colunas()) / 2);
00080 }
00081 
00082 inline void Slang::MenuSimples::desenhaItem(int i) const {
00083     ecra << (i == corrente ? o_corrente() : o_itens());
00084     ecra << cursor(posicao + Posicao(2 + i, 1)) 
00085          << largura(largura_maxima) << itens[i];
00086     if(i == corrente)
00087         // Cursor a meio do item corrente:
00088         ecra << cursor(posicao + Posicao(2 + i, largura_maxima / 2));
00089 }
00090 
00091 
00092 // Métodos inline da classe MenuCor:
00093 
00094 inline Slang::MenuCor::MenuCor(string const& titulo)
00095     : MenuSimples(titulo, nomes_das_cores, numero_de_cores) {
00096 }
00097 
00098 
00099 // Métodos inline da classe MenuSimNao:
00100 inline Slang::MenuSimNao::MenuSimNao(string const& titulo)
00101     : MenuSimples(titulo, "Sim\nNão") {
00102 }
00103 
00104 inline int Slang::MenuSimNao::executa() {
00105     return !MenuSimples::executa();
00106 }
00107 
00108 
00109 // Métodos inline da classe Aviso:
00110 
00111 inline Slang::Aviso::Aviso(string const& titulo)
00112     : menu(titulo, "Tá bem...") {
00113 }
00114 
00115 inline Slang::Aviso::~Aviso() {
00116 }
00117 
00118 inline void Slang::Aviso::executa() {
00119     menu.executa();
00120 }
00121 
00122 
00123 // Métodos inline da classe 
00124 
00125 inline Slang::CaixaDeTexto::CaixaDeTexto(std::string const& titulo,
00126                                          std::string const& valor,
00127                                          std::string::size_type espacos_)
00128     : titulo_(titulo), espacos(max(espacos_,titulo.length())), valor(valor), 
00129       inicio(valor.length() < espacos? 0 : valor.length() - espacos + 1),
00130       posicao(valor.length() - inicio), 
00131       dimensao(4, espacos + 2) {
00132     calculaPosicao();
00133 }
00134 
00135 inline Slang::CaixaDeTexto::~CaixaDeTexto() {
00136 }
00137 
00138 inline std::string Slang::CaixaDeTexto::titulo() const {
00139     return titulo_;
00140 }
00141 
00142 inline void Slang::CaixaDeTexto::calculaPosicao() const {
00143     origem.linha((ecra.dimensao().linhas() - dimensao.linhas()) / 2);
00144     origem.coluna((ecra.dimensao().colunas() - dimensao.colunas()) / 2);
00145 }
00146 
00147 

Gerado em Mon May 14 17:22:13 2001 para Slang++ por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001