1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 10:47:35 +00:00

Add API's and plumbing for WindowServer clients to make menus.

This commit is contained in:
Andreas Kling 2019-02-12 00:52:19 +01:00
parent bb31d961b4
commit 133706d697
17 changed files with 322 additions and 24 deletions

View file

@ -46,6 +46,8 @@
__ERROR(EBADWINDOW, "Bad window ID") \
__ERROR(EBADBACKING, "Bad backing store ID") \
__ERROR(ENOTEMPTY, "Directory not empty") \
__ERROR(EBADMENUBAR, "Bad menubar ID") \
__ERROR(EBADMENU, "Bad menu ID") \
enum __errno_values {

View file

@ -68,3 +68,51 @@ int gui_set_global_cursor_tracking_enabled(int window_id, bool enabled)
int rc = syscall(SC_gui_set_global_cursor_tracking_enabled, window_id, enabled);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menubar_create()
{
int rc = syscall(SC_gui_menubar_create);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menubar_destroy(int menubar_id)
{
int rc = syscall(SC_gui_menubar_destroy, menubar_id);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menubar_add_menu(int menubar_id, int menu_id)
{
int rc = syscall(SC_gui_menubar_add_menu, menubar_id, menu_id);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menu_create(const char* name)
{
int rc = syscall(SC_gui_menu_create, name);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menu_destroy(int menu_id)
{
int rc = syscall(SC_gui_menu_destroy, menu_id);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menu_add_separator(int menu_id)
{
int rc = syscall(SC_gui_menu_add_separator, menu_id);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_menu_add_item(int menu_id, unsigned identifier, const char* text)
{
int rc = syscall(SC_gui_menu_add_item, menu_id, identifier, text);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int gui_app_set_menubar(int menubar_id)
{
int rc = syscall(SC_gui_app_set_menubar, menubar_id);
__RETURN_WITH_ERRNO(rc, rc, -1);
}

View file

@ -16,6 +16,14 @@ int gui_set_window_title(int window_id, const char*, size_t);
int gui_get_window_rect(int window_id, GUI_Rect*);
int gui_set_window_rect(int window_id, const GUI_Rect*);
int gui_set_global_cursor_tracking_enabled(int window_id, bool);
int gui_menubar_create();
int gui_menubar_destroy(int menubar_id);
int gui_menubar_add_menu(int menubar_id, int menu_id);
int gui_menu_create(const char* name);
int gui_menu_destroy(int menu_id);
int gui_menu_add_separator(int menu_id);
int gui_menu_add_item(int menu_id, unsigned identifier, const char* text);
int gui_app_set_menubar(int menubar_id);
__END_DECLS