ctrlsel.h - ledit - Text editor (WIP)
HTML git clone git://lumidify.org/ledit.git (fast, but not encrypted)
HTML git clone https://lumidify.org/ledit.git (encrypted, but very slow)
HTML git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/ledit.git (over tor)
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
ctrlsel.h (2004B)
---
1 /*
2 * ctrlsel: X11 selection ownership and request helper functions
3 *
4 * Refer to the accompanying manual for a description of the interface.
5 */
6 #ifndef _CTRLSEL_H_
7 #define _CTRLSEL_H_
8
9 enum {
10 CTRLSEL_NONE,
11 CTRLSEL_INTERNAL,
12 CTRLSEL_RECEIVED,
13 CTRLSEL_SENT,
14 CTRLSEL_DROPSELF,
15 CTRLSEL_DROPOTHER,
16 CTRLSEL_ERROR,
17 CTRLSEL_LOST
18 };
19
20 enum {
21 CTRLSEL_COPY = 0x01,
22 CTRLSEL_MOVE = 0x02,
23 CTRLSEL_LINK = 0x04,
24 CTRLSEL_ASK = 0x08,
25 CTRLSEL_PRIVATE = 0x10,
26 };
27
28 typedef struct CtrlSelContext CtrlSelContext;
29
30 struct CtrlSelTarget {
31 Atom target;
32 Atom type;
33 int format;
34 unsigned int action;
35 unsigned long nitems;
36 unsigned long bufsize;
37 unsigned char *buffer;
38 };
39
40 void
41 ctrlsel_filltarget(
42 Atom target,
43 Atom type,
44 int format,
45 unsigned char *buffer,
46 unsigned long size,
47 struct CtrlSelTarget *fill
48 );
49
50 CtrlSelContext *
51 ctrlsel_request(
52 Display *display,
53 Window window,
54 Atom selection,
55 Time time,
56 struct CtrlSelTarget targets[],
57 unsigned long ntargets
58 );
59
60 CtrlSelContext *
61 ctrlsel_setowner(
62 Display *display,
63 Window window,
64 Atom selection,
65 Time time,
66 int ismanager,
67 struct CtrlSelTarget targets[],
68 unsigned long ntargets
69 );
70
71 int ctrlsel_receive(struct CtrlSelContext *context, XEvent *event);
72
73 int ctrlsel_send(struct CtrlSelContext *context, XEvent *event);
74
75 void ctrlsel_cancel(struct CtrlSelContext *context);
76
77 void ctrlsel_disown(struct CtrlSelContext *context);
78
79 CtrlSelContext *
80 ctrlsel_dndwatch(
81 Display *display,
82 Window window,
83 unsigned int actions,
84 struct CtrlSelTarget targets[],
85 unsigned long ntargets
86 );
87
88 int ctrlsel_dndreceive(struct CtrlSelContext *context, XEvent *event);
89
90 void ctrlsel_dndclose(struct CtrlSelContext *context);
91
92 int
93 ctrlsel_dndown(
94 Display *display,
95 Window window,
96 Window miniature,
97 Time time,
98 struct CtrlSelTarget targets[],
99 unsigned long ntargets,
100 CtrlSelContext **context
101 );
102
103 int ctrlsel_dndsend(struct CtrlSelContext *context, XEvent *event);
104
105 void ctrlsel_dnddisown(struct CtrlSelContext *context);
106
107 #endif /* _CTRLSEL_H_ */