Blender  V3.3
Classes
outliner_draw.cc File Reference
#include "DNA_armature_types.h"
#include "DNA_collection_types.h"
#include "DNA_constraint_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_light_types.h"
#include "DNA_lightprobe_types.h"
#include "DNA_object_force_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "DNA_text_types.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_mempool.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_deform.h"
#include "BKE_gpencil.h"
#include "BKE_idtype.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_lib_override.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_main_namemap.h"
#include "BKE_modifier.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "BKE_particle.h"
#include "BKE_report.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "ED_armature.h"
#include "ED_fileselect.h"
#include "ED_outliner.h"
#include "ED_screen.h"
#include "WM_api.h"
#include "WM_message.h"
#include "WM_types.h"
#include "GPU_immediate.h"
#include "GPU_state.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "RNA_access.h"
#include "outliner_intern.hh"
#include "tree/tree_display.hh"
#include "tree/tree_element.hh"
#include "tree/tree_element_id.hh"
#include "tree/tree_element_overrides.hh"
#include "tree/tree_element_rna.hh"
#include "tree/tree_iterator.hh"

Go to the source code of this file.

Classes

struct  RestrictProperties
 
struct  RestrictPropertiesActive
 
struct  MergedIconRow
 

Functions

Tree Size Functions
static void outliner_tree_dimensions_impl (SpaceOutliner *space_outliner, ListBase *lb, int *width, int *height)
 
void outliner_tree_dimensions (SpaceOutliner *space_outliner, int *r_width, int *r_height)
 
static bool is_object_data_in_editmode (const ID *id, const Object *obact)
 
Button Callbacks
static void restrictbutton_recursive_ebone (bArmature *arm, EditBone *ebone_parent, int flag, bool set_flag)
 
static void restrictbutton_recursive_bone (Bone *bone_parent, int flag, bool set_flag)
 
static void restrictbutton_r_lay_fn (bContext *C, void *poin, void *UNUSED(poin2))
 
static void restrictbutton_bone_visibility_fn (bContext *C, void *poin, void *UNUSED(poin2))
 
static void restrictbutton_bone_select_fn (bContext *C, void *UNUSED(poin), void *poin2)
 
static void restrictbutton_ebone_select_fn (bContext *C, void *poin, void *poin2)
 
static void restrictbutton_ebone_visibility_fn (bContext *C, void *poin, void *poin2)
 
static void restrictbutton_gp_layer_flag_fn (bContext *C, void *poin, void *UNUSED(poin2))
 
static void restrictbutton_id_user_toggle (bContext *UNUSED(C), void *poin, void *UNUSED(poin2))
 
static void outliner_object_set_flag_recursive_fn (bContext *C, Base *base, Object *ob, const char *propname)
 
static void outliner__object_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void outliner__base_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void outliner_layer_or_collection_pointer_create (Scene *scene, LayerCollection *layer_collection, Collection *collection, PointerRNA *ptr)
 
static void outliner_base_or_object_pointer_create (Scene *scene, ViewLayer *view_layer, Collection *collection, Object *ob, PointerRNA *ptr)
 
static void outliner_collection_set_flag_recursive (Scene *scene, ViewLayer *view_layer, LayerCollection *layer_collection, Collection *collection, PropertyRNA *layer_or_collection_prop, PropertyRNA *base_or_object_prop, const bool value)
 
static bool outliner_collection_is_isolated (Scene *scene, const LayerCollection *layer_collection_cmp, const Collection *collection_cmp, const bool value_cmp, const PropertyRNA *layer_or_collection_prop, LayerCollection *layer_collection, Collection *collection)
 
void outliner_collection_isolate_flag (Scene *scene, ViewLayer *view_layer, LayerCollection *layer_collection, Collection *collection, PropertyRNA *layer_or_collection_prop, const char *propname, const bool value)
 
static void outliner_collection_set_flag_recursive_fn (bContext *C, LayerCollection *layer_collection, Collection *collection, const char *propname)
 
static void view_layer__layer_collection_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void view_layer__collection_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void scenes__collection_set_flag_recursive_fn (bContext *C, void *poin, void *poin2)
 
static void namebutton_fn (bContext *C, void *tsep, char *oldname)
 
static void outliner_restrict_properties_enable_collection_set (PointerRNA *collection_ptr, RestrictProperties *props, RestrictPropertiesActive *props_active)
 
static void outliner_restrict_properties_enable_layer_collection_set (PointerRNA *layer_collection_ptr, PointerRNA *collection_ptr, RestrictProperties *props, RestrictPropertiesActive *props_active)
 
static bool outliner_restrict_properties_collection_set (Scene *scene, TreeElement *te, PointerRNA *collection_ptr, PointerRNA *layer_collection_ptr, RestrictProperties *props, RestrictPropertiesActive *props_active)
 
static void outliner_draw_restrictbuts (uiBlock *block, Scene *scene, ViewLayer *view_layer, ARegion *region, SpaceOutliner *space_outliner, ListBase *lb, RestrictPropertiesActive props_active_parent)
 
static void outliner_draw_userbuts (uiBlock *block, const ARegion *region, const SpaceOutliner *space_outliner)
 
static void outliner_draw_overrides_rna_buts (uiBlock *block, const ARegion *region, const SpaceOutliner *space_outliner, const ListBase *lb, const int x)
 
