Blender V5.0
blender::ed::outliner::AbstractTreeElement Class Reference

#include <tree_element.hh>

Inherited by blender::ed::outliner::TreeElementActionSlot, 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::TreeElementStrip, blender::ed::outliner::TreeElementStripData, blender::ed::outliner::TreeElementStripDuplicate, 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.

References legacy_te_.

Referenced by tree_element_expand, blender::ed::outliner::TreeElementActionSlot::TreeElementActionSlot(), blender::ed::outliner::TreeElementAnimData::TreeElementAnimData(), blender::ed::outliner::TreeElementBone::TreeElementBone(), blender::ed::outliner::TreeElementBoneCollection::TreeElementBoneCollection(), blender::ed::outliner::TreeElementBoneCollectionBase::TreeElementBoneCollectionBase(), blender::ed::outliner::TreeElementCollectionBase::TreeElementCollectionBase(), blender::ed::outliner::TreeElementConstraint::TreeElementConstraint(), blender::ed::outliner::TreeElementConstraintBase::TreeElementConstraintBase(), blender::ed::outliner::TreeElementDeformGroup::TreeElementDeformGroup(), blender::ed::outliner::TreeElementDeformGroupBase::TreeElementDeformGroupBase(), blender::ed::outliner::TreeElementDriverBase::TreeElementDriverBase(), blender::ed::outliner::TreeElementEditBone::TreeElementEditBone(), blender::ed::outliner::TreeElementGPencilEffect::TreeElementGPencilEffect(), blender::ed::outliner::TreeElementGPencilEffectBase::TreeElementGPencilEffectBase(), blender::ed::outliner::TreeElementGPencilLayer::TreeElementGPencilLayer(), blender::ed::outliner::TreeElementGreasePencilNode::TreeElementGreasePencilNode(), blender::ed::outliner::TreeElementID::TreeElementID(), blender::ed::outliner::TreeElementLabel::TreeElementLabel(), blender::ed::outliner::TreeElementLayerCollection::TreeElementLayerCollection(), blender::ed::outliner::TreeElementLinkedNodeTree::TreeElementLinkedNodeTree(), blender::ed::outliner::TreeElementLinkedObject::TreeElementLinkedObject(), blender::ed::outliner::TreeElementModifier::TreeElementModifier(), blender::ed::outliner::TreeElementModifierBase::TreeElementModifierBase(), blender::ed::outliner::TreeElementNLA::TreeElementNLA(), blender::ed::outliner::TreeElementNLAAction::TreeElementNLAAction(), blender::ed::outliner::TreeElementNLATrack::TreeElementNLATrack(), blender::ed::outliner::TreeElementOverridesBase::TreeElementOverridesBase(), blender::ed::outliner::TreeElementOverridesProperty::TreeElementOverridesProperty(), blender::ed::outliner::TreeElementParticleSystem::TreeElementParticleSystem(), blender::ed::outliner::TreeElementPoseBase::TreeElementPoseBase(), blender::ed::outliner::TreeElementPoseChannel::TreeElementPoseChannel(), blender::ed::outliner::TreeElementRNACommon::TreeElementRNACommon(), blender::ed::outliner::TreeElementSceneObjectsBase::TreeElementSceneObjectsBase(), blender::ed::outliner::TreeElementStrip::TreeElementStrip(), blender::ed::outliner::TreeElementStripData::TreeElementStripData(), blender::ed::outliner::TreeElementStripDuplicate::TreeElementStripDuplicate(), blender::ed::outliner::TreeElementViewCollectionBase::TreeElementViewCollectionBase(), blender::ed::outliner::TreeElementViewLayer::TreeElementViewLayer(), and blender::ed::outliner::TreeElementViewLayerBase::TreeElementViewLayerBase().

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::TreeElementIDAction, 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::TreeElementStrip, and blender::ed::outliner::TreeElementViewLayerBase.

Definition at line 108 of file tree_element.hh.

Referenced by add_element(), and tree_element_expand.

◆ 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::TreeElementStrip.

Definition at line 55 of file tree_element.hh.

Referenced by tree_element_expand.

◆ 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 220 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 215 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 225 of file tree_element.cc.

References legacy_te_.

◆ 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 236 of file tree_element.cc.

References TREESTORE, and TSE_CLOSED.

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

◆ AbstractTreeDisplay

friend class AbstractTreeDisplay
friend

Definition at line 42 of file tree_element.hh.

References AbstractTreeDisplay.

Referenced by AbstractTreeDisplay.

◆ tree_element_expand

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

Definition at line 261 of file tree_element.cc.

References AbstractTreeElement(), expand(), and expand_poll().

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 AbstractTreeElement(), 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::TreeElementIDAction::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::TreeElementStrip::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::TreeElementIDMesh::TreeElementIDMesh(), blender::ed::outliner::TreeElementLabel::TreeElementLabel(), blender::ed::outliner::TreeElementRNAArrayElement::TreeElementRNAArrayElement(), blender::ed::outliner::TreeElementRNACommon::TreeElementRNACommon(), blender::ed::outliner::TreeElementRNAProperty::TreeElementRNAProperty(), blender::ed::outliner::TreeElementRNAStruct::TreeElementRNAStruct(), blender::ed::outliner::TreeElementStripData::TreeElementStripData(), blender::ed::outliner::TreeElementStripDuplicate::TreeElementStripDuplicate(), and blender::ed::outliner::TreeElementViewLayerBase::TreeElementViewLayerBase().


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