R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
IUIFactory.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** r-type
4** File description:
5** IUIFactory - Abstract factory for creating UI elements
6*/
7
8#pragma once
9
10#include <memory>
11
12#include "UI/IButton.hpp"
13#include "UI/IMenu.hpp"
14#include "UI/ISlider.hpp"
15#include "UI/ITextInput.hpp"
16
17namespace UI {
28 class IUIFactory {
29 public:
31 virtual ~IUIFactory() = default;
32
37 virtual std::unique_ptr<IButton> CreateButton() = 0;
38
43 virtual std::unique_ptr<IMenu> CreateMenu() = 0;
44
49 virtual std::unique_ptr<ITextInput> CreateTextInput() = 0;
50
55 virtual std::unique_ptr<ISlider> CreateSlider() = 0;
56 };
57} // namespace UI
Abstract factory interface for creating UI elements.
virtual std::unique_ptr< IMenu > CreateMenu()=0
Create a menu instance.
virtual ~IUIFactory()=default
Virtual destructor.
virtual std::unique_ptr< ITextInput > CreateTextInput()=0
Create a text input instance.
virtual std::unique_ptr< IButton > CreateButton()=0
Create a button instance.
virtual std::unique_ptr< ISlider > CreateSlider()=0
Create a slider instance.
Definition IButton.hpp:13