00001 #include <cassert>
00002
00003 extern "C" {
00004 #include <slang/slang.h>
00005 }
00006
00007 // Definição de métodos inline da classe Tecla:
00008
00009 inline Slang::Tecla::Tecla(TeclaEnum tecla)
00010 : tecla(tecla) {
00011 }
00012
00013 inline Slang::Tecla::operator Slang::Tecla::TeclaEnum () const {
00014 return tecla;
00015 }
00016
00017 inline char Slang::Tecla::comoChar() const {
00018 assert(caractere());
00019 return char(tecla);
00020 }
00021
00022 inline bool Slang::Tecla::deslocamento() const {
00023 return tecla == cima || tecla == baixo || tecla == esquerda ||
00024 tecla == direita;
00025 }
00026
00027 inline bool Slang::Tecla::caractere() const {
00028 return (32 <= tecla and tecla < 127) or (160 <= tecla and tecla < 256);
00029 }
00030
00031 // Definição de métodos inline da classe Teclado:
00032
00033 inline Slang::Teclado::~Teclado() {
00034 // Terminação do slang:
00035 SLang_reset_tty();
00036 }
00037
00038 inline bool Slang::Teclado::teclaDisponivel(int decimos_de_segundo) const {
00039 return SLang_input_pending(decimos_de_segundo) != 0;
00040 }
00041
00042 inline Slang::Tecla Slang::Teclado::tecla() {
00043 return Tecla::TeclaEnum(SLkp_getkey());
00044 }
00045
00046 inline void Slang::Teclado::limpa() {
00047 SLang_flush_input();
00048 }
00049
1.2.6 escrito por Dimitri van Heesch,
© 1997-2001