ui/gtk/text.c

changeset 1198
5bb4366b0c32
parent 1186
b114038a48da
equal deleted inserted replaced
1197:4bbf0487509f 1198:5bb4366b0c32
190 if(value->value.ptr) { 190 if(value->value.ptr) {
191 gtk_text_buffer_set_text(buf, value->value.ptr, -1); 191 gtk_text_buffer_set_text(buf, value->value.ptr, -1);
192 value->value.free(value->value.ptr); 192 value->value.free(value->value.ptr);
193 } 193 }
194 } 194 }
195
196 if(value->readonly) {
197 gtk_text_view_set_editable(GTK_TEXT_VIEW(text_area), FALSE);
198 }
199
195 gtk_text_view_set_buffer(GTK_TEXT_VIEW(text_area), buf); 200 gtk_text_view_set_buffer(GTK_TEXT_VIEW(text_area), buf);
196 value->obj = text_area; 201 value->obj = text_area;
197 value->save = ui_textarea_save; 202 value->save = ui_textarea_save;
198 value->restore = ui_textarea_restore; 203 value->restore = ui_textarea_restore;
199 value->destroy = ui_textarea_text_destroy; 204 value->destroy = ui_textarea_text_destroy;
207 value->showposition = ui_textarea_showposition; 212 value->showposition = ui_textarea_showposition;
208 value->setselection = ui_textarea_setselection; 213 value->setselection = ui_textarea_setselection;
209 value->selection = ui_textarea_selection; 214 value->selection = ui_textarea_selection;
210 value->length = ui_textarea_length; 215 value->length = ui_textarea_length;
211 value->remove = ui_textarea_remove; 216 value->remove = ui_textarea_remove;
217 value->setreadonly = ui_textarea_setreadonly;
212 value->data1 = buf; 218 value->data1 = buf;
213 value->data2 = NULL; 219 value->data2 = NULL;
214 value->datatype == UI_TEXT_TYPE_BUFFER; 220 value->datatype == UI_TEXT_TYPE_BUFFER;
215 value->value.ptr = NULL; 221 value->value.ptr = NULL;
216 value->value.free = NULL; 222 value->value.free = NULL;
339 if(!text->data1) { 345 if(!text->data1) {
340 text->data1 = create_textbuffer(g_object_get_data(G_OBJECT(textarea), "ui_textarea")); 346 text->data1 = create_textbuffer(g_object_get_data(G_OBJECT(textarea), "ui_textarea"));
341 text->datatype = UI_TEXT_TYPE_BUFFER; 347 text->datatype = UI_TEXT_TYPE_BUFFER;
342 } 348 }
343 gtk_text_view_set_buffer(GTK_TEXT_VIEW(textarea), text->data1); 349 gtk_text_view_set_buffer(GTK_TEXT_VIEW(textarea), text->data1);
350 gtk_text_view_set_editable(GTK_TEXT_VIEW(textarea), !text->readonly);
344 } 351 }
345 352
346 void ui_textarea_text_destroy(UiText *text) { 353 void ui_textarea_text_destroy(UiText *text) {
347 GtkTextBuffer *buf = text->data1; 354 GtkTextBuffer *buf = text->data1;
348 g_object_unref(buf); 355 g_object_unref(buf);
461 GtkTextIter ib; 468 GtkTextIter ib;
462 GtkTextIter ie; 469 GtkTextIter ie;
463 gtk_text_buffer_get_iter_at_offset(buf, &ib, begin); 470 gtk_text_buffer_get_iter_at_offset(buf, &ib, begin);
464 gtk_text_buffer_get_iter_at_offset(buf, &ie, end); 471 gtk_text_buffer_get_iter_at_offset(buf, &ie, end);
465 gtk_text_buffer_delete(buf, &ib, &ie); 472 gtk_text_buffer_delete(buf, &ib, &ie);
473 }
474
475 void ui_textarea_setreadonly(UiText *text, int readonly) {
476 if(text->obj) {
477 gtk_text_view_set_editable(GTK_TEXT_VIEW(text->obj), !readonly);
478 }
479 text->readonly = readonly;
466 } 480 }
467 481
468 void ui_textarea_realize_event(GtkWidget *widget, gpointer data) { 482 void ui_textarea_realize_event(GtkWidget *widget, gpointer data) {
469 gtk_widget_grab_focus(widget); 483 gtk_widget_grab_focus(widget);
470 } 484 }

mercurial