Blender V4.3
blender::ed::outliner::AbstractTreeElement Class Reference

#include <tree_element.hh>

Inherited by blender::ed::outliner::TreeElementAnimData, blender::ed::outliner::TreeElementBone, blender::ed::outliner::TreeElementBoneCollection, blender::ed::outliner::TreeElementBoneCollectionBase, blender::ed::outliner::TreeElementCollectionBase, blender::ed::outliner::TreeElementConstraint, blender::ed::outliner::TreeElementConstraintBase, blender::ed::outliner::TreeElementDeformGroup, blender::ed::outliner::TreeElementDeformGroupBase, blender::ed::outliner::TreeElementDriverBase, blender::ed::outliner::TreeElementEditBone, blender::ed::outliner::TreeElementGPencilEffect, blender::ed::outliner::TreeElementGPencilEffectBase, blender::ed::outliner::TreeElementGPencilLayer, blender::ed::outliner::TreeElementGreasePencilNode, blender::ed::outliner::TreeElementID, blender::ed::outliner::TreeElementLabel, blender::ed::outliner::TreeElementLayerCollection, blender::ed::outliner::TreeElementLinkedNodeTree, blender::ed::outliner::TreeElementLinkedObject, blender::ed::outliner::TreeElementModifier, blender::ed::outliner::TreeElementModifierBase, blender::ed::outliner::TreeElementNLA, blender::ed::outliner::TreeElementNLAAction, blender::ed::outliner::TreeElementNLATrack, blender::ed::outliner::TreeElementOverridesBase, blender::ed::outliner::TreeElementOverridesProperty, blender::ed::outliner::TreeElementParticleSystem, blender::ed::outliner::TreeElementPoseBase, blender::ed::outliner::TreeElementPoseChannel, blender::ed::outliner::TreeElementRNACommon, blender::ed::outliner::TreeElementSceneObjectsBase, blender::ed::outliner::TreeElementSequence, blender::ed::outliner::TreeElementSequenceStrip, blender::ed::outliner::TreeElementSequenceStripDuplicate, blender::ed::outliner::TreeElementViewCollectionBase, blender::ed::outliner::TreeElementViewLayer, and blender::ed::outliner::TreeElementViewLayerBase.

Public Member Functions

virtual ~AbstractTreeElement ()=default
 
virtual bool expand_poll (const SpaceOutliner &) const
 
TreeElementget_legacy_element ()
 
virtual StringRefNull get_warning () const
 
virtual std::optional< BIFIconIDget_icon () const
 
void print_path ()
 

Static Public Member Functions

static std::unique_ptr< AbstractTreeElementcreate_from_type (int type, TreeElement &legacy_te, ID *owner_id, void *create_data)
 
static void uncollapse_by_default (TreeElement *legacy_te)
 

Protected Member Functions

 AbstractTreeElement (TreeElement &legacy_te)
 
virtual void expand (SpaceOutliner &) const
 
TreeElementadd_element (ListBase *lb, ID *owner_id, void *create_data, TreeElement *parent, short type, short index, const bool expand=true) const
 

Protected Attributes

TreeElementlegacy_te_
 
AbstractTreeDisplaydisplay_
 

Friends

class AbstractTreeDisplay
 
void tree_element_expand (const AbstractTreeElement &tree_element, SpaceOutliner &space_outliner)
 

Detailed Description

Definition at line 29 of file tree_element.hh.

Constructor & Destructor Documentation

◆ ~AbstractTreeElement()

virtual blender::ed::outliner::AbstractTreeElement::~AbstractTreeElement ( )
virtualdefault

◆ AbstractTreeElement()

blender::ed::outliner::AbstractTreeElement::AbstractTreeElement ( TreeElement & legacy_te)
inlineprotected

Definition at line 103 of file tree_element.hh.

Member Function Documentation

◆ add_element()

TreeElement * blender::ed::outliner::AbstractTreeElement::add_element ( ListBase * lb,
ID * owner_id,
void * create_data,
TreeElement * parent,
short type,
short index,
const bool expand = true ) const
protected

◆ create_from_type()

