/* * Copyright (c) 2021, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace GUI { class WindowManagerServerConnection : public IPC::ServerConnection , public WindowManagerClientEndpoint { C_OBJECT(WindowManagerServerConnection) public: WindowManagerServerConnection() : IPC::ServerConnection(*this, "/tmp/portal/wm") { handshake(); } virtual void handshake() override; static WindowManagerServerConnection& the(); private: virtual void window_removed(i32, i32, i32) override; virtual void window_state_changed(i32, i32, i32, i32, i32, bool, bool, bool, bool, i32, String const&, Gfx::IntRect const&, Optional const&) override; virtual void window_icon_bitmap_changed(i32, i32, i32, Gfx::ShareableBitmap const&) override; virtual void window_rect_changed(i32, i32, i32, Gfx::IntRect const&) override; virtual void applet_area_size_changed(i32, Gfx::IntSize const&) override; virtual void super_key_pressed(i32) override; }; }