/* * Copyright (c) 2024, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include namespace Ladybird { class Application : public QApplication { Q_OBJECT public: Application(int& argc, char** argv); virtual ~Application() override; virtual bool event(QEvent* event) override; Function on_open_file; RefPtr request_server_client; NonnullRefPtr image_decoder_client() const { return *m_image_decoder_client; } ErrorOr initialize_image_decoder(); BrowserWindow& new_window(Vector const& initial_urls, WebView::CookieJar&, WebContentOptions const&, StringView webdriver_content_ipc_path, bool allow_popups, BrowserWindow::IsPopupWindow is_popup_window = BrowserWindow::IsPopupWindow::No, Tab* parent_tab = nullptr, Optional page_index = {}); void show_task_manager_window(WebContentOptions const&); void close_task_manager_window(); BrowserWindow& active_window() { return *m_active_window; } void set_active_window(BrowserWindow& w) { m_active_window = &w; } private: TaskManagerWindow* m_task_manager_window { nullptr }; BrowserWindow* m_active_window { nullptr }; RefPtr m_image_decoder_client; }; }