ladybird/Servers/WindowServer/WindowServer.ipc
Andreas Kling 44d5388e78 WindowServer: Add basic menu applet concept
It's now possible to create a little applet window that sits inside the
system's menubar. This is done using the new CreateMenuApplet IPC call.

So far, it's possible to assign a backing store ID, and to invalidate
rects for repaint. There is no way to get the events from inside the
applet just yet.

This will allow us to move the CPU graph and audio thingy to separate
applet processes. :^)
2019-12-05 19:36:01 +01:00

74 lines
2.9 KiB
Text

endpoint WindowServer = 2
{
Greet(i32 client_pid) => (i32 server_pid, i32 client_id, Rect screen_rect)
CreateMenubar() => (i32 menubar_id)
DestroyMenubar(i32 menubar_id) => ()
CreateMenu(String menu_title) => (i32 menu_id)
DestroyMenu(i32 menu_id) => ()
AddMenuToMenubar(i32 menubar_id, i32 menu_id) => ()
SetApplicationMenubar(i32 menubar_id) => ()
AddMenuItem(i32 menu_id, i32 identifier, i32 submenu_id, String text, bool enabled, bool checkable, bool checked, String shortcut, i32 icon_buffer_id) => ()
AddMenuSeparator(i32 menu_id) => ()
UpdateMenuItem(i32 menu_id, i32 identifier, i32 submenu_id, String text, bool enabled, bool checkable, bool checked, String shortcut) => ()
CreateMenuApplet(Size size) => (i32 applet_id)
DestroyMenuApplet(i32 applet_id) => ()
SetMenuAppletBackingStore(i32 applet_id, i32 shared_buffer_id) => ()
InvalidateMenuAppletRect(i32 applet_id, Rect rect) => ()
CreateWindow(
Rect rect,
bool has_alpha_channel,
bool modal,
bool resizable,
bool fullscreen,
bool show_titlebar,
float opacity,
Color background_color,
Size base_size,
Size size_increment,
i32 type,
String title) => (i32 window_id)
DestroyWindow(i32 window_id) => ()
SetWindowTitle(i32 window_id, String title) => ()
GetWindowTitle(i32 window_id) => (String title)
SetWindowRect(i32 window_id, Rect rect) => ()
GetWindowRect(i32 window_id) => (Rect rect)
InvalidateRect(i32 window_id, Vector<Rect> rects) =|
DidFinishPainting(i32 window_id, Vector<Rect> rects) =|
SetGlobalCursorTracking(i32 window_id, bool enabled) => ()
SetWindowOpacity(i32 window_id, float opacity) => ()
SetWindowBackingStore(i32 window_id, i32 bpp, i32 pitch, i32 shared_buffer_id, bool has_alpha_channel, Size size, bool flush_immediately) => ()
GetClipboardContents() => (i32 shared_buffer_id, i32 content_size, String content_type)
SetClipboardContents(i32 shared_buffer_id, i32 content_size, String content_type) => ()
WM_SetActiveWindow(i32 client_id, i32 window_id) =|
WM_SetWindowMinimized(i32 client_id, i32 window_id, bool minimized) =|
WM_StartWindowResize(i32 client_id, i32 window_id) =|
WM_PopupWindowMenu(i32 client_id, i32 window_id, Point screen_position) =|
WM_SetWindowTaskbarRect(i32 client_id, i32 window_id, Rect rect) =|
SetWindowHasAlphaChannel(i32 window_id, bool has_alpha_channel) => ()
MoveWindowToFront(i32 window_id) => ()
SetFullscreen(i32 window_id, bool fullscreen) => ()
PopupMenu(i32 menu_id, Point screen_position) => ()
DismissMenu(i32 menu_id) => ()
AsyncSetWallpaper(String path) =|
SetResolution(Size resolution) => ()
SetWindowIconBitmap(i32 window_id, i32 icon_buffer_id, Size icon_size) => ()
GetWallpaper() => (String path)
SetWindowOverrideCursor(i32 window_id, i32 cursor_type) => ()
}