It wasn't intuitive, but scroll to mark doe the trick, the following
func append to a textview (a log actually) and scrolls:
void scacpg_append_runlog(char * msg, ...)
{
GtkTextView * eview;
GtkTextBuffer * ebuf;
GtkTextIter start, end;
va_list ap;
char * buffer = NULL;
int l, L = 128;
GtkTextMark* mark;
va_start(ap, msg);
do {
L *= 2;
debug(realloc of log buffer to size %d, L);
buffer = realloc(buffer, L);
l = vsnprintf(buffer, L, msg, ap);
if (l 0) return;
} while (l = L);
eview = (GtkTextView* ) lookup_widget(dialog_run,
textview_cpg_output);
ebuf = gtk_text_view_get_buffer (eview);
debug (runlog: %s(%d), buffer, l);
gtk_text_buffer_get_bounds (ebuf, start, end);
gtk_text_buffer_insert (ebuf, end, buffer, l);
gtk_text_buffer_get_bounds (ebuf, start, end);
mark = gtk_text_buffer_create_mark(ebuf, NULL, end, 1);
gtk_text_view_scroll_to_mark(eview, mark, 0.0, 0, 0.0, 1.0);
gtk_text_buffer_delete_mark (ebuf, mark);
free(buffer);
va_end(ap);
};
On Thu, 2004-03-04 at 20:45, Felipe Weckx wrote:
Hi everyone,
Here's the deal: the program receives a string and show it on a TextView
, that's OK, but I have to scroll the view to end of the text, I tried
using gtk_text_buffer_get_end_iter and gtk_text_view_scroll_to_iter, but
it only scrolls to beginning of the text I've just inserted, so if it
has more than one line, it doesn't scrolls to the end.
Does anyone knows how to scroll to the end of the text?
--
Terje Eggestad [EMAIL PROTECTED]
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list