Transport-control structure used in a drag-and-drop operation
typedef struct ptdatatransctrl PtTransportCtrl_t;
struct ptdatatransctrl {
PtTransportHdr_t hdr;
PhTransportCtrl_t *ctrl;
PtWidget_t *widget;
PtRequestables_t *requestables;
PtRequestedLink_t *requested;
PhTransportLink_t *response;
PhTransportLink_t *last_response;
PtConnector_t *connector;
PtConnectionServer_t *connection;
int (*complete)(
PtTransportCtrl_t *tctrl,
short unsigned event_subtype );
void *data;
};
The PtTransportCtrl_t structure is used with the Photon
transport mechanism in a drag-and-drop operation.
Your application can pack multiple pieces of data into a single control
structure and transport them simultaneously.
Data can be packed inline or can be requestable.
The PtTransportCtrl_t structure includes:
- hdr
- Information about the connection and the size of the structure.
- ctrl
- A pointer to the low-level transport control structure.
For more information, see
PhTransportCtrl_t.
- widget
- A pointer to the widget that's currently involved in a drag-and-drop
operation, or NULL if there's no operation in progress.
- requestables
- A list of descriptions of requestable data.
- requested
- A list of data that the destination of the operation has requested.
- response
- A queue of response data (structures of type
PhTransportLink_t)
that can satisfy the destination's requests.
The source of the operation builds this list by calling
PtAddResponseType().
- last_response
- A pointer to the last addition to the response queue.
- connector
- A pointer to the connector.
For more information, see
PtConnectorCreate().
- connection
- A pointer to the connection structure, if a drag-and-drop operation is
in progress and the destination has connected.
- complete
- A function to be called when all the drag-and-drop transactions
(for a single drag-and-drop operation) are complete.
- data
- A pointer to the inline data being dragged.
Photon
PhTransportCtrl_t,
PhTransportLink_t,
PtAddResponseType(),
PtCreateTransportCtrl(),
PtInitDnd(),
PtReleaseTransportCtrl(),
PtTransportType()
Drag and Drop chapter
of the Photon Programmer's Guide