mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-08-09 02:07:04 +08:00
refactor(ui): extract common UI manager logic into base class
This commit is contained in:
@@ -58,88 +58,4 @@ void MainMenuUIManager::init() {
|
||||
m_root_widget = std::move(rect);
|
||||
}
|
||||
|
||||
void MainMenuUIManager::update(float dt) { m_root_widget->update(dt); }
|
||||
|
||||
void MainMenuUIManager::render(Renderer& renderer) {
|
||||
renderer.begin_render_ui();
|
||||
|
||||
m_root_widget->render(renderer);
|
||||
|
||||
renderer.end_render_ui();
|
||||
}
|
||||
bool MainMenuUIManager::handle_event(const Event& e) {
|
||||
return std::visit(
|
||||
Overloaded{[this](const MouseMoveEvent& e) {
|
||||
if (handle_mouse_move_event(e)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
[this](const MouseButtonEvent& e) {
|
||||
if (handle_mouse_button_event(e)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
[this](const MouseWheelEvent& e) {
|
||||
if (handle_mouse_wheel_event(e)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
[this](const KeyEvent& e) {
|
||||
if (handle_key_event(e)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
[](const TextInputEvent&) { return false; },
|
||||
[this](const WindowResizeEvent& e) {
|
||||
handle_window_resize_event(e);
|
||||
return false;
|
||||
},
|
||||
[](const FrameBufferResizeEvent&) { return false; }
|
||||
|
||||
},
|
||||
e);
|
||||
}
|
||||
bool MainMenuUIManager::handle_mouse_move_event(const MouseMoveEvent& e) {
|
||||
if (m_root_widget->handle_mouse_move_event(e)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool MainMenuUIManager::handle_mouse_button_event(const MouseButtonEvent& e) {
|
||||
|
||||
if (m_root_widget->handle_mouse_button_event(e)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
bool MainMenuUIManager::handle_window_resize_event(const WindowResizeEvent& e) {
|
||||
|
||||
if (m_root_widget->handle_window_resize_event(e)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
bool MainMenuUIManager::handle_mouse_wheel_event(const MouseWheelEvent& e) {
|
||||
|
||||
if (m_root_widget->handle_mouse_wheel_event(e)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
bool MainMenuUIManager::handle_key_event(const KeyEvent& e) {
|
||||
|
||||
if (m_root_widget->handle_key_event(e)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace Cubed
|
||||
Reference in New Issue
Block a user