77 float _lineFragmentPadding;
86 #pragma mark Init methods 88 - (id)initWithContainerSize:(CGSize)aSize
108 _lineFragmentPadding = 0.0;
111 [_layoutManager addTextContainer:self];
115 #pragma mark Setter methods 117 - (void)setContainerSize:(CGSize)someSize
121 _size = CGSizeMakeCopy(someSize);
123 if (oldSize.width != _size.width)
126 [_layoutManager invalidateLayoutForCharacterRange:CPMakeRange(0, [[_layoutManager textStorage] length])
128 actualCharacterRange:NULL];
130 [_layoutManager _validateLayoutAndGlyphs];
131 [_textView sizeToFit];
137 - (void)setWidthTracksTextView:(BOOL)flag
139 [_textView setPostsFrameChangedNotifications:flag];
145 name:CPViewFrameDidChangeNotification
151 name:CPViewFrameDidChangeNotification
158 var newSize = CGSizeMake([_textView
frame].size.width, _size.height);
166 [_textView setTextContainer:nil];
168 _textView = aTextView;
171 [_textView setTextContainer:self];
173 [_layoutManager textContainerChangedTextView:self];
176 - (BOOL)containsPoint:(CGPoint)aPoint
178 return CGRectContainsPoint(CGRectMake(0, 0, _size.width, _size.height), aPoint);
181 - (BOOL)isSimpleRectangularTextContainer
186 - (CGRect)lineFragmentRectForProposedRect:(CGRect)proposedRect
187 sweepDirection:(CPLineSweepDirection)sweep
188 movementDirection:(CPLineMovementDirection)movement
189 remainingRect:(CGRectPointer)remainingRect
191 var resultRect = CGRectCreateCopy(proposedRect);
195 CPLog.trace(
@"FIXME: unsupported sweep (" + sweep +
") or movement (" + movement +
")");
196 return CGRectMakeZero();
199 if (resultRect.origin.x + resultRect.size.width > _size.width)
200 resultRect.size.width = _size.width - resultRect.origin.x;
202 if (resultRect.size.width < 0)
203 resultRect = CGRectMakeZero();
207 remainingRect.origin.x = resultRect.origin.x + resultRect.size.width;
208 remainingRect.origin.y = resultRect.origin.y;
209 remainingRect.size.height = resultRect.size.height;
210 remainingRect.size.width = _size.width - (resultRect.origin.x + resultRect.size.width);
232 _size = [aCoder decodeSizeForKey:CPTextContainerSizeKey];
234 _layoutManager = [aCoder decodeObjectForKey:CPTextContainerLayoutManagerKey];
235 [_layoutManager addTextContainer:self];
243 [aCoder encodeSize:_size forKey:CPTextContainerSizeKey];
244 [aCoder encodeObject:_layoutManager forKey:CPTextContainerLayoutManagerKey];
254 - (float)lineFragmentPadding
256 return _lineFragmentPadding;
262 - (void)setLineFragmentPadding:(
float)aValue
264 _lineFragmentPadding = aValue;
270 - (CGSize)containerSize
278 - (void)setContainerSize:(CGSize)aValue
288 return _layoutManager;
296 _layoutManager = aValue;
void addObserver:selector:name:object:(id anObserver, [selector] SEL aSelector, [name] CPString aNotificationName, [object] id anObject)
id initWithContainerSize:(CGSize aSize)
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.
void removeObserver:name:object:(id anObserver, [name] CPString aNotificationName, [object] id anObject)
var CPTextContainerSizeKey