◆ expand()

virtual void blender::ed::outliner::AbstractTreeElement::expand ( SpaceOutliner & ) const
inlineprotectedvirtual

Let the type add its own children.

Reimplemented in blender::ed::outliner::TreeElementAnimData, blender::ed::outliner::TreeElementBoneCollection, blender::ed::outliner::TreeElementBoneCollectionBase, blender::ed::outliner::TreeElementCollectionBase, blender::ed::outliner::TreeElementDeformGroupBase, blender::ed::outliner::TreeElementDriverBase, blender::ed::outliner::TreeElementGPencilEffect, blender::ed::outliner::TreeElementGPencilEffectBase, blender::ed::outliner::TreeElementGreasePencilNode, blender::ed::outliner::TreeElementID, blender::ed::outliner::TreeElementIDArmature, blender::ed::outliner::TreeElementIDCollection, blender::ed::outliner::TreeElementIDCurve, blender::ed::outliner::TreeElementIDGPLegacy, blender::ed::outliner::TreeElementIDGreasePencil, blender::ed::outliner::TreeElementIDLineStyle, blender::ed::outliner::TreeElementIDMesh, blender::ed::outliner::TreeElementIDMetaBall, blender::ed::outliner::TreeElementIDObject, blender::ed::outliner::TreeElementIDScene, blender::ed::outliner::TreeElementIDTexture, blender::ed::outliner::TreeElementModifier, blender::ed::outliner::TreeElementModifierBase, blender::ed::outliner::TreeElementNLA, blender::ed::outliner::TreeElementNLATrack, blender::ed::outliner::TreeElementOverridesBase, blender::ed::outliner::TreeElementPoseBase, blender::ed::outliner::TreeElementRNAProperty, blender::ed::outliner::TreeElementRNAStruct, blender::ed::outliner::TreeElementSceneObjectsBase, blender::ed::outliner::TreeElementSequence, and blender::ed::outliner::TreeElementViewLayerBase.

Definition at line 108 of file tree_element.hh.

Referenced by add_element().

◆ expand_poll()

virtual bool blender::ed::outliner::AbstractTreeElement::expand_poll ( const SpaceOutliner & ) const
inlinevirtual

Check if the type is expandable in current context.

Reimplemented in blender::ed::outliner::TreeElementID, blender::ed::outliner::TreeElementRNACommon, and blender::ed::outliner::TreeElementSequence.

Definition at line 55 of file tree_element.hh.

◆ get_icon()

std::optional< BIFIconID > blender::ed::outliner::AbstractTreeElement::get_icon ( ) const
virtual

