Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

DtDnd(5)  —  Macro Packages and Conventions

CDE

NAME

Dnd.h − Drag and drop definitions

SYNOPSIS

#include <Dt/Dnd.h>

DESCRIPTION

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:

DtDndStatus
DtDND_SUCCESS, DtDND_FAILURE

DtDndProtocol

DtDND_TEXT_TRANSFER     = (1L << 0)
DtDND_FILENAME_TRANSFER = (1L << 1)
DtDND_BUFFER_TRANSFER   = (1L << 2)

The header declares the following structures:

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:

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);

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026