Unravel Engine C++ Reference
Loading...
Searching...
No Matches
lambda_actions.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
editing_action.h
"
4
#include <functional>
5
6
namespace
unravel
7
{
8
9
// Non-undoable lambda action
10
struct
untracked_action_t
:
crtp_meta_type
<untracked_action_t, editing_action_t>
11
{
12
using
action_t
= std::function<void()>;
13
action_t
action
{};
14
15
untracked_action_t
(
action_t
act);
16
17
void
do_action
()
override
;
18
void
undo_action
()
override
;
19
auto
is_undoable
() const ->
bool
override;
20
};
21
22
// Undoable lambda action with separate do/undo functions
23
struct
tracked_lambda_action_t
:
crtp_meta_type
<
tracked_lambda_action_t
,
editing_action_t
>
24
{
25
using
action_t
= std::function<void()>;
26
action_t
do_func{};
27
action_t
undo_func{};
28
29
tracked_lambda_action_t
(
action_t
do_action
,
action_t
undo_action
);
30
31
void
do_action
()
override
;
32
void
undo_action
()
override
;
33
auto
is_undoable
() const ->
bool
override;
34
};
35
36
}
// namespace unravel
editing_action.h
unravel
Definition
crash.cpp:21
crtp_meta_type
Definition
registration.h:9
unravel::editing_action_t
Definition
editing_action.h:12
unravel::tracked_lambda_action_t
Definition
lambda_actions.h:24
unravel::tracked_lambda_action_t::action_t
std::function< void()> action_t
Definition
lambda_actions.h:25
unravel::untracked_action_t
Definition
lambda_actions.h:11
unravel::untracked_action_t::is_undoable
auto is_undoable() const -> bool override
Definition
lambda_actions.cpp:25
unravel::untracked_action_t::action_t
std::function< void()> action_t
Definition
lambda_actions.h:12
unravel::untracked_action_t::do_action
void do_action() override
Definition
lambda_actions.cpp:12
unravel::untracked_action_t::action
action_t action
Definition
lambda_actions.h:13
unravel::untracked_action_t::untracked_action_t
untracked_action_t(action_t act)
Definition
lambda_actions.cpp:7
unravel::untracked_action_t::undo_action
void undo_action() override
Definition
lambda_actions.cpp:20
UnravelEngine
UnravelEngine
editor
editor
editing
actions
lambda_actions.h
Generated by
1.12.0