/* * Copyright (c) 2023, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #pragma once namespace WebView { class InspectorClient { public: InspectorClient(ViewImplementation& content_web_view, ViewImplementation& inspector_web_view); ~InspectorClient(); void inspect(); void reset(); void select_hovered_node(); void select_default_node(); void clear_selection(); Function)> on_dom_node_properties_received; private: void maybe_load_inspector(); void generate_dom_tree(StringBuilder&); void generate_accessibility_tree(StringBuilder&); void select_node(i32 node_id); ViewImplementation& m_content_web_view; ViewImplementation& m_inspector_web_view; Optional m_dom_tree; Optional m_accessibility_tree; Optional m_body_node_id; Optional m_pending_selection; bool m_inspector_loaded { false }; }; }