diff options
author | Havoc Pennington <hp@pobox.com> | 2000-12-16 07:01:48 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2000-12-16 07:01:48 +0000 |
commit | e405f75c2b904698f71280348687254b91d8ff47 (patch) | |
tree | 3e94d6db1f35d1c9f60ce26ba6395b43851e661e /gtk/gtktextlayout.c | |
parent | 9d41afc90a3f261db2cab33e240b34232c2b117f (diff) | |
download | gdk-pixbuf-e405f75c2b904698f71280348687254b91d8ff47.tar.gz |
General cleanup of the log attr iteration stuff. This should make e.g. the
2000-12-16 Havoc Pennington <hp@pobox.com>
* gtk/gtktextiter.c: General cleanup of the log attr iteration
stuff. This should make e.g. the delete key work again in the
text widget...
(gtk_text_iter_forward_cursor_positions): handle negative count
(gtk_text_iter_backward_cursor_positions): handle negative count
(gtk_text_iter_forward_word_ends): handle negative count
(gtk_text_iter_backward_word_starts): handle negative count
* gtk/gtktextlayout.h, gtk/gtktextlayout.c, gtk/gtktexttag.h,
gtk/gtktexttag.c, gtk/gtktexttagtable.h, gtk/gtktexttagtable.c,
gtk/gtktextbuffer.h, gtk/gtktextbuffer.c: Convert everything to
GObject. No doubt will cause breakage.
* demos/gtk-demo/textview.c: remove hacks around
non-GObject-ification of the text objects
* demos/gtk-demo/main.c (main): use g_object_set() to manipulate
the text tag
Diffstat (limited to 'gtk/gtktextlayout.c')
-rw-r--r-- | gtk/gtktextlayout.c | 135 |
1 files changed, 65 insertions, 70 deletions
diff --git a/gtk/gtktextlayout.c b/gtk/gtktextlayout.c index e27732be7..2ee16058c 100644 --- a/gtk/gtktextlayout.c +++ b/gtk/gtktextlayout.c @@ -119,10 +119,9 @@ enum { LAST_ARG }; -static void gtk_text_layout_init (GtkTextLayout *text_layout); +static void gtk_text_layout_init (GtkTextLayout *text_layout); static void gtk_text_layout_class_init (GtkTextLayoutClass *klass); -static void gtk_text_layout_destroy (GtkObject *object); -static void gtk_text_layout_finalize (GObject *object); +static void gtk_text_layout_finalize (GObject *object); static GtkObjectClass *parent_class = NULL; @@ -130,26 +129,30 @@ static guint signals[LAST_SIGNAL] = { 0 }; PangoAttrType gtk_text_attr_appearance_type = 0; -GtkType +GType gtk_text_layout_get_type (void) { - static GtkType our_type = 0; + static GType our_type = 0; if (our_type == 0) { - static const GtkTypeInfo our_info = + static const GTypeInfo our_info = { - "GtkTextLayout", - sizeof (GtkTextLayout), sizeof (GtkTextLayoutClass), - (GtkClassInitFunc) gtk_text_layout_class_init, - (GtkObjectInitFunc) gtk_text_layout_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gtk_text_layout_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (GtkTextLayout), + 0, /* n_preallocs */ + (GInstanceInitFunc) gtk_text_layout_init }; - our_type = gtk_type_unique (GTK_TYPE_OBJECT, &our_info); + our_type = g_type_register_static (G_TYPE_OBJECT, + "GtkTextLayout", + &our_info, + 0); } return our_type; @@ -158,50 +161,51 @@ gtk_text_layout_get_type (void) static void gtk_text_layout_class_init (GtkTextLayoutClass *klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); - parent_class = gtk_type_class (GTK_TYPE_OBJECT); - - object_class->destroy = gtk_text_layout_destroy; - gobject_class->finalize = gtk_text_layout_finalize; + parent_class = g_type_class_peek_parent (klass); + + object_class->finalize = gtk_text_layout_finalize; klass->wrap = gtk_text_layout_real_wrap; klass->invalidate = gtk_text_layout_real_invalidate; klass->free_line_data = gtk_text_layout_real_free_line_data; signals[INVALIDATED] = - gtk_signal_new ("invalidated", - GTK_RUN_LAST, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkTextLayoutClass, invalidated), - gtk_marshal_VOID__VOID, - GTK_TYPE_NONE, - 0); + g_signal_newc ("invalidated", + G_TYPE_FROM_CLASS (object_class), + GTK_RUN_LAST, + G_STRUCT_OFFSET (GtkTextLayoutClass, invalidated), + NULL, + gtk_marshal_VOID__VOID, + GTK_TYPE_NONE, + 0); signals[CHANGED] = - gtk_signal_new ("changed", - GTK_RUN_LAST, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkTextLayoutClass, changed), - gtk_marshal_VOID__INT_INT_INT, - GTK_TYPE_NONE, - 3, - GTK_TYPE_INT, - GTK_TYPE_INT, - GTK_TYPE_INT); + g_signal_newc ("changed", + G_TYPE_FROM_CLASS (object_class), + GTK_RUN_LAST, + G_STRUCT_OFFSET (GtkTextLayoutClass, changed), + NULL, + gtk_marshal_VOID__INT_INT_INT, + GTK_TYPE_NONE, + 3, + GTK_TYPE_INT, + GTK_TYPE_INT, + GTK_TYPE_INT); signals[ALLOCATE_CHILD] = - gtk_signal_new ("allocate_child", - GTK_RUN_LAST, - GTK_CLASS_TYPE (object_class), - GTK_SIGNAL_OFFSET (GtkTextLayoutClass, allocate_child), - gtk_marshal_VOID__OBJECT_INT_INT, - GTK_TYPE_NONE, - 3, - GTK_TYPE_OBJECT, - GTK_TYPE_INT, - GTK_TYPE_INT); + g_signal_newc ("allocate_child", + G_TYPE_FROM_CLASS (object_class), + GTK_RUN_LAST, + G_STRUCT_OFFSET (GtkTextLayoutClass, allocate_child), + NULL, + gtk_marshal_VOID__OBJECT_INT_INT, + GTK_TYPE_NONE, + 3, + GTK_TYPE_OBJECT, + GTK_TYPE_INT, + GTK_TYPE_INT); } void @@ -213,7 +217,7 @@ gtk_text_layout_init (GtkTextLayout *text_layout) GtkTextLayout* gtk_text_layout_new (void) { - return GTK_TEXT_LAYOUT (gtk_type_new (gtk_text_layout_get_type ())); + return GTK_TEXT_LAYOUT (g_object_new (gtk_text_layout_get_type (), NULL)); } static void @@ -227,7 +231,7 @@ free_style_cache (GtkTextLayout *text_layout) } static void -gtk_text_layout_destroy (GtkObject *object) +gtk_text_layout_finalize (GObject *object) { GtkTextLayout *layout; @@ -249,17 +253,7 @@ gtk_text_layout_destroy (GtkObject *object) g_object_unref (G_OBJECT (layout->rtl_context)); layout->rtl_context = NULL; } - - (* parent_class->destroy) (object); -} - -static void -gtk_text_layout_finalize (GObject *object) -{ - GtkTextLayout *text_layout; - - text_layout = GTK_TEXT_LAYOUT (object); - + (* G_OBJECT_CLASS (parent_class)->finalize) (object); } @@ -280,7 +274,7 @@ gtk_text_layout_set_buffer (GtkTextLayout *layout, _gtk_text_btree_remove_view (_gtk_text_buffer_get_btree (layout->buffer), layout); - gtk_object_unref (GTK_OBJECT (layout->buffer)); + g_object_unref (G_OBJECT (layout->buffer)); layout->buffer = NULL; } @@ -288,8 +282,7 @@ gtk_text_layout_set_buffer (GtkTextLayout *layout, { layout->buffer = buffer; - gtk_object_sink (GTK_OBJECT (buffer)); - gtk_object_ref (GTK_OBJECT (buffer)); + g_object_ref (G_OBJECT (buffer)); _gtk_text_btree_add_view (_gtk_text_buffer_get_btree (buffer), layout); } @@ -490,7 +483,7 @@ gtk_text_layout_get_size (GtkTextLayout *layout, static void gtk_text_layout_invalidated (GtkTextLayout *layout) { - gtk_signal_emit (GTK_OBJECT (layout), signals[INVALIDATED]); + g_signal_emit (G_OBJECT (layout), signals[INVALIDATED], 0); } void @@ -499,7 +492,8 @@ gtk_text_layout_changed (GtkTextLayout *layout, gint old_height, gint new_height) { - gtk_signal_emit (GTK_OBJECT (layout), signals[CHANGED], y, old_height, new_height); + g_signal_emit (G_OBJECT (layout), signals[CHANGED], 0, + y, old_height, new_height); } void @@ -1481,11 +1475,12 @@ allocate_child_widgets (GtkTextLayout *text_layout, g_print ("extents at %d,%d\n", extents.x, extents.y); - gtk_signal_emit (GTK_OBJECT (text_layout), - signals[ALLOCATE_CHILD], - shaped_object, - PANGO_PIXELS (extents.x) + display->x_offset, - PANGO_PIXELS (extents.y) + display->top_margin); + g_signal_emit (G_OBJECT (text_layout), + signals[ALLOCATE_CHILD], + 0, + shaped_object, + PANGO_PIXELS (extents.x) + display->x_offset, + PANGO_PIXELS (extents.y) + display->top_margin); } } } |