| 92 [textview.layoutManager replaceTextStorage:textStorage]; |
92 [textview.layoutManager replaceTextStorage:textStorage]; |
| 93 text->data1 = (__bridge_retained void*)textStorage; |
93 text->data1 = (__bridge_retained void*)textStorage; |
| 94 } |
94 } |
| 95 |
95 |
| 96 void ui_textarea_set(UiText *text, const char *str) { |
96 void ui_textarea_set(UiText *text, const char *str) { |
| 97 |
97 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
98 if(text->value.free) { |
| |
99 text->value.free(text->value.ptr); |
| |
100 } |
| |
101 text->value.ptr = strdup(str); |
| |
102 text->value.free = free; |
| |
103 textview.string = [[NSString alloc] initWithUTF8String:str]; |
| 98 } |
104 } |
| 99 |
105 |
| 100 char* ui_textarea_get(UiText *text) { |
106 char* ui_textarea_get(UiText *text) { |
| 101 return NULL; |
107 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
108 if(text->value.free) { |
| |
109 text->value.free(text->value.ptr); |
| |
110 } |
| |
111 text->value.ptr = strdup(textview.string.UTF8String); |
| |
112 text->value.free = free; |
| |
113 return text->value.ptr; |
| 102 } |
114 } |
| 103 |
115 |
| 104 char* ui_textarea_getsubstr(UiText *text, int begin, int end) { |
116 char* ui_textarea_getsubstr(UiText *text, int begin, int end) { |
| 105 return NULL; |
117 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
118 NSString *str = textview.string; |
| |
119 NSRange range = NSMakeRange(begin, end-begin); |
| |
120 NSString *sub = [str substringWithRange:range]; |
| |
121 return strdup(sub.UTF8String); |
| 106 } |
122 } |
| 107 |
123 |
| 108 void ui_textarea_insert(UiText *text, int pos, char *str) { |
124 void ui_textarea_insert(UiText *text, int pos, char *str) { |
| 109 |
125 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
126 NSString *s = [[NSString alloc] initWithUTF8String:str]; |
| |
127 NSAttributedString *attributedStr = [[NSAttributedString alloc] initWithString:s]; |
| |
128 [textview.textStorage insertAttributedString:attributedStr atIndex:pos]; |
| 110 } |
129 } |
| 111 |
130 |
| 112 void ui_textarea_setposition(UiText *text, int pos) { |
131 void ui_textarea_setposition(UiText *text, int pos) { |
| 113 |
132 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
133 NSRange range = NSMakeRange(pos, 0); |
| |
134 [textview setSelectedRange:range]; |
| 114 } |
135 } |
| 115 |
136 |
| 116 int ui_textarea_position(UiText *text) { |
137 int ui_textarea_position(UiText *text) { |
| 117 return 0; |
138 return 0; |
| 118 } |
139 } |
| 119 |
140 |
| 120 void ui_textarea_setselection(UiText *text, int begin, int end) { |
141 void ui_textarea_setselection(UiText *text, int begin, int end) { |
| 121 |
142 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
143 NSRange range = NSMakeRange(begin, end-begin); |
| |
144 [textview setSelectedRange:range]; |
| 122 } |
145 } |
| 123 |
146 |
| 124 void ui_textarea_selection(UiText *text, int *begin, int *end) { |
147 void ui_textarea_selection(UiText *text, int *begin, int *end) { |
| 125 |
148 |
| 126 } |
149 } |