R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
ConfirmQuitMenu.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2026
3** r-type
4** File description:
5** ConfirmQuitMenu - Quit confirmation dialog (business logic)
6*/
7
8#pragma once
9
10#include <functional>
11#include <memory>
12
13#include "Menu/BaseMenu.hpp"
14#include "UI/IUIFactory.hpp"
15
16namespace Game {
24 class ConfirmQuitMenu : public BaseMenu {
25 public:
30 explicit ConfirmQuitMenu(UI::IUIFactory &uiFactory);
31 ~ConfirmQuitMenu() override = default;
32
36 void Initialize() override;
37
41 void SetOnConfirm(std::function<void()> callback);
42
46 void SetOnCancel(std::function<void()> callback);
47
48 private:
49 void OnConfirmClicked();
50 void OnCancelClicked();
51
52 std::function<void()> _onConfirm{};
53 std::function<void()> _onCancel{};
54 };
55} // namespace Game
Base class for all menu implementations.
Definition BaseMenu.hpp:26
Simple quit confirmation dialog.
void SetOnCancel(std::function< void()> callback)
Set callback invoked when user cancels.
~ConfirmQuitMenu() override=default
std::function< void()> _onConfirm
void SetOnConfirm(std::function< void()> callback)
Set callback invoked when user confirms quit.
std::function< void()> _onCancel
void Initialize() override
Initialize UI elements (creates buttons).
Abstract factory interface for creating UI elements.