#pragma once #include #include #include #include #include #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; std::shared_ptr> heatmap_show_numbers; }; 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(); std::shared_ptr> HeatmapNumberVisibilityContext();