gtk2/gtk/gtktexttagtable.h
Havoc Pennington 6b1407a3ec remove g_assert_not_reached() that was bogus, since we demand-create the
2001-12-04  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): remove
	g_assert_not_reached() that was bogus, since we demand-create the
	tag info. reported by Chris Phelps

        Jump through assorted hoops to fix bug from Chris Phelps where
	removing tags from the table resulted in btree trying to
	access tag->table

	* gtk/gtktextbuffer.c: set up mechanics of adding/removing
	ourselves to the tag table

	* gtk/gtktexttagtable.c (_gtk_text_tag_table_add_buffer)
	(_gtk_text_tag_table_remove_buffer): private cruft to
	let us notify buffer of disappearing tags

	* gtk/gtktexttag.h: remove BTreeNode typedef from this public
	header, put it in tagprivate

	* gtk/gtktextbtree.c (_gtk_text_btree_new): don't connect to
	tag_removed; it's emitted too late.
	(_gtk_text_btree_notify_will_remove_tag): rename tag_remove_cb to
	this

	Padding for ABI-compat expansion

	* gtk/gtktexttag.h (struct _GtkTextAttributes): pad this
	(struct _GtkTextAppearance): one pad in here too

	* gtk/gtktextlayout.h (struct _GtkTextLayoutClass): padding here

	* gtk/gtktextview.h (struct _GtkTextViewClass): more padding,
	since action signals etc. seem pretty likely

	* gtk/gtktextbuffer.h (struct _GtkTextBufferClass): padding

	* gtk/gtktexttag.h (struct _GtkTextTagClass): padding

	* gtk/gtktexttagtable.h (struct _GtkTextTagTableClass): padding
2001-12-05 01:43:48 +00:00

73 lines
2.7 KiB
C

#ifndef GTK_TEXT_TAG_TABLE_H
#define GTK_TEXT_TAG_TABLE_H
#include <gtk/gtktexttag.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <gtk/gtktexttag.h>
typedef void (* GtkTextTagTableForeach) (GtkTextTag *tag, gpointer data);
#define GTK_TYPE_TEXT_TAG_TABLE (gtk_text_tag_table_get_type ())
#define GTK_TEXT_TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_TAG_TABLE, GtkTextTagTable))
#define GTK_TEXT_TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_TAG_TABLE, GtkTextTagTableClass))
#define GTK_IS_TEXT_TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT_TAG_TABLE))
#define GTK_IS_TEXT_TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_TAG_TABLE))
#define GTK_TEXT_TAG_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_TAG_TABLE, GtkTextTagTableClass))
typedef struct _GtkTextTagTableClass GtkTextTagTableClass;
struct _GtkTextTagTable {
GObject parent_instance;
GHashTable *hash;
GSList *anonymous;
gint anon_count;
GSList *buffers;
};
struct _GtkTextTagTableClass {
GObjectClass parent_class;
void (* tag_changed) (GtkTextTagTable *table, GtkTextTag *tag, gboolean size_changed);
void (* tag_added) (GtkTextTagTable *table, GtkTextTag *tag);
void (* tag_removed) (GtkTextTagTable *table, GtkTextTag *tag);
GtkFunction pad1;
GtkFunction pad2;
};
GType gtk_text_tag_table_get_type (void) G_GNUC_CONST;
GtkTextTagTable *gtk_text_tag_table_new (void);
void gtk_text_tag_table_add (GtkTextTagTable *table,
GtkTextTag *tag);
void gtk_text_tag_table_remove (GtkTextTagTable *table,
GtkTextTag *tag);
GtkTextTag *gtk_text_tag_table_lookup (GtkTextTagTable *table,
const gchar *name);
void gtk_text_tag_table_foreach (GtkTextTagTable *table,
GtkTextTagTableForeach func,
gpointer data);
gint gtk_text_tag_table_get_size (GtkTextTagTable *table);
/* INTERNAL private stuff - not even exported from the library on
* many platforms
*/
void _gtk_text_tag_table_add_buffer (GtkTextTagTable *table,
gpointer buffer);
void _gtk_text_tag_table_remove_buffer (GtkTextTagTable *table,
gpointer buffer);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif