| 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 } |