fix MenuRenderer: corregida la animació del cuadro del menu de servei
This commit is contained in:
@@ -5,25 +5,27 @@
|
||||
#include <vector>
|
||||
#include <SDL3/SDL.h>
|
||||
#include "ui/service_menu.h" // Necesario para las enums y para acceder al estado del menú
|
||||
#include "utils.h" // Para Color
|
||||
#include "utils.h" // Para Color
|
||||
|
||||
// Forward declarations
|
||||
class Text;
|
||||
class MenuOption;
|
||||
|
||||
class MenuRenderer {
|
||||
class MenuRenderer
|
||||
{
|
||||
public:
|
||||
MenuRenderer(std::shared_ptr<Text> element_text, std::shared_ptr<Text> title_text);
|
||||
|
||||
// Métodos principales de la vista
|
||||
void render(const ServiceMenu* menu_state);
|
||||
void update(const ServiceMenu* menu_state);
|
||||
void render(const ServiceMenu *menu_state);
|
||||
void update(const ServiceMenu *menu_state);
|
||||
|
||||
// Método para notificar al renderer que el layout puede haber cambiado
|
||||
void onLayoutChanged(const ServiceMenu* menu_state);
|
||||
void onLayoutChanged(const ServiceMenu *menu_state);
|
||||
void setLayout(const ServiceMenu *menu_state);
|
||||
|
||||
// Getters
|
||||
const SDL_FRect& getRect() const { return rect_; }
|
||||
const SDL_FRect &getRect() const { return rect_; }
|
||||
|
||||
private:
|
||||
// --- Referencias a los renderizadores de texto ---
|
||||
@@ -54,15 +56,17 @@ private:
|
||||
int resize_anim_step_ = 0;
|
||||
int resize_anim_steps_ = 8;
|
||||
bool resizing_ = false;
|
||||
|
||||
|
||||
// --- Anchos precalculados ---
|
||||
int group_menu_widths_[5]{};
|
||||
|
||||
// --- Métodos privados de la vista ---
|
||||
void setAnchors(const ServiceMenu* menu_state);
|
||||
void resize(const ServiceMenu* menu_state);
|
||||
void setAnchors(const ServiceMenu *menu_state);
|
||||
SDL_FRect calculateNewRect(const ServiceMenu *menu_state);
|
||||
void resize(const ServiceMenu *menu_state);
|
||||
void setSize(const ServiceMenu *menu_state);
|
||||
void updateResizeAnimation();
|
||||
void precalculateMenuWidths(const std::vector<std::unique_ptr<MenuOption>>& all_options, const ServiceMenu* menu_state);
|
||||
void precalculateMenuWidths(const std::vector<std::unique_ptr<MenuOption>> &all_options, const ServiceMenu *menu_state);
|
||||
int getMenuWidthForGroup(ServiceMenu::SettingsGroup group) const;
|
||||
Color getAnimatedSelectedColor();
|
||||
void updateColorCounter();
|
||||
|
||||
Reference in New Issue
Block a user