Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
operation-blocker.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
3
#ifndef SEEN_OPERATION_BLOCKER_H
4
#define SEEN_OPERATION_BLOCKER_H
5
6
// cooperative counter-based pending operation blocking
7
8
class
OperationBlocker
{
9
public
:
10
OperationBlocker
() =
default
;
11
12
bool
pending
()
const
{
13
return
_counter
> 0;
14
}
15
16
class
scoped_block
{
17
public
:
18
scoped_block
(
unsigned
int
&
counter
):
_c
(
counter
) {
19
++
_c
;
20
}
21
22
~scoped_block
() {
23
--
_c
;
24
}
25
26
private
:
27
unsigned
int
&
_c
;
28
};
29
30
[[nodiscard]]
scoped_block
block
() {
31
return
scoped_block
(
_counter
);
32
}
33
34
private
:
35
unsigned
int
_counter
= 0;
36
};
37
38
#endif
OperationBlocker::scoped_block
Definition
operation-blocker.h:16
OperationBlocker::scoped_block::~scoped_block
~scoped_block()
Definition
operation-blocker.h:22
OperationBlocker::scoped_block::_c
unsigned int & _c
Definition
operation-blocker.h:27
OperationBlocker::scoped_block::scoped_block
scoped_block(unsigned int &counter)
Definition
operation-blocker.h:18
OperationBlocker
Definition
operation-blocker.h:8
OperationBlocker::OperationBlocker
OperationBlocker()=default
OperationBlocker::block
scoped_block block()
Definition
operation-blocker.h:30
OperationBlocker::pending
bool pending() const
Definition
operation-blocker.h:12
OperationBlocker::_counter
unsigned int _counter
Definition
operation-blocker.h:35
counter
static gint counter
Definition
box3d.cpp:39
src
ui
operation-blocker.h
Generated on Sun Jul 6 2025 04:02:04 for Inkscape by
1.9.8