101 #define UI_BUT_VALUE_UNSET DBL_MAX
102 #define UI_GET_BUT_VALUE_INIT(_but, _value) \
103 if (_value == DBL_MAX) { \
104 (_value) = ui_but_value_get(_but); \
150 ((
float)getsizex) * (0.5f + 0.5f * (gx * block->
winmat[0][0] + gy * block->
winmat[1][0] +
153 ((
float)getsizey) * (0.5f + 0.5f * (gx * block->
winmat[0][1] + gy * block->
winmat[1][1] +
164 *r_x = (int)(fx + 0.5f);
165 *r_y = (int)(fy + 0.5f);
181 float min_y = 0, max_y = 1;
182 float dummy_x = 0.0f;
186 return max_y - min_y;
197 const float a = 0.5f * ((
float)getsizex) * block->
winmat[0][0];
198 const float b = 0.5f * ((
float)getsizex) * block->
winmat[1][0];
199 const float c = 0.5f * ((
float)getsizex) * (1.0f + block->
winmat[3][0]);
201 const float d = 0.5f * ((
float)getsizey) * block->
winmat[0][1];
202 const float e = 0.5f * ((
float)getsizey) * block->
winmat[1][1];
203 const float f = 0.5f * ((
float)getsizey) * (1.0f + block->
winmat[3][1]);
205 const float px = *r_x - sx;
206 const float py = *r_y - sy;
208 *r_y = (
a * (py - f) + d * (
c - px)) / (
a *
e - d * b);
209 *r_x = (px - b * (*r_y) -
c) /
a;
234 *r_x = (int)(fx + 0.5f);
235 *r_y = (int)(fy + 0.5f);
260 int sepr_flex_len = 0;
267 if (sepr_flex_len == 0) {
274 const float region_width = (
float)region->
sizex *
U.dpi_fac;
276 if (region_width <= buttons_width) {
281 int *spacers_pos = alloca(
sizeof(*spacers_pos) * (
size_t)sepr_flex_len);
292 const float segment_width = region_width / (
float)sepr_flex_len;
293 float offset = 0, remaining_space = region_width - buttons_width;
299 int overlap = ((i == sepr_flex_len - 1) ? buttons_width - spacers_pos[i] :
300 (spacers_pos[i + 1] - spacers_pos[i]) / 2);
301 const int segment_end = segment_width * (i + 1);
302 const int spacer_end = segment_end - overlap;
303 const int spacer_sta = spacers_pos[i] + offset;
304 if (spacer_end > spacer_sta) {
305 const float step =
min_ff(remaining_space, spacer_end - spacer_sta);
306 remaining_space -= step;
318 if (region && region->
visible) {
364 const bool is_same_align_group = (
left->alignnr && (
left->alignnr ==
right->alignnr));
365 return is_same_align_group && (
left->rect.xmin <
right->rect.xmin);
372 int i = 0, j, x1addval = offset;
391 const int alignnr = bt->alignnr;
392 for (col_bt = bt; col_bt && col_bt->
alignnr == alignnr; col_bt = col_bt->
next) {
405 if (bt && bt->next && bt->rect.xmin < bt->next->rect.xmin) {
407 for (col_bt = init_col_bt; col_bt->
prev != bt; col_bt = col_bt->
next) {
415 x1addval += i + block->
bounds;
417 init_col_bt = col_bt;
422 for (col_bt = init_col_bt; col_bt; col_bt = col_bt->
next) {
425 const int alignnr = col_bt->
alignnr;
426 for (; col_bt && col_bt->
alignnr == alignnr; col_bt = col_bt->
next) {
469 const int xof = ((bt &&
STRPREFIX(bt->
str,
"ERROR")) ? 10 : 40) *
U.dpi_fac;
490 const int startx = (xmax * 0.5f) - (
width * 0.5f);
491 const int starty = (ymax * 0.5f) - (
height * 0.5f);
515 const int oldbounds = block->
bounds;
535 block->
bounds = oldbounds;
543 oldwidth = oldwidth > 0 ? oldwidth :
MAX2(1,
width);
544 oldheight = oldheight > 0 ? oldheight :
MAX2(1,
height);
549 const int raw_x = rect.
xmin = xy[0] + block->
rect.
xmin +
558 rect_bounds.
xmin = margin;
559 rect_bounds.
ymin = margin;
560 rect_bounds.
xmax = xmax - margin;
574 r_xy[0] = xy[0] + block->
rect.
xmin - raw_x;
575 r_xy[1] = xy[1] + block->
rect.
ymin - raw_y;
602 if (bounds_offset !=
NULL) {
617 if (bounds_offset !=
NULL) {
660 else if (prec == -1) {
661 prec = (but->
hardmax < 10.001f) ? 3 : 2;
750 (new_extra_icon->
icon == old_extra_icon->
icon);
754 const uiBut *old_but)
772 if (old_extra_icon) {
773 new_extra_icon->highlighted = old_extra_icon->
highlighted;
794 const int drawflag_copy = 0;
807 if (oldbut->
poin != (
char *)oldbut) {
816 oldbut->
flag = (oldbut->
flag & ~flag_copy) | (but->
flag & flag_copy);
826 SWAP(
void *, search_oldbut->
arg, search_but->arg);
894 (*but_old_p) = oldbut ? oldbut->
next :
NULL;
897 bool found_active =
false;
909 oldbut->
block = block;
926 but->
flag = (but->
flag & ~flag_copy) | (oldbut->
flag & flag_copy);
945 bool activate =
false, found =
false, isactive =
false;
961 if ((
activate ==
true) || (found ==
false)) {
970 else if ((found ==
true) && (isactive ==
false)) {
971 if (remove_on_failure) {
1054 uint menu_key_mask = 0;
1055 int tot_missing = 0;
1062 for (
int pass = 0; pass < 2; pass++) {
1067 if (!
ELEM(but->type,
1079 if (but->menu_key !=
'\0') {
1083 if (but->str ==
NULL || but->str[0] ==
'\0') {
1087 const char *str_pt = but->str;
1090 menu_key = tolower(*str_pt);
1091 if ((menu_key >=
'a' && menu_key <=
'z') && !(menu_key_mask & 1 << (menu_key -
'a'))) {
1092 menu_key_mask |= 1 << (menu_key -
'a');
1098 while (isalpha(*str_pt)) {
1113 but->menu_key = menu_key;
1121 if (menu_key_mask == (1 << 26) - 1) {
1147 if (shortcut_str ==
NULL) {
1153 butstr_orig = but->
str;
1177 const size_t buf_len)
1193 const size_t buf_len)
1217 const size_t buf_len)
1242 for (
int i = 0; i < 2; i++) {
1264 const size_t buf_len)
1284 const size_t buf_len)
1290 const char *ctx_toggle_opnames[] = {
1291 "WM_OT_context_toggle",
1292 "WM_OT_context_toggle_enum",
1293 "WM_OT_context_cycle_int",
1294 "WM_OT_context_cycle_enum",
1295 "WM_OT_context_cycle_array",
1296 "WM_OT_context_menu_enum",
1300 const char *ctx_enum_opnames[] = {
1301 "WM_OT_context_set_enum",
1305 const char *ctx_enum_opnames_for_Area_ui_type[] = {
1306 "SCREEN_OT_space_type_set_or_cycle",
1310 const char **opnames = ctx_toggle_opnames;
1311 int opnames_len =
ARRAY_SIZE(ctx_toggle_opnames);
1313 int prop_enum_value = -1;
1314 bool prop_enum_value_ok =
false;
1315 bool prop_enum_value_is_int =
false;
1316 const char *prop_enum_value_id =
"value";
1327 prop_enum_value = (int)but->
hardmin;
1330 prop_enum_value_ok =
true;
1332 opnames = ctx_enum_opnames;
1350 char *data_path =
NULL;
1368 if (
STREQ(prop_id,
"ui_type")) {
1370 prop_enum_value >>= 16;
1373 opnames = ctx_enum_opnames_for_Area_ui_type;
1374 opnames_len =
ARRAY_SIZE(ctx_enum_opnames_for_Area_ui_type);
1375 prop_enum_value_id =
"space_type";
1376 prop_enum_value_is_int =
true;
1410 printf(
"ERROR in %s(): Couldn't get path for scene property - %s\n",
1426 if (data_path || (prop_enum_value_ok && prop_enum_value_id)) {
1435 if (prop_enum_value_ok) {
1442 if (prop_enum_value_is_int) {
1443 const int value = item[index].
value;
1448 prop_enum_value_id);
1452 prop_value =
IDP_NewString(
id, prop_enum_value_id, strlen(
id) + 1);
1466 for (
int i = 0; (i < opnames_len) && (opnames[i]); i++) {
1557 if (but->drawstr[0] ==
'\0') {
1620 "uiButExtraOpIcon.optype_params");
1623 "uiButExtraOpIcon.optype_params.opptr");
1692 switch (but->
type) {
1727 switch (extra_icon) {
1730 if (!id_eyedropper_ot) {
1735 optype = id_eyedropper_ot;
1736 icon = ICON_EYEDROPPER;
1748 icon = ICON_PANEL_CLOSE;
1758 if ((op_icon->optype_params->optype == optype) && (op_icon->icon == icon)) {
1787 if (but->tip_func) {
1945 if (aspect < 0.9f || aspect > 1.1f) {
1946 float pointsf = *points;
1953 if (aspect > 1.0f) {
1954 *points =
ceilf(pointsf);
1957 *points =
floorf(pointsf);
2017 else if (block->
panel) {
2019 if (show_background) {
2023 show_background =
false;
2027 show_background = region->
overlap != 0;
2070 if (but->rnapoin.type && but->rnaprop) {
2072 if ((but_prev && (but_prev->
rnaprop == but->rnaprop) &&
2082 .user_data = region,
2083 .notify = ED_region_do_msg_notify_tag_redraw,
2115 lvalue = (int)*value;
2124 switch (but->
type) {
2137 if (*value != (
double)but->
hardmin) {
2145 if (*value == 0.0) {
2170 if ((
int)*value & (
int)but->
hardmax) {
2175 if (*value == (
double)but->
hardmax) {
2187 is_push = !((bool)is_push);
2221 block->
lock =
false;
2249 for (
int a = 0;
a < tot;
a++) {
2256 const char *cp = (
char *)but->
poin;
2258 vec[0] = ((
float)cp[0]) / 255.0f;
2259 vec[1] = ((
float)cp[1]) / 255.0f;
2260 vec[2] = ((
float)cp[2]) / 255.0f;
2263 const float *fp = (
float *)but->
poin;
2268 fprintf(stderr,
"%s: can't get color, should never happen\n", __func__);
2299 for (
a = 0;
a < tot;
a++) {
2306 char *cp = (
char *)but->
poin;
2307 cp[0] = (
char)(0.5f + vec[0] * 255.0f);
2308 cp[1] = (char)(0.5f + vec[1] * 255.0f);
2309 cp[2] = (char)(0.5f + vec[2] * 255.0f);
2312 float *fp = (
float *)but->
poin;
2481 value = *(
char *)but->
poin;
2484 value = *(
short *)but->
poin;
2487 value = *(
int *)but->
poin;
2490 value = *(
float *)but->
poin;
2530 int ivalue = (int)value;
2563 float fval = (
float)value;
2564 if (fval >= -0.00001f && fval <= 0.00001f) {
2573 value = *but->
editval = value;
2576 value = *((
char *)but->
poin) = (char)value;
2579 value = *((
short *)but->
poin) = (short)value;
2582 value = *((
int *)but->
poin) = (int)value;
2585 value = *((
float *)but->
poin) = (
float)value;
2607 if (but_iter->editstr) {
2608 return_but = but_iter;
2651 uiBut *but,
char *
str,
int len_max,
double value,
bool pad,
int float_precision)
2662 if (float_precision == -1) {
2668 else if (precision == -1) {
2673 precision = float_precision;
2695 if (step == -1.0f) {
2696 return step_default;
2708 if (step == step_unit) {
2715 step_final *= step_orig;
2718 return (
float)step_final;
2729 const size_t maxlen,
2730 const int float_precision,
2731 const bool use_exp_float,
2732 bool *r_use_exp_float)
2734 if (r_use_exp_float) {
2735 *r_use_exp_float =
false;
2742 const char *buf =
NULL;
2776 else if (buf !=
str) {
2822 if (use_exp_float) {
2823 if (int_digits_num < -6 || int_digits_num > 12) {
2825 if (r_use_exp_float) {
2826 *r_use_exp_float =
true;
2830 prec -= int_digits_num;
2836 prec -= int_digits_num;
2874 const char *value_id;
2880 *r_str_size = strlen(value_id) + 1;
2911 #define UI_NUMBER_EVAL_ERROR_PREFIX IFACE_("Error evaluating number, see Info editor for details")
2947 *r_value = atof(
str);
2955 const int len = strlen(
str);
2974 const int len = strlen(
str);
2986 if (
str[0] ==
'\0') {
3024 memcpy(but->
str,
str, str_len);
3051 if (
str[0] ==
'\0') {
3132 else if (
str[0] ==
'#') {
3146 value =
floor(value + 0.5);
3150 if (value < (
double)but->
hardmin) {
3153 if (value > (
double)but->
hardmax) {
3168 const double newmax = (value != 0.0) ?
pow(10.0,
ceil(
log(value) /
M_LN10)) : 0.0;
3170 if (newmax * 0.2 >=
max && newmax * 0.2 >= value) {
3171 return newmax * 0.2;
3173 if (newmax * 0.5 >=
max && newmax * 0.5 >= value) {
3174 return newmax * 0.5;
3183 const double newmax = (value != 0.0) ?
pow(10.0,
floor(
log(value) /
M_LN10)) : 0.0;
3185 if (newmax * 5.0 <=
max && newmax * 5.0 <= value) {
3186 return newmax * 5.0;
3188 if (newmax * 2.0 <=
max && newmax * 2.0 <= value) {
3189 return newmax * 2.0;
3207 but->
hardmin = (imin == INT_MIN) ? -1e4 : imin;
3208 but->
hardmax = (imin == INT_MAX) ? 1e4 : imax;
3213 but->
hardmin = (fmin == -FLT_MAX) ? (
float)-1e4 : fmin;
3214 but->
hardmax = (fmax == FLT_MAX) ? (
float)1e4 : fmax;
3228 double softmin, softmax ;
3236 int imin, imax, istep;
3239 softmin = (imin == INT_MIN) ? -1e4 : imin;
3240 softmax = (imin == INT_MAX) ? 1e4 : imax;
3247 value_min = (
double)value_range[0];
3248 value_max = (
double)value_range[1];
3256 float fmin, fmax, fstep, fprecision;
3259 softmin = (fmin == -FLT_MAX) ? (
float)-1e4 : fmin;
3260 softmax = (fmax == FLT_MAX) ? (
float)1e4 : fmax;
3266 float value_range[2];
3268 value_min = (
double)value_range[0];
3269 value_max = (
double)value_range[1];
3280 if (value_min + 1
e-10 < softmin) {
3281 if (value_min < 0.0) {
3288 if (softmin < (
double)but->
hardmin) {
3292 if (value_max - 1
e-10 > softmax) {
3293 if (value_max < 0.0) {
3300 if (softmax > (
double)but->
hardmax) {
3327 switch (but->
type) {
3429 if (block->active) {
3438 if (block->active) {
3456 if (!block->handle) {
3457 if (block->active) {
3458 block->active =
false;
3479 oldblock->
active =
false;
3529 if (!(region && region->
visible)) {
3579 if (value == (
double)FLT_MAX) {
3582 else if (value == (
double)-FLT_MAX) {
3604 char new_str[
sizeof(but->
drawstr)];
3654 switch (but->
type) {
3660 if (value < (
double)but->
hardmin) {
3663 else if (value > (
double)but->
hardmax) {
3692 switch (but->
type) {
3704 const size_t slen = strlen(item.
name);
3754 str =
"Press a key";
3852 size_t *r_alloc_size,
3853 const char **r_alloc_str,
3854 bool *r_has_custom_type)
3857 const char *alloc_str;
3858 bool has_custom_type =
true;
3863 alloc_str =
"uiButNumber";
3867 alloc_str =
"uiButColor";
3871 alloc_str =
"uiButDecorator";
3875 alloc_str =
"uiButTab";
3879 alloc_str =
"uiButSearch";
3883 alloc_str =
"uiButProgressbar";
3887 alloc_str =
"uiButHSVCube";
3891 alloc_str =
"uiButColorBand";
3895 alloc_str =
"uiButCurveMapping";
3899 alloc_str =
"uiButCurveProfile";
3902 alloc_size =
sizeof(
uiBut);
3903 alloc_str =
"uiBut";
3904 has_custom_type =
false;
3909 *r_alloc_size = alloc_size;
3912 *r_alloc_str = alloc_str;
3914 if (r_has_custom_type) {
3915 *r_has_custom_type = has_custom_type;
3922 const char *alloc_str;
3937 if (but->
type == new_type) {
3943 const char *alloc_str;
3945 bool new_has_custom_type, old_has_custom_type;
3953 if (new_has_custom_type || old_has_custom_type) {
3954 const void *old_but_ptr = but;
3956 const bool has_str_ptr_to_self = but->
str == but->
strdata;
3957 const bool has_poin_ptr_to_self = but->
poin == (
char *)but;
3960 but->
type = new_type;
3961 if (has_str_ptr_to_self) {
3964 if (has_poin_ptr_to_self) {
3965 but->
poin = (
char *)but;
4015 (a1 != 0.0f && a1 != 1.0f)) ==
false);
4031 but->
icon = ICON_NONE;
4036 const int slen = strlen(
str);
4075 if (but->
str[slen - 1] !=
' ') {
4076 but->
str[slen] =
' ';
4077 but->
str[slen + 1] = 0;
4084 if (but->
str && but->
str[0]) {
4101 #ifdef USE_NUMBUTS_LR_ALIGN
4111 if (block->
lock ==
true) {
4161 if (but->
str && but->
str[0]) {
4171 but->
icon = ICON_NONE;
4196 int nbr_entries_nosepr = 0;
4198 if (!item->identifier[0]) {
4203 nbr_entries_nosepr++;
4208 nbr_entries_nosepr++;
4212 int columns = (nbr_entries_nosepr + 20) / 20;
4217 columns = (nbr_entries_nosepr + 25) / 25;
4220 int rows = totitems / columns;
4224 while (rows * columns < totitems) {
4233 block,
UI_BTYPE_LABEL, 0, title, 0, 0,
UI_UNIT_X * 5,
UI_UNIT_Y,
NULL, 0.0, 0.0, 0, 0,
"");
4246 for (
int a = 0;
a < totitems;
a++) {
4247 new_column = (
a == column_end);
4251 column_end = totitems;
4253 for (
int b =
a + 1; b < totitems; b++) {
4268 if (new_column && (categories > 0) && item->
identifier[0]) {
4269 uiItemL(column,
"", ICON_NONE);
4340 block,
UI_BTYPE_LABEL, 0, title, 0, 0,
UI_UNIT_X * 5,
UI_UNIT_Y,
NULL, 0.0, 0.0, 0, 0,
"");
4355 const char *panel_type = but->
func_argN;
4362 SNPRINTF(msg,
"Missing Panel: %s", panel_type);
4363 uiItemL(layout, msg, ICON_NONE);
4391 SNPRINTF(msg,
"Missing Menu: %s", menu_type);
4392 uiItemL(layout, msg, ICON_NONE);
4465 #ifdef WITH_INTERNATIONAL
4470 icon = item[i].
icon;
4502 if (
min ==
max || a1 == -1 || a2 == -1 || always_set_a1_a2) {
4504 int hardmin, hardmax, softmin, softmax, step;
4513 if (a1 == -1 || always_set_a1_a2) {
4516 if (a2 == -1 || always_set_a1_a2) {
4521 float hardmin, hardmax, softmin, softmax, step, precision;
4530 if (a1 == -1 || always_set_a1_a2) {
4533 if (a2 == -1 || always_set_a1_a2) {
4546 block,
type, retval,
str,
x,
y,
width,
height,
NULL,
min,
max, a1, a2, tip);
4611 but->
poin = (
char *)but;
4626 const char *propname,
4639 block,
type, retval,
str,
x,
y,
width,
height,
ptr, prop,
index,
min,
max, a1, a2, tip);
4643 block,
type, retval, propname,
x,
y,
width,
height,
NULL,
min,
max, a1, a2, tip);
4675 uiBut *but =
ui_def_but(block,
type, -1,
str,
x,
y,
width,
height,
NULL, 0, 0, 0, 0, tip);
4703 block,
type, retval,
str,
x,
y,
width,
height, poin,
min,
max, a1, a2, tip);
4714 block,
UI_BTYPE_IMAGE, 0,
"",
x,
y,
width,
height, imbuf, 0, 0, 0, 0,
"");
4751 if (
x & 0xFFFF0000) {
4787 autocpl->
maxlen = maxlen;
4797 char *truncate = autocpl->
truncate;
4798 const char *startname = autocpl->
startname;
4799 int match_index = 0;
4800 for (
int a = 0;
a < autocpl->
maxlen - 1;
a++) {
4801 if (startname[
a] == 0 || startname[
a] != name[
a]) {
4808 if (startname[match_index] == 0) {
4811 if (truncate[0] == 0) {
4816 for (
int a = 0;
a < autocpl->
maxlen - 1;
a++) {
4821 if (truncate[
a] != name[
a]) {
5153 const char *propname,
5162 block,
type, retval,
str,
x,
y,
width,
height,
ptr, propname, index,
min,
max, a1, a2, tip);
5184 block,
type, retval,
str,
x,
y,
width,
height,
ptr, prop, index,
min,
max, a1, a2, tip);
5239 block,
type, retval,
"",
x,
y,
width,
height, poin,
min,
max, a1, a2, tip);
5536 const char *propname,
5545 block,
type, retval,
"",
x,
y,
width,
height,
ptr, propname, index,
min,
max, a1, a2, tip);
5567 block,
type, retval,
"",
x,
y,
width,
height,
ptr, prop, index,
min,
max, a1, a2, tip);
5620 block,
type, retval,
str,
x,
y,
width,
height, poin,
min,
max, a1, a2, tip);
5937 const char *propname,
5946 block,
type, retval,
str,
x,
y,
width,
height,
ptr, propname, index,
min,
max, a1, a2, tip);
5970 block,
type, retval,
str,
x,
y,
width,
height,
ptr, prop, index,
min,
max, a1, a2, tip);
6005 if (
str &&
str[0] ==
'\0') {
6008 return uiDefIconTextButO_ptr(block,
type,
ot, opcontext, icon,
str,
x,
y,
width,
height, tip);
6020 if (block == lb->
first || block->rect.ymin <
min) {
6021 min = block->rect.ymin;
6036 float centy, miny = 10000, maxy = -10000;
6049 if (but->rect.ymin < miny) {
6050 miny = but->rect.ymin;
6052 if (but->rect.ymax > maxy) {
6053 maxy = but->rect.ymax;
6057 centy = (miny + maxy) / 2.0f;
6059 but->rect.ymin = centy - (but->rect.ymin - centy);
6060 but->rect.ymax = centy - (but->rect.ymax - centy);
6061 SWAP(
float, but->rect.ymin, but->rect.ymax);
6069 block->
flag |= flag;
6074 block->
flag &= ~flag;
6089 return (but->
flag & flag) != 0;
6148 asset_drag->
path = path;
6149 asset_drag->
id_type = id_type;
6202 uiBut *but,
const char *path,
int icon,
struct ImBuf *imb,
float scale,
const bool use_free)
6235 const int ownUnit = (int)but->
unit_type;
6242 return ownUnit << 16;
6272 block->
funcN = funcN;
6285 void (*func)(
const bContext *
C,
void *idv,
void *arg1,
void *arg2,
rcti *rect),
6349 block,
UI_BTYPE_BLOCK, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6366 block,
UI_BTYPE_BLOCK, 0,
str,
x,
y,
width,
height,
NULL, 0.0, 0.0, 0.0, 0.0, tip);
6387 block,
UI_BTYPE_PULLDOWN, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6404 block,
UI_BTYPE_PULLDOWN, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6422 block,
UI_BTYPE_PULLDOWN, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6446 block,
UI_BTYPE_PULLDOWN, 0,
"",
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6470 block,
UI_BTYPE_BLOCK, 0,
str,
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6473 if (icon != ICON_RIGHTARROW_THIN) {
6499 block,
UI_BTYPE_BLOCK, retval,
"",
x,
y,
width,
height, arg, 0.0, 0.0, 0.0, 0.0, tip);
6549 const short *modkeypoin,
6587 block,
UI_BTYPE_SEARCH_MENU, retval,
"",
x,
y,
width,
height, arg, 0.0, maxlen, a1, a2, tip);
6617 const bool free_arg,
6628 if (search_create_fn ==
NULL) {
6641 search_but->
arg = arg;
6644 if (search_exec_fn) {
6648 printf(
"%s: warning, overwriting button callback with search function callback!\n",
6712 const bool UNUSED(is_first))
6718 printf(
"%s: %s has no enum property set\n", __func__,
ot->
idname);
6721 printf(
"%s: %s \"%s\" is not an enum property\n",
6741 for (
int i = 0; i < filtered_amount; i++) {
6774 printf(
"%s: op->prop for '%s' is NULL\n", __func__,
ot->
idname);
6798 uiBut *but =
uiDefSearchBut(block, arg, retval, icon, maxlen,
x,
y,
width,
height, a1, a2, tip);
6857 event.is_repeat =
false;
6858 event.customdata = but;
6859 event.customdatafree =
false;
6877 bool free_items =
false;
6879 va_start(args, but);
6885 if (but->
str && but->
str[0]) {
6886 const char *str_sep;
6890 str_len = (str_sep - but->
str);
6893 str_len = strlen(but->
str);
6906 else if (but->
tip && but->
tip[0]) {
7065 for (i = 0, item = items; i < totitems; i++, item++) {
7066 if (item->identifier[0] && item->value == value) {
7071 if (item && item->identifier) {
7078 else if (item->description && item->description[0]) {
7104 if (free_items && items) {
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)
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_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_New(const char type, const IDPropertyTemplate *val, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct IDProperty * IDP_CopyProperty(const struct IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
double BKE_scene_unit_scale(const struct UnitSettings *unit, const 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 len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLF_batch_draw_begin(void)
void BLF_batch_draw_end(void)
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_findstring(const struct ListBase *listbase, const char *id, const int offset) ATTR_WARN_UNUSED_RESULT 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 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 integer_digits_f(const float f)
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_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)
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_union(struct rctf *rct1, const struct rctf *rct2)
void BLI_rctf_init_minmax(struct rctf *rect)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
#define STRNCPY(dst, src)
char * BLI_strdupn(const char *str, const size_t len) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#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
#define STR_CONCATF(dst, len, format,...)
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
#define STR_CONCAT(dst, len, suffix)
void BLI_string_search_free(StringSearch *search)
void BLI_string_search_add(StringSearch *search, const char *str, void *user_data)
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()
#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
bool BPY_run_string_as_number(struct bContext *C, const char *imports[], const char *expr, struct BPy_RunErrInfo *err_info, double *r_value)
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
_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 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 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 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)
void IMB_freeImBuf(struct ImBuf *ibuf)
Read Guarded memory(de)allocation.
Group RGB to Bright Vector Camera CLAMP
@ RNA_OVERRIDE_STATUS_OVERRIDDEN
short RNA_type_to_ID_code(const StructRNA *type)
StructRNA RNA_FileSelectParams
StructRNA RNA_ToolSettings
#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
void UI_fontstyle_set(const struct uiFontStyle *fs)
const struct uiStyle * UI_style_get_dpi(void)
@ UI_BUT_ACTIVATE_ON_INIT
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)
bool UI_search_item_add(uiSearchItems *items, const char *name, void *poin, int iconid, int state, const 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
void(* uiButSearchUpdateFn)(const struct bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
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 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)
bool UI_butstore_register_update(uiBlock *block, uiBut *but_dst, const uiBut *but_src)
void(* uiButSearchArgFreeFn)(void *arg)
int(* uiButPushedStateFunc)(struct bContext *C, void *arg)
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)
@ UI_BLOCK_MOVEMOUSE_QUIT
@ UI_BLOCK_SHOW_SHORTCUT_ALWAYS
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
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)
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)
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
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
void activate(bool forceActivation=false) const
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const Depsgraph * depsgraph
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)
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)
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)
void UI_but_func_tooltip_set(uiBut *but, uiButToolTipFunc func, void *argN)
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])
uiBut * uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x, int y, short width, short height, short *spoin, const char *tip)
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)
uiBut * uiDefButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
static uiBut * ui_but_alloc(const eButType type)
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)
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)
uiBut * uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
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)
uiBut * ui_but_drag_multi_edit_get(uiBut *but)
static int ui_but_calc_float_precision(uiBut *but, double value)
void UI_but_drag_set_image(uiBut *but, const char *path, int icon, struct ImBuf *imb, float scale, const bool use_free)
char UI_block_emboss_get(uiBlock *block)
uiBut * uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x, int y, short width, short height, const char *tip)
void UI_but_func_menu_step_set(uiBut *but, uiMenuStepFunc func)
uiBut * uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
uiBut * uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, 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_blocklist_free(const bContext *C, ListBase *lb)
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)
void UI_blocklist_free_inactive(const bContext *C, ListBase *lb)
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 PointerRNA * ui_but_extra_operator_icon_add_ptr(uiBut *but, wmOperatorType *optype, short opcontext, int icon)
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_drag_set_path(uiBut *but, const char *path, const bool use_free)
void UI_but_drawflag_enable(uiBut *but, int flag)
static void ui_but_validate(const uiBut *but)
uiBut * uiDefIconButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, int icon, int x, int y, short width, short height, const char *tip)
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)
uiBut * uiDefIconButC(uiBlock *block, int type, 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)
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)
uiBut * uiDefButBitF(uiBlock *block, int type, int bit, 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)
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)
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_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)
uiBut * uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
static bool ui_but_event_operator_string_from_menu(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
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)
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_but_func_search_set(uiBut *but, uiButSearchCreateFn search_create_fn, uiButSearchUpdateFn search_update_fn, void *arg, const bool free_arg, uiButSearchArgFreeFn search_arg_free_fn, uiButHandleFunc search_exec_fn, void *active)
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)
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 bool ui_number_from_string_units(bContext *C, const char *str, const int unit_type, const UnitSettings *unit, double *r_value)
PointerRNA * UI_but_extra_operator_icon_add(uiBut *but, const char *opname, short opcontext, int icon)
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)
uiBut * uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, 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)
uiBut * uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
static bool ui_but_icon_extra_is_visible_text_clear(const uiBut *but)
static void ui_but_to_pixelrect(struct rcti *rect, const struct ARegion *region, struct uiBlock *block, struct uiBut *but)
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)
uiBut * uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
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)
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_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)
int UI_blocklist_min_y_get(ListBase *lb)
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)
uiBut * uiDefIconTextButBitF(uiBlock *block, int type, int bit, 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)
void UI_but_number_precision_set(uiBut *but, float precision)
static uiBut * ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
void UI_block_bounds_set_centered(uiBlock *block, int addval)
void UI_but_func_pushed_state_set(uiBut *but, uiButPushedStateFunc func, void *arg)
bool UI_but_active_only(const bContext *C, ARegion *region, uiBlock *block, uiBut *but)
void UI_but_drag_set_rna(uiBut *but, PointerRNA *ptr)
bool ui_but_string_eval_number(bContext *C, const uiBut *but, const char *str, double *r_value)
static bool ui_but_event_operator_string_from_operator(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
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)
void UI_but_drag_set_value(uiBut *but)
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)
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)
static uiBut * uiDefIconTextButBit(uiBlock *block, int type, int bit, 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)
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)
void UI_but_drag_set_asset(uiBut *but, const char *name, const char *path, int id_type, int icon, struct ImBuf *imb, float scale)
uiBut * ui_but_find_new(uiBlock *block_new, const uiBut *but_old)
void UI_reinit_font(void)
uiBut * uiDefIconTextButBitI(uiBlock *block, int type, int bit, 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)
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_but_drag_set_id(uiBut *but, ID *id)
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)
uiBut * uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip)
uiBut * uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x, int y, short width, short height, short *keypoin, const short *modkeypoin, const char *tip)
static bool ui_but_equals_old(const uiBut *but, const uiBut *oldbut)
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_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)
uiBut * uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x, int y, short width, short height, const char *tip)
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)
uiBut * uiDefIconTextButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip)
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)
void ui_fontscale(short *points, float aspect)
void UI_but_drag_set_name(uiBut *but, const char *name)
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_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_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
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_draw_aligned_panel(const struct uiStyle *style, const uiBlock *block, const rcti *rect, const bool show_pin, const bool show_background, const bool region_search_filter_active)
void ui_interface_tag_script_reload_queries(void)
bool ui_but_is_editable(const uiBut *but) ATTR_WARN_UNUSED_RESULT
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_layout_add_but(uiLayout *layout, uiBut *but)
void ui_resources_free(void)
void ui_draw_pie_center(uiBlock *block)
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)
MINLINE void zero_v2_int(int r[2])
static void error(const char *str)
INLINE Rall1d< T, V, S > pow(const Rall1d< T, V, S > &arg, double m)
INLINE Rall1d< T, V, S > log(const Rall1d< T, V, S > &arg)
bool active
all scheduled work for the GPU.
void split(const std::string &s, const char delim, std::vector< std::string > &tokens)
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)
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)
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)
char * RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop)
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_editable(PointerRNA *ptr, PropertyRNA *prop_orig)
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 ReportList * reports
char idname[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
uiButSearchArgFreeFn arg_free_fn
uiButSearchCreateFn popup_create_fn
struct PointerRNA rnasearchpoin
uiButSearchTooltipFn item_tooltip_fn
struct PropertyRNA * rnasearchprop
uiButSearchContextMenuFn item_context_menu_fn
uiButCompleteFunc autocomplete_func
struct bContextStore * context
struct uiHandleButtonData * active
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
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
char *(* get_description)(struct bContext *C, struct wmOperatorType *, struct PointerRNA *)
struct wmEvent * eventstate
ccl_device_inline float2 floor(const float2 &a)
ccl_device_inline float3 ceil(const float3 &a)
void WM_drag_data_free(int dragtype, void *poin)
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, int 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)
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)