31 |
31 |
32 #include "../common/context.h" |
32 #include "../common/context.h" |
33 #include "../common/document.h" |
33 #include "../common/document.h" |
34 |
34 |
35 UIWIDGET ui_textarea(UiObject *obj, UiText *value) { |
35 UIWIDGET ui_textarea(UiObject *obj, UiText *value) { |
36 UiContainer *ct = uic_get_current_container(obj); |
36 QTextDocument *txtdoc = value && value->obj ? (QTextDocument*)value->obj : new QTextDocument(); |
37 QTextEdit *textedit = new QTextEdit(); |
|
38 ct->add((textedit)); |
|
39 |
37 |
40 if(value) { |
38 if(value) { |
41 if(value->value) { |
39 if(value->value && value->obj) { |
42 // TODO: set text and free old value |
40 ui_textarea_set(value, value->value); |
43 } |
41 } |
44 |
42 |
45 value->get = ui_textarea_get; |
43 value->get = ui_textarea_get; |
46 value->set = ui_textarea_set; |
44 value->set = ui_textarea_set; |
47 value->getsubstr = ui_textarea_getsubstr; |
45 value->getsubstr = ui_textarea_getsubstr; |
48 value->insert = ui_textarea_insert; |
46 value->insert = ui_textarea_insert; |
49 value->position = ui_textarea_position; |
47 value->position = ui_textarea_position; |
50 value->selection = ui_textarea_selection; |
48 value->selection = ui_textarea_selection; |
51 value->length = ui_textarea_length; |
49 value->length = ui_textarea_length; |
52 value->remove = ui_textarea_remove; |
50 value->remove = ui_textarea_remove; |
53 value->obj = textedit->document(); |
51 value->obj = txtdoc; |
54 value->value = NULL; |
52 value->value = NULL; |
55 } |
53 } |
|
54 |
|
55 UiContainer *ct = uic_get_current_container(obj); |
|
56 QTextEdit *textedit = new QTextEdit(); |
|
57 textedit->setDocument(txtdoc); |
|
58 ct->add((textedit)); |
56 |
59 |
57 return textedit; |
60 return textedit; |
58 } |
61 } |
59 |
62 |
60 UIWIDGET ui_textarea_nv(UiObject *obj, char *varname) { |
63 UIWIDGET ui_textarea_nv(UiObject *obj, char *varname) { |
81 text->value = strdup(cstr); |
84 text->value = strdup(cstr); |
82 return text->value; |
85 return text->value; |
83 } |
86 } |
84 |
87 |
85 void ui_textarea_set(UiText *text, char *str) { |
88 void ui_textarea_set(UiText *text, char *str) { |
|
89 // set text |
|
90 QTextDocument *doc = (QTextDocument*)text->obj; |
|
91 QString qstr = QString::fromUtf8(str); |
|
92 doc->setPlainText(qstr); |
|
93 // cleanup |
86 if(text->value) { |
94 if(text->value) { |
87 free(text->value); |
95 free(text->value); |
88 } |
96 } |
89 text->value = NULL; |
97 text->value = NULL; |
90 |
|
91 QTextDocument *doc = (QTextDocument*)text->obj; |
|
92 QString qstr = QString::fromUtf8(str); |
|
93 doc->setPlainText(qstr); |
|
94 } |
98 } |
95 |
99 |
96 char* ui_textarea_getsubstr(UiText *text, int begin, int end) { |
100 char* ui_textarea_getsubstr(UiText *text, int begin, int end) { |
97 QTextDocument *doc = (QTextDocument*)text->obj; |
101 QTextDocument *doc = (QTextDocument*)text->obj; |
98 return NULL; // TODO |
102 return NULL; // TODO |