Versión de Firmware con funciones de RAM incorporadas.
Dependencies: mbed
Fork of VmRecorderV1dot1 by
Diff: ScreenManager/Teclado.h
- Revision:
- 0:3d456b8ce449
diff -r 000000000000 -r 3d456b8ce449 ScreenManager/Teclado.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ScreenManager/Teclado.h Mon Jun 15 15:34:27 2015 +0000 @@ -0,0 +1,85 @@ +/** + * @author Juan Manuel Amador Olivares (virtualmech) + */ +#ifndef TECLADO_H +#define TECLADO_H + +#include "Seleccion.h" +#include "doggy.h" + +#define POSCADENAX 3 +#define OFFSETX 4 // Espacio en pixeles que se deja antes de escribir una linea de caracteres +#define OFFSETY 4 // Espacio en pixeles que se deja antes de escribir una linea de caracteres en la parte superior +#define CARACTER11 11 // Anchura de un caracter de media +#define CARACTER8 8 // Anchura de un caracter de media +#define WRITTENSPACE 9 // Pixeles de alto que requiere el espacio donde se irá mostrando lo que se está escribiendo con el teclado +#define MAXCARACTERESESCRITURA 19 // Máximos caracteres que se pueden escribir para el nombre del archivo + +#define FILASMATRIZ 5 +#define COLUMNASMATRIZ 11 + + +/*************************** + Para controlar la posición del teclado se va a hacer una matriz de 11x5. A cada elemento de la matriz se le asignará un valor (la letra correspondiente) + y valores especiales las teclas especiales: + + 0-> espacio vacio + 1-> borrar + 2-> mayus + 3-> barra espaciadora + 4-> Aplicar + **************************/ +#define BACK 1 +#define MAYUS 2 +#define SPACEBAR 3 +#define APLICAR 4 + +#define ULTIMOCARACTERESPECIAL 4 // Se va a usar para comprobar si un elemento de la matrzi es un caracter especial o tecla especial + + +// Lista de elementos seleccionables. Tamaño de caracteres 8. +class Teclado: public Seleccion{ + public: + + virtual void initialize(DogMLCD* lcd); + int addElement(char text[], char nameNextScreen[NCARSCREEN]); + + char *getNombre(); // Devuelve un puntero al último nombre escrito con el teclado + + void setNextScreen(char nameScreen[NCARSCREEN]); + + virtual void button1pressed(DogMLCD* lcd); // Esta función se llama cuando el botón superior es pulsado, definirla para añadir funcionalidades + virtual void button2pressed(DogMLCD* lcd); // Esta función se llama cuando el botón superior es pulsado, definirla para añadir funcionalidades + virtual void button3pressed(DogMLCD* lcd); // Esta función se llama cuando el botón superior es pulsado, definirla para añadir funcionalidades + virtual void button4pressed(DogMLCD* lcd); // Esta función se llama cuando el botón inferior es pulsado, definirla para añadir funcionalidades + virtual void button5pressed(DogMLCD* lcd); // Esta función se llama cuando el botón central es pulsado, definirla para añadir funcionalidades + + private: + + char nameNextScreen[NCARSCREEN]; + + char m[FILASMATRIZ][COLUMNASMATRIZ]; + char Xsel, Ysel, lastXsel, lastYsel; // posición x e y en la matriz del elemento seleccionado y el anterior + + char nombre[MAXCARACTERESESCRITURA+1]; // Guarda la cadena con el nombre escrito + char indiceEscritura; // Indica por donde se va escribiendo en el recuadro + + void mostrarCaracteres(DogMLCD* lcd); // Muestra los caracteres de la matriz + void mostrarEspeciales(DogMLCD* lcd); // Muestra los caracteres especiales + void asignarMinusculas(); // Asigna a la matriz valores de caracteres de las letras minusculas + void asignarMayusculas(); // Asigna a la matriz valores de caracteres de las letras minusculas + + void mostrarRecuadro(DogMLCD* lcd); // Muestra el recuadro que señala lo que se está escribiendo + + // Cuadros seleccionables especiales + void seleccionarBarraEspaciadora(DogMLCD* lcd); + void deseleccionarBarraEspaciadora(DogMLCD* lcd); + + void seleccionarAplicar(DogMLCD* lcd); + void deseleccionarAplicar(DogMLCD* lcd); + + bool ifMayus; + +}; + +#endif \ No newline at end of file