diff -r a137277f9173 -r 77b09bb52ca0 ui/gtk/text.c --- a/ui/gtk/text.c Sat Apr 05 15:53:41 2014 +0200 +++ b/ui/gtk/text.c Sat Apr 05 18:41:30 2014 +0200 @@ -101,6 +101,8 @@ value->set = ui_textarea_set; value->getsubstr = ui_textarea_getsubstr; value->insert = ui_textarea_insert; + value->position = ui_textarea_position; + value->selection = ui_textarea_selection; value->value = NULL; GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_area)); value->obj = buf; @@ -175,6 +177,21 @@ gtk_text_buffer_insert(text->obj, &offset, str, -1); } +int ui_textarea_position(UiText *text) { + GtkTextIter begin; + GtkTextIter end; + gtk_text_buffer_get_selection_bounds(text->obj, &begin, &end); + return gtk_text_iter_get_offset(&begin); +} + +void ui_textarea_selection(UiText *text, int *begin, int *end) { + GtkTextIter b; + GtkTextIter e; + gtk_text_buffer_get_selection_bounds(text->obj, &b, &e); + *begin = gtk_text_iter_get_offset(&b); + *end = gtk_text_iter_get_offset(&e); +} + void ui_textarea_realize_event(GtkWidget *widget, gpointer data) { gtk_widget_grab_focus(widget); }