opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
liboscar
ui
popups
popup_manager.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <concepts>
4
#include <memory>
5
#include <utility>
6
#include <vector>
7
8
namespace
osc
{
class
Popup; }
9
10
namespace
osc
11
{
12
// generic storage for a drawable popup stack
13
class
PopupManager
final
{
14
public
:
15
PopupManager
();
16
PopupManager
(
const
PopupManager
&) =
delete
;
17
PopupManager
(
PopupManager
&&)
noexcept
;
18
PopupManager
&
operator
=(
const
PopupManager
&) =
delete
;
19
PopupManager
&
operator
=(
PopupManager
&&)
noexcept
;
20
~
PopupManager
()
noexcept
;
21
22
void
push_back
(std::
shared_ptr
<
Popup
>
ptr
)
23
{
24
popups_.push_back(std::move(
ptr
));
25
}
26
27
template
<std::derived_from<Popup> T,
typename
... Args>
28
requires
std::constructible_from<
T
,
Args
&&...>
29
T
&
emplace_back
(
Args
&&...
args
)
30
{
31
auto
ptr
= std::make_shared<T>(std::forward<Args>(
args
)...);
32
T
&
ref
= *
ptr
;
33
popups_.push_back(std::move(
ptr
));
34
return
ref
;
35
}
36
37
void
on_mount
() {
open_all
(); }
38
void
open_all
();
39
void
on_draw
();
40
[[
nodiscard
]]
bool
empty
();
41
void
clear
();
42
private
:
43
std::vector<std::shared_ptr<Popup>> popups_;
44
};
45
}
osc::PopupManager
Definition
popup_manager.h:13
osc::PopupManager::PopupManager
PopupManager(const PopupManager &)=delete
osc::PopupManager::PopupManager
PopupManager(PopupManager &&) noexcept
osc::PopupManager::on_mount
void on_mount()
Definition
popup_manager.h:37
osc::PopupManager::clear
void clear()
osc::PopupManager::empty
bool empty()
osc::PopupManager::push_back
void push_back(std::shared_ptr< Popup > ptr)
Definition
popup_manager.h:22
osc::PopupManager::emplace_back
T & emplace_back(Args &&... args)
Definition
popup_manager.h:29
osc::PopupManager::on_draw
void on_draw()
osc::PopupManager::open_all
void open_all()
osc::PopupManager::PopupManager
PopupManager()
osc::Popup
Definition
popup.h:17
osc
Definition
custom_decoration_generator.h:5
osc::Key::T
@ T
osc::to
constexpr U to(T &&value)
Definition
conversion.h:56
Generated by
1.9.8