Blender
V4.3
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
9
#include "
MEM_guardedalloc.h
"
10
11
#include "
interface_intern.hh
"
12
13
/* -------------------------------------------------------------------- */
17
void
ui_block_new_button_group
(
uiBlock
*block,
uiButtonGroupFlag
flag
)
18
{
19
/* Don't create a new group if there is a "lock" on new groups. */
20
if
(!block->
button_groups
.
is_empty
()) {
21
uiButtonGroup
&last_group = block->
button_groups
.
last
();
22
if
(last_group.
flag
&
UI_BUTTON_GROUP_LOCK
) {
23
return
;
24
}
25
}
26
27
block->
button_groups
.
append
({});
28
block->
button_groups
.
last
().
flag
=
flag
;
29
}
30
31
void
ui_button_group_add_but
(
uiBlock
*block,
uiBut
*but)
32
{
33
if
(block->
button_groups
.
is_empty
()) {
34
ui_block_new_button_group
(block,
uiButtonGroupFlag
(0));
35
}
36
37
uiButtonGroup
¤t_group = block->
button_groups
.
last
();
38
current_group.
buttons
.
append
(but);
39
}
40
41
void
ui_button_group_replace_but_ptr
(
uiBlock
*block,
const
uiBut
*old_but_ptr,
uiBut
*new_but)
42
{
43
for
(
uiButtonGroup
&group : block->
button_groups
) {
44
std::replace_if(
45
group.buttons.begin(),
46
group.buttons.end(),
47
[&](
const
uiBut
*
ptr
) { return ptr == old_but_ptr; },
48
new_but);
49
}
50
}
51
MEM_guardedalloc.h
Read Guarded memory(de)allocation.
blender::Vector::append
void append(const T &value)
Definition
BLI_vector.hh:430
blender::Vector::last
const T & last(const int64_t n=0) const
Definition
BLI_vector.hh:660
blender::Vector::is_empty
bool is_empty() const
Definition
BLI_vector.hh:703
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:41
ui_block_new_button_group
void ui_block_new_button_group(uiBlock *block, uiButtonGroupFlag flag)
Definition
interface_button_group.cc:17
ui_button_group_add_but
void ui_button_group_add_but(uiBlock *block, uiBut *but)
Definition
interface_button_group.cc:31
interface_intern.hh
uiButtonGroupFlag
uiButtonGroupFlag
Definition
interface_intern.hh:530
UI_BUTTON_GROUP_LOCK
@ UI_BUTTON_GROUP_LOCK
Definition
interface_intern.hh:532
uiBlock
Definition
interface_intern.hh:555
uiBlock::button_groups
blender::Vector< uiButtonGroup > button_groups
Definition
interface_intern.hh:565
uiBut
Definition
interface_intern.hh:174
uiButtonGroup
Definition
interface_intern.hh:544
uiButtonGroup::flag
uiButtonGroupFlag flag
Definition
interface_intern.hh:546
uiButtonGroup::buttons
blender::Vector< uiBut * > buttons
Definition
interface_intern.hh:545
ptr
PointerRNA * ptr
Definition
wm_files.cc:4126
flag
uint8_t flag
Definition
wm_window.cc:138
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0