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  

Referencia à classe Slang::Teclado

Esta classe é um solitão: a sua única instância representa o teclado. Mais...

#include <Slang/teclado.H>

Mostrar lista completa dos membros

Membros públicos

 Teclado ()
 ~Teclado ()
bool teclaDisponivel (int decimos_de_segundo=0) const
 Devolve true se alguma tecla tiver sido pressionada e portanto estiver disponível para leitura. Mais...

Tecla tecla ()
 Devolve a primeira das teclas pressionadas e ainda não lidas. Mais...

void limpa ()
 Descarta todas as teclas pressionadas e ainda não lidas. Mais...


Descrição detalhada

Esta classe é um solitão: a sua única instância representa o teclado.

A classe Teclado permite receber informação sobre a pressão de qualquer tecla através da função membro Tecla tecla(), que devolve uma instância da classe Tecla. Esta função não deve ser utilizada sem que haja uma tecla disponivel (i.e. sem que o utilizador tenha de facto pressionado uma tecla), a não ser que se pretenda esperar que o utilizador pressione uma tecla.

Para verificar se o utilizador carregou numa tecla, existe a função bool teclaDisponivel(int decimos_de_segundo) const. Esta função tem como argumento o número décimos de segundo que a função espera pela pressão de uma tecla. Não deve ser usado zero como argumento desta função, se ela fôr usada dentro de um ciclo, dado que pode tornar o sistema muito lento (10 décimos de segundo é um valor aceitável para o argumento desta função nessas circunstâncias).

A função membro void limpa() permite descartar as teclas que foram pressionadas pelo utilizador anteriormente e ainda não foram lidas e passar a considerar apenas as teclas que forem pressionadas a partir desse instante.

É definida uma variável global chamada teclado da classe Teclado, de modo que não é necessário, nem permitido, criar nenhuma variável deste tipo nos programas que fazem uso desta biblioteca, podendo-se utilizar directamente a variável teclado (como acontece no caso do canal cin).

Uma instância da classe Tecla pode ser uma tecla especial (definidas no enumerado Tecla::TeclaEnum) ou um caracter normal. É possível verificar se o valor armazenado numa instância da classe Tecla é um deslocamento ou um caracter normal através das funções membro bool Tecla::deslocamento() const e bool Tecla::caractere() const.

Exemplo de utilização

Este programa captura todas as teclas premidas até ser premido o caracter 's'. Se forem deslocamentos procede ao deslocamento respectivo do cursor. Se forem caracteres escreve-os no ecrã. Se a tecla pressionada corresponder a um caractere que não se pode imprimir no ecrã é mostrada uma mensagem adequada. Se for outra tecla aparece outra mensagem apropriada.

        include <Slang/slang.H> 

        using namespace Slang; 

        include <cctype> // para isprint().

        using namespace std;

        int main () 
        { 
            Ecra::ObjectoCor cor_normal(amarelo, preto); 
            Ecra::ObjectoCor cor_aviso(vermelho, preto); 

            while(true) { 
                if(teclado.teclaDisponivel(10)) { 
                    Tecla tecla_premida = teclado.tecla(); 

                    if(tecla_premida.deslocamento())
                        ecra.desloca(tecla_premida); 
                    else if(tecla_premida.caractere())
                        if(isprint(tecla_premida.comoChar()))
                            ecra << cor_normal << tecla_premida.comoChar();
                        else
                            ecra << cor_aviso << parado 
                                 << "Este nao se pode imprimir!";
                    else
                        ecra << cor_aviso << parado << "Tecla inválida!"; 
                    if(tecla_premida == 's')
                        break;
                } 
                ecra.refresca(); 
            }
        }
        

Definido na linha 199 do ficheiro teclado.H.


Documentação do Construtor & Destrutor

Slang::Teclado::Teclado ( )
 

Slang::Teclado::~Teclado ( ) [inline]
 

Definido na linha 33 do ficheiro teclado_impl.H.

00033                                {
00034     // Terminação do slang:
00035     SLang_reset_tty();
00036 }


Documentação dos métodos

void Slang::Teclado::limpa ( ) [inline]
 

Descarta todas as teclas pressionadas e ainda não lidas.

Definido na linha 46 do ficheiro teclado_impl.H.

00046                                 {
00047      SLang_flush_input();
00048 }

Slang::Tecla Slang::Teclado::tecla ( ) [inline]
 

Devolve a primeira das teclas pressionadas e ainda não lidas.

Definido na linha 42 do ficheiro teclado_impl.H.

00042                                       {
00043     return Tecla::TeclaEnum(SLkp_getkey());
00044 }

bool Slang::Teclado::teclaDisponivel ( int decimos_de_segundo = 0 ) const [inline]
 

Devolve true se alguma tecla tiver sido pressionada e portanto estiver disponível para leitura.

Desiste ao fim do tempo passado como argumento (em décimos de segundo).

Definido na linha 38 do ficheiro teclado_impl.H.

00038                                                                       {
00039     return SLang_input_pending(decimos_de_segundo) != 0;
00040 }


A documentação para esta classe foi gerada a partir dos seguintes ficheiros:
Gerado em Mon May 14 17:22:14 2001 para Slang++ por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001