| 83 void ui_textarea_restore(UiText *text) { |
83 void ui_textarea_restore(UiText *text) { |
| 84 NSTextView *textview = (__bridge NSTextView*)text->obj; |
84 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| 85 NSTextStorage *textStorage; |
85 NSTextStorage *textStorage; |
| 86 if(text->data1) { |
86 if(text->data1) { |
| 87 textStorage = (__bridge NSTextStorage*)text->data1; |
87 textStorage = (__bridge NSTextStorage*)text->data1; |
| 88 |
|
| 89 } else { |
88 } else { |
| 90 textStorage = [[NSTextStorage alloc] init]; |
89 textStorage = [[NSTextStorage alloc] init]; |
| 91 } |
90 } |
| 92 [textview.layoutManager replaceTextStorage:textStorage]; |
91 [textview.layoutManager replaceTextStorage:textStorage]; |
| 93 text->data1 = (__bridge_retained void*)textStorage; |
92 text->data1 = (__bridge_retained void*)textStorage; |
| 133 NSRange range = NSMakeRange(pos, 0); |
132 NSRange range = NSMakeRange(pos, 0); |
| 134 [textview setSelectedRange:range]; |
133 [textview setSelectedRange:range]; |
| 135 } |
134 } |
| 136 |
135 |
| 137 int ui_textarea_position(UiText *text) { |
136 int ui_textarea_position(UiText *text) { |
| 138 return 0; |
137 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
138 NSRange range = textview.selectedRange; |
| |
139 return (int)range.location; |
| 139 } |
140 } |
| 140 |
141 |
| 141 void ui_textarea_setselection(UiText *text, int begin, int end) { |
142 void ui_textarea_setselection(UiText *text, int begin, int end) { |
| 142 NSTextView *textview = (__bridge NSTextView*)text->obj; |
143 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| 143 NSRange range = NSMakeRange(begin, end-begin); |
144 NSRange range = NSMakeRange(begin, end-begin); |
| 144 [textview setSelectedRange:range]; |
145 [textview setSelectedRange:range]; |
| 145 } |
146 } |
| 146 |
147 |
| 147 void ui_textarea_selection(UiText *text, int *begin, int *end) { |
148 void ui_textarea_selection(UiText *text, int *begin, int *end) { |
| 148 |
149 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
150 NSRange range = textview.selectedRange; |
| |
151 if(begin) { |
| |
152 *begin = (int)range.location; |
| |
153 } |
| |
154 if(end) { |
| |
155 *end = (int)(range.location+range.length); |
| |
156 } |
| 149 } |
157 } |
| 150 |
158 |
| 151 int ui_textarea_length(UiText *text) { |
159 int ui_textarea_length(UiText *text) { |
| 152 return 0; |
160 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
161 return (int)textview.string.length; |
| 153 } |
162 } |
| 154 |
163 |
| 155 void ui_textarea_remove(UiText *text, int begin, int end) { |
164 void ui_textarea_remove(UiText *text, int begin, int end) { |
| 156 |
165 NSTextView *textview = (__bridge NSTextView*)text->obj; |
| |
166 |
| |
167 if (begin < 0 || end < begin || end > textview.string.length) { |
| |
168 return; |
| |
169 } |
| |
170 |
| |
171 NSRange range = NSMakeRange(begin, end - begin); |
| |
172 [[textview textStorage] deleteCharactersInRange:range]; |
| 157 } |
173 } |
| 158 |
174 |
| 159 |
175 |
| 160 |
176 |
| 161 /* -------------------------- TextField -------------------------- */ |
177 /* -------------------------- TextField -------------------------- */ |