1/* GDK - The GIMP Drawing Kit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18/*
19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the GTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23 */
24
25#ifndef __GDK_SELECTION_H__
26#define __GDK_SELECTION_H__
27
28#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
29#error "Only <gdk/gdk.h> can be included directly."
30#endif
31
32#include <gdk/gdktypes.h>
33#include <gdk/gdkversionmacros.h>
34
35G_BEGIN_DECLS
36
37/* Predefined atoms relating to selections. In general, one will need to use
38 * gdk_intern_atom
39 */
40/**
41 * GDK_SELECTION_PRIMARY:
42 *
43 * A #GdkAtom representing the `PRIMARY` selection.
44 */
45#define GDK_SELECTION_PRIMARY _GDK_MAKE_ATOM (1)
46
47/**
48 * GDK_SELECTION_SECONDARY:
49 *
50 * A #GdkAtom representing the `SECONDARY` selection.
51 */
52#define GDK_SELECTION_SECONDARY _GDK_MAKE_ATOM (2)
53
54/**
55 * GDK_SELECTION_CLIPBOARD:
56 *
57 * A #GdkAtom representing the `CLIPBOARD` selection.
58 */
59#define GDK_SELECTION_CLIPBOARD _GDK_MAKE_ATOM (69)
60
61/**
62 * GDK_TARGET_BITMAP:
63 *
64 * A #GdkAtom representing the `BITMAP` selection target.
65 */
66#define GDK_TARGET_BITMAP _GDK_MAKE_ATOM (5)
67
68/**
69 * GDK_TARGET_COLORMAP:
70 *
71 * A #GdkAtom representing the `COLORMAP` selection target.
72 */
73#define GDK_TARGET_COLORMAP _GDK_MAKE_ATOM (7)
74
75/**
76 * GDK_TARGET_DRAWABLE:
77 *
78 * A #GdkAtom representing the `DRAWABLE` selection target.
79 */
80#define GDK_TARGET_DRAWABLE _GDK_MAKE_ATOM (17)
81
82/**
83 * GDK_TARGET_PIXMAP:
84 *
85 * A #GdkAtom representing the `PIXMAP` selection target.
86 */
87#define GDK_TARGET_PIXMAP _GDK_MAKE_ATOM (20)
88
89/**
90 * GDK_TARGET_STRING:
91 *
92 * A #GdkAtom representing the `STRING` selection target.
93 */
94#define GDK_TARGET_STRING _GDK_MAKE_ATOM (31)
95
96/**
97 * GDK_SELECTION_TYPE_ATOM:
98 *
99 * A #GdkAtom representing the `ATOM` selection type.
100 */
101#define GDK_SELECTION_TYPE_ATOM _GDK_MAKE_ATOM (4)
102
103/**
104 * GDK_SELECTION_TYPE_BITMAP:
105 *
106 * A #GdkAtom representing the `BITMAP` selection type.
107 */
108#define GDK_SELECTION_TYPE_BITMAP _GDK_MAKE_ATOM (5)
109
110/**
111 * GDK_SELECTION_TYPE_COLORMAP:
112 *
113 * A #GdkAtom representing the `COLORMAP` selection type.
114 */
115#define GDK_SELECTION_TYPE_COLORMAP _GDK_MAKE_ATOM (7)
116
117/**
118 * GDK_SELECTION_TYPE_DRAWABLE:
119 *
120 * A #GdkAtom representing the `DRAWABLE` selection type.
121 */
122#define GDK_SELECTION_TYPE_DRAWABLE _GDK_MAKE_ATOM (17)
123
124/**
125 * GDK_SELECTION_TYPE_INTEGER:
126 *
127 * A #GdkAtom representing the `INTEGER` selection type.
128 */
129#define GDK_SELECTION_TYPE_INTEGER _GDK_MAKE_ATOM (19)
130
131/**
132 * GDK_SELECTION_TYPE_PIXMAP:
133 *
134 * A #GdkAtom representing the `PIXMAP` selection type.
135 */
136#define GDK_SELECTION_TYPE_PIXMAP _GDK_MAKE_ATOM (20)
137
138/**
139 * GDK_SELECTION_TYPE_WINDOW:
140 *
141 * A #GdkAtom representing the `WINDOW` selection type.
142 */
143#define GDK_SELECTION_TYPE_WINDOW _GDK_MAKE_ATOM (33)
144
145/**
146 * GDK_SELECTION_TYPE_STRING:
147 *
148 * A #GdkAtom representing the `STRING` selection type.
149 */
150#define GDK_SELECTION_TYPE_STRING _GDK_MAKE_ATOM (31)
151
152/* Selections
153 */
154
155GDK_AVAILABLE_IN_ALL
156gboolean gdk_selection_owner_set (GdkWindow *owner,
157 GdkAtom selection,
158 guint32 time_,
159 gboolean send_event);
160GDK_AVAILABLE_IN_ALL
161GdkWindow* gdk_selection_owner_get (GdkAtom selection);
162GDK_AVAILABLE_IN_ALL
163gboolean gdk_selection_owner_set_for_display (GdkDisplay *display,
164 GdkWindow *owner,
165 GdkAtom selection,
166 guint32 time_,
167 gboolean send_event);
168GDK_AVAILABLE_IN_ALL
169GdkWindow *gdk_selection_owner_get_for_display (GdkDisplay *display,
170 GdkAtom selection);
171
172/**
173 * gdk_selection_convert:
174 * @requestor: a #GdkWindow.
175 * @selection: an atom identifying the selection to get the
176 * contents of.
177 * @target: the form in which to retrieve the selection.
178 * @time_: the timestamp to use when retrieving the
179 * selection. The selection owner may refuse the
180 * request if it did not own the selection at
181 * the time indicated by the timestamp.
182 *
183 * Retrieves the contents of a selection in a given
184 * form.
185 */
186GDK_AVAILABLE_IN_ALL
187void gdk_selection_convert (GdkWindow *requestor,
188 GdkAtom selection,
189 GdkAtom target,
190 guint32 time_);
191GDK_AVAILABLE_IN_ALL
192gint gdk_selection_property_get (GdkWindow *requestor,
193 guchar **data,
194 GdkAtom *prop_type,
195 gint *prop_format);
196
197GDK_AVAILABLE_IN_ALL
198void gdk_selection_send_notify (GdkWindow *requestor,
199 GdkAtom selection,
200 GdkAtom target,
201 GdkAtom property,
202 guint32 time_);
203
204GDK_AVAILABLE_IN_ALL
205void gdk_selection_send_notify_for_display (GdkDisplay *display,
206 GdkWindow *requestor,
207 GdkAtom selection,
208 GdkAtom target,
209 GdkAtom property,
210 guint32 time_);
211
212G_END_DECLS
213
214#endif /* __GDK_SELECTION_H__ */
215