SDL  2.0
The wl_data_device_manager interface

The wl_data_device_manager is a singleton global object that provides access to inter-client data transfer mechanisms such as copy-and-paste and drag-and-drop. These mechanisms are tied to a wl_seat and this interface lets a client get a wl_data_device corresponding to a wl_seat. More...

Macros

#define WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE_SINCE_VERSION   1
 
#define WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE_SINCE_VERSION   1
 

Enumerations

enum  wl_data_device_manager_dnd_action {
  WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE = 0,
  WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY = 1,
  WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE = 2,
  WL_DATA_DEVICE_MANAGER_DND_ACTION_ASK = 4
}
 

Functions

static void wl_data_device_manager_set_user_data (struct wl_data_device_manager *wl_data_device_manager, void *user_data)
 
static voidwl_data_device_manager_get_user_data (struct wl_data_device_manager *wl_data_device_manager)
 
static void wl_data_device_manager_destroy (struct wl_data_device_manager *wl_data_device_manager)
 
static struct wl_data_source * wl_data_device_manager_create_data_source (struct wl_data_device_manager *wl_data_device_manager)
 
static struct wl_data_device * wl_data_device_manager_get_data_device (struct wl_data_device_manager *wl_data_device_manager, struct wl_seat *seat)
 

Detailed Description

The wl_data_device_manager is a singleton global object that provides access to inter-client data transfer mechanisms such as copy-and-paste and drag-and-drop. These mechanisms are tied to a wl_seat and this interface lets a client get a wl_data_device corresponding to a wl_seat.

Depending on the version bound, the objects created from the bound wl_data_device_manager object will have different requirements for functioning properly. See wl_data_source.set_actions, wl_data_offer.accept and wl_data_offer.finish for details.

Macro Definition Documentation

◆ WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE_SINCE_VERSION

#define WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE_SINCE_VERSION   1

Definition at line 2642 of file wayland-client-protocol.h.

◆ WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE_SINCE_VERSION

#define WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE_SINCE_VERSION   1

Definition at line 2646 of file wayland-client-protocol.h.

Enumeration Type Documentation

◆ wl_data_device_manager_dnd_action

drag and drop actions

This is a bitmask of the available/preferred actions in a drag-and-drop operation.

In the compositor, the selected action is a result of matching the actions offered by the source and destination sides. "action" events with a "none" action will be sent to both source and destination if there is no match. All further checks will effectively happen on (source actions ∩ destination actions).

In addition, compositors may also pick different actions in reaction to key modifiers being pressed. One common design that is used in major toolkits (and the behavior recommended for compositors) is:

  • If no modifiers are pressed, the first match (in bit order) will be used.
  • Pressing Shift selects "move", if enabled in the mask.
  • Pressing Control selects "copy", if enabled in the mask.

Behavior beyond that is considered implementation-dependent. Compositors may for example bind other modifiers (like Alt/Meta) or drags initiated with other buttons than BTN_LEFT to specific actions (e.g. "ask").

Enumerator
WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE 

no action

WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY 

copy action

WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE 

move action

WL_DATA_DEVICE_MANAGER_DND_ACTION_ASK 

ask action

Definition at line 2614 of file wayland-client-protocol.h.

2614  {
2615  /**
2616  * no action
2617  */
2619  /**
2620  * copy action
2621  */
2623  /**
2624  * move action
2625  */
2627  /**
2628  * ask action
2629  */
2631 };

Function Documentation

◆ wl_data_device_manager_create_data_source()

static struct wl_data_source* wl_data_device_manager_create_data_source ( struct wl_data_device_manager *  wl_data_device_manager)
inlinestatic

Create a new data source.

Definition at line 2680 of file wayland-client-protocol.h.

2681 {
2682  struct wl_proxy *id;
2683 
2684  id = wl_proxy_marshal_constructor((struct wl_proxy *) wl_data_device_manager,
2686 
2687  return (struct wl_data_source *) id;
2688 }

References NULL, WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE, and wl_data_source_interface.

◆ wl_data_device_manager_destroy()

static void wl_data_device_manager_destroy ( struct wl_data_device_manager *  wl_data_device_manager)
inlinestatic

Definition at line 2669 of file wayland-client-protocol.h.

2670 {
2671  wl_proxy_destroy((struct wl_proxy *) wl_data_device_manager);
2672 }

◆ wl_data_device_manager_get_data_device()

static struct wl_data_device* wl_data_device_manager_get_data_device ( struct wl_data_device_manager *  wl_data_device_manager,
struct wl_seat *  seat 
)
inlinestatic

Create a new data device for a given seat.

Definition at line 2696 of file wayland-client-protocol.h.

2697 {
2698  struct wl_proxy *id;
2699 
2700  id = wl_proxy_marshal_constructor((struct wl_proxy *) wl_data_device_manager,
2702 
2703  return (struct wl_data_device *) id;
2704 }

References NULL, wl_data_device_interface, and WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE.

◆ wl_data_device_manager_get_user_data()

static void* wl_data_device_manager_get_user_data ( struct wl_data_device_manager *  wl_data_device_manager)
inlinestatic

Definition at line 2656 of file wayland-client-protocol.h.

2657 {
2658  return wl_proxy_get_user_data((struct wl_proxy *) wl_data_device_manager);
2659 }

◆ wl_data_device_manager_set_user_data()

static void wl_data_device_manager_set_user_data ( struct wl_data_device_manager *  wl_data_device_manager,
void user_data 
)
inlinestatic

Definition at line 2649 of file wayland-client-protocol.h.

2650 {
2651  wl_proxy_set_user_data((struct wl_proxy *) wl_data_device_manager, user_data);
2652 }
wl_data_device_interface
const struct wl_interface wl_data_device_interface
Definition: wayland-protocol.c:297
NULL
#define NULL
Definition: begin_code.h:167
WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE
#define WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE
Definition: wayland-client-protocol.h:2634
WL_DATA_DEVICE_MANAGER_DND_ACTION_ASK
@ WL_DATA_DEVICE_MANAGER_DND_ACTION_ASK
Definition: wayland-client-protocol.h:2630
WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE
@ WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE
Definition: wayland-client-protocol.h:2626
WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE
@ WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE
Definition: wayland-client-protocol.h:2618
WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE
#define WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE
Definition: wayland-client-protocol.h:2635
id
GLuint id
Definition: SDL_opengl_glext.h:531
WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY
@ WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY
Definition: wayland-client-protocol.h:2622
wl_data_source_interface
const struct wl_interface wl_data_source_interface
Definition: wayland-protocol.c:276