/** * @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, REMOVE_SHM_ID, SET_WINDOW_TITLE_ID, INVALIDATE_ID, CLOSE_WINDOW_ID, GET_SCREEN_RECT_ID, SET_TITLEBAR_HEIGHT_ID, SET_WINDOW_LAYER_ID, UPDATE_PLEDGE_REQUEST_ID, }; struct CreateWindowRequest { using ResponseType = CreateWindowResponse; static constexpr u8 ID = CREATE_WINDOW_ID; ui::Rect rect; }; struct RemoveSharedMemoryRequest { static constexpr u8 ID = REMOVE_SHM_ID; int window; }; 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. }; struct SetTitlebarHeightRequest { static constexpr u8 ID = SET_TITLEBAR_HEIGHT_ID; int window; int height; }; enum Layer : u8 { Background, Global, GlobalTop, System, Lock }; struct SetWindowLayer { static constexpr u8 ID = SET_WINDOW_LAYER_ID; int window; Layer layer; }; enum Pledge : i16 { ExtendedLayers = 1, }; struct UpdatePledgeRequest { static constexpr u8 ID = UPDATE_PLEDGE_REQUEST_ID; i16 pledges; }; }