ui/gtk/text.c

changeset 27
77b09bb52ca0
parent 22
bcf880b29bc3
child 29
c96169444d88
--- 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);
 }

mercurial