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 
35 G_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  */
47 typedef enum
48 {
49   GDK_PROP_MODE_REPLACE,
50   GDK_PROP_MODE_PREPEND,
51   GDK_PROP_MODE_APPEND
52 } GdkPropMode;
53 
54 
55 GDK_AVAILABLE_IN_ALL
56 GdkAtom gdk_atom_intern (const gchar *atom_name,
57                          gboolean     only_if_exists);
58 GDK_AVAILABLE_IN_ALL
59 GdkAtom gdk_atom_intern_static_string (const gchar *atom_name);
60 GDK_AVAILABLE_IN_ALL
61 gchar*  gdk_atom_name   (GdkAtom      atom);
62 
63 
64 GDK_AVAILABLE_IN_ALL
65 gboolean 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);
75 GDK_AVAILABLE_IN_ALL
76 void     gdk_property_change (GdkWindow     *window,
77                               GdkAtom        property,
78                               GdkAtom        type,
79                               gint           format,
80                               GdkPropMode    mode,
81                               const guchar  *data,
82                               gint           nelements);
83 GDK_AVAILABLE_IN_ALL
84 void     gdk_property_delete (GdkWindow     *window,
85                               GdkAtom        property);
86 
87 GDK_AVAILABLE_IN_ALL
88 gint   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 
95 GDK_AVAILABLE_IN_ALL
96 gchar *gdk_utf8_to_string_target                  (const gchar    *str);
97 
98 G_END_DECLS
99 
100 #endif /* __GDK_PROPERTY_H__ */
101