drag and drop beginnings
Some checks failed
pyrite-dev/milsko/pipeline/head There was a failure building this commit

Reviewed-on: #33
This commit is contained in:
IoIxD 2026-07-23 11:45:01 +09:00 committed by IoI_xD
commit d3af13ebd6
15 changed files with 288 additions and 17 deletions

View file

@ -39,6 +39,7 @@ struct _MwLLCommon {
int type;
int coordinate_type;
MwBool supports_transparency;
const char** known_mime_types;
MwLLHandler handler;
};
@ -315,6 +316,12 @@ MWDECL void (*MwLLGetClipboard)(MwLL handle, int clipboard_type);
MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point);
MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect);
/*!
* @brief Setup drag and drop capabilities, should the user request it with MwNacceptsDnD
* @param handle Handle
*/
MWDECL void (*MwLLSetupDragAndDrop)(MwLL handle);
/*!
* @brief Set any extra parameters for dark theme
* @param handle Handle

View file

@ -29,6 +29,11 @@ struct _MwLLGDI {
int force_render;
int get_clipboard;
int get_darktheme;
/* drag and drop */
struct _MwLLGDIDropTarget* dropTarget;
struct _MwLLGDIDropSource* dropSource;
MwBool drag_update;
};
struct _MwLLGDIColor {
@ -47,6 +52,14 @@ struct _MwLLGDIPixmap {
HBITMAP hMask2;
};
struct _MwLLGDIDropTarget{
struct IDropTargetVtbl *lpVtbl;
LONG refCount;
HWND hwnd;
MwLL handle;
};
typedef struct _MwLLGDIDropTarget MwLLGDIDropTarget;
MWDECL int MwLLGDICallInit(void);
MWDECL HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask);

View file

@ -53,6 +53,7 @@
#define MwNcolumnSpan "IcolumnSpan"
#define MwNrowSpan "IrowSpan"
#define MwNdisabled "Idisabled"
#define MwNacceptsDnD "IacceptsDnD"
#define MwNtitle "Stitle"
#define MwNtext "Stext"
@ -62,6 +63,8 @@
#define MwNforeground "Sforeground"
#define MwNsubForeground "SsubForeground"
#define MwNtitleForeground "StitleForeground"
#define MwNacceptedMimeType "SacceptedMimeType"
#define MwNvulkanExtension "SEvulkanExtension"
#define MwNvulkanLayer "SEvulkanLayer"
@ -98,5 +101,6 @@
#define MwNdrawHandler "Cdraw"
#define MwNclipboardHandler "Cclipboard"
#define MwNdarkThemeHandler "CdarkTheme"
#define MwNdragAndDropHandler "CdragAndDrop"
#endif

View file

@ -274,7 +274,7 @@ struct _MwClass {
MwHandlerChildrenProp children_prop_change;
MwHandlerClipboardReceived clipboard;
MwHandlerProps props_change;
void* reserved1;
MwHandler drag_and_drop;
void* reserved2;
void* reserved3;
};