ConnectionToWindowManagerServer.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) 2021, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibIPC/ConnectionToServer.h>
  8. #include <WindowServer/ScreenLayout.h>
  9. #include <WindowServer/WindowManagerClientEndpoint.h>
  10. #include <WindowServer/WindowManagerServerEndpoint.h>
  11. namespace GUI {
  12. class ConnectionToWindowManagerServer final
  13. : public IPC::ConnectionToServer<WindowManagerClientEndpoint, WindowManagerServerEndpoint>
  14. , public WindowManagerClientEndpoint {
  15. IPC_CLIENT_CONNECTION(ConnectionToWindowManagerServer, "/tmp/portal/wm"sv)
  16. public:
  17. static ConnectionToWindowManagerServer& the();
  18. private:
  19. ConnectionToWindowManagerServer(NonnullOwnPtr<Core::Stream::LocalSocket> socket)
  20. : IPC::ConnectionToServer<WindowManagerClientEndpoint, WindowManagerServerEndpoint>(*this, move(socket))
  21. {
  22. }
  23. virtual void window_removed(i32, i32, i32) override;
  24. virtual void window_state_changed(i32, i32, i32, u32, u32, bool, bool, bool, bool, i32, String const&, Gfx::IntRect const&, Optional<i32> const&) override;
  25. virtual void window_icon_bitmap_changed(i32, i32, i32, Gfx::ShareableBitmap const&) override;
  26. virtual void window_rect_changed(i32, i32, i32, Gfx::IntRect const&) override;
  27. virtual void applet_area_size_changed(i32, Gfx::IntSize const&) override;
  28. virtual void super_key_pressed(i32) override;
  29. virtual void super_space_key_pressed(i32) override;
  30. virtual void super_d_key_pressed(i32) override;
  31. virtual void super_digit_key_pressed(i32, u8) override;
  32. virtual void workspace_changed(i32, u32, u32) override;
  33. virtual void keymap_changed(i32, String const&) override;
  34. };
  35. }