Define the icon to be displayed for this element. If this returns an icon, this will be displayed. Otherwise, tree_element_get_icon() may still determine an icon. By default no value is returned (#std::nullopt).

All elements should be ported to use this over tree_element_get_icon().

Reimplemented in blender::ed::outliner::TreeElementLabel, and blender::ed::outliner::TreeElementOverridesPropertyOperation.

Definition at line 217 of file tree_element.cc.

◆ get_legacy_element()

TreeElement & blender::ed::outliner::AbstractTreeElement::get_legacy_element ( )
inline

Definition at line 60 of file tree_element.hh.

References legacy_te_.

◆ get_warning()

StringRefNull blender::ed::outliner::AbstractTreeElement::get_warning ( ) const
virtual

By letting this return a warning message, the tree element will display a warning icon with the message in the tooltip.

Reimplemented in blender::ed::outliner::TreeElementIDLibrary, blender::ed::outliner::TreeElementOverridesBase, and blender::ed::outliner::TreeElementOverridesProperty.

Definition at line 212 of file tree_element.cc.

Referenced by blender::ed::outliner::outliner_draw_get_warning_tree_element(), and blender::ed::outliner::outliner_draw_get_warning_tree_element_subtree().

◆ print_path()

void blender::ed::outliner::AbstractTreeElement::print_path ( )

Debugging helper: Print effective path of this tree element, constructed out of the TreeElement.name of each element. E.g.:

  • Lorem
    • ipsum dolor sit
      • amet will print: Lorem/ipsum dolor sit/amet.

Definition at line 222 of file tree_element.cc.

References legacy_te_, blender::ed::outliner::TreeElement::name, and blender::ed::outliner::TreeElement::parent.

◆ uncollapse_by_default()

void blender::ed::outliner::AbstractTreeElement::uncollapse_by_default ( TreeElement * legacy_te)
static

Expand this tree element if it is displayed for the first time (as identified by its tree-store element).

Static for now to allow doing this from the legacy tree element.

Definition at line 233 of file tree_element.cc.

References TREESTORE.

Referenced by blender::ed::outliner::TreeDisplayOverrideLibraryHierarchies::build_tree().

Friends And Related Symbol Documentation

◆ AbstractTreeDisplay

friend class AbstractTreeDisplay
friend

Definition at line 42 of file tree_element.hh.

◆ tree_element_expand

void tree_element_expand ( const AbstractTreeElement & tree_element,
SpaceOutliner & space_outliner )
friend

Definition at line 258 of file tree_element.cc.

Member Data Documentation

◆ display_

AbstractTreeDisplay* blender::ed::outliner::AbstractTreeElement::display_
protected

Reference back to the tree display used for building this tree.

Definition at line 40 of file tree_element.hh.

Referenced by add_element().

◆ legacy_te_

TreeElement& blender::ed::outliner::AbstractTreeElement::legacy_te_
protected

Reference back to the owning legacy TreeElement. Most concrete types need access to this, so storing here. Eventually the type should be replaced by AbstractTreeElement and derived types.

Definition at line 36 of file tree_element.hh.

Referenced by blender::ed::outliner::TreeElementAnimData::expand(), blender::ed::outliner::TreeElementBoneCollection::expand(), blender::ed::outliner::TreeElementBoneCollectionBase::expand(), blender::ed::outliner::TreeElementCollectionBase::expand(), blender::ed::outliner::TreeElementDeformGroupBase::expand(), blender::ed::outliner::TreeElementDriverBase::expand(), blender::ed::outliner::TreeElementGPencilEffect::expand(), blender::ed::outliner::TreeElementGPencilEffectBase::expand(), blender::ed::outliner::TreeElementGreasePencilNode::expand(), blender::ed::outliner::TreeElementIDArmature::expand(), blender::ed::outliner::TreeElementIDCollection::expand(), blender::ed::outliner::TreeElementIDObject::expand(), blender::ed::outliner::TreeElementModifier::expand(), blender::ed::outliner::TreeElementModifierBase::expand(), blender::ed::outliner::TreeElementNLA::expand(), blender::ed::outliner::TreeElementNLATrack::expand(), blender::ed::outliner::TreeElementOverridesBase::expand(), blender::ed::outliner::TreeElementPoseBase::expand(), blender::ed::outliner::TreeElementRNAProperty::expand(), blender::ed::outliner::TreeElementRNAStruct::expand(), blender::ed::outliner::TreeElementSceneObjectsBase::expand(), blender::ed::outliner::TreeElementSequence::expand(), blender::ed::outliner::TreeElementViewLayerBase::expand(), blender::ed::outliner::TreeElementID::expand_animation_data(), blender::ed::outliner::TreeElementID::expand_poll(), get_legacy_element(), blender::ed::outliner::TreeElementRNAArrayElement::get_property_rna(), print_path(), blender::ed::outliner::TreeElementID::TreeElementID(), blender::ed::outliner::TreeElementLabel::TreeElementLabel(), blender::ed::outliner::TreeElementRNAArrayElement::TreeElementRNAArrayElement(), blender::ed::outliner::TreeElementRNAProperty::TreeElementRNAProperty(), blender::ed::outliner::TreeElementRNAStruct::TreeElementRNAStruct(), blender::ed::outliner::TreeElementSequenceStrip::TreeElementSequenceStrip(), blender::ed::outliner::TreeElementSequenceStripDuplicate::TreeElementSequenceStripDuplicate(), and blender::ed::outliner::TreeElementViewLayerBase::TreeElementViewLayerBase().


The documentation for this class was generated from the following files: