Blender  V2.93
Functions
outliner_utils.c File Reference
#include <string.h>
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "DNA_action_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_object.h"
#include "BKE_outliner_treehash.h"
#include "ED_outliner.h"
#include "ED_screen.h"
#include "UI_interface.h"
#include "UI_view2d.h"
#include "outliner_intern.h"

Go to the source code of this file.

Functions

TreeElementoutliner_find_item_at_y (const SpaceOutliner *space_outliner, const ListBase *tree, float view_co_y)
 
static TreeElementoutliner_find_item_at_x_in_row_recursive (const TreeElement *parent_te, float view_co_x, bool *r_is_merged_icon)
 
TreeElementoutliner_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)
 
TreeElementoutliner_find_tree_element (ListBase *lb, const TreeStoreElem *store_elem)
 
TreeElementoutliner_find_parent_element (ListBase *lb, TreeElement *parent_te, const TreeElement *child_te)
 
TreeElementoutliner_find_tse (SpaceOutliner *space_outliner, const TreeStoreElem *tse)
 
TreeElementoutliner_find_id (SpaceOutliner *space_outliner, ListBase *lb, const ID *id)
 
TreeElementoutliner_find_posechannel (ListBase *lb, const bPoseChannel *pchan)
 
TreeElementoutliner_find_editbone (ListBase *lb, const EditBone *ebone)
 
TreeElementoutliner_search_back_te (TreeElement *te, short idcode)
 
IDoutliner_search_back (TreeElement *te, short idcode)
 
bool outliner_tree_traverse (const SpaceOutliner *space_outliner, ListBase *tree, int filter_te_flag, int filter_tselem_flag, TreeTraversalFunc func, void *customdata)
 
float outliner_restrict_columns_width (const SpaceOutliner *space_outliner)
 
TreeElementoutliner_find_element_with_flag (const ListBase *lb, short flag)
 
bool outliner_is_element_visible (const TreeElement *te)
 
bool outliner_item_is_co_over_name_icons (const TreeElement *te, float view_co_x)
 
bool outliner_item_is_co_over_icon (const TreeElement *te, float view_co_x)
 
bool outliner_item_is_co_over_name (const TreeElement *te, float view_co_x)
 
bool outliner_item_is_co_within_close_toggle (const TreeElement *te, float view_co_x)
 
void outliner_scroll_view (SpaceOutliner *space_outliner, ARegion *region, int delta_y)
 
void outliner_tag_redraw_avoid_rebuild_on_open_change (const SpaceOutliner *space_outliner, ARegion *region)
 
BaseED_outliner_give_base_under_cursor (bContext *C, const int mval[2])
 
Tree View Context
void outliner_viewcontext_init (const bContext *C, TreeViewContext *tvc)
 

Function Documentation

◆ ED_outliner_give_base_under_cursor()

Base* ED_outliner_give_base_under_cursor ( bContext C,
const int  mval[2] 
)

◆ outliner_find_editbone()

TreeElement* outliner_find_editbone ( ListBase lb,
const EditBone ebone 
)

◆ outliner_find_element_with_flag()

TreeElement* outliner_find_element_with_flag ( const ListBase lb,
short  flag 
)

◆ outliner_find_id()

TreeElement* outliner_find_id ( SpaceOutliner space_outliner,
ListBase lb,
const ID id 
)

◆ outliner_find_item_at_x_in_row()

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 
)

Collapsed items can show their children as click-able icons. This function tries to find such an icon that represents the child item at x-coordinate view_co_x (view-space).

Returns
a hovered child item or parent_te (if no hovered child found).

Definition at line 153 of file outliner_utils.c.

References outliner_find_item_at_x_in_row_recursive(), outliner_item_is_co_over_icon(), TREESTORE, and TSELEM_OPEN.

Referenced by outliner_highlight_update(), and outliner_item_do_activate_from_cursor().

◆ outliner_find_item_at_x_in_row_recursive()

static TreeElement* outliner_find_item_at_x_in_row_recursive ( const TreeElement parent_te,
float  view_co_x,
bool *  r_is_merged_icon 
)
static

◆ outliner_find_item_at_y()

TreeElement* outliner_find_item_at_y ( const SpaceOutliner space_outliner,
const ListBase tree,
float  view_co_y 
)

◆ outliner_find_parent_element()

TreeElement* outliner_find_parent_element ( ListBase lb,
TreeElement parent_te,
const TreeElement child_te 
)

◆ outliner_find_posechannel()

TreeElement* outliner_find_posechannel ( ListBase lb,
const bPoseChannel pchan 
)

◆ outliner_find_tree_element()

TreeElement* outliner_find_tree_element ( ListBase lb,
const TreeStoreElem store_elem 
)

◆ outliner_find_tse()

TreeElement* outliner_find_tse ( SpaceOutliner space_outliner,
const TreeStoreElem tse 
)

◆ outliner_is_element_visible()

bool outliner_is_element_visible ( const TreeElement te)

◆ outliner_item_is_co_over_icon()

bool outliner_item_is_co_over_icon ( const TreeElement te,
float  view_co_x 
)

Definition at line 441 of file outliner_utils.c.

References UI_UNIT_X, and TreeElement::xs.

Referenced by outliner_find_item_at_x_in_row().

◆ outliner_item_is_co_over_name()

bool outliner_item_is_co_over_name ( const TreeElement te,
float  view_co_x 
)

Definition at line 447 of file outliner_utils.c.

References UI_UNIT_X, TreeElement::xend, and TreeElement::xs.

Referenced by outliner_item_rename_find_hovered().

◆ outliner_item_is_co_over_name_icons()

bool outliner_item_is_co_over_name_icons ( const TreeElement te,
float  view_co_x 
)

◆ outliner_item_is_co_within_close_toggle()

bool outliner_item_is_co_within_close_toggle ( const TreeElement te,
float  view_co_x 
)

◆ outliner_restrict_columns_width()

float outliner_restrict_columns_width ( const SpaceOutliner space_outliner)

◆ outliner_scroll_view()

void outliner_scroll_view ( SpaceOutliner space_outliner,
ARegion region,
int  delta_y 
)

◆ outliner_search_back()

ID* outliner_search_back ( TreeElement te,
short  idcode 
)

◆ outliner_search_back_te()

TreeElement* outliner_search_back_te ( TreeElement te,
short  idcode 
)

◆ outliner_tag_redraw_avoid_rebuild_on_open_change()

void outliner_tag_redraw_avoid_rebuild_on_open_change ( const SpaceOutliner space_outliner,
ARegion region 
)

The outliner should generally use ED_region_tag_redraw_no_rebuild() to avoid unnecessary tree rebuilds. If elements are open or closed, we may still have to rebuild. Upon changing the open/closed state, call this to avoid rebuilds if possible.

Definition at line 487 of file outliner_utils.c.

References ED_region_tag_redraw(), ED_region_tag_redraw_no_rebuild(), and outliner_requires_rebuild_on_open_change().

◆ outliner_tree_traverse()

bool outliner_tree_traverse ( const SpaceOutliner space_outliner,
ListBase tree,
int  filter_te_flag,
int  filter_tselem_flag,
TreeTraversalFunc  func,
void *  customdata 
)

Iterate over all tree elements (pre-order traversal), executing func callback for each tree element matching the optional filters.

Parameters
filter_te_flagIf not 0, only TreeElements with this flag will be visited.
filter_tselem_flagSame as filter_te_flag, but for the TreeStoreElem.
funcCustom callback to execute for each visited item.

Definition at line 315 of file outliner_utils.c.

References TreeStoreElem::flag, outliner_tree_traverse(), TRAVERSE_BREAK, TRAVERSE_CONTINUE, TRAVERSE_SKIP_CHILDS, tree, and TREESTORE.

Referenced by collection_flag_exec(), collection_instance_exec(), collection_isolate_exec(), collection_link_exec(), collection_new_exec(), collection_view_layer_exec(), collection_visibility_exec(), collections_view_layer_poll(), ED_outliner_selected_objects_get(), outliner_active_collection(), outliner_active_layer_collection(), outliner_collection_delete(), outliner_color_tag_set_exec(), outliner_delete_exec(), outliner_hide_exec(), outliner_item_drag_drop_invoke(), and outliner_tree_traverse().

◆ outliner_viewcontext_init()

void outliner_viewcontext_init ( const bContext C,
TreeViewContext tvc 
)