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_PROPERTY_H__
26#define __GDK_PROPERTY_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
38/**
39 * GdkPropMode:
40 * @GDK_PROP_MODE_REPLACE: the new data replaces the existing data.
41 * @GDK_PROP_MODE_PREPEND: the new data is prepended to the existing data.
42 * @GDK_PROP_MODE_APPEND: the new data is appended to the existing data.
43 *
44 * Describes how existing data is combined with new data when
45 * using gdk_property_change().
46 */
47typedef enum
48{
49 GDK_PROP_MODE_REPLACE,
50 GDK_PROP_MODE_PREPEND,
51 GDK_PROP_MODE_APPEND
52} GdkPropMode;
53
54
55GDK_AVAILABLE_IN_ALL
56GdkAtom gdk_atom_intern (const gchar *atom_name,
57 gboolean only_if_exists);
58GDK_AVAILABLE_IN_ALL
59GdkAtom gdk_atom_intern_static_string (const gchar *atom_name);
60GDK_AVAILABLE_IN_ALL
61gchar* gdk_atom_name (GdkAtom atom);
62
63
64GDK_AVAILABLE_IN_ALL
65gboolean gdk_property_get (GdkWindow *window,
66 GdkAtom property,
67 GdkAtom type,
68 gulong offset,
69 gulong length,
70 gint pdelete,
71 GdkAtom *actual_property_type,
72 gint *actual_format,
73 gint *actual_length,
74 guchar **data);
75GDK_AVAILABLE_IN_ALL
76void gdk_property_change (GdkWindow *window,
77 GdkAtom property,
78 GdkAtom type,
79 gint format,
80 GdkPropMode mode,
81 const guchar *data,
82 gint nelements);
83GDK_AVAILABLE_IN_ALL
84void gdk_property_delete (GdkWindow *window,
85 GdkAtom property);
86
87GDK_AVAILABLE_IN_ALL
88gint gdk_text_property_to_utf8_list_for_display (GdkDisplay *display,
89 GdkAtom encoding,
90 gint format,
91 const guchar *text,
92 gint length,
93 gchar ***list);
94
95GDK_AVAILABLE_IN_ALL
96gchar *gdk_utf8_to_string_target (const gchar *str);
97
98G_END_DECLS
99
100#endif /* __GDK_PROPERTY_H__ */
101