/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "WindowList.h" #include #include #include class TaskbarWindow final : public GUI::Window { C_OBJECT(TaskbarWindow); public: virtual ~TaskbarWindow() override; static int taskbar_height() { return 27; } private: explicit TaskbarWindow(NonnullRefPtr start_menu); void create_quick_launch_bar(); void on_screen_rects_change(const Vector&, size_t); NonnullRefPtr create_button(const WindowIdentifier&); void add_window_button(::Window&, const WindowIdentifier&); void remove_window_button(::Window&, bool); void update_window_button(::Window&, bool); ::Window* find_window_owner(::Window&) const; virtual void wm_event(GUI::WMEvent&) override; virtual void screen_rects_change_event(GUI::ScreenRectsChangeEvent&) override; void update_applet_area(); NonnullRefPtr m_start_menu; RefPtr m_task_button_container; RefPtr m_default_icon; Gfx::IntSize m_applet_area_size; RefPtr m_applet_area_container; RefPtr m_start_button; RefPtr m_assistant_app_file; };