77 float _lineFragmentPadding;
85 #pragma mark Init methods 87 - (id)initWithContainerSize:(CGSize)aSize
107 _lineFragmentPadding = 0.0;
110 [_layoutManager addTextContainer:self];
114 #pragma mark Setter methods 116 - (void)setContainerSize:(CGSize)someSize
120 _size = CGSizeMakeCopy(someSize);
122 if (oldSize.width != _size.width)
125 [_layoutManager invalidateLayoutForCharacterRange:CPMakeRange(0, [[_layoutManager textStorage] length])
127 actualCharacterRange:NULL];
129 [_layoutManager _validateLayoutAndGlyphs];
130 [_textView sizeToFit];
136 - (void)setWidthTracksTextView:(BOOL)flag
138 [_textView setPostsFrameChangedNotifications:flag];
144 name:CPViewFrameDidChangeNotification
150 name:CPViewFrameDidChangeNotification
157 var newSize = CGSizeMake([_textView
frame].size.width, _size.height);
166 [
self _removeAllLines];
167 [_textView setTextContainer:nil];
170 _textView = aTextView;
173 [_textView setTextContainer:self];
175 [_layoutManager textContainerChangedTextView:self];
178 - (BOOL)containsPoint:(CGPoint)aPoint
180 return CGRectContainsPoint(CGRectMake(0, 0, _size.width, _size.height), aPoint);
188 - (CGRect)lineFragmentRectForProposedRect:(CGRect)proposedRect
189 sweepDirection:(CPLineSweepDirection)sweep
190 movementDirection:(CPLineMovementDirection)movement
191 remainingRect:(CGRectPointer)remainingRect
193 var resultRect = CGRectCreateCopy(proposedRect);
197 CPLog.trace(
@"FIXME: unsupported sweep (" + sweep +
") or movement (" + movement +
")");
198 return CGRectMakeZero();
201 if (resultRect.origin.x + resultRect.size.width > _size.width)
202 resultRect.size.width = _size.width - resultRect.origin.x;
204 if (resultRect.size.width < 0)
205 resultRect = CGRectMakeZero();
209 remainingRect.origin.x = resultRect.origin.x + resultRect.size.width;
210 remainingRect.origin.y = resultRect.origin.y;
211 remainingRect.size.height = resultRect.size.height;
212 remainingRect.size.width = _size.width - (resultRect.origin.x + resultRect.size.width);
234 _size = [aCoder decodeSizeForKey:CPTextContainerSizeKey];
236 _layoutManager = [aCoder decodeObjectForKey:CPTextContainerLayoutManagerKey];
237 [_layoutManager addTextContainer:self];
245 [aCoder encodeSize:_size forKey:CPTextContainerSizeKey];
246 [aCoder encodeObject:_layoutManager forKey:CPTextContainerLayoutManagerKey];
258 return _lineFragmentPadding;
264 - (void)setLineFragmentPadding:(
float)aValue
266 _lineFragmentPadding = aValue;
280 - (void)setLayoutManager:(CGSize)aValue
void addObserver:selector:name:object:(id anObserver, [selector] SEL aSelector, [name] CPString aNotificationName, [object] id anObject)
id initWithContainerSize:(CGSize aSize)
float lineFragmentPadding()
CPNotificationCenter defaultCenter()
void setContainerSize:(CGSize someSize)
var CPTextContainerLayoutManagerKey
A notification that can be posted to a CPNotificationCenter.
Defines methods for use when archiving & restoring (enc/decoding).
Sends messages (CPNotification) between objects.
BOOL isSimpleRectangularTextContainer()
void removeObserver:name:object:(id anObserver, [name] CPString aNotificationName, [object] id anObject)
var CPTextContainerSizeKey