HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
application_delegate.hpp
1// Copyright Take Vos 2020.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "datum.hpp"
8#include "version.hpp"
9#include <string>
10#include <vector>
11#include <optional>
12
13namespace tt {
14class gui_system;
15class gui_system_delegate;
16class audio_system_delegate;
17class application;
18
23public:
24 application_delegate() = default;
25 virtual ~application_delegate() = default;
26
27 virtual void init(application &self) {}
28 virtual void deinit(application &self) {}
29
32 virtual version application_version(application &self) const noexcept = 0;
33
36 virtual datum configuration(application &self, int argc, char *argv[]) const noexcept
37 {
38 return {};
39 }
40
45 {
46 return {};
47 }
48
53 {
54 return {};
55 }
56
62 virtual std::optional<int> main(application &self) = 0;
63
64};
65
66}
Definition application.hpp:36
application Delegate.
Definition application_delegate.hpp:22
virtual std::weak_ptr< audio_system_delegate > audio_system_delegate(application &self) noexcept
The delegate to be used for the audio system.
Definition application_delegate.hpp:44
virtual std::optional< int > main(application &self)=0
Initialize the application.
virtual datum configuration(application &self, int argc, char *argv[]) const noexcept
Definition application_delegate.hpp:36
virtual version application_version(application &self) const noexcept=0
virtual std::weak_ptr< gui_system_delegate > gui_system_delegate(application &self) noexcept
The delegate to be used for the gui system.
Definition application_delegate.hpp:52
Definition version.hpp:12