2020-01-18 09:38:21 +01:00
|
|
|
/*
|
2021-04-05 14:32:34 +02:00
|
|
|
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
2020-01-18 09:38:21 +01:00
|
|
|
*
|
2021-04-22 01:24:48 -07:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-01-18 09:38:21 +01:00
|
|
|
*/
|
|
|
|
|
|
2019-01-20 04:49:48 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
2022-02-25 12:27:37 +02:00
|
|
|
#include <LibIPC/ConnectionToServer.h>
|
2021-06-14 21:19:56 -06:00
|
|
|
#include <WindowServer/ScreenLayout.h>
|
2019-12-02 09:33:37 +01:00
|
|
|
#include <WindowServer/WindowClientEndpoint.h>
|
|
|
|
|
#include <WindowServer/WindowServerEndpoint.h>
|
2019-01-20 04:49:48 +01:00
|
|
|
|
2020-02-02 15:07:41 +01:00
|
|
|
namespace GUI {
|
|
|
|
|
|
2022-02-25 12:39:33 +02:00
|
|
|
class ConnectionToWindowServer final
|
2022-02-25 12:27:37 +02:00
|
|
|
: public IPC::ConnectionToServer<WindowClientEndpoint, WindowServerEndpoint>
|
2019-12-02 09:33:37 +01:00
|
|
|
, public WindowClientEndpoint {
|
2022-07-19 21:01:04 +02:00
|
|
|
IPC_CLIENT_CONNECTION(ConnectionToWindowServer, "/tmp/portal/window"sv)
|
2019-01-20 04:49:48 +01:00
|
|
|
public:
|
2022-02-25 12:39:33 +02:00
|
|
|
static ConnectionToWindowServer& the();
|
2021-07-13 00:25:47 +10:00
|
|
|
i32 expose_client_id() { return m_client_id; }
|
2019-03-19 00:01:02 +01:00
|
|
|
|
2019-01-20 04:49:48 +01:00
|
|
|
private:
|
2022-02-25 12:39:33 +02:00
|
|
|
ConnectionToWindowServer(NonnullOwnPtr<Core::Stream::LocalSocket>);
|
2021-05-23 09:42:38 +02:00
|
|
|
|
2022-12-04 18:02:33 +00:00
|
|
|
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;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void paint(i32, Gfx::IntSize const&, Vector<Gfx::IntRect> const&) override;
|
2022-12-06 20:27:44 +00:00
|
|
|
virtual void mouse_move(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32, bool, Vector<DeprecatedString> const&) override;
|
|
|
|
|
virtual void mouse_down(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override;
|
|
|
|
|
virtual void mouse_double_click(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override;
|
|
|
|
|
virtual void mouse_up(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override;
|
|
|
|
|
virtual void mouse_wheel(i32, Gfx::IntPoint, u32, u32, u32, i32, i32, i32, i32) override;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void window_entered(i32) override;
|
|
|
|
|
virtual void window_left(i32) override;
|
|
|
|
|
virtual void key_down(i32, u32, u32, u32, u32) override;
|
|
|
|
|
virtual void key_up(i32, u32, u32, u32, u32) override;
|
|
|
|
|
virtual void window_activated(i32) override;
|
|
|
|
|
virtual void window_deactivated(i32) override;
|
2022-11-17 08:39:20 -05:00
|
|
|
virtual void window_input_preempted(i32) override;
|
|
|
|
|
virtual void window_input_restored(i32) override;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void window_close_request(i32) override;
|
|
|
|
|
virtual void window_resized(i32, Gfx::IntRect const&) override;
|
2022-11-01 14:23:22 -04:00
|
|
|
virtual void window_moved(i32, Gfx::IntRect const&) override;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void menu_item_activated(i32, u32) override;
|
|
|
|
|
virtual void menu_item_entered(i32, u32) override;
|
|
|
|
|
virtual void menu_item_left(i32, u32) override;
|
|
|
|
|
virtual void menu_visibility_did_change(i32, bool) override;
|
2021-06-30 19:12:02 -06:00
|
|
|
virtual void screen_rects_changed(Vector<Gfx::IntRect> const&, u32, u32, u32) override;
|
2021-08-24 13:01:01 +01:00
|
|
|
virtual void applet_area_rect_changed(Gfx::IntRect const&) override;
|
2022-12-06 20:27:44 +00:00
|
|
|
virtual void drag_dropped(i32, Gfx::IntPoint, DeprecatedString const&, HashMap<DeprecatedString, ByteBuffer> const&) override;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void drag_accepted() override;
|
|
|
|
|
virtual void drag_cancelled() override;
|
|
|
|
|
virtual void update_system_theme(Core::AnonymousBuffer const&) override;
|
2022-12-04 18:02:33 +00:00
|
|
|
virtual void update_system_fonts(DeprecatedString const&, DeprecatedString const&, DeprecatedString const&) override;
|
2022-08-07 19:54:22 -04:00
|
|
|
virtual void update_system_effects(Vector<bool> const&) override;
|
2022-04-05 17:40:53 +02:00
|
|
|
virtual void window_state_changed(i32, bool, bool, bool) override;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void display_link_notification() override;
|
2022-12-06 20:27:44 +00:00
|
|
|
virtual void track_mouse_move(Gfx::IntPoint) override;
|
2021-05-02 19:54:34 +02:00
|
|
|
virtual void ping() override;
|
2020-04-22 00:07:48 +02:00
|
|
|
|
2022-01-30 19:13:39 +01:00
|
|
|
bool m_in_command_palette { false };
|
2020-04-22 00:07:48 +02:00
|
|
|
bool m_display_link_notification_pending { false };
|
2021-07-13 00:25:47 +10:00
|
|
|
i32 m_client_id;
|
2019-07-17 18:28:30 +02:00
|
|
|
};
|
2020-02-02 15:07:41 +01:00
|
|
|
|
|
|
|
|
}
|