|
Blender V5.0
|
#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 |
| TreeElement & | get_legacy_element () |
| virtual StringRefNull | get_warning () const |
| virtual std::optional< BIFIconID > | get_icon () const |
| void | print_path () |
Static Public Member Functions | |
| static std::unique_ptr< AbstractTreeElement > | create_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 |
| TreeElement * | add_element (ListBase *lb, ID *owner_id, void *create_data, TreeElement *parent, short type, short index, const bool expand=true) const |
Protected Attributes | |
| TreeElement & | legacy_te_ |
| AbstractTreeDisplay * | display_ |
Friends | |
| class | AbstractTreeDisplay |
| void | tree_element_expand (const AbstractTreeElement &tree_element, SpaceOutliner &space_outliner) |
Definition at line 29 of file tree_element.hh.
|
virtualdefault |
|
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().
|
protected |
See #AbstractTreeDisplay::add_element() (which this forwards to).
Definition at line 243 of file tree_element.cc.
References BLI_assert_msg, display_, and expand().
Referenced by blender::ed::outliner::TreeElementAnimData::expand(), blender::ed::outliner::TreeElementBoneCollection::expand(), blender::ed::outliner::TreeElementBoneCollectionBase::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::TreeElementModifier::expand(), blender::ed::outliner::TreeElementModifierBase::expand(), blender::ed::outliner::TreeElementNLA::expand(), blender::ed::outliner::TreeElementNLATrack::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(), and blender::ed::outliner::TreeElementID::expand_animation_data().
|
static |
Definition at line 52 of file tree_element.cc.
References blender::ed::outliner::TreeElementID::create_from_id(), blender::ed::outliner::TreeElement::index, TSE_ACTION_SLOT, TSE_ANIM_DATA, TSE_BONE, TSE_BONE_COLLECTION, TSE_BONE_COLLECTION_BASE, TSE_CONSTRAINT, TSE_CONSTRAINT_BASE, TSE_DEFGROUP, TSE_DEFGROUP_BASE, TSE_DRIVER_BASE, TSE_EBONE, TSE_GENERIC_LABEL, TSE_GP_LAYER, TSE_GPENCIL_EFFECT, TSE_GPENCIL_EFFECT_BASE, TSE_GREASE_PENCIL_NODE, TSE_LAYER_COLLECTION, TSE_LIBRARY_OVERRIDE, TSE_LIBRARY_OVERRIDE_BASE, TSE_LIBRARY_OVERRIDE_OPERATION, TSE_LINKED_NODE_TREE, 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_R_LAYER, TSE_R_LAYER_BASE, TSE_RNA_ARRAY_ELEM, TSE_RNA_PROPERTY, TSE_RNA_STRUCT, TSE_SCENE_COLLECTION_BASE, TSE_SCENE_OBJECTS_BASE, TSE_SOME_ID, TSE_STRIP, TSE_STRIP_DATA, TSE_STRIP_DUP, and TSE_VIEW_COLLECTION_BASE.
Referenced by blender::ed::outliner::AbstractTreeDisplay::add_element().
|
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.
|
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.
|
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.
|
inline |
Definition at line 60 of file tree_element.hh.
References legacy_te_.
|
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().
| 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.:
Definition at line 225 of file tree_element.cc.
References 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().
|
friend |
Definition at line 42 of file tree_element.hh.
References AbstractTreeDisplay.
Referenced by AbstractTreeDisplay.
|
friend |
Definition at line 261 of file tree_element.cc.
References AbstractTreeElement(), expand(), and expand_poll().
|
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().
|
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().