Blender
V5.0
source
blender
editors
interface
interface_button_group.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9
#include "
interface_intern.hh
"
10
11
/* -------------------------------------------------------------------- */
14
15
void
ui_block_new_button_group
(
uiBlock
*block,
uiButtonGroupFlag
flag
)
16
{
17
/* Don't create a new group if there is a "lock" on new groups. */
18
if
(!block->
button_groups
.
is_empty
()) {
19
uiButtonGroup
&last_group = block->
button_groups
.
last
();
20
if
(last_group.
flag
&
UI_BUTTON_GROUP_LOCK
) {
21
return
;
22
}
23
}
24
25
block->
button_groups
.
append
({});
26
block->
button_groups
.
last
().
flag
=
flag
;
27
}
28
29
void
ui_button_group_add_but
(
uiBlock
*block,
uiBut
*but)
30
{
31
if
(block->
button_groups
.
is_empty
()) {
32
ui_block_new_button_group
(block,
uiButtonGroupFlag
(0));
33
}
34
35
uiButtonGroup
¤t_group = block->
button_groups
.
last
();
36
current_group.
buttons
.
append
(but);
37
}
38
39
void
ui_button_group_replace_but_ptr
(
uiBlock
*block,
const
uiBut
*old_but_ptr,
uiBut
*new_but)
40
{
41
for
(
uiButtonGroup
&group : block->
button_groups
) {
42
std::replace_if(
43
group.
buttons
.
begin
(),
44
group.
buttons
.
end
(),
45
[&](
const
uiBut
*
ptr
) { return ptr == old_but_ptr; },
46
new_but);
47
}
48
}
49
Vector::append
void append(const T &value)
Definition
BLI_vector.hh:489
Vector::last
const T & last(const int64_t n=0) const
Definition
BLI_vector.hh:740
Vector::is_empty
bool is_empty() const
Definition
BLI_vector.hh:783
Vector::end
T * end()
Definition
BLI_vector.hh:962
Vector::begin
T * begin()
Definition
BLI_vector.hh:958
ui_button_group_replace_but_ptr
void ui_button_group_replace_but_ptr(uiBlock *block, const uiBut *old_but_ptr, uiBut *new_but)
Definition
interface_button_group.cc:39
ui_block_new_button_group
void ui_block_new_button_group(uiBlock *block, uiButtonGroupFlag flag)
Definition
interface_button_group.cc:15
ui_button_group_add_but
void ui_button_group_add_but(uiBlock *block, uiBut *but)
Definition
interface_button_group.cc:29
interface_intern.hh
uiButtonGroupFlag
uiButtonGroupFlag
Definition
interface_intern.hh:561
UI_BUTTON_GROUP_LOCK
@ UI_BUTTON_GROUP_LOCK
Definition
interface_intern.hh:563
uiBlock
Definition
interface_intern.hh:588
uiBlock::button_groups
blender::Vector< uiButtonGroup > button_groups
Definition
interface_intern.hh:598
uiBut
Definition
interface_intern.hh:172
uiButtonGroup
Definition
interface_intern.hh:575
uiButtonGroup::flag
uiButtonGroupFlag flag
Definition
interface_intern.hh:577
uiButtonGroup::buttons
blender::Vector< uiBut * > buttons
Definition
interface_intern.hh:576
ptr
PointerRNA * ptr
Definition
wm_files.cc:4238
flag
uint8_t flag
Definition
wm_window.cc:145
Generated on
for Blender by
doxygen
1.16.1