Get widgets working on the btree/buffer side. Display of them still
2000-11-03 Havoc Pennington <hp@redhat.com> Get widgets working on the btree/buffer side. Display of them still doesn't work. * gtk/gtktextview.c: start implementing child widget stuff * gtk/gtktextiter.c (gtk_text_iter_get_child_anchor): new function * gtk/gtktextlayout.c: handle embedded widgets * gtk/gtktextdisplay.c: handle embedded widgets * gtk/gtktextchild.c: Implement all the child anchor goo * gtk/gtktextbuffer.c (gtk_text_buffer_create_child_anchor): New function * gtk/gtktextbtree.c: Add child anchor table to the btree struct (insert_pixbuf_or_widget_segment): abstract out common portions of creating a child anchor or a pixbuf segment. (gtk_text_btree_create_child_anchor): new function (gtk_text_btree_unregister_child_anchor): new function * gtk/gtkmarshal.list: added VOID:OBJECT,INT,INT for the allocate_child signal on GtkTextLayout * gtk/gtktextiter.c (gtk_text_iter_get_pixbuf): fix bogus return values (gtk_text_iter_get_child_anchor): new function * gtk/gtktextbuffer.c (gtk_text_buffer_real_changed): Add a default handler for the changed signal, which calls gtk_text_buffer_set_modified(), instead of just always emitting changed then calling set_modified() manually. I guess this is maybe more flexible. It seems logical.
This commit is contained in:
committed by
Havoc Pennington
parent
b506b461cb
commit
ca83d0a3dc
@ -78,8 +78,9 @@ struct _GtkTextBufferClass {
|
||||
GtkTextIter *end,
|
||||
gboolean interactive);
|
||||
|
||||
/* Only for text changed, marks/tags don't cause this
|
||||
to be emitted */
|
||||
/* Only for text/widgets/pixbuf changed, marks/tags don't cause this
|
||||
* to be emitted
|
||||
*/
|
||||
void (* changed) (GtkTextBuffer *buffer);
|
||||
|
||||
|
||||
@ -193,6 +194,10 @@ void gtk_text_buffer_insert_pixbuf (GtkTextBuffer *buffer,
|
||||
GtkTextIter *iter,
|
||||
GdkPixbuf *pixbuf);
|
||||
|
||||
/* Create a child anchor */
|
||||
GtkTextChildAnchor *gtk_text_buffer_create_child_anchor (GtkTextBuffer *buffer,
|
||||
GtkTextIter *iter);
|
||||
|
||||
/* Mark manipulation */
|
||||
GtkTextMark *gtk_text_buffer_create_mark (GtkTextBuffer *buffer,
|
||||
const gchar *mark_name,
|
||||
@ -215,17 +220,6 @@ void gtk_text_buffer_delete_mark_by_name (GtkTextBuffer *buffer,
|
||||
GtkTextMark* gtk_text_buffer_get_insert (GtkTextBuffer *buffer);
|
||||
GtkTextMark* gtk_text_buffer_get_selection_bound (GtkTextBuffer *buffer);
|
||||
|
||||
/* Child widget anchors */
|
||||
|
||||
GtkTextChildAnchor* gtk_text_buffer_create_child_anchor (GtkTextBuffer *buffer,
|
||||
const GtkTextIter *where);
|
||||
void gtk_text_buffer_move_child_anchor (GtkTextBuffer *buffer,
|
||||
GtkTextChildAnchor *anchor,
|
||||
GtkTextIter *where);
|
||||
void gtk_text_buffer_delete_child_anchor (GtkTextBuffer *buffer,
|
||||
GtkTextChildAnchor *anchor);
|
||||
|
||||
|
||||
/* efficiently move insert and selection_bound to same location */
|
||||
void gtk_text_buffer_place_cursor (GtkTextBuffer *buffer,
|
||||
const GtkTextIter *where);
|
||||
|
||||
Reference in New Issue
Block a user