These functions match closely to the AtkText interface; they will be used in the GtkTextView accessible implementation. Keep them private for now.
		
			
				
	
	
		
			411 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			411 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* GTK - The GIMP Toolkit
 | 
						|
 * gtktextbuffer.h Copyright (C) 2000 Red Hat, Inc.
 | 
						|
 *
 | 
						|
 * This library is free software; you can redistribute it and/or
 | 
						|
 * modify it under the terms of the GNU Lesser General Public
 | 
						|
 * License as published by the Free Software Foundation; either
 | 
						|
 * version 2 of the License, or (at your option) any later version.
 | 
						|
 *
 | 
						|
 * This library is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
 * Lesser General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU Lesser General Public
 | 
						|
 * License along with this library; if not, write to the
 | 
						|
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
						|
 * Boston, MA 02111-1307, USA.
 | 
						|
 */
 | 
						|
 | 
						|
/*
 | 
						|
 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
 | 
						|
 * file for a list of people on the GTK+ Team.  See the ChangeLog
 | 
						|
 * files for a list of changes.  These files are distributed with
 | 
						|
 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
 | 
						|
 */
 | 
						|
 | 
						|
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
 | 
						|
#error "Only <gtk/gtk.h> can be included directly."
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef __GTK_TEXT_BUFFER_H__
 | 
						|
#define __GTK_TEXT_BUFFER_H__
 | 
						|
 | 
						|
#include <gtk/gtkwidget.h>
 | 
						|
#include <gtk/gtkclipboard.h>
 | 
						|
#include <gtk/gtktexttagtable.h>
 | 
						|
#include <gtk/gtktextiter.h>
 | 
						|
#include <gtk/gtktextmark.h>
 | 
						|
#include <gtk/gtktextchild.h>
 | 
						|
 | 
						|
G_BEGIN_DECLS
 | 
						|
 | 
						|
/*
 | 
						|
 * This is the PUBLIC representation of a text buffer.
 | 
						|
 * GtkTextBTree is the PRIVATE internal representation of it.
 | 
						|
 */
 | 
						|
 | 
						|
/* these values are used as "info" for the targets contained in the
 | 
						|
 * lists returned by gtk_text_buffer_get_copy,paste_target_list()
 | 
						|
 *
 | 
						|
 * the enum counts down from G_MAXUINT to avoid clashes with application
 | 
						|
 * added drag destinations which usually start at 0.
 | 
						|
 */
 | 
						|
typedef enum
 | 
						|
{
 | 
						|
  GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS = - 1,
 | 
						|
  GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT       = - 2,
 | 
						|
  GTK_TEXT_BUFFER_TARGET_INFO_TEXT            = - 3
 | 
						|
} GtkTextBufferTargetInfo;
 | 
						|
 | 
						|
typedef struct _GtkTextBTree GtkTextBTree;
 | 
						|
 | 
						|
#define GTK_TYPE_TEXT_BUFFER            (gtk_text_buffer_get_type ())
 | 
						|
#define GTK_TEXT_BUFFER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_BUFFER, GtkTextBuffer))
 | 
						|
#define GTK_TEXT_BUFFER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_BUFFER, GtkTextBufferClass))
 | 
						|
#define GTK_IS_TEXT_BUFFER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT_BUFFER))
 | 
						|
#define GTK_IS_TEXT_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_BUFFER))
 | 
						|
#define GTK_TEXT_BUFFER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_BUFFER, GtkTextBufferClass))
 | 
						|
 | 
						|
typedef struct _GtkTextBufferPrivate GtkTextBufferPrivate;
 | 
						|
typedef struct _GtkTextBufferClass GtkTextBufferClass;
 | 
						|
 | 
						|
struct _GtkTextBuffer
 | 
						|
{
 | 
						|
  GObject parent_instance;
 | 
						|
 | 
						|
  GtkTextBufferPrivate *priv;
 | 
						|
};
 | 
						|
 | 
						|
struct _GtkTextBufferClass
 | 
						|
{
 | 
						|
  GObjectClass parent_class;
 | 
						|
 | 
						|
  void (* insert_text)     (GtkTextBuffer *buffer,
 | 
						|
                            GtkTextIter *pos,
 | 
						|
                            const gchar *new_text,
 | 
						|
                            gint new_text_length);
 | 
						|
 | 
						|
  void (* insert_pixbuf)   (GtkTextBuffer *buffer,
 | 
						|
                            GtkTextIter   *iter,
 | 
						|
                            GdkPixbuf     *pixbuf);
 | 
						|
 | 
						|
  void (* insert_child_anchor)   (GtkTextBuffer      *buffer,
 | 
						|
                                  GtkTextIter        *iter,
 | 
						|
                                  GtkTextChildAnchor *anchor);
 | 
						|
 | 
						|
  void (* delete_range)     (GtkTextBuffer *buffer,
 | 
						|
                             GtkTextIter   *start,
 | 
						|
                             GtkTextIter   *end);
 | 
						|
 | 
						|
  /* Only for text/widgets/pixbuf changed, marks/tags don't cause this
 | 
						|
   * to be emitted
 | 
						|
   */
 | 
						|
  void (* changed)         (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
 | 
						|
  /* New value for the modified flag */
 | 
						|
  void (* modified_changed)   (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
  /* Mark moved or created */
 | 
						|
  void (* mark_set)           (GtkTextBuffer *buffer,
 | 
						|
                               const GtkTextIter *location,
 | 
						|
                               GtkTextMark *mark);
 | 
						|
 | 
						|
  void (* mark_deleted)       (GtkTextBuffer *buffer,
 | 
						|
                               GtkTextMark *mark);
 | 
						|
 | 
						|
  void (* apply_tag)          (GtkTextBuffer *buffer,
 | 
						|
                               GtkTextTag *tag,
 | 
						|
                               const GtkTextIter *start,
 | 
						|
                               const GtkTextIter *end);
 | 
						|
 | 
						|
  void (* remove_tag)         (GtkTextBuffer *buffer,
 | 
						|
                               GtkTextTag *tag,
 | 
						|
                               const GtkTextIter *start,
 | 
						|
                               const GtkTextIter *end);
 | 
						|
 | 
						|
  /* Called at the start and end of an atomic user action */
 | 
						|
  void (* begin_user_action)  (GtkTextBuffer *buffer);
 | 
						|
  void (* end_user_action)    (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
  void (* paste_done)         (GtkTextBuffer *buffer,
 | 
						|
                               GtkClipboard  *clipboard);
 | 
						|
 | 
						|
  /* Padding for future expansion */
 | 
						|
  void (*_gtk_reserved1) (void);
 | 
						|
  void (*_gtk_reserved2) (void);
 | 
						|
  void (*_gtk_reserved3) (void);
 | 
						|
  void (*_gtk_reserved4) (void);
 | 
						|
};
 | 
						|
 | 
						|
GType        gtk_text_buffer_get_type       (void) G_GNUC_CONST;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* table is NULL to create a new one */
 | 
						|
GtkTextBuffer *gtk_text_buffer_new            (GtkTextTagTable *table);
 | 
						|
gint           gtk_text_buffer_get_line_count (GtkTextBuffer   *buffer);
 | 
						|
gint           gtk_text_buffer_get_char_count (GtkTextBuffer   *buffer);
 | 
						|
 | 
						|
 | 
						|
GtkTextTagTable* gtk_text_buffer_get_tag_table (GtkTextBuffer  *buffer);
 | 
						|
 | 
						|
/* Delete whole buffer, then insert */
 | 
						|
void gtk_text_buffer_set_text          (GtkTextBuffer *buffer,
 | 
						|
                                        const gchar   *text,
 | 
						|
                                        gint           len);
 | 
						|
 | 
						|
/* Insert into the buffer */
 | 
						|
void gtk_text_buffer_insert            (GtkTextBuffer *buffer,
 | 
						|
                                        GtkTextIter   *iter,
 | 
						|
                                        const gchar   *text,
 | 
						|
                                        gint           len);
 | 
						|
void gtk_text_buffer_insert_at_cursor  (GtkTextBuffer *buffer,
 | 
						|
                                        const gchar   *text,
 | 
						|
                                        gint           len);
 | 
						|
 | 
						|
gboolean gtk_text_buffer_insert_interactive           (GtkTextBuffer *buffer,
 | 
						|
                                                       GtkTextIter   *iter,
 | 
						|
                                                       const gchar   *text,
 | 
						|
                                                       gint           len,
 | 
						|
                                                       gboolean       default_editable);
 | 
						|
gboolean gtk_text_buffer_insert_interactive_at_cursor (GtkTextBuffer *buffer,
 | 
						|
                                                       const gchar   *text,
 | 
						|
                                                       gint           len,
 | 
						|
                                                       gboolean       default_editable);
 | 
						|
 | 
						|
void     gtk_text_buffer_insert_range             (GtkTextBuffer     *buffer,
 | 
						|
                                                   GtkTextIter       *iter,
 | 
						|
                                                   const GtkTextIter *start,
 | 
						|
                                                   const GtkTextIter *end);
 | 
						|
gboolean gtk_text_buffer_insert_range_interactive (GtkTextBuffer     *buffer,
 | 
						|
                                                   GtkTextIter       *iter,
 | 
						|
                                                   const GtkTextIter *start,
 | 
						|
                                                   const GtkTextIter *end,
 | 
						|
                                                   gboolean           default_editable);
 | 
						|
 | 
						|
void    gtk_text_buffer_insert_with_tags          (GtkTextBuffer     *buffer,
 | 
						|
                                                   GtkTextIter       *iter,
 | 
						|
                                                   const gchar       *text,
 | 
						|
                                                   gint               len,
 | 
						|
                                                   GtkTextTag        *first_tag,
 | 
						|
                                                   ...) G_GNUC_NULL_TERMINATED;
 | 
						|
 | 
						|
void    gtk_text_buffer_insert_with_tags_by_name  (GtkTextBuffer     *buffer,
 | 
						|
                                                   GtkTextIter       *iter,
 | 
						|
                                                   const gchar       *text,
 | 
						|
                                                   gint               len,
 | 
						|
                                                   const gchar       *first_tag_name,
 | 
						|
                                                   ...) G_GNUC_NULL_TERMINATED;
 | 
						|
 | 
						|
/* Delete from the buffer */
 | 
						|
void     gtk_text_buffer_delete             (GtkTextBuffer *buffer,
 | 
						|
					     GtkTextIter   *start,
 | 
						|
					     GtkTextIter   *end);
 | 
						|
gboolean gtk_text_buffer_delete_interactive (GtkTextBuffer *buffer,
 | 
						|
					     GtkTextIter   *start_iter,
 | 
						|
					     GtkTextIter   *end_iter,
 | 
						|
					     gboolean       default_editable);
 | 
						|
gboolean gtk_text_buffer_backspace          (GtkTextBuffer *buffer,
 | 
						|
					     GtkTextIter   *iter,
 | 
						|
					     gboolean       interactive,
 | 
						|
					     gboolean       default_editable);
 | 
						|
 | 
						|
/* Obtain strings from the buffer */
 | 
						|
gchar          *gtk_text_buffer_get_text            (GtkTextBuffer     *buffer,
 | 
						|
                                                     const GtkTextIter *start,
 | 
						|
                                                     const GtkTextIter *end,
 | 
						|
                                                     gboolean           include_hidden_chars);
 | 
						|
 | 
						|
gchar          *gtk_text_buffer_get_slice           (GtkTextBuffer     *buffer,
 | 
						|
                                                     const GtkTextIter *start,
 | 
						|
                                                     const GtkTextIter *end,
 | 
						|
                                                     gboolean           include_hidden_chars);
 | 
						|
 | 
						|
/* Insert a pixbuf */
 | 
						|
void gtk_text_buffer_insert_pixbuf         (GtkTextBuffer *buffer,
 | 
						|
                                            GtkTextIter   *iter,
 | 
						|
                                            GdkPixbuf     *pixbuf);
 | 
						|
 | 
						|
/* Insert a child anchor */
 | 
						|
void               gtk_text_buffer_insert_child_anchor (GtkTextBuffer      *buffer,
 | 
						|
                                                        GtkTextIter        *iter,
 | 
						|
                                                        GtkTextChildAnchor *anchor);
 | 
						|
 | 
						|
/* Convenience, create and insert a child anchor */
 | 
						|
GtkTextChildAnchor *gtk_text_buffer_create_child_anchor (GtkTextBuffer *buffer,
 | 
						|
                                                         GtkTextIter   *iter);
 | 
						|
 | 
						|
/* Mark manipulation */
 | 
						|
void           gtk_text_buffer_add_mark    (GtkTextBuffer     *buffer,
 | 
						|
                                            GtkTextMark       *mark,
 | 
						|
                                            const GtkTextIter *where);
 | 
						|
GtkTextMark   *gtk_text_buffer_create_mark (GtkTextBuffer     *buffer,
 | 
						|
                                            const gchar       *mark_name,
 | 
						|
                                            const GtkTextIter *where,
 | 
						|
                                            gboolean           left_gravity);
 | 
						|
void           gtk_text_buffer_move_mark   (GtkTextBuffer     *buffer,
 | 
						|
                                            GtkTextMark       *mark,
 | 
						|
                                            const GtkTextIter *where);
 | 
						|
void           gtk_text_buffer_delete_mark (GtkTextBuffer     *buffer,
 | 
						|
                                            GtkTextMark       *mark);
 | 
						|
GtkTextMark*   gtk_text_buffer_get_mark    (GtkTextBuffer     *buffer,
 | 
						|
                                            const gchar       *name);
 | 
						|
 | 
						|
void gtk_text_buffer_move_mark_by_name   (GtkTextBuffer     *buffer,
 | 
						|
                                          const gchar       *name,
 | 
						|
                                          const GtkTextIter *where);
 | 
						|
void gtk_text_buffer_delete_mark_by_name (GtkTextBuffer     *buffer,
 | 
						|
                                          const gchar       *name);
 | 
						|
 | 
						|
GtkTextMark* gtk_text_buffer_get_insert          (GtkTextBuffer *buffer);
 | 
						|
GtkTextMark* gtk_text_buffer_get_selection_bound (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
/* efficiently move insert and selection_bound at the same time */
 | 
						|
void gtk_text_buffer_place_cursor (GtkTextBuffer     *buffer,
 | 
						|
                                   const GtkTextIter *where);
 | 
						|
void gtk_text_buffer_select_range (GtkTextBuffer     *buffer,
 | 
						|
                                   const GtkTextIter *ins,
 | 
						|
				   const GtkTextIter *bound);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* Tag manipulation */
 | 
						|
void gtk_text_buffer_apply_tag             (GtkTextBuffer     *buffer,
 | 
						|
                                            GtkTextTag        *tag,
 | 
						|
                                            const GtkTextIter *start,
 | 
						|
                                            const GtkTextIter *end);
 | 
						|
void gtk_text_buffer_remove_tag            (GtkTextBuffer     *buffer,
 | 
						|
                                            GtkTextTag        *tag,
 | 
						|
                                            const GtkTextIter *start,
 | 
						|
                                            const GtkTextIter *end);
 | 
						|
void gtk_text_buffer_apply_tag_by_name     (GtkTextBuffer     *buffer,
 | 
						|
                                            const gchar       *name,
 | 
						|
                                            const GtkTextIter *start,
 | 
						|
                                            const GtkTextIter *end);
 | 
						|
void gtk_text_buffer_remove_tag_by_name    (GtkTextBuffer     *buffer,
 | 
						|
                                            const gchar       *name,
 | 
						|
                                            const GtkTextIter *start,
 | 
						|
                                            const GtkTextIter *end);
 | 
						|
void gtk_text_buffer_remove_all_tags       (GtkTextBuffer     *buffer,
 | 
						|
                                            const GtkTextIter *start,
 | 
						|
                                            const GtkTextIter *end);
 | 
						|
 | 
						|
 | 
						|
/* You can either ignore the return value, or use it to
 | 
						|
 * set the attributes of the tag. tag_name can be NULL
 | 
						|
 */
 | 
						|
GtkTextTag    *gtk_text_buffer_create_tag (GtkTextBuffer *buffer,
 | 
						|
                                           const gchar   *tag_name,
 | 
						|
                                           const gchar   *first_property_name,
 | 
						|
                                           ...);
 | 
						|
 | 
						|
/* Obtain iterators pointed at various places, then you can move the
 | 
						|
 * iterator around using the GtkTextIter operators
 | 
						|
 */
 | 
						|
void gtk_text_buffer_get_iter_at_line_offset (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter,
 | 
						|
                                              gint           line_number,
 | 
						|
                                              gint           char_offset);
 | 
						|
void gtk_text_buffer_get_iter_at_line_index  (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter,
 | 
						|
                                              gint           line_number,
 | 
						|
                                              gint           byte_index);
 | 
						|
void gtk_text_buffer_get_iter_at_offset      (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter,
 | 
						|
                                              gint           char_offset);
 | 
						|
void gtk_text_buffer_get_iter_at_line        (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter,
 | 
						|
                                              gint           line_number);
 | 
						|
void gtk_text_buffer_get_start_iter          (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter);
 | 
						|
void gtk_text_buffer_get_end_iter            (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter);
 | 
						|
void gtk_text_buffer_get_bounds              (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *start,
 | 
						|
                                              GtkTextIter   *end);
 | 
						|
void gtk_text_buffer_get_iter_at_mark        (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextIter   *iter,
 | 
						|
                                              GtkTextMark   *mark);
 | 
						|
 | 
						|
void gtk_text_buffer_get_iter_at_child_anchor (GtkTextBuffer      *buffer,
 | 
						|
                                               GtkTextIter        *iter,
 | 
						|
                                               GtkTextChildAnchor *anchor);
 | 
						|
 | 
						|
/* There's no get_first_iter because you just get the iter for
 | 
						|
   line or char 0 */
 | 
						|
 | 
						|
/* Used to keep track of whether the buffer needs saving; anytime the
 | 
						|
   buffer contents change, the modified flag is turned on. Whenever
 | 
						|
   you save, turn it off. Tags and marks do not affect the modified
 | 
						|
   flag, but if you would like them to you can connect a handler to
 | 
						|
   the tag/mark signals and call set_modified in your handler */
 | 
						|
 | 
						|
gboolean        gtk_text_buffer_get_modified            (GtkTextBuffer *buffer);
 | 
						|
void            gtk_text_buffer_set_modified            (GtkTextBuffer *buffer,
 | 
						|
                                                         gboolean       setting);
 | 
						|
 | 
						|
gboolean        gtk_text_buffer_get_has_selection       (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
void gtk_text_buffer_add_selection_clipboard    (GtkTextBuffer     *buffer,
 | 
						|
						 GtkClipboard      *clipboard);
 | 
						|
void gtk_text_buffer_remove_selection_clipboard (GtkTextBuffer     *buffer,
 | 
						|
						 GtkClipboard      *clipboard);
 | 
						|
 | 
						|
void            gtk_text_buffer_cut_clipboard           (GtkTextBuffer *buffer,
 | 
						|
							 GtkClipboard  *clipboard,
 | 
						|
                                                         gboolean       default_editable);
 | 
						|
void            gtk_text_buffer_copy_clipboard          (GtkTextBuffer *buffer,
 | 
						|
							 GtkClipboard  *clipboard);
 | 
						|
void            gtk_text_buffer_paste_clipboard         (GtkTextBuffer *buffer,
 | 
						|
							 GtkClipboard  *clipboard,
 | 
						|
							 GtkTextIter   *override_location,
 | 
						|
                                                         gboolean       default_editable);
 | 
						|
 | 
						|
gboolean        gtk_text_buffer_get_selection_bounds    (GtkTextBuffer *buffer,
 | 
						|
                                                         GtkTextIter   *start,
 | 
						|
                                                         GtkTextIter   *end);
 | 
						|
gboolean        gtk_text_buffer_delete_selection        (GtkTextBuffer *buffer,
 | 
						|
                                                         gboolean       interactive,
 | 
						|
                                                         gboolean       default_editable);
 | 
						|
 | 
						|
/* Called to specify atomic user actions, used to implement undo */
 | 
						|
void            gtk_text_buffer_begin_user_action       (GtkTextBuffer *buffer);
 | 
						|
void            gtk_text_buffer_end_user_action         (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
GtkTargetList * gtk_text_buffer_get_copy_target_list    (GtkTextBuffer *buffer);
 | 
						|
GtkTargetList * gtk_text_buffer_get_paste_target_list   (GtkTextBuffer *buffer);
 | 
						|
 | 
						|
/* INTERNAL private stuff */
 | 
						|
void            _gtk_text_buffer_spew                  (GtkTextBuffer      *buffer);
 | 
						|
 | 
						|
GtkTextBTree*   _gtk_text_buffer_get_btree             (GtkTextBuffer      *buffer);
 | 
						|
 | 
						|
const PangoLogAttr* _gtk_text_buffer_get_line_log_attrs (GtkTextBuffer     *buffer,
 | 
						|
                                                         const GtkTextIter *anywhere_in_line,
 | 
						|
                                                         gint              *char_len);
 | 
						|
 | 
						|
void _gtk_text_buffer_notify_will_remove_tag (GtkTextBuffer *buffer,
 | 
						|
                                              GtkTextTag    *tag);
 | 
						|
 | 
						|
void _gtk_text_buffer_get_text_before (GtkTextBuffer   *buffer,
 | 
						|
                                       AtkTextBoundary  boundary_type,
 | 
						|
                                       GtkTextIter     *position,
 | 
						|
                                       GtkTextIter     *start,
 | 
						|
                                       GtkTextIter     *end);
 | 
						|
void _gtk_text_buffer_get_text_at     (GtkTextBuffer   *buffer,
 | 
						|
                                       AtkTextBoundary  boundary_type,
 | 
						|
                                       GtkTextIter     *position,
 | 
						|
                                       GtkTextIter     *start,
 | 
						|
                                       GtkTextIter     *end);
 | 
						|
void _gtk_text_buffer_get_text_after  (GtkTextBuffer   *buffer,
 | 
						|
                                       AtkTextBoundary  boundary_type,
 | 
						|
                                       GtkTextIter     *position,
 | 
						|
                                       GtkTextIter     *start,
 | 
						|
                                       GtkTextIter     *end);
 | 
						|
 | 
						|
G_END_DECLS
 | 
						|
 | 
						|
#endif
 |