/* * Copyright (c) 2020, Hunter Salyer * Copyright (c) 2021-2022, Andreas Kling * Copyright (c) 2021, Sam Atkins * Copyright (c) 2022, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include class QLineEdit; class QTextEdit; namespace Ladybird { class ConsoleWidget final : public QWidget { Q_OBJECT public: ConsoleWidget(); virtual ~ConsoleWidget() = default; void notify_about_new_console_message(i32 message_index); void handle_console_messages(i32 start_index, Vector const& message_types, Vector const& messages); void print_source_line(StringView); void print_html(StringView); void reset(); Function on_js_input; Function on_request_messages; private: void request_console_messages(); void clear_output(); QTextEdit* m_output_view { nullptr }; QLineEdit* m_input { nullptr }; i32 m_highest_notified_message_index { -1 }; i32 m_highest_received_message_index { -1 }; bool m_waiting_for_messages { false }; }; }