static bool outliner_but_identity_cmp_context_id_fn (const uiBut *a, const uiBut *b)
 
static void outliner_draw_overrides_restrictbuts (Main *bmain, uiBlock *block, const ARegion *region, const SpaceOutliner *space_outliner, const ListBase *lb, const int x)
 
static void outliner_draw_separator (ARegion *region, const int x)
 
static void outliner_draw_rnabuts (uiBlock *block, ARegion *region, SpaceOutliner *space_outliner, int sizex)
 
static void outliner_buttons (const bContext *C, uiBlock *block, ARegion *region, const float restrict_column_width, TreeElement *te)
 
static void outliner_mode_toggle_fn (bContext *C, void *tselem_poin, void *UNUSED(arg2))
 
static void outliner_draw_mode_column_toggle (uiBlock *block, TreeViewContext *tvc, TreeElement *te, const bool lock_object_modes)
 
static void outliner_draw_mode_column (uiBlock *block, TreeViewContext *tvc, SpaceOutliner *space_outliner)
 
static StringRefNull outliner_draw_get_warning_tree_element_subtree (const TreeElement *parent_te)
 
static StringRefNull outliner_draw_get_warning_tree_element (const SpaceOutliner &space_outliner, const TreeElement *te)
 
static void outliner_draw_warning_tree_element (uiBlock *block, const SpaceOutliner *space_outliner, StringRefNull warning_msg, const bool use_mode_column, const int te_ys)
 
static void outliner_draw_warning_column (uiBlock *block, const SpaceOutliner *space_outliner, const bool use_mode_column)
 
Normal Drawing
static BIFIconID tree_element_get_icon_from_id (const ID *id)
 
TreeElementIcon tree_element_get_icon (TreeStoreElem *tselem, TreeElement *te)
 
static bool tselem_draw_icon (uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha, const bool is_clickable)
 
static void outliner_draw_iconrow_number (const uiFontStyle *fstyle, int offsx, int ys, const int num_elements)
 
static void outliner_icon_background_colors (float icon_color[4], float icon_border[4])
 
static void outliner_draw_active_indicator (const float minx, const float miny, const float maxx, const float maxy, const float icon_color[4], const float icon_border[4])
 
static void outliner_draw_iconrow_doit (uiBlock *block, TreeElement *te, const uiFontStyle *fstyle, int xmax, int *offsx, int ys, float alpha_fac, const eOLDrawState active, const int num_elements)
 
int tree_element_id_type_to_index (TreeElement *te)
 
static void outliner_draw_iconrow (bContext *C, uiBlock *block, const uiFontStyle *fstyle, const TreeViewContext *tvc, SpaceOutliner *space_outliner, ListBase *lb, int level, int xmax, int *offsx, int ys, float alpha_fac, bool in_bone_hierarchy, MergedIconRow *merged)
 
static void outliner_set_subtree_coords (const TreeElement *te)
 
static bool element_should_draw_faded (const TreeViewContext *tvc, const TreeElement *te, const TreeStoreElem *tselem)
 
static void outliner_draw_tree_element (bContext *C, uiBlock *block, const uiFontStyle *fstyle, const TreeViewContext *tvc, ARegion *region, SpaceOutliner *space_outliner, TreeElement *te, bool draw_grayed_out, int startx, int *starty, const float restrict_column_width, TreeElement **te_edit)
 
static bool subtree_contains_object (ListBase *lb)
 
static void outliner_draw_hierarchy_line (const uint pos, const int x, const int y1, const int y2, const bool draw_dashed)
 
static void outliner_draw_hierarchy_lines_recursive (uint pos, SpaceOutliner *space_outliner, ListBase *lb, int startx, const uchar col[4], bool draw_grayed_out, int *starty)
 
static void outliner_draw_hierarchy_lines (SpaceOutliner *space_outliner, ListBase *lb, int startx, int *starty)
 
static void outliner_draw_struct_marks (ARegion *region, SpaceOutliner *space_outliner, ListBase *lb, int *starty)
 
static void outliner_draw_highlights (uint pos, const ARegion *region, const SpaceOutliner *space_outliner, const float col_selection[4], const float col_active[4], const float col_highlight[4], const float col_searchmatch[4], int start_x, int *io_start_y)
 
static void outliner_draw_highlights (ARegion *region, SpaceOutliner *space_outliner, int startx, int *starty)
 
static void outliner_draw_tree (bContext *C, uiBlock *block, const TreeViewContext *tvc, ARegion *region, SpaceOutliner *space_outliner, const float right_column_width, const bool use_mode_column, const bool use_warning_column, TreeElement **te_edit)
 
static void outliner_back (ARegion *region)
 
static int outliner_data_api_buttons_start_x (int max_tree_width)
 
static int outliner_width (SpaceOutliner *space_outliner, int max_tree_width, float right_column_width)
 
static void outliner_update_viewable_area (ARegion *region, SpaceOutliner *space_outliner, int tree_width, int tree_height, float right_column_width)
 
Main Entry-point

Draw contents of Outliner editor.

void draw_outliner (const bContext *C)
 

Function Documentation

◆ draw_outliner()

void draw_outliner ( const bContext C)

◆ element_should_draw_faded()

static bool element_should_draw_faded ( const TreeViewContext tvc,
const TreeElement te,
const TreeStoreElem tselem 
)
static

