summaryrefslogtreecommitdiff
path: root/Userland/Services/WindowServer/WindowServer.ipc
blob: 8939039da93458d141597b761c7c65be144a50f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#include <LibCore/AnonymousBuffer.h>
#include <LibGfx/ShareableBitmap.h>
#include <LibGfx/Color.h>

endpoint WindowServer
{
    create_menu(i32 menu_id, [UTF8] String menu_title) =|
    destroy_menu(i32 menu_id) =|

    add_menu(i32 window_id, i32 menu_id) =|

    add_menu_item(
        i32 menu_id,
        i32 identifier,
        i32 submenu_id,
        [UTF8] String text,
        bool enabled,
        bool checkable,
        bool checked,
        bool is_default,
        [UTF8] String shortcut,
        Gfx::ShareableBitmap icon,
        bool exclusive) =|

    add_menu_separator(i32 menu_id) =|

    update_menu_item(
        i32 menu_id,
        i32 identifier,
        i32 submenu_id,
        [UTF8] String text,
        bool enabled,
        bool checkable,
        bool checked,
        bool is_default,
        [UTF8] String shortcut,
        Gfx::ShareableBitmap icon) =|

    remove_menu_item(i32 menu_id, i32 identifier) =|
    flash_menubar_menu(i32 window_id, i32 menu_id) =|

    create_window(
        i32 window_id,
        Gfx::IntRect rect,
        bool auto_position,
        bool has_alpha_channel,
        bool modal,
        bool minimizable,
        bool closeable,
        bool resizable,
        bool fullscreen,
        bool frameless,
        bool forced_shadow,
        bool accessory,
        float opacity,
        float alpha_hit_threshold,
        Gfx::IntSize base_size,
        Gfx::IntSize size_increment,
        Gfx::IntSize minimum_size,
        Optional<Gfx::IntSize> resize_aspect_ratio,
        i32 type,
        [UTF8] String title,
        i32 parent_window_id,
        Gfx::IntRect launch_origin_rect) =|

    destroy_window(i32 window_id) => (Vector<i32> destroyed_window_ids)

    set_window_title(i32 window_id, [UTF8] String title) =|
    get_window_title(i32 window_id) => ([UTF8] String title)

    set_window_progress(i32 window_id, Optional<i32> progress) =|

    set_window_modified(i32 window_id, bool modified) =|
    is_window_modified(i32 window_id) => (bool modified)

    set_window_rect(i32 window_id, Gfx::IntRect rect) => (Gfx::IntRect rect)
    get_window_rect(i32 window_id) => (Gfx::IntRect rect)

    set_window_minimum_size(i32 window_id, Gfx::IntSize size) =|
    get_window_minimum_size(i32 window_id) => (Gfx::IntSize size)

    get_applet_rect_on_screen(i32 window_id) => (Gfx::IntRect rect)

    start_window_resize(i32 window_id) =|

    is_maximized(i32 window_id) => (bool maximized)
    set_maximized(i32 window_id, bool maximized) =|

    invalidate_rect(i32 window_id, Vector<Gfx::IntRect> rects, bool ignore_occlusion) =|
    did_finish_painting(i32 window_id, Vector<Gfx::IntRect> rects) =|

    set_global_mouse_tracking(bool enabled) =|
    set_window_opacity(i32 window_id, float opacity) =|

    set_window_alpha_hit_threshold(i32 window_id, float threshold) =|

    set_window_backing_store(i32 window_id, i32 bpp, i32 pitch, IPC::File anon_file, i32 serial, bool has_alpha_channel, Gfx::IntSize size, bool flush_immediately) => ()

    set_window_has_alpha_channel(i32 window_id, bool has_alpha_channel) =|
    move_window_to_front(i32 window_id) =|
    set_fullscreen(i32 window_id, bool fullscreen) =|
    set_frameless(i32 window_id, bool frameless) =|
    set_forced_shadow(i32 window_id, bool shadow) =|
    popup_menu(i32 menu_id, Gfx::IntPoint screen_position) =|
    dismiss_menu(i32 menu_id) =|

    set_wallpaper(Gfx::ShareableBitmap wallpaper_bitmap) => (bool success)

    set_background_color(String background_color) =|
    set_wallpaper_mode(String mode) =|

    set_screen_layout(::WindowServer::ScreenLayout screen_layout, bool save) => (bool success, String error_msg)
    get_screen_layout() => (::WindowServer::ScreenLayout screen_layout)
    save_screen_layout() => (bool success, String error_msg)
    show_screen_numbers(bool show) =|

    apply_workspace_settings(u32 rows, u32 columns, bool save) => (bool success)
    get_workspace_settings() => (u32 rows, u32 columns, u32 max_rows, u32 max_columns)

    set_window_icon_bitmap(i32 window_id, Gfx::ShareableBitmap icon) =|

    get_wallpaper() => (Gfx::ShareableBitmap wallpaper_bitmap)
    set_window_cursor(i32 window_id, i32 cursor_type) =|
    set_window_custom_cursor(i32 window_id, Gfx::ShareableBitmap cursor) =|

    start_drag([UTF8] String text, HashMap<String,ByteBuffer> mime_data, Gfx::ShareableBitmap drag_bitmap) => (bool started)

    set_system_theme(String theme_path, [UTF8] String theme_name, bool keep_desktop_background) => (bool success)
    get_system_theme() => ([UTF8] String theme_name)
    refresh_system_theme() =|

    set_system_theme_override(Core::AnonymousBuffer buffer) => (bool success)
    get_system_theme_override() => (Optional<Core::AnonymousBuffer> buffer)
    clear_system_theme_override() =|
    is_system_theme_overridden() => (bool overridden)

    apply_cursor_theme(String name) =|
    get_cursor_theme() => (String name)

    set_cursor_highlight_radius(int radius) =|
    get_cursor_highlight_radius() => (int radius)

    set_cursor_highlight_color(Gfx::Color color) =|
    get_cursor_highlight_color() => (Gfx::Color color)

    set_system_fonts(String default_font_query, String fixed_width_font_query, String window_title_font_query) => (bool success)
    set_system_effects(Vector<bool> effects, u8 geometry) =|

    set_window_base_size_and_size_increment(i32 window_id, Gfx::IntSize base_size, Gfx::IntSize size_increment) =|
    set_window_resize_aspect_ratio(i32 window_id, Optional<Gfx::IntSize> resize_aspect_ratio) =|

    enable_display_link() =|
    disable_display_link() =|

    set_global_cursor_position(Gfx::IntPoint position) =|
    get_global_cursor_position() => (Gfx::IntPoint position)

    set_mouse_acceleration(float factor) =|
    get_mouse_acceleration() => (float factor)

    set_scroll_step_size(u32 step_size) =|
    get_scroll_step_size() => (u32 step_size)

    get_screen_bitmap(Optional<Gfx::IntRect> rect, Optional<u32> screen_index) => (Gfx::ShareableBitmap bitmap)
    get_screen_bitmap_around_cursor(Gfx::IntSize size) => (Gfx::ShareableBitmap bitmap)
    get_color_under_cursor() => (Optional<Gfx::Color> color)

    pong() =|

    set_double_click_speed(int speed) =|
    get_double_click_speed() => (int speed)

    set_buttons_switched(bool switched) =|
    get_buttons_switched() => (bool switched)

    get_desktop_display_scale(u32 screen_index) => (int desktop_display_scale)

    set_flash_flush(bool enabled) =|

    set_window_parent_from_client(i32 client_id, i32 parent_id, i32 child_id) => ()
    get_window_rect_from_client(i32 client_id, i32 window_id) => (Gfx::IntRect rect)
    add_window_stealing_for_client(i32 client_id, i32 window_id) => ()
    remove_window_stealing_for_client(i32 client_id, i32 window_id) => ()
    remove_window_stealing(i32 window_id) => ()
}