74 for (art = (
st) ?
st->regiontypes.first :
NULL; art; art = art->
next) {
102 func = &rna_Panel_poll_func;
109 visible = *(
bool *)
ret;
125 func = &rna_Panel_draw_func;
143 func = &rna_Panel_draw_header_func;
152 static void panel_draw_header_preset(
const bContext *
C,
Panel *panel)
154 extern FunctionRNA rna_Panel_draw_header_preset_func;
161 func = &rna_Panel_draw_header_preset_func;
177 panel_type_clear_recursive(child_panel,
type);
215 if (sl->spacetype == space_type) {
219 if (region->type == art) {
221 panel_type_clear_recursive(panel, pt);
240 const char *identifier,
249 int have_function[4];
250 size_t over_alloc = 0;
252 size_t description_size = 0;
255 dummypanel.
type = &dummypt;
256 _panel_descr[0] =
'\0';
264 if (validate(&dummyptr,
data, have_function) != 0) {
268 if (strlen(identifier) >=
sizeof(dummypt.idname)) {
271 "Registering panel class: '%s' is too long, maximum length is %d",
273 (
int)
sizeof(dummypt.idname));
278 if (dummypt.category[0] ==
'\0') {
282 printf(
"Registering panel class: '%s' misses category, please update the script\n",
288 if (dummypt.category[0] !=
'\0') {
292 "Registering panel class: '%s' has category '%s' ",
300 if (!(art = region_type_find(reports, dummypt.space_type, dummypt.region_type))) {
316 if (dummypt.parent_id[0] && (parent ==
NULL)) {
317 for (pt = pt_next; pt; pt = pt->
next) {
328 if (dummypt.parent_id[0] &&
STREQ(pt->
idname, dummypt.parent_id)) {
339 if (dummypt.parent_id[0] && !parent) {
342 "Registering panel class: parent '%s' for '%s' not found",
349 if (_panel_descr[0]) {
350 description_size = strlen(_panel_descr) + 1;
351 over_alloc += description_size;
354 memcpy(pt, &dummypt,
sizeof(dummypt));
356 if (_panel_descr[0]) {
357 char *buf = (
char *)(pt + 1);
358 memcpy(buf, _panel_descr, description_size);
373 pt->
poll = (have_function[0]) ? panel_poll :
NULL;
381 for (; pt_iter; pt_iter = pt_iter->
prev) {
397 for (; pt_child_iter; pt_child_iter = pt_child_iter->
prev) {
454 static void rna_UIList_list_id_get(
PointerRNA *
ptr,
char *value)
475 static void uilist_draw_item(
uiList *ui_list,
482 const char *active_propname,
493 func = &rna_UIList_draw_item_func;
519 func = &rna_UIList_draw_filter_func;
529 static void uilist_filter_items(
uiList *ui_list,
532 const char *propname)
542 int *filter_flags, *filter_neworder;
548 func = &rna_UIList_filter_items_func;
560 printf(
"%s: Error, py func returned %d items in %s, %d or none were expected.\n",
570 filter_flags = (
int *)ret1;
576 printf(
"%s: Error, py func returned %d items in %s, %d or none were expected.\n",
582 filter_neworder =
NULL;
586 filter_neworder = (
int *)ret2;
596 if (filter_neworder) {
600 int items_shown, shown_idx;
601 int t_idx, t_ni, prev_ni;
603 for (i = 0, shown_idx = 0; i <
len; i++) {
605 filter_neworder[shown_idx++] = filter_neworder[i];
613 for (shown_idx = 0, prev_ni = -1; shown_idx < items_shown; shown_idx++) {
614 for (i = 0, t_ni =
len, t_idx = -1; i < items_shown; i++) {
615 int ni = filter_neworder[i];
616 if (ni > prev_ni && ni < t_ni) {
630 for (i = 0; i <
len; i++) {
640 if (filter_neworder) {
670 const char *identifier,
678 int have_function[3];
679 size_t over_alloc = 0;
682 dummyuilist.
type = &dummyult;
686 if (validate(&dummyul_ptr,
data, have_function) != 0) {
690 if (strlen(identifier) >=
sizeof(dummyult.
idname)) {
693 "Registering uilist class: '%s' is too long, maximum length is %d",
695 (
int)
sizeof(dummyult.
idname));
713 memcpy(ult, &dummyult,
sizeof(dummyult));
721 ult->
draw_item = (have_function[0]) ? uilist_draw_item :
NULL;
751 func = &rna_Header_draw_func;
784 const char *identifier,
793 int have_function[1];
796 dummyheader.
type = &dummyht;
801 if (validate(&dummyhtr,
data, have_function) != 0) {
805 if (strlen(identifier) >=
sizeof(dummyht.
idname)) {
808 "Registering header class: '%s' is too long, maximum length is %d",
810 (
int)
sizeof(dummyht.
idname));
836 memcpy(ht, &dummyht,
sizeof(dummyht));
844 ht->
draw = (have_function[0]) ? header_draw :
NULL;
873 func = &rna_Menu_poll_func;
880 visible = *(
bool *)
ret;
896 func = &rna_Menu_draw_func;
925 const char *identifier,
933 int have_function[2];
934 size_t over_alloc = 0;
935 size_t description_size = 0;
939 dummymenu.
type = &dummymt;
940 _menu_descr[0] =
'\0';
948 if (validate(&dummymtr,
data, have_function) != 0) {
952 if (strlen(identifier) >=
sizeof(dummymt.
idname)) {
955 "Registering menu class: '%s' is too long, maximum length is %d",
957 (
int)
sizeof(dummymt.
idname));
974 if (_menu_descr[0]) {
975 description_size = strlen(_menu_descr) + 1;
976 over_alloc += description_size;
980 memcpy(mt, &dummymt,
sizeof(dummymt));
982 if (_menu_descr[0]) {
983 char *buf = (
char *)(mt + 1);
984 memcpy(buf, _menu_descr, description_size);
999 mt->
poll = (have_function[0]) ? menu_poll :
NULL;
1000 mt->
draw = (have_function[1]) ? menu_draw :
NULL;
1023 static void rna_Panel_bl_description_set(
PointerRNA *
ptr,
const char *value)
1026 char *
str = (
char *)
data->type->description;
1031 BLI_assert_msg(0,
"setting the bl_description on a non-builtin panel");
1035 static void rna_Menu_bl_description_set(
PointerRNA *
ptr,
const char *value)
1038 char *
str = (
char *)
data->type->description;
1043 BLI_assert_msg(0,
"setting the bl_description on a non-builtin menu");
1054 static void rna_UILayout_active_set(
PointerRNA *
ptr,
bool value)
1059 static bool rna_UILayout_active_default_get(
PointerRNA *
ptr)
1064 static void rna_UILayout_active_default_set(
PointerRNA *
ptr,
bool value)
1074 static void rna_UILayout_activate_init_set(
PointerRNA *
ptr,
bool value)
1084 static void rna_UILayout_alert_set(
PointerRNA *
ptr,
bool value)
1089 static void rna_UILayout_op_context_set(
PointerRNA *
ptr,
int value)
1104 static void rna_UILayout_enabled_set(
PointerRNA *
ptr,
bool value)
1115 static void rna_UILayout_red_alert_set(
PointerRNA *
ptr,
bool value)
1125 static void rna_UILayout_keep_aspect_set(
PointerRNA *
ptr,
int value)
1136 static void rna_UILayout_alignment_set(
PointerRNA *
ptr,
int value)
1151 static void rna_UILayout_scale_x_set(
PointerRNA *
ptr,
float value)
1161 static void rna_UILayout_scale_y_set(
PointerRNA *
ptr,
float value)
1171 static void rna_UILayout_units_x_set(
PointerRNA *
ptr,
float value)
1181 static void rna_UILayout_units_y_set(
PointerRNA *
ptr,
float value)
1191 static void rna_UILayout_emboss_set(
PointerRNA *
ptr,
int value)
1196 static bool rna_UILayout_property_split_get(
PointerRNA *
ptr)
1201 static void rna_UILayout_property_split_set(
PointerRNA *
ptr,
bool value)
1206 static bool rna_UILayout_property_decorate_get(
PointerRNA *
ptr)
1211 static void rna_UILayout_property_decorate_set(
PointerRNA *
ptr,
bool value)
1238 {
UI_EMBOSS,
"NORMAL", 0,
"Regular",
"Draw standard button emboss style"},
1240 {
UI_EMBOSS_PULLDOWN,
"PULLDOWN_MENU", 0,
"Pulldown Menu",
"Draw pulldown menu style"},
1241 {
UI_EMBOSS_RADIAL,
"RADIAL_MENU", 0,
"Radial Menu",
"Draw radial menu style"},
1246 "Draw with no emboss unless the button has a coloring status like an animation state"},
1261 prop,
"rna_UILayout_active_default_get",
"rna_UILayout_active_default_set");
1265 "When true, an operator button defined after this will be activated when pressing return"
1266 "(use with popup dialogs)");
1270 prop,
"rna_UILayout_activate_init_get",
"rna_UILayout_activate_init_set");
1274 "When true, buttons defined in popups will be activated on first display "
1275 "(use so you can type into a field without having to click on it first)");
1280 prop,
"rna_UILayout_op_context_get",
"rna_UILayout_op_context_set",
NULL);
1292 prop,
"rna_UILayout_alignment_get",
"rna_UILayout_alignment_set",
NULL);
1302 prop,
"rna_UILayout_keep_aspect_get",
"rna_UILayout_keep_aspect_set");
1308 prop,
"Scale X",
"Scale factor along the X for items in this (sub)layout");
1313 prop,
"Scale Y",
"Scale factor along the Y for items in this (sub)layout");
1318 prop,
"Units X",
"Fixed size along the X for items in this (sub)layout");
1323 prop,
"Units Y",
"Fixed size along the Y for items in this (sub)layout");
1332 prop,
"rna_UILayout_property_split_get",
"rna_UILayout_property_split_set");
1336 prop,
"rna_UILayout_property_decorate_get",
"rna_UILayout_property_decorate_set");
1351 "Defines if the panel has to be open or collapsed at the time of its creation"},
1356 "If set to False, the panel shows a header, which contains a clickable "
1357 "arrow to collapse the panel and the label (see bl_label)"},
1362 "Multiple panels with this type can be used as part of a list depending on data external "
1363 "to the UI. Used to create panels for the modifiers and other stacks"},
1365 "HEADER_LAYOUT_EXPAND",
1367 "Expand Header Layout",
1368 "Allow buttons in the header to stretch and shrink to fill the entire layout width"},
1383 func,
"If this method returns a non-null output, then the panel can be drawn");
1420 prop,
"rna_Panel_custom_data_get",
NULL,
"rna_Panel_custom_data_typef",
NULL);
1430 "If this is set, the panel gets a custom ID, otherwise it takes the "
1431 "name of the class used to define the panel. For example, if the "
1432 "class name is \"OBJECT_PT_hello\", and bl_idname is not set by the "
1433 "script, then bl_idname = \"OBJECT_PT_hello\"");
1440 "The panel label, shows up in the panel header at the right of the "
1441 "triangle used to collapse the panel");
1449 "Specific translation context, only define when the label needs to be "
1450 "disambiguated from others using the exact same label");
1467 prop,
"",
"The category (tab) in which the panel will be displayed, when applicable");
1485 prop,
"Region Type",
"The region where the panel is going to be used in");
1493 "The context in which the panel belongs to. (TODO: explain the "
1494 "possible combinations bl_context/bl_region_type/bl_space_type)");
1506 prop,
"Parent ID Name",
"If this is set, the panel becomes a sub-panel");
1519 "Panels with lower numbers are default ordered before panels with higher numbers");
1554 "If this is set, the uilist gets a custom ID, otherwise it takes the "
1555 "name of the class used to define the uilist (for example, if the "
1556 "class name is \"OBJECT_UL_vgroups\", and bl_idname is not set by the "
1557 "script, then bl_idname = \"OBJECT_UL_vgroups\")");
1567 "Identifier of the list, if any was passed to the \"list_id\" "
1568 "parameter of \"template_list()\"");
1583 prop,
"Filter by Name",
"Only show items matching this name (use '*' as wildcard)");
1607 prop,
"Lock Order",
"Lock the order of shown items (user cannot change it)");
1613 "Draw an item in the list (NOTE: when you define your own draw_item "
1614 "function, you may want to check given 'item' is of the right type...)");
1618 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Layout to draw the item");
1621 func,
"data",
"AnyType",
"",
"Data from which to take Collection property");
1623 parm =
RNA_def_pointer(func,
"item",
"AnyType",
"",
"Item of the collection property");
1626 func,
"icon", 0, 0, INT_MAX,
"",
"Icon of the item in the collection", 0, INT_MAX);
1632 "Data from which to take property for the active element");
1639 "Identifier of property in active_data, for the active element");
1641 RNA_def_int(func,
"index", 0, 0, INT_MAX,
"",
"Index of the item in the collection", 0, INT_MAX);
1653 parm =
RNA_def_pointer(func,
"layout",
"UILayout",
"",
"Layout to draw the item");
1660 "Filter and/or re-order items of the collection (output filter results in "
1661 "filter_flags, and reorder results in filter_neworder arrays)");
1666 func,
"data",
"AnyType",
"",
"Data from which to take Collection property");
1669 func,
"property",
NULL, 0,
"",
"Identifier of property in data, for the collection");
1677 "An array of filter flags, one for each item in the collection (NOTE: "
1678 "FILTER_ITEM bit is reserved, it defines whether the item is shown or not)");
1686 "An array of indices, one for each item in the collection, mapping the org "
1687 "index to the new one");
1697 "The value of the reserved bitflag 'FILTER_ITEM' (in filter_flags values)");
1736 "If this is set, the header gets a custom ID, otherwise it takes the "
1737 "name of the class used to define the panel; for example, if the "
1738 "class name is \"OBJECT_HT_hello\", and bl_idname is not set by the "
1739 "script, then bl_idname = \"OBJECT_HT_hello\"");
1746 prop,
"Space Type",
"The space where the header is going to be used in");
1755 "The region where the header is going to be used in "
1756 "(defaults to header region)");
1779 func,
"If this method returns a non-null output, then the menu can be drawn");
1805 "If this is set, the menu gets a custom ID, otherwise it takes the "
1806 "name of the class used to define the menu (for example, if the "
1807 "class name is \"OBJECT_MT_hello\", and bl_idname is not set by the "
1808 "script, then bl_idname = \"OBJECT_MT_hello\")");
struct bScreen * CTX_wm_screen(const bContext *C)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
@ PANEL_TYPE_DEFAULT_CLOSED
@ PANEL_TYPE_HEADER_EXPAND
struct SpaceType * BKE_spacetype_from_id(int spaceid)
#define BLI_assert_msg(a, msg)
A dynamically sized string ADT.
void BLI_kdtree_nd_() free(KDTree *tree)
#define LISTBASE_FOREACH(type, var, list)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
struct LinkData * BLI_genericNodeN(void *data)
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findptr(const struct ListBase *listbase, const void *ptr, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
#define BLT_I18NCONTEXT_DEFAULT_BPYRNA
#define RGN_TYPE_HAS_CATEGORY_MASK
#define PNL_CATEGORY_FALLBACK
_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
Read Guarded memory(de)allocation.
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
#define RNA_DYN_DESCR_MAX
void(* StructFreeFunc)(void *data)
int(* StructValidateFunc)(struct PointerRNA *ptr, void *data, int *have_function)
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
@ STRUCT_PUBLIC_NAMESPACE_INHERIT
int(* StructCallbackFunc)(struct bContext *C, struct PointerRNA *ptr, struct FunctionRNA *func, ParameterList *list)
bool uiLayoutGetActivateInit(uiLayout *layout)
void uiLayoutSetActive(uiLayout *layout, bool active)
bool uiLayoutGetPropDecorate(uiLayout *layout)
int uiLayoutGetAlignment(uiLayout *layout)
void uiLayoutSetUnitsY(uiLayout *layout, float unit)
@ UI_EMBOSS_NONE_OR_STATUS
void uiLayoutSetEnabled(uiLayout *layout, bool enabled)
float uiLayoutGetUnitsY(uiLayout *layout)
void uiLayoutSetScaleY(uiLayout *layout, float scale)
void uiLayoutSetActiveDefault(uiLayout *layout, bool active_default)
void uiLayoutSetRedAlert(uiLayout *layout, bool redalert)
struct PointerRNA * UI_panel_custom_data_get(const struct Panel *panel)
void uiLayoutSetScaleX(uiLayout *layout, float scale)
float uiLayoutGetUnitsX(uiLayout *layout)
void uiLayoutSetAlignment(uiLayout *layout, char alignment)
bool uiLayoutGetEnabled(uiLayout *layout)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
float uiLayoutGetScaleY(uiLayout *layout)
bool uiLayoutGetActive(uiLayout *layout)
void UI_panels_free_instanced(const struct bContext *C, struct ARegion *region)
bool uiLayoutGetKeepAspect(uiLayout *layout)
bool uiLayoutGetPropSep(uiLayout *layout)
void uiLayoutSetUnitsX(uiLayout *layout, float unit)
eUIEmbossType uiLayoutGetEmboss(uiLayout *layout)
int uiLayoutGetLocalDir(const uiLayout *layout)
void uiLayoutSetKeepAspect(uiLayout *layout, bool keepaspect)
bool uiLayoutGetActiveDefault(uiLayout *layout)
int uiLayoutGetOperatorContext(uiLayout *layout)
void uiLayoutSetEmboss(uiLayout *layout, eUIEmbossType emboss)
float uiLayoutGetScaleX(uiLayout *layout)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
void uiLayoutSetActivateInit(uiLayout *layout, bool activate_init)
void uiLayoutSetOperatorContext(uiLayout *layout, wmOperatorCallContext opcontext)
bool uiLayoutGetRedAlert(uiLayout *layout)
@ WM_OP_INVOKE_REGION_WIN
@ WM_OP_EXEC_REGION_PREVIEW
@ WM_OP_INVOKE_REGION_PREVIEW
@ WM_OP_EXEC_REGION_CHANNELS
@ WM_OP_INVOKE_REGION_CHANNELS
return(oflags[bm->toolflag_index].f &oflag) !=0
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
int RNA_collection_length(PointerRNA *ptr, const char *name)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value)
bool RNA_struct_available_or_report(ReportList *reports, const char *identifier)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSED(ptr), FunctionRNA *func)
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
int RNA_parameter_dynamic_length_get(ParameterList *parms, PropertyRNA *parm)
PropertyRNA * RNA_function_find_parameter(PointerRNA *UNUSED(ptr), FunctionRNA *func, const char *identifier)
bool RNA_struct_bl_idname_ok_or_report(ReportList *reports, const char *identifier, const char *sep)
const char * RNA_struct_state_owner_get(void)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_flag(StructRNA *srna, int flag)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_enum_default(PropertyRNA *prop, int value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_define_verify_sdna(bool verify)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_function_output(FunctionRNA *UNUSED(func), PropertyRNA *ret)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
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)
void RNA_struct_free_extension(StructRNA *srna, ExtensionRNA *rna_ext)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_string_default(PropertyRNA *prop, const char *value)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_api_ui_layout(struct StructRNA *srna)
const EnumPropertyItem rna_enum_region_type_items[]
const EnumPropertyItem rna_enum_space_type_items[]
const EnumPropertyItem rna_enum_operator_context_items[]
static void rna_def_header(BlenderRNA *brna)
const EnumPropertyItem rna_enum_uilist_layout_type_items[]
static void rna_def_uilist(BlenderRNA *brna)
static void rna_def_ui_layout(BlenderRNA *brna)
static void rna_def_menu(BlenderRNA *brna)
static void rna_def_panel(BlenderRNA *brna)
void RNA_def_ui(BlenderRNA *brna)
struct ARegionType * next
char owner_id[BKE_ST_MAXNAME]
void(* draw)(const struct bContext *C, struct Panel *panel)
void(* draw_header_preset)(const struct bContext *C, struct Panel *panel)
bool(* poll)(const struct bContext *C, struct PanelType *pt)
void(* draw_header)(const struct bContext *C, struct Panel *panel)
char idname[BKE_ST_MAXNAME]
char translation_context[BKE_ST_MAXNAME]
struct PanelType * parent
int * items_filter_neworder
char idname[BKE_ST_MAXNAME]
uiListFilterItemsFunc filter_items
uiListDrawFilterFunc draw_filter
uiListDrawItemFunc draw_item
void WM_main_add_notifier(unsigned int type, void *reference)
bool WM_paneltype_add(PanelType *pt)
void WM_paneltype_remove(PanelType *pt)
bool WM_uilisttype_add(uiListType *ult)
uiListType * WM_uilisttype_find(const char *idname, bool quiet)
const char * WM_uilisttype_list_id_get(const uiListType *ult, uiList *list)
void WM_uilisttype_remove_ptr(Main *bmain, uiListType *ult)