Blender V4.3
tree_display.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include "DNA_listBase.h"
10#include "DNA_space_types.h"
11
12#include "BLI_utildefines.h"
13
14#include "tree_display.hh"
15
16using namespace blender::ed::outliner;
17
18namespace blender::ed::outliner {
19
20std::unique_ptr<AbstractTreeDisplay> AbstractTreeDisplay::create_from_display_mode(
21 int /*eSpaceOutliner_Mode*/ mode, SpaceOutliner &space_outliner)
22{
23 switch ((eSpaceOutliner_Mode)mode) {
24 case SO_SCENES:
25 return std::make_unique<TreeDisplayScenes>(space_outliner);
26 case SO_LIBRARIES:
27 return std::make_unique<TreeDisplayLibraries>(space_outliner);
28 case SO_SEQUENCE:
29 return std::make_unique<TreeDisplaySequencer>(space_outliner);
30 case SO_DATA_API:
31 return std::make_unique<TreeDisplayDataAPI>(space_outliner);
32 case SO_ID_ORPHANS:
33 return std::make_unique<TreeDisplayIDOrphans>(space_outliner);
37 return std::make_unique<TreeDisplayOverrideLibraryProperties>(space_outliner);
39 return std::make_unique<TreeDisplayOverrideLibraryHierarchies>(space_outliner);
40 }
41 break;
42 case SO_VIEW_LAYER:
43 return std::make_unique<TreeDisplayViewLayer>(space_outliner);
44 }
45
47 return nullptr;
48}
49
51{
52 return false;
53}
54
56{
57 return false;
58}
59
60} // namespace blender::ed::outliner
#define BLI_assert_unreachable()
Definition BLI_assert.h:97
These structs are the foundation for all linked lists in the library system.
eSpaceOutliner_LibOverrideViewMode
@ SO_LIB_OVERRIDE_VIEW_HIERARCHIES
@ SO_LIB_OVERRIDE_VIEW_PROPERTIES
eSpaceOutliner_Mode
@ SO_OVERRIDES_LIBRARY
@ SO_SEQUENCE
@ SO_DATA_API
@ SO_LIBRARIES
@ SO_VIEW_LAYER
@ SO_SCENES
@ SO_ID_ORPHANS
static std::unique_ptr< AbstractTreeDisplay > create_from_display_mode(int mode, SpaceOutliner &space_outliner)
short lib_override_view_mode
Establish and manage Outliner trees for different display modes.