ui/cocoa/text.m

changeset 686
1e2f3a44d455
parent 685
36e08a9aff8e
child 718
06eec75a6fd5
equal deleted inserted replaced
685:36e08a9aff8e 686:1e2f3a44d455
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 -------------------------- */

mercurial