on_screen_keyboard: Ya se dibuja el cursor

This commit is contained in:
2023-05-28 17:44:59 +02:00
parent cc421e56ea
commit c51eb06a61
2 changed files with 111 additions and 17 deletions

View File

@@ -19,12 +19,13 @@ class OnScreenKeyboard
{
private:
// Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana
Texture *iconTexture; // Textura para los gráficos
Text *text; // Objeto para dibujar texto
Input *input; // Gestor de eventos de entrada de teclado o gamepad
options_t *options; // Variable con todas las opciones del programa
SDL_Texture *texture; // Textura donde dibujar el objeto
SDL_Renderer *renderer; // El renderizador de la ventana
Texture *iconTexture; // Textura para los gráficos
Text *text; // Objeto para dibujar texto
Input *input; // Gestor de eventos de entrada de teclado o gamepad
options_t *options; // Variable con todas las opciones del programa
SDL_Texture *texture; // Textura donde dibujar el objeto
SDL_Texture *textureCursor; // Textura para dibujar el cursor
// Estructuras
struct key_t
@@ -34,6 +35,13 @@ private:
string caption; // Texto de la tecla
};
struct cursor_t
{
int col;
int row;
SDL_Rect dest;
};
// Variables
string char_upper; // Cadena de texto con las letras en mayúscula
string char_lower; // Cadena de texto con las letras en minuscula
@@ -52,6 +60,7 @@ private:
int height; // Altura del objeto
SDL_Rect dest; // Coordenadas donde se dibuja el objeto en pantalla
vector<key_t> layout; // Contiene la disposición del teclado
cursor_t cursor; // Variable para gestionar el cursor
// Rellena la textura de fondo con el color y el texto
void fillTexture();
@@ -68,6 +77,24 @@ private:
// Establece la disposición del teclado
void setLayout();
// Comprueba las entradas
void checkInput();
// Disminuye en una columna la posición del cursor
void decCursorCol();
// Incrementa en una columna la posición del cursor
void incCursorCol();
// Disminuye en una fila la posición del cursor
void decCursorRow();
// Aumenta en una columna la posición del cursor
void incCursorRow();
// Actualiza la posición de la textura del cursor
void updateCursor();
public:
// Constructor
OnScreenKeyboard(SDL_Renderer *renderer, Input *input, string iconFile, string bitmapFile, string textFile, options_t *options, int width, int height, color_t color = {0, 0, 0});