Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Application.hpp
1
2#pragma once
3#include <memory>
4#include <stack>
5#include <functional>
6#include <Covellite/Events/Events.hpp>
7#include <Covellite/App/IApplication.hpp>
8
9class Application_test;
10
11namespace covellite
12{
13
14namespace app
15{
16
17class IWindow;
18
50 public IApplication
51{
52 using Windows_t = ::std::stack<::std::shared_ptr<IWindow>>;
53 using Run_t = ::std::function<void(void)>;
54 using CreateApp_t = ::std::function<::std::unique_ptr<Application>(void)>;
55
56public:
57 class Continuous {};
58 class EventBased {};
61
62public:
63 // Итерфейс IApplication:
64 operator Events_t (void) const final { return m_Events; }
65
66public:
67 template<class>
68 static void Main(void *) noexcept;
69 ::std::string GetCommandLine(void) const;
71 const Run_t Run;
72
73protected:
74 template<class TWindow, class ... TArgs>
75 TWindow & MakeWindow(TArgs && ...);
76
77private:
78 static void Main(CreateApp_t, void *) noexcept;
79 VIRTUAL_MOCK bool PostCommand(bool);
80
81protected:
82 events::Events m_Events;
83
84private:
85 bool m_IsFocused = false;
86 Windows_t m_Windows;
87
88private:
89 explicit Application(const Run_t &);
90
91public:
92 explicit Application(Continuous);
93 explicit Application(EventBased);
94 virtual ~Application(void) noexcept;
95
96private:
97 friend Application_test;
98 FRIEND_TEST(Application_test, /*DISABLED_*/Test_MakeWindow);
99 FRIEND_TEST(Application_android_test, /*DISABLED_*/Test_OnTermWindow);
100 FRIEND_TEST(Application_android_test, /*DISABLED_*/Test_PostCommand);
101};
102
103} // namespace app
104
105} // namespace covellite
106
107#include <Covellite\App\Application.inl>
Класс входит в проект Covellite.App Базовый класс приложения для Android.
Definition Application.hpp:51
static void Main(void *) noexcept
Функция точки входа в программу.
Definition Application.inl:58
const Run_t Run
Объект функции запуска главного цикла программы.
Definition Application.hpp:71
VIRTUAL_MOCK bool PostCommand(bool)
Функция вызова сигнала произошедшего события..
Definition Application.android.cpp:233
::std::string GetCommandLine(void) const
Функция получения параметров командной строки, которые были переданы программе ее при запуске.
Definition Application.android.cpp:212
Непрерывная отрисовка экрана (режим работы игры).
Definition Application.hpp:57
Definition Application.hpp:58
Класс входит в проект Covellite.App Интерфейсный класс приложения.
Definition IApplication.hpp:28
Класс входит в проект Covellite.Events Класс для работы с событиями фреймворка.
Definition Events.hpp:36