From 5feac3a7ffbf9cd8dcb4ef4f5e0e5ac7d3bb5437 Mon Sep 17 00:00:00 2001 From: Christophe Serafin Date: Tue, 5 Aug 2014 17:34:58 -0700 Subject: [PATCH] allow using regular, small and mini sizes from xCode and from code using setControlSize method. Available on CPTextField, CPStepper, CPDatePicker only for the moment --- AppKit/CPButton.j | 4 +- AppKit/CPControl.j | 3 +- AppKit/CPDatePicker/CPDatePicker.j | 12 ++ AppKit/CPDatePicker/_CPDatePickerTextField.j | 44 +++++-- AppKit/CPFont.j | 8 +- AppKit/CPStepper.j | 31 +++-- AppKit/CPTextField.j | 17 ++- .../rule-editor-button-add-image.png | Bin 0 -> 4012 bytes .../rule-editor-button-remove-image.png | Bin 0 -> 4011 bytes .../rule-editor-popup-bezel-center.png | Bin 0 -> 1218 bytes ...ule-editor-popup-bezel-disabled-center.png | Bin 0 -> 3361 bytes .../rule-editor-popup-bezel-disabled-left.png | Bin 0 -> 3463 bytes ...r-popup-bezel-disabled-right-pullsdown.png | Bin 0 -> 3797 bytes ...rule-editor-popup-bezel-disabled-right.png | Bin 0 -> 3862 bytes .../rule-editor-popup-bezel-left.png | Bin 0 -> 1321 bytes ...ule-editor-popup-bezel-right-pullsdown.png | Bin 0 -> 3419 bytes .../rule-editor-popup-bezel-right.png | Bin 0 -> 3525 bytes ...epper-bezel-small-disabled-down-center.png | Bin 0 -> 3488 bytes ...stepper-bezel-small-disabled-down-left.png | Bin 0 -> 3387 bytes ...tepper-bezel-small-disabled-down-right.png | Bin 0 -> 3390 bytes ...stepper-bezel-small-disabled-up-center.png | Bin 0 -> 3478 bytes .../stepper-bezel-small-disabled-up-left.png | Bin 0 -> 3403 bytes .../stepper-bezel-small-disabled-up-right.png | Bin 0 -> 3401 bytes .../stepper-bezel-small-down-center.png | Bin 0 -> 3025 bytes .../stepper-bezel-small-down-left.png | Bin 0 -> 2821 bytes .../stepper-bezel-small-down-right.png | Bin 0 -> 2820 bytes ...er-bezel-small-highlighted-down-center.png | Bin 0 -> 3033 bytes ...pper-bezel-small-highlighted-down-left.png | Bin 0 -> 2822 bytes ...per-bezel-small-highlighted-down-right.png | Bin 0 -> 2819 bytes ...pper-bezel-small-highlighted-up-center.png | Bin 0 -> 3023 bytes ...tepper-bezel-small-highlighted-up-left.png | Bin 0 -> 2835 bytes ...epper-bezel-small-highlighted-up-right.png | Bin 0 -> 2838 bytes .../stepper-bezel-small-up-center.png | Bin 0 -> 3009 bytes .../Resources/stepper-bezel-small-up-left.png | Bin 0 -> 2838 bytes .../stepper-bezel-small-up-right.png | Bin 0 -> 2837 bytes AppKit/Themes/Aristo2/ThemeDescriptors.j | 122 +++++++++++++----- Tools/nib2cib/NSButton.j | 1 - Tools/nib2cib/NSControl.j | 2 + Tools/nib2cib/NSDatePicker.j | 1 + 39 files changed, 182 insertions(+), 63 deletions(-) create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-button-add-image.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-button-remove-image.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-disabled-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-disabled-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-disabled-right-pullsdown.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-disabled-right.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-right-pullsdown.png create mode 100644 AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-right.png create mode 100755 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-down-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-down-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-down-right.png create mode 100755 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-right.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-right.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-down-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-down-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-down-right.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-up-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-up-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-up-right.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-up-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-up-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/stepper-bezel-small-up-right.png diff --git a/AppKit/CPButton.j b/AppKit/CPButton.j index bad76448c..816080f49 100644 --- a/AppKit/CPButton.j +++ b/AppKit/CPButton.j @@ -108,7 +108,7 @@ CPButtonImageOffset = 3.0; // NS-style Display Properties CPBezelStyle _bezelStyle; - CPControlSize _controlSize; +// CPControlSize _controlSize; CPString _keyEquivalent; unsigned _keyEquivalentModifierMask; @@ -189,8 +189,6 @@ CPButtonImageOffset = 3.0; - (void)_init { - _controlSize = CPRegularControlSize; - _keyEquivalent = @""; _keyEquivalentModifierMask = 0; diff --git a/AppKit/CPControl.j b/AppKit/CPControl.j index 5f3260d33..cab43a356 100644 --- a/AppKit/CPControl.j +++ b/AppKit/CPControl.j @@ -193,7 +193,6 @@ var CPControlBlackColor = [CPColor blackColor]; { _sendActionOn = CPLeftMouseUpMask; _trackingMouseDownFlags = 0; - _controlSize = CPRegularControlSize; } return self; @@ -213,7 +212,7 @@ var CPControlBlackColor = [CPColor blackColor]; */ - (void)setControlSize:(CPControlSize)aControlSize { - if (_controlSize == aControlSize) + if (_controlSize === aControlSize) return; [self unsetThemeState:[self controlSizeThemeState]]; diff --git a/AppKit/CPDatePicker/CPDatePicker.j b/AppKit/CPDatePicker/CPDatePicker.j index d7065ddc8..e6a7b08f6 100644 --- a/AppKit/CPDatePicker/CPDatePicker.j +++ b/AppKit/CPDatePicker/CPDatePicker.j @@ -248,12 +248,24 @@ CPEraDatePickerElementFlag = 0x0100; */ - (void)layoutSubviews { + [super layoutSubviews]; if (_datePickerStyle == CPTextFieldAndStepperDatePickerStyle || _datePickerStyle == CPTextFieldDatePickerStyle) { + var frameSize = [self frameSize], + minSize = [self currentValueForThemeAttribute:@"min-size"]; + + if (minSize.height > 0.0) + { + // Force height + frameSize.height = minSize.height; + [self setFrameSize:frameSize]; + } + [_datePickerTextfield setHidden:NO]; [_datePickerCalendar setHidden:YES]; + [_datePickerTextfield setControlSize:[self controlSize]]; [_datePickerTextfield setNeedsLayout]; } else diff --git a/AppKit/CPDatePicker/_CPDatePickerTextField.j b/AppKit/CPDatePicker/_CPDatePickerTextField.j index 0429c5752..f260ea6c9 100644 --- a/AppKit/CPDatePicker/_CPDatePickerTextField.j +++ b/AppKit/CPDatePicker/_CPDatePickerTextField.j @@ -384,14 +384,16 @@ var CPZeroKeyCode = 48, // Check the mode to display or not the stepper if ([_datePicker datePickerStyle] == CPTextFieldAndStepperDatePickerStyle) { - frameSize = CGSizeMake(CGRectGetWidth([_datePicker frame]) - CGRectGetWidth([_stepper frame]) - [_datePicker valueForThemeAttribute:@"stepper-margin"], CGRectGetHeight([_datePicker frame])); + [_stepper setHidden:NO]; + [_stepper setControlSize:[_datePicker controlSize]]; + + frameSize = CGSizeMake(CGRectGetWidth([_datePicker frame]) - CGRectGetWidth([_stepper frame]) - [_datePicker currentValueForThemeAttribute:@"stepper-margin"], CGRectGetHeight([_datePicker frame])); frameSize.width -= bezelInset.left; frameSize.height -= bezelInset.top + bezelInset.bottom; [_datePickerElementView setFrameSize:frameSize]; [_datePickerElementView setFrameOrigin:CGPointMake(bezelInset.left, bezelInset.top)]; - [_stepper setHidden:NO]; } else if ([_datePicker datePickerStyle] == CPTextFieldDatePickerStyle) { @@ -405,7 +407,9 @@ var CPZeroKeyCode = 48, [_stepper setHidden:YES]; } - [_stepper setFrameOrigin:CGPointMake(CGRectGetMaxX([_datePickerElementView frame]) + [_datePicker valueForThemeAttribute:@"stepper-margin"], bezelInset.top + CGRectGetHeight([_datePickerElementView frame]) / 2 - CGRectGetHeight([_stepper frame]) / 2)]; + [_stepper setFrameOrigin:CGPointMake(CGRectGetMaxX([_datePickerElementView frame]) + [_datePicker currentValueForThemeAttribute:@"stepper-margin"], bezelInset.top + CGRectGetHeight([_datePickerElementView frame]) / 2 - CGRectGetHeight([_stepper frame]) / 2)]; + + [_datePickerElementView setControlSize:[_datePicker controlSize]]; [_datePickerElementView setNeedsLayout]; } @@ -702,6 +706,7 @@ var CPZeroKeyCode = 48, [self _updateResponderTextField]; [self _updateHiddenTextFields]; + [self _setControlSizes]; [self _sizeToFit]; [self _updatePositions]; @@ -738,7 +743,7 @@ var CPZeroKeyCode = 48, */ - (void)_themeTextFields { - [_textFieldDay setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldDay setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldDay setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldDay setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldDay setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -757,7 +762,7 @@ var CPZeroKeyCode = 48, [_textFieldDay setValue:[_datePicker valueForThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled]; [_textFieldDay setValue:[_datePicker valueForThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled]; - [_textFieldMonth setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldMonth setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldMonth setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldMonth setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldMonth setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -776,7 +781,7 @@ var CPZeroKeyCode = 48, [_textFieldMonth setValue:[_datePicker valueForThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled]; [_textFieldMonth setValue:[_datePicker valueForThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled]; - [_textFieldYear setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldYear setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldYear setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldYear setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldYear setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -795,7 +800,7 @@ var CPZeroKeyCode = 48, [_textFieldYear setValue:[_datePicker valueForThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled]; [_textFieldYear setValue:[_datePicker valueForThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled]; - [_textFieldHour setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldHour setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldHour setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldHour setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldHour setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -814,7 +819,7 @@ var CPZeroKeyCode = 48, [_textFieldHour setValue:[_datePicker valueForThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled]; [_textFieldHour setValue:[_datePicker valueForThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled]; - [_textFieldMinute setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldMinute setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldMinute setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldMinute setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldMinute setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -833,7 +838,7 @@ var CPZeroKeyCode = 48, [_textFieldMinute setValue:[_datePicker valueForThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled]; [_textFieldMinute setValue:[_datePicker valueForThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled]; - [_textFieldSecond setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldSecond setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldSecond setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldSecond setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldSecond setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -852,7 +857,7 @@ var CPZeroKeyCode = 48, [_textFieldSecond setValue:[_datePicker valueForThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateDisabled]; [_textFieldSecond setValue:[_datePicker valueForThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled] forThemeAttribute:@"text-shadow-offset" inState:CPThemeStateDisabled]; - [_textFieldPMAM setValue:[_datePicker valueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; + [_textFieldPMAM setValue:[_datePicker currentValueForThemeAttribute:@"min-size-datepicker-textfield"] forThemeAttribute:@"min-size"]; [_textFieldPMAM setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateNormal] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal]; [_textFieldPMAM setValue:[_datePicker valueForThemeAttribute:@"content-inset-datepicker-textfield" inState:CPThemeStateSelected] forThemeAttribute:@"content-inset" inState:CPThemeStateSelected]; [_textFieldPMAM setValue:[_datePicker valueForThemeAttribute:@"datepicker-textfield-bezel-color" inState:CPThemeStateSelected] forThemeAttribute:@"bezel-color" inState:CPThemeStateSelected]; @@ -1013,7 +1018,7 @@ var CPZeroKeyCode = 48, if ([_textFieldMonth isHidden]) [_textFieldHour setFrameOrigin:CGPointMake(horizontalInset, verticalInset)]; else - [_textFieldHour setFrameOrigin:CGPointMake(CGRectGetMaxX([_textFieldYear frame]) + [_datePicker valueForThemeAttribute:@"date-hour-margin"],verticalInset)]; + [_textFieldHour setFrameOrigin:CGPointMake(CGRectGetMaxX([_textFieldYear frame]) + [_datePicker currentValueForThemeAttribute:@"date-hour-margin"], verticalInset)]; [_textFieldSeparatorThree setFrameOrigin:CGPointMake(CGRectGetMaxX([_textFieldHour frame]) + separatorContentInset.left, verticalInset)]; [_textFieldMinute setFrameOrigin:CGPointMake(CGRectGetMaxX([_textFieldSeparatorThree frame]) + separatorContentInset.right, verticalInset)]; @@ -1043,6 +1048,23 @@ var CPZeroKeyCode = 48, [_textFieldPMAM sizeToFit]; } +/*! Size to fit all of the textFields +*/ +- (void)_setControlSizes +{ + [_textFieldDay setControlSize:[_datePicker controlSize]]; + [_textFieldMonth setControlSize:[_datePicker controlSize]]; + [_textFieldYear setControlSize:[_datePicker controlSize]]; + [_textFieldHour setControlSize:[_datePicker controlSize]]; + [_textFieldMinute setControlSize:[_datePicker controlSize]]; + [_textFieldSecond setControlSize:[_datePicker controlSize]]; + [_textFieldSeparatorOne setControlSize:[_datePicker controlSize]]; + [_textFieldSeparatorTwo setControlSize:[_datePicker controlSize]]; + [_textFieldSeparatorThree setControlSize:[_datePicker controlSize]]; + [_textFieldSeparatorFour setControlSize:[_datePicker controlSize]]; + [_textFieldPMAM setControlSize:[_datePicker controlSize]]; +} + #pragma mark - #pragma mark Responder methods diff --git a/AppKit/CPFont.j b/AppKit/CPFont.j index c9d53ebe2..24e8190cd 100644 --- a/AppKit/CPFont.j +++ b/AppKit/CPFont.j @@ -174,20 +174,20 @@ following: return _CPFontSystemFontSize; } -+ (float)systemFontSizeForControlSize:(CPControlSize)aSize ++ (CPFont)systemFontForControlSize:(CPControlSize)aSize { // TODO These sizes should be themable or made less arbitrary in some other way. switch (aSize) { case CPSmallControlSize: - return _CPFontSystemFontSize - 1; + return [self systemFontOfSize:_CPFontSystemFontSize - 1]; case CPMiniControlSize: - return _CPFontSystemFontSize - 2; + return [self systemFontOfSize:_CPFontSystemFontSize - 2]; case CPRegularControlSize: default: - return _CPFontSystemFontSize; + return [self systemFontOfSize:_CPFontSystemFontSize]; } } diff --git a/AppKit/CPStepper.j b/AppKit/CPStepper.j index c7b8e304e..758e6833c 100644 --- a/AppKit/CPStepper.j +++ b/AppKit/CPStepper.j @@ -138,9 +138,16 @@ [self setContinuous:_autorepeat]; [self addSubview:_buttonDown]; + [self _sizeToFit]; [self setNeedsLayout]; } +- (void)setControlSize:(CPControlSize)aControlSize +{ + [super setControlSize:aControlSize]; + [self _sizeToFit]; +} + #pragma mark - #pragma mark Superclass overrides @@ -159,8 +166,8 @@ - (void)setFrame:(CGRect)aFrame { - var upSize = [self valueForThemeAttribute:@"up-button-size"], - downSize = [self valueForThemeAttribute:@"down-button-size"], + var upSize = [self currentValueForThemeAttribute:@"up-button-size"], + downSize = [self currentValueForThemeAttribute:@"down-button-size"], minSize = CGSizeMake(upSize.width, upSize.height + downSize.height), frame = CGRectMakeCopy(aFrame); @@ -176,18 +183,18 @@ aFrame = [self frame], upSize = [self valueForThemeAttribute:@"up-button-size" inState:controlSizeThemeState], downSize = [self valueForThemeAttribute:@"down-button-size" inState:controlSizeThemeState], - upFrame = CGRectMake(aFrame.size.width - upSize.width, 0, upSize.width, upSize.height), - downFrame = CGRectMake(aFrame.size.width - downSize.width, upSize.height, downSize.width, downSize.height); + upFrame = CGRectMake(0, 0, upSize.width, upSize.height), + downFrame = CGRectMake(0, upSize.height, downSize.width, downSize.height); - [_buttonUp setFrame:upFrame]; - [_buttonDown setFrame:downFrame]; + [_buttonUp setFrame:upFrame]; + [_buttonDown setFrame:downFrame]; - [_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[controlSizeThemeState, CPThemeStateBordered]] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered]; - [_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateDisabled]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateDisabled]]; - [_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateHighlighted]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateHighlighted]]; - [_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[controlSizeThemeState, CPThemeStateBordered]] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered]; - [_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateDisabled]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateDisabled]]; - [_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateHighlighted]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateHighlighted]]; + [_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[controlSizeThemeState, CPThemeStateBordered]] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered]; + [_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateDisabled]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateDisabled]]; + [_buttonUp setValue:[self valueForThemeAttribute:@"bezel-color-up-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateHighlighted]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateHighlighted]]; + [_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[controlSizeThemeState, CPThemeStateBordered]] forThemeAttribute:@"bezel-color" inState:CPThemeStateBordered]; + [_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateDisabled]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateDisabled]]; + [_buttonDown setValue:[self valueForThemeAttribute:@"bezel-color-down-button" inState:[controlSizeThemeState, CPThemeStateBordered, CPThemeStateHighlighted]] forThemeAttribute:@"bezel-color" inState:[CPThemeStateBordered, CPThemeStateHighlighted]]; } - (void)_sizeToFit diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 5b6848bbd..ac9140509 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -141,7 +141,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); // NS-style Display Properties CPTextFieldBezelStyle _bezelStyle; BOOL _isBordered; - CPControlSize _controlSize; } + (Class)_binderClassForBinding:(CPString)aBinding @@ -228,6 +227,22 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); }; } +- (void)setControlSize:(CPControlSize)aControlSize +{ + [super setControlSize:aControlSize]; + + var frameSize = [self frameSize], + maxSize = [self currentValueForThemeAttribute:@"max-size"], + font = [self currentValueForThemeAttribute:@"font"]; + + if (maxSize.height > 0) + frameSize.height = maxSize.height; + + [self setFrameSize:frameSize]; + [self setFont:[CPFont systemFontForControlSize:[self controlSize]]]; +} + + #if PLATFORM(DOM) - (DOMElement)_inputElement { diff --git a/AppKit/Themes/Aristo2/Resources/rule-editor-button-add-image.png b/AppKit/Themes/Aristo2/Resources/rule-editor-button-add-image.png new file mode 100644 index 0000000000000000000000000000000000000000..c223c965bded0e74fcfcf6e1b6145b7de5f71635 GIT binary patch literal 4012 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-center.png b/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-center.png new file mode 100644 index 0000000000000000000000000000000000000000..96d845df1a11d22183a13728d4fefba813833232 GIT binary patch literal 1218 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 Mt$kgqMAIthp8#qL%>V!Z literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-disabled-left.png b/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-disabled-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2d867b43c6a9f5dd4d3cc272cb7706c0e36f1e60 GIT binary patch literal 3463 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 vU&ZPdR2h)@KB literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-left.png b/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-left.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8a329061c8de62205daaa758d464ca24d9fc83 GIT binary patch literal 1321 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 xjs4t>6i0Y?k@{_U_<8_xZQ`KLOKE%@(D& literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-right.png b/AppKit/Themes/Aristo2/Resources/rule-editor-popup-bezel-right.png new file mode 100644 index 0000000000000000000000000000000000000000..3175cdc7b68ddde7cb61ed062218d5ea9980dad8 GIT binary patch literal 3525 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-down-right.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-down-right.png new file mode 100644 index 0000000000000000000000000000000000000000..21d1842746abc7d9dcdaf1ddca8c0cc781543d02 GIT binary patch literal 3390 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-center.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-center.png new file mode 100755 index 0000000000000000000000000000000000000000..2e7e92fd1ede125f104f12d4802e93feb631c7e9 GIT binary patch literal 3478 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 Ye&jI%@$R}zo;5o{?XGH>ih1C_0B;LPn*aa+ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-left.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-left.png new file mode 100644 index 0000000000000000000000000000000000000000..271823ad8ec6766bb94db340f88da0f9a61d9b00 GIT binary patch literal 3403 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-right.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-disabled-up-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9b35ad5d749e1d4b87350a48482e3d4c76d4a2ba GIT binary patch literal 3401 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-center.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-center.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb74409b7b60e9fda66b90932b3ebf558422263 GIT binary patch literal 3025 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 T(@L;T00000NkvXXu0mjfqDso* literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-left.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-down-left.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea4d1cbae9706ad8a8cb66b03dc2353134588dd GIT binary patch literal 2821 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 b{=2>b1eBCtGCzY(00000NkvXXu0mjfGt$#y literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-down-left.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-down-left.png new file mode 100644 index 0000000000000000000000000000000000000000..babc10347f9e2a1f074530fa1a7d0b283323a45c GIT binary patch literal 2822 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 Ry`TU9002ovPDHLkV1jDC&8PqX literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-up-left.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-highlighted-up-left.png new file mode 100644 index 0000000000000000000000000000000000000000..0a0357223afd0b12df8be2a39bee95004eb5c58e GIT binary patch literal 2835 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 DkqpUA literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-up-left.png b/AppKit/Themes/Aristo2/Resources/stepper-bezel-small-up-left.png new file mode 100644 index 0000000000000000000000000000000000000000..561e713574df164f8394db1228b2cbd165b50164 GIT binary patch literal 2838 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/ThemeDescriptors.j b/AppKit/Themes/Aristo2/ThemeDescriptors.j index b0e9d7d03..3d626cc2e 100644 --- a/AppKit/Themes/Aristo2/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo2/ThemeDescriptors.j @@ -543,12 +543,21 @@ var themedButtonValues = nil, [@"bezel-color", bezelColor["@"], CPThemeStateBezeled], [@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]], [@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]], - [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled], + + [@"font", [CPFont systemFontOfSize:12.0], CPThemeStateBezeled], + [@"font", [CPFont systemFontOfSize:11.0], CPThemeStateControlSizeSmall],// TODO-CS : to remove + [@"font", [CPFont systemFontOfSize:8.0], CPThemeStateControlSizeMini],// TODO-CS : to remove + [@"text-color", regularDisabledTextColor, [CPThemeStateBezeled, CPThemeStateDisabled]], [@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBezeled, CPThemeStateDisabled]], [@"content-inset", CGInsetMake(8.0, 7.0, 5.0, 10.0), CPThemeStateBezeled], [@"content-inset", CGInsetMake(8.0, 7.0, 5.0, 10.0), [CPThemeStateBezeled, CPThemeStateEditing]], + [@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 8.0), [CPThemeStateControlSizeSmall, CPThemeStateBezeled]], + [@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 8.0), [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPThemeStateEditing]], + [@"content-inset", CGInsetMake(6.0, 7.0, 5.0, 7.0), [CPThemeStateControlSizeMini, CPThemeStateBezeled]], + [@"content-inset", CGInsetMake(6.0, 7.0, 5.0, 7.0), [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPThemeStateEditing]], + [@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeStateBezeled], [@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing]], @@ -572,7 +581,11 @@ var themedButtonValues = nil, [@"text-shadow-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateGroupRow]], [@"text-shadow-offset", CGSizeMake(0, 1), [CPThemeStateTableDataView, CPThemeStateGroupRow]], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], [CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView, CPThemeStateFirstResponder, CPThemeStateKeyWindow]], - [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateGroupRow]] + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateGroupRow]], + + + [@"max-size", CGSizeMake(-1.0, 25.0), CPThemeStateControlSizeSmall], + [@"max-size", CGSizeMake(-1.0, 22.0), CPThemeStateControlSizeMini] ]; [self registerThemeValues:themedTextFieldValues forView:textfield]; @@ -615,7 +628,9 @@ var themedButtonValues = nil, bezelFocusedColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]], [@"bezel-color", bezelColor["disabled"], [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]], - [@"font", [CPFont systemFontOfSize:12.0]], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize]], + [@"font", [CPFont systemFontOfSize:11.0], CPThemeStateControlSizeSmall],// TODO-CS : to remove + [@"font", [CPFont systemFontOfSize:8.0], CPThemeStateControlSizeMini],// TODO-CS : to remove [@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), [CPTextFieldStateRounded, CPThemeStateBezeled]], [@"content-inset", CGInsetMake(8.0, 14.0, 6.0, 14.0), [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]], @@ -628,7 +643,10 @@ var themedButtonValues = nil, [@"text-shadow-color", regularDisabledTextShadowColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]], [@"min-size", CGSizeMake(0.0, 29.0), [CPTextFieldStateRounded, CPThemeStateBezeled]], - [@"max-size", CGSizeMake(-1.0, 29.0), [CPTextFieldStateRounded, CPThemeStateBezeled]] + [@"max-size", CGSizeMake(-1.0, 29.0), [CPTextFieldStateRounded, CPThemeStateBezeled]], + + [@"min-size", CGSizeMake(0.0, 20.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]], + [@"max-size", CGSizeMake(-1.0, 20.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]] ]; [self registerThemeValues:themedRoundedTextFieldValues forView:textfield]; @@ -667,7 +685,7 @@ var themedButtonValues = nil, + (CPDatePicker)themedDatePicker { - var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0 ,40.0 ,170.0 ,29.0)], + var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0, 40.0, 170.0, 29.0)], bezelColor = PatternColor( "textfield-bezel-square{state}{position}.png", @@ -687,23 +705,27 @@ var themedButtonValues = nil, themeValues = [ - [@"bezel-color", bezelColor["@"], CPThemeStateBezeled], - [@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]], + [@"bezel-color", bezelColor["@"], CPThemeStateBezeled], + [@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]], + + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize]], - [@"font", [CPFont boldSystemFontOfSize:13.0]], [@"text-color", [CPColor colorWithWhite:0.2 alpha:0.8]], - [@"text-color", [CPColor colorWithWhite:0.2 alpha:0.5], CPThemeStateDisabled], + [@"text-color", [CPColor colorWithWhite:0.2 alpha:0.5], CPThemeStateDisabled], - [@"content-inset", CGInsetMake(6.0, 0.0, 0.0, 3.0), CPThemeStateNormal], - [@"content-inset", CGInsetMake(3.0, 0.0, 0.0, 3.0), CPThemeStateBezeled], - [@"bezel-inset", CGInsetMake(3.0, 0.0, 3.0, 0.0), CPThemeStateBezeled], + [@"content-inset", CGInsetMake(6.0, 0.0, 0.0, 3.0), CPThemeStateNormal], + [@"content-inset", CGInsetMake(3.0, 0.0, 0.0, 3.0), CPThemeStateBezeled], - [@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateNormal], - [@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, CPThemeStateSelected], - [@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateNormal, CPThemeStateDisabled]], - [@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateSelected, CPThemeStateDisabled]], + [@"bezel-inset", CGInsetMake(3.0, 0.0, 3.0, 0.0), CPThemeStateBezeled], + + [@"datepicker-textfield-bezel-color", [CPColor clearColor], CPThemeStateNormal], + [@"datepicker-textfield-bezel-color", bezelColorDatePickerTextField, CPThemeStateSelected], + [@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateNormal, CPThemeStateDisabled]], + [@"datepicker-textfield-bezel-color", [CPColor clearColor], [CPThemeStateSelected, CPThemeStateDisabled]], [@"min-size-datepicker-textfield", CGSizeMake(6.0, 18.0)], + [@"min-size-datepicker-textfield", CGSizeMake(6.0, 16.0), CPThemeStateControlSizeSmall], + [@"min-size-datepicker-textfield", CGSizeMake(6.0, 12.0), CPThemeStateControlSizeMini], [@"separator-content-inset", CGInsetMake(0.0, -2.0, 0.0, -1.0)], @@ -713,10 +735,19 @@ var themedButtonValues = nil, [@"content-inset-datepicker-textfield-separator",CGInsetMake(2.0, 0.0, 0.0, 0.0), CPThemeStateSelected], [@"date-hour-margin", 7.0], - [@"stepper-margin", 5.0], + [@"date-hour-margin", 5.0, CPThemeStateControlSizeSmall], + [@"date-hour-margin", 2.0, CPThemeStateControlSizeMini], - [@"min-size", CGSizeMake(0.0, 29.0)], - [@"max-size", CGSizeMake(-1.0, 29.0)] + [@"stepper-margin", 5.0], + [@"stepper-margin", 3.0, CPThemeStateControlSizeSmall], + [@"stepper-margin", 2.0, CPThemeStateControlSizeMini], + + [@"min-size", CGSizeMake(0, 29.0)], + [@"max-size", CGSizeMake(-1.0, 29.0)], + [@"min-size", CGSizeMake(0, 25.0), CPThemeStateControlSizeSmall], + [@"max-size", CGSizeMake(-1.0, 25.0), CPThemeStateControlSizeSmall], + [@"min-size", CGSizeMake(0, 22.0), CPThemeStateControlSizeMini], + [@"max-size", CGSizeMake(-1.0, 22.0), CPThemeStateControlSizeMini] ]; [datePicker setDatePickerStyle:CPTextFieldDatePickerStyle]; @@ -1704,6 +1735,26 @@ var themedButtonValues = nil, orientation: PatternIsHorizontal }), + smallBezelUp = PatternColor( + "stepper-bezel-small{state}-up{position}.png", + { + states: ["", "highlighted", "disabled"], + width: 3.0, + height: 11.0, + centerWidth: 14.0, + orientation: PatternIsHorizontal + }), + + smallBezelDown = PatternColor( + "stepper-bezel-small{state}-down{position}.png", + { + states: ["", "highlighted", "disabled"], + width: 3.0, + height: 10.0, + centerWidth: 14.0, + orientation: PatternIsHorizontal + }), + miniBezelUp = PatternColor( "stepper-bezel-mini{state}-up{position}.png", { @@ -1733,20 +1784,33 @@ var themedButtonValues = nil, [@"bezel-color-down-button", regularBezelDown["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]], [@"bezel-color-up-button", regularBezelUp["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]], [@"bezel-color-down-button", regularBezelDown["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]], - [@"min-size", CGSizeMake(25.0, 25.0)], + + [@"min-size", CGSizeMake(25.0, 25.0)], // TODO-CS : to remove [@"up-button-size", CGSizeMake(25.0, 13.0)], [@"down-button-size", CGSizeMake(25.0, 12.0)], + // CPThemeStateControlSizeSmall + [@"bezel-color-up-button", smallBezelUp["@"], [CPThemeStateControlSizeSmall, CPThemeStateBordered]], + [@"bezel-color-down-button", smallBezelDown["@"], [CPThemeStateControlSizeSmall, CPThemeStateBordered]], + [@"bezel-color-up-button", smallBezelUp["disabled"], [CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateDisabled]], + [@"bezel-color-down-button", smallBezelDown["disabled"], [CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateDisabled]], + [@"bezel-color-up-button", smallBezelUp["highlighted"], [CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateHighlighted]], + [@"bezel-color-down-button", smallBezelDown["highlighted"], [CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateHighlighted]], + + [@"up-button-size", CGSizeMake(20.0, 11.0), CPThemeStateControlSizeSmall], + [@"down-button-size", CGSizeMake(20.0, 10.0), CPThemeStateControlSizeSmall], + // CPThemeStateControlSizeMini - [@"bezel-color-up-button", miniBezelUp["@"], [CPThemeStateControlSizeMini, CPThemeStateBordered]], - [@"bezel-color-down-button", miniBezelDown["@"], [CPThemeStateControlSizeMini, CPThemeStateBordered]], - [@"bezel-color-up-button", miniBezelUp["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDisabled]], - [@"bezel-color-down-button", miniBezelDown["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDisabled]], - [@"bezel-color-up-button", miniBezelUp["highlighted"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateHighlighted]], - [@"bezel-color-down-button", miniBezelDown["highlighted"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateHighlighted]], - [@"min-size", CGSizeMake(14.0, 16.0), CPThemeStateControlSizeMini], - [@"up-button-size", CGSizeMake(14.0, 8.0), CPThemeStateControlSizeMini], - [@"down-button-size", CGSizeMake(14.0, 7.0), CPThemeStateControlSizeMini] + [@"bezel-color-up-button", miniBezelUp["@"], [CPThemeStateControlSizeMini, CPThemeStateBordered]], + [@"bezel-color-down-button", miniBezelDown["@"], [CPThemeStateControlSizeMini, CPThemeStateBordered]], + [@"bezel-color-up-button", miniBezelUp["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDisabled]], + [@"bezel-color-down-button", miniBezelDown["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDisabled]], + [@"bezel-color-up-button", miniBezelUp["highlighted"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateHighlighted]], + [@"bezel-color-down-button", miniBezelDown["highlighted"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateHighlighted]], + + [@"min-size", CGSizeMake(14.0, 16.0), CPThemeStateControlSizeMini], // TODO-CS : to remove + [@"up-button-size", CGSizeMake(14.0, 8.0), CPThemeStateControlSizeMini], + [@"down-button-size", CGSizeMake(14.0, 7.0), CPThemeStateControlSizeMini] ]; [self registerThemeValues:themeValues forView:stepper]; diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index 2f0531138..0fe0354fe 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -111,7 +111,6 @@ var NSButtonIsBorderedMask = 0x00800000, _title = [cell title]; _alternateTitle = [cell alternateTitle]; - _controlSize = CPRegularControlSize; [self setBordered:[cell isBordered]]; _bezelStyle = [cell bezelStyle]; diff --git a/Tools/nib2cib/NSControl.j b/Tools/nib2cib/NSControl.j index 548e2f68d..0c1211b02 100644 --- a/Tools/nib2cib/NSControl.j +++ b/Tools/nib2cib/NSControl.j @@ -54,6 +54,7 @@ - (void)NS_initWithCell:(NSCell)cell { + [self setSendsActionOnEndEditing:[cell sendsActionOnEndEditing]]; [self setObjectValue:[cell objectValue]]; [self setFont:[cell font]]; @@ -61,6 +62,7 @@ [self setContinuous:[cell isContinuous]]; [self setLineBreakMode:[cell lineBreakMode]]; [self setFormatter:[cell formatter]]; + [self setControlSize:[cell controlSize]]; } @end diff --git a/Tools/nib2cib/NSDatePicker.j b/Tools/nib2cib/NSDatePicker.j index 5a89f8f26..0d4d698a7 100644 --- a/Tools/nib2cib/NSDatePicker.j +++ b/Tools/nib2cib/NSDatePicker.j @@ -59,6 +59,7 @@ var NSDatePickerDefaultSize = 22, [self setBezeled:[cell isBezeled]]; [self setBordered:[cell isBordered]]; [self setEnabled:[cell isEnabled]]; + [self setControlSize:[cell controlSize]]; var theme = [Nib2Cib defaultTheme];