22#define DEF_ICON(name) {ICON_##name, (#name), 0, (#name), ""},
23#define DEF_ICON_VECTOR(name) {ICON_##name, (#name), 0, (#name), ""},
24#define DEF_ICON_COLOR(name) {ICON_##name, (#name), 0, (#name), ""},
25#define DEF_ICON_BLANK(name)
28 {0,
nullptr, 0,
nullptr,
nullptr},
60 if (text_ctxt && text_ctxt[0]) {
87static void rna_uiItemR(
uiLayout *layout,
91 const char *text_ctxt,
94 const char *placeholder,
104 bool invert_checkbox)
114 if (icon_value && !icon) {
120 name, text_ctxt,
nullptr, prop, translate);
122 placeholder, text_ctxt,
nullptr, prop, translate);
134 else if (toggle == 0) {
147 if (emboss ==
false) {
150 if (invert_checkbox) {
154 layout->
prop(
ptr, prop, index, 0,
flag, text, icon, placeholder_str);
157static void rna_uiItemR_with_popover(
uiLayout *layout,
159 const char *propname,
161 const char *text_ctxt,
165 const char *panel_type)
187 name, text_ctxt,
nullptr, prop, translate);
191static void rna_uiItemR_with_menu(
uiLayout *layout,
193 const char *propname,
195 const char *text_ctxt,
199 const char *menu_type)
218 name, text_ctxt,
nullptr, prop, translate);
222static void rna_uiItemMenuEnumR(
uiLayout *layout,
224 const char *propname,
226 const char *text_ctxt,
239 name, text_ctxt,
nullptr, prop, translate);
243static void rna_uiItemTabsEnumR(
uiLayout *layout,
246 const char *propname,
248 const char *propname_highlight,
266 if (!prop_highlight) {
289static void rna_uiItemEnumR_string(
uiLayout *layout,
291 const char *propname,
294 const char *text_ctxt,
307 name, text_ctxt,
nullptr, prop, translate);
317static void rna_uiItemPointerR(
uiLayout *layout,
319 const char *propname,
321 const char *searchpropname,
323 const char *text_ctxt,
326 const bool results_are_suggestions,
327 const char *item_searchpropname)
342 if (item_searchpropname && item_searchpropname[0]) {
345 if (!item_searchprop) {
346 RNA_warning(
"Collection items search property not found: %s.%s",
348 item_searchpropname);
354 name, text_ctxt,
nullptr, prop, translate);
357 ptr, prop, searchptr, searchprop, item_searchprop, text, icon, results_are_suggestions);
368 const char *text_ctxt,
374 const float search_weight)
379 if (!
ot || !
ot->srna) {
380 RNA_warning(
"%s '%s'",
ot ?
"operator missing srna" :
"unknown operator", opname);
386 name, text_ctxt,
ot->srna,
nullptr, translate);
388 if (icon_value && !icon) {
392 if (emboss ==
false) {
411 const char *text_ctxt,
420 if (!
ot || !
ot->srna) {
421 RNA_warning(
"%s '%s'",
ot ?
"operator missing srna" :
"unknown operator", opname);
427 name, text_ctxt,
ot->srna,
nullptr, translate);
428 if (icon_value && !icon) {
432 if (emboss ==
false) {
442static void rna_uiItemsEnumO(
uiLayout *layout,
444 const char *propname,
445 const bool icon_only)
454 const char *propname,
456 const char *text_ctxt,
462 if (!
ot || !
ot->srna) {
463 RNA_warning(
"%s '%s'",
ot ?
"operator missing srna" :
"unknown operator", opname);
469 name, text_ctxt,
ot->srna,
nullptr, translate);
474static void rna_uiItemL(
uiLayout *layout,
476 const char *text_ctxt,
483 name, text_ctxt,
nullptr,
nullptr, translate);
485 if (icon_value && !icon) {
489 layout->
label(text.value_or(
""), icon);
492static void rna_uiItemM(
uiLayout *layout,
493 const char *menuname,
495 const char *text_ctxt,
502 name, text_ctxt,
nullptr,
nullptr, translate);
504 if (icon_value && !icon) {
508 layout->
menu(menuname, text, icon);
511static void rna_uiItemM_contents(
uiLayout *layout,
const char *menuname)
516static void rna_uiItemPopoverPanel(
uiLayout *layout,
518 const char *panel_type,
520 const char *text_ctxt,
527 name, text_ctxt,
nullptr,
nullptr, translate);
529 if (icon_value && !icon) {
533 layout->
popover(
C, panel_type, text, icon);
536static void rna_uiItemPopoverPanelFromGroup(
uiLayout *layout,
541 const char *category)
546static void rna_uiItemProgress(
uiLayout *layout,
548 const char *text_ctxt,
560static void rna_uiItemSeparator(
uiLayout *layout,
float factor,
int type)
570static void rna_uiLayoutContextStringSet(
uiLayout *layout,
const char *
name,
const char *value)
575static void rna_uiLayoutSeparatorSpacer(
uiLayout *layout)
580static void rna_uiTemplateID(
uiLayout *layout,
583 const char *propname,
586 const char *unlinkop,
588 const bool live_icon,
590 const char *text_ctxt,
602 name, text_ctxt,
nullptr, prop, translate);
607static void rna_uiTemplateAnyID(
uiLayout *layout,
609 const char *propname,
610 const char *proptypename,
612 const char *text_ctxt,
624 name, text_ctxt,
nullptr, prop, translate);
630static void rna_uiTemplateAction(
uiLayout *layout,
634 const char *unlinkop,
636 const char *text_ctxt,
637 const bool translate)
640 name, text_ctxt,
nullptr,
nullptr, translate);
644static void rna_uiTemplateSearch(
uiLayout *layout,
647 const char *propname,
649 const char *searchpropname,
651 const char *unlinkop,
653 const char *text_ctxt,
665 name, text_ctxt,
nullptr, prop, translate);
670static void rna_uiTemplateSearchPreview(
uiLayout *layout,
673 const char *propname,
675 const char *searchpropname,
677 const char *unlinkop,
679 const char *text_ctxt,
693 name, text_ctxt,
nullptr, prop, translate);
696 layout,
C,
ptr, propname, searchptr, searchpropname, newop, unlinkop, rows, cols, text);
699void rna_uiTemplateList(
uiLayout *layout,
701 const char *listtype_name,
704 const char *propname,
706 const char *active_propname,
707 const char *item_dyntip_propname,
710 const int layout_type,
712 const bool sort_reverse,
713 const bool sort_lock)
731 item_dyntip_propname,
739static void rna_uiTemplateCacheFile(
uiLayout *layout,
742 const char *propname)
754static void rna_uiTemplateCacheFileVelocity(
uiLayout *layout,
756 const char *propname)
766static void rna_uiTemplateCacheFileTimeSettings(
uiLayout *layout,
768 const char *propname)
778static void rna_uiTemplateCacheFileLayers(
uiLayout *layout,
781 const char *propname)
791static void rna_uiTemplatePathBuilder(
uiLayout *layout,
793 const char *propname,
796 const char *text_ctxt,
808 name, text_ctxt,
nullptr, prop, translate);
814static void rna_uiTemplateEventFromKeymapItem(
819 name, text_ctxt,
nullptr,
nullptr, translate);
825 return &layout->
box();
828static uiLayout *rna_uiLayoutSplit(
uiLayout *layout,
float factor,
bool align)
830 return &layout->
split(factor, align);
833static uiLayout *rna_uiLayoutRowWithHeading(
834 uiLayout *layout,
bool align,
const char *heading,
const char *heading_ctxt,
bool translate)
838 heading, heading_ctxt,
nullptr,
nullptr, translate);
839 return &layout->
row(align, text.value_or(
""));
842static uiLayout *rna_uiLayoutColumnWithHeading(
843 uiLayout *layout,
bool align,
const char *heading,
const char *heading_ctxt,
bool translate)
847 heading, heading_ctxt,
nullptr,
nullptr, translate);
848 return &layout->
column(align, text.value_or(
""));
851static uiLayout *rna_uiLayoutColumnFlow(
uiLayout *layout,
int number,
bool align)
871void rna_uiLayoutPanelProp(
uiLayout *layout,
875 const char *property,
880 if (panel ==
nullptr) {
882 *r_layout_header =
nullptr;
883 *r_layout_body =
nullptr;
888 *r_layout_header = panel_layout.
header;
889 *r_layout_body = panel_layout.
body;
892void rna_uiLayoutPanel(
uiLayout *layout,
896 const bool default_closed,
901 if (panel ==
nullptr) {
903 *r_layout_header =
nullptr;
904 *r_layout_body =
nullptr;
908 *r_layout_header = panel_layout.
header;
909 *r_layout_body = panel_layout.
body;
912static void rna_uiLayout_template_node_asset_menu_items(
uiLayout *layout,
914 const char *catalog_path,
915 const int operator_type)
922static void rna_uiLayout_template_node_operator_asset_menu_items(
uiLayout *layout,
924 const char *catalog_path)
930static void rna_uiLayout_template_modifier_asset_menu_items(
uiLayout *layout,
931 const char *catalog_path,
932 const bool skip_essentials)
936 *layout,
StringRef(catalog_path), skip_essentials);
939static void rna_uiLayout_template_node_operator_root_items(
uiLayout *layout,
bContext *
C)
949static const char *rna_ui_get_enum_name(
bContext *
C,
951 const char *propname,
952 const char *identifier)
957 const char *
name =
"";
981static const char *rna_ui_get_enum_description(
bContext *
C,
983 const char *propname,
984 const char *identifier)
989 const char *desc =
"";
1013static int rna_ui_get_enum_icon(
bContext *
C,
1015 const char *propname,
1016 const char *identifier)
1021 int icon = ICON_NONE;
1035 icon = items[index].
icon;
1045void rna_uiTemplateAssetShelfPopover(
uiLayout *layout,
1047 const char *asset_shelf_id,
1052 if (icon_value && !icon) {
1063 const char *text_ctxt,
1066 const char *cancel_text,
1067 bool cancel_default)
1081 if (opname[0] ? (!
ot || !
ot->srna) :
false) {
1082 RNA_warning(
"%s '%s'",
ot ?
"operator missing srna" :
"unknown operator", opname);
1089 text, text_ctxt,
nullptr,
nullptr, translate);
1090 std::optional<StringRefNull> cancel_text_str;
1091 if (cancel_text && cancel_text[0]) {
1096 layout,
ot, text_str, cancel_text_str, icon, cancel_default, &opptr);
1110 "Label to insert into the layout for this sub-layout");
1116 "Override automatic translation context of the given heading");
1118 func,
"translate",
true,
"",
"Translate the given heading, when UI translation is enabled");
1128 "Override automatic translation context of the given text");
1131 func,
"translate",
true,
"",
"Translate the given text, when UI translation is enabled");
1138 prop =
RNA_def_string(func,
"text",
nullptr, 0,
"",
"Override automatic text of the item");
1157 parm =
RNA_def_string(func,
"operator",
nullptr, 0,
"",
"Identifier of the operator");
1171 parm =
RNA_def_pointer(func,
"data",
"AnyType",
"",
"Data from which to take property");
1173 parm =
RNA_def_string(func,
"property",
nullptr, 0,
"",
"Identifier of property in data");
1183 {0,
"NONE", 0,
"None",
""},
1184 {
'v',
"VECTOR", 0,
"Vector",
""},
1185 {
'c',
"COLOR", 0,
"Color",
""},
1186 {
'h',
"HUE", 0,
"Hue",
""},
1187 {0,
nullptr, 0,
nullptr,
nullptr},
1193 {0,
nullptr, 0,
nullptr,
nullptr},
1199 {0,
nullptr, 0,
nullptr,
nullptr},
1207 "Best guess at what type of separator is needed."},
1212 "Horizontal or Vertical empty space, depending on layout direction."},
1217 "Horizontal or Vertical line, depending on layout direction."},
1218 {0,
nullptr, 0,
nullptr,
nullptr},
1226 "Add a node to the active tree."},
1231 "Replace the selected nodes with the specified type."},
1232 {0,
nullptr, 0,
nullptr,
nullptr},
1235 static const float node_socket_color_default[] = {0.0f, 0.0f, 0.0f, 1.0f};
1239 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1243 "Sub-layout. Items placed in this sublayout are placed next to each other "
1245 RNA_def_boolean(func,
"align",
false,
"",
"Align buttons to each other");
1249 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1253 "Sub-layout. Items placed in this sublayout are placed under each other "
1255 RNA_def_boolean(func,
"align",
false,
"",
"Align buttons to each other");
1261 "Creates a collapsible panel. Whether it is open or closed is stored in the region using "
1262 "the given idname. This can only be used when the panel has the full width of the panel "
1263 "region available to it. So it can't be used in e.g. in a box or columns.");
1265 parm =
RNA_def_string(func,
"idname",
nullptr, 0,
"",
"Identifier of the panel");
1271 "When true, the panel will be open the first time it is shown");
1272 parm =
RNA_def_pointer(func,
"layout_header",
"UILayout",
"",
"Sub-layout to put items in");
1278 "Sub-layout to put items in. Will be none if the panel is collapsed.");
1284 "Similar to ``.panel(...)`` but instead of storing whether it is open or closed in the "
1285 "region, it is stored in the provided boolean property. This should be used when multiple "
1286 "instances of the same panel can exist. For example one for every item in a collection "
1287 "property or list. This can only be used when the panel has the full width of the panel "
1288 "region available to it. So it can't be used in e.g. in a box or columns.");
1291 func,
"data",
"AnyType",
"",
"Data from which to take the open-state property");
1299 "Identifier of the boolean property that determines whether the panel is open or closed");
1301 parm =
RNA_def_pointer(func,
"layout_header",
"UILayout",
"",
"Sub-layout to put items in");
1307 "Sub-layout to put items in. Will be none if the panel is collapsed.");
1311 RNA_def_int(func,
"columns", 0, 0, INT_MAX,
"",
"Number of columns, 0 is automatic", 0, INT_MAX);
1312 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1314 RNA_def_boolean(func,
"align",
false,
"",
"Align buttons to each other");
1317 RNA_def_boolean(func,
"row_major",
false,
"",
"Fill row by row, instead of column by column");
1325 "Number of columns, positive are absolute fixed numbers, 0 is automatic, negative are "
1326 "automatic multiple numbers along major axis (e.g. -2 will only produce 2, 4, 6 etc. "
1327 "columns for row major layout, and 2, 4, 6 etc. rows for column major layout).",
1330 RNA_def_boolean(func,
"even_columns",
false,
"",
"All columns will have the same width");
1331 RNA_def_boolean(func,
"even_rows",
false,
"",
"All rows will have the same height");
1332 RNA_def_boolean(func,
"align",
false,
"",
"Align buttons to each other");
1333 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1338 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1341 "Sublayout (items placed in this sublayout are placed "
1342 "under each other in a column and are surrounded by a box)");
1346 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1354 "Percentage of width to split at (leave unset for automatic calculation)",
1357 RNA_def_boolean(func,
"align",
false,
"",
"Align buttons to each other");
1361 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Sub-layout to put items in");
1364 "Sublayout. Items placed in this sublayout are placed "
1365 "in a radial fashion around the menu center).");
1369 parm =
RNA_def_int(func,
"icon_value", ICON_NONE, 0, INT_MAX,
"",
"Icon identifier", 0, INT_MAX);
1372 parm =
RNA_def_pointer(func,
"data",
"AnyType",
"",
"Data from which to take the icon");
1375 "Return the custom icon for this data, "
1376 "use it e.g. to get materials or texture icons.");
1380 parm =
RNA_def_string(func,
"name",
nullptr, 0,
"",
"UI name of the enum item");
1384 parm =
RNA_def_string(func,
"identifier",
nullptr, 0,
"",
"Identifier of the enum item");
1388 func =
RNA_def_function(srna,
"enum_item_description",
"rna_ui_get_enum_description");
1389 parm =
RNA_def_string(func,
"description",
nullptr, 0,
"",
"UI description of the enum item");
1393 parm =
RNA_def_string(func,
"identifier",
nullptr, 0,
"",
"Identifier of the enum item");
1398 parm =
RNA_def_int(func,
"icon_value", ICON_NONE, 0, INT_MAX,
"",
"Icon identifier", 0, INT_MAX);
1402 parm =
RNA_def_string(func,
"identifier",
nullptr, 0,
"",
"Identifier of the enum item");
1409 "Item. Exposes an RNA item and places it into the layout.");
1413 func,
"placeholder",
nullptr, 0,
"",
"Hint describing the expected value when empty");
1415 RNA_def_boolean(func,
"expand",
false,
"",
"Expand button to show more detail");
1416 RNA_def_boolean(func,
"slider",
false,
"",
"Use slider widget for numeric values");
1423 "Use toggle widget for boolean values, "
1424 "or a checkbox when disabled "
1425 "(the default is -1 which uses toggle only when an icon is displayed)",
1428 RNA_def_boolean(func,
"icon_only",
false,
"",
"Draw only icons in buttons, no text");
1429 RNA_def_boolean(func,
"event",
false,
"",
"Use button to input key events");
1431 func,
"full_event",
false,
"",
"Use button to input full events including modifiers");
1436 "Draw the button itself, not just the icon/text. When false, corresponds to the "
1437 "'NONE_OR_STATUS' layout emboss type.");
1445 "The index of this button, when set a single member of an array can be accessed, "
1446 "when set to -1 all array members are used",
1451 RNA_def_boolean(func,
"invert_checkbox",
false,
"",
"Draw checkbox value inverted");
1460 func =
RNA_def_function(srna,
"prop_with_popover",
"rna_uiItemR_with_popover");
1463 RNA_def_boolean(func,
"icon_only",
false,
"",
"Draw only icons in tabs, no text");
1464 parm =
RNA_def_string(func,
"panel",
nullptr, 0,
"",
"Identifier of the panel");
1470 RNA_def_boolean(func,
"icon_only",
false,
"",
"Draw only icons in tabs, no text");
1471 parm =
RNA_def_string(func,
"menu",
nullptr, 0,
"",
"Identifier of the menu");
1478 func,
"data_highlight",
"AnyType",
"",
"Data from which to take highlight property");
1481 func,
"property_highlight",
nullptr, 0,
"",
"Identifier of highlight property in data");
1482 RNA_def_boolean(func,
"icon_only",
false,
"",
"Draw only icons in tabs, no text");
1486 parm =
RNA_def_string(func,
"value",
nullptr, 0,
"",
"Enum property value");
1493 func,
"search_data",
"AnyType",
"",
"Data from which to take collection to search in");
1496 func,
"search_property",
nullptr, 0,
"",
"Identifier of search collection property");
1500 func,
"results_are_suggestions",
false,
"",
"Accept inputs that do not match any item");
1502 "item_search_property",
1506 "Identifier of the string property in each collection's items to use for "
1507 "searching (defaults to the items' type 'name property')");
1518 "The index of this button, when set a single member of an array can be accessed, "
1519 "when set to -1 all array members are used",
1523 for (
int is_menu_hold = 0; is_menu_hold < 2; is_menu_hold++) {
1524 func = (is_menu_hold) ?
RNA_def_function(srna,
"operator_menu_hold",
"rna_uiItemOMenuHold") :
1527 RNA_def_boolean(func,
"emboss",
true,
"",
"Draw the button itself, not just the icon/text");
1532 parm =
RNA_def_string(func,
"menu",
nullptr, 0,
"",
"Identifier of the menu");
1542 "Influences the sorting when using menu-seach",
1547 func,
"properties",
"OperatorProperties",
"",
"Operator properties to fill in");
1551 "Item. Places a button into the layout to call an Operator.");
1555 parm =
RNA_def_string(func,
"operator",
nullptr, 0,
"",
"Identifier of the operator");
1557 parm =
RNA_def_string(func,
"property",
nullptr, 0,
"",
"Identifier of property in operator");
1559 RNA_def_boolean(func,
"icon_only",
false,
"",
"Draw only icons in buttons, no text");
1561 func =
RNA_def_function(srna,
"operator_menu_enum",
"rna_uiItemMenuEnumO");
1565 parm =
RNA_def_string(func,
"property",
nullptr, 0,
"",
"Identifier of property in operator");
1569 func,
"properties",
"OperatorProperties",
"",
"Operator properties to fill in");
1580 parm =
RNA_def_string(func,
"menu",
nullptr, 0,
"",
"Identifier of the menu");
1587 parm =
RNA_def_string(func,
"menu",
nullptr, 0,
"",
"Identifier of the menu");
1592 parm =
RNA_def_string(func,
"panel",
nullptr, 0,
"",
"Identifier of the panel");
1598 func =
RNA_def_function(srna,
"popover_group",
"rna_uiItemPopoverPanelFromGroup");
1605 parm =
RNA_def_string(func,
"context",
nullptr, 0,
"",
"panel type context");
1607 parm =
RNA_def_string(func,
"category",
nullptr, 0,
"",
"panel type category");
1612 "Item. Inserts empty space into the layout between items.");
1619 "Percentage of width to space (leave unset for default space)",
1624 rna_enum_separator_type_items,
1627 "The type of the separator");
1629 func =
RNA_def_function(srna,
"separator_spacer",
"rna_uiLayoutSeparatorSpacer");
1631 func,
"Item. Inserts horizontal spacing empty space into the layout between items.");
1642 "Amount of progress from 0.0f to 1.0f",
1647 progress_type_items,
1650 "The type of progress indicator");
1653 func =
RNA_def_function(srna,
"context_pointer_set",
"rna_uiLayoutContextPointerSet");
1654 parm =
RNA_def_string(func,
"name",
nullptr, 0,
"Name",
"Name of entry in the context");
1656 parm =
RNA_def_pointer(func,
"data",
"AnyType",
"",
"Pointer to put in context");
1659 func =
RNA_def_function(srna,
"context_string_set",
"rna_uiLayoutContextStringSet");
1660 parm =
RNA_def_string(func,
"name",
nullptr, 0,
"Name",
"Name of entry in the context");
1662 parm =
RNA_def_string(func,
"value",
nullptr, 0,
"Value",
"String to put in context");
1673 RNA_def_string(func,
"new",
nullptr, 0,
"",
"Operator identifier to create a new ID block");
1679 "Operator identifier to open a file for creating a new ID block");
1680 RNA_def_string(func,
"unlink",
nullptr, 0,
"",
"Operator identifier to unlink the ID block");
1683 id_template_filter_items,
1686 "Optionally limit the items which can be selected");
1687 RNA_def_boolean(func,
"live_icon",
false,
"",
"Show preview instead of fixed icon");
1690 func =
RNA_def_function(srna,
"template_ID_preview",
"uiTemplateIDPreview");
1693 RNA_def_string(func,
"new",
nullptr, 0,
"",
"Operator identifier to create a new ID block");
1699 "Operator identifier to open a file for creating a new ID block");
1700 RNA_def_string(func,
"unlink",
nullptr, 0,
"",
"Operator identifier to unlink the ID block");
1702 func,
"rows", 0, 0, INT_MAX,
"Number of thumbnail preview rows to display",
"", 0, INT_MAX);
1708 "Number of thumbnail preview columns to display",
1714 id_template_filter_items,
1717 "Optionally limit the items which can be selected");
1718 RNA_def_boolean(func,
"hide_buttons",
false,
"",
"Show only list, no buttons");
1723 "Insert a readonly Matrix UI. "
1724 "The UI displays the matrix components - translation, rotation and scale. "
1725 "The **property** argument must be the identifier of an existing 4x4 float vector "
1726 "property of subtype 'MATRIX'.");
1730 parm =
RNA_def_pointer(func,
"data",
"AnyType",
"",
"Data from which to take property");
1732 parm =
RNA_def_string(func,
"property",
nullptr, 0,
"",
"Identifier of property in data");
1739 "Identifier of property in data giving the type of the ID-blocks to use");
1746 RNA_def_string(func,
"new",
nullptr, 0,
"",
"Operator identifier to create a new ID block");
1747 RNA_def_string(func,
"menu",
nullptr, 0,
"",
"Context menu identifier");
1750 id_template_filter_items,
1753 "Optionally limit the items which can be selected");
1757 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"The data-block for which to select an Action");
1759 RNA_def_string(func,
"new",
nullptr, 0,
"",
"Operator identifier to create a new ID block");
1760 RNA_def_string(func,
"unlink",
nullptr, 0,
"",
"Operator identifier to unlink the ID block");
1767 func,
"search_data",
"AnyType",
"",
"Data from which to take collection to search in");
1770 func,
"search_property",
nullptr, 0,
"",
"Identifier of search collection property");
1773 func,
"new",
nullptr, 0,
"",
"Operator identifier to create a new item for the collection");
1779 "Operator identifier to unlink or delete the active "
1780 "item from the collection");
1783 func =
RNA_def_function(srna,
"template_search_preview",
"rna_uiTemplateSearchPreview");
1787 func,
"search_data",
"AnyType",
"",
"Data from which to take collection to search in");
1790 func,
"search_property",
nullptr, 0,
"",
"Identifier of search collection property");
1793 func,
"new",
nullptr, 0,
"",
"Operator identifier to create a new item for the collection");
1799 "Operator identifier to unlink or delete the active "
1800 "item from the collection");
1803 func,
"rows", 0, 0, INT_MAX,
"Number of thumbnail preview rows to display",
"", 0, INT_MAX);
1809 "Number of thumbnail preview columns to display",
1814 func =
RNA_def_function(srna,
"template_path_builder",
"rna_uiTemplatePathBuilder");
1815 parm =
RNA_def_pointer(func,
"data",
"AnyType",
"",
"Data from which to take property");
1817 parm =
RNA_def_string(func,
"property",
nullptr, 0,
"",
"Identifier of property in data");
1819 parm =
RNA_def_pointer(func,
"root",
"ID",
"",
"ID-block from which path is evaluated from");
1823 func =
RNA_def_function(srna,
"template_modifiers",
"uiTemplateModifiers");
1827 func =
RNA_def_function(srna,
"template_strip_modifiers",
"uiTemplateStripModifiers");
1831 func =
RNA_def_function(srna,
"template_collection_exporters",
"uiTemplateCollectionExporters");
1835 func =
RNA_def_function(srna,
"template_constraints",
"uiTemplateConstraints");
1839 "use_bone_constraints",
1842 "Add panels for bone constraints instead of object constraints");
1848 func =
RNA_def_function(srna,
"template_greasepencil_color",
"uiTemplateGpencilColorPreview");
1852 func,
"rows", 0, 0, INT_MAX,
"Number of thumbnail preview rows to display",
"", 0, INT_MAX);
1858 "Number of thumbnail preview columns to display",
1862 RNA_def_float(func,
"scale", 1.0f, 0.1f, 1.5f,
"Scale of the image thumbnails",
"", 0.5f, 1.0f);
1865 id_template_filter_items,
1868 "Optionally limit the items which can be selected");
1870 func =
RNA_def_function(srna,
"template_constraint_header",
"uiTemplateConstraintHeader");
1872 parm =
RNA_def_pointer(func,
"data",
"Constraint",
"",
"Constraint data");
1877 func,
"Item. A preview window for materials, textures, lights or worlds.");
1881 RNA_def_boolean(func,
"show_buttons",
true,
"",
"Show preview buttons?");
1890 "Identifier of this preview widget, if not set the ID type will be used "
1891 "(i.e. all previews of materials without explicit ID will have the same size...).");
1893 func =
RNA_def_function(srna,
"template_curve_mapping",
"uiTemplateCurveMapping");
1895 func,
"Item. A curve mapping widget used for e.g falloff curves for lights.");
1898 RNA_def_boolean(func,
"levels",
false,
"",
"Show black/white levels");
1900 RNA_def_boolean(func,
"use_negative_slope",
false,
"",
"Use a negative slope by default");
1902 RNA_def_boolean(func,
"show_presets",
false,
"",
"Show preset options");
1904 func =
RNA_def_function(srna,
"template_curveprofile",
"uiTemplateCurveProfile");
1908 func =
RNA_def_function(srna,
"template_color_ramp",
"uiTemplateColorRamp");
1911 RNA_def_boolean(func,
"expand",
false,
"",
"Expand button to show more detail");
1915 parm =
RNA_def_int(func,
"icon_value", 0, 0, INT_MAX,
"Icon to display",
"", 0, INT_MAX);
1923 "Scale the icon size (by the button size)",
1930 RNA_def_boolean(func,
"show_labels",
false,
"",
"Show enum label in preview buttons");
1937 "Scale the button icon size (by the button size)",
1946 "Scale the popup icon size (by the button size)",
1950 func =
RNA_def_function(srna,
"template_histogram",
"uiTemplateHistogram");
1958 func =
RNA_def_function(srna,
"template_vectorscope",
"uiTemplateVectorscope");
1965 func,
"used_layers_data",
"AnyType",
"",
"Data from which to take property");
1968 func,
"used_layers_property",
nullptr, 0,
"",
"Identifier of property in data");
1970 parm =
RNA_def_int(func,
"active_layer", 0, 0, INT_MAX,
"Active Layer",
"", 0, INT_MAX);
1973 func =
RNA_def_function(srna,
"template_color_picker",
"uiTemplateColorPicker");
1977 func,
"value_slider",
false,
"",
"Display the value slider to the right of the color wheel");
1982 "Lock the color wheel display to value 1.0 regardless of actual color");
1984 func,
"lock_luminosity",
false,
"",
"Keep the color at its original vector length");
1985 RNA_def_boolean(func,
"cubic",
false,
"",
"Cubic saturation for picking values close to white");
1990 RNA_def_boolean(func,
"color",
false,
"",
"Display the colors as colors or values");
1992 func =
RNA_def_function(srna,
"template_image_layers",
"uiTemplateImageLayers");
2001 func,
"Item(s). User interface for selecting images and their source paths.");
2006 RNA_def_boolean(func,
"compact",
false,
"",
"Use more compact layout");
2007 RNA_def_boolean(func,
"multiview",
false,
"",
"Expose Multi-View options");
2009 func =
RNA_def_function(srna,
"template_image_settings",
"uiTemplateImageSettings");
2012 parm =
RNA_def_pointer(func,
"image_settings",
"ImageFormatSettings",
"",
"");
2014 RNA_def_boolean(func,
"color_management",
false,
"",
"Show color management settings");
2016 func =
RNA_def_function(srna,
"template_image_stereo_3d",
"uiTemplateImageStereo3d");
2018 parm =
RNA_def_pointer(func,
"stereo_3d_format",
"Stereo3dFormat",
"",
"");
2021 func =
RNA_def_function(srna,
"template_image_views",
"uiTemplateImageViews");
2023 parm =
RNA_def_pointer(func,
"image_settings",
"ImageFormatSettings",
"",
"");
2026 func =
RNA_def_function(srna,
"template_movieclip",
"uiTemplateMovieClip");
2028 func,
"Item(s). User interface for selecting movie clips and their source paths.");
2031 RNA_def_boolean(func,
"compact",
false,
"",
"Use more compact layout");
2044 RNA_def_boolean(func,
"compact",
false,
"",
"Use more compact layout");
2047 srna,
"template_movieclip_information",
"uiTemplateMovieclipInformation");
2057 func,
"listtype_name",
nullptr, 0,
"",
"Identifier of the list type to use");
2065 "Identifier of this list widget. Necessary to tell apart different list widgets. Mandatory "
2068 "If this not an empty string, the uilist gets a custom ID, otherwise it takes the "
2069 "name of the class used to define the uilist (for example, if the "
2070 "class name is \"OBJECT_UL_vgroups\", and list_id is not set by the "
2071 "script, then bl_idname = \"OBJECT_UL_vgroups\")");
2074 func,
"dataptr",
"AnyType",
"",
"Data from which to take the Collection property");
2077 func,
"propname",
nullptr, 0,
"",
"Identifier of the Collection property in data");
2083 "Data from which to take the integer property, index of the active item");
2091 "Identifier of the integer property in active_data, index of the active item");
2094 "item_dyntip_propname",
2098 "Identifier of a string property in items, to use as tooltip content");
2105 "Default and minimum number of rows to display",
2109 func,
"maxrows", 5, 0, INT_MAX,
"",
"Default maximum number of rows to display", 0, INT_MAX);
2115 "Type of layout to use");
2122 "Number of items to display per row, for GRID layout",
2125 RNA_def_boolean(func,
"sort_reverse",
false,
"",
"Display items in reverse order by default");
2126 RNA_def_boolean(func,
"sort_lock",
false,
"",
"Lock display order to default value");
2128 func =
RNA_def_function(srna,
"template_running_jobs",
"uiTemplateRunningJobs");
2131 RNA_def_function(srna,
"template_operator_search",
"uiTemplateOperatorSearch");
2134 func =
RNA_def_function(srna,
"template_header_3D_mode",
"uiTemplateHeader3D_mode");
2138 func =
RNA_def_function(srna,
"template_edit_mode_selection",
"uiTemplateEditModeSelection");
2141 func,
"Inserts common 3DView Edit modes header UI (selector for selection mode)");
2143 func =
RNA_def_function(srna,
"template_reports_banner",
"uiTemplateReportsBanner");
2146 func =
RNA_def_function(srna,
"template_input_status",
"uiTemplateInputStatus");
2149 func =
RNA_def_function(srna,
"template_status_info",
"uiTemplateStatusInfo");
2171 srna,
"template_node_asset_menu_items",
"rna_uiLayout_template_node_asset_menu_items");
2176 rna_enum_template_node_operator_type,
2179 "The operator the asset menu will use");
2182 "template_modifier_asset_menu_items",
2183 "rna_uiLayout_template_modifier_asset_menu_items");
2188 "template_node_operator_asset_menu_items",
2189 "rna_uiLayout_template_node_operator_asset_menu_items");
2194 "template_node_operator_asset_root_items",
2195 "rna_uiLayout_template_node_operator_root_items");
2198 func =
RNA_def_function(srna,
"template_texture_user",
"uiTemplateTextureUser");
2202 srna,
"template_keymap_item_properties",
"uiTemplateKeymapItemProperties");
2206 func =
RNA_def_function(srna,
"template_component_menu",
"uiTemplateComponentMenu");
2208 parm =
RNA_def_pointer(func,
"data",
"AnyType",
"",
"Data from which to take property");
2210 parm =
RNA_def_string(func,
"property",
nullptr, 0,
"",
"Identifier of property in data");
2215 func =
RNA_def_function(srna,
"template_colorspace_settings",
"uiTemplateColorspaceSettings");
2220 srna,
"template_colormanaged_view_settings",
"uiTemplateColormanagedViewSettings");
2226 "show_global_settings",
2229 "Show widgets to control global color management settings");
2233 func =
RNA_def_function(srna,
"template_node_socket",
"uiTemplateNodeSocket");
2237 func,
"color", 4, node_socket_color_default, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
2239 func =
RNA_def_function(srna,
"template_cache_file",
"rna_uiTemplateCacheFile");
2241 func,
"Item(s). User interface for selecting cache files and their source paths");
2245 func =
RNA_def_function(srna,
"template_cache_file_velocity",
"rna_uiTemplateCacheFileVelocity");
2250 srna,
"template_cache_file_time_settings",
"rna_uiTemplateCacheFileTimeSettings");
2254 func =
RNA_def_function(srna,
"template_cache_file_layers",
"rna_uiTemplateCacheFileLayers");
2259 func =
RNA_def_function(srna,
"template_recent_files",
"uiTemplateRecentFiles");
2261 RNA_def_int(func,
"rows", 6, 1, INT_MAX,
"",
"Maximum number of items to show", 1, INT_MAX);
2262 parm =
RNA_def_int(func,
"found", 0, 0, INT_MAX,
"",
"Number of items drawn", 0, INT_MAX);
2265 func =
RNA_def_function(srna,
"template_file_select_path",
"uiTemplateFileSelectPath");
2267 "Item. A text button to set the active file browser path.");
2273 srna,
"template_event_from_keymap_item",
"rna_uiTemplateEventFromKeymapItem");
2282 srna,
"template_light_linking_collection",
"uiTemplateLightLinkingCollection");
2284 "Visualization of a content of a light linking collection");
2290 "Layout to set active list element as context properties");
2294 func =
RNA_def_function(srna,
"template_bone_collection_tree",
"uiTemplateBoneCollectionTree");
2299 srna,
"template_grease_pencil_layer_tree",
"uiTemplateGreasePencilLayerTree");
2303 func =
RNA_def_function(srna,
"template_node_tree_interface",
"uiTemplateNodeTreeInterface");
2308 "NodeTreeInterface",
2309 "Node Tree Interface",
2310 "Interface of a node tree to display");
2313 func =
RNA_def_function(srna,
"template_node_inputs",
"uiTemplateNodeInputs");
2316 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Display inputs of this node");
2319 func =
RNA_def_function(srna,
"template_asset_shelf_popover",
"rna_uiTemplateAssetShelfPopover");
2327 "Identifier of the asset shelf to display (``bl_idname``)");
2330 func,
"name",
nullptr, 0,
"",
"Optional name to indicate the active asset");
2339 func =
RNA_def_function(srna,
"template_popup_confirm",
"rna_uiTemplatePopupConfirm");
2346 "Optional text to use for the cancel, not shown when an empty string");
2347 RNA_def_boolean(func,
"cancel_default",
false,
"",
"Cancel button by default");
2349 func,
"Add confirm & cancel buttons into a popup which will close the popup when pressed");
2353 func,
"properties",
"OperatorProperties",
"",
"Operator properties to fill in");
2358 srna,
"template_shape_key_tree",
"blender::ed::object::shapekey::template_tree");
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BLI_kdtree_nd_ free(KDTree *tree)
bool BLT_translate_iface()
const char * BLT_pgettext(const char *msgctxt, const char *msgid)
#define BLT_I18NCONTEXT_DEFAULT
#define RNA_warning(format,...)
void uiTemplateCacheFileLayers(uiLayout *layout, const bContext *C, PointerRNA *fileptr)
void uiTemplateAnyID(uiLayout *layout, PointerRNA *ptr, blender::StringRefNull propname, blender::StringRefNull proptypename, std::optional< blender::StringRef > text)
bool uiTemplateCacheFilePointer(PointerRNA *ptr, blender::StringRefNull propname, PointerRNA *r_file_ptr)
@ UI_TEMPLATE_ID_FILTER_AVAILABLE
@ UI_TEMPLATE_ID_FILTER_ALL
#define UI_UL_DEFAULT_CLASS_NAME
bool uiTemplateEventFromKeymapItem(uiLayout *layout, blender::StringRefNull text, const wmKeyMapItem *kmi, bool text_fallback)
void uiTemplateCacheFileVelocity(uiLayout *layout, PointerRNA *fileptr)
void uiTemplateID(uiLayout *layout, const bContext *C, PointerRNA *ptr, blender::StringRefNull propname, const char *newop, const char *openop, const char *unlinkop, int filter=UI_TEMPLATE_ID_FILTER_ALL, bool live_icon=false, std::optional< blender::StringRef > text=std::nullopt)
void uiTemplateSearchPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, blender::StringRefNull propname, PointerRNA *searchptr, const char *searchpropname, const char *newop, const char *unlinkop, int rows, int cols, std::optional< blender::StringRef > text=std::nullopt)
bool UI_popup_block_template_confirm_is_supported(const uiBlock *block)
void uiTemplatePathBuilder(uiLayout *layout, PointerRNA *ptr, blender::StringRefNull propname, PointerRNA *root_ptr, std::optional< blender::StringRefNull > text)
void UI_popup_block_template_confirm_op(uiLayout *layout, wmOperatorType *ot, std::optional< blender::StringRef > confirm_text, std::optional< blender::StringRef > cancel_text, const int icon, bool cancel_default, PointerRNA *r_ptr)
void uiTemplateList(uiLayout *layout, const bContext *C, const char *listtype_name, const char *list_id, PointerRNA *dataptr, blender::StringRefNull propname, PointerRNA *active_dataptr, const char *active_propname, const char *item_dyntip_propname, int rows, int maxrows, int layout_type, int columns, enum uiTemplateListFlags flags)
void uiTemplateAction(uiLayout *layout, const bContext *C, ID *id, const char *newop, const char *unlinkop, std::optional< blender::StringRef > text)
void uiTemplateCacheFileTimeSettings(uiLayout *layout, PointerRNA *fileptr)
void uiTemplateSearch(uiLayout *layout, const bContext *C, PointerRNA *ptr, blender::StringRefNull propname, PointerRNA *searchptr, const char *searchpropname, const char *newop, const char *unlinkop, std::optional< blender::StringRef > text=std::nullopt)
@ UI_TEMPLATE_LIST_SORT_LOCK
@ UI_TEMPLATE_LIST_SORT_REVERSE
@ UI_TEMPLATE_LIST_FLAG_NONE
void uiTemplateCacheFile(uiLayout *layout, const bContext *C, PointerRNA *ptr, blender::StringRefNull propname)
int UI_icon_from_rnaptr(const bContext *C, PointerRNA *ptr, int rnaicon, bool big)
@ UI_ITEM_R_CHECKBOX_INVERT
NodeAssetMenuOperatorType
BMesh const char void * data
void MEM_freeN(void *vmemh)
void ui_template_node_operator_asset_menu_items(uiLayout &layout, const bContext &C, const StringRef catalog_path)
void ui_template_node_operator_asset_root_items(uiLayout &layout, const bContext &C)
void ui_template_modifier_asset_menu_items(uiLayout &layout, StringRef catalog_path, bool skip_essentials)
void ui_template_node_asset_menu_items(uiLayout &layout, const bContext &C, StringRef catalog_path, const NodeAssetMenuOperatorType operator_type)
void template_asset_shelf_popover(uiLayout &layout, const bContext &C, StringRefNull asset_shelf_id, StringRef name, int icon)
PropertyRNA * RNA_struct_type_find_property(StructRNA *srna, const char *identifier)
bool RNA_property_array_check(PropertyRNA *prop)
StructRNA * RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
int RNA_enum_from_identifier(const EnumPropertyItem *item, const char *identifier)
PropertyType RNA_property_type(PropertyRNA *prop)
const PointerRNA PointerRNA_NULL
const char * RNA_struct_identifier(const StructRNA *type)
void RNA_property_enum_items_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
const char * RNA_property_translation_context(const PropertyRNA *prop)
int RNA_struct_ui_icon(const StructRNA *type)
bool RNA_pointer_is_null(const PointerRNA *ptr)
PropertySubType RNA_property_subtype(PropertyRNA *prop)
void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
const char * RNA_struct_translation_context(const StructRNA *type)
static const EnumPropertyItem curve_type_items[]
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_float_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
std::optional< blender::StringRefNull > rna_translate_ui_text(const char *text, const char *text_ctxt, StructRNA *type, PropertyRNA *prop, bool translate)
const EnumPropertyItem rna_enum_region_type_items[]
const EnumPropertyItem rna_enum_space_type_items[]
const EnumPropertyItem rna_enum_uilist_layout_type_items[]
static void api_ui_item_common_text(FunctionRNA *func)
static void api_ui_item_common(FunctionRNA *func)
static void api_ui_item_rna_common(FunctionRNA *func)
static void api_ui_item_op(FunctionRNA *func)
static void api_ui_item_op_common(FunctionRNA *func)
static void api_ui_item_common_heading(FunctionRNA *func)
const EnumPropertyItem rna_enum_icon_items[]
void RNA_api_ui_layout(StructRNA *srna)
void api_ui_item_common_translation(FunctionRNA *func)
PointerRNA op_menu_enum(const bContext *C, wmOperatorType *ot, blender::StringRefNull propname, std::optional< blender::StringRefNull > name, int icon)
void prop_enum(PointerRNA *ptr, PropertyRNA *prop, int value, std::optional< blender::StringRefNull > name, int icon)
void decorator(PointerRNA *ptr, PropertyRNA *prop, int index)
PanelLayout panel(const bContext *C, blender::StringRef idname, bool default_closed)
void progress_indicator(const char *text, float factor, blender::ui::ButProgressType progress_type)
void props_enum(PointerRNA *ptr, blender::StringRefNull propname)
void popover(const bContext *C, PanelType *pt, std::optional< blender::StringRef > name_opt, int icon)
uiLayout & column_flow(int number, bool align)
blender::wm::OpCallContext operator_context() const
PanelLayout panel_prop(const bContext *C, PointerRNA *open_prop_owner, blender::StringRefNull open_prop_name)
void op_enum(blender::StringRefNull opname, blender::StringRefNull propname, IDProperty *properties, blender::wm::OpCallContext context, eUI_Item_Flag flag, const int active=-1)
void popover_group(bContext *C, int space_id, int region_id, const char *context, const char *category)
void label(blender::StringRef name, int icon)
float search_weight() const
uiLayout & column(bool align)
void search_weight_set(float weight)
void prop_search(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *searchptr, PropertyRNA *searchprop, PropertyRNA *item_searchpropname, std::optional< blender::StringRefNull > name, int icon, bool results_are_suggestions)
uiLayout & grid_flow(bool row_major, int columns_len, bool even_columns, bool even_rows, bool align)
void separator(float factor=1.0f, LayoutSeparatorType type=LayoutSeparatorType::Auto)
void context_ptr_set(blender::StringRef name, const PointerRNA *ptr)
uiLayout & row(bool align)
uiLayout & split(float percentage, bool align)
void prop_menu_enum(PointerRNA *ptr, PropertyRNA *prop, std::optional< blender::StringRefNull > name, int icon)
PointerRNA op_menu_hold(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag, const char *menu_id)
void prop_with_menu(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRefNull > name, int icon, const char *menu_type)
Panel * root_panel() const
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)
void prop_with_popover(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRefNull > name, int icon, const char *panel_type)
void menu(MenuType *mt, std::optional< blender::StringRef > name, int icon)
void menu_contents(blender::StringRef menuname)
void prop(PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, std::optional< blender::StringRef > name_opt, int icon, std::optional< blender::StringRef > placeholder=std::nullopt)
void prop_tabs_enum(bContext *C, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *ptr_highlight, PropertyRNA *prop_highlight, bool icon_only)
void context_string_set(blender::StringRef name, blender::StringRef value)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)