#pragma once #include #include #include template using raw_pointer = T*; struct NavComponentState { creeper::ThemeManager& manager; std::function switch_callback; std::vector> buttons_context; std::function stacked_callback; }; auto NavComponent(NavComponentState&) noexcept -> raw_pointer; struct ViewComponentState { creeper::ThemeManager& manager; }; auto ViewComponent(ViewComponentState&) noexcept -> raw_pointer; struct SettingComponentState { creeper::ThemeManager& manager; }; auto SettingComponent(SettingComponentState&) noexcept -> raw_pointer; struct HandViewComponentState { creeper::ThemeManager& manager; }; auto HandViewComponent(HandViewComponentState&) noexcept -> raw_pointer; // 让其他模块可触发视图层的串口/配置刷新 void RefreshProfilesForView();