Página principal   Módulos   Lista de namespaces   Hierarquia de classes   Lista de componentes   Lista de ficheiros   Membros do namespace   Componentes membro   Ficheiros membro   Páginas relacionadas  

ecra2.C

Ir para a documentação deste ficheiro.
00001 
00007 #include <string>
00008 
00009 #include <Slang++/slang.H>
00010 
00011 extern "C" {
00012 #include <unistd.h>  // para sleep()
00013 }
00014 
00015 using namespace std;
00016 
00017 using namespace Slang;
00018 
00019 // Este exemplo deve ser testado em janelas com pelo menos 80 colunas!
00020 int main()
00021 {
00022     string letras = "abcdefghijklmnopqrstuvwxyz";
00023 
00024     // Preenche o ecrã com um padrão de letras:
00025     for(int i = 0; i != ecra.dimensao().numeroDeLinhas(); ++i) {
00026         ecra << cursor(i, 0);
00027         for(int j = 0; j != ecra.dimensao().numeroDeColunas(); ++j)
00028             ecra << letras[(i * ecra.dimensao().numeroDeColunas() +
00029                             j) % letras.size()];
00030     }
00031 
00032     ecra << refresca;
00033 
00034     Aviso("Ecrã preenchido.").interage();
00035 
00036     // Cria uma caixa de dimensão 10 × 20 com origem na posição (0, 0):
00037     Caixa caixa(Posicao(0, 0), Dimensao(10, 20));  
00038         
00039     // Obtém cópia do troço de ecrã que se encontra sob a caixa:
00040     Ecra::Troco troco = ecra.trocoDe(caixa); 
00041 
00042     Aviso("Troço copiado.  Tome atenção às alterações que "
00043           "ocorrerão no ecrã!").interage();
00044 
00045     // Move o cursor para a posição (11, 21), cola o troço copiado acima nessa
00046     // posição e refresca o ecrã de modo a que estas modificações se tornem
00047     // visíveis:
00048     ecra << cursor(11, 21) << troco << refresca;
00049 
00050     Aviso("Troço colado.  Não viu?  Vou colar em sequência...").interage();
00051 
00052     for(int j = 22; j != 80; ++j) {
00053         // Move o cursor para a posição (11, j), cola o troço copiado acima nessa
00054         // posição e refresca o ecrã de modo a que estas modificações se tornem
00055         // visíveis:
00056         ecra << cursor(11, j) << troco << refresca;
00057         
00058         // Espera 1 segundo:
00059         sleep(1);
00060     }
00061 
00062     Aviso("Agora viu...").interage();
00063 }

Gerado em Tue Dec 3 15:19:34 2002 para Pacotes por doxygen1.3-rc1