R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
RaylibUIFactory.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** r-type
4** File description:
5** RaylibUIFactory - Factory for creating Raylib UI elements
6*/
7
8#pragma once
9
11#include "UI/IUIFactory.hpp"
12
13namespace UI {
24 class RaylibUIFactory : public IUIFactory {
25 public:
30 explicit RaylibUIFactory(Graphics::IGraphics &graphics);
31
33 ~RaylibUIFactory() override = default;
34
36 std::unique_ptr<IButton> CreateButton() override;
37
39 std::unique_ptr<IMenu> CreateMenu() override;
40
42 std::unique_ptr<ITextInput> CreateTextInput() override;
43
45 std::unique_ptr<ISlider> CreateSlider() override;
46
47 private:
49 };
50} // namespace UI
Abstract interface for graphics rendering operations.
Definition IGraphics.hpp:32
Abstract factory interface for creating UI elements.
Raylib implementation of the IUIFactory interface.
~RaylibUIFactory() override=default
Destructor.
Graphics::IGraphics & _graphics
Graphics dependency injected into UI elements.
std::unique_ptr< ISlider > CreateSlider() override
Create a slider instance.
std::unique_ptr< IMenu > CreateMenu() override
Create a menu instance.
std::unique_ptr< ITextInput > CreateTextInput() override
Create a text input instance.
std::unique_ptr< IButton > CreateButton() override
Create a button instance.
Definition IButton.hpp:13