mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 04:57:03 +00:00
NEW: add -tile : layout all segments
Refactor -tileWithSegment: that still accepts a control with zero segments.
This commit is contained in:
+11
-10
@@ -711,18 +711,19 @@ CPSegmentSwitchTrackingMomentary = 2;
|
||||
{
|
||||
}
|
||||
|
||||
/*! @ignore */
|
||||
- (void)tile
|
||||
{
|
||||
[self tileWithChangedSegment:0];
|
||||
}
|
||||
|
||||
/*! @ignore */
|
||||
- (void)tileWithChangedSegment:(CPInteger)aSegment
|
||||
{
|
||||
var segmentCount = [self segmentCount];
|
||||
|
||||
if (segmentCount == 0)
|
||||
{
|
||||
[self setFrameSize:CGSizeMake(0, [self valueForThemeAttribute:@"min-size"].height)];
|
||||
return;
|
||||
}
|
||||
|
||||
if (aSegment < 0 || aSegment >= segmentCount)
|
||||
// Corner case: when segmentCount == 0 and aSegment == 0, we do not return here because we still need to set the new frameSize bellow.
|
||||
if (aSegment < 0 || (segmentCount > 0 && aSegment >= segmentCount))
|
||||
return;
|
||||
|
||||
// Invalidate frames for segments on the right. They will be lazily computed by -frameForSegment:.
|
||||
@@ -914,7 +915,7 @@ CPSegmentSwitchTrackingMomentary = 2;
|
||||
{
|
||||
[super setFont:aFont];
|
||||
|
||||
[self tileWithChangedSegment:0];
|
||||
[self tile];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -957,7 +958,7 @@ var CPSegmentedControlSegmentsKey = "CPSegmentedControlSegmentsKey",
|
||||
for (var i = 0; i < [self segmentCount]; i++)
|
||||
_themeStates[i] = [_segments[i] selected] ? CPThemeStateSelected : CPThemeStateNormal;
|
||||
|
||||
[self tileWithChangedSegment:0];
|
||||
[self tile];
|
||||
|
||||
var thickness = [self currentValueForThemeAttribute:@"divider-thickness"],
|
||||
dividerExtraSpace = ([_segments count] - 1) * thickness,
|
||||
@@ -988,7 +989,7 @@ var CPSegmentedControlSegmentsKey = "CPSegmentedControlSegmentsKey",
|
||||
}
|
||||
|
||||
[self setFrameSize:CGSizeMake(originalWidth, CGRectGetHeight([self frame]))];
|
||||
[self tileWithChangedSegment:0];
|
||||
[self tile];
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
for (var i = 0; i < _segments.length; i++)
|
||||
_themeStates[i] = _segments[i].selected ? CPThemeStateSelected : CPThemeStateNormal;
|
||||
|
||||
[self tileWithChangedSegment:0];
|
||||
[self tile];
|
||||
|
||||
[self setEnabled:[cell isEnabled]];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user