Index: ios/chrome/browser/ui/util/manual_text_framer.h |
diff --git a/ios/chrome/browser/ui/util/manual_text_framer.h b/ios/chrome/browser/ui/util/manual_text_framer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..006a40f011a563493d07b388c6bc1e62fc423c13 |
--- /dev/null |
+++ b/ios/chrome/browser/ui/util/manual_text_framer.h |
@@ -0,0 +1,36 @@ |
+// Copyright 2015 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 IOS_CHROME_BROWSER_UI_UTIL_MANUAL_TEXT_FRAMER_H_ |
+#define IOS_CHROME_BROWSER_UI_UTIL_MANUAL_TEXT_FRAMER_H_ |
+ |
+#import <CoreText/CoreText.h> |
+#import <Foundation/Foundation.h> |
+ |
+@protocol TextFrame; |
+ |
+// Object encapsulating the manual framing of an attributed string within a |
+// bounding rect. |
+// Known limitations: |
+// - Justified-aligned text is not supported. |
+// - Hyphenation is never attempted, regardless of NSParagraphStyle's |
+// |hyphenationFactor|. |
+@interface ManualTextFramer : NSObject |
+ |
+// Creates an instance that frames |string| within |bounds|. |
+- (instancetype)initWithString:(NSAttributedString*)string |
+ inBounds:(CGRect)bounds NS_DESIGNATED_INITIALIZER; |
+- (instancetype)init NS_UNAVAILABLE; |
+ |
+// Manually Frames the paragraph within the bounds provided upon initialization. |
+// Calling this method populates |textFrame|. |
+- (void)frameText; |
+ |
+// The TextFrame created by |-frameText|. Will be nil before |-frameText| is |
+// called. |
+@property(nonatomic, readonly) id<TextFrame> textFrame; |
+ |
+@end |
+ |
+#endif // IOS_CHROME_BROWSER_UI_UTIL_MANUAL_TEXT_FRAMER_H_ |