00001
00010 #ifndef SLANG_TECLADO_H
00011 #define SLANG_TECLADO_H
00012
00013 namespace Slang {
00014
00028 class Tecla {
00029 public:
00030
00038 enum TeclaEnum {
00039 nula = 0,
00040 ctrl_a = 1,
00041 ctrl_b = 2,
00042 ctrl_c = 3,
00043 ctrl_d = 4,
00044 ctrl_e = 5,
00045 ctrl_f = 6,
00046 ctrl_g = 7,
00047 ctrl_h = 8,
00048 ctrl_i = 9,
00049 ctrl_j = 10,
00050 ctrl_k = 11,
00051 ctrl_l = 12,
00052 ctrl_m = 13,
00053 ctrl_n = 14,
00054 ctrl_o = 15,
00055 ctrl_p = 16,
00056 ctrl_q = 17,
00057 ctrl_r = 18,
00058 ctrl_s = 19,
00059 ctrl_t = 20,
00060 ctrl_u = 21,
00061 ctrl_v = 22,
00062 ctrl_w = 23,
00063 ctrl_x = 24,
00064 ctrl_y = 25,
00065 ctrl_z = 26,
00066 refresca = 12,
00067 cima = 0x101,
00068 baixo = 0x102,
00069 esquerda = 0x103,
00070 direita = 0x104,
00071 pagina_anterior = 0x105,
00072 pagina_seguinte = 0x106,
00073 casa = 0x107,
00074 fim = 0x108,
00075 a1 = 0x109,
00076 a3 = 0x10A,
00077 b2 = 0x10B,
00078 c1 = 0x10C,
00079 c3 = 0x10D,
00080 refaz = 0x10E,
00081 desfaz = 0x10F,
00082 apaga_para_tras = 0x110,
00083 entrada = 0xD,
00084
00085 insere = 0x112,
00086 apaga = 0x113,
00087 F0 = 0x200,
00088 F1 = 0x201,
00089 F2 = 0x202,
00090 F3 = 0x203,
00091 F4 = 0x204,
00092 F5 = 0x205,
00093 F6 = 0x206,
00094 F7 = 0x207,
00095 F8 = 0x208,
00096 F9 = 0x209,
00097 F10 = 0x20A,
00098 F11 = 0x20B,
00099 F12 = 0x20C,
00100 erro = 0xFFFF
00101 };
00102
00104
00105
00112 Tecla(TeclaEnum tecla);
00113
00115
00117
00118
00125 operator TeclaEnum () const;
00126
00132 char comoChar() const;
00133
00135
00137
00138
00146 bool eDeDeslocamento() const;
00147
00152 bool eChar() const;
00153
00155
00156 private:
00157 TeclaEnum tecla;
00158 };
00159
00215 class Teclado {
00216 public:
00217
00219
00220
00225 Teclado();
00226
00232 ~Teclado();
00233
00235
00237
00238
00245 Tecla teclaLida() const;
00246
00248
00250
00251
00259 bool haTeclaDisponivel(int decimos_de_segundo = 0) const;
00260
00262
00264
00265
00272 void leProximaTeclaDisponivel();
00273
00280 void descartaTeclasDisponiveis();
00281
00283
00284 private:
00285 Tecla tecla_lida;
00286 static bool existe_instancia;
00287 };
00288
00295 extern Teclado teclado;
00296 }
00297
00298 #include "teclado_impl.H"
00299
00300 #endif // SLANG_TECLADO_H