1#ifndef NEFORCE_TUI_FOCUS_MANAGER_HPP__
2#define NEFORCE_TUI_FOCUS_MANAGER_HPP__
13NEFORCE_BEGIN_NAMESPACE__
26class NEFORCE_API focus_manager {
28 focus_manager() =
default;
73 NEFORCE_NODISCARD
bool is_chain_dirty() const noexcept {
return chain_dirty_; }
78 bool chain_dirty_ =
true;
84NEFORCE_END_NAMESPACE__
const vector< component_base * > & chain() const noexcept
获取焦点链
void set_focus(component_base *comp)
设置焦点组件
void focus_next()
焦点移动到下一个可聚焦组件
void rebuild_chain(component_base *root)
从组件树重建焦点链
bool is_chain_dirty() const noexcept
焦点链是否需要重建
void mark_chain_dirty() noexcept
标记焦点链需要重建
void focus_prev()
焦点移动到上一个可聚焦组件
component_base * focused() const noexcept
获取当前焦点组件