DTDND(5)

πŸ“¦
version 2.5.3 Β· 2 versions
, in nixos 26.05

πŸ’– DTDND(5): Dt/Dnd.h (file formats) drag-and-drop definitions πŸ’–

🌸 NAME 🌸

Dt/Dnd.h β€” Drag and drop definitions.

Bestie, this is DTDND(5), the file-formats manual page for the Dt/Dnd.h header, and it is literally all about drag and drop definitions. No cap, that's the whole name section. πŸ’…

✨ SYNOPSIS ✨

#include &<Dt/Dnd.h>

Short, sweet, and to the point β€” just the include, bestie.

πŸ’… DESCRIPTION πŸ’…

okay so the Dt/Dnd.h header defines the following enumeration types:

  • DtCR_DND_CONVERT_DATA
  • DtCR_DND_CONVERT_DELETE
  • DtCR_DND_DRAG_FINISH
  • DtCR_DND_TRANSFER_DATA
  • DtCR_DND_DROP_ANIMATE

The header defines the following enumeration data types, with at least the following members β€” yes, at least, so don't come for me:

  • DtDndStatus β€” at least DtDND_SUCCESS, DtDND_FAILURE.
  • DtDndProtocol β€” at least these members, bestie:
DtDND_TEXT_TRANSFER     = (1L &<&< 0)
DtDND_FILENAME_TRANSFER = (1L &<&< 1)
DtDND_BUFFER_TRANSFER   = (1L &<&< 2)

The header declares the following structures β€” every field, no skips, we do not paraphrase code here:

typedef struct _DtDndBuffer {
        void *bp;
        int size;
        string name;
} DtDndBuffer;

typedef struct _DtDndContext {
        DtDndProtocol protocol;
        int numItems;
        union {
                XmString *strings;
                String *files;
                DtDndBuffer *buffers;
        } data;
} DtDndContext;

typedef struct _DtDndConvertCallbackStruct {
        int reason;
        XEvent *event;
        DtDndContext *dragData;
        DtDndStatus status;
} DtDndConvertCallbackStruct, *DtDndConvertCallback;

typedef struct _DtDndDragFinishCallbackStruct {
        int reason;
        XEvent *event;
        DtDndContext *dragData;
        Widget sourceIcon;
} DtDndDragFinishCallbackStruct, *DtDndDragFinishCallback;

typedef struct _DtDndTransferCallbackStruct {
        int reason;
        XEvent *event;
        Position x, y;
        unsigned char operation;
        DtDndContext *dropData;
        Boolean completeMove;
        DtDndStatus status;
} DtDndTransferCallbackStruct, *DtDndTransferCallback;

typedef struct _DtDndDropAnimateCallbackStruct {
        int reason;
        XEvent *event;
        Position x, y;
        unsigned char operation;
        DtDndContext *dropData;
} DtDndDropAnimateCallbackStruct, *DtDndDropAnimateCallback;

The header declares the following as functions β€” signatures only, but make them iconic:

Widget DtDndCreateSourceIcon(Widget parent,
        Pixmap pixmap,
        Pixmap mask);

Widget DtDndDragStart(Widget dragSource,
        XEvent *event,
        DtDndProtocol protocol,
        Cardinal numItems,
        unsigned char operations,
        XtCallbackList convertCallback,
        XtCallbackList dragFinishCallback,
        ArgList argList,
        Cardinal argCount);

Widget DtDndVaDragStart(Widget dragSource,
        XEvent *event,
        DtDndProtocol protocol,
        Cardinal numItems,
        unsigned char operations,
        XtCallbackList convertCallback,
        XtCallbackList dragFinishCallback,
        ...);

void DtDndDropRegister(Widget dropSite,
        DtDndProtocol protocols,
        unsigned char operations,
        XtCallbackList transferCallback,
        ArgList argList,
        Cardinal argCount);

void DtDndVaDropRegister(Widget dropSite,
        DtDndProtocol protocols,
        unsigned char operations,
        XtCallbackList transferCallback,
        ...);

void DtDndDropUnregister(Widget dropSite);

And that's the whole Dt/Dnd.h file-formats page, bestie β€” footer says Dt/Dnd.h(file formats), no extra version or date listed here, and that's a wrap. Byeee πŸ’–βœ¨

πŸ“¦ where this page comes from