4#ifndef FTXUI_COMPONENT_BASE_HPP
5#define FTXUI_COMPONENT_BASE_HPP
25using Component = std::shared_ptr<ComponentBase>;
31class FTXUI_EXPORT(COMPONENT) ComponentBase {
34 virtual ~ComponentBase();
38 ComponentBase(
const ComponentBase&) =
delete;
39 ComponentBase(ComponentBase&&) =
delete;
40 ComponentBase& operator=(
const ComponentBase&) =
delete;
41 ComponentBase& operator=(ComponentBase&&) =
delete;
44 ComponentBase* Parent()
const;
46 size_t ChildCount()
const;
50 void DetachAllChildren();
62 virtual bool OnEvent(Event);
65 virtual void OnAnimation(animation::Params& params);
79 virtual bool Focusable()
const;
87 virtual void SetActiveChild(ComponentBase* child);
101 std::unique_ptr<Impl> impl_;
The FTXUI ftxui::animation:: namespace.
The FTXUI ftxui:: namespace.
std::unique_ptr< CapturedMouseInterface > CapturedMouse
std::shared_ptr< Node > Element
std::vector< Component > Components
std::shared_ptr< ComponentBase > Component