gtk2/gtk/gtktextmarkprivate.h
Havoc Pennington e86329d5d4 Test program to make sure GtkTextBuffer is in working order.
2000-06-02  Havoc Pennington  <hp@pobox.com>

        * gtk/testtextbuffer.c: Test program to make sure GtkTextBuffer
	is in working order.

	* gtk/testtext.c: Change to reflect anonymous mark API

	* gtk/gtktextview.c: Convert from mark names to GtkTextMark*.

	* gtk/gtktexttag.h (struct _GtkTextTag): remove the affects_size
	field, which was unused.

	* gtk/gtktextmarkprivate.h (GTK_IS_TEXT_MARK): add this macro,
	saves some typing.

	* gtk/gtktextbuffer.c: Switch from mark names to GtkTextMark*

	* gtk/gtktextbtree.c (gtk_text_btree_new): set the not_deleteable
	flag on the insertion point and selection bound

	Throughout, use GtkTextMark instead of GtkTextLineSegment, and
	make mark-manipulation functions take a GtkTextMark* instead of a
	mark name.

	* gtk/gtktextmarkprivate.h: Add a "not_deleteable" flag to
	GtkTextMarkBody; will be used to detect attempts to delete
	the permanent marks (insert and selection bound)
2000-06-02 17:27:21 +00:00

43 lines
1023 B
C

#ifndef GTK_TEXT_MARK_PRIVATE_H
#define GTK_TEXT_MARK_PRIVATE_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <gtk/gtktexttypes.h>
#define GTK_IS_TEXT_MARK(mark) (((GtkTextLineSegment*)mark)->type == &gtk_text_left_mark_type || \
((GtkTextLineSegment*)mark)->type == &gtk_text_right_mark_type)
/*
* The data structure below defines line segments that represent
* marks. There is one of these for each mark in the text.
*/
struct _GtkTextMarkBody {
guint refcount;
gchar *name;
GtkTextBTree *tree;
GtkTextLine *line;
guint visible : 1;
guint not_deleteable : 1;
};
GtkTextLineSegment *mark_segment_new (GtkTextBTree *tree,
gboolean left_gravity,
const gchar *name);
void mark_segment_ref (GtkTextLineSegment *mark);
void mark_segment_unref (GtkTextLineSegment *mark);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif