20#ifndef LIBUI_PROTOCOL_H
21#define LIBUI_PROTOCOL_H
23#include "pedigree/native/graphics/Graphics.h"
24#include "pedigree/native/ipc/Ipc.h"
25#include "pedigree/native/types.h"
34#define WINMAN_SOCKET_PATH "sockets/winman.sock"
35#define CLIENT_SOCKET_BASE "sockets/winman-client-%s.sock"
37#define WINMAN_SOCKET_PATH "/run/sockets/winman.sock"
38#define CLIENT_SOCKET_BASE "/run/sockets/winman-client-%s.sock"
41namespace LibUiProtocol {
43bool sendMessage(
void* pMessage,
size_t messageLength);
46bool recvMessage(PedigreeIpc::IpcEndpoint* endpoint,
void* pBuffer,
size_t maxSize);
49bool recvMessageAsync(PedigreeIpc::IpcEndpoint* endpoint,
void* pBuffer,
size_t maxSize);
52typedef uint64_t handle_t;
54enum ButtonState { Down, Up, Unchanged };
56enum MessageIdentifiers {
229 char propertyName[256];
235 char propertyName[256];
236 size_t maxValueLength;
281 ButtonState buttons[8];
char endpoint[256]
IPC endpoint for this widget.
bool rigid
A 'rigid' window cannot be resized by the window manager.
size_t minWidth
Minimum width and height for the window.
char title[256]
Initial title for this widget.
bool bIsResponse
Whether this is a response or a request.
size_t bufferLength
Length of the buffer (in & out).
uintptr_t bufferAddress
Address off the large buffer. Null in a request.
size_t shmem_size
Size of the framebuffer.
void * shmem_handle
New handle for the shared memory space.
PedigreeGraphics::Rect rt
New rect.
PedigreeGraphics::GraphicsProvider provider
size_t messageSize
Size of the data in the message (after this header).
handle_t widgetHandle
Handle for the widget being referred to. Zero if no widget.
bool isResponse
Whether this message is a response from the window manager or not.
MessageIdentifiers messageCode
Code of the message being sent.