]> Pileus Git - ~andy/gtk/blob - gtk/gtktextbufferrichtext.h
Add infrastructure for copy/paste and DND of rich text for GtkTextBuffer.
[~andy/gtk] / gtk / gtktextbufferrichtext.h
1 /* gtkrichtext.h
2  *
3  * Copyright (C) 2006 Imendio AB
4  * Contact: Michael Natterer <mitch@imendio.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this library; if not, write to the
18  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  */
21
22 #ifndef __GTK_TEXT_BUFFER_RICH_TEXT_H__
23 #define __GTK_TEXT_BUFFER_RICH_TEXT_H__
24
25 #include <gtk/gtktextbuffer.h>
26
27 G_BEGIN_DECLS
28
29 typedef guint8 * (* GtkTextBufferSerializeFunc)   (GtkTextBuffer     *register_buffer,
30                                                    GtkTextBuffer     *content_buffer,
31                                                    const GtkTextIter *start,
32                                                    const GtkTextIter *end,
33                                                    gsize             *length,
34                                                    gpointer           user_data);
35 typedef gboolean (* GtkTextBufferDeserializeFunc) (GtkTextBuffer     *register_buffer,
36                                                    GtkTextBuffer     *content_buffer,
37                                                    GtkTextIter       *iter,
38                                                    const guint8      *data,
39                                                    gsize              length,
40                                                    gboolean           create_tags,
41                                                    gpointer           user_data,
42                                                    GError           **error);
43
44 GdkAtom   gtk_text_buffer_register_serialize_format   (GtkTextBuffer                *buffer,
45                                                        const gchar                  *mime_type,
46                                                        GtkTextBufferSerializeFunc    function,
47                                                        gpointer                      user_data,
48                                                        GDestroyNotify                user_data_destroy);
49 GdkAtom   gtk_text_buffer_register_serialize_tagset   (GtkTextBuffer                *buffer,
50                                                        const gchar                  *tagset_name);
51
52 GdkAtom   gtk_text_buffer_register_deserialize_format (GtkTextBuffer                *buffer,
53                                                        const gchar                  *mime_type,
54                                                        GtkTextBufferDeserializeFunc  function,
55                                                        gpointer                      user_data,
56                                                        GDestroyNotify                user_data_destroy);
57 GdkAtom   gtk_text_buffer_register_deserialize_tagset (GtkTextBuffer                *buffer,
58                                                        const gchar                  *tagset_name);
59
60 void    gtk_text_buffer_unregister_serialize_format   (GtkTextBuffer                *buffer,
61                                                        GdkAtom                       format);
62 void    gtk_text_buffer_unregister_deserialize_format (GtkTextBuffer                *buffer,
63                                                        GdkAtom                       format);
64
65 void     gtk_text_buffer_deserialize_set_can_create_tags (GtkTextBuffer             *buffer,
66                                                           GdkAtom                    format,
67                                                           gboolean                   can_create_tags);
68 gboolean gtk_text_buffer_deserialize_get_can_create_tags (GtkTextBuffer             *buffer,
69                                                           GdkAtom                    format);
70
71 GdkAtom * gtk_text_buffer_get_serialize_formats       (GtkTextBuffer                *buffer,
72                                                        gint                         *n_formats);
73 GdkAtom * gtk_text_buffer_get_deserialize_formats     (GtkTextBuffer                *buffer,
74                                                        gint                         *n_formats);
75
76 guint8  * gtk_text_buffer_serialize                   (GtkTextBuffer                *register_buffer,
77                                                        GtkTextBuffer                *content_buffer,
78                                                        GdkAtom                       format,
79                                                        const GtkTextIter            *start,
80                                                        const GtkTextIter            *end,
81                                                        gsize                        *length);
82 gboolean  gtk_text_buffer_deserialize                 (GtkTextBuffer                *register_buffer,
83                                                        GtkTextBuffer                *content_buffer,
84                                                        GdkAtom                       format,
85                                                        GtkTextIter                  *iter,
86                                                        const guint8                 *data,
87                                                        gsize                         length,
88                                                        GError                      **error);
89
90 G_END_DECLS
91
92 #endif /* __GTK_TEXT_BUFFER_RICH_TEXT_H__ */