95 ®ion->
v2d, event->
mval[0], event->
mval[1], &view_mval[0], &view_mval[1]);
98 space_outliner, &space_outliner->
tree, view_mval[1]);
101 bool is_over_icon =
false;
104 space_outliner, hovered_te, view_mval[0],
nullptr, &is_over_icon);
107 bool changed =
false;
132 ot->
name =
"Update Highlight";
133 ot->
idname =
"OUTLINER_OT_highlight_update";
134 ot->
description =
"Update the item highlight based on the current mouse position";
185 ®ion->
v2d, event->
mval[0], event->
mval[1], &view_mval[0], &view_mval[1]);
196 if (te->
xs ==
data->x_location) {
207 data->prev_tselem =
nullptr;
250 OpenCloseData *toggle_data = MEM_cnew<OpenCloseData>(
"open_close_data");
252 toggle_data->
open = open;
268 ot->
idname =
"OUTLINER_OT_item_openclose";
269 ot->
description =
"Toggle whether item under cursor is enabled or closed";
290 bool add_textbut =
false;
343 "Library path is not editable from here anymore, please use Relocate operation instead");
373 if (!active_element) {
378 return active_element;
412 int ytop = (te->
ys + (size_y / 2));
413 int delta_y = ytop - v2d->
cur.
ymax;
424 ot->
idname =
"OUTLINER_OT_item_rename";
438 "Rename the active item, rather than the one the mouse is over");
462 "Cannot delete library override id '%s', it is part of an override hierarchy",
479 "Cannot delete id '%s', indirectly used data-blocks need at least one user",
487 reports,
RPT_WARNING,
"Cannot delete currently visible workspace id '%s'",
id->
name);
515 int id_tagged_num = 0;
520 if (te->
idcode != 0 && tselem->
id) {
524 "Cannot delete indirectly linked library '%s'",
541 return id_tagged_num;
555 int id_tagged_num = 0;
562 if (id_tagged_num == 0) {
574 ot->
name =
"Delete Data-Block";
575 ot->
idname =
"OUTLINER_OT_id_delete";
597 ID *old_id =
reinterpret_cast<ID *
>(
599 ID *new_id =
reinterpret_cast<ID *
>(
603 if (space_outliner ==
nullptr) {
607 if (!(old_id && new_id && (old_id != new_id) && (
GS(old_id->
name) ==
GS(new_id->
name)))) {
610 "Invalid old/new ID pair ('%s' / '%s')",
611 old_id ? old_id->
name :
"Invalid ID",
612 new_id ? new_id->
name :
"Invalid ID");
619 "Old ID '%s' is linked from a library, indirect usages of this data-block will "
695 for (;
id;
id =
reinterpret_cast<ID *
>(
id->next)) {
697 item_tmp.
value = i++;
712 ot->
name =
"Outliner ID Data Remap";
713 ot->
idname =
"OUTLINER_OT_id_remap";
738 "New ID to remap all selected IDs' users to");
820 ot->
name =
"Outliner ID Data Copy";
822 ot->
description =
"Selected data-blocks are copied to the clipboard";
846 if (num_pasted == 0) {
861 ot->
name =
"Outliner ID Data Paste";
862 ot->
idname =
"OUTLINER_OT_id_paste";
863 ot->
description =
"Data-blocks from the clipboard are pasted";
898 printf(
"%s, %s\n", tselem->
id->
name,
lib->filepath_abs);
925 if (((
Library *)tselem->
id)->parent && !reload) {
928 "Cannot relocate indirectly linked library '%s'",
973 ot->
name =
"Relocate Library";
974 ot->
idname =
"OUTLINER_OT_lib_relocate";
1030 ot->
name =
"Reload Library";
1031 ot->
idname =
"OUTLINER_OT_lib_reload";
1062 int level = curlevel;
1077 if (tselem->
flag & flag) {
1096 bool changed =
false;
1100 bool has_flag = (tselem->
flag & flag);
1103 tselem->
flag &= ~flag;
1107 else if (!has_flag) {
1108 tselem->
flag |= flag;
1123 bool changed =
false;
1127 tselem->
flag ^= flag;
1159 ot->
name =
"Expand/Collapse All";
1160 ot->
idname =
"OUTLINER_OT_expanded_toggle";
1211 ot->
name =
"Toggle Selected";
1212 ot->
idname =
"OUTLINER_OT_select_all";
1323 if (active_element) {
1337 int ytop = (active_element->
ys + (size_y / 2));
1338 int delta_y = ytop - v2d->
cur.
ymax;
1354 ot->
name =
"Show Active";
1355 ot->
idname =
"OUTLINER_OT_show_active";
1357 "Open up the tree and adjust the view so that the active object is shown centered";
1394 ot->
name =
"Scroll Page";
1395 ot->
idname =
"OUTLINER_OT_scroll_page";
1422 for (te = lb->
first; te; te = te->
next) {
1428 if ((te !=
prev) && (*prevFound)) {
1440 tes = outliner_find_name(space_outliner, &te->
subtree, name, flags,
prev, prevFound);
1450 static void outliner_find_panel(
1457 int ytop, xdelta, prevFound = 0;
1464 if (again && last_find) {
1470 te = outliner_find_name(space_outliner, &space_outliner->
tree, name, flags, last_find, &prevFound);
1471 if (te ==
nullptr) {
1474 te = outliner_find_name(space_outliner, &space_outliner->
tree, name, flags, last_find, &prevFound);
1543 if (curlevel <= level) {
1548 if (curlevel >= level) {
1589 ot->
name =
"Show/Hide One Level";
1590 ot->
idname =
"OUTLINER_OT_show_one_level";
1591 ot->
description =
"Expand/collapse all entries by one level";
1681 ot->
name =
"Show Hierarchy";
1682 ot->
idname =
"OUTLINER_OT_show_hierarchy";
1683 ot->
description =
"Open all object entries and close all others";
1721 short *
UNUSED(groupmode))
1723 ListBase hierarchy = {
nullptr,
nullptr};
1724 char *newpath =
nullptr;
1744 LinkData *ld = MEM_cnew<LinkData>(
"LinkData for tree_element_to_path()");
1764 PropertyRNA *prop = tem_rna_prop->getPropertyRNA();
1771 char buf[128], *name;
1774 PointerRNA nextptr = tree_element_cast<TreeElementRNACommon>(temnext)->getPointerRNA();
1790 if (temsub == temnext) {
1813 if (tree_element_cast<TreeElementRNAStruct>(tem)) {
1832 PropertyRNA *prop = tree_element_cast<TreeElementRNACommon>(te)->getPropertyRNA();
1837 *array_index = te->
index;
1887 char *path =
nullptr;
1888 int array_index = 0;
1913 arraylen = array_index;
1917 if (arraylen == array_index) {
1922 for (; array_index < arraylen; array_index++) {
1955 if (space_outliner ==
nullptr) {
1971 ot->
idname =
"OUTLINER_OT_drivers_add_selected";
1972 ot->
name =
"Add Drivers for Selected";
1994 if (space_outliner ==
nullptr) {
2010 ot->
idname =
"OUTLINER_OT_drivers_delete_selected";
2011 ot->
name =
"Delete Drivers for Selected";
2012 ot->
description =
"Delete drivers assigned to selected items";
2046 if (
scene ==
nullptr) {
2058 if ((
add) && (ks ==
nullptr)) {
2080 char *path =
nullptr;
2081 int array_index = 0;
2139 if (ks ==
nullptr) {
2143 if (space_outliner ==
nullptr) {
2159 ot->
idname =
"OUTLINER_OT_keyingset_add_selected";
2160 ot->
name =
"Keying Set Add Selected";
2161 ot->
description =
"Add selected items (blue-gray rows) to active Keying Set";
2184 if (space_outliner ==
nullptr) {
2200 ot->
idname =
"OUTLINER_OT_keyingset_remove_selected";
2201 ot->
name =
"Keying Set Remove Selected";
2202 ot->
description =
"Remove selected items (blue-gray rows) from active Keying Set";
2239 bmain,
LIB_TAG_DOIT, do_local_ids, do_linked_ids, do_recursive_cleanup, num_tagged);
2250 bool is_first =
true;
2252 if (num_tagged[i] != 0) {
2289 bmain,
LIB_TAG_DOIT, do_local_ids, do_linked_ids, do_recursive_cleanup, num_tagged);
2321 ot->
idname =
"OUTLINER_OT_orphans_purge";
2323 ot->
description =
"Clear all orphaned data-blocks without any users from the file";
2340 "Local Data-blocks",
2341 "Include unused local data-blocks into deletion");
2345 "Linked Data-blocks",
2346 "Include unused linked data-blocks into deletion");
2352 "Recursively check for indirectly unused data-blocks, ensuring that no orphaned "
2353 "data-blocks remain after execution");
typedef float(TangentPoint)[2]
Blender kernel action and pose functionality.
struct bPoseChannel * BKE_pose_channel_active(struct Object *ob, bool check_arm_layer)
struct KS_Path * BKE_keyingset_add_path(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, short flag, short groupmode)
struct KeyingSet * BKE_keyingset_add(struct ListBase *list, const char idname[], const char name[], short flag, short keyingflag)
struct KS_Path * BKE_keyingset_find_path(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode)
void BKE_keyingset_free_path(struct KeyingSet *ks, struct KS_Path *ksp)
const char * BKE_tempdir_base(void)
bool BKE_copybuffer_copy_end(struct Main *bmain_src, const char *filename, struct ReportList *reports)
void BKE_copybuffer_copy_begin(struct Main *bmain_src)
void BKE_copybuffer_copy_tag_ID(struct ID *id)
int BKE_copybuffer_paste(struct bContext *C, const char *libname, int flag, struct ReportList *reports, uint64_t id_types_mask)
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct SpaceOutliner * CTX_wm_space_outliner(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct EditBone * CTX_data_active_bone(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
const char * BKE_idtype_idcode_to_name_plural(short idcode)
short BKE_idtype_idcode_from_index(int index)
void BKE_main_id_tag_idcode(struct Main *mainvar, short type, int tag, bool value)
void BKE_main_id_tag_all(struct Main *mainvar, int tag, bool value)
void BKE_main_lib_objects_recalc_all(struct Main *bmain)
size_t BKE_id_multi_tagged_delete(struct Main *bmain) ATTR_NONNULL()
bool BKE_library_ID_is_indirectly_used(struct Main *bmain, void *idv)
void BKE_lib_query_unused_ids_tag(struct Main *bmain, int tag, bool do_local_ids, bool do_linked_ids, bool do_tag_recursive, int *r_num_tagged)
@ ID_REMAP_SKIP_NEVER_NULL_USAGE
@ 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
struct ListBase * which_libbase(struct Main *bmain, short type)
General operations, lookup, etc. for blender objects.
struct Object * BKE_object_pose_armature_get(struct Object *ob)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_workspace_id_tag_all_visible(struct Main *bmain, int tag) ATTR_NONNULL()
A dynamically sized string ADT.
DynStr * BLI_dynstr_new(void) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
char * BLI_dynstr_get_cstring(const DynStr *ds) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLI_dynstr_free(DynStr *ds) ATTR_NONNULL()
void BLI_dynstr_appendf(DynStr *__restrict ds, const char *__restrict format,...) ATTR_PRINTF_FORMAT(2
void BLI_dynstr_append(DynStr *__restrict ds, const char *cstr) ATTR_NONNULL()
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_split_dirfile(const char *string, char *dir, char *file, size_t dirlen, size_t filelen)
void BLI_join_dirfile(char *__restrict dst, size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
#define UNUSED_VARS_NDEBUG(...)
#define BLT_I18NCONTEXT_ID_ID
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
ID and Library types, which are fundamental for sdna.
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
#define ID_IS_LINKED(_id)
#define ID_REAL_USERS(id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
@ IDOVERRIDE_LIBRARY_FLAG_NO_HIERARCHY
Object groups, one object can be in many groups at once.
Object is a sort of wrapper for general info.
@ TSE_VIEW_COLLECTION_BASE
@ TSE_LIBRARY_OVERRIDE_BASE
@ TSE_SCENE_COLLECTION_BASE
#define OBACT(_view_layer)
@ RPT_ERROR_INVALID_INPUT
@ CREATEDRIVER_WITH_DEFAULT_DVAR
void ED_outliner_select_sync_from_outliner(struct bContext *C, struct SpaceOutliner *space_outliner)
void ED_region_tag_redraw_no_rebuild(struct ARegion *region)
bool ED_operator_outliner_active(struct bContext *C)
void ED_region_tag_redraw(struct ARegion *region)
int ED_screen_area_active(const struct bContext *C)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
void GPU_materials_free(struct Main *bmain)
Read Guarded memory(de)allocation.
void UI_view2d_region_to_view(const struct View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
const PointerRNA & getPointerRNA() const
virtual PropertyRNA * getPropertyRNA() const
bool ANIM_remove_driver(ReportList *UNUSED(reports), ID *id, const char rna_path[], int array_index, short UNUSED(flag))
int ANIM_add_driver(ReportList *reports, ID *id, const char rna_path[], int array_index, short flag, int type)
Main Driver Management API calls.
void(* MEM_freeN)(void *vmemh)
bool add(void *owner, const AttributeIDRef &attribute_id, eAttrDomain domain, eCustomDataType data_type, const AttributeInit &initializer)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void all_open(const SpaceOutliner &space_outliner, const VisitorFn visitor)
void all(const SpaceOutliner &space_outliner, const VisitorFn visitor)
SymEdge< T > * prev(const SymEdge< T > *se)
Collection * outliner_collection_from_tree_element(const TreeElement *te)
bool outliner_is_collection_tree_element(const TreeElement *te)
static KeyingSet * verify_active_keyingset(Scene *scene, short add)
void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot)
static int outliner_open_back(TreeElement *te)
void OUTLINER_OT_show_active(wmOperatorType *ot)
static int outliner_item_rename(bContext *C, wmOperator *op, const wmEvent *event)
static const EnumPropertyItem * outliner_id_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), bool *r_free)
static int outliner_one_level_exec(bContext *C, wmOperator *op)
void OUTLINER_OT_lib_reload(wmOperatorType *ot)
static void do_outliner_drivers_editop(SpaceOutliner *space_outliner, ReportList *reports, short mode)
static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op)
void id_remap_fn(bContext *C, ReportList *UNUSED(reports), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem, void *UNUSED(user_data))
void OUTLINER_OT_orphans_purge(wmOperatorType *ot)
void outliner_set_coordinates(const ARegion *region, const SpaceOutliner *space_outliner)
static int outliner_count_levels(ListBase *lb, const int curlevel)
void OUTLINER_OT_id_remap(wmOperatorType *ot)
static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op))
static int outliner_lib_reload_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void outliner_openclose_level(ListBase *lb, int curlevel, int level, int open)
static int outliner_lib_relocate_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op))
static int outliner_scroll_page_exec(bContext *C, wmOperator *op)
static void tree_element_to_path(TreeElement *te, TreeStoreElem *tselem, ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode))
void OUTLINER_OT_lib_relocate(wmOperatorType *ot)
static void do_item_rename(ARegion *region, TreeElement *te, TreeStoreElem *tselem, ReportList *reports)
void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot)
static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op)
static int outliner_id_paste_exec(bContext *C, wmOperator *op)
static int outliner_item_openclose_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void OUTLINER_OT_id_paste(wmOperatorType *ot)
static void tree_element_show_hierarchy(Scene *scene, SpaceOutliner *space_outliner)
static TreeElement * outliner_show_active_get_element(bContext *C, SpaceOutliner *space_outliner, ViewLayer *view_layer)
void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot)
static int outliner_lib_relocate_invoke_do(bContext *C, ReportList *reports, TreeElement *te, const float mval[2], const bool reload)
static int outliner_highlight_update(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
static int outliner_item_openclose_modal(bContext *C, wmOperator *op, const wmEvent *event)
static bool ed_operator_outliner_id_orphans_active(bContext *C)
@ DRIVERS_EDITMODE_REMOVE
bool outliner_flag_set(const SpaceOutliner &space_outliner, const short flag, const short set)
void OUTLINER_OT_item_rename(wmOperatorType *ot)
void OUTLINER_OT_scroll_page(wmOperatorType *ot)
void OUTLINER_OT_expanded_toggle(wmOperatorType *ot)
static int outliner_id_delete_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int subtree_has_objects(ListBase *lb)
@ KEYINGSET_EDITMODE_REMOVE
void OUTLINER_OT_highlight_update(wmOperatorType *ot)
static void do_outliner_keyingset_editop(SpaceOutliner *space_outliner, KeyingSet *ks, const short mode)
static bool outliner_id_remap_find_tree_element(bContext *C, wmOperator *op, ListBase *tree, const float y)
void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot)
int outliner_flag_is_any_test(ListBase *lb, short flag, const int curlevel)
static int lib_relocate(bContext *C, TreeElement *te, TreeStoreElem *tselem, wmOperatorType *ot, const bool reload)
static int outliner_id_delete_tag(bContext *C, ReportList *reports, TreeElement *te, const float mval[2])
void OUTLINER_OT_show_one_level(wmOperatorType *ot)
static void id_delete_tag(bContext *C, ReportList *reports, TreeElement *te, TreeStoreElem *tselem)
static int outliner_id_remap_exec(bContext *C, wmOperator *op)
void OUTLINER_OT_id_delete(wmOperatorType *ot)
bool outliner_flag_flip(const SpaceOutliner &space_outliner, const short flag)
static int outliner_orphans_purge_exec(bContext *C, wmOperator *op)
static int outliner_id_copy_exec(bContext *C, wmOperator *op)
static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op))
void OUTLINER_OT_select_all(wmOperatorType *ot)
void outliner_item_openclose(TreeElement *te, bool open, bool toggle_all)
void lib_reload_fn(bContext *C, ReportList *UNUSED(reports), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem, void *UNUSED(user_data))
void OUTLINER_OT_item_openclose(wmOperatorType *ot)
void item_rename_fn(bContext *C, ReportList *reports, Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem, void *UNUSED(user_data))
static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op))
static int outliner_id_copy_tag(SpaceOutliner *space_outliner, ListBase *tree)
void id_delete_tag_fn(bContext *C, ReportList *reports, Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem, void *UNUSED(user_data))
void lib_relocate_fn(bContext *C, ReportList *UNUSED(reports), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem, void *UNUSED(user_data))
static int outliner_id_remap_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static TreeElement * outliner_item_rename_find_active(const SpaceOutliner *space_outliner, ReportList *reports)
static bool ed_operator_outliner_datablocks_active(bContext *C)
static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op)
void OUTLINER_OT_show_hierarchy(wmOperatorType *ot)
static int outliner_orphans_purge_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static void outliner_show_active(SpaceOutliner *space_outliner, ARegion *region, TreeElement *te, ID *id)
static TreeElement * outliner_item_rename_find_hovered(const SpaceOutliner *space_outliner, ARegion *region, const wmEvent *event)
void OUTLINER_OT_id_copy(wmOperatorType *ot)
static int outliner_select_all_exec(bContext *C, wmOperator *op)
TreeElement * outliner_find_editbone(ListBase *lb, const struct EditBone *ebone)
TreeElement * outliner_find_posechannel(ListBase *lb, const struct bPoseChannel *pchan)
@ TE_PRETEND_HAS_CHILDREN
TreeElement * outliner_find_element_with_flag(const ListBase *lb, short flag)
bool outliner_item_is_co_within_close_toggle(const TreeElement *te, float view_co_x)
bool outliner_item_is_co_over_name(const TreeElement *te, float view_co_x)
void outliner_scroll_view(struct SpaceOutliner *space_outliner, struct ARegion *region, int delta_y)
void outliner_cleanup_tree(struct SpaceOutliner *space_outliner)
TreeElement * outliner_find_item_at_y(const SpaceOutliner *space_outliner, const ListBase *tree, float view_co_y)
TreeElement * outliner_find_id(struct SpaceOutliner *space_outliner, ListBase *lb, const struct ID *id)
TreeElement * outliner_find_tse(struct SpaceOutliner *space_outliner, const TreeStoreElem *tse)
TreeElement * outliner_find_item_at_x_in_row(const SpaceOutliner *space_outliner, TreeElement *parent_te, float view_co_x, bool *r_is_merged_icon, bool *r_is_over_icon)
void outliner_tag_redraw_avoid_rebuild_on_open_change(const struct SpaceOutliner *space_outliner, struct ARegion *region)
static bool outliner_filter_has_name(TreeElement *te, const char *name, int flags)
const EnumPropertyItem rna_enum_id_type_items[]
bool RNA_property_array_check(PropertyRNA *prop)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
bool RNA_struct_is_ID(const StructRNA *type)
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop)
char * RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen, int *r_len)
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
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_enum_set_identifier(bContext *C, PointerRNA *ptr, const char *name, const char *id)
int RNA_int_get(PointerRNA *ptr, const char *name)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_enum_funcs_runtime(PropertyRNA *prop, EnumPropertyGetFunc getfunc, EnumPropertySetFunc setfunc, EnumPropertyItemFunc itemfunc)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
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)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
char * RNA_path_append(const char *path, const PointerRNA *UNUSED(ptr), PropertyRNA *prop, int intkey, const char *strkey)
const EnumPropertyItem DummyRNA_NULL_items[]
IDOverrideLibrary * override_library
TreeStoreElem * prev_tselem
struct TreeStoreElem search_tse
struct TreeElement * parent
TreeStoreElem * store_elem
struct TreeElement * next
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* modal)(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
void WM_event_drag_start_mval(const wmEvent *event, const ARegion *region, int r_mval[2])
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
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_operator_properties_select_all(wmOperatorType *ot)
wmOperatorType * WM_operatortype_find(const char *idname, bool quiet)
int WM_operator_confirm_message(bContext *C, wmOperator *op, const char *message)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
int WM_operator_props_dialog_popup(bContext *C, wmOperator *op, int width)
void WM_operator_properties_free(PointerRNA *ptr)