Blender  V3.3
tree_element_rna.hh
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #pragma once
8 
9 #include <limits>
10 
11 #include "RNA_types.h"
12 
13 #include "tree_element.hh"
14 
15 struct PointerRNA;
16 
17 namespace blender::ed::outliner {
18 
23  protected:
24  constexpr static int max_index = std::numeric_limits<short>::max();
26 
27  public:
28  TreeElementRNACommon(TreeElement &legacy_te, PointerRNA &rna_ptr);
29  bool isExpandValid() const override;
30  bool expandPoll(const SpaceOutliner &) const override;
31 
32  const PointerRNA &getPointerRNA() const;
37  virtual PropertyRNA *getPropertyRNA() const;
38 
39  bool isRNAValid() const;
40 };
41 
42 /* -------------------------------------------------------------------- */
43 
45  public:
46  TreeElementRNAStruct(TreeElement &legacy_te, PointerRNA &rna_ptr);
47  void expand(SpaceOutliner &space_outliner) const override;
48 };
49 
50 /* -------------------------------------------------------------------- */
51 
53  private:
54  PropertyRNA *rna_prop_ = nullptr;
55 
56  public:
57  TreeElementRNAProperty(TreeElement &legacy_te, PointerRNA &rna_ptr, int index);
58  void expand(SpaceOutliner &space_outliner) const override;
59 
60  PropertyRNA *getPropertyRNA() const override;
61 };
62 
63 /* -------------------------------------------------------------------- */
64 
66  public:
67  TreeElementRNAArrayElement(TreeElement &legacy_te, PointerRNA &rna_ptr, int index);
68 
69  PropertyRNA *getPropertyRNA() const override;
70 };
71 
72 } // namespace blender::ed::outliner
TreeElementRNAArrayElement(TreeElement &legacy_te, PointerRNA &rna_ptr, int index)
bool expandPoll(const SpaceOutliner &) const override
TreeElementRNACommon(TreeElement &legacy_te, PointerRNA &rna_ptr)
virtual PropertyRNA * getPropertyRNA() const
void expand(SpaceOutliner &space_outliner) const override
TreeElementRNAProperty(TreeElement &legacy_te, PointerRNA &rna_ptr, int index)
PropertyRNA * getPropertyRNA() const override
TreeElementRNAStruct(TreeElement &legacy_te, PointerRNA &rna_ptr)
void expand(SpaceOutliner &space_outliner) const override
float max