diff options
author | Havoc Pennington <hp@redhat.com> | 2001-01-04 17:48:43 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-01-04 17:48:43 +0000 |
commit | c7826b5f63930c960cdb53aa4935ee1f8f7f3b18 (patch) | |
tree | e62c661b717b8350d09f12113bdaead0a2f46483 /gtk/gtktextbuffer.c | |
parent | 7b8ec35897a3221780c73d47c08b82d7aa7f73dd (diff) | |
download | gtk+-c7826b5f63930c960cdb53aa4935ee1f8f7f3b18.tar.gz |
Adapt to uscore-ification of gtktextiterprivate
2001-01-03 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c: Adapt to uscore-ification of gtktextiterprivate
* gtk/gtktextdisplay.c (gtk_text_layout_draw): remove use
of private functions; remove inclusion of private headers.
* gtk/gtktextlayout.c (gtk_text_layout_get_iter_at_line): Add this
function, so we don't need private functions in gtktextdisplay.c
* gtk/gtktextiterprivate.h: underscore-ification
* gtk/gtkwidget.c: Clean up a bunch of docs that said "INTERNAL"
to instead say "only useful to implement widgets"
* gtk/gtkenums.h (GtkMovementStep): Rename GTK_MOVEMENT_CHARS,
GTK_MOVEMENT_POSITIONS to GTK_MOVEMENT_LOGICAL_POSITIONS,
GTK_MOVEMENT_VISUAL_POSITIONS. Resolves bug 40249.
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
This function was completely broken
* gtk/testtext.c (line_numbers_expose): use gtk_paint_layout
* gtk/gtkvscale.c (gtk_vscale_draw_value): use gtk_paint_layout
* gtk/gtkvruler.c (gtk_vruler_draw_ticks): use gtk_paint_layout
* gtk/gtklabel.c (gtk_label_expose): use gtk_paint_layout
* gtk/gtkhscale.c (gtk_hscale_draw_value): use gtk_paint_layout
* gtk/gtkhruler.c (gtk_hruler_draw_ticks): use gtk_paint_layout
* gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render): use
gtk_paint_layout
* gtk/gtkaccellabel.c (gtk_accel_label_expose_event): use
gtk_paint_layout
* gtk/gtkstyle.h: Add draw/paint expander to draw tree expanders.
Progress on bug 40103. Add draw_layout to draw a PangoLayout.
(struct _GtkStyleClass): Remove draw_cross, draw_oval, draw_ramp,
which were not implemented.
* gtk/gtktextbuffer.h (struct _GtkTextBufferClass): Add
insert_pixbuf signal. Rename delete_text to delete_range since it
also deletes pixbufs and child anchors. This almost closes bug
40245 (still need to deal with child anchors)
* gtk/gtktextbuffer.c (gtk_text_buffer_class_init): Add
insert_pixbuf, change signal names as appropriate, change types of
signals taking marks/tags to have the specific type, not just
G_TYPE_OBJECT
* gtk/gtkmain.c (gtk_get_current_event_state): Add this function;
closes bug 40051
* gtk/gtkoptionmenu.c (gtk_option_menu_set_history): clean up
unnecessary remove_contents() call
(gtk_option_menu_class_init): add a "changed" signal, closes
bug 40039
(gtk_option_menu_update_contents): emit "changed" if the
active menu item changes
* gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done): fix bad
cast to GtkObject, reported by Jonas Borgstrom
(gdk_pixbuf_loader_finalize): don't close the loader on finalize;
we can't do stuff with side effects in finalize. Instead, spew a
warning if the loader isn't closed.
* gdk/x11/gdkdrawable-x11.c (gdk_drawable_impl_x11_finalize): free
colormap in here, non-X ports probably need to sync to this change
* gdk/x11/gdkdrawable-x11.c (gdk_x11_set_colormap): remove
assertion that colormap != NULL, you can set the colormap to NULL
if you like.
* Makefile.am: remove gtk-config-2.0
* configure.in: Use pkg-config to locate GLib. Remove
separated-out GMODULE_LIBS, GMODULE_CFLAGS; these were not used,
and the gmodule libs/cflags were in GLIB_LIBS GLIB_CFLAGS anyhow.
Use pkg-config to locate Pango. Output correct Pango libs to
gdk-2.0.pc.in. Fix test for FREETYPE_CONFIG (typo fix).
* Makefile.am (pkgconfig_DATA): install only target-specific pc
files
(install-data-local): symlink gtk+-2.0.pc and gdk-2.0.pc to the
X11 pc files
* gtk+-2.0.pc.in (Requires): require the GDK for the current target
unref from here
Diffstat (limited to 'gtk/gtktextbuffer.c')
-rw-r--r-- | gtk/gtktextbuffer.c | 72 |
1 files changed, 50 insertions, 22 deletions
diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index 0db7702ac7..a2c13ac0d3 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -48,7 +48,8 @@ struct _ClipboardRequest enum { INSERT_TEXT, - DELETE_TEXT, + INSERT_PIXBUF, + DELETE_RANGE, CHANGED, MODIFIED_CHANGED, MARK_SET, @@ -83,7 +84,10 @@ static void gtk_text_buffer_real_insert_text (GtkTextBuffer *buffe GtkTextIter *iter, const gchar *text, gint len); -static void gtk_text_buffer_real_delete_text (GtkTextBuffer *buffer, +static void gtk_text_buffer_real_insert_pixbuf (GtkTextBuffer *buffer, + GtkTextIter *iter, + GdkPixbuf *pixbuf); +static void gtk_text_buffer_real_delete_range (GtkTextBuffer *buffer, GtkTextIter *start, GtkTextIter *end); static void gtk_text_buffer_real_apply_tag (GtkTextBuffer *buffer, @@ -141,7 +145,8 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass) object_class->finalize = gtk_text_buffer_finalize; klass->insert_text = gtk_text_buffer_real_insert_text; - klass->delete_text = gtk_text_buffer_real_delete_text; + klass->insert_pixbuf = gtk_text_buffer_real_insert_pixbuf; + klass->delete_range = gtk_text_buffer_real_delete_range; klass->apply_tag = gtk_text_buffer_real_apply_tag; klass->remove_tag = gtk_text_buffer_real_remove_tag; klass->changed = gtk_text_buffer_real_changed; @@ -164,11 +169,27 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass) GTK_TYPE_POINTER, GTK_TYPE_INT); - signals[DELETE_TEXT] = - g_signal_newc ("delete_text", + signals[INSERT_PIXBUF] = + g_signal_newc ("insert_pixbuf", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkTextBufferClass, insert_pixbuf), + NULL, + gtk_marshal_VOID__BOXED_OBJECT, + GTK_TYPE_NONE, + 2, +#if 0 + /* FIXME */ + GTK_TYPE_TEXT_ITER, +#endif + GTK_TYPE_POINTER, + GDK_TYPE_PIXBUF); + + signals[DELETE_RANGE] = + g_signal_newc ("delete_range", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkTextBufferClass, delete_text), + G_STRUCT_OFFSET (GtkTextBufferClass, delete_range), NULL, gtk_marshal_VOID__BOXED_BOXED, GTK_TYPE_NONE, @@ -211,7 +232,7 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass) GTK_TYPE_NONE, 2, GTK_TYPE_TEXT_ITER, - G_TYPE_OBJECT); + GTK_TYPE_TEXT_MARK); signals[MARK_DELETED] = g_signal_newc ("mark_deleted", @@ -222,7 +243,7 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass) gtk_marshal_VOID__OBJECT, GTK_TYPE_NONE, 1, - G_TYPE_OBJECT); + GTK_TYPE_TEXT_MARK); signals[APPLY_TAG] = g_signal_newc ("apply_tag", @@ -233,7 +254,7 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass) gtk_marshal_VOID__OBJECT_BOXED_BOXED, GTK_TYPE_NONE, 3, - G_TYPE_OBJECT, + GTK_TYPE_TEXT_TAG, GTK_TYPE_TEXT_ITER, GTK_TYPE_TEXT_ITER); @@ -246,7 +267,7 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass) gtk_marshal_VOID__OBJECT_BOXED_BOXED, GTK_TYPE_NONE, 3, - G_TYPE_OBJECT, + GTK_TYPE_TEXT_TAG, GTK_TYPE_TEXT_ITER, GTK_TYPE_TEXT_ITER); @@ -1077,9 +1098,9 @@ gtk_text_buffer_insert_with_tags_by_name (GtkTextBuffer *buffer, */ static void -gtk_text_buffer_real_delete_text (GtkTextBuffer *buffer, - GtkTextIter *start, - GtkTextIter *end) +gtk_text_buffer_real_delete_range (GtkTextBuffer *buffer, + GtkTextIter *start, + GtkTextIter *end) { g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer)); g_return_if_fail (start != NULL); @@ -1116,7 +1137,7 @@ gtk_text_buffer_emit_delete (GtkTextBuffer *buffer, * to fix. */ g_signal_emit (G_OBJECT (buffer), - signals[DELETE_TEXT], + signals[DELETE_RANGE], 0, start, end); } @@ -1129,7 +1150,7 @@ gtk_text_buffer_emit_delete (GtkTextBuffer *buffer, * * Deletes text between @start and @end. The order of @start and @end * is not actually relevant; gtk_text_buffer_delete () will reorder - * them. This function actually emits the "delete_text" signal, and + * them. This function actually emits the "delete_range" signal, and * the default handler of that signal deletes the text. Because the * buffer is modified, all outstanding iterators become invalid after * calling this function; however, the @start and @end will be @@ -1360,9 +1381,19 @@ gtk_text_buffer_get_slice (GtkTextBuffer *buffer, } /* - * Pixmaps + * Pixbufs */ +static void +gtk_text_buffer_real_insert_pixbuf (GtkTextBuffer *buffer, + GtkTextIter *iter, + GdkPixbuf *pixbuf) +{ + _gtk_text_btree_insert_pixbuf (iter, pixbuf); + + g_signal_emit (G_OBJECT (buffer), signals[CHANGED], 0); +} + void gtk_text_buffer_insert_pixbuf (GtkTextBuffer *buffer, GtkTextIter *iter, @@ -1372,11 +1403,8 @@ gtk_text_buffer_insert_pixbuf (GtkTextBuffer *buffer, g_return_if_fail (iter != NULL); g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); - _gtk_text_btree_insert_pixbuf (iter, pixbuf); - - /* FIXME pixbuf-specific signal like insert_text */ - - g_signal_emit (G_OBJECT (buffer), signals[CHANGED], 0); + g_signal_emit (G_OBJECT (buffer), signals[INSERT_PIXBUF], 0, + iter, pixbuf); } /* @@ -1411,7 +1439,7 @@ gtk_text_buffer_mark_set (GtkTextBuffer *buffer, const GtkTextIter *location, GtkTextMark *mark) { - /* IMO this should NOT work like insert_text and delete_text, + /* IMO this should NOT work like insert_text and delete_range, where the real action happens in the default handler. The reason is that the default handler would be _required_, |