Re: GtkTextView: Applying tags at the cursor
- From: Lance Dillon <riffraff169 yahoo com>
- To: gtk-app-devel-list gnome org
- Subject: Re: GtkTextView: Applying tags at the cursor
- Date: Tue, 24 Oct 2006 11:34:12 -0700 (PDT)
----- Original Message ----
From: Samuel Lidén Borell <samuellb bredband net>
To: gtk-app-devel-list gnome org
Sent: Tuesday, October 24, 2006 1:49:54 PM
Subject: GtkTextView: Applying tags at the cursor
Hi,
I'm working on a web site creation software that uses Gtk, Glade and
Python for the UI. I'm using the GtkTextView widget to let the user edit
text with basic formatting but I have a question:
How do I apply a tag at the cursor so that inserted text gets it's
formatting? Right now I surround the cursor with two zero-width spaces
(an invisible Unicode character) and then I apply the tag to the spaces.
This gives new text the right formatting, but it's an ugly solution that
has some bugs...
-----------------
I'm not sure there you can just add a tag at the current cursor position. I'm creating the GTK2 bindings for
the language Pike, and in my tests I created an array of tags that I need to apply at a certain position,
then I added the text for that position, then applied that tags for that text range. Something like this:
void insert_text(char *text) {
GtkTextIter *start,*end,*iter;
GtkTextMark *mark;
mark=gtk_text_buffer_get_insert(GTK_TEXT_BUFFER(buffer));
gtk_text_buffer_get_iter_at_mark(GTK_TEXT_BUFFER(buffer),start,mark);
*start=*iter;
gtk_text_buffer_insert(GTK_TEXT_BUFFER(buffer),text,-1);
mark=gtk_text_buffer_get_insert(GTK_TEXT_BUFFER(buffer));
gtk_text_buffer_get_iter_at_mark(GTK_TEXT_BUFFER(buffer),end,mark);
/* foreach tag */
gtk_text_buffer_apply_tag(GTK_TEXT_BUFFER(buffer),tag,start,end);
/* end */
}
I fudged on the foreach array iteration. I have it simpler in pike, but basically the same thing.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]