// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_IOS_NSSTRING_CR_STRING_DRAWING_H_ #define UI_IOS_NSSTRING_CR_STRING_DRAWING_H_ #import @interface NSString (CrStringDrawing) // Calculates and returns the bounding rect for the receiver drawn using the // given size and font. // This method is implemented as a wrapper around // |boundingRectWithSize:options:attributes:context:| using the following values // for the parameters: // - size: the provided |size| // - options: NSStringDrawingUsesLineFragmentOrigin // - attributes: a NSDictionary with the provided |font| // - context: nil. // // Note that the rect returned may contain fractional values. - (CGRect)cr_boundingRectWithSize:(CGSize)size font:(UIFont*)font; // Convenience wrapper to just return the size of |boundingRectWithSize:font:|. // // Note that the size returned may contain fractional values. - (CGSize)cr_boundingSizeWithSize:(CGSize)size font:(UIFont*)font; // Returns the size of the string if it were to be rendered with the specified // font on a single line. The width and height of the CGSize returned are // pixel-aligned. // // This method is a convenience wrapper around sizeWithAttributes: to avoid // boilerplate required to put |font| in a dictionary of attributes. Do not pass // nil into this method. - (CGSize)cr_pixelAlignedSizeWithFont:(UIFont*)font; // Deprecated: Use cr_pixelAlignedSizeWithFont: or sizeWithAttributes: // Provides a drop-in replacement for sizeWithFont:, which was deprecated in iOS // 7 in favor of -sizeWithAttributes:. Specifically, this method will return // CGSizeZero if |font| is nil, and the width and height returned are rounded up // to integer values. // TODO(lliabraa): This method was added to ease the transition off of the // deprecated sizeWithFont: method. New call sites should not be added and // existing call sites should be audited to determine the correct behavior for // nil |font| and rounding, then replaced with cr_pixelAlignedSizeWithFont: or // sizeWithAttributes: (crbug.com/364419). - (CGSize)cr_sizeWithFont:(UIFont*)font; @end #endif // UI_IOS_NSSTRING_CR_STRING_DRAWING_H_