46 #include "RNA_prototypes.h"
165 ot->
name =
"Copy Data Path";
166 ot->
idname =
"UI_OT_copy_data_path_button";
167 ot->
description =
"Copy the RNA data path for this property to the clipboard";
241 ot->
name =
"Copy as New Driver";
242 ot->
idname =
"UI_OT_copy_as_driver_button";
244 "Create a new driver with this property as input, and copy it to the "
245 "clipboard. Use Paste Driver to add it to the target property, or Paste "
246 "Driver Variables to extend an existing driver";
297 ot->
name =
"Copy Python Command";
298 ot->
idname =
"UI_OT_copy_python_command_button";
299 ot->
description =
"Copy the Python command matching this button";
382 ot->
name =
"Reset to Default Value";
383 ot->
idname =
"UI_OT_reset_default_button";
384 ot->
description =
"Reset this property's value to its default value";
445 ot->
name =
"Assign Value as Default";
446 ot->
idname =
"UI_OT_assign_default_button";
447 ot->
description =
"Set this property's current value as the new default";
486 ot->
name =
"Unset Property";
487 ot->
idname =
"UI_OT_unset_property_button";
488 ot->
description =
"Clear the property and use default or generated value in operators";
519 "'No-Operation', place holder preventing automatic override to ever affect the property"},
524 "Completely replace value from linked data by local one"},
529 "Store difference to linked data value"},
534 "Store factor to linked data value (useful e.g. for scale)"},
626 ot->
name =
"Define Override Type";
627 ot->
idname =
"UI_OT_override_type_set_button";
628 ot->
description =
"Create an override operation, or set the type of an existing one";
645 "Type of override operation");
687 BLI_assert_msg(0,
"Failed to create matching source (linked data) RNA pointer");
691 if (!
all && index != -1) {
696 oprop,
NULL,
NULL, index, index,
false, &is_strict_find);
698 if (!is_strict_find) {
734 ot->
name =
"Remove Override";
735 ot->
idname =
"UI_OT_override_remove_button";
757 *r_owner_id = *r_id =
NULL;
758 if (r_owner_ptr !=
NULL) {
761 if (r_prop !=
NULL) {
770 if (r_owner_ptr !=
NULL) {
771 *r_owner_ptr = owner_ptr;
773 if (r_prop !=
NULL) {
783 if (owner_id ==
NULL ||
id ==
NULL) {
819 if (id_override ==
NULL) {
850 ot->
name =
"Make Library Override";
851 ot->
idname =
"UI_OT_override_idtemplate_make";
853 "Create a local override of the selected linked data-block, and its hierarchy of "
900 ot->
name =
"Reset Library Override";
901 ot->
idname =
"UI_OT_override_idtemplate_reset";
902 ot->
description =
"Reset the selected local override to its linked reference values";
938 bool do_remap_active =
false;
942 do_remap_active =
true;
945 if (do_remap_active) {
948 if (basact !=
NULL) {
949 view_layer->
basact = basact;
977 ot->
name =
"Clear Library Override";
978 ot->
idname =
"UI_OT_override_idtemplate_clear";
980 "Delete the selected local override and relink its usages to the linked data-block if "
981 "possible, else reset it and mark it as non editable";
997 if (owner_id ==
NULL ||
id ==
NULL) {
1010 uiItemO(layout,
IFACE_(
"Make"), ICON_NONE,
"UI_OT_override_idtemplate_make");
1011 uiItemO(layout,
IFACE_(
"Reset"), ICON_NONE,
"UI_OT_override_idtemplate_reset");
1012 uiItemO(layout,
IFACE_(
"Clear"), ICON_NONE,
"UI_OT_override_idtemplate_clear");
1020 strcpy(mt->
idname,
"UI_MT_idtemplate_liboverride");
1021 strcpy(mt->
label,
N_(
"Library Override"));
1033 #define NOT_NULL(assignment) ((assignment) != NULL)
1034 #define NOT_RNA_NULL(assignment) ((assignment).data != NULL)
1055 bool *r_use_path_from_id,
1058 *r_use_path_from_id =
false;
1061 char *path_from_bone =
NULL;
1063 bool ensure_list_items_contain_prop =
false;
1075 char *idpath =
NULL;
1093 if (idpath ==
NULL) {
1124 if (
STREQ(prop_id,
"lock")) {
1131 ensure_list_items_contain_prop =
true;
1152 *r_path = path_from_bone;
1181 bNode *node_data = link->ptr.data;
1183 if (node_data->
type !=
node->type) {
1198 *r_use_path_from_id =
true;
1203 const short id_code =
GS(
id->
name);
1222 (
GS(id_data->name) != id_code)) {
1248 if (
STREQ(prop_id,
"lock")) {
1255 ensure_list_items_contain_prop =
true;
1258 return (*r_path !=
NULL);
1264 if (ensure_list_items_contain_prop) {
1267 if ((
ptr->
type != link->ptr.type) &&
1282 bool use_path_from_id,
1294 if (use_path_from_id) {
1317 if (lprop ==
NULL) {
1342 ignore_prop_eq =
false;
1346 if (nmd_link->
node_group == nmd_src->node_group) {
1347 ignore_prop_eq =
true;
1351 if ((lprop != prop) && !ignore_prop_eq) {
1381 bool success =
false;
1393 bool use_path_from_id;
1405 if (link->ptr.data ==
ptr.
data) {
1410 &
ptr, &link->ptr, prop, path, use_path_from_id, &lptr, &lprop)) {
1449 ot->
name =
"Copy to Selected";
1450 ot->
idname =
"UI_OT_copy_to_selected_button";
1452 "Copy the property's value from the active item to the same property of all selected items "
1453 "if the same property exists";
1483 if (
ELEM(
ptr.
type, &RNA_EditBone, &RNA_PoseBone, &RNA_Bone)) {
1485 if (bone_name[0] !=
'\0') {
1486 target_type = &RNA_Bone;
1490 target_type = &RNA_Object;
1493 if (target_type ==
NULL) {
1501 if (id_type ==
ID_OB) {
1517 const bool reveal_hidden =
true;
1519 if (target_type == &RNA_Bone) {
1522 else if (target_type == &RNA_Object) {
1577 if (str_ptr != str_buf) {
1606 ot->
name =
"Jump to Target";
1607 ot->
idname =
"UI_OT_jump_to_target_button";
1630 typedef struct uiEditSourceStore {
1633 } uiEditSourceStore;
1635 typedef struct uiEditSourceButStore {
1637 int py_dbg_line_number;
1638 } uiEditSourceButStore;
1641 static struct uiEditSourceStore *ui_editsource_info =
NULL;
1645 return (ui_editsource_info !=
NULL);
1648 static void ui_editsource_active_but_set(
uiBut *but)
1652 ui_editsource_info =
MEM_callocN(
sizeof(uiEditSourceStore), __func__);
1653 memcpy(&ui_editsource_info->but_orig, but,
sizeof(
uiBut));
1658 static void ui_editsource_active_but_clear(
void)
1662 ui_editsource_info =
NULL;
1665 static bool ui_editsource_uibut_match(
uiBut *but_a,
uiBut *but_b)
1668 printf(
"matching buttons: '%s' == '%s'\n", but_a->
drawstr, but_b->
drawstr);
1687 struct uiEditSourceButStore *but_store =
MEM_callocN(
sizeof(uiEditSourceButStore), __func__);
1690 int line_number = -1;
1693 printf(
"comparing buttons: '%s' == '%s'\n", but->
drawstr, ui_editsource_info->but_orig.drawstr);
1698 if (line_number != -1) {
1699 BLI_strncpy(but_store->py_dbg_fn, fn,
sizeof(but_store->py_dbg_fn));
1700 but_store->py_dbg_line_number = line_number;
1703 but_store->py_dbg_fn[0] =
'\0';
1704 but_store->py_dbg_line_number = -1;
1712 uiEditSourceButStore *but_store =
BLI_ghash_lookup(ui_editsource_info->hash, old_but);
1719 static int editsource_text_edit(
bContext *
C,
1765 struct uiEditSourceButStore *but_store =
NULL;
1776 ui_editsource_active_but_set(but);
1785 if (but_key && ui_editsource_uibut_match(&ui_editsource_info->but_orig, but_key)) {
1792 if (but_store->py_dbg_line_number != -1) {
1793 ret = editsource_text_edit(
C, op, but_store->py_dbg_fn, but_store->py_dbg_line_number);
1797 op->
reports,
RPT_ERROR,
"Active button is not from a script, cannot edit source");
1806 ui_editsource_active_but_clear();
1820 ot->
name =
"Edit Source";
1822 ot->
description =
"Edit UI source code of the active button";
1825 ot->
exec = editsource_exec;
1840 static void edittranslation_find_po_file(
const char *root,
1843 const size_t maxlen)
1857 const char *tc =
NULL;
1861 tc = strchr(uilng,
'_');
1864 if (szt <
sizeof(tstr)) {
1870 tc = strchr(uilng,
'@');
1876 strcat(tstr,
".po");
1899 const char *root =
U.i18ndir;
1916 "Please set your Preferences' 'Translation Branches "
1917 "Directory' path to a valid directory");
1924 "Could not find operator '%s'! Please enable ui_translate add-on "
1925 "in the User Preferences",
1930 edittranslation_find_po_file(root, uilng, popath,
FILE_MAX);
1932 if (popath[0] ==
'\0') {
1934 op->
reports,
RPT_ERROR,
"No valid po found for language '%s' under %s", uilng, root);
2005 ot->
name =
"Edit Translation";
2006 ot->
idname =
"UI_OT_edittranslation_init";
2007 ot->
description =
"Edit i18n in current language for the active button";
2010 ot->
exec = edittranslation_exec;
2033 ot->
name =
"Reload Translation";
2034 ot->
idname =
"UI_OT_reloadtranslation";
2054 if (region ==
NULL) {
2055 region = region_prev;
2058 if (region ==
NULL) {
2075 void *but_optype = but->
optype;
2079 but->
optype = but_optype;
2088 ot->
name =
"Press Button";
2089 ot->
idname =
"UI_OT_button_execute";
2117 ot->
name =
"Clear Button String";
2118 ot->
idname =
"UI_OT_button_string_clear";
2180 if (color_len == 4) {
2273 ot->
srna,
"string",
NULL, 0,
"String",
"The string value to drop into the button");
2291 return list !=
NULL;
2329 ot->
name =
"List Filter";
2330 ot->
idname =
"UI_OT_list_start_filter";
2331 ot->
description =
"Start entering filter text for the list in focus";
2347 if (region ==
NULL) {
2352 return hovered_item !=
NULL;
2375 ot->
description =
"Drag and drop items onto a data-set item";
2397 if (region ==
NULL) {
2417 ot->
name =
"Rename View Item";
2418 ot->
idname =
"UI_OT_view_item_rename";
2419 ot->
description =
"Rename the active item in the data-set view";
2467 const int target_slot =
RNA_int_get(&mat_slot,
"slot_index") + 1;
2486 ot->
name =
"Drop Material in Material slots";
2487 ot->
description =
"Drag material to Material slots in Properties";
2488 ot->
idname =
"UI_OT_drop_material";
struct Scene * CTX_data_scene(const bContext *C)
void CTX_wm_region_set(bContext *C, struct ARegion *region)
PointerRNA CTX_data_pointer_get_type_silent(const bContext *C, const char *member, StructRNA *type)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct SpaceImage * CTX_wm_space_image(const bContext *C)
ListBase CTX_data_collection_get(const bContext *C, const char *member)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
void BKE_id_delete(struct Main *bmain, void *idv) ATTR_NONNULL()
struct IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_find(struct IDOverrideLibraryProperty *override_property, const char *subitem_refname, const char *subitem_locname, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict)
struct IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_get(struct IDOverrideLibraryProperty *override_property, short operation, const char *subitem_refname, const char *subitem_locname, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict, bool *r_created)
bool BKE_lib_override_library_is_hierarchy_leaf(struct Main *bmain, struct ID *id)
void BKE_lib_override_library_property_operation_delete(struct IDOverrideLibraryProperty *override_property, struct IDOverrideLibraryPropertyOperation *override_property_operation)
void BKE_lib_override_library_id_reset(struct Main *bmain, struct ID *id_root, bool do_reset_system_override)
void BKE_lib_override_library_property_delete(struct IDOverrideLibrary *override, struct IDOverrideLibraryProperty *override_property)
@ ID_REMAP_SKIP_INDIRECT_USAGE
void void BKE_libblock_remap(struct Main *bmain, void *old_idv, void *new_idv, short remap_flags) ATTR_NONNULL(1
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
General operations, lookup, etc. for materials.
void BKE_object_material_assign(struct Main *bmain, struct Object *ob, struct Material *ma, short act, int assign_type)
@ BKE_MAT_ASSIGN_USERPREF
bool nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **r_node, int *r_sockindex)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
struct ARegion * BKE_screen_find_region_xy(struct bScreen *screen, int regiontype, const int xy[2]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
struct Text struct Text * BKE_text_load(struct Main *bmain, const char *filepath, const char *relbase) ATTR_NONNULL(1
void txt_move_toline(struct Text *text, unsigned int line, bool sel)
void BLF_cache_clear(void)
#define BLI_assert_msg(a, msg)
bool BLI_is_file(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool BLI_is_dir(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BLI_INLINE void * BLI_ghashIterator_getKey(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_step(GHashIterator *ghi)
BLI_INLINE void * BLI_ghashIterator_getValue(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
GHash * BLI_ghash_ptr_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh)
BLI_INLINE bool BLI_ghashIterator_done(const GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3])
void BLI_path_append(char *__restrict dst, size_t maxlen, const char *__restrict file) ATTR_NONNULL()
void BLI_join_dirfile(char *__restrict dst, size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
bool BLI_rctf_compare(const struct rctf *rect_a, const struct rctf *rect_b, float limit)
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
#define STREQLEN(a, b, n)
const char * BLT_lang_get(void)
void BLT_lang_set(const char *)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
#define ID_CHECK_UNDO(id)
#define ID_IS_LINKED(_id)
@ IDOVERRIDE_LIBRARY_OP_MULTIPLY
@ IDOVERRIDE_LIBRARY_OP_NOOP
@ IDOVERRIDE_LIBRARY_OP_ADD
@ IDOVERRIDE_LIBRARY_OP_REPLACE
#define ID_IS_OVERRIDE_LIBRARY_TEMPLATE(_id)
Object is a sort of wrapper for general info.
#define OB_DATA_SUPPORT_ID(_id_type)
#define OBACT(_view_layer)
bool ED_object_jump_to_object(struct bContext *C, struct Object *ob, bool reveal_hidden)
struct Base * ED_object_find_first_by_data_id(struct ViewLayer *view_layer, struct ID *id)
bool ED_object_jump_to_bone(struct bContext *C, struct Object *ob, const char *bone_name, bool reveal_hidden)
void ED_imapaint_bucket_fill(struct bContext *C, float color[3], struct wmOperator *op, const int mouse[2])
void ED_region_do_layout(struct bContext *C, struct ARegion *region)
bool ED_operator_regionactive(struct bContext *C)
void ED_region_do_draw(struct bContext *C, struct ARegion *region)
void ED_region_tag_redraw(struct ARegion *region)
bool ED_text_activate_in_screen(struct bContext *C, struct Text *text)
_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
BLI_INLINE void IMB_colormanagement_srgb_to_scene_linear_v3(float scene_linear[3], const float srgb[3])
BLI_INLINE void IMB_colormanagement_scene_linear_to_srgb_v3(float srgb[3], const float scene_linear[3])
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
@ RNA_OVERRIDE_STATUS_OVERRIDABLE
@ RNA_OVERRIDE_STATUS_OVERRIDDEN
bool UI_view_item_drop_handle(struct bContext *C, const uiViewItemHandle *item_, const struct ListBase *drags)
struct PointerRNA * UI_but_operator_ptr_get(uiBut *but)
uiBut * UI_context_active_but_get(const struct bContext *C)
uiViewItemHandle * UI_region_views_find_active_item(const struct ARegion *region)
uiViewItemHandle * UI_region_views_find_item_at(const struct ARegion *region, const int xy[2]) ATTR_NONNULL()
bool UI_but_active_drop_color(struct bContext *C)
void UI_context_active_but_prop_get_templateID(struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop)
void UI_editsource_but_replace(const uiBut *old_but, uiBut *new_but)
#define EDTSRC_I18N_OP_NAME
void UI_editsource_active_but_test(uiBut *but)
void UI_context_active_but_prop_handle(struct bContext *C, bool handle_undo)
bool UI_editsource_enable_check(void)
@ BUT_GET_RNASTRUCT_IDENTIFIER
@ BUT_GET_RNAPROP_IDENTIFIER
@ BUT_GET_RNA_LABEL_CONTEXT
@ BUT_GET_RNAENUM_IDENTIFIER
void UI_but_execute(const struct bContext *C, struct ARegion *region, uiBut *but)
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
bool UI_view_item_can_rename(const uiViewItemHandle *item_handle)
uiBut * UI_context_active_but_prop_get(const struct bContext *C, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop, int *r_index)
bool UI_textbutton_activate_rna(const struct bContext *C, struct ARegion *region, const void *rna_poin_data, const char *rna_prop_id)
struct uiList * UI_list_find_mouse_over(const struct ARegion *region, const struct wmEvent *event)
void UI_view_item_begin_rename(uiViewItemHandle *item_handle)
void UI_reinit_font(void)
struct uiViewItemHandle uiViewItemHandle
uiBut * UI_context_active_but_get_respect_menu(const struct bContext *C)
uiBut * UI_but_active_drop_name_button(const struct bContext *C)
void UI_screen_free_active_but_highlight(const struct bContext *C, struct bScreen *screen)
void UI_but_string_info_get(struct bContext *C, uiBut *but,...) ATTR_SENTINEL(0)
#define ND_LIB_OVERRIDE_CHANGED
__forceinline bool all(const avxb &b)
SyclQueue void void * src
void ANIM_copy_as_driver(struct ID *target_id, const char *target_path, const char *var_name)
void UI_OT_eyedropper_color(wmOperatorType *ot)
void UI_OT_eyedropper_colorramp_point(wmOperatorType *ot)
void UI_OT_eyedropper_colorramp(wmOperatorType *ot)
void UI_OT_eyedropper_id(wmOperatorType *ot)
void UI_OT_eyedropper_depth(wmOperatorType *ot)
void UI_OT_eyedropper_driver(wmOperatorType *ot)
void UI_OT_eyedropper_gpencil_color(wmOperatorType *ot)
wmKeyMap * eyedropper_modal_keymap(wmKeyConfig *keyconf)
wmKeyMap * eyedropper_colorband_modal_keymap(wmKeyConfig *keyconf)
void ui_but_active_string_clear_and_exit(bContext *C, uiBut *but)
void ui_but_set_string_interactive(bContext *C, uiBut *but, const char *value)
void ui_rna_collection_search_update_fn(const struct bContext *C, void *arg, const char *str, uiSearchItems *items, bool is_first)
uiBut * ui_region_find_active_but(struct ARegion *region) ATTR_WARN_UNUSED_RESULT
struct ID * ui_template_id_liboverride_hierarchy_make(struct bContext *C, struct Main *bmain, struct ID *owner_id, struct ID *id, const char **r_undo_push_label)
static bool ui_list_unhide_filter_options(uiList *list)
static int drop_name_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int unset_property_button_exec(bContext *C, wmOperator *UNUSED(op))
static void UI_OT_override_type_set_button(wmOperatorType *ot)
static int copy_to_selected_button_exec(bContext *C, wmOperator *op)
static bool override_type_set_button_poll(bContext *C)
static void UI_OT_override_idtemplate_reset(wmOperatorType *ot)
static void override_idtemplate_ids_get(bContext *C, ID **r_owner_id, ID **r_id, PointerRNA *r_owner_ptr, PropertyRNA **r_prop)
static void UI_OT_unset_property_button(wmOperatorType *ot)
static void override_idtemplate_menu(void)
static int ui_list_start_filter_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
static bool ui_list_focused_poll(bContext *C)
static void UI_OT_button_execute(wmOperatorType *ot)
static bool override_remove_button_poll(bContext *C)
static bool ui_view_drop_poll(bContext *C)
static void ui_region_redraw_immediately(bContext *C, ARegion *region)
static int override_type_set_button_exec(bContext *C, wmOperator *op)
static bool reset_default_button_poll(bContext *C)
static int operator_button_property_finish(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
static int ui_button_press_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void UI_OT_copy_data_path_button(wmOperatorType *ot)
static int override_idtemplate_clear_exec(bContext *C, wmOperator *UNUSED(op))
static void UI_OT_reloadtranslation(wmOperatorType *ot)
static int reset_default_button_exec(bContext *C, wmOperator *op)
bool ui_jump_to_target_button_poll(bContext *C)
static bool copy_data_path_button_poll(bContext *C)
static void UI_OT_copy_python_command_button(wmOperatorType *ot)
static void UI_OT_assign_default_button(wmOperatorType *ot)
static void UI_OT_override_idtemplate_clear(wmOperatorType *ot)
static int copy_python_command_button_exec(bContext *C, wmOperator *UNUSED(op))
void ED_operatortypes_ui(void)
#define NOT_NULL(assignment)
static int override_type_set_button_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int reloadtranslation_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
static void UI_OT_list_start_filter(wmOperatorType *ot)
static int ui_view_drop_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
static bool copy_to_selected_button_poll(bContext *C)
static bool copy_to_selected_button(bContext *C, bool all, bool poll)
static void UI_OT_jump_to_target_button(wmOperatorType *ot)
static void UI_OT_drop_name(wmOperatorType *ot)
static void UI_OT_copy_to_selected_button(wmOperatorType *ot)
static int override_idtemplate_make_exec(bContext *C, wmOperator *UNUSED(op))
void UI_drop_color_copy(bContext *UNUSED(C), wmDrag *drag, wmDropBox *drop)
static int override_remove_button_exec(bContext *C, wmOperator *op)
static void UI_OT_drop_material(wmOperatorType *ot)
static int ui_view_item_rename_exec(bContext *C, wmOperator *UNUSED(op))
static void override_idtemplate_menu_draw(const bContext *UNUSED(C), Menu *menu)
static bool override_idtemplate_reset_poll(bContext *C)
static int jump_to_target_button_exec(bContext *C, wmOperator *UNUSED(op))
bool UI_context_copy_to_selected_list(bContext *C, PointerRNA *ptr, PropertyRNA *prop, ListBase *r_lb, bool *r_use_path_from_id, char **r_path)
static bool jump_to_target_button(bContext *C, bool poll)
static void UI_OT_override_remove_button(wmOperatorType *ot)
static void UI_OT_button_string_clear(wmOperatorType *ot)
static int override_idtemplate_reset_exec(bContext *C, wmOperator *UNUSED(op))
static bool drop_name_poll(bContext *C)
#define NOT_RNA_NULL(assignment)
static bool copy_python_command_button_poll(bContext *C)
static int assign_default_button_exec(bContext *C, wmOperator *UNUSED(op))
static int copy_data_path_button_exec(bContext *C, wmOperator *op)
static void UI_OT_reset_default_button(wmOperatorType *ot)
void ED_keymap_ui(wmKeyConfig *keyconf)
User Interface Keymap.
static void UI_OT_override_idtemplate_make(wmOperatorType *ot)
static bool assign_default_button_poll(bContext *C)
static int ui_drop_material_exec(bContext *C, wmOperator *op)
static void UI_OT_view_drop(wmOperatorType *ot)
static void UI_OT_copy_as_driver_button(wmOperatorType *ot)
static int drop_color_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool jump_to_target_ptr(bContext *C, PointerRNA ptr, const bool poll)
static bool override_idtemplate_clear_poll(bContext *C)
static EnumPropertyItem override_type_items[]
static int copy_as_driver_button_exec(bContext *C, wmOperator *op)
bool UI_drop_color_poll(struct bContext *C, wmDrag *drag, const wmEvent *UNUSED(event))
static bool ui_drop_material_poll(bContext *C)
static bool copy_as_driver_button_poll(bContext *C)
static int operator_button_property_finish_with_undo(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
static void UI_OT_drop_color(wmOperatorType *ot)
bool UI_context_copy_to_selected_check(PointerRNA *ptr, PointerRNA *ptr_link, PropertyRNA *prop, const char *path, bool use_path_from_id, PointerRNA *r_ptr, PropertyRNA **r_prop)
static bool ui_view_item_rename_poll(bContext *C)
static void UI_OT_view_item_rename(wmOperatorType *ot)
static void ui_context_selected_bones_via_pose(bContext *C, ListBase *r_lb)
static bool override_idtemplate_make_poll(bContext *C)
static bool override_idtemplate_menu_poll(const bContext *C_const, MenuType *UNUSED(mt))
static bool override_idtemplate_poll(bContext *C, const bool is_create_op)
@ UIOverride_Type_Replace
@ UIOverride_Type_Difference
static int button_string_clear_exec(bContext *C, wmOperator *UNUSED(op))
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void PyC_FileAndNum_Safe(const char **r_filename, int *r_lineno)
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_array_check(PropertyRNA *prop)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
bool RNA_property_assign_default(PointerRNA *ptr, PropertyRNA *prop)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
const char * RNA_property_identifier(const PropertyRNA *prop)
bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index)
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_boolean_set(PointerRNA *ptr, const char *name, bool value)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
PropertyType RNA_property_type(PropertyRNA *prop)
const PointerRNA PointerRNA_NULL
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
char * RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_int_get(PointerRNA *ptr, const char *name)
int RNA_property_array_dimension(const PointerRNA *ptr, PropertyRNA *prop, int length[])
PropertyRNA * RNA_struct_type_find_property(StructRNA *srna, const char *identifier)
char * RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen, int *r_len)
bool RNA_pointer_is_null(const PointerRNA *ptr)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_is_idprop(const PropertyRNA *prop)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
PropertySubType RNA_property_subtype(PropertyRNA *prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void RNA_property_unset(PointerRNA *ptr, PropertyRNA *prop)
IDOverrideLibraryPropertyOperation * RNA_property_override_property_operation_get(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, const short operation, const int index, const bool strict, bool *r_strict, bool *r_created)
IDOverrideLibraryProperty * RNA_property_override_property_find(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, ID **r_owner_id)
eRNAOverrideStatus RNA_property_override_library_status(Main *bmain, PointerRNA *ptr, PropertyRNA *prop, const int index)
bool RNA_property_copy(Main *bmain, PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float_color(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
StructRNA RNA_PropertyGroup
char * RNA_path_full_struct_py(Main *bmain, const PointerRNA *ptr)
char * RNA_path_from_struct_to_idproperty(PointerRNA *ptr, IDProperty *needle)
char * RNA_path_resolve_from_type_to_property(const PointerRNA *ptr, PropertyRNA *prop, const StructRNA *type)
char * RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop)
bool RNA_path_resolve_property(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
char * RNA_path_from_real_ID_to_property_index(Main *bmain, const PointerRNA *ptr, PropertyRNA *prop, int index_dim, int index, ID **r_real_id)
char * RNA_path_full_property_py_ex(Main *bmain, const PointerRNA *ptr, PropertyRNA *prop, int index, bool use_fallback)
IDOverrideLibrary * override_library
struct MaterialGPencilStyle * gp_style
struct bNodeTree * node_group
uiButSearchUpdateFn items_update_fn
struct wmOperatorType * optype
char drawstr[UI_MAX_DRAW_STR]
struct PropertyRNA * rnaprop
struct PointerRNA rnapoin
PropertyRNA * search_prop
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmEvent * eventstate
void WM_draw_region_viewport_unbind(ARegion *region)
void WM_draw_region_viewport_bind(ARegion *region)
void WM_main_add_notifier(unsigned int type, void *reference)
int WM_operator_name_call_ptr(bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_event_add_mousemove(wmWindow *win)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
ID * WM_operator_properties_id_lookup_from_name_or_session_uuid(Main *bmain, PointerRNA *ptr, const ID_Type type)
void WM_operator_properties_id_lookup(wmOperatorType *ot, const bool add_name_prop)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))
int WM_menu_invoke_ex(bContext *C, wmOperator *op, wmOperatorCallContext opcontext)
char * WM_operator_pystring_ex(bContext *C, wmOperator *op, const bool all_args, const bool macro_args, wmOperatorType *ot, PointerRNA *opptr)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_clipboard_text_set(const char *buf, bool selection)