Merge pull request #1934 from Dogild/showcase

Fixed: Aristo showcase is broken because CPDatePicker
This commit is contained in:
Antoine Mercadal
2013-05-21 15:30:15 -07:00
6 changed files with 101 additions and 55 deletions
+4 -4
View File
@@ -135,10 +135,10 @@ CPEraDatePickerElementFlag = 0x0100;
@"clock-text-shadow-color": [CPColor clearColor],
@"clock-text-shadow-offset": CGSizeMakeZero(),
@"clock-font": [CPNull null],
@"second-hand-color": [CPColor clearColor],
@"hour-hand-color": [CPColor clearColor],
@"middle-hand-color": [CPColor clearColor],
@"minute-hand-color": [CPColor clearColor],
@"second-hand-image": [CPNull null],
@"hour-hand-image": [CPNull null],
@"middle-hand-image": [CPNull null],
@"minute-hand-image": [CPNull null],
@"size-clock": CGSizeMakeZero(),
@"second-hand-size": CGSizeMakeZero(),
@"hour-hand-size": CGSizeMakeZero(),
@@ -445,6 +445,9 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
*/
- (void)layoutSubviews
{
if ([_datePicker datePickerStyle] == CPTextFieldAndStepperDatePickerStyle || [_datePicker datePickerStyle] == CPTextFieldDatePickerStyle)
return;
var bounds = [self bounds],
dayNames = [self _dayNames],
width = CGRectGetWidth(bounds),
@@ -753,6 +756,9 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
*/
- (void)layoutSubviews
{
if ([_datePicker datePickerStyle] == CPTextFieldAndStepperDatePickerStyle || [_datePicker datePickerStyle] == CPTextFieldDatePickerStyle)
return;
[super layoutSubviews];
[self tile];
@@ -1133,6 +1139,9 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
*/
- (void)layoutSubviews
{
if ([_datePicker datePickerStyle] == CPTextFieldAndStepperDatePickerStyle || [_datePicker datePickerStyle] == CPTextFieldDatePickerStyle)
return;
var bounds = [self bounds];
[_textField sizeToFit];
[_textField setFrameOrigin:CGPointMake(bounds.size.width / 2 - [_textField frameSize].width / 2 + [_datePicker valueForThemeAttribute:@"border-width"], bounds.size.height / 2 - [_textField frameSize].height / 2)];
@@ -1205,6 +1214,9 @@ var CPShortWeekDayNameArrayEn = [@"Mo", @"Tu", @"We", @"Th", @"Fr", @"Sa", @"Su"
- (void)layoutSubviews
{
if ([_datePicker datePickerStyle] == CPTextFieldAndStepperDatePickerStyle || [_datePicker datePickerStyle] == CPTextFieldDatePickerStyle)
return;
if ([_datePicker drawsBackground])
[self setBackgroundColor:[_datePicker backgroundColor]];
else
+42 -15
View File
@@ -27,6 +27,8 @@
@class CPDatePicker
@global CPHourMinuteSecondDatePickerElementFlag
@global CPTextFieldAndStepperDatePickerStyle
@global CPTextFieldDatePickerStyle
@implementation _CPDatePickerClock : CPView
{
@@ -123,6 +125,9 @@
*/
- (void)layoutSubviews
{
if ([_datePicker datePickerStyle] == CPTextFieldAndStepperDatePickerStyle || [_datePicker datePickerStyle] == CPTextFieldDatePickerStyle)
return;
[super layoutSubviews];
var bounds = [self bounds],
@@ -131,10 +136,10 @@
[dateValue _dateWithTimeZone:[_datePicker timeZone]];
[self setBackgroundColor:[_datePicker valueForThemeAttribute:@"bezel-color-clock" inState:[_datePicker themeState]]];
[_middleHandLayer setBackgroundHandColor:[_datePicker valueForThemeAttribute:@"middle-hand-color" inState:[_datePicker themeState]]];
[_hourHandLayer setBackgroundHandColor:[_datePicker valueForThemeAttribute:@"hour-hand-color" inState:[_datePicker themeState]]];
[_minuteHandLayer setBackgroundHandColor:[_datePicker valueForThemeAttribute:@"minute-hand-color" inState:[_datePicker themeState]]];
[_secondHandLayer setBackgroundHandColor:[_datePicker valueForThemeAttribute:@"second-hand-color" inState:[_datePicker themeState]]];
[_middleHandLayer setImage:[_datePicker valueForThemeAttribute:@"middle-hand-image" inState:[_datePicker themeState]]];
[_hourHandLayer setImage:[_datePicker valueForThemeAttribute:@"hour-hand-image" inState:[_datePicker themeState]]];
[_minuteHandLayer setImage:[_datePicker valueForThemeAttribute:@"minute-hand-image" inState:[_datePicker themeState]]];
[_secondHandLayer setImage:[_datePicker valueForThemeAttribute:@"second-hand-image" inState:[_datePicker themeState]]];
if ([_datePicker _isEnglishFormat])
{
@@ -156,6 +161,12 @@
[_minuteHandLayer setRotationRadians:[self _minutePositionRadianForDate:dateValue]];
[_secondHandLayer setRotationRadians:[self _secondPositionRadianForDate:dateValue]];
[_PMAMTextField setEnabled:_isEnabled];
[_hourHandLayer setEnabled:_isEnabled];
[_middleHandLayer setEnabled:_isEnabled];
[_secondHandLayer setEnabled:_isEnabled];
[_minuteHandLayer setEnabled:_isEnabled];
// Check if we have to display the hand second
if (([_datePicker datePickerElements] & CPHourMinuteSecondDatePickerElementFlag) == CPHourMinuteSecondDatePickerElementFlag)
[_secondHandLayer setHidden:NO];
@@ -200,12 +211,6 @@
- (void)setEnabled:(BOOL)aBoolean
{
_isEnabled = aBoolean;
[_PMAMTextField setEnabled:aBoolean];
[_hourHandLayer setEnabled:aBoolean];
[_middleHandLayer setEnabled:aBoolean];
[_secondHandLayer setEnabled:aBoolean];
[_minuteHandLayer setEnabled:aBoolean];
[self setNeedsLayout];
}
@@ -216,6 +221,7 @@
{
BOOL _isEnabled @accessors(setter=setEnabled:, getter=isEnabled);
CPImage _image;
CALayer _imageLayer;
float _rotationRadians;
}
@@ -258,6 +264,16 @@
[_imageLayer setPosition:CGPointMake(CGRectGetMidX(aRect), CGRectGetMidY(aRect))];
}
- (void)setImage:(CPImage)anImage
{
if (_image == anImage)
return;
_image = anImage;
[_imageLayer setNeedsDisplay];
}
/*! Set the rotation of the imageLayer
@param radians
*/
@@ -273,15 +289,26 @@
1.0, 1.0)];
}
- (void)setBackgroundHandColor:(CPColor)aColor
{
[_imageLayer setBackgroundColor:aColor];
}
- (void)setEnabled:(BOOL)aBoolean
{
_isEnabled = aBoolean;
[self setNeedsDisplay];
[_imageLayer setNeedsDisplay];
}
- (void)imageDidLoad:(CPImage)anImage
{
[_imageLayer setNeedsDisplay];
}
- (void)drawLayer:(CALayer)aLayer inContext:(CGContext)aContext
{
var bounds = [aLayer bounds];
if ([_image loadStatus] != CPImageLoadStatusCompleted)
[_image setDelegate:self];
else
CGContextDrawImage(aContext, bounds, _image);
}
@end
@@ -676,6 +676,9 @@ var CPZeroKeyCode = 48,
- (void)layoutSubviews
{
if ([_datePicker datePickerStyle] == CPClockAndCalendarDatePickerStyle)
return;
[super layoutSubviews];
var themeState = [_datePicker themeState];
+20 -18
View File
@@ -1097,7 +1097,7 @@ var themedButtonValues = nil,
+ (CPDatePicker)themedDatePicker
{
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40,140,300,29)],
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0, 40.0, 170.0, 29.0)],
bezelColor = PatternColor(
[
@@ -1166,6 +1166,7 @@ var themedButtonValues = nil,
[@"max-size", CGSizeMake(-1.0, 29.0)]
];
[datePicker setDatePickerStyle:CPTextFieldDatePickerStyle];
[self registerThemeValues:themeValues forView:datePicker];
return datePicker;
@@ -1173,7 +1174,7 @@ var themedButtonValues = nil,
+ (CPDatePicker)themedDatePickerCalendar
{
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40,140,300,29)],
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0, 140.0, 276.0, 148.0)],
arrowImageLeft = PatternImage("datepicker-calendar-arrow-left.png", 7.0, 10.0),
arrowImageRight = PatternImage("datepicker-calendar-arrow-right.png", 7.0, 10.0),
@@ -1183,16 +1184,16 @@ var themedButtonValues = nil,
arrowImageRightHighlighted = PatternImage("datepicker-calendar-arrow-right-highlighted.png", 7.0, 10.0),
circleImageHighlighted = PatternImage("datepicker-circle-image-highlighted.png", 9.0, 10.0),
secondHandColor = PatternColor("datepicker-clock-second-hand.png", 89.0, 89.0),
minuteHandColor = PatternColor("datepicker-clock-minute-hand.png", 85.0, 85.0),
hourHandColor = PatternColor("datepicker-clock-hour-hand.png", 47.0, 47.0),
middleHandColor = PatternColor("datepicker-clock-middle-hand.png", 13.0, 13.0),
secondHandImage = CPImageInBundle(@"datepicker-clock-second-hand.png", CGSizeMake(89, 89)),
minuteHandImage = CPImageInBundle(@"datepicker-clock-minute-hand.png", CGSizeMake(85, 85)),
hourHandImage = CPImageInBundle(@"datepicker-clock-hour-hand.png", CGSizeMake(47, 47)),
middleHandImage = CPImageInBundle(@"datepicker-clock-middle-hand.png", CGSizeMake(13, 13)),
clockImageColor = PatternColor("datepicker-clock.png", 122.0, 123.0),
secondHandColorDisabled = PatternColor("datepicker-clock-second-hand-disabled.png", 89.0, 89.0),
minuteHandColorDisabled = PatternColor("datepicker-clock-minute-hand-disabled.png", 85.0, 85.0),
hourHandColorDisabled = PatternColor("datepicker-clock-hour-hand-disabled.png", 47.0, 47.0),
middleHandColorDisabled = PatternColor("datepicker-clock-middle-hand-disabled.png", 13.0, 13.0),
secondHandImageDisabled = CPImageInBundle(@"datepicker-clock-second-hand-disabled.png", CGSizeMake(89, 89)),
minuteHandImageDisabled = CPImageInBundle(@"datepicker-clock-minute-hand-disabled.png", CGSizeMake(85, 85)),
hourHandImageDisabled = CPImageInBundle(@"datepicker-clock-hour-hand-disabled.png", CGSizeMake(47, 47)),
middleHandImageDisabled = CPImageInBundle(@"datepicker-clock-middle-hand-disabled.png", CGSizeMake(13, 13)),
clockImageColorDisabled = PatternColor("datepicker-clock-disabled.png", 122.0, 123.0),
themeValues =
@@ -1286,15 +1287,15 @@ var themedButtonValues = nil,
[@"circle-image-highlighted", circleImageHighlighted],
[@"arrow-inset", CGInsetMake(9.0, 4.0, 0.0, 0.0)],
[@"second-hand-color", secondHandColor],
[@"hour-hand-color", hourHandColor],
[@"middle-hand-color", middleHandColor],
[@"minute-hand-color", minuteHandColor],
[@"second-hand-image", secondHandImage],
[@"hour-hand-image", hourHandImage],
[@"middle-hand-image", middleHandImage],
[@"minute-hand-image", minuteHandImage],
[@"second-hand-color", secondHandColorDisabled, CPThemeStateDisabled],
[@"hour-hand-color", hourHandColorDisabled, CPThemeStateDisabled],
[@"middle-hand-color", middleHandColorDisabled, CPThemeStateDisabled],
[@"minute-hand-color", minuteHandColorDisabled, CPThemeStateDisabled],
[@"second-hand-image", secondHandImageDisabled, CPThemeStateDisabled],
[@"hour-hand-image", hourHandImageDisabled, CPThemeStateDisabled],
[@"middle-hand-image", middleHandImageDisabled, CPThemeStateDisabled],
[@"minute-hand-image", minuteHandImageDisabled, CPThemeStateDisabled],
[@"second-hand-size", CGSizeMake(89.0, 89.0)],
[@"hour-hand-size", CGSizeMake(47.0, 47.0)],
@@ -1312,6 +1313,7 @@ var themedButtonValues = nil,
];
[datePicker setDatePickerStyle:CPClockAndCalendarDatePickerStyle];
[datePicker setBackgroundColor:[CPColor whiteColor]];
[self registerThemeValues:themeValues forView:datePicker];
return datePicker;
+20 -18
View File
@@ -667,7 +667,7 @@ var themedButtonValues = nil,
+ (CPDatePicker)themedDatePicker
{
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40,140,300,29)],
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0 ,40.0 ,170.0 ,29.0)],
bezelColor = PatternColor(
"textfield-bezel-square{state}{position}.png",
@@ -719,6 +719,7 @@ var themedButtonValues = nil,
[@"max-size", CGSizeMake(-1.0, 29.0)]
];
[datePicker setDatePickerStyle:CPTextFieldDatePickerStyle];
[self registerThemeValues:themeValues forView:datePicker];
return datePicker;
@@ -726,7 +727,7 @@ var themedButtonValues = nil,
+ (CPDatePicker)themedDatePickerCalendar
{
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40,140,300,29)],
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0, 140.0, 276.0 ,148.0)],
arrowImageLeft = PatternImage("datepicker-calendar-arrow-left.png", 7.0, 10.0),
arrowImageRight = PatternImage("datepicker-calendar-arrow-right.png", 7.0, 10.0),
@@ -736,16 +737,16 @@ var themedButtonValues = nil,
arrowImageRightHighlighted = PatternImage("datepicker-calendar-arrow-right-highlighted.png", 7.0, 10.0),
circleImageHighlighted = PatternImage("datepicker-circle-image-highlighted.png", 9.0, 10.0),
secondHandColor = PatternColor("datepicker-clock-second-hand.png", 89.0, 89.0),
minuteHandColor = PatternColor("datepicker-clock-minute-hand.png", 85.0, 85.0),
hourHandColor = PatternColor("datepicker-clock-hour-hand.png", 47.0, 47.0),
middleHandColor = PatternColor("datepicker-clock-middle-hand.png", 13.0, 13.0),
secondHandImage = CPImageInBundle(@"datepicker-clock-second-hand.png", CGSizeMake(89, 89)),
minuteHandImage = CPImageInBundle(@"datepicker-clock-minute-hand.png", CGSizeMake(85, 85)),
hourHandImage = CPImageInBundle(@"datepicker-clock-hour-hand.png", CGSizeMake(47, 47)),
middleHandImage = CPImageInBundle(@"datepicker-clock-middle-hand.png", CGSizeMake(13, 13)),
clockImageColor = PatternColor("datepicker-clock.png", 122.0, 123.0),
secondHandColorDisabled = PatternColor("datepicker-clock-second-hand-disabled.png", 89.0, 89.0),
minuteHandColorDisabled = PatternColor("datepicker-clock-minute-hand-disabled.png", 85.0, 85.0),
hourHandColorDisabled = PatternColor("datepicker-clock-hour-hand-disabled.png", 47.0, 47.0),
middleHandColorDisabled = PatternColor("datepicker-clock-middle-hand-disabled.png", 13.0, 13.0),
secondHandImageDisabled = CPImageInBundle(@"datepicker-clock-second-hand-disabled.png", CGSizeMake(89, 89)),
minuteHandImageDisabled = CPImageInBundle(@"datepicker-clock-minute-hand-disabled.png", CGSizeMake(85, 85)),
hourHandImageDisabled = CPImageInBundle(@"datepicker-clock-hour-hand-disabled.png", CGSizeMake(47, 47)),
middleHandImageDisabled = CPImageInBundle(@"datepicker-clock-middle-hand-disabled.png", CGSizeMake(13, 13)),
clockImageColorDisabled = PatternColor("datepicker-clock-disabled.png", 122.0, 123.0),
themeValues =
@@ -839,15 +840,15 @@ var themedButtonValues = nil,
[@"circle-image-highlighted", circleImageHighlighted],
[@"arrow-inset", CGInsetMake(9.0, 4.0, 0.0, 0.0)],
[@"second-hand-color", secondHandColor],
[@"hour-hand-color", hourHandColor],
[@"middle-hand-color", middleHandColor],
[@"minute-hand-color", minuteHandColor],
[@"second-hand-image", secondHandImage],
[@"hour-hand-image", hourHandImage],
[@"middle-hand-image", middleHandImage],
[@"minute-hand-image", minuteHandImage],
[@"second-hand-color", secondHandColorDisabled, CPThemeStateDisabled],
[@"hour-hand-color", hourHandColorDisabled, CPThemeStateDisabled],
[@"middle-hand-color", middleHandColorDisabled, CPThemeStateDisabled],
[@"minute-hand-color", minuteHandColorDisabled, CPThemeStateDisabled],
[@"second-hand-image", secondHandImageDisabled, CPThemeStateDisabled],
[@"hour-hand-image", hourHandImageDisabled, CPThemeStateDisabled],
[@"middle-hand-image", middleHandImageDisabled, CPThemeStateDisabled],
[@"minute-hand-image", minuteHandImageDisabled, CPThemeStateDisabled],
[@"second-hand-size", CGSizeMake(89.0, 89.0)],
[@"hour-hand-size", CGSizeMake(47.0, 47.0)],
@@ -864,6 +865,7 @@ var themedButtonValues = nil,
];
[datePicker setDatePickerStyle:CPClockAndCalendarDatePickerStyle];
[datePicker setBackgroundColor:[CPColor whiteColor]];
[self registerThemeValues:themeValues forView:datePicker];
return datePicker;