#pragma once #include "../Base.h" #include "cru/base/String.h" #include namespace cru::ui::document { class CRU_UI_API DocumentElementType : public Object { public: explicit DocumentElementType(String name, std::vector parents); ~DocumentElementType() override; public: String GetName() const { return name_; } const std::vector& GetParents() const { return parents_; } private: String name_; std::vector parents_; }; struct CRU_UI_API DocumentElementTypes { static DocumentElementType* const kBaseElementType; static DocumentElementType* const kRootElementType; static DocumentElementType* const kTextElementType; }; } // namespace cru::ui::document