return (__bridge void*)textview;
}
+void ui_textarea_focus(UIWIDGET textarea) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_focus: widget is not a textarea\n");
+ return;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ [view.window makeFirstResponder:view];
+
+}
+
+void ui_textarea_set_selection(UIWIDGET textarea, int begin, int end) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_set_selection: widget is not a textarea\n");
+ return;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ NSRange range = NSMakeRange(begin, end-begin);
+ [view setSelectedRange:range];
+}
+
+void ui_textarea_select_all(UIWIDGET textarea) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_select_all: widget is not a textarea\n");
+ return;
+ }
+}
+
+void ui_textarea_set_editable(UIWIDGET textarea, UiBool editable) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_set_editable: widget is not a textarea\n");
+ return;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ view.editable = editable;
+}
+
+UiBool ui_textarea_is_editable(UIWIDGET textarea) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_is_editable: widget is not a textarea\n");
+ return 0;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ return view.isEditable;
+}
+
+void ui_textarea_set_position(UIWIDGET textarea, int pos) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_set_position: widget is not a textarea\n");
+ return;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ NSRange range = NSMakeRange(pos, 0);
+ [view setSelectedRange:range];
+}
+
+int ui_textarea_get_position(UIWIDGET textarea) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_get_position: widget is not a textarea\n");
+ return 0;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ NSRange range = view.selectedRange;
+ return (int)range.location;
+}
+
+void ui_textarea_scroll_to(UIWIDGET textarea, int pos) {
+ textarea = ui_textarea_gettextwidget(textarea);
+ if(!textarea) {
+ fprintf(stderr, "Error: ui_textarea_scroll_to: widget is not a textarea\n");
+ return;
+ }
+ NSTextView *view = (__bridge NSTextView*)textarea;
+ NSRange range = NSMakeRange(pos, 0);
+ [view scrollRangeToVisible:range];
+}
+
+// UiText textarea functions
void ui_textarea_save(UiText *text) {