4#ifndef FTXUI_COMPONENT_BASE_HPP
5#define FTXUI_COMPONENT_BASE_HPP
25using Component = std::shared_ptr<ComponentBase>;
30class FTXUI_EXPORT(COMPONENT) ComponentBase {
33 virtual ~ComponentBase();
37 ComponentBase(
const ComponentBase&) =
delete;
38 ComponentBase(ComponentBase&&) =
delete;
39 ComponentBase& operator=(
const ComponentBase&) =
delete;
40 ComponentBase& operator=(ComponentBase&&) =
delete;
43 ComponentBase* Parent()
const;
45 size_t ChildCount()
const;
49 void DetachAllChildren();
61 virtual bool OnEvent(Event);
64 virtual void OnAnimation(animation::Params& params);
76 virtual bool Focusable()
const;
84 virtual void SetActiveChild(ComponentBase* child);
91 virtual void Reserved1();
92 virtual void Reserved2();
93 virtual void Reserved3();
94 virtual void Reserved4();
95 virtual void Reserved5();
96 virtual void Reserved6();
97 virtual void Reserved7();
98 virtual void Reserved8();
108 std::unique_ptr<Impl> impl_;
FTXUI 的 ftxui::animation:: 命名空間
std::unique_ptr< CapturedMouseInterface > CapturedMouse
std::shared_ptr< Node > Element
std::vector< Component > Components
std::shared_ptr< ComponentBase > Component