/** * @file ipc/Server.h * @author apio (cloudapio.eu) * @brief IPC message definitions for UI messages sent to the server. * * @copyright Copyright (c) 2023, the Luna authors. * */ #pragma once #include #include #include #include namespace ui { enum ServerMessages : u8 { IPC_ENUM_SERVER(ui), CREATE_WINDOW_ID, SET_WINDOW_TITLE_ID, INVALIDATE_ID, CLOSE_WINDOW_ID, GET_SCREEN_RECT_ID, }; struct CreateWindowRequest { using ResponseType = CreateWindowResponse; static constexpr u8 ID = CREATE_WINDOW_ID; ui::Rect rect; bool decorated; }; struct SetWindowTitleRequest { static constexpr u8 ID = SET_WINDOW_TITLE_ID; int window; IPC_STRING(title); }; struct InvalidateRequest { static constexpr u8 ID = INVALIDATE_ID; int window; }; struct CloseWindowRequest { static constexpr u8 ID = CLOSE_WINDOW_ID; int window; }; struct GetScreenRectRequest { using ResponseType = GetScreenRectResponse; static constexpr u8 ID = GET_SCREEN_RECT_ID; int _shadow; // Unused. }; }