84 const struct uiBut *but);
90 #define UI_BUT_VALUE_UNSET DBL_MAX
91 #define UI_GET_BUT_VALUE_INIT(_but, _value) \
92 if (_value == DBL_MAX) { \
93 (_value) = ui_but_value_get(_but); \
136 *r_x = ((
float)getsizex) * (0.5f + 0.5f * (gx * block->
winmat[0][0] + gy * block->
winmat[1][0] +
138 *r_y = ((
float)getsizey) * (0.5f + 0.5f * (gx * block->
winmat[0][1] + gy * block->
winmat[1][1] +
156 *r_x = (int)(fx + 0.5f);
157 *r_y = (int)(fy + 0.5f);
183 float min_y = 0, max_y = 1;
184 float dummy_x = 0.0f;
188 return max_y - min_y;
198 const float a = 0.5f * ((
float)getsizex) * block->
winmat[0][0];
199 const float b = 0.5f * ((
float)getsizex) * block->
winmat[1][0];
200 const float c = 0.5f * ((
float)getsizex) * (1.0f + block->
winmat[3][0]);
202 const float d = 0.5f * ((
float)getsizey) * block->
winmat[0][1];
203 const float e = 0.5f * ((
float)getsizey) * block->
winmat[1][1];
204 const float f = 0.5f * ((
float)getsizey) * (1.0f + block->
winmat[3][1]);
206 const float px = *r_x -
sx;
207 const float py = *r_y -
sy;
209 *r_y = (
a * (py - f) + d * (
c - px)) / (
a *
e - d *
b);
210 *r_x = (px -
b * (*r_y) -
c) /
a;
235 *r_x = (int)(fx + 0.5f);
236 *r_y = (int)(fy + 0.5f);
269 int sepr_flex_len = 0;
276 if (sepr_flex_len == 0) {
283 const float region_width = (
float)region->
sizex *
U.dpi_fac;
285 if (region_width <= buttons_width) {
299 const float segment_width = region_width / (
float)sepr_flex_len;
300 float offset = 0, remaining_space = region_width - buttons_width;
306 int overlap = ((i == sepr_flex_len - 1) ? buttons_width - spacers_pos[i] :
307 (spacers_pos[i + 1] - spacers_pos[i]) / 2);
308 const int segment_end = segment_width * (i + 1);
309 const int spacer_end = segment_end - overlap;
310 const int spacer_sta = spacers_pos[i] +
offset;
311 if (spacer_end > spacer_sta) {
312 const float step =
min_ff(remaining_space, spacer_end - spacer_sta);
313 remaining_space -= step;
325 if (region && region->
visible) {
367 const bool is_same_align_group = (
left->alignnr && (
left->alignnr ==
right->alignnr));
368 return is_same_align_group && (
left->rect.xmin <
right->rect.xmin);
375 int i = 0, j, x1addval =
offset;
394 const int alignnr = bt->alignnr;
395 for (col_bt = bt; col_bt && col_bt->
alignnr == alignnr; col_bt = col_bt->
next) {
405 bt = col_bt ? col_bt->
prev :
nullptr;
408 if (bt && bt->next && bt->rect.xmin < bt->next->rect.xmin) {
410 for (col_bt = init_col_bt; col_bt->
prev != bt; col_bt = col_bt->
next) {
418 x1addval += i + block->
bounds;
420 init_col_bt = col_bt;
425 for (col_bt = init_col_bt; col_bt; col_bt = col_bt->
next) {
428 const int alignnr = col_bt->
alignnr;
429 for (; col_bt && col_bt->
alignnr == alignnr; col_bt = col_bt->
next) {
472 const int xof = ((bt &&
STRPREFIX(bt->
str,
"ERROR")) ? 10 : 40) *
U.dpi_fac;
493 const int startx = (xmax * 0.5f) - (
width * 0.5f);
494 const int starty = (ymax * 0.5f) - (
height * 0.5f);
518 const int oldbounds = block->
bounds;
538 block->
bounds = oldbounds;
546 oldwidth = oldwidth > 0 ? oldwidth :
MAX2(1,
width);
547 oldheight = oldheight > 0 ? oldheight :
MAX2(1,
height);
561 rect_bounds.
xmin = margin;
562 rect_bounds.
ymin = margin;
563 rect_bounds.
xmax = xmax - margin;
584 if (block ==
nullptr) {
602 if (bounds_offset !=
nullptr) {
616 if (bounds_offset !=
nullptr) {
660 if (
floor(value) == value) {
663 if (
floorf(step) == step) {
693 else if (prec == -1) {
694 prec = (but->
hardmax < 10.001f) ? 3 : 2;
808 (new_extra_icon->
icon == old_extra_icon->
icon);
812 const uiBut *old_but)
830 if (old_extra_icon) {
831 new_extra_icon->highlighted = old_extra_icon->
highlighted;
852 const int drawflag_copy = 0;
865 if (oldbut->
poin != (
char *)oldbut) {
875 oldbut->
flag = (oldbut->
flag & ~flag_copy) | (but->
flag & flag_copy);
885 SWAP(
void *, search_oldbut->
arg, search_but->arg);
894 switch (oldbut->
type) {
967 (*but_old_p) = oldbut ? oldbut->
next :
nullptr;
970 bool found_active =
false;
982 oldbut->
block = block;
1005 but->
flag = (but->
flag & ~flag_copy) | (oldbut->
flag & flag_copy);
1013 return found_active;
1019 bool activate =
false, found =
false, isactive =
false;
1035 if ((
activate ==
true) || (found ==
false)) {
1044 else if ((found ==
true) && (isactive ==
false)) {
1045 if (remove_on_failure) {
1126 uint menu_key_mask = 0;
1127 int tot_missing = 0;
1134 for (
int pass = 0; pass < 2; pass++) {
1139 if (!
ELEM(but->type,
1151 if (but->menu_key !=
'\0') {
1155 if (but->str ==
nullptr || but->str[0] ==
'\0') {
1159 const char *str_pt = but->str;
1162 menu_key = tolower(*str_pt);
1163 if ((menu_key >=
'a' && menu_key <=
'z') && !(menu_key_mask & 1 << (menu_key -
'a'))) {
1164 menu_key_mask |= 1 << (menu_key -
'a');
1170 while (isalpha(*str_pt)) {
1185 but->menu_key = menu_key;
1193 if (menu_key_mask == (1 << 26) - 1) {
1216 if (shortcut_str ==
nullptr) {
1222 butstr_orig = but->
str;
1245 const size_t buf_len)
1268 const size_t buf_len)
1292 const size_t buf_len)
1312 for (
int i = 0; i < 2; i++) {
1332 const size_t buf_len)
1336 if (but->
optype !=
nullptr) {
1356 const size_t buf_len)
1360 if (extra_icon_optype) {
1370 const size_t buf_len)
1376 const char *ctx_toggle_opnames[] = {
1377 "WM_OT_context_toggle",
1378 "WM_OT_context_toggle_enum",
1379 "WM_OT_context_cycle_int",
1380 "WM_OT_context_cycle_enum",
1381 "WM_OT_context_cycle_array",
1382 "WM_OT_context_menu_enum",
1386 const char *ctx_enum_opnames[] = {
1387 "WM_OT_context_set_enum",
1391 const char *ctx_enum_opnames_for_Area_ui_type[] = {
1392 "SCREEN_OT_space_type_set_or_cycle",
1396 const char **opnames = ctx_toggle_opnames;
1397 int opnames_len =
ARRAY_SIZE(ctx_toggle_opnames);
1399 int prop_enum_value = -1;
1400 bool prop_enum_value_ok =
false;
1401 bool prop_enum_value_is_int =
false;
1402 const char *prop_enum_value_id =
"value";
1414 prop_enum_value = (int)but->
hardmin;
1417 prop_enum_value_ok =
true;
1419 opnames = ctx_enum_opnames;
1426 if (prop ==
nullptr) {
1442 if (
STREQ(prop_id,
"ui_type")) {
1444 prop_enum_value >>= 16;
1448 opnames = ctx_enum_opnames_for_Area_ui_type;
1449 opnames_len =
ARRAY_SIZE(ctx_enum_opnames_for_Area_ui_type);
1450 prop_enum_value_id =
"space_type";
1451 prop_enum_value_is_int =
true;
1461 if (data_path || (prop_enum_value_ok && prop_enum_value_id)) {
1470 if (prop_enum_value_ok) {
1477 if (prop_enum_value_is_int) {
1478 const int value = item[index].
value;
1485 prop_value =
IDP_NewString(
id, prop_enum_value_id, strlen(
id) + 1);
1499 for (
int i = 0; (i < opnames_len) && (opnames[i]); i++) {
1590 if (but->drawstr[0] ==
'\0') {
1652 extra_op_icon->
optype_params = MEM_cnew<wmOperatorCallParams>(__func__);
1715 return ((but->
editstr ==
nullptr) && (but->
drawstr[0] !=
'\0') &&
1723 if (but->
rnaprop ==
nullptr) {
1735 switch (but->
type) {
1770 switch (extra_icon) {
1773 if (!id_eyedropper_ot) {
1778 optype = id_eyedropper_ot;
1779 icon = ICON_EYEDROPPER;
1791 icon = ICON_PANEL_CLOSE;
1801 if ((op_icon->optype_params->optype == optype) && (op_icon->icon == icon)) {
1830 if (but->tip_func) {
1867 int old_but_flag = 0;
1870 old_but_flag = but->
flag;
1886 "Operator polls shouldn't change button flags");
1888 const_cast<uiBut *
>(but)->flag = old_but_flag;
1903 params.opcontext = opcontext;
1939 op_icon->disabled =
true;
2034 rcti rect_winspace = *rect;
2083 else if (block->
panel) {
2126 uiBut *but_prev =
nullptr;
2129 if (but->rnapoin.type && but->rnaprop) {
2131 if ((but_prev && (but_prev->
rnaprop == but->rnaprop) &&
2137 value.
owner = region;
2168 lvalue = (int)*value;
2177 switch (but->
type) {
2190 if (*value != (
double)but->
hardmin) {
2198 if (*value == 0.0) {
2223 if ((
int)*value & (
int)but->
hardmax) {
2228 if (*value == (
double)but->
hardmax) {
2249 is_push = !((
bool)is_push);
2283 block->
lock =
false;
2310 for (
int a = 0;
a < tot;
a++) {
2317 const char *cp = (
char *)but->
poin;
2318 vec[0] = ((
float)cp[0]) / 255.0f;
2319 vec[1] = ((
float)cp[1]) / 255.0f;
2320 vec[2] = ((
float)cp[2]) / 255.0f;
2323 const float *fp = (
float *)but->
poin;
2327 if (but->
editvec ==
nullptr) {
2328 fprintf(stderr,
"%s: can't get color, should never happen\n", __func__);
2358 for (
a = 0;
a < tot;
a++) {
2365 char *cp = (
char *)but->
poin;
2366 cp[0] = (
char)(0.5f + vec[0] * 255.0f);
2367 cp[1] = (char)(0.5f + vec[1] * 255.0f);
2368 cp[2] = (char)(0.5f + vec[2] * 255.0f);
2371 float *fp = (
float *)but->
poin;
2542 value = *(
char *)but->
poin;
2545 value = *(
short *)but->
poin;
2548 value = *(
int *)but->
poin;
2551 value = *(
float *)but->
poin;
2591 int ivalue = (int)value;
2624 float fval = (
float)value;
2625 if (fval >= -0.00001f && fval <= 0.00001f) {
2634 value = *but->
editval = value;
2637 value = *((
char *)but->
poin) = (char)value;
2640 value = *((
short *)but->
poin) = (short)value;
2643 value = *((
int *)but->
poin) = (int)value;
2646 value = *((
float *)but->
poin) = (
float)value;
2663 uiBut *return_but =
nullptr;
2668 if (but_iter->editstr) {
2669 return_but = but_iter;
2711 uiBut *but,
char *
str,
int len_max,
double value,
bool pad,
int float_precision)
2722 if (float_precision == -1) {
2728 else if (precision == -1) {
2733 precision = float_precision;
2755 if (step == -1.0f) {
2756 return step_default;
2768 if (step == step_unit) {
2775 step_final *= step_orig;
2778 return (
float)step_final;
2783 const size_t maxlen,
2784 const int float_precision,
2785 const bool use_exp_float,
2786 bool *r_use_exp_float)
2788 if (r_use_exp_float) {
2789 *r_use_exp_float =
false;
2796 const char *buf =
nullptr;
2831 if (buf ==
nullptr) {
2834 else if (buf !=
str) {
2864 int prec = float_precision;
2866 if (float_precision == -1) {
2886 if (use_exp_float) {
2887 if (int_digits_num < -6 || int_digits_num > 12) {
2889 if (r_use_exp_float) {
2890 *r_use_exp_float =
true;
2894 prec -= int_digits_num;
2900 prec -= int_digits_num;
2918 char *
str =
nullptr;
2932 const char *value_id;
2941 *r_str_size = strlen(value_id) + 1;
2972 #define UI_NUMBER_EVAL_ERROR_PREFIX IFACE_("Error evaluating number, see Info editor for details")
2977 char *
error =
nullptr;
3007 *r_value = atof(
str);
3015 const int len = strlen(
str);
3034 const int len = strlen(
str);
3046 if (
str[0] ==
'\0') {
3079 but->
str =
static_cast<char *
>(
MEM_mallocN(str_len,
"ui_def_but str"));
3084 memcpy(but->
str,
str, str_len);
3111 if (
str[0] ==
'\0') {
3196 else if (
str[0] ==
'#') {
3210 value =
floor(value + 0.5);
3214 if (value < (
double)but->
hardmin) {
3217 if (value > (
double)but->
hardmax) {
3232 const double newmax = (value != 0.0) ?
pow(10.0,
ceil(
log(value) /
M_LN10)) : 0.0;
3234 if (newmax * 0.2 >=
max && newmax * 0.2 >= value) {
3235 return newmax * 0.2;
3237 if (newmax * 0.5 >=
max && newmax * 0.5 >= value) {
3238 return newmax * 0.5;
3247 const double newmax = (value != 0.0) ?
pow(10.0,
floor(
log(value) /
M_LN10)) : 0.0;
3249 if (newmax * 5.0 <=
max && newmax * 5.0 <= value) {
3250 return newmax * 5.0;
3252 if (newmax * 2.0 <=
max && newmax * 2.0 <= value) {
3253 return newmax * 2.0;
3260 if (but->
rnaprop ==
nullptr) {
3291 double softmin, softmax ;
3299 int imin, imax, istep;
3302 softmin = (imin == INT_MIN) ? -1e4 : imin;
3303 softmax = (imin == INT_MAX) ? 1e4 : imax;
3310 value_min = (
double)value_range[0];
3311 value_max = (
double)value_range[1];
3319 float fmin, fmax, fstep, fprecision;
3322 softmin = (fmin == -FLT_MAX) ? (
float)-1e4 : fmin;
3323 softmax = (fmax == FLT_MAX) ? (
float)1e4 : fmax;
3329 float value_range[2];
3331 value_min = (
double)value_range[0];
3332 value_max = (
double)value_range[1];
3343 if (value_min + 1
e-10 < softmin) {
3344 if (value_min < 0.0) {
3351 if (softmin < (
double)but->
hardmin) {
3355 if (value_max - 1
e-10 > softmax) {
3356 if (value_max < 0.0) {
3363 if (softmax > (
double)but->
hardmax) {
3390 switch (but->
type) {
3396 search_but->
arg =
nullptr;
3490 if (block->active) {
3499 if (block->active) {
3508 if (block->active) {
3532 if (!block->handle) {
3533 if (block->active) {
3534 block->active =
false;
3565 oldblock->
active =
false;
3566 oldblock->
panel =
nullptr;
3567 oldblock->
handle =
nullptr;
3583 uiBlock *block = MEM_cnew<uiBlock>(__func__);
3599 block->
unit = MEM_new<UnitSettings>(__func__);
3616 if (!(region && region->
visible)) {
3662 if (value == (
double)FLT_MAX) {
3665 else if (value == (
double)-FLT_MAX) {
3687 char new_str[
sizeof(but->
drawstr)];
3737 switch (but->
type) {
3743 if (value < (
double)but->
hardmin) {
3746 else if (value > (
double)but->
hardmax) {
3757 if ((but->
rnaprop ==
nullptr) ||
3776 switch (but->
type) {
3792 const size_t slen = strlen(item.
name);
3842 str =
"Press a key";
3941 size_t *r_alloc_size,
3942 const char **r_alloc_str,
3943 bool *r_has_custom_type)
3946 const char *alloc_str;
3947 bool has_custom_type =
true;
3952 alloc_str =
"uiButNumber";
3956 alloc_str =
"uiButColor";
3960 alloc_str =
"uiButDecorator";
3964 alloc_str =
"uiButTab";
3968 alloc_str =
"uiButSearch";
3972 alloc_str =
"uiButProgressbar";
3976 alloc_str =
"uiButHSVCube";
3980 alloc_str =
"uiButColorBand";
3984 alloc_str =
"uiButCurveMapping";
3988 alloc_str =
"uiButCurveProfile";
3992 alloc_str =
"uiButHotkeyEvent";
3996 alloc_str =
"uiButViewItem";
3999 alloc_size =
sizeof(
uiBut);
4000 alloc_str =
"uiBut";
4001 has_custom_type =
false;
4006 *r_alloc_size = alloc_size;
4009 *r_alloc_str = alloc_str;
4011 if (r_has_custom_type) {
4012 *r_has_custom_type = has_custom_type;
4019 const char *alloc_str;
4027 if (but->
type == new_type) {
4033 const char *alloc_str;
4035 bool new_has_custom_type, old_has_custom_type;
4043 if (new_has_custom_type || old_has_custom_type) {
4044 const void *old_but_ptr = but;
4046 const bool has_str_ptr_to_self = but->
str == but->
strdata;
4047 const bool has_poin_ptr_to_self = but->
poin == (
char *)but;
4050 but->
type = new_type;
4051 if (has_str_ptr_to_self) {
4054 if (has_poin_ptr_to_self) {
4055 but->
poin = (
char *)but;
4106 BLI_assert((poin !=
nullptr ||
min != 0.0f ||
max != 0.0f || (a1 == 0.0f && a2 != 0.0f) ||
4107 (a1 != 0.0f && a1 != 1.0f)) ==
false);
4111 if (poin ==
nullptr) {
4123 but->
icon = ICON_NONE;
4128 const int slen = strlen(
str);
4136 but->
poin = (
char *)poin;
4167 if (but->
str[slen - 1] !=
' ') {
4168 but->
str[slen] =
' ';
4169 but->
str[slen + 1] = 0;
4176 if (but->
str && but->
str[0]) {
4192 #ifdef USE_NUMBUTS_LR_ALIGN
4202 if (block->
lock ==
true) {
4254 if (but->
str && but->
str[0]) {
4261 but->
icon = ICON_NONE;
4290 int entries_nosepr_count = 0;
4292 if (!item->identifier[0]) {
4297 entries_nosepr_count++;
4302 entries_nosepr_count++;
4306 int columns = (entries_nosepr_count + 20) / 20;
4311 columns = (entries_nosepr_count + 25) / 25;
4314 int rows = totitems / columns;
4318 while (rows * columns < totitems) {
4352 for (
int a = 0;
a < totitems;
a++) {
4353 new_column = (
a == column_end);
4357 column_end = totitems;
4359 for (
int b =
a + 1;
b < totitems;
b++) {
4374 if (new_column && (categories > 0) && item->
identifier[0]) {
4375 uiItemL(column,
"", ICON_NONE);
4473 const char *panel_type =
static_cast<const char *
>(but->
func_argN);
4481 uiItemL(layout, msg, ICON_NONE);
4502 const char *menu_type =
static_cast<const char *
>(but->
func_argN);
4510 uiItemL(layout, msg, ICON_NONE);
4584 #ifdef WITH_INTERNATIONAL
4589 icon = item[i].
icon;
4621 if (
min ==
max || a1 == -1 || a2 == -1 || always_set_a1_a2) {
4623 int hardmin, hardmax, softmin, softmax, step;
4632 if (a1 == -1 || always_set_a1_a2) {
4635 if (a2 == -1 || always_set_a1_a2) {
4640 float hardmin, hardmax, softmin, softmax, step, precision;
4649 if (a1 == -1 || always_set_a1_a2) {
4652 if (a2 == -1 || always_set_a1_a2) {
4665 block,
type, retval,
str,
x,
y,
width,
height,
nullptr,
min,
max, a1, a2, tip);
4730 but->
poin = (
char *)but;
4745 const char *propname,
4758 block,
type, retval,
str,
x,
y,
width,
height,
ptr, prop,
index,
min,
max, a1, a2, tip);
4762 block,
type, retval, propname,
x,
y,
width,
height,
nullptr,
min,
max, a1, a2, tip);
4794 uiBut *but =
ui_def_but(block,
type, -1,
str,
x,
y,
width,
height,
nullptr, 0, 0, 0, 0, tip);
4822 block,
type, retval,
str,
x,
y,
width,
height, poin,
min,
max, a1, a2, tip);
4833 block,
UI_BTYPE_IMAGE, 0,
"",
x,
y,
width,
height, imbuf, 0, 0, 0, 0,
"");
4870 if (
x & 0xFFFF0000) {
4905 autocpl = MEM_cnew<AutoComplete>(__func__);
4906 autocpl->
maxlen = maxlen;
4916 char *truncate = autocpl->
truncate;
4917 const char *startname = autocpl->
startname;
4918 int match_index = 0;
4919 for (
int a = 0;
a < autocpl->
maxlen - 1;
a++) {
4920 if (startname[
a] == 0 || startname[
a] != name[
a]) {
4927 if (startname[match_index] == 0) {
4930 if (truncate[0] == 0) {
4935 for (
int a = 0;
a < autocpl->
maxlen - 1;
a++) {
4940 if (truncate[
a] != name[
a]) {
4971 #define PREVIEW_TILE_PAD (0.15f * UI_UNIT_X)
4996 #undef PREVIEW_TILE_PAD
5267 const char *propname,
5276 block,
type, retval,
str,
x,
y,
width,
height,
ptr, propname, index,
min,
max, a1, a2, tip);
5298 block,
type, retval,
str,
x,
y,
width,
height,
ptr, prop, index,
min,
max, a1, a2, tip);
5330 if (
str ==
nullptr &&
ot ==
nullptr) {
5352 block,
type, retval,
"",
x,
y,
width,
height, poin,
min,
max, a1, a2, tip);
5557 const char *propname,
5566 block,
type, retval,
"",
x,
y,
width,
height,
ptr, propname, index,
min,
max, a1, a2, tip);
5588 block,
type, retval,
"",
x,
y,
width,
height,
ptr, prop, index,
min,
max, a1, a2, tip);
5640 block,
type, retval,
str,
x,
y,
width,
height, poin,
min,
max, a1, a2, tip);
5719 const char *propname,
5728 block,
type, retval,
str,
x,
y,
width,
height,
ptr, propname, index,
min,
max, a1, a2, tip);
5752 block,
type, retval,
str,
x,
y,
width,
height,
ptr, prop, index,
min,
max, a1, a2, tip);
5787 if (
str &&
str[0] ==
'\0') {
5790 return uiDefIconTextButO_ptr(block,
type,
ot, opcontext, icon,
str,
x,
y,
width,
height, tip);
5802 if (block == lb->
first || block->rect.ymin <
min) {
5803 min = block->rect.ymin;
5817 float centy, miny = 10000, maxy = -10000;
5830 if (but->rect.ymin < miny) {
5831 miny = but->rect.ymin;
5833 if (but->rect.ymax > maxy) {
5834 maxy = but->rect.ymax;
5838 centy = (miny + maxy) / 2.0f;
5840 but->rect.ymin = centy - (but->rect.ymin - centy);
5841 but->rect.ymax = centy - (but->rect.ymax - centy);
5842 SWAP(
float, but->rect.ymin, but->rect.ymax);
5850 block->
flag |= flag;
5855 block->
flag &= ~flag;
5870 return (but->
flag & flag) != 0;
5911 but->
opptr = MEM_cnew<PointerRNA>(__func__);
5941 const int ownUnit = (int)but->
unit_type;
5947 if ((ownUnit != 0) || (but->
rnaprop ==
nullptr)) {
5948 return ownUnit << 16;
5978 block->
funcN = funcN;
5991 void (*func)(
const bContext *
C,
void *idv,
void *arg1,
void *arg2,
rcti *rect),
6057 block,
UI_BTYPE_BLOCK, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6074 block,
UI_BTYPE_BLOCK, 0,
str,
x,
y,
width,
height,
nullptr, 0.0, 0.0, 0.0, 0.0, tip);
6095 block,
UI_BTYPE_PULLDOWN, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6112 block,
UI_BTYPE_PULLDOWN, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6130 block,
UI_BTYPE_PULLDOWN, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6154 block,
UI_BTYPE_PULLDOWN, 0,
"",
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6177 block,
UI_BTYPE_BLOCK, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6180 if (icon != ICON_RIGHTARROW_THIN) {
6205 block,
UI_BTYPE_BLOCK, retval,
"",
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6231 block,
UI_BTYPE_SEARCH_MENU, retval,
"",
x,
y,
width,
height, arg, 0.0, maxlen, a1, a2, tip);
6246 const bool free_arg,
6257 if (search_create_fn ==
nullptr) {
6263 search_but->
arg =
nullptr;
6270 search_but->
arg = arg;
6273 if (search_exec_fn) {
6277 printf(
"%s: warning, overwriting button callback with search function callback!\n",
6337 const bool UNUSED(is_first))
6342 if (prop ==
nullptr) {
6343 printf(
"%s: %s has no enum property set\n", __func__,
ot->
idname);
6346 printf(
"%s: %s \"%s\" is not an enum property\n",
6367 for (
int i = 0; i < filtered_amount; i++) {
6401 printf(
"%s: op->prop for '%s' is nullptr\n", __func__,
ot->
idname);
6421 uiBut *but =
uiDefSearchBut(block, arg, retval, icon, maxlen,
x,
y,
width,
height, a1, a2, tip);
6482 event.customdata = but;
6483 event.customdata_free =
false;
6501 bool free_items =
false;
6503 va_start(args, but);
6506 char *tmp =
nullptr;
6509 if (but->
str && but->
str[0]) {
6510 const char *str_sep;
6514 str_len = (str_sep - but->
str);
6517 str_len = strlen(but->
str);
6530 else if (but->
tip && but->
tip[0]) {
6602 if (tmp ==
nullptr) {
6614 if (tmp ==
nullptr) {
6689 for (i = 0, item = items; i < totitems; i++, item++) {
6690 if (item->identifier[0] && item->value == value) {
6695 if (item && item->identifier) {
6702 else if (item->description && item->description[0]) {
6728 if (free_items && items) {
6741 va_start(args, extra_icon);
6743 char *tmp =
nullptr;
typedef float(TangentPoint)[2]
AnimationEvalContext BKE_animsys_eval_context_construct(struct Depsgraph *depsgraph, float eval_time)
struct Scene * CTX_data_scene(const bContext *C)
void CTX_store_set(bContext *C, bContextStore *store)
struct ARegion * CTX_wm_menu(const bContext *C)
bContextStore * CTX_store_add(ListBase *contexts, const char *name, const PointerRNA *ptr)
void CTX_store_free_list(ListBase *contexts)
struct ReportList * CTX_wm_reports(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
const PointerRNA * CTX_store_ptr_lookup(const bContextStore *store, const char *name, const StructRNA *type CPP_ARG_DEFAULT(nullptr))
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL()
struct IDProperty * IDP_New(char type, const IDPropertyTemplate *val, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct IDProperty * IDP_NewString(const char *st, const char *name, int maxlen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(2)
void IDP_FreeProperty(struct IDProperty *prop)
bool IDP_AddToGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL()
struct IDProperty * IDP_CopyProperty(const struct IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
double BKE_scene_unit_scale(const struct UnitSettings *unit, int unit_type, double value)
void BKE_unit_name_to_alt(char *str, int len_max, const char *orig_str, int system, int type)
size_t BKE_unit_value_as_string(char *str, int len_max, double value, int prec, int type, const struct UnitSettings *settings, bool pad)
double BKE_unit_closest_scalar(double value, int system, int type)
float BLF_width(int fontid, const char *str, size_t str_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLF_batch_draw_begin(void)
void BLF_batch_draw_end(void)
#define BLI_assert_msg(a, msg)
bool BLI_ghash_reinsert(GHash *gh, void *key, void *val, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
GHash * BLI_ghash_str_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_kdtree_nd_() free(KDTree *tree)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void * BLI_pophead(ListBase *listbase) ATTR_NONNULL(1)
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
void void void BLI_movelisttolist(struct ListBase *dst, struct ListBase *src) ATTR_NONNULL(1
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int integer_digits_f(float f)
MINLINE int round_fl_to_int(float a)
MINLINE short round_db_to_short_clamp(double a)
MINLINE float max_ff(float a, float b)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int round_db_to_int_clamp(double a)
MINLINE int is_power_of_2_i(int n)
MINLINE unsigned char round_db_to_uchar_clamp(double a)
void rgba_float_to_uchar(unsigned char r_col[4], const float col_f[4])
MINLINE float normalize_v3(float r[3])
MINLINE void copy_v4_v4_uchar(unsigned char r[4], const unsigned char a[4])
MINLINE void copy_v2_v2_int(int r[2], const int a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void zero_v3(float r[3])
void BLI_rctf_translate(struct rctf *rect, float x, float y)
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
void BLI_rctf_union(struct rctf *rct_a, const struct rctf *rct_b)
void BLI_rcti_rctf_copy_round(struct rcti *dst, const struct rctf *src)
void BLI_rcti_rctf_copy_floor(struct rcti *dst, const struct rctf *src)
void BLI_rcti_translate(struct rcti *rect, int x, int y)
bool BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
bool BLI_rcti_clamp(struct rcti *rect, const struct rcti *rect_bounds, int r_xy[2])
void BLI_rctf_init_minmax(struct rctf *rect)
#define STRNCPY(dst, src)
#define SNPRINTF(dst, format,...)
bool BLI_strn_endswith(const char *__restrict str, const char *__restrict end, size_t length) ATTR_NONNULL()
size_t BLI_strcpy_rlen(char *__restrict dst, const char *__restrict src) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strdupn(const char *str, size_t len) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define STR_CONCATF(dst, len, format,...)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
#define STR_CONCAT(dst, len, suffix)
void BLI_string_search_add(StringSearch *search, const char *str, void *user_data, int weight)
void BLI_string_search_free(StringSearch *search)
StringSearch * BLI_string_search_new(void)
int BLI_string_search_query(StringSearch *search, const char *query, void ***r_data)
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
#define POINTER_FROM_INT(i)
#define UNUSED_VARS_NDEBUG(...)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define POINTER_AS_INT(i)
external readfile function prototypes.
#define CTX_IFACE_(context, msgid)
#define BLT_I18NCONTEXT_DEFAULT
bool BLT_is_default_context(const char *msgctxt)
#define BLT_I18NCONTEXT_DEFAULT_BPYRNA
#define CTX_TIP_(context, msgid)
bool BPY_run_string_as_number(struct bContext *C, const char *imports[], const char *expr, struct BPy_RunErrInfo *err_info, double *r_value) ATTR_NONNULL(1
typedef double(DMatrix)[4][4]
struct Depsgraph Depsgraph
#define ID_CHECK_UNDO(id)
Object is a sort of wrapper for general info.
#define OB_DATA_SUPPORT_ID(_id_type)
#define USER_UNIT_ROT_RADIANS
@ RGN_FLAG_SEARCH_FILTER_ACTIVE
@ USER_FACTOR_AS_PERCENTAGE
void ED_region_do_msg_notify_tag_redraw(struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble right
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
void GPU_matrix_pop(void)
void GPU_matrix_pop_projection(void)
void GPU_matrix_push(void)
#define GPU_matrix_projection_get(x)
void GPU_matrix_identity_set(void)
void GPU_matrix_push_projection(void)
void GPU_blend(eGPUBlend blend)
const char * IMB_colormanagement_display_get_default_name(void)
void IMB_colormanagement_scene_linear_to_display_v3(float pixel[3], struct ColorManagedDisplay *display)
struct ColorManagedDisplay * IMB_colormanagement_display_get_named(const char *name)
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
@ RNA_OVERRIDE_STATUS_OVERRIDDEN
short RNA_type_to_ID_code(const StructRNA *type)
#define RNA_SUBTYPE_UNIT_VALUE(subtype)
#define RNA_SUBTYPE_UNIT(subtype)
void UI_widgetbase_draw_cache_begin(void)
uiBlock * uiLayoutGetBlock(uiLayout *layout)
#define AUTOCOMPLETE_FULL_MATCH
@ UI_BUT_ACTIVATE_ON_INIT
void UI_fontstyle_set(const struct uiFontStyle *fs)
const struct uiStyle * UI_style_get_dpi(void)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
struct ARegion *(* uiButSearchCreateFn)(struct bContext *C, struct ARegion *butregion, struct uiButSearch *search_but)
int(* uiButCompleteFunc)(struct bContext *C, char *str, void *arg)
void(* uiButHandleNFunc)(struct bContext *C, void *argN, void *arg2)
void(* uiButHandleHoldFunc)(struct bContext *C, struct ARegion *butregion, uiBut *but)
void(* uiBlockHandleFunc)(struct bContext *C, void *arg, int event)
void uiItemL(uiLayout *layout, const char *name, int icon)
const struct uiStyle * UI_style_get(void)
int(* uiButPushedStateFunc)(struct uiBut *but, const void *arg)
bool UI_view_item_is_active(const uiViewItemHandle *item_handle)
bool UI_search_item_add(uiSearchItems *items, const char *name, void *poin, int iconid, int but_flag, uint8_t name_prefix_offset)
bool UI_but_is_utf8(const uiBut *but)
#define UI_BUT_POIN_TYPES
#define AUTOCOMPLETE_PARTIAL_MATCH
#define AUTOCOMPLETE_NO_MATCH
char *(* uiButToolTipFunc)(struct bContext *C, void *argN, const char *tip)
void UI_butstore_update(uiBlock *block)
void UI_but_tooltip_refresh(struct bContext *C, uiBut *but)
void(* uiButSearchUpdateFn)(const struct bContext *C, void *arg, const char *str, uiSearchItems *items, bool is_first)
void uiItemS(uiLayout *layout)
#define UI_PRECISION_FLOAT_MAX
#define UI_PRECISION_FLOAT_SCALE
struct PanelType * UI_but_paneltype_get(uiBut *but)
void UI_editsource_but_replace(const uiBut *old_but, uiBut *new_but)
void(* uiFreeArgFunc)(void *arg)
bool UI_butstore_register_update(uiBlock *block, uiBut *but_dst, const uiBut *but_src)
void UI_widgetbase_draw_cache_end(void)
void UI_editsource_active_but_test(uiBut *but)
@ UI_BLOCK_BOUNDS_PIE_CENTER
@ UI_BLOCK_BOUNDS_POPUP_MOUSE
@ UI_BLOCK_BOUNDS_POPUP_CENTER
@ UI_BLOCK_BOUNDS_POPUP_MENU
struct ARegion *(* uiButSearchTooltipFn)(struct bContext *C, struct ARegion *region, const struct rcti *item_rect, void *arg, void *active)
void(* uiButHandleRenameFunc)(struct bContext *C, void *arg, char *origstr)
bool UI_editsource_enable_check(void)
bool UI_view_item_matches(const uiViewItemHandle *a_handle, const uiViewItemHandle *b_handle)
struct wmOperatorType * UI_but_operatortype_get_from_enum_menu(struct uiBut *but, struct PropertyRNA **r_prop)
void(* uiButHandleFunc)(struct bContext *C, void *arg1, void *arg2)
bool UI_butstore_is_registered(uiBlock *block, uiBut *but)
struct MenuType * UI_but_menutype_get(uiBut *but)
bool UI_panel_category_is_visible(const struct ARegion *region)
@ BUT_GET_RNASTRUCT_IDENTIFIER
@ BUT_GET_RNAPROP_IDENTIFIER
@ BUT_GET_RNA_LABEL_CONTEXT
@ BUT_GET_RNAENUM_IDENTIFIER
bool UI_panel_should_show_background(const struct ARegion *region, const struct PanelType *panel_type)
void UI_butstore_clear(uiBlock *block)
uiLayout * uiLayoutSplit(uiLayout *layout, float percentage, bool align)
bool(* uiButSearchContextMenuFn)(struct bContext *C, void *arg, void *active, const struct wmEvent *event)
void UI_block_layout_resolve(uiBlock *block, int *r_x, int *r_y)
void(* uiMenuCreateFunc)(struct bContext *C, struct uiLayout *layout, void *arg1)
void(* uiMenuHandleFunc)(struct bContext *C, void *arg, int event)
bool(* uiMenuStepFunc)(struct bContext *C, int direction, void *arg1)
void UI_block_layout_set_current(uiBlock *block, uiLayout *layout)
struct uiViewItemHandle uiViewItemHandle
int UI_calc_float_precision(int prec, double value)
bool UI_but_is_tool(const uiBut *but)
uiBlock *(* uiBlockCreateFunc)(struct bContext *C, struct ARegion *region, void *arg1)
#define UI_but_is_decorator(but)
@ UI_BLOCK_MOVEMOUSE_QUIT
@ UI_BLOCK_SHOW_SHORTCUT_ALWAYS
void UI_icon_draw_cache_end(void)
void UI_icon_draw_cache_begin(void)
struct ImBuf * UI_icon_alert_imbuf_get(eAlertIcon icon)
struct bTheme * UI_GetTheme(void)
float UI_view2d_scale_get_x(const struct View2D *v2d)
@ WM_OP_INVOKE_REGION_WIN
int pad[32 - sizeof(int)]
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
void activate(bool forceActivation=false) const
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void append(const T &value)
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
void UI_block_update_from_old(const bContext *C, uiBlock *block)
void UI_but_flag_disable(uiBut *but, int flag)
void UI_but_disable(uiBut *but, const char *disabled_hint)
void UI_but_func_pushed_state_set(uiBut *but, uiButPushedStateFunc func, const void *arg)
static void ui_but_predefined_extra_operator_icons_add(uiBut *but)
uiBut * uiDefButC(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
static uiButExtraOpIcon * ui_but_extra_icon_find_old(const uiButExtraOpIcon *new_extra_icon, const uiBut *old_but)
void UI_blocklist_update_window_matrix(const bContext *C, const ListBase *lb)
uiBut * uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
bool ui_but_is_unit(const uiBut *but)
static uiBut * ui_def_but_rna(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
static PredefinedExtraOpIconType ui_but_icon_extra_get(uiBut *but)
uiBut * uiDefButO_ptr(uiBlock *block, int type, wmOperatorType *ot, wmOperatorCallContext opcontext, const char *str, int x, int y, short width, short height, const char *tip)
void ui_but_range_set_hard(uiBut *but)
void ui_but_extra_operator_icons_free(uiBut *but)
PointerRNA * UI_but_operator_ptr_get(uiBut *but)
uiBut * uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
static float ui_but_get_float_precision(uiBut *but)
static PointerRNA * ui_but_extra_operator_icon_add_ptr(uiBut *but, wmOperatorType *optype, wmOperatorCallContext opcontext, int icon)
eUIEmbossType UI_block_emboss_get(uiBlock *block)
static bool ui_but_event_property_operator_string(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
static void ui_but_free_type_specific(uiBut *but)
bool UI_but_active_only_ex(const bContext *C, ARegion *region, uiBlock *block, uiBut *but, const bool remove_on_failure)
bool ui_but_is_compatible(const uiBut *but_a, const uiBut *but_b)
static double soft_range_round_down(double value, double max)
uiBut * uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip)
uiBut * uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x, int y, short width, short height, const char *tip)
const short ui_radial_dir_to_angle[8]
uiBut * uiDefSearchButO_ptr(uiBlock *block, wmOperatorType *ot, IDProperty *properties, void *arg, int retval, int icon, int maxlen, int x, int y, short width, short height, float a1, float a2, const char *tip)
uiBut * uiDefIconBut(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
void UI_block_theme_style_set(uiBlock *block, char theme_style)
uiBut * uiDefButImage(uiBlock *block, void *imbuf, int x, int y, short width, short height, const uchar color[4])
void UI_but_focus_on_enter_event(wmWindow *win, uiBut *but)
static bool ui_number_from_string_units_with_but(bContext *C, const char *str, const uiBut *but, double *r_value)
static void ui_but_update_old_active_from_new(uiBut *oldbut, uiBut *but)
static void ui_block_bounds_calc_popup(wmWindow *window, uiBlock *block, eBlockBoundsCalc bounds_calc, const int xy[2], int r_xy[2])
uiBut * uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
static bool ui_but_is_unit_radians(const uiBut *but)
static uiBut * ui_def_but(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
ui_def_but is the function that draws many button types
void ui_but_range_set_soft(uiBut *but)
void ui_but_update(uiBut *but)
uiBut * uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
static uiBut * ui_but_alloc(const eButType type)
uiBut * uiDefButO(uiBlock *block, int type, const char *opname, wmOperatorCallContext opcontext, const char *str, int x, int y, short width, short height, const char *tip)
void UI_blocklist_free(const bContext *C, ARegion *region)
wmOperatorType * UI_but_extra_operator_icon_optype_get(uiButExtraOpIcon *extra_icon)
uiBut * uiDefBut(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * ui_but_change_type(uiBut *but, eButType new_type)
uiBut * uiDefButF(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
void UI_block_lock_clear(uiBlock *block)
static void operator_enum_search_exec_fn(struct bContext *UNUSED(C), void *but, void *arg2)
void UI_but_func_tooltip_set(uiBut *but, uiButToolTipFunc func, void *arg, uiFreeArgFunc free_arg)
uiBlock * UI_block_begin(const bContext *C, ARegion *region, const char *name, eUIEmbossType emboss)
static bool ui_but_is_row_alignment_group(const uiBut *left, const uiBut *right)
void UI_block_bounds_set_popup(uiBlock *block, int addval, const int bounds_offset[2])
void ui_block_to_window_rctf(const ARegion *region, uiBlock *block, rctf *rct_dst, const rctf *rct_src)
int UI_but_unit_type_get(const uiBut *but)
float ui_block_to_window_scale(const ARegion *region, uiBlock *block)
uiBut * uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x, int y, short width, short height, const char *tip)
void UI_but_func_search_set(uiBut *but, uiButSearchCreateFn search_create_fn, uiButSearchUpdateFn search_update_fn, void *arg, const bool free_arg, uiFreeArgFunc search_arg_free_fn, uiButHandleFunc search_exec_fn, void *active)
uiBut * uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
void ui_def_but_icon_clear(uiBut *but)
void UI_block_bounds_set_normal(uiBlock *block, int addval)
static bool ui_number_from_string_percentage(bContext *C, const char *str, double *r_value)
int ui_but_is_pushed(uiBut *but)
bool ui_but_is_float(const uiBut *but)
bool ui_but_context_poll_operator_ex(bContext *C, const uiBut *but, const wmOperatorCallParams *optype_params)
uiBut * ui_but_drag_multi_edit_get(uiBut *but)
static int ui_but_calc_float_precision(uiBut *but, double value)
void UI_blocklist_update_view_for_buttons(const bContext *C, const ListBase *lb)
void UI_but_extra_icon_string_info_get(struct bContext *C, uiButExtraOpIcon *extra_icon,...)
PropertyScaleType ui_but_scale_type(const uiBut *but)
uiBut * uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x, int y, short width, short height, const char *tip)
static bool ui_but_event_operator_string_from_operator(const bContext *C, wmOperatorCallParams *op_call_params, char *buf, const size_t buf_len)
void UI_but_func_menu_step_set(uiBut *but, uiMenuStepFunc func)
static void ui_but_extra_operator_icon_free(uiButExtraOpIcon *extra_icon)
void UI_but_string_info_get(bContext *C, uiBut *but,...)
static int findBitIndex(uint x)
static void ui_def_but_rna__menu(bContext *UNUSED(C), uiLayout *layout, void *but_p)
static void ui_update_window_matrix(const wmWindow *window, const ARegion *region, uiBlock *block)
void ui_block_bounds_calc(uiBlock *block)
static void ui_but_update_and_icon_set(uiBut *but, int icon)
void UI_block_flag_disable(uiBlock *block, int flag)
void ui_but_override_flag(Main *bmain, uiBut *but)
void UI_but_drawflag_enable(uiBut *but, int flag)
static void ui_but_validate(const uiBut *but)
static void ui_block_bounds_calc_centered(wmWindow *window, uiBlock *block)
int UI_but_return_value_get(uiBut *but)
void UI_but_func_search_set_tooltip(uiBut *but, uiButSearchTooltipFn tooltip_fn)
const PointerRNA * UI_but_context_ptr_get(const uiBut *but, const char *name, const StructRNA *type)
uiBut * uiDefIconTextButO_ptr(uiBlock *block, int type, wmOperatorType *ot, wmOperatorCallContext opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip)
double ui_but_value_get(uiBut *but)
void UI_but_number_step_size_set(uiBut *but, float step_size)
AutoComplete * UI_autocomplete_begin(const char *startname, size_t maxlen)
void UI_block_func_handle_set(uiBlock *block, uiBlockHandleFunc func, void *arg)
void ui_def_but_icon(uiBut *but, const int icon, const int flag)
void ui_window_to_region_rcti(const ARegion *region, rcti *rect_dst, const rcti *rct_src)
bool UI_block_active_only_flagged_buttons(const bContext *C, ARegion *region, uiBlock *block)
void ui_region_to_window(const ARegion *region, int *r_x, int *r_y)
int ui_but_is_pushed_ex(uiBut *but, double *value)
void ui_but_string_get(uiBut *but, char *str, const size_t maxlen)
bContextStore * UI_but_context_get(const uiBut *but)
void ui_block_to_window(const ARegion *region, uiBlock *block, int *r_x, int *r_y)
static void ui_but_extra_icons_update_from_old_but(const uiBut *new_but, const uiBut *old_but)
void ui_block_to_region_fl(const ARegion *region, uiBlock *block, float *r_x, float *r_y)
void UI_but_execute(const bContext *C, ARegion *region, uiBut *but)
static bool ui_but_is_unit_radians_ex(UnitSettings *unit, const int unit_type)
const char ui_radial_dir_to_numpad[8]
static void ui_menu_block_set_keyaccels(uiBlock *block)
static bool ui_but_event_operator_string_from_menu(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
static bool ui_but_pixelrect_in_view(const ARegion *region, const rcti *rect)
uiBut * uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
void UI_but_context_ptr_set(uiBlock *block, uiBut *but, const char *name, const PointerRNA *ptr)
uiBut * uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
void ui_window_to_region(const ARegion *region, int *r_x, int *r_y)
int UI_autocomplete_end(AutoComplete *autocpl, char *autoname)
bool ui_but_rna_equals(const uiBut *a, const uiBut *b)
void ui_block_cm_to_display_space_v3(uiBlock *block, float pixel[3])
#define UI_BUT_VALUE_UNSET
bool ui_but_is_rna_valid(uiBut *but)
static void ui_block_bounds_calc_text(uiBlock *block, float offset)
bool UI_block_is_search_only(const uiBlock *block)
uiBut * ui_but_find_old(uiBlock *block_old, const uiBut *but_new)
void UI_but_type_set_menu_from_pulldown(uiBut *but)
void ui_window_to_block_fl(const ARegion *region, uiBlock *block, float *r_x, float *r_y)
void UI_region_message_subscribe(ARegion *region, struct wmMsgBus *mbus)
bool ui_but_string_set(bContext *C, uiBut *but, const char *str)
void UI_block_emboss_set(uiBlock *block, eUIEmbossType emboss)
uiBut * uiDefButS(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
bool ui_but_menu_draw_as_popover(const uiBut *but)
void ui_but_value_set(uiBut *but, double value)
uiBut * uiDefButR(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
static void ui_but_update_ex(uiBut *but, const bool validate)
bool ui_but_rna_equals_ex(const uiBut *but, const PointerRNA *ptr, const PropertyRNA *prop, int index)
uiBut * uiDefIconTextButO(uiBlock *block, int type, const char *opname, wmOperatorCallContext opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip)
void UI_block_func_set(uiBlock *block, uiButHandleFunc func, void *arg1, void *arg2)
#define UI_GET_BUT_VALUE_INIT(_but, _value)
void UI_but_func_search_set_context_menu(uiBut *but, uiButSearchContextMenuFn context_menu_fn)
void ui_window_to_block_rctf(const struct ARegion *region, uiBlock *block, rctf *rct_dst, const rctf *rct_src)
static float ui_but_get_float_step_size(uiBut *but)
static bool ui_but_hide_fraction(uiBut *but, double value)
static bool ui_number_from_string_units(bContext *C, const char *str, const int unit_type, const UnitSettings *unit, double *r_value)
void UI_block_bounds_set_menu(uiBlock *block, int addval, const int bounds_offset[2])
void UI_but_func_rename_set(uiBut *but, uiButHandleRenameFunc func, void *arg1)
uiBut * uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x, int y, short width, short height, const char *tip)
void UI_but_unit_type_set(uiBut *but, const int unit_type)
void UI_but_drawflag_disable(uiBut *but, int flag)
void UI_block_draw(const bContext *C, uiBlock *block)
static bool ui_but_icon_extra_is_visible_text_clear(const uiBut *but)
int UI_preview_tile_size_x(void)
uiBut * uiDefIconButO_ptr(uiBlock *block, int type, wmOperatorType *ot, wmOperatorCallContext opcontext, int icon, int x, int y, short width, short height, const char *tip)
void UI_block_end_ex(const bContext *C, uiBlock *block, const int xy[2], int r_xy[2])
void UI_block_bounds_set_text(uiBlock *block, int addval)
static bool ui_but_is_rna_undo(const uiBut *but)
static bool ui_but_event_operator_string(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
void UI_but_func_set(uiBut *but, uiButHandleFunc func, void *arg1, void *arg2)
static bool ui_number_from_string(bContext *C, const char *str, double *r_value)
uiBut * uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
void UI_block_align_begin(uiBlock *block)
void ui_but_convert_to_unit_alt_name(uiBut *but, char *str, size_t maxlen)
uiBut * uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip)
uiBut * uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x, int y, short width, short height, const char *tip)
void ui_but_rna_menu_convert_to_panel_type(uiBut *but, const char *panel_type)
PredefinedExtraOpIconType
@ PREDEFINED_EXTRA_OP_ICON_CLEAR
@ PREDEFINED_EXTRA_OP_ICON_EYEDROPPER
@ PREDEFINED_EXTRA_OP_ICON_NONE
void ui_but_string_get_ex(uiBut *but, char *str, const size_t maxlen, const int float_precision, const bool use_exp_float, bool *r_use_exp_float)
void UI_blocklist_free_inactive(const bContext *C, ARegion *region)
void ui_window_to_region_rctf(const ARegion *region, rctf *rect_dst, const rctf *rct_src)
static void ui_def_but_rna__menu_type(bContext *UNUSED(C), uiLayout *layout, void *but_p)
void ui_but_update_edited(uiBut *but)
static void ui_but_build_drawstr_float(uiBut *but, double value)
void ui_but_v3_set(uiBut *but, const float vec[3])
void ui_but_v3_get(uiBut *but, float vec[3])
static double ui_get_but_scale_unit(uiBut *but, double value)
static bool ui_but_event_operator_string_from_panel(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
void UI_but_func_search_set_results_are_suggestions(uiBut *but, const bool value)
#define UI_NUMBER_EVAL_ERROR_PREFIX
void UI_but_func_search_set_sep_string(uiBut *but, const char *search_sep_string)
void UI_but_hint_drawstr_set(uiBut *but, const char *string)
void UI_interface_tag_script_reload(void)
void UI_block_order_flip(uiBlock *block)
static void ui_but_build_drawstr_int(uiBut *but, int value)
void UI_blocklist_draw(const bContext *C, const ListBase *lb)
PointerRNA * UI_but_extra_operator_icon_opptr_get(uiButExtraOpIcon *extra_icon)
int UI_blocklist_min_y_get(ListBase *lb)
static void ui_but_to_pixelrect(struct rcti *rect, const struct ARegion *region, struct uiBlock *block, const struct uiBut *but)
uiBut * uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip)
void UI_block_func_butmenu_set(uiBlock *block, uiMenuHandleFunc func, void *arg)
void UI_but_number_precision_set(uiBut *but, float precision)
void UI_block_bounds_set_centered(uiBlock *block, int addval)
bool UI_but_active_only(const bContext *C, ARegion *region, uiBlock *block, uiBut *but)
bool ui_but_string_eval_number(bContext *C, const uiBut *but, const char *str, double *r_value)
void ui_fontscale(float *points, float aspect)
void ui_block_to_window_fl(const ARegion *region, uiBlock *block, float *r_x, float *r_y)
static bool ui_but_icon_extra_is_visible_search_eyedropper(uiBut *but)
uiBut * uiDefButI(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
PointerRNA * UI_but_extra_operator_icon_add(uiBut *but, const char *opname, wmOperatorCallContext opcontext, int icon)
void UI_block_free(const bContext *C, uiBlock *block)
static void ui_but_alloc_info(const eButType type, size_t *r_alloc_size, const char **r_alloc_str, bool *r_has_custom_type)
struct ColorManagedDisplay * ui_block_cm_display_get(uiBlock *block)
static void ui_block_message_subscribe(ARegion *region, struct wmMsgBus *mbus, uiBlock *block)
int ui_but_string_get_max_length(uiBut *but)
static void ui_get_but_string_unit(uiBut *but, char *str, int len_max, double value, bool pad, int float_precision)
void UI_block_region_set(uiBlock *block, ARegion *region)
uiBut * uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x, int y, short width, short height, float a1, float a2, const char *tip)
uiBut * uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
void UI_block_direction_set(uiBlock *block, char direction)
static void ui_update_flexible_spacing(const ARegion *region, uiBlock *block)
void UI_but_func_hold_set(uiBut *but, uiButHandleHoldFunc func, void *argN)
int UI_preview_tile_size_y(void)
static uiBut * ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *ot, wmOperatorCallContext opcontext, const char *str, int x, int y, short width, short height, const char *tip)
static void ui_menu_block_set_keymaps(const bContext *C, uiBlock *block)
static void ui_block_bounds_calc_centered_pie(uiBlock *block)
void UI_but_func_complete_set(uiBut *but, uiButCompleteFunc func, void *arg)
void UI_but_funcN_set(uiBut *but, uiButHandleNFunc funcN, void *argN, void *arg2)
void ui_but_add_shortcut(uiBut *but, const char *shortcut_str, const bool do_strip)
uiBut * ui_but_find_new(uiBlock *block_new, const uiBut *but_old)
void UI_reinit_font(void)
static uiBut * uiDefButBit(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
static bool ui_number_from_string_factor(bContext *C, const char *str, double *r_value)
void UI_block_flag_enable(uiBlock *block, int flag)
uiBut * uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
void ui_but_rna_menu_convert_to_menu_type(uiBut *but, const char *menu_type)
void ui_region_winrct_get_no_margin(const struct ARegion *region, struct rcti *r_rect)
void UI_block_translate(uiBlock *block, int x, int y)
int UI_preview_tile_size_y_no_label(void)
static bool ui_but_equals_old(const uiBut *but, const uiBut *oldbut)
static bool ui_but_extra_icon_event_operator_string(const bContext *C, uiButExtraOpIcon *extra_icon, char *buf, const size_t buf_len)
static void ui_but_update_select_flag(uiBut *but, double *value)
static bool ui_but_icon_extra_is_visible_search_unlink(const uiBut *but)
const char ui_radial_dir_order[8]
void UI_block_funcN_set(uiBlock *block, uiButHandleNFunc funcN, void *argN, void *arg2)
static bool ui_but_update_from_old_block(const bContext *C, uiBlock *block, uiBut **but_p, uiBut **but_old_p)
static void ui_but_string_free_internal(uiBut *but)
static uiBut * uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefButAlert(uiBlock *block, int icon, int x, int y, short width, short height)
void UI_init_userdef(void)
static void ui_but_free(const bContext *C, uiBut *but)
void ui_window_to_block(const ARegion *region, uiBlock *block, int *r_x, int *r_y)
uiBut * uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
static void ui_but_submenu_enable(uiBlock *block, uiBut *but)
void UI_block_end(const bContext *C, uiBlock *block)
void ui_block_to_region_rctf(const ARegion *region, uiBlock *block, rctf *rct_dst, const rctf *rct_src)
void UI_block_set_search_only(uiBlock *block, bool search_only)
void UI_but_node_link_set(uiBut *but, bNodeSocket *socket, const float draw_color[4])
void UI_block_lock_set(uiBlock *block, bool val, const char *lockstr)
static void operator_enum_search_update_fn(const struct bContext *C, void *but, const char *str, uiSearchItems *items, const bool UNUSED(is_first))
void UI_but_func_drawextra_set(uiBlock *block, void(*func)(const bContext *C, void *idv, void *arg1, void *arg2, rcti *rect), void *arg1, void *arg2)
void UI_autocomplete_update_name(AutoComplete *autocpl, const char *name)
char * ui_but_string_get_dynamic(uiBut *but, int *r_str_size)
static float ui_get_but_step_unit(uiBut *but, float step_default)
void UI_but_flag_enable(uiBut *but, int flag)
static void ui_def_but_rna__panel_type(bContext *UNUSED(C), uiLayout *layout, void *but_p)
static void ui_but_string_set_internal(uiBut *but, const char *str, size_t str_len)
bool ui_but_context_poll_operator(bContext *C, wmOperatorType *ot, const uiBut *but)
static bool ui_but_extra_icons_equals_old(const uiButExtraOpIcon *new_extra_icon, const uiButExtraOpIcon *old_extra_icon)
bool ui_but_supports_cycling(const uiBut *but)
static double soft_range_round_up(double value, double max)
static uiBut * ui_def_but_rna_propname(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
bool UI_but_flag_is_set(uiBut *but, int flag)
bool ui_but_is_bool(const uiBut *but)
static void ui_but_pie_direction_string(uiBut *but, char *buf, int size)
uiBut * uiDefIconButO(uiBlock *block, int type, const char *opname, wmOperatorCallContext opcontext, int icon, int x, int y, short width, short height, const char *tip)
void UI_block_bounds_set_explicit(uiBlock *block, int minx, int miny, int maxx, int maxy)
void UI_block_align_end(uiBlock *block)
bool ui_but_can_align(const uiBut *but)
void ui_block_align_calc(uiBlock *block, const ARegion *region)
bool ui_but_anim_expression_create(uiBut *but, const char *str)
void ui_but_anim_flag(uiBut *but, const AnimationEvalContext *anim_eval_context)
bool ui_but_anim_expression_get(uiBut *but, char *str, size_t maxlen)
void ui_but_anim_decorate_update_from_flag(uiButDecorator *decorator_but)
bool ui_but_anim_expression_set(uiBut *but, const char *str)
void ui_but_drag_free(uiBut *but)
void ui_but_execute_end(struct bContext *C, struct ARegion *UNUSED(region), uiBut *but, void *active_back)
bool ui_but_is_editing(const uiBut *but)
void ui_but_clipboard_free(void)
void ui_but_active_free(const bContext *C, uiBut *but)
void ui_but_activate_event(bContext *C, ARegion *region, uiBut *but)
void ui_but_update_view_for_active(const bContext *C, const uiBlock *block)
void ui_but_execute_begin(struct bContext *UNUSED(C), struct ARegion *region, uiBut *but, void **active_back)
void ui_icon_ensure_deferred(const bContext *C, const int icon_id, const bool big)
#define UI_POPUP_MENU_TOP
#define UI_BITBUT_TEST(a, b)
bool ui_but_menu_step_poll(const uiBut *but)
uiBut * ui_region_find_active_but(struct ARegion *region) ATTR_WARN_UNUSED_RESULT
struct uiButViewItem uiButViewItem
bool ui_block_is_popover(const uiBlock *block) ATTR_WARN_UNUSED_RESULT
struct uiButNumber uiButNumber
void ui_but_search_refresh(uiButSearch *but)
void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect)
bool ui_layout_replace_but_ptr(uiLayout *layout, const void *old_but_ptr, uiBut *new_but)
struct ARegion * ui_searchbox_create_generic(struct bContext *C, struct ARegion *butregion, uiButSearch *search_but)
void ui_draw_popover_back(struct ARegion *region, struct uiStyle *style, uiBlock *block, rcti *rect)
void ui_draw_but(const struct bContext *C, struct ARegion *region, struct uiStyle *style, uiBut *but, rcti *rect)
struct uiButHSVCube uiButHSVCube
void ui_resources_init(void)
bool ui_block_is_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT
struct uiButProgressbar uiButProgressbar
struct uiButSearch uiButSearch
struct uiButDecorator uiButDecorator
struct uiButColor uiButColor
void ui_item_paneltype_func(struct bContext *C, struct uiLayout *layout, void *arg_pt)
struct uiButCurveMapping uiButCurveMapping
void ui_interface_tag_script_reload_queries(void)
bool ui_but_is_editable(const uiBut *but) ATTR_WARN_UNUSED_RESULT
void ui_block_free_views(struct uiBlock *block)
struct uiButColorBand uiButColorBand
@ UI_BLOCK_CONTAINS_SUBMENU_BUT
struct uiButCurveProfile uiButCurveProfile
void ui_item_menutype_func(struct bContext *C, struct uiLayout *layout, void *arg_mt)
void ui_draw_aligned_panel(const struct uiStyle *style, const uiBlock *block, const rcti *rect, bool show_pin, bool show_background, bool region_search_filter_active)
void ui_layout_remove_but(uiLayout *layout, const uiBut *but)
void ui_layout_add_but(uiLayout *layout, uiBut *but)
void ui_resources_free(void)
struct uiButHotkeyEvent uiButHotkeyEvent
void ui_draw_pie_center(uiBlock *block)
ccl_gpu_kernel_postfix ccl_global float int int sy
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
ccl_gpu_kernel_postfix ccl_global float int sx
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_recallocN_id)(void *vmemh, size_t len, const char *str)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
ccl_device_inline float3 ceil(const float3 &a)
ccl_device_inline float3 pow(float3 v, float e)
ccl_device_inline float3 log(float3 v)
MINLINE void zero_v2_int(int r[2])
static void error(const char *str)
bool active
all scheduled work for the GPU.
void split(const std::string &s, const char delim, std::vector< std::string > &tokens)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_enum_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *r_value)
const char * RNA_struct_identifier(const StructRNA *type)
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, bool value)
void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value)
void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step)
bool RNA_property_array_check(PropertyRNA *prop)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
PropertyScaleType RNA_property_ui_scale(PropertyRNA *prop)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
bool RNA_struct_is_ID(const StructRNA *type)
int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
const char * RNA_property_identifier(const PropertyRNA *prop)
void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision)
void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value)
int RNA_property_ui_icon(const PropertyRNA *prop)
const char * RNA_struct_ui_description(const StructRNA *type)
char * RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen, int *r_len)
float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value, ReportList *reports)
void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax)
PropertyType RNA_property_type(PropertyRNA *prop)
const PointerRNA PointerRNA_NULL
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
bool RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
char * RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2])
void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value)
void RNA_property_enum_items_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
const char * RNA_property_translation_context(const PropertyRNA *prop)
int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr)
bool RNA_property_editable_info(PointerRNA *ptr, PropertyRNA *prop, const char **r_info)
StructRNA * RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_flag(PropertyRNA *prop)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2])
PropertyRNA * RNA_struct_name_property(const StructRNA *type)
bool RNA_property_enum_item_from_value_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, EnumPropertyItem *r_item)
bool RNA_struct_undo_check(const StructRNA *type)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_string_maxlength(PropertyRNA *prop)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
int RNA_enum_from_value(const EnumPropertyItem *item, const int value)
PropertySubType RNA_property_subtype(PropertyRNA *prop)
const char * RNA_struct_translation_context(const StructRNA *type)
void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax)
void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
bool RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
const char * RNA_property_ui_description(const PropertyRNA *prop)
const char * RNA_property_ui_name(const PropertyRNA *prop)
void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value)
bool RNA_property_enum_name(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name)
eRNAOverrideStatus RNA_property_override_library_status(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, const int index)
struct GHash * block_name_map
const char * report_prefix
struct ReportList * reports
char idname[BKE_ST_MAXNAME]
char translation_context[BKE_ST_MAXNAME]
char label[BKE_ST_MAXNAME]
ColorManagedDisplaySettings display_settings
uiWidgetColors wcol_menu_back
struct UnitSettings * unit
ColorPickerData color_pickers
uiPopupBlockHandle * handle
struct PieMenuData pie_data
uiBlockHandleFunc handle_func
eBlockBoundsCalc bounds_type
uiMenuHandleFunc butm_func
char name[UI_MAX_NAME_STR]
struct uiLayout * curlayout
void(* drawextra)(const struct bContext *C, void *idv, void *arg1, void *arg2, rcti *rect)
uiButSearchUpdateFn items_update_fn
bool results_are_suggestions
const char * item_sep_string
uiButSearchCreateFn popup_create_fn
uiFreeArgFunc arg_free_fn
struct PointerRNA rnasearchpoin
uiButSearchTooltipFn item_tooltip_fn
struct PropertyRNA * rnasearchprop
uiButSearchContextMenuFn item_context_menu_fn
uiViewItemHandle * view_item
wmOperatorCallContext opcontext
uiButCompleteFunc autocomplete_func
struct bContextStore * context
uiButIdentityCompareFunc identity_cmp_func
struct uiHandleButtonData * active
const void * pushed_state_arg
const char * disabled_info
uiMenuCreateFunc menu_create_func
uiButToolTipFunc tip_func
uiButHandleHoldFunc hold_func
struct PointerRNA * opptr
struct wmOperatorType * optype
uiButHandleRenameFunc rename_func
uiBlockCreateFunc block_create_func
uiFreeArgFunc tip_arg_free
char drawstr[UI_MAX_DRAW_STR]
char strdata[UI_MAX_NAME_STR]
uiMenuStepFunc menu_step_func
struct PropertyRNA * rnaprop
uiButPushedStateFunc pushed_state_func
struct PointerRNA rnapoin
struct uiPopupBlockCreate popup_create_vars
struct wmOperatorType * optype
struct PointerRNA * opptr
wmOperatorCallContext opcontext
char *(* get_description)(struct bContext *C, struct wmOperatorType *, struct PointerRNA *)
struct wmEvent * eventstate
bool WM_operator_poll_context(bContext *C, wmOperatorType *ot, short context)
wmEvent * wm_event_add(wmWindow *win, const wmEvent *event_to_add)
void WM_report_banner_show(void)
void wm_event_init_from_window(wmWindow *win, wmEvent *event)
const char * WM_key_event_string(const short type, const bool compact)
char * WM_key_event_operator_string(const bContext *C, const char *opname, wmOperatorCallContext opcontext, IDProperty *properties, const bool is_strict, char *result, const int result_len)
void WM_msg_subscribe_rna(struct wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
char * WM_operatortype_description(struct bContext *C, struct wmOperatorType *ot, struct PointerRNA *properties)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
const char * WM_operatortype_name(struct wmOperatorType *ot, struct PointerRNA *properties)
char * WM_context_path_resolve_property_full(const bContext *C, const PointerRNA *ptr, PropertyRNA *prop, int index)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_operator_properties_free(PointerRNA *ptr)
void WM_operator_properties_sanitize(PointerRNA *ptr, const bool no_context)
PanelType * WM_paneltype_find(const char *idname, bool quiet)
void wmGetProjectionMatrix(float mat[4][4], const rcti *winrct)
void wmOrtho2_region_pixelspace(const ARegion *region)
int WM_window_pixels_y(const wmWindow *win)
int WM_window_pixels_x(const wmWindow *win)