81 lines
1.5 KiB
C++
81 lines
1.5 KiB
C++
/**
|
|
* @file ipc/Client.h
|
|
* @author apio (cloudapio.eu)
|
|
* @brief IPC message definitions for UI messages sent to the client.
|
|
*
|
|
* @copyright Copyright (c) 2023, the Luna authors.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
#include <os/IPC.h>
|
|
#include <ui/Key.h>
|
|
#include <ui/Point.h>
|
|
#include <ui/Rect.h>
|
|
|
|
namespace ui
|
|
{
|
|
enum ClientMessages : u8
|
|
{
|
|
IPC_ENUM_CLIENT(ui),
|
|
CREATE_WINDOW_RESPONSE_ID,
|
|
WINDOW_CLOSE_REQUEST_ID,
|
|
MOUSE_EVENT_REQUEST_ID,
|
|
MOUSE_LEAVE_REQUEST_ID,
|
|
GET_SCREEN_RECT_RESPONSE_ID,
|
|
KEY_EVENT_REQUEST_ID,
|
|
};
|
|
|
|
struct CreateWindowResponse
|
|
{
|
|
static constexpr u8 ID = CREATE_WINDOW_RESPONSE_ID;
|
|
|
|
int window;
|
|
IPC_STRING(shm_path);
|
|
};
|
|
|
|
struct WindowCloseRequest
|
|
{
|
|
static constexpr u8 ID = WINDOW_CLOSE_REQUEST_ID;
|
|
|
|
int window;
|
|
};
|
|
|
|
struct MouseEventRequest
|
|
{
|
|
static constexpr u8 ID = MOUSE_EVENT_REQUEST_ID;
|
|
|
|
int window;
|
|
Point position;
|
|
int buttons;
|
|
};
|
|
|
|
struct MouseLeaveRequest
|
|
{
|
|
static constexpr u8 ID = MOUSE_LEAVE_REQUEST_ID;
|
|
|
|
int window;
|
|
};
|
|
|
|
struct GetScreenRectResponse
|
|
{
|
|
static constexpr u8 ID = GET_SCREEN_RECT_RESPONSE_ID;
|
|
|
|
Rect rect;
|
|
};
|
|
|
|
struct KeyEventRequest
|
|
{
|
|
static constexpr u8 ID = KEY_EVENT_REQUEST_ID;
|
|
|
|
int window;
|
|
|
|
bool pressed;
|
|
|
|
char letter;
|
|
char key;
|
|
moon::KeyCode code;
|
|
int modifiers;
|
|
};
|
|
}
|