Mercurial > dwindows
changeset 2705:ddcbed595a84
iOS: Implement HICN resizing and text/label vertical centering.
Working throught some of the TODO list. Remove some dead code.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 18 Nov 2021 12:04:40 +0000 |
parents | ae846e9f1ead |
children | 4e9eba7f7226 |
files | ios/dw.m |
diffstat | 1 files changed, 15 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/ios/dw.m Wed Nov 17 22:12:59 2021 +0000 +++ b/ios/dw.m Thu Nov 18 12:04:40 2021 +0000 @@ -3422,13 +3422,6 @@ mtext = [[[NSString alloc] initWithFormat:[NSString stringWithUTF8String:format] arguments:args] autorelease]; va_end(args); -#if 0 /* TODO: If we want to use this style it requires a rectangle... - * However the alert style looks pretty good to me... - */ - if(flags & DW_MB_INFORMATION) - mstyle = UIAlertControllerStyleActionSheet; -#endif - params = [NSMutableArray arrayWithObjects:mtitle, mtext, [NSNumber numberWithInteger:mstyle], button1, button2, button3, nil]; [DWObj safeCall:@selector(messageBox:) withObject:params]; iResponse = [[params lastObject] integerValue]; @@ -6900,7 +6893,7 @@ } /* Internal function to keep HICNs from getting too big */ -void _dw_icon_resize(UIImage *image) +UIImage *_dw_icon_resize(UIImage *image) { if(image) { @@ -6911,11 +6904,16 @@ size.width = 24; if(size.height > 24) size.height = 24; -#if 0 /* TODO: UIImage is immutable, duplicate? */ - [image setSize:size]; -#endif - } - } + // Pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). + // Pass 1.0 to force exact pixel size. + UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); + [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; + UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return newImage; + } + } + return image; } /* Internal version that does not resize the image */ @@ -6939,8 +6937,7 @@ HICN API dw_icon_load(unsigned long module, unsigned long resid) { UIImage *image = _dw_icon_load(resid); - _dw_icon_resize(image); - return image; + return _dw_icon_resize(image); } /* @@ -6961,8 +6958,7 @@ nstr = [nstr stringByAppendingString: [NSString stringWithUTF8String:ext]]; image = [[UIImage alloc] initWithContentsOfFile:nstr]; } - _dw_icon_resize(image); - return image; + return _dw_icon_resize(image); } /* @@ -6976,8 +6972,7 @@ { NSData *thisdata = [NSData dataWithBytes:data length:len]; UIImage *image = [[UIImage alloc] initWithData:thisdata]; - _dw_icon_resize(image); - return image; + return _dw_icon_resize(image); } /* @@ -8331,12 +8326,8 @@ UILabel *label = object; [label setTextAlignment:(style & 0xF)]; -#if 0 /* TODO: Implement vertical centering */ if(mask & DW_DT_VCENTER) - { - [cell setVCenter:(style & DW_DT_VCENTER ? YES : NO)]; - } -#endif + [label setBaselineAdjustment:(style & DW_DT_VCENTER ? UIBaselineAdjustmentAlignCenters : UIBaselineAdjustmentNone)]; if(mask & DW_DT_WORDBREAK) { if(style & DW_DT_WORDBREAK)