Mercurial > dwindows
comparison ios/dw.m @ 2427:4f078d24fe83
iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
for dw_window_g/set_text(). Remove UIWindow since it would crash.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 04 Apr 2021 22:24:13 +0000 |
parents | 6220f0580088 |
children | 9c5b95d66fc8 |
comparison
equal
deleted
inserted
replaced
2426:6220f0580088 | 2427:4f078d24fe83 |
---|---|
3160 } | 3160 } |
3161 | 3161 |
3162 /* Return the handle to the text object */ | 3162 /* Return the handle to the text object */ |
3163 id _dw_text_handle(id object) | 3163 id _dw_text_handle(id object) |
3164 { | 3164 { |
3165 if([object isMemberOfClass:[ DWSpinButton class]]) | 3165 if([object isMemberOfClass:[DWButton class]]) |
3166 { | |
3167 DWButton *button = object; | |
3168 object = [button titleLabel]; | |
3169 } | |
3170 else if([object isMemberOfClass:[DWSpinButton class]]) | |
3166 { | 3171 { |
3167 DWSpinButton *spinbutton = object; | 3172 DWSpinButton *spinbutton = object; |
3168 object = [spinbutton textfield]; | 3173 object = [spinbutton textfield]; |
3169 } | 3174 } |
3170 #if 0 /* TODO: Fix this when we have a groupbox implemented */ | 3175 #if 0 /* TODO: Fix this when we have a groupbox implemented */ |
3171 if([object isMemberOfClass:[ NSBox class]]) | 3176 if([object isMemberOfClass:[NSBox class]]) |
3172 { | 3177 { |
3173 NSBox *box = object; | 3178 NSBox *box = object; |
3174 id content = [box contentView]; | 3179 id content = [box contentView]; |
3175 | 3180 |
3176 if([content isMemberOfClass:[ DWText class]]) | 3181 if([content isMemberOfClass:[DWText class]]) |
3177 { | 3182 { |
3178 object = content; | 3183 object = content; |
3179 } | 3184 } |
3180 } | 3185 } |
3181 #endif | 3186 #endif |
8096 { | 8101 { |
8097 DW_FUNCTION_INIT; | 8102 DW_FUNCTION_INIT; |
8098 id object = _dw_text_handle(handle); | 8103 id object = _dw_text_handle(handle); |
8099 char *retval = NULL; | 8104 char *retval = NULL; |
8100 | 8105 |
8101 if([ object isKindOfClass:[ UIWindow class ] ] || [ object isKindOfClass:[ UIButton class ] ]) | 8106 if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]]) |
8102 { | 8107 { |
8103 id window = object; | 8108 NSString *nsstr = [object text]; |
8104 NSString *nsstr = [ window title]; | 8109 |
8105 | 8110 retval = strdup([nsstr UTF8String]); |
8106 retval = strdup([ nsstr UTF8String ]); | 8111 } |
8107 } | 8112 #ifdef DW_INCLUDE_DEPRECATED |
8108 else if([ object isKindOfClass:[ UIControl class ] ]) | 8113 else if([object isKindOfClass:[UIControl class]]) |
8109 { | 8114 { |
8110 UIControl *control = object; | 8115 UIControl *control = object; |
8111 NSString *nsstr = [control text]; | 8116 NSString *nsstr = [control text]; |
8112 | 8117 |
8113 if(nsstr && [nsstr length] > 0) | 8118 if(nsstr && [nsstr length] > 0) |
8114 retval = strdup([ nsstr UTF8String ]); | 8119 retval = strdup([nsstr UTF8String]); |
8115 } | 8120 } |
8121 #endif | |
8116 DW_FUNCTION_RETURN_THIS(retval); | 8122 DW_FUNCTION_RETURN_THIS(retval); |
8117 } | 8123 } |
8118 | 8124 |
8119 /* | 8125 /* |
8120 * Sets the text used for a given window. | 8126 * Sets the text used for a given window. |
8128 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *) | 8134 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *) |
8129 { | 8135 { |
8130 DW_FUNCTION_INIT; | 8136 DW_FUNCTION_INIT; |
8131 id object = _dw_text_handle(handle); | 8137 id object = _dw_text_handle(handle); |
8132 | 8138 |
8133 if([ object isKindOfClass:[ UIWindow class ] ] || [ object isKindOfClass:[ UIButton class ] ]) | 8139 if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]]) |
8134 [object setTitle:[NSString stringWithUTF8String:text]]; | 8140 [object setText:[NSString stringWithUTF8String:text]]; |
8135 else if([ object isKindOfClass:[ UIControl class ] ]) | 8141 #ifdef DW_INCLUDE_DEPRECATED |
8142 else if([object isKindOfClass:[UIControl class]]) | |
8136 { | 8143 { |
8137 UIControl *control = object; | 8144 UIControl *control = object; |
8138 [control setText:[NSString stringWithUTF8String:text]]; | 8145 [control setText:[NSString stringWithUTF8String:text]]; |
8139 } | 8146 } |
8147 #endif | |
8140 else | 8148 else |
8141 return; | 8149 return; |
8142 /* If we changed the text... */ | 8150 /* If we changed the text... */ |
8143 Item *item = _dw_box_item(handle); | 8151 Item *item = _dw_box_item(handle); |
8144 | 8152 |