/* * Copyright (c) 2022, kleines Filmröllchen * Copyright (c) 2023, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "Presentation.h" #include #include #include #include #include // Title, Author constexpr StringView const title_template = "{} ({}) — Presenter"sv; class PresenterWidget : public GUI::Widget { C_OBJECT(PresenterWidget); public: PresenterWidget(); ErrorOr initialize_menubar(); virtual ~PresenterWidget() override = default; // Errors that happen here are directly displayed to the user. void set_file(StringView file_name); protected: virtual void paint_event(GUI::PaintEvent&) override; virtual void second_paint_event(GUI::PaintEvent&) override; virtual void keydown_event(GUI::KeyEvent&) override; virtual void drag_enter_event(GUI::DragEvent&) override; virtual void drop_event(GUI::DropEvent&) override; virtual void resize_event(GUI::ResizeEvent&) override; private: void update_web_view(); void update_slides_actions(); RefPtr m_web_view; OwnPtr m_current_presentation; RefPtr m_next_slide_action; RefPtr m_previous_slide_action; RefPtr m_present_from_first_slide_action; RefPtr m_full_screen_action; RefPtr m_resize_to_fit_content_action; };