#pragma once #include "foundation/result.h" #include "node.h" #include class App; class NodePopupMenu; namespace pp::panopainter { void initialize_legacy_overlay_node(App& app, Node& node); void configure_legacy_popup_overlay(Node& node) noexcept; void activate_legacy_popup_overlay(Node& node) noexcept; [[nodiscard]] pp::foundation::Status attach_legacy_overlay_node( App& app, const std::shared_ptr& node) noexcept; [[nodiscard]] pp::foundation::Status attach_legacy_overlay_node_to_root( Node& anchor, const std::shared_ptr& node) noexcept; [[nodiscard]] pp::foundation::Result> add_legacy_popup_menu( App& app, const char* template_id, float x, float y, float rtl_anchor_width) noexcept; template std::shared_ptr make_legacy_overlay_node(App& app) { auto node = std::make_shared(); initialize_legacy_overlay_node(app, *node); return node; } template std::shared_ptr make_legacy_overlay_node_for_anchor(Node& anchor) { auto node = std::make_shared(); node->set_manager(anchor.m_manager); node->init(); node->create(); node->loaded(); return node; } template std::shared_ptr add_legacy_overlay_node(App& app) { auto node = make_legacy_overlay_node(app); (void)attach_legacy_overlay_node(app, node); return node; } } // namespace pp::panopainter