ctrlsel.h - ledit - Text editor (WIP) | |
git clone git://lumidify.org/ledit.git (fast, but not encrypted) | |
git clone https://lumidify.org/ledit.git (encrypted, but very slow) | |
git clone git://4kcetb7mo7hj6grozzybxtotsub5bempzo4lirzc3437amof2c2impyd.onion/… | |
Log | |
Files | |
Refs | |
README | |
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_ */ |