Help Overlay: implementación preliminar
This commit is contained in:
@@ -10,12 +10,14 @@
|
||||
#include "../text/textrenderer.h" // for TextRenderer
|
||||
#include "../theme_manager.h" // for ThemeManager
|
||||
#include "notifier.h" // for Notifier
|
||||
#include "help_overlay.h" // for HelpOverlay
|
||||
|
||||
UIManager::UIManager()
|
||||
: text_renderer_(nullptr)
|
||||
, text_renderer_debug_(nullptr)
|
||||
, text_renderer_notifier_(nullptr)
|
||||
, notifier_(nullptr)
|
||||
, help_overlay_(nullptr)
|
||||
, show_debug_(false)
|
||||
, show_text_(true)
|
||||
, text_()
|
||||
@@ -38,6 +40,7 @@ UIManager::~UIManager() {
|
||||
delete text_renderer_debug_;
|
||||
delete text_renderer_notifier_;
|
||||
delete notifier_;
|
||||
delete help_overlay_;
|
||||
}
|
||||
|
||||
void UIManager::initialize(SDL_Renderer* renderer, ThemeManager* theme_manager,
|
||||
@@ -63,6 +66,10 @@ void UIManager::initialize(SDL_Renderer* renderer, ThemeManager* theme_manager,
|
||||
notifier_->init(renderer, text_renderer_notifier_, theme_manager_,
|
||||
physical_width, physical_height);
|
||||
|
||||
// Crear y configurar sistema de ayuda (overlay)
|
||||
help_overlay_ = new HelpOverlay();
|
||||
help_overlay_->initialize(renderer, theme_manager_, physical_width, physical_height);
|
||||
|
||||
// Inicializar FPS counter
|
||||
fps_last_time_ = SDL_GetTicks();
|
||||
fps_frame_count_ = 0;
|
||||
@@ -114,12 +121,23 @@ void UIManager::render(SDL_Renderer* renderer,
|
||||
|
||||
// Renderizar notificaciones (siempre al final, sobre todo lo demás)
|
||||
notifier_->render();
|
||||
|
||||
// Renderizar ayuda (siempre última, sobre todo incluso notificaciones)
|
||||
if (help_overlay_) {
|
||||
help_overlay_->render(renderer);
|
||||
}
|
||||
}
|
||||
|
||||
void UIManager::toggleDebug() {
|
||||
show_debug_ = !show_debug_;
|
||||
}
|
||||
|
||||
void UIManager::toggleHelp() {
|
||||
if (help_overlay_) {
|
||||
help_overlay_->toggle();
|
||||
}
|
||||
}
|
||||
|
||||
void UIManager::showNotification(const std::string& text, Uint64 duration) {
|
||||
if (duration == 0) {
|
||||
duration = NOTIFICATION_DURATION;
|
||||
@@ -135,6 +153,9 @@ void UIManager::updatePhysicalWindowSize(int width, int height) {
|
||||
physical_window_width_ = width;
|
||||
physical_window_height_ = height;
|
||||
notifier_->updateWindowSize(width, height);
|
||||
if (help_overlay_) {
|
||||
help_overlay_->updatePhysicalWindowSize(width, height);
|
||||
}
|
||||
}
|
||||
|
||||
void UIManager::setTextObsolete(const std::string& text, int pos, int current_screen_width) {
|
||||
|
||||
Reference in New Issue
Block a user