diff --git a/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp b/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp index 127d98cf09..b9f99293b9 100644 --- a/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp +++ b/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp @@ -15,6 +15,8 @@ #include "NetSender.h" #include "StreamingRingBuffer.h" +#include "SystemPalette.h" + #include #include @@ -273,6 +275,25 @@ RemoteHWInterface::_EventThread() _FillDisplayModeTiming(fClientMode); _NotifyScreenChanged(); break; + } + + case RP_GET_SYSTEM_PALETTE: + { + RemoteMessage reply(NULL, fSendBuffer); + reply.Start(RP_GET_SYSTEM_PALETTE_RESULT); + + const color_map *map = SystemColorMap(); + uint32 count = (uint32)B_COUNT_OF(map->color_list); + + reply.Add(count); + for (size_t i = 0; i < count; i++) { + const rgb_color &color = map->color_list[i]; + reply.Add(color.red); + reply.Add(color.green); + reply.Add(color.blue); + reply.Add(color.alpha); + } + break; } diff --git a/src/servers/app/drawing/interface/remote/RemoteMessage.h b/src/servers/app/drawing/interface/remote/RemoteMessage.h index 228adc0262..37123433cf 100644 --- a/src/servers/app/drawing/interface/remote/RemoteMessage.h +++ b/src/servers/app/drawing/interface/remote/RemoteMessage.h @@ -39,6 +39,8 @@ enum { RP_INIT_CONNECTION = 1, RP_UPDATE_DISPLAY_MODE, RP_CLOSE_CONNECTION, + RP_GET_SYSTEM_PALETTE, + RP_GET_SYSTEM_PALETTE_RESULT, RP_CREATE_STATE = 20, RP_DELETE_STATE,