◆ is_object_data_in_editmode()

static bool is_object_data_in_editmode ( const ID id,
const Object obact 
)
static

The active object is only needed for reference.

Definition at line 115 of file outliner_draw.cc.

References BKE_object_data_is_in_editmode(), Object::data, GPENCIL_EDIT_MODE, GS, id, ID_GD, Object::mode, ID::name, OB_DATA_SUPPORT_EDITMODE, and OB_MODE_EDIT.

Referenced by outliner_draw_iconrow(), and outliner_draw_tree_element().

◆ namebutton_fn()

static void namebutton_fn ( bContext C,
void tsep,
char *  oldname 
)
static

Definition at line 669 of file outliner_draw.cc.

References bPose::agroups, BKE_gpencil_layer_active_set(), BKE_library_filepath_set(), BKE_main_blendfile_path(), BKE_main_namemap_remove_name(), BKE_object_defgroup_unique_name(), BKE_reportf(), BKE_view_layer_rename(), BLI_assert, BLI_exists(), BLI_libblock_ensure_unique_name(), BLI_path_abs(), BLI_strncpy(), BLI_uniquename(), BLT_I18NCONTEXT_ID_ACTION, bPoseChannel::bone, C, CTX_DATA_, CTX_data_main(), CTX_wm_message_bus(), CTX_wm_reports(), CTX_wm_space_outliner(), Object::data, DEG_id_tag_update(), TreeElement::directdata, ED_armature_bone_rename(), bArmature::edbo, FILE_MAX, TreeStoreElem::flag, GS, bAction::id, bArmature::id, Collection::id, bGPdata::id, Object::id, TreeStoreElem::id, Scene::id, ID_IM, ID_LI, ID_MA, ID_OB, ID_RECALC_COPY_ON_WRITE, ID_RECALC_GEOMETRY, ID_SCE, ID_TE, TreeElement::idcode, if(), bGPdata::layers, lib, LIB_TAG_MISSING, NA_RENAME, NA_SELECTED, EditBone::name, bPoseChannel::name, ID::name, NC_GPENCIL, NC_ID, NC_IMAGE, NC_MATERIAL, NC_OBJECT, NC_SCENE, NC_TEXTURE, ND_DATA, ND_POSE, OB_ARMATURE, OB_MBALL, OL_SETSEL_NORMAL, outliner_find_tree_element(), outliner_viewcontext_init(), Object::pose, RPT_ERROR, RPT_INFO, scene, SpaceOutliner::tree, tree_element_activate(), SpaceOutliner::treestore, TSE_BONE, TSE_DEFGROUP, TSE_EBONE, TSE_GP_LAYER, TSE_LAYER_COLLECTION, TSE_NLA_ACTION, TSE_POSE_CHANNEL, TSE_POSEGRP, TSE_R_LAYER, TSE_SOME_ID, TSE_TEXTBUT, Object::type, TreeStoreElem::type, WM_event_add_notifier(), and WM_msg_publish_rna_prop.

Referenced by outliner_buttons().

◆ outliner__base_set_flag_recursive_fn()

static void outliner__base_set_flag_recursive_fn ( bContext C,
void poin,
void poin2 
)
static

Base properties.

Definition at line 323 of file outliner_draw.cc.

References C, and outliner_object_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ outliner__object_set_flag_recursive_fn()

static void outliner__object_set_flag_recursive_fn ( bContext C,
void poin,
void poin2 
)
static

Object properties.

Definition at line 313 of file outliner_draw.cc.

References C, and outliner_object_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ outliner_back()

static void outliner_back ( ARegion region)
static

◆ outliner_base_or_object_pointer_create()

static void outliner_base_or_object_pointer_create ( Scene scene,
ViewLayer view_layer,
Collection collection,
Object ob,
PointerRNA ptr 
)
static

Create either a RNA_ObjectBase or a RNA_Object pointer.

Definition at line 345 of file outliner_draw.cc.

References BKE_view_layer_base_find(), Object::id, Scene::id, ptr, RNA_id_pointer_create(), RNA_pointer_create(), and scene.

Referenced by outliner_collection_set_flag_recursive().

◆ outliner_but_identity_cmp_context_id_fn()

static bool outliner_but_identity_cmp_context_id_fn ( const uiBut a,
const uiBut b 
)
static

◆ outliner_buttons()

static void outliner_buttons ( const bContext C,
uiBlock block,
ARegion region,
const float  restrict_column_width,
TreeElement te 
)
static

◆ outliner_collection_is_isolated()

static bool outliner_collection_is_isolated ( Scene scene,
const LayerCollection layer_collection_cmp,
const Collection collection_cmp,
const bool  value_cmp,
const PropertyRNA layer_or_collection_prop,
LayerCollection layer_collection,
Collection collection 
)
static

Check if collection is already isolated.

A collection is isolated if all its parents and children are "visible". All the other collections must be "invisible".

NOTE: We could/should boost performance by iterating over the tree twice. First tagging all the children/parent collections, then getting their values and comparing. To run BKE_collection_has_collection() so many times is silly and slow.

Definition at line 420 of file outliner_draw.cc.

References BKE_collection_has_collection(), Collection::children, LayerCollection::collection, COLLECTION_IS_MASTER, Collection::flag, LayerCollection::flag, LAYER_COLLECTION_EXCLUDE, LayerCollection::layer_collections, LISTBASE_FOREACH, outliner_layer_or_collection_pointer_create(), ptr, RNA_property_boolean_get(), and scene.

Referenced by outliner_collection_isolate_flag().

◆ outliner_collection_isolate_flag()

void outliner_collection_isolate_flag ( Scene scene,
ViewLayer view_layer,
LayerCollection layer_collection,
Collection collection,
PropertyRNA layer_or_collection_prop,
const char *  propname,
const bool  value 
)

◆ outliner_collection_set_flag_recursive()

static void outliner_collection_set_flag_recursive ( Scene scene,
ViewLayer view_layer,
LayerCollection layer_collection,
Collection collection,
PropertyRNA layer_or_collection_prop,
PropertyRNA base_or_object_prop,
const bool  value 
)
static

◆ outliner_collection_set_flag_recursive_fn()

static void outliner_collection_set_flag_recursive_fn ( bContext C,
LayerCollection layer_collection,
Collection collection,
const char *  propname 
)
static

◆ outliner_data_api_buttons_start_x()

static int outliner_data_api_buttons_start_x ( int  max_tree_width)
static

Definition at line 3848 of file outliner_draw.cc.

References max_ii(), OL_RNA_COL_SPACEX, and OL_RNA_COLX.

Referenced by draw_outliner(), and outliner_width().

◆ outliner_draw_active_indicator()

static void outliner_draw_active_indicator ( const float  minx,
const float  miny,
const float  maxx,
const float  maxy,
const float  icon_color[4],
const float  icon_border[4] 
)
static

◆ outliner_draw_get_warning_tree_element()

static StringRefNull outliner_draw_get_warning_tree_element ( const SpaceOutliner space_outliner,
const TreeElement te 
)
static

◆ outliner_draw_get_warning_tree_element_subtree()

static StringRefNull outliner_draw_get_warning_tree_element_subtree ( const TreeElement parent_te)
static

◆ outliner_draw_hierarchy_line()

static void outliner_draw_hierarchy_line ( const uint  pos,
const int  x,
const int  y1,
const int  y2,
const bool  draw_dashed 
)
static

◆ outliner_draw_hierarchy_lines()

static void outliner_draw_hierarchy_lines ( SpaceOutliner space_outliner,
ListBase lb,
int  startx,
int *  starty 
)
static

◆ outliner_draw_hierarchy_lines_recursive()

static void outliner_draw_hierarchy_lines_recursive ( uint  pos,
SpaceOutliner space_outliner,
ListBase lb,
int  startx,
const uchar  col[4],
bool  draw_grayed_out,
int *  starty 
)
static

◆ outliner_draw_highlights() [1/2]

static void outliner_draw_highlights ( ARegion region,
SpaceOutliner space_outliner,
int  startx,
int *  starty 
)
static

◆ outliner_draw_highlights() [2/2]

static void outliner_draw_highlights ( uint  pos,
const ARegion region,
const SpaceOutliner space_outliner,
const float  col_selection[4],
const float  col_active[4],
const float  col_highlight[4],
const float  col_searchmatch[4],
int  start_x,
int *  io_start_y 
)
static

◆ outliner_draw_iconrow()

static void outliner_draw_iconrow ( bContext C,
uiBlock block,
const uiFontStyle fstyle,
const TreeViewContext tvc,
SpaceOutliner space_outliner,
ListBase lb,
int  level,
int  xmax,
int *  offsx,
int  ys,
float  alpha_fac,
bool  in_bone_hierarchy,
MergedIconRow merged 
)
static

◆ outliner_draw_iconrow_doit()

static void outliner_draw_iconrow_doit ( uiBlock block,
TreeElement te,
const uiFontStyle fstyle,
int  xmax,
int *  offsx,
int  ys,
float  alpha_fac,
const eOLDrawState  active,
const int  num_elements 
)
static

◆ outliner_draw_iconrow_number()

static void outliner_draw_iconrow_number ( const uiFontStyle fstyle,
int  offsx,
int  ys,
const int  num_elements 
)
static

For icon-only children of a collapsed tree, Draw small number over the icon to show how many items of this type are displayed.

Definition at line 2949 of file outliner_draw.cc.

References BLI_rctf_init(), BLI_snprintf(), color, float(), GPU_blend(), GPU_BLEND_ALPHA, uiFontStyle::points, TH_TEXT_HI, UI_CNR_ALL, UI_draw_roundbox_aa(), UI_draw_roundbox_corner_set(), UI_fontstyle_draw_simple(), UI_fontstyle_set(), UI_GetThemeColor3ubv(), UI_UNIT_X, and UI_UNIT_Y.

Referenced by outliner_draw_iconrow_doit().

◆ outliner_draw_mode_column()

static void outliner_draw_mode_column ( uiBlock block,
TreeViewContext tvc,
SpaceOutliner space_outliner 
)
static

◆ outliner_draw_mode_column_toggle()

static void outliner_draw_mode_column_toggle ( uiBlock block,
TreeViewContext tvc,
TreeElement te,
const bool  lock_object_modes 
)
static

◆ outliner_draw_overrides_restrictbuts()

static void outliner_draw_overrides_restrictbuts ( Main bmain,
uiBlock block,
const ARegion region,
const SpaceOutliner space_outliner,
const ListBase lb,
const int  x 
)
static

◆ outliner_draw_overrides_rna_buts()

static void outliner_draw_overrides_rna_buts ( uiBlock block,
const ARegion region,
const SpaceOutliner space_outliner,
const ListBase lb,
const int  x 
)
static

◆ outliner_draw_restrictbuts()

static void outliner_draw_restrictbuts ( uiBlock block,
Scene scene,
ViewLayer view_layer,
ARegion region,
SpaceOutliner space_outliner,
ListBase lb,
RestrictPropertiesActive  props_active_parent 
)
static

Definition at line 1030 of file outliner_draw.cc.

References RestrictProperties::base_hide_viewport, RestrictPropertiesActive::base_hide_viewport, BKE_view_layer_base_find(), BLI_assert, bPoseChannel::bone, BONE_HIDDEN_A, RestrictProperties::bone_hide_viewport, BONE_UNSELECTABLE, RestrictProperties::collection_hide_render, RestrictPropertiesActive::collection_hide_render, RestrictProperties::collection_hide_select, RestrictPropertiesActive::collection_hide_select, RestrictProperties::collection_hide_viewport, RestrictPropertiesActive::collection_hide_viewport, RestrictProperties::constraint_enable, RestrictPropertiesActive::constraint_enable, View2D::cur, ELEM, bGPDlayer::flag, ViewLayer::flag, GP_LAYER_HIDE, GP_LAYER_LOCKED, bArmature::id, Object::id, TreeStoreElem::id, Scene::id, ID_OB, if(), RestrictProperties::initialized, RestrictProperties::layer_collection_exclude, RestrictProperties::layer_collection_hide_viewport, RestrictPropertiesActive::layer_collection_hide_viewport, RestrictProperties::layer_collection_holdout, RestrictPropertiesActive::layer_collection_holdout, RestrictProperties::layer_collection_indirect_only, RestrictPropertiesActive::layer_collection_indirect_only, LISTBASE_FOREACH, RestrictProperties::modifier_show_render, RestrictPropertiesActive::modifier_show_render, RestrictProperties::modifier_show_viewport, RestrictPropertiesActive::modifier_show_viewport, RestrictProperties::object_hide_render, RestrictPropertiesActive::object_hide_render, RestrictProperties::object_hide_select, RestrictPropertiesActive::object_hide_select, RestrictProperties::object_hide_viewport, RestrictPropertiesActive::object_hide_viewport, outliner__base_set_flag_recursive_fn(), outliner__object_set_flag_recursive_fn(), outliner_collection_from_tree_element(), outliner_is_collection_tree_element(), outliner_restrict_properties_collection_set(), outliner_right_columns_width(), SpaceOutliner::outlinevis, ptr, restrictbutton_bone_select_fn(), restrictbutton_bone_visibility_fn(), restrictbutton_ebone_select_fn(), restrictbutton_ebone_visibility_fn(), restrictbutton_gp_layer_flag_fn(), restrictbutton_r_lay_fn(), RNA_id_pointer_create(), RNA_pointer_create(), RNA_struct_type_find_property(), scene, scenes__collection_set_flag_recursive_fn(), select(), SpaceOutliner::show_restrict_flags, SO_RESTRICT_ENABLE, SO_RESTRICT_HIDE, SO_RESTRICT_HOLDOUT, SO_RESTRICT_INDIRECT_ONLY, SO_RESTRICT_RENDER, SO_RESTRICT_SELECT, SO_RESTRICT_VIEWPORT, SO_SCENES, SO_VIEW_LAYER, TE_CHILD_NOT_IN_COLLECTION, TIP_, TREESTORE, TSE_CONSTRAINT, TSE_EBONE, TSE_GP_LAYER, TSE_LAYER_COLLECTION, TSE_MODIFIER, TSE_POSE_CHANNEL, TSE_R_LAYER, TSE_SOME_ID, TSELEM_OPEN, TreeStoreElem::type, UI_BTYPE_ICON_TOGGLE, UI_BTYPE_ICON_TOGGLE_N, UI_BUT_DRAG_LOCK, UI_but_drawflag_enable(), UI_but_flag_enable(), UI_but_func_set(), UI_BUT_ICON_REVERSE, UI_BUT_INACTIVE, UI_UNIT_X, UI_UNIT_Y, uiDefIconButBitI(), uiDefIconButBitS(), uiDefIconButR_prop(), ARegion::v2d, V2D_SCROLL_WIDTH, view_layer__collection_set_flag_recursive_fn(), view_layer__layer_collection_set_flag_recursive_fn(), VIEW_LAYER_RENDER, rctf::xmax, rctf::ymax, and rctf::ymin.

Referenced by draw_outliner().

◆ outliner_draw_rnabuts()

static void outliner_draw_rnabuts ( uiBlock block,
ARegion region,
SpaceOutliner space_outliner,
int  sizex 
)
static

◆ outliner_draw_separator()

static void outliner_draw_separator ( ARegion region,
const int  x 
)
static

◆ outliner_draw_struct_marks()

static void outliner_draw_struct_marks ( ARegion region,
SpaceOutliner space_outliner,
ListBase lb,
int *  starty 
)
static

◆ outliner_draw_tree()

static void outliner_draw_tree ( bContext C,
uiBlock block,
const TreeViewContext tvc,
ARegion region,
SpaceOutliner space_outliner,
const float  right_column_width,
const bool  use_mode_column,
const bool  use_warning_column,
TreeElement **  te_edit 
)
static

◆ outliner_draw_tree_element()

static void outliner_draw_tree_element ( bContext C,
uiBlock block,
const uiFontStyle fstyle,
const TreeViewContext tvc,
ARegion region,
SpaceOutliner space_outliner,
TreeElement te,
bool  draw_grayed_out,
int  startx,
int *  starty,
const float  restrict_column_width,
TreeElement **  te_edit 
)
static

Definition at line 3257 of file outliner_draw.cc.

References blender::compositor::active, BASE_SELECTED, BKE_view_layer_base_find(), C, View2D::cur, TreeElement::directdata, ELEM, element_should_draw_faded(), ListBase::first, TreeElement::flag, TreeStoreElem::flag, blender::ed::outliner::TreeElementRNACommon::getPointerRNA(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, TreeStoreElem::id, ID_OB, ID_SCE, TreeElement::idcode, is_object_data_in_editmode(), LISTBASE_FOREACH, TreeElement::name, TreeViewContext::obact, OL_DRAWSEL_ACTIVE, OL_DRAWSEL_NONE, outliner_draw_active_indicator(), outliner_draw_iconrow(), outliner_icon_background_colors(), outliner_set_subtree_coords(), RNA_struct_is_ID(), TreeElement::subtree, TE_ACTIVE, TE_DRAGGING, TE_PRETEND_HAS_CHILDREN, TH_ACTIVE_OBJECT, TH_BACK, TH_EDITED_OBJECT, TH_SELECTED_OBJECT, TH_TEXT, tree_element_active_state_get(), tree_element_type_active_state_get(), TREESTORE, TSE_HIGHLIGHTED_ICON, TSE_ID_BASE, TSE_LAYER_COLLECTION, TSE_R_LAYER, TSE_RNA_ARRAY_ELEM, TSE_RNA_PROPERTY, TSE_SOME_ID, TSE_TEXTBUT, TSE_VIEW_COLLECTION_BASE, tselem_draw_icon(), TSELEM_OPEN, TreeStoreElem::type, PointerRNA::type, UI_fontstyle_draw_simple(), UI_fontstyle_string_width(), UI_GetThemeColor3ubv(), UI_GetThemeColor4fv(), UI_GetThemeColor4ubv(), UI_GetThemeColorBlend3ubv(), UI_icon_draw_alpha(), UI_icon_from_library(), UI_UNIT_X, UI_UNIT_Y, ARegion::v2d, TreeViewContext::view_layer, TreeElement::xend, rctf::xmax, TreeElement::xs, rctf::ymin, and TreeElement::ys.

Referenced by outliner_draw_tree().

◆ outliner_draw_userbuts()

static void outliner_draw_userbuts ( uiBlock block,
const ARegion region,
const SpaceOutliner space_outliner 
)
static

◆ outliner_draw_warning_column()

static void outliner_draw_warning_column ( uiBlock block,
const SpaceOutliner space_outliner,
const bool  use_mode_column 
)
static

◆ outliner_draw_warning_tree_element()

static void outliner_draw_warning_tree_element ( uiBlock block,
const SpaceOutliner space_outliner,
StringRefNull  warning_msg,
const bool  use_mode_column,
const int  te_ys 
)
static

◆ outliner_icon_background_colors()

static void outliner_icon_background_colors ( float  icon_color[4],
float  icon_border[4] 
)
static

◆ outliner_layer_or_collection_pointer_create()

static void outliner_layer_or_collection_pointer_create ( Scene scene,
LayerCollection layer_collection,
Collection collection,
PointerRNA ptr 
)
static

◆ outliner_mode_toggle_fn()

static void outliner_mode_toggle_fn ( bContext C,
void tselem_poin,
void UNUSEDarg2 
)
static

◆ outliner_object_set_flag_recursive_fn()

static void outliner_object_set_flag_recursive_fn ( bContext C,
Base base,
Object ob,
const char *  propname 
)
static

◆ outliner_restrict_properties_collection_set()

static bool outliner_restrict_properties_collection_set ( Scene scene,
TreeElement te,
PointerRNA collection_ptr,
PointerRNA layer_collection_ptr,
RestrictProperties props,
RestrictPropertiesActive props_active 
)
static

◆ outliner_restrict_properties_enable_collection_set()

static void outliner_restrict_properties_enable_collection_set ( PointerRNA collection_ptr,
RestrictProperties props,
RestrictPropertiesActive props_active 
)
static

◆ outliner_restrict_properties_enable_layer_collection_set()

static void outliner_restrict_properties_enable_layer_collection_set ( PointerRNA layer_collection_ptr,
PointerRNA collection_ptr,
RestrictProperties props,
RestrictPropertiesActive props_active 
)
static

◆ outliner_set_subtree_coords()

static void outliner_set_subtree_coords ( const TreeElement te)
static

◆ outliner_tree_dimensions()

void outliner_tree_dimensions ( SpaceOutliner space_outliner,
int *  r_width,
int *  r_height 
)

Definition at line 105 of file outliner_draw.cc.

References outliner_tree_dimensions_impl(), and SpaceOutliner::tree.

Referenced by draw_outliner(), and outliner_scroll_view().

◆ outliner_tree_dimensions_impl()

static void outliner_tree_dimensions_impl ( SpaceOutliner space_outliner,
ListBase lb,
int *  width,
int *  height 
)
static

Definition at line 84 of file outliner_draw.cc.

References height, LISTBASE_FOREACH, MAX2, TREESTORE, TSELEM_OPEN, UI_UNIT_Y, and width.

Referenced by outliner_tree_dimensions().

◆ outliner_update_viewable_area()

static void outliner_update_viewable_area ( ARegion region,
SpaceOutliner space_outliner,
int  tree_width,
int  tree_height,
float  right_column_width 
)
static

◆ outliner_width()

static int outliner_width ( SpaceOutliner space_outliner,
int  max_tree_width,
float  right_column_width 
)
static

◆ restrictbutton_bone_select_fn()

static void restrictbutton_bone_select_fn ( bContext C,
void UNUSEDpoin,
void poin2 
)
static

◆ restrictbutton_bone_visibility_fn()

static void restrictbutton_bone_visibility_fn ( bContext C,
void poin,
void UNUSEDpoin2 
)
static

◆ restrictbutton_ebone_select_fn()

static void restrictbutton_ebone_select_fn ( bContext C,
void poin,
void poin2 
)
static

◆ restrictbutton_ebone_visibility_fn()

static void restrictbutton_ebone_visibility_fn ( bContext C,
void poin,
void poin2 
)
static

◆ restrictbutton_gp_layer_flag_fn()

static void restrictbutton_gp_layer_flag_fn ( bContext C,
void poin,
void UNUSEDpoin2 
)
static

◆ restrictbutton_id_user_toggle()

static void restrictbutton_id_user_toggle ( bContext UNUSEDC,
void poin,
void UNUSEDpoin2 
)
static

Definition at line 238 of file outliner_draw.cc.

References BLI_assert, ID::flag, id, id_us_min(), id_us_plus(), and LIB_FAKEUSER.

Referenced by outliner_draw_userbuts().

◆ restrictbutton_r_lay_fn()

static void restrictbutton_r_lay_fn ( bContext C,
void poin,
void UNUSEDpoin2 
)
static

Definition at line 170 of file outliner_draw.cc.

References C, NC_SCENE, ND_RENDER_OPTIONS, and WM_event_add_notifier().

Referenced by outliner_draw_restrictbuts().

◆ restrictbutton_recursive_bone()

static void restrictbutton_recursive_bone ( Bone bone_parent,
int  flag,
bool  set_flag 
)
static

◆ restrictbutton_recursive_ebone()

static void restrictbutton_recursive_ebone ( bArmature arm,
EditBone ebone_parent,
int  flag,
bool  set_flag 
)
static

◆ scenes__collection_set_flag_recursive_fn()

static void scenes__collection_set_flag_recursive_fn ( bContext C,
void poin,
void poin2 
)
static

Collection properties called from the Scenes mode. Change the collection children but no objects.

Definition at line 662 of file outliner_draw.cc.

References C, and outliner_collection_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ subtree_contains_object()

static bool subtree_contains_object ( ListBase lb)
static

◆ tree_element_get_icon()

TreeElementIcon tree_element_get_icon ( TreeStoreElem tselem,
TreeElement te 
)

Definition at line 2496 of file outliner_draw.cc.

References TreeElement::abstract_element, BKE_modifier_get_info(), BLI_findlink(), COLLECTION_IS_MASTER, CONSTRAINT_TYPE_ACTION, CONSTRAINT_TYPE_ARMATURE, CONSTRAINT_TYPE_CAMERASOLVER, CONSTRAINT_TYPE_CHILDOF, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_DAMPTRACK, CONSTRAINT_TYPE_DISTLIMIT, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_LOCKTRACK, CONSTRAINT_TYPE_LOCLIKE, CONSTRAINT_TYPE_LOCLIMIT, CONSTRAINT_TYPE_MINMAX, CONSTRAINT_TYPE_OBJECTSOLVER, CONSTRAINT_TYPE_PIVOT, CONSTRAINT_TYPE_ROTLIKE, CONSTRAINT_TYPE_ROTLIMIT, CONSTRAINT_TYPE_SAMEVOL, CONSTRAINT_TYPE_SHRINKWRAP, CONSTRAINT_TYPE_SIZELIKE, CONSTRAINT_TYPE_SIZELIMIT, CONSTRAINT_TYPE_SPLINEIK, CONSTRAINT_TYPE_STRETCHTO, CONSTRAINT_TYPE_TRACKTO, CONSTRAINT_TYPE_TRANSFORM, CONSTRAINT_TYPE_TRANSFORM_CACHE, CONSTRAINT_TYPE_TRANSLIKE, data, PointerRNA::data, TreeElement::directdata, eGpencilModifierType_Armature, eGpencilModifierType_Array, eGpencilModifierType_Build, eGpencilModifierType_Color, eGpencilModifierType_Hook, eGpencilModifierType_Lattice, eGpencilModifierType_Mirror, eGpencilModifierType_Multiply, eGpencilModifierType_Noise, eGpencilModifierType_Offset, eGpencilModifierType_Opacity, eGpencilModifierType_Shrinkwrap, eGpencilModifierType_Simplify, eGpencilModifierType_Smooth, eGpencilModifierType_Subdiv, eGpencilModifierType_Texture, eGpencilModifierType_Thick, eGpencilModifierType_Time, eGpencilModifierType_Tint, eGpencilModifierType_WeightAngle, eGpencilModifierType_WeightProximity, Collection::flag, blender::ed::outliner::TreeElementRNACommon::getPointerRNA(), Object::greasepencil_modifiers, ModifierTypeInfo::icon, blender::ed::outliner::TreeElementOverridesBase::id, TreeStoreElem::id, TreeElement::idcode, if(), Object::modifiers, TreeStoreElem::nr, OB_GPENCIL, outliner_collection_from_tree_element(), TreeElement::parent, ptr, RNA_struct_is_ID(), RNA_struct_ui_icon(), SEQ_TYPE_ADD, SEQ_TYPE_ADJUSTMENT, SEQ_TYPE_ALPHAOVER, SEQ_TYPE_ALPHAUNDER, SEQ_TYPE_COLOR, SEQ_TYPE_COLORMIX, SEQ_TYPE_CROSS, SEQ_TYPE_GAMCROSS, SEQ_TYPE_GAUSSIAN_BLUR, SEQ_TYPE_GLOW, SEQ_TYPE_IMAGE, SEQ_TYPE_MASK, SEQ_TYPE_META, SEQ_TYPE_MOVIE, SEQ_TYPE_MOVIECLIP, SEQ_TYPE_MUL, SEQ_TYPE_MULTICAM, SEQ_TYPE_OVERDROP, SEQ_TYPE_SCENE, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SPEED, SEQ_TYPE_SUB, SEQ_TYPE_TEXT, SEQ_TYPE_TRANSFORM, SEQ_TYPE_WIPE, tree_element_get_icon_from_id(), TREESTORE, TSE_ANIM_DATA, TSE_BONE, TSE_CONSTRAINT, TSE_CONSTRAINT_BASE, TSE_DEFGROUP, TSE_DEFGROUP_BASE, TSE_DRIVER_BASE, TSE_EBONE, TSE_GP_LAYER, TSE_GPENCIL_EFFECT, TSE_GPENCIL_EFFECT_BASE, TSE_LAYER_COLLECTION, TSE_LIBRARY_OVERRIDE, TSE_LIBRARY_OVERRIDE_BASE, TSE_LINKED_OB, TSE_LINKED_PSYS, TSE_MODIFIER, TSE_MODIFIER_BASE, TSE_NLA, TSE_NLA_ACTION, TSE_NLA_TRACK, TSE_POSE_BASE, TSE_POSE_CHANNEL, TSE_POSEGRP, TSE_POSEGRP_BASE, TSE_R_LAYER, TSE_R_LAYER_BASE, TSE_RNA_STRUCT, TSE_SCENE_COLLECTION_BASE, TSE_SCENE_OBJECTS_BASE, TSE_SEQ_STRIP, TSE_SEQUENCE, TSE_SEQUENCE_DUP, TSE_SOME_ID, TSE_VIEW_COLLECTION_BASE, bConstraint::type, GpencilModifierData::type, ModifierData::type, Object::type, TreeStoreElem::type, and PointerRNA::type.

Referenced by merged_element_search_fn_recursive(), outliner_item_drag_drop_invoke(), and tselem_draw_icon().

◆ tree_element_get_icon_from_id()

static BIFIconID tree_element_get_icon_from_id ( const ID id)
static

◆ tree_element_id_type_to_index()

int tree_element_id_type_to_index ( TreeElement te)

Return the index to use based on the TreeElement ID and object type

We use a continuum of indices until we get to the object data-blocks and we then make room for the object types.

Definition at line 3069 of file outliner_draw.cc.

References BKE_idtype_idcode_to_index(), TreeStoreElem::id, TreeElement::idcode, INDEX_ID_GR, INDEX_ID_OB, OB_TYPE_MAX, TREESTORE, TSE_SOME_ID, Object::type, and TreeStoreElem::type.

Referenced by merged_element_search_fn_recursive(), merged_element_search_update_fn(), and outliner_draw_iconrow().

◆ tselem_draw_icon()

static bool tselem_draw_icon ( uiBlock block,
int  xmax,
float  x,
float  y,
TreeStoreElem tselem,
TreeElement te,
float  alpha,
const bool  is_clickable 
)
static

◆ view_layer__collection_set_flag_recursive_fn()

static void view_layer__collection_set_flag_recursive_fn ( bContext C,
void poin,
void poin2 
)
static

Collection properties called from the ViewLayer mode. Change the (non-excluded) collection children, and the objects nested to them all.

Definition at line 650 of file outliner_draw.cc.

References C, LayerCollection::collection, and outliner_collection_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().

◆ view_layer__layer_collection_set_flag_recursive_fn()

static void view_layer__layer_collection_set_flag_recursive_fn ( bContext C,
void poin,
void poin2 
)
static

Layer collection properties called from the ViewLayer mode. Change the (non-excluded) collection children, and the objects nested to them all.

Definition at line 637 of file outliner_draw.cc.

References C, and outliner_collection_set_flag_recursive_fn().

Referenced by outliner_draw_restrictbuts().