Serenity Operating System
at master 67 lines 3.4 kB view raw
1/* 2 * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <LibIPC/ConnectionToServer.h> 10#include <WindowServer/ScreenLayout.h> 11#include <WindowServer/WindowClientEndpoint.h> 12#include <WindowServer/WindowServerEndpoint.h> 13 14namespace GUI { 15 16class ConnectionToWindowServer final 17 : public IPC::ConnectionToServer<WindowClientEndpoint, WindowServerEndpoint> 18 , public WindowClientEndpoint { 19 IPC_CLIENT_CONNECTION(ConnectionToWindowServer, "/tmp/portal/window"sv) 20public: 21 static ConnectionToWindowServer& the(); 22 i32 expose_client_id() { return m_client_id; } 23 24private: 25 ConnectionToWindowServer(NonnullOwnPtr<Core::LocalSocket>); 26 27 virtual void fast_greet(Vector<Gfx::IntRect> const&, u32, u32, u32, Core::AnonymousBuffer const&, DeprecatedString const&, DeprecatedString const&, DeprecatedString const&, Vector<bool> const&, i32) override; 28 virtual void paint(i32, Gfx::IntSize, Vector<Gfx::IntRect> const&) override; 29 virtual void mouse_move(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32, bool, Vector<DeprecatedString> const&) override; 30 virtual void mouse_down(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override; 31 virtual void mouse_double_click(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override; 32 virtual void mouse_up(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override; 33 virtual void mouse_wheel(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override; 34 virtual void window_entered(i32) override; 35 virtual void window_left(i32) override; 36 virtual void key_down(i32, u32, u32, u32, u32) override; 37 virtual void key_up(i32, u32, u32, u32, u32) override; 38 virtual void window_activated(i32) override; 39 virtual void window_deactivated(i32) override; 40 virtual void window_input_preempted(i32) override; 41 virtual void window_input_restored(i32) override; 42 virtual void window_close_request(i32) override; 43 virtual void window_resized(i32, Gfx::IntRect const&) override; 44 virtual void window_moved(i32, Gfx::IntRect const&) override; 45 virtual void menu_item_activated(i32, u32) override; 46 virtual void menu_item_entered(i32, u32) override; 47 virtual void menu_item_left(i32, u32) override; 48 virtual void menu_visibility_did_change(i32, bool) override; 49 virtual void screen_rects_changed(Vector<Gfx::IntRect> const&, u32, u32, u32) override; 50 virtual void applet_area_rect_changed(Gfx::IntRect const&) override; 51 virtual void drag_dropped(i32, Gfx::IntPoint, DeprecatedString const&, HashMap<DeprecatedString, ByteBuffer> const&) override; 52 virtual void drag_accepted() override; 53 virtual void drag_cancelled() override; 54 virtual void update_system_theme(Core::AnonymousBuffer const&) override; 55 virtual void update_system_fonts(DeprecatedString const&, DeprecatedString const&, DeprecatedString const&) override; 56 virtual void update_system_effects(Vector<bool> const&) override; 57 virtual void window_state_changed(i32, bool, bool, bool) override; 58 virtual void display_link_notification() override; 59 virtual void track_mouse_move(Gfx::IntPoint) override; 60 virtual void ping() override; 61 62 bool m_in_command_palette { false }; 63 bool m_display_link_notification_pending { false }; 64 i32 m_client_id; 65}; 66 67}