/* * Copyright (c) 2023, the SerenityOS developers. * Copyright (c) 2023, David Ganz * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "EventCalendar.h" #include #include #include #include #include namespace Calendar { class CalendarWidget final : public GUI::Widget { C_OBJECT(CalendarWidget); public: static ErrorOr> create(GUI::Window*); virtual ~CalendarWidget() override = default; void update_window_title(); void load_file(FileSystemAccessClient::File file); bool request_close(); private: CalendarWidget() = default; static ErrorOr> try_create(); void create_on_tile_doubleclick(); ByteString const& current_filename() const { return m_event_calendar->event_manager().current_filename(); } void create_on_events_change(); NonnullRefPtr create_save_as_action(); NonnullRefPtr create_save_action(GUI::Action& save_as_action); ErrorOr> create_new_calendar_action(); NonnullRefPtr create_open_calendar_action(); ErrorOr> create_prev_date_action(); ErrorOr> create_next_date_action(); ErrorOr> create_add_event_action(); ErrorOr> create_jump_to_action(); ErrorOr> create_view_month_action(); ErrorOr> create_view_year_action(); ErrorOr> create_open_settings_action(); OwnPtr m_view_type_action_group; RefPtr m_save_action; RefPtr m_event_calendar; }; }