Skip to content

Commit 69dfc67

Browse files
committed
Merge pull request #1346 from pkclsoft/v3.4.9
Added cascadeContentSizeEnabled property
2 parents 169ea05 + 554fcde commit 69dfc67

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

cocos2d/CCNode.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,9 @@
212212

213213
// Opacity/Color propagates into children that conform to if cascadeOpacity/cascadeColor is enabled.
214214
BOOL _cascadeColorEnabled, _cascadeOpacityEnabled;
215+
216+
// contentSize changes don't propogate to children unless cascadeContentSize is enabled.
217+
BOOL _cascadeContentSizeEnabled;
215218

216219
@private
217220
// Physics Body.
@@ -386,9 +389,12 @@
386389
/// -----------------------------------------------------------------------
387390

388391
/** The untransformed size of the node in the unit specified by contentSizeType property.
389-
The contentSize remains the same regardless of whether the node is scaled or rotated.
392+
The contentSize remains the same regardless of whether the node is scaled or rotated. Changes to contentSize will not affect
393+
children unless the property cascadeContentSize is enabled.
390394
@see contentSizeInPoints
391-
@see contentSizeType */
395+
@see contentSizeType
396+
@see cascadeContentSizeEnabled
397+
*/
392398
@property (nonatomic,readwrite,assign) CGSize contentSize;
393399

394400
/** The untransformed size of the node in Points. The contentSize remains the same regardless of whether the node is scaled or rotated.
@@ -404,6 +410,12 @@
404410
@see contentSizeInPoints */
405411
@property (nonatomic,readwrite,assign) CCSizeType contentSizeType;
406412

413+
/**
414+
cascadeContentSizeEnabled causes changes to this node's contentSize to cascade down to it's children.
415+
@see contentSize
416+
*/
417+
@property (nonatomic, getter = isCascadeContentSizeEnabled) BOOL cascadeContentSizeEnabled;
418+
407419
/**
408420
* Invoked automatically when the OS view has been resized.
409421
*

cocos2d/CCNode.m

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ -(id) init
187187
_displayColor = _color = [CCColor whiteColor].ccColor4f;
188188
_cascadeOpacityEnabled = NO;
189189
_cascadeColorEnabled = NO;
190+
_cascadeContentSizeEnabled = NO;
190191
}
191192

192193
return self;
@@ -399,12 +400,11 @@ - (void) contentSizeChanged
399400
{
400401
[child parentsContentSizeChanged];
401402
}
402-
403403
}
404404

405405
- (void) parentsContentSizeChanged
406406
{
407-
if (!CCSizeTypeIsBasicPoints(_contentSizeType))
407+
if (!CCSizeTypeIsBasicPoints(_contentSizeType) && (_cascadeContentSizeEnabled == YES))
408408
{
409409
[self contentSizeChanged];
410410
}
@@ -1679,6 +1679,7 @@ - (BOOL)hitTestWithWorldPos:(CGPoint)pos
16791679

16801680
@synthesize cascadeColorEnabled=_cascadeColorEnabled;
16811681
@synthesize cascadeOpacityEnabled=_cascadeOpacityEnabled;
1682+
@synthesize cascadeContentSizeEnabled=_cascadeContentSizeEnabled;
16821683

16831684
-(CGFloat) opacity
16841685
{

0 commit comments

Comments
 (0)