Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Window.hpp
1
2#pragma once
3#include <map>
4#include <memory>
5#include <alicorn\boost\filesystem.forward.hpp>
6#include <Covellite\Events\Events.hpp>
7#include <Covellite\App\IWindow.hpp>
8#include <Covellite\Gui\IWindow.hpp>
9#include <Covellite\Gui\Layers.hpp>
10
11namespace covellite
12{
13
14namespace api { class IWindow; }
15
16namespace gui
17{
18
19class Initializer;
20class StringTranslator;
21class Renderer;
22
47class Window final :
50{
52 using WindowApiPtr_t = ::std::shared_ptr<WindowApi_t>;
53 using Utf8String_t = ::std::string;
54 using StringBank_t = ::std::map<Utf8String_t, Utf8String_t>;
55 using Path_t = ::boost::filesystem::path;
56 using LayerPtr_t = ::std::shared_ptr<ILayer>;
59 using InitializerPtr_t = ::std::unique_ptr<Initializer_t>;
61 using StringTranslatorPtr_t = ::std::shared_ptr<StringTranslator_t>;
62 using Context_t = CovelliteGui::Context;
63 using ContextPtr_t = ::std::unique_ptr<Context_t, void(*)(Context_t *)>;
64 using Vector_t = CovelliteGui::Vector2i;
65 using RendererPtr_t = ::std::shared_ptr<covellite::gui::Renderer>;
66
67public:
68 class EventListener;
69 using EventListenerPtr_t = ::std::shared_ptr<EventListener>;
70
71public:
72 // Интерфейс events::IEvents:
73 operator Events_t (void) const override;
74
75public:
76 // Интерфейс gui::IWindow:
77 DocumentPtr_t LoadDocument(const PathToFile_t &) override;
78
79public:
80 void Set(const StringBank_t &);
81
82public:
83 // Функции работы со слоями (экранами) окна.
84 template<class TLayer>
85 TLayer & PushLayer(void);
86 void Back(void);
87
88private:
89 void PushLayer(const LayerPtr_t &);
90
91private:
92 Vector_t GetContextSize(void) const;
93 void DoDrawWindow(void);
94 void LoadFonts(void);
95
96private:
97 const WindowApi_t & m_WindowApi;
98 Events_t m_Events;
99 RendererPtr_t m_pRenderer;
100 EventListenerPtr_t m_pEventListener;
101 StringTranslatorPtr_t m_pStringTranslator;
102 InitializerPtr_t m_pInitializer;
103 ContextPtr_t m_pContext;
104 Layers_t m_Layers;
105 ::std::map<Path_t, ::std::vector<uint8_t>> m_RawDataFonts;
106
107public:
108 explicit Window(const WindowApi_t &);
109 ~Window(void) noexcept;
110};
111
112} // namespace gui
113
114} // namespace covellite
115
116#include <Covellite\Gui\Window.inl>
Класс входит в проект Covellite.Api Интерфейсный класс для всех окон, реализующих различные графиче...
Definition IWindow.hpp:35
Класс входит в проект Covellite.App Интерфейсный класс для классов окон фреймворка.
Definition IWindow.hpp:32
Класс входит в проект Covellite.Events Класс для работы с событиями фреймворка.
Definition Events.hpp:36
Класс входит в Covellite.Gui Вспомогательный класс для передачи событий библиотеки GUI классам окон...
Definition EventListener.hpp:32
Класс входит в проект Covellite.Gui Класс, инкапсулирующий инициализацию/разрушение используемой би...
Definition Initializer.hpp:41
Класс входит в проект Covellite.Gui Интерфесный класс окна, отображающего элементы GUI.
Definition IWindow.hpp:31
Класс входит в проект Covellite.Gui Класс списка слоев.
Definition Layers.hpp:35
Класс входит в проект Covellite.Gui Класс преобразователя строк.
Definition StringTranslator.hpp:34
Класс входит в проект Covellite.Gui Класс окна, отрисовывающий GUI.
Definition Window.hpp:50
void LoadFonts(void)
Функция загрузки используемых шрифтов.
Definition Window.cpp:217
Vector_t GetContextSize(void) const
Функция получения размеров панели контекста в пикселях.
Definition Window.cpp:191
TLayer & PushLayer(void)
Функция вставки нового слоя.
Definition Window.inl:32