ui/cocoa/text.m

changeset 685
36e08a9aff8e
parent 603
8d2b7b934230
child 686
1e2f3a44d455
equal deleted inserted replaced
684:3c9b430fb160 685:36e08a9aff8e
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 }

mercurial