mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 19:38:12 +00:00

This patch enables basic drag&drop between applications. You initiate a drag by creating a GDragOperation object and calling exec() on it. This creates a nested event loop in the calling program that only returns once the drag operation has ended. On the receiving side, you get a call to GWidget::drop_event() with a GDropEvent containing information about the dropped data. The only data passed right now is a piece of text that's also used to visually indicate that a drag is happening (by showing the text in a little box that follows the mouse cursor around.) There are things to fix here, but we're off to a nice start. :^)
35 lines
1.7 KiB
Text
35 lines
1.7 KiB
Text
endpoint WindowClient = 4
|
|
{
|
|
Paint(i32 window_id, Size window_size, Vector<Rect> rects) =|
|
|
MouseMove(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseDown(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseDoubleClick(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseUp(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseWheel(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
WindowEntered(i32 window_id) =|
|
|
WindowLeft(i32 window_id) =|
|
|
KeyDown(i32 window_id, u8 character, u32 key, u32 modifiers) =|
|
|
KeyUp(i32 window_id, u8 character, u32 key, u32 modifiers) =|
|
|
WindowActivated(i32 window_id) =|
|
|
WindowDeactivated(i32 window_id) =|
|
|
WindowCloseRequest(i32 window_id) =|
|
|
WindowResized(i32 window_id, Rect old_rect, Rect new_rect) =|
|
|
|
|
MenuItemActivated(i32 menu_id, i32 identifier) =|
|
|
|
|
ScreenRectChanged(Rect rect) =|
|
|
|
|
ClipboardContentsChanged(String content_type) =|
|
|
|
|
WM_WindowRemoved(i32 client_id, i32 window_id) =|
|
|
WM_WindowStateChanged(i32 client_id, i32 window_id, bool is_active, bool is_minimized, i32 window_type, String title, Rect rect) =|
|
|
WM_WindowIconBitmapChanged(i32 client_id, i32 window_id, i32 icon_buffer_id, Size icon_size) =|
|
|
WM_WindowRectChanged(i32 client_id, i32 window_id, Rect rect) =|
|
|
|
|
AsyncSetWallpaperFinished(bool success) =|
|
|
|
|
DragAccepted() =|
|
|
DragCancelled() =|
|
|
|
|
DragDropped(i32 window_id, Point mouse_position, String text) =|
|
|
}
|