revisió de capçaleres
This commit is contained in:
@@ -1,63 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <array>
|
||||
#include "utils.h"
|
||||
#include <array> // Para std::array
|
||||
#include <string> // Para std::string
|
||||
#include "utils.h" // Archivo de utilidades
|
||||
|
||||
// Tamaño máximo del nombre
|
||||
constexpr size_t NAME_SIZE = 3;
|
||||
|
||||
/*
|
||||
Un array, "characterList", contiene la lista de caracteres
|
||||
Un segundo array, "characterIndex", contiene el indice a "characterList" de cada una de las letras que conforman el nombre
|
||||
"pos" es la posición de "characterIndex" que se está modificando
|
||||
Izquierda o derecha modifican "pos", arriba o abajo modifican el índice de "characterIndex[pos]"
|
||||
Pulsar cualquier botón, mueve "pos" a la derecha. Al pulsar el botón en la ´´ultima posición se finaliza la introducción de nombres
|
||||
*/
|
||||
|
||||
// Clase EnterName
|
||||
class EnterName
|
||||
{
|
||||
private:
|
||||
std::string character_list_; // Lista de todos los caracteres permitidos
|
||||
std::string name_; // Nombre introducido
|
||||
size_t position_ = 0; // Posición a editar del nombre
|
||||
bool position_overflow_ = false; // Indica si hemos incrementado la posición más allá del límite
|
||||
std::array<int, NAME_SIZE> character_index_; // Indice de la lista para cada uno de los caracteres que forman el nombre
|
||||
|
||||
// Actualiza el nombre a partir de la lista de índices
|
||||
void updateNameFromCharacterIndex();
|
||||
|
||||
// Actualiza la variable
|
||||
void initCharacterIndex(const std::string &name);
|
||||
|
||||
// Encuentra el indice de un caracter en "characterList"
|
||||
int findIndex(char character) const;
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
EnterName();
|
||||
|
||||
// Destructor
|
||||
~EnterName() = default;
|
||||
|
||||
// Inicializa el objeto
|
||||
void init(const std::string &name = "");
|
||||
void init(const std::string &name = ""); // Inicializa con un nombre opcional
|
||||
|
||||
// Incrementa la posición
|
||||
void incPosition();
|
||||
void incPosition(); // Incrementa la posición del carácter actual
|
||||
void decPosition(); // Decrementa la posición del carácter actual
|
||||
void incIndex(); // Incrementa el índice del carácter en la lista
|
||||
void decIndex(); // Decrementa el índice del carácter en la lista
|
||||
|
||||
// Decrementa la posición
|
||||
void decPosition();
|
||||
std::string getFinalName() const { return trim(name_.substr(0, position_)); } // Obtiene el nombre final introducido
|
||||
std::string getCurrentName() const { return trim(name_); } // Obtiene el nombre actual en proceso
|
||||
|
||||
// Incrementa el índice
|
||||
void incIndex();
|
||||
int getPosition() const { return position_; } // Posición actual del carácter editado
|
||||
bool getPositionOverflow() const { return position_overflow_; } // Indica si la posición excede el límite
|
||||
|
||||
// Decrementa el índice
|
||||
void decIndex();
|
||||
private:
|
||||
std::string character_list_; // Lista de caracteres permitidos
|
||||
std::string name_; // Nombre en proceso
|
||||
size_t position_ = 0; // Índice del carácter que se edita
|
||||
bool position_overflow_ = false; // Flag para exceder límite
|
||||
std::array<int, NAME_SIZE> character_index_; // Índices a `character_list_`
|
||||
|
||||
// Getters
|
||||
std::string getFinalName() const { return trim(name_.substr(0, position_)); }
|
||||
std::string getCurrentName() const { return trim(name_); }
|
||||
int getPosition() const { return position_; }
|
||||
bool getPositionOverflow() const { return position_overflow_; }
|
||||
void updateNameFromCharacterIndex(); // Actualiza `name_` según `character_index_`
|
||||
void initCharacterIndex(const std::string &name); // Inicializa índices desde el nombre
|
||||
int findIndex(char character) const; // Busca el índice de un carácter en `character_list_`
|
||||
};
|
||||
Reference in New Issue
Block a user