forked from AuroraMiddleware/gtk
6b1407a3ec
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
73 lines
2.7 KiB
C
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
|
|
|