mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-27 22:17:03 +00:00
3357 lines
176 KiB
Plaintext
3357 lines
176 KiB
Plaintext
/*
|
|
* ThemeDescriptors.j
|
|
* AppKit
|
|
*
|
|
* Created by Antoine Mercadal
|
|
* Copyright 2012 <primalmotion@archipelproject.org>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
@import <Foundation/CPObject.j>
|
|
@import <Foundation/CPGeometry.j>
|
|
@import <AppKit/CPApplication.j>
|
|
@import <AppKit/CPBrowser.j>
|
|
@import <AppKit/CPButton.j>
|
|
@import <AppKit/CPButtonBar.j>
|
|
@import <AppKit/CPCheckBox.j>
|
|
@import <AppKit/CPComboBox.j>
|
|
@import <AppKit/CPColor.j>
|
|
@import <AppKit/CPColorWell.j>
|
|
@import <AppKit/CPDatePicker.j>
|
|
@import <AppKit/CPLevelIndicator.j>
|
|
@import <AppKit/CPPopUpButton.j>
|
|
@import <AppKit/CPProgressIndicator.j>
|
|
@import <AppKit/CPRadio.j>
|
|
@import <AppKit/CPRuleEditor.j>
|
|
@import <AppKit/CPScroller.j>
|
|
@import <AppKit/CPScrollView.j>
|
|
@import <AppKit/CPSegmentedControl.j>
|
|
@import <AppKit/CPSlider.j>
|
|
@import <AppKit/CPSplitView.j>
|
|
@import <AppKit/CPStepper.j>
|
|
@import <AppKit/CPTableHeaderView.j>
|
|
@import <AppKit/CPSearchField.j>
|
|
@import <AppKit/CPTextField.j>
|
|
@import <AppKit/CPTokenField.j>
|
|
@import <AppKit/CPWindow.j>
|
|
@import <AppKit/CPAlert.j>
|
|
@import <AppKit/_CPToolTip.j>
|
|
@import <AppKit/CPPopover.j>
|
|
|
|
var themedButtonValues = nil,
|
|
themedTextFieldValues = nil,
|
|
themedVerticalScrollerValues = nil,
|
|
themedHorizontalScrollerValues = nil,
|
|
themedSegmentedControlValues = nil,
|
|
themedHorizontalSliderValues = nil,
|
|
themedVerticalSliderValues = nil,
|
|
themedCircularSliderValues = nil,
|
|
themedAlertValues = nil,
|
|
themedWindowViewValues = nil,
|
|
themedProgressIndicator = nil,
|
|
themedIndeterminateProgressIndicator = nil,
|
|
themedCheckBoxValues = nil,
|
|
themedRadioButtonValues = nil,
|
|
regularTextColor = [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0],
|
|
regularTextShadowColor = [CPColor colorWithCalibratedWhite:1.0 alpha:0.2],
|
|
regularDisabledTextColor = [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:0.6],
|
|
regularDisabledTextShadowColor = [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:0.6],
|
|
|
|
defaultTextColor = [CPColor whiteColor],
|
|
defaultTextShadowColor = [CPColor colorWithCalibratedWhite:0.0 alpha:0.3],
|
|
defaultDisabledTextColor = regularDisabledTextColor,
|
|
defaultDisabledTextShadowColor = regularDisabledTextShadowColor,
|
|
|
|
placeholderColor = regularDisabledTextColor;
|
|
|
|
@implementation Aristo2ThemeDescriptor : BKThemeDescriptor
|
|
|
|
+ (CPString)themeName
|
|
{
|
|
return @"Aristo2";
|
|
}
|
|
|
|
+ (CPArray)themeShowcaseExcludes
|
|
{
|
|
return ["themedAlert",
|
|
"themedMenuView",
|
|
"themedMenuItemStandardView",
|
|
"themedMenuItemMenuBarView",
|
|
"themedToolbarView",
|
|
"themedBorderlessBridgeWindowView",
|
|
"themedWindowView",
|
|
"themedBrowser",
|
|
"themedRuleEditor",
|
|
"themedTableDataView",
|
|
"themedCornerview",
|
|
"themedTokenFieldTokenCloseButton",
|
|
"themedColor"];
|
|
}
|
|
|
|
+ (CPColor)themedColor
|
|
{
|
|
var color = [CPColor redColor],
|
|
themedColorValues =
|
|
[
|
|
[@"alternate-selected-control-color", [[CPColor alloc] _initWithRGBA:[0.22, 0.46, 0.84, 1.0]]],
|
|
[@"secondary-selected-control-color", [[CPColor alloc] _initWithRGBA:[0.83, 0.83, 0.83, 1.0]]],
|
|
[@"selected-text-background-color", [CPColor colorWithHexString:"99CCFF"]],
|
|
[@"selected-text-inactive-background-color", [CPColor colorWithHexString:"CCCCCC"]]
|
|
];
|
|
|
|
[self registerThemeValues:themedColorValues forObject:color];
|
|
|
|
return color;
|
|
}
|
|
|
|
+ (CPButton)makeButton
|
|
{
|
|
return [[CPButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 25)];
|
|
}
|
|
|
|
+ (CPButton)button
|
|
{
|
|
var button = [self makeButton],
|
|
|
|
// RoundRect
|
|
regularBezelColor = PatternColor(
|
|
"{style}button-bezel{state}{position}.png",
|
|
{
|
|
styles: ["", "default"],
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 4.0,
|
|
height: 24.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelColor = PatternColor(
|
|
"{style}button-bezel{state}{position}.png",
|
|
{
|
|
styles: ["", "default"],
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 3.0,
|
|
height: 20.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
miniBezelColor = PatternColor(
|
|
"{style}button-bezel{state}{position}.png",
|
|
{
|
|
styles: ["", "default"],
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 3.0,
|
|
height: 16.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
// Rounded
|
|
roundedBezelColor = PatternColor(
|
|
"{style}button-bezel-rounded{state}{position}.png",
|
|
{
|
|
styles: ["", "default"],
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 12.0,
|
|
height: 24.0,
|
|
orientation: PatternIsHorizontal
|
|
});
|
|
|
|
// Global
|
|
themedButtonValues =
|
|
[
|
|
[@"font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateBordered],
|
|
[@"text-color", regularTextColor],
|
|
[@"text-shadow-color", regularTextShadowColor],
|
|
[@"text-shadow-color", regularTextShadowColor, CPThemeStateBordered],
|
|
[@"text-color", regularDisabledTextColor, CPThemeStateDisabled],
|
|
|
|
[@"text-color", defaultTextColor, [CPThemeStateBordered, CPThemeStateDefault]],
|
|
[@"text-color", defaultTextColor, CPThemeStateDefault],
|
|
[@"text-shadow-color", defaultTextShadowColor, [CPThemeStateBordered, CPThemeStateDefault]],
|
|
|
|
[@"text-color", defaultDisabledTextColor, [CPThemeStateDefault, CPThemeStateDisabled]],
|
|
[@"text-shadow-color", defaultDisabledTextShadowColor, [CPThemeStateDefault, CPThemeStateDisabled]],
|
|
|
|
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), [CPThemeStateDefault, CPThemeStateDisabled]],
|
|
[@"text-shadow-offset", CGSizeMake(0.0, 1.0), CPThemeStateBordered],
|
|
|
|
[@"line-break-mode", CPLineBreakByTruncatingTail],
|
|
|
|
// RoundRect CPThemeStateControlSizeRegular
|
|
[@"bezel-color",
|
|
regularBezelColor["@"]["@"],
|
|
CPThemeStateBordered],
|
|
[@"bezel-color",
|
|
regularBezelColor["@"]["highlighted"],
|
|
[CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
[@"bezel-color",
|
|
regularBezelColor["@"]["disabled"],
|
|
[CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"bezel-color",
|
|
regularBezelColor["default"]["@"],
|
|
[CPThemeStateBordered, CPThemeStateDefault]],
|
|
[@"bezel-color",
|
|
regularBezelColor["default"]["highlighted"],
|
|
[CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault]],
|
|
[@"bezel-color",
|
|
regularBezelColor["default"]["disabled"],
|
|
[CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0.0, 7.0, 0.0, 7.0), CPThemeStateBordered],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 3.0, 0.0, 0.0), CPThemeStateBordered],
|
|
|
|
// RoundRect CPThemeStateControlSizeSmall
|
|
[@"bezel-color",
|
|
smallBezelColor["@"]["@"],
|
|
[CPThemeStateControlSizeSmall, CPThemeStateBordered]],
|
|
[@"bezel-color",
|
|
smallBezelColor["@"]["highlighted"],
|
|
[CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
[@"bezel-color",
|
|
smallBezelColor["@"]["disabled"],
|
|
[CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"bezel-color",
|
|
smallBezelColor["default"]["@"],
|
|
[CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateDefault]],
|
|
[@"bezel-color",
|
|
smallBezelColor["default"]["highlighted"],
|
|
[CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault]],
|
|
[@"bezel-color",
|
|
smallBezelColor["default"]["disabled"],
|
|
[CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0.0, 5.0, 0.0, 5.0), [CPThemeStateControlSizeSmall, CPThemeStateBordered]],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-3.0, 6.0, 0.0, 0.0), [CPThemeStateControlSizeSmall, CPThemeStateBordered]],
|
|
|
|
// RoundRect CPThemeStateControlSizeMini
|
|
[@"bezel-color",
|
|
miniBezelColor["@"]["@"],
|
|
[CPThemeStateControlSizeMini, CPThemeStateBordered]],
|
|
[@"bezel-color",
|
|
miniBezelColor["@"]["highlighted"],
|
|
[CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
[@"bezel-color",
|
|
miniBezelColor["@"]["disabled"],
|
|
[CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"bezel-color",
|
|
miniBezelColor["default"]["@"],
|
|
[CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDefault]],
|
|
[@"bezel-color",
|
|
miniBezelColor["default"]["highlighted"],
|
|
[CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault]],
|
|
[@"bezel-color",
|
|
miniBezelColor["default"]["disabled"],
|
|
[CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0.0, 2.0, 2.0, 2.0), [CPThemeStateControlSizeMini, CPThemeStateBordered]],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, 14.0, 0.0, 0.0), [CPThemeStateControlSizeMini, CPThemeStateBordered]],
|
|
|
|
// Rounded
|
|
[@"bezel-color",
|
|
roundedBezelColor["@"]["@"],
|
|
[CPThemeStateBordered, CPButtonStateBezelStyleRounded]],
|
|
[@"bezel-color",
|
|
roundedBezelColor["@"]["highlighted"],
|
|
[CPThemeStateBordered, CPThemeStateHighlighted, CPButtonStateBezelStyleRounded]],
|
|
[@"bezel-color",
|
|
roundedBezelColor["@"]["disabled"],
|
|
[CPThemeStateBordered, CPThemeStateDisabled, CPButtonStateBezelStyleRounded]],
|
|
[@"bezel-color",
|
|
roundedBezelColor["default"]["@"],
|
|
[CPThemeStateBordered, CPThemeStateDefault, CPButtonStateBezelStyleRounded]],
|
|
[@"bezel-color",
|
|
roundedBezelColor["default"]["highlighted"],
|
|
[CPThemeStateBordered, CPThemeStateHighlighted, CPThemeStateDefault, CPButtonStateBezelStyleRounded]],
|
|
[@"bezel-color",
|
|
roundedBezelColor["default"]["disabled"],
|
|
[CPThemeStateBordered, CPThemeStateDefault, CPThemeStateDisabled, CPButtonStateBezelStyleRounded]],
|
|
|
|
[@"content-inset", CGInsetMake(0.0, 10.0, 0.0, 10.0), [CPThemeStateBordered, CPButtonStateBezelStyleRounded]],
|
|
|
|
[@"min-size", CGSizeMake(0.0, CPButtonDefaultHeight)],
|
|
[@"max-size", CGSizeMake(-1.0, CPButtonDefaultHeight)],
|
|
[@"min-size", CGSizeMake(0.0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1.0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"min-size", CGSizeMake(0.0, 16.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1.0, 16.0), CPThemeStateControlSizeMini],
|
|
|
|
[@"image-offset", CPButtonImageOffset]
|
|
];
|
|
|
|
[self registerThemeValues:themedButtonValues forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPButton)themedStandardButton
|
|
{
|
|
var button = [self button];
|
|
|
|
[button setTitle:@"Cancel"];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPButton)themedDefaultButton
|
|
{
|
|
var button = [self button];
|
|
|
|
[button setTitle:@"OK"];
|
|
[button setThemeState:CPThemeStateDefault];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPButton)themedRoundedButton
|
|
{
|
|
var button = [self button];
|
|
|
|
[button setTitle:@"Save"];
|
|
[button setThemeState:CPButtonStateBezelStyleRounded];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPButton)themedDefaultRoundedButton
|
|
{
|
|
var button = [self button];
|
|
|
|
[button setTitle:@"OK"];
|
|
[button setThemeStates:[CPButtonStateBezelStyleRounded, CPThemeStateDefault]];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPPopUpButton)themedPopUpButton
|
|
{
|
|
var button = [[CPPopUpButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 25.0) pullsDown:NO],
|
|
regularColor = PatternColor(
|
|
"popup-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 3.0,
|
|
height: 25.0,
|
|
rightWidth: 24.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallColor = PatternColor(
|
|
"popup-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 3.0,
|
|
height: 20.0,
|
|
rightWidth: 19.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniColor = PatternColor(
|
|
"popup-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 3.0,
|
|
height: 16.0,
|
|
rightWidth: 15.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
// CPThemeStateControlSizeRegular
|
|
[@"bezel-color", regularColor["@"], CPThemeStateBordered],
|
|
[@"bezel-color", regularColor["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0, 22.0 + 5.0, 0, 5.0), CPThemeStateBordered],
|
|
[@"font", [CPFont boldSystemFontOfSize:12.0]],
|
|
[@"text-color", regularTextColor],
|
|
[@"text-shadow-color", regularTextShadowColor],
|
|
|
|
[@"text-color", regularDisabledTextColor, [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(32.0, 25.0)],
|
|
[@"max-size", CGSizeMake(-1.0, 25.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 1.0, -5.0, 0.0)],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"bezel-color", smallColor["@"], [CPThemeStateControlSizeSmall, CPThemeStateBordered]],
|
|
[@"bezel-color", smallColor["disabled"], [CPThemeStateControlSizeSmall, CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0, 17.0 + 4.0, 0, 4.0), [CPThemeStateControlSizeSmall, CPThemeStateBordered]],
|
|
[@"font", [CPFont boldSystemFontOfSize:11.0]],
|
|
|
|
[@"min-size", CGSizeMake(32.0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1.0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(3.0, 4.0, -6.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"bezel-color", miniColor["@"], [CPThemeStateControlSizeMini, CPThemeStateBordered]],
|
|
[@"bezel-color", miniColor["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0, 15.0 + 4.0, 2.0, 4.0), [CPThemeStateControlSizeMini, CPThemeStateBordered]],
|
|
[@"font", [CPFont boldSystemFontOfSize:9.0]],
|
|
|
|
[@"min-size", CGSizeMake(32.0, 16.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1.0, 16.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(1.0, 10.0, -3.0, 0.0), CPThemeStateControlSizeMini]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:button];
|
|
|
|
[button setTitle:@"Pop Up"];
|
|
[button addItemWithTitle:@"item"];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPPopUpButton)themedPullDownMenu
|
|
{
|
|
var button = [[CPPopUpButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 25.0) pullsDown:YES],
|
|
color = PatternColor(
|
|
"pulldown-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 3.0,
|
|
height: 25.0,
|
|
rightWidth: 24.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
[@"bezel-color", color["@"], [CPPopUpButtonStatePullsDown, CPThemeStateBordered]],
|
|
[@"bezel-color", color["disabled"], [CPPopUpButtonStatePullsDown, CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
[@"content-inset", CGInsetMake(0, 27.0 + 5.0, 0, 5.0), CPThemeStateBordered],
|
|
[@"font", [CPFont boldSystemFontOfSize:12.0]],
|
|
[@"text-color", regularTextColor],
|
|
[@"text-shadow-color", regularTextShadowColor],
|
|
|
|
[@"text-color", regularDisabledTextColor, [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(32.0, 25.0)],
|
|
[@"max-size", CGSizeMake(-1.0, 25.0)]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:button];
|
|
|
|
[button setTitle:@"Pull Down"];
|
|
[button addItemWithTitle:@"item"];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPScrollView)themedScrollView
|
|
{
|
|
var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 100.0)],
|
|
borderColor = [CPColor colorWithWhite:0.0 alpha:0.2],
|
|
bottomCornerColor = PatternColor(@"scrollview-bottom-corner-color.png", 15.0, 15.0),
|
|
themedScrollViewValues =
|
|
[
|
|
[@"border-color", borderColor],
|
|
[@"bottom-corner-color", bottomCornerColor]
|
|
];
|
|
|
|
[self registerThemeValues:themedScrollViewValues forView:scrollView];
|
|
|
|
[scrollView setAutohidesScrollers:YES];
|
|
[scrollView setBorderType:CPLineBorder];
|
|
|
|
return scrollView;
|
|
}
|
|
|
|
+ (CPScroller)makeHorizontalScroller
|
|
{
|
|
var scroller = [[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 15.0)];
|
|
|
|
[scroller setFloatValue:0.1];
|
|
[scroller setKnobProportion:0.5];
|
|
|
|
[scroller setStyle:CPScrollerStyleLegacy];
|
|
|
|
return scroller;
|
|
}
|
|
|
|
+ (CPScroller)makeVerticalScroller
|
|
{
|
|
var scroller = [[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, 15.0, 100.0)];
|
|
|
|
[scroller setFloatValue:1];
|
|
[scroller setKnobProportion:0.1];
|
|
|
|
[scroller setStyle:CPScrollerStyleLegacy];
|
|
|
|
return scroller;
|
|
}
|
|
|
|
+ (CPScroller)themedVerticalScroller
|
|
{
|
|
var scroller = [self makeVerticalScroller],
|
|
trackColor = PatternColor(
|
|
"scroller-vertical-track{style}{position}.png",
|
|
{
|
|
styles: ["", "light", "dark"],
|
|
width: 9.0,
|
|
height: 4.0,
|
|
orientation: PatternIsVertical
|
|
}),
|
|
|
|
trackColorLegacy = PatternColor("scroller-legacy-vertical-track-center.png", 14.0, 1.0),
|
|
|
|
knobColor = PatternColor(
|
|
"scroller-vertical-knob{style}{position}.png",
|
|
{
|
|
styles: ["", "light", "dark"],
|
|
width: 9.0,
|
|
height: 4.0,
|
|
orientation: PatternIsVertical
|
|
}),
|
|
|
|
knobColorLegacy = PatternColor(
|
|
"scroller-legacy-vertical-knob{position}.png",
|
|
{
|
|
width: 14.0,
|
|
height: 3.0,
|
|
orientation: PatternIsVertical
|
|
});
|
|
|
|
themedVerticalScrollerValues =
|
|
[
|
|
// Common
|
|
[@"minimum-knob-length", 21.0, CPThemeStateVertical],
|
|
|
|
// Overlay
|
|
[@"scroller-width", 14.0, CPThemeStateVertical],
|
|
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateVertical],
|
|
[@"track-inset", CGInsetMake(2.0, 0.0, 2.0, 0.0), CPThemeStateVertical],
|
|
[@"track-border-overlay", 12.0, CPThemeStateVertical],
|
|
[@"knob-slot-color", [CPNull null], CPThemeStateVertical],
|
|
[@"knob-slot-color", trackColor["@"], [CPThemeStateVertical, CPThemeStateSelected]],
|
|
[@"knob-slot-color", trackColor["light"], [CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-slot-color", trackColor["dark"], [CPThemeStateVertical, CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
|
|
[@"knob-color", knobColor["@"], CPThemeStateVertical],
|
|
[@"knob-color", knobColor["light"], [CPThemeStateVertical, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-color", knobColor["dark"], [CPThemeStateVertical, CPThemeStateScrollerKnobDark]],
|
|
[@"increment-line-color", [CPNull null], CPThemeStateVertical],
|
|
[@"decrement-line-color", [CPNull null], CPThemeStateVertical],
|
|
[@"decrement-line-size", CGSizeMakeZero(), CPThemeStateVertical],
|
|
[@"increment-line-size", CGSizeMakeZero(), CPThemeStateVertical],
|
|
|
|
// Legacy
|
|
[@"scroller-width", 14.0, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"knob-inset", CGInsetMake(0.0, 2.0, 0.0, 2.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"track-border-overlay", 0.0, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateVertical, CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-color", knobColor["dark"], [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"increment-line-color", [CPNull null], [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"decrement-line-color", [CPNull null], [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"decrement-line-size", CGSizeMakeZero(), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]],
|
|
[@"increment-line-size", CGSizeMakeZero(), [CPThemeStateVertical, CPThemeStateScrollViewLegacy]]
|
|
];
|
|
|
|
[self registerThemeValues:themedVerticalScrollerValues forView:scroller];
|
|
|
|
return scroller;
|
|
}
|
|
|
|
+ (CPScroller)themedHorizontalScroller
|
|
{
|
|
var scroller = [self makeHorizontalScroller],
|
|
trackColor = PatternColor(
|
|
"scroller-horizontal-track{style}{position}.png",
|
|
{
|
|
styles: ["", "light", "dark"],
|
|
width: 4.0,
|
|
height: 9.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
trackColorLegacy = PatternColor("scroller-legacy-horizontal-track-center.png", 1.0, 14.0),
|
|
|
|
knobColor = PatternColor(
|
|
"scroller-horizontal-knob{style}{position}.png",
|
|
{
|
|
styles: ["", "light", "dark"],
|
|
width: 4.0,
|
|
height: 9.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
knobColorLegacy = PatternColor(
|
|
"scroller-legacy-horizontal-knob{position}.png",
|
|
{
|
|
width: 3.0,
|
|
height: 14.0,
|
|
orientation: PatternIsHorizontal
|
|
});
|
|
|
|
themedHorizontalScrollerValues =
|
|
[
|
|
// Common
|
|
[@"minimum-knob-length", 21.0],
|
|
|
|
// Overlay
|
|
[@"scroller-width", 9.0],
|
|
[@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0)],
|
|
[@"track-inset", CGInsetMake(0.0, 2.0, 0.0, 2.0)],
|
|
[@"track-border-overlay", 12.0],
|
|
[@"knob-slot-color", [CPNull null]],
|
|
[@"knob-slot-color", trackColor["@"], CPThemeStateSelected],
|
|
[@"knob-slot-color", trackColor["light"], [CPThemeStateSelected, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-slot-color", trackColor["dark"], [CPThemeStateSelected, CPThemeStateScrollerKnobDark]],
|
|
[@"knob-color", knobColor["@"]],
|
|
[@"knob-color", knobColor["light"], CPThemeStateScrollerKnobLight],
|
|
[@"knob-color", knobColor["dark"], CPThemeStateScrollerKnobDark],
|
|
[@"decrement-line-size", CGSizeMakeZero()],
|
|
[@"increment-line-size", CGSizeMakeZero()],
|
|
|
|
// Legacy
|
|
[@"scroller-width", 14.0, CPThemeStateScrollViewLegacy],
|
|
[@"knob-inset", CGInsetMake(2.0, 0.0, 2.0, 0.0), CPThemeStateScrollViewLegacy],
|
|
[@"track-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateScrollViewLegacy],
|
|
[@"track-border-overlay", 0.0, CPThemeStateScrollViewLegacy],
|
|
[@"knob-slot-color", trackColorLegacy, CPThemeStateScrollViewLegacy],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateSelected]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-slot-color", trackColorLegacy, [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
|
|
[@"knob-color", knobColor["@"], CPThemeStateScrollViewLegacy],
|
|
[@"knob-color", knobColor["light"], [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobLight]],
|
|
[@"knob-color", knobColor["dark"], [CPThemeStateScrollViewLegacy, CPThemeStateScrollerKnobDark]],
|
|
[@"decrement-line-size", CGSizeMakeZero(), CPThemeStateScrollViewLegacy],
|
|
[@"increment-line-size", CGSizeMakeZero(), CPThemeStateScrollViewLegacy]
|
|
];
|
|
|
|
[self registerThemeValues:themedHorizontalScrollerValues forView:scroller];
|
|
|
|
return scroller;
|
|
}
|
|
|
|
+ (CPTextField)themedStandardTextField
|
|
{
|
|
var textfield = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 160.0, 29.0)],
|
|
|
|
bezelColor = PatternColor(
|
|
"textfield-bezel-square{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
positions: "#",
|
|
width: 4.0,
|
|
height: 4.0
|
|
}),
|
|
|
|
bezelFocusedColor = PatternColor(
|
|
"textfield-bezel-square-focused{position}.png",
|
|
{
|
|
positions: "#",
|
|
width: 9.0,
|
|
height: 9.0
|
|
});
|
|
|
|
// Global for reuse by CPTokenField.
|
|
themedTextFieldValues =
|
|
[
|
|
// CPThemeStateControlSizeRegular
|
|
[@"vertical-alignment", CPTopVerticalTextAlignment, CPThemeStateBezeled],
|
|
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled],
|
|
[@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled],
|
|
|
|
[@"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]],
|
|
|
|
[@"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]],
|
|
|
|
[@"text-color", placeholderColor, CPTextFieldStatePlaceholder],
|
|
|
|
[@"line-break-mode", CPLineBreakByTruncatingTail, CPThemeStateTableDataView],
|
|
[@"vertical-alignment", CPCenterVerticalTextAlignment, CPThemeStateTableDataView],
|
|
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 5.0), CPThemeStateTableDataView],
|
|
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView],
|
|
[@"text-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateFirstResponder, CPThemeStateKeyWindow]],
|
|
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateSelectedDataView]],
|
|
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateEditing, CPThemeStateFirstResponder, CPThemeStateKeyWindow]],
|
|
[@"text-color", [CPColor blackColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateEditable, CPThemeStateFirstResponder, CPThemeStateKeyWindow]],
|
|
[@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 10.0), [CPThemeStateTableDataView, CPThemeStateEditable]],
|
|
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPThemeStateTableDataView, CPThemeStateEditing]],
|
|
[@"bezel-inset", CGInsetMake(-2.0, -2.0, -2.0, -2.0), [CPThemeStateTableDataView, CPThemeStateEditable, CPThemeStateEditing]],
|
|
[@"bezel-inset", CGInsetMake(1.0, 1.0, 1.0, 1.0), [CPThemeStateTableDataView, CPThemeStateEditable]],
|
|
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], [CPThemeStateTableDataView, CPThemeStateGroupRow]],
|
|
[@"text-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateGroupRow, CPThemeStateSelectedDataView, CPThemeStateFirstResponder, CPThemeStateKeyWindow]],
|
|
[@"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]],
|
|
|
|
[@"min-size", CGSizeMake(-1.0, 29.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 0.0, -4.0, 0.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, -3.0, 8.0, 0.0), CPThemeStateBezeled],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"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]],
|
|
|
|
[@"min-size", CGSizeMake(-1.0, 25.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 0.0, -4.0, 0.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-3.0, 4.0, 7.0, 7.0), [CPThemeStateControlSizeSmall, CPThemeStateBezeled]],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"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]],
|
|
[@"min-size", CGSizeMake(-1.0, 22.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 0.0, -4.0, 0.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, 4.0, 8.0, 7.0), [CPThemeStateControlSizeMini, CPThemeStateBezeled]],
|
|
];
|
|
|
|
[self registerThemeValues:themedTextFieldValues forView:textfield];
|
|
|
|
[textfield setBezeled:YES];
|
|
|
|
[textfield setPlaceholderString:"placeholder"];
|
|
[textfield setStringValue:""];
|
|
[textfield setEditable:YES];
|
|
|
|
return textfield;
|
|
}
|
|
|
|
+ (CPTextField)themedRoundedTextField
|
|
{
|
|
var textfield = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 160.0, 29.0)],
|
|
bezelColor = PatternColor(
|
|
"textfield-bezel-rounded{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 8.0,
|
|
height: 23.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
bezelFocusedColor = PatternColor(
|
|
"textfield-bezel-rounded-focused{position}.png",
|
|
{
|
|
width: 13.0,
|
|
height: 29.0,
|
|
orientation: PatternIsHorizontal
|
|
});
|
|
|
|
// Global for reuse by CPSearchField
|
|
themedRoundedTextFieldValues =
|
|
[
|
|
[@"bezel-color",
|
|
bezelColor["@"], [CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"bezel-color",
|
|
bezelFocusedColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"bezel-color",
|
|
bezelColor["disabled"], [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize]],
|
|
|
|
[@"content-inset", CGInsetMake(7.0, 10.0, 4.0, 10.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"content-inset", CGInsetMake(7.0, 10.0, 4.0, 10.0), [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"text-color", placeholderColor, [CPTextFieldStateRounded, CPTextFieldStatePlaceholder]],
|
|
[@"text-color", regularDisabledTextColor, [CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
[@"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]],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, 7.0, 8.0, 10.0), [CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"content-inset", CGInsetMake(7.0, 6.0, 4.0, 6.0), [CPThemeStateControlSizeSmall, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"bezel-inset", CGInsetMake(2.0, 4.0, 2.0, 4.0), [CPThemeStateControlSizeSmall, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPThemeStateControlSizeSmall, CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"min-size", CGSizeMake(0.0, 25.0), [CPThemeStateControlSizeSmall, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"max-size", CGSizeMake(-1.0, 25.0), [CPThemeStateControlSizeSmall, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, 7.0, 8.0, 9.0), [CPThemeStateControlSizeSmall, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"content-inset", CGInsetMake(7.0, 6.0, 4.0, 6.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"bezel-inset", CGInsetMake(2.0, 4.0, 2.0, 4.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"min-size", CGSizeMake(0.0, 22.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"max-size", CGSizeMake(-1.0, 22.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, 2.0, 8.0, 4.0), [CPThemeStateControlSizeMini, CPTextFieldStateRounded, CPThemeStateBezeled]],
|
|
];
|
|
|
|
[self registerThemeValues:themedRoundedTextFieldValues forView:textfield];
|
|
|
|
[textfield setBezeled:YES];
|
|
[textfield setBezelStyle:CPTextFieldRoundedBezel];
|
|
|
|
[textfield setPlaceholderString:"placeholder"];
|
|
[textfield setStringValue:""];
|
|
[textfield setEditable:YES];
|
|
|
|
return textfield;
|
|
}
|
|
|
|
+ (CPSearchField)themedSearchField
|
|
{
|
|
var searchField = [[CPSearchField alloc] initWithFrame:CGRectMake(0.0, 0.0, 160.0, 29.0)],
|
|
|
|
imageSearch = PatternImage("search-field-search.png", 25.0, 22.0),
|
|
imageFind = PatternImage("search-field-find.png", 25.0, 22.0),
|
|
imageCancel = PatternImage("search-field-cancel.png", 22.0, 22.0),
|
|
imageCancelPressed = PatternImage("search-field-cancel-pressed.png", 22.0, 22.0),
|
|
|
|
smallImageSearch = PatternImage("search-field-search.png", 25.0, 22.0),
|
|
smallImageFind = PatternImage("search-field-find.png", 25.0, 22.0),
|
|
smallImageCancel = PatternImage("search-field-cancel.png", 22.0, 22.0),
|
|
smallImageCancelPressed = PatternImage("search-field-cancel-pressed.png", 22.0, 22.0),
|
|
|
|
miniImageSearch = PatternImage("search-field-search.png", 25.0, 22.0),
|
|
miniImageFind = PatternImage("search-field-find.png", 25.0, 22.0),
|
|
miniImageCancel = PatternImage("search-field-cancel.png", 22.0, 22.0),
|
|
miniImageCancelPressed = PatternImage("search-field-cancel-pressed.png", 22.0, 22.0),
|
|
|
|
overrides =
|
|
[
|
|
[@"image-search-inset", CGInsetMake(0, 0, 0, 5)],
|
|
[@"image-cancel-inset", CGInsetMake(0, 5, 0, 0)],
|
|
|
|
[@"image-search", imageSearch],
|
|
[@"image-find", imageFind],
|
|
[@"image-cancel", imageCancel],
|
|
[@"image-cancel-pressed", imageCancelPressed],
|
|
|
|
[@"image-search", smallImageSearch, CPThemeStateControlSizeSmall],
|
|
[@"image-find", smallImageFind, CPThemeStateControlSizeSmall],
|
|
[@"image-cancel", smallImageCancel, CPThemeStateControlSizeSmall],
|
|
[@"image-cancel-pressed", smallImageCancelPressed, CPThemeStateControlSizeSmall],
|
|
|
|
[@"image-search", miniImageSearch, CPThemeStateControlSizeMini],
|
|
[@"image-find", miniImageFind, CPThemeStateControlSizeMini],
|
|
[@"image-cancel", miniImageCancel, CPThemeStateControlSizeMini],
|
|
[@"image-cancel-pressed", miniImageCancelPressed, CPThemeStateControlSizeMini],
|
|
];
|
|
|
|
[self registerThemeValues:overrides forView:searchField inherit:themedRoundedTextFieldValues];
|
|
|
|
return searchField;
|
|
}
|
|
|
|
+ (CPDatePicker)themedDatePicker
|
|
{
|
|
var datePicker = [[CPDatePicker alloc] initWithFrame:CGRectMake(40.0, 40.0, 170.0, 29.0)],
|
|
|
|
bezelColor = PatternColor(
|
|
"textfield-bezel-square{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
positions: "#",
|
|
width: 4.0,
|
|
height: 4.0
|
|
}),
|
|
|
|
bezelFocusedColor = PatternColor(
|
|
"textfield-bezel-square-focused{position}.png",
|
|
{
|
|
positions: "#",
|
|
width: 9.0,
|
|
height: 9.0
|
|
}),
|
|
|
|
bezelColorDatePickerTextField = PatternColor(
|
|
[
|
|
[@"datepicker-date-segment-0.png", 4.0, 18.0],
|
|
[@"datepicker-date-segment-1.png", 1.0, 18.0],
|
|
[@"datepicker-date-segment-2.png", 4.0, 18.0]
|
|
], PatternIsHorizontal),
|
|
|
|
themeValues =
|
|
[
|
|
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled],
|
|
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
[@"bezel-color", bezelFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize]],
|
|
[@"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],
|
|
[@"content-inset", CGInsetMake(6.0, 0.0, 0.0, 6.0), [CPThemeStateNormal, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"bezel-inset", CGInsetMake(3.0, 0.0, 3.0, 0.0), CPThemeStateBezeled],
|
|
[@"bezel-inset", CGInsetMake(0.0, 0, 0.0, -3.0), [CPThemeStateNormal, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"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]],
|
|
|
|
[@"separator-content-inset", CGInsetMake(0.0, -2.0, 0.0, -1.0)],
|
|
|
|
[@"content-inset-datepicker-textfield", CGInsetMake(2.0, 2.0, 0.0, 1.0), CPThemeStateNormal],
|
|
[@"content-inset-datepicker-textfield-separator",CGInsetMake(2.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
|
|
[@"content-inset-datepicker-textfield", CGInsetMake(2.0, 2.0, 0.0, 1.0) , CPThemeStateSelected],
|
|
[@"content-inset-datepicker-textfield-separator",CGInsetMake(2.0, 0.0, 0.0, 0.0), CPThemeStateSelected],
|
|
|
|
[@"min-size-datepicker-textfield", CGSizeMake(6.0, 18.0)],
|
|
[@"date-hour-margin", 7.0],
|
|
[@"stepper-margin", 5.0],
|
|
[@"stepper-margin", 2.0, CPThemeStateEditing],
|
|
|
|
[@"min-size", CGSizeMake(0, 29.0)],
|
|
[@"max-size", CGSizeMake(-1.0, 29.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, 4.0, -3.0, 0.0)],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"content-inset", CGInsetMake(5.0, 0.0, 0.0, 3.0), [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"content-inset", CGInsetMake(2.0, 0.0, 0.0, 3.0), [CPThemeStateControlSizeSmall, CPThemeStateBezeled]],
|
|
[@"content-inset", CGInsetMake(5.0, 0.0, 0.0, 6.0), [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"min-size-datepicker-textfield", CGSizeMake(6.0, 16.0), CPThemeStateControlSizeSmall],
|
|
[@"date-hour-margin", 5.0, CPThemeStateControlSizeSmall],
|
|
[@"stepper-margin", 3.0, CPThemeStateControlSizeSmall],
|
|
[@"stepper-margin", 0.0, [CPThemeStateControlSizeSmall, CPThemeStateEditing]],
|
|
|
|
[@"min-size", CGSizeMake(0, 26.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1.0, 26.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, 6.0, -4.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"content-inset", CGInsetMake(3.0, 0.0, 0.0, 3.0), [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"content-inset", CGInsetMake(1.0, 0.0, 0.0, 3.0), [CPThemeStateControlSizeMini, CPThemeStateBezeled]],
|
|
[@"content-inset", CGInsetMake(4.0, 0.0, 0.0, 6.0), [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"min-size-datepicker-textfield", CGSizeMake(6.0, 12.0), CPThemeStateControlSizeMini],
|
|
[@"date-hour-margin", 2.0, CPThemeStateControlSizeMini],
|
|
[@"stepper-margin", 2.0, CPThemeStateControlSizeMini],
|
|
[@"stepper-margin", -1.0, [CPThemeStateControlSizeMini, CPThemeStateEditing]],
|
|
|
|
[@"min-size", CGSizeMake(0, 22.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1.0, 22.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, 9.0, -3.0, 0.0), CPThemeStateControlSizeMini]
|
|
];
|
|
|
|
[datePicker setDatePickerStyle:CPTextFieldDatePickerStyle];
|
|
[self registerThemeValues:themeValues forView:datePicker];
|
|
|
|
return datePicker;
|
|
}
|
|
|
|
+ (CPDatePicker)themedDatePickerCalendar
|
|
{
|
|
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),
|
|
circleImage = PatternImage("datepicker-circle-image.png", 9.0, 10.0),
|
|
|
|
arrowImageLeftHighlighted = PatternImage("datepicker-calendar-arrow-left-highlighted.png", 7.0, 10.0),
|
|
arrowImageRightHighlighted = PatternImage("datepicker-calendar-arrow-right-highlighted.png", 7.0, 10.0),
|
|
circleImageHighlighted = PatternImage("datepicker-circle-image-highlighted.png", 9.0, 10.0),
|
|
|
|
secondHandSize = CGSizeMake(89.0, 89.0),
|
|
secondHandImage = PatternImage("datepicker-clock-second-hand.png", secondHandSize.width, secondHandSize.height),
|
|
|
|
minuteHandSize = CGSizeMake(85.0, 85.0),
|
|
minuteHandImage = PatternImage("datepicker-clock-minute-hand.png", minuteHandSize.width, minuteHandSize.height),
|
|
|
|
hourHandSize = CGSizeMake(47.0, 47.0),
|
|
hourHandImage = PatternImage("datepicker-clock-hour-hand.png", hourHandSize.width, hourHandSize.height),
|
|
|
|
middleHandSize = CGSizeMake(13.0, 13.0),
|
|
middleHandImage = PatternImage("datepicker-clock-middle-hand.png", middleHandSize.width, middleHandSize.height),
|
|
|
|
clockSize = CGSizeMake(122.0, 123.0),
|
|
clockImageColor = PatternColor("datepicker-clock.png", clockSize.width, clockSize.height),
|
|
|
|
secondHandImageDisabled = PatternImage("datepicker-clock-second-hand-disabled.png", secondHandSize.width, secondHandSize.height),
|
|
minuteHandImageDisabled = PatternImage("datepicker-clock-minute-hand-disabled.png", minuteHandSize.width, minuteHandSize.height),
|
|
hourHandImageDisabled = PatternImage("datepicker-clock-hour-hand-disabled.png", hourHandSize.width, hourHandSize.height),
|
|
middleHandImageDisabled = PatternImage("datepicker-clock-middle-hand-disabled.png", middleHandSize.width, middleHandSize.height),
|
|
clockImageColorDisabled = PatternColor("datepicker-clock-disabled.png", clockSize.width, clockSize.height),
|
|
|
|
themeValues =
|
|
[
|
|
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:1.0], CPThemeStateNormal],
|
|
[@"border-color", [CPColor colorWithCalibratedRed:68.0 / 255.0 green:109.0 / 255.0 blue:198.0 / 255.0 alpha:1.0], CPThemeStateSelected],
|
|
[@"border-color", [CPColor colorWithCalibratedRed:217.0 / 255.0 green:217.0 / 255.0 blue:211.0 / 255.0 alpha:0.5], [CPThemeStateNormal, CPThemeStateDisabled]],
|
|
[@"border-color", [CPColor colorWithCalibratedRed:68.0 / 255.0 green:109.0 / 255.0 blue:198.0 / 255.0 alpha:0.5], [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"bezel-color-calendar", [CPColor whiteColor]],
|
|
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:1.0], CPThemeStateSelected],
|
|
[@"bezel-color-calendar", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:0.5], [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"bezel-color-clock", clockImageColor],
|
|
[@"bezel-color-clock", clockImageColorDisabled, CPThemeStateDisabled],
|
|
|
|
[@"title-text-color", [CPColor colorWithCalibratedRed:79.0 / 255.0 green:79.0 / 255.0 blue:79.0 / 255.0 alpha:1.0]],
|
|
[@"title-text-shadow-color", [CPColor whiteColor]],
|
|
[@"title-text-shadow-offset", CGSizeMake(0,1)],
|
|
[@"title-font", [CPFont boldSystemFontOfSize:12.0]],
|
|
|
|
[@"title-text-color", [CPColor colorWithCalibratedRed:79.0 / 255.0 green:79.0 / 255.0 blue:79.0 / 255.0 alpha:0.5], CPThemeStateDisabled],
|
|
[@"title-text-shadow-color", [CPColor whiteColor], CPThemeStateDisabled],
|
|
[@"title-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled],
|
|
[@"title-font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateDisabled],
|
|
|
|
[@"weekday-text-color", [CPColor colorWithCalibratedRed:79.0 / 255.0 green:79.0 / 255.0 blue:79.0 / 255.0 alpha:1.0]],
|
|
[@"weekday-text-shadow-color", [CPColor whiteColor]],
|
|
[@"weekday-text-shadow-offset", CGSizeMake(0,1)],
|
|
[@"weekday-font", [CPFont systemFontOfSize:11.0]],
|
|
|
|
[@"weekday-text-color", [CPColor colorWithCalibratedRed:79.0 / 255.0 green:79.0 / 255.0 blue:79.0 / 255.0 alpha:0.5], CPThemeStateDisabled],
|
|
[@"weekday-text-shadow-color", [CPColor whiteColor], CPThemeStateDisabled],
|
|
[@"weekday-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled],
|
|
[@"weekday-font", [CPFont systemFontOfSize:11.0], CPThemeStateDisabled],
|
|
|
|
[@"clock-text-color", [CPColor colorWithCalibratedRed:153.0 / 255.0 green:153.0 / 255.0 blue:153.0 / 255.0 alpha:1.0]],
|
|
[@"clock-text-shadow-color", [CPColor whiteColor]],
|
|
[@"clock-text-shadow-offset", CGSizeMake(0,1)],
|
|
[@"clock-font", [CPFont systemFontOfSize:11.0]],
|
|
|
|
[@"clock-text-color", [CPColor colorWithCalibratedRed:153.0 / 255.0 green:153.0 / 255.0 blue:153.0 / 255.0 alpha:0.5], CPThemeStateDisabled],
|
|
[@"clock-text-shadow-color", [CPColor whiteColor], CPThemeStateDisabled],
|
|
[@"clock-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled],
|
|
[@"clock-font", [CPFont systemFontOfSize:11.0], CPThemeStateDisabled],
|
|
|
|
[@"tile-text-color", [CPColor colorWithCalibratedRed:34.0 / 255.0 green:34.0 / 255.0 blue:34.0 / 255.0 alpha:1.0], CPThemeStateNormal],
|
|
[@"tile-text-shadow-color", [CPColor whiteColor], CPThemeStateNormal],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateNormal],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateNormal],
|
|
|
|
[@"tile-text-color", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:1.0], CPThemeStateHighlighted],
|
|
[@"tile-text-shadow-color", [CPColor whiteColor], CPThemeStateHighlighted],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateHighlighted],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateHighlighted],
|
|
|
|
[@"tile-text-color", [CPColor colorWithCalibratedRed:87.0 / 255.0 green:128.0 / 255.0 blue:216.0 / 255.0 alpha:0.5], [CPThemeStateHighlighted, CPThemeStateDisabled]],
|
|
[@"tile-text-shadow-color", [CPColor whiteColor], [CPThemeStateHighlighted, CPThemeStateDisabled]],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateHighlighted, CPThemeStateDisabled]],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateHighlighted, CPThemeStateDisabled]],
|
|
|
|
[@"tile-text-color", [CPColor whiteColor], [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"tile-text-color", [CPColor whiteColor], CPThemeStateSelected],
|
|
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], CPThemeStateSelected],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateSelected],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateSelected],
|
|
|
|
[@"tile-text-color", [CPColor colorWithCalibratedRed:179.0 / 255.0 green:179.0 / 255.0 blue:179.0 / 255.0 alpha:1.0], CPThemeStateDisabled],
|
|
[@"tile-text-shadow-color", [CPColor whiteColor], CPThemeStateDisabled],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), CPThemeStateDisabled],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], CPThemeStateDisabled],
|
|
|
|
[@"tile-text-color", [CPColor colorWithCalibratedRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:0.5], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateDisabled, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
|
|
[@"tile-text-color", [CPColor colorWithCalibratedRed:255.0 / 255.0 green:255.0 / 255.0 blue:255.0 / 255.0 alpha:0.5], [CPThemeStateDisabled, CPThemeStateSelected]],
|
|
[@"tile-text-shadow-color", [CPColor colorWithCalibratedRed:0.0 / 255.0 green:0.0 / 255.0 blue:0.0 / 255.0 alpha:0.2], [CPThemeStateDisabled, CPThemeStateSelected]],
|
|
[@"tile-text-shadow-offset", CGSizeMake(0,1), [CPThemeStateDisabled, CPThemeStateSelected]],
|
|
[@"tile-font", [CPFont systemFontOfSize:10.0], [CPThemeStateDisabled, CPThemeStateSelected]],
|
|
|
|
[@"arrow-image-left", arrowImageLeft],
|
|
[@"arrow-image-right", arrowImageRight],
|
|
[@"arrow-image-left-highlighted", arrowImageLeftHighlighted],
|
|
[@"arrow-image-right-highlighted", arrowImageRightHighlighted],
|
|
[@"circle-image", circleImage],
|
|
[@"circle-image-highlighted", circleImageHighlighted],
|
|
[@"arrow-inset", CGInsetMake(9.0, 4.0, 0.0, 0.0)],
|
|
|
|
[@"second-hand-image", secondHandImage],
|
|
[@"hour-hand-image", hourHandImage],
|
|
[@"middle-hand-image", middleHandImage],
|
|
[@"minute-hand-image", minuteHandImage],
|
|
|
|
[@"second-hand-image", secondHandImageDisabled, CPThemeStateDisabled],
|
|
[@"hour-hand-image", hourHandImageDisabled, CPThemeStateDisabled],
|
|
[@"middle-hand-image", middleHandImageDisabled, CPThemeStateDisabled],
|
|
[@"minute-hand-image", minuteHandImageDisabled, CPThemeStateDisabled],
|
|
|
|
[@"second-hand-size", secondHandSize],
|
|
[@"hour-hand-size", hourHandSize],
|
|
[@"middle-hand-size", middleHandSize],
|
|
[@"minute-hand-size", minuteHandSize],
|
|
|
|
[@"border-width", 1.0],
|
|
[@"size-header", CGSizeMake(141.0, 39.0)],
|
|
[@"size-tile", CGSizeMake(20.0, 18.0)],
|
|
[@"size-clock", clockSize],
|
|
[@"size-calendar", CGSizeMake(141.0, 109.0)],
|
|
[@"min-size-calendar", CGSizeMake(141.0, 148.0)],
|
|
[@"max-size-calendar", CGSizeMake(141.0, 148.0)]
|
|
];
|
|
|
|
[datePicker setDatePickerStyle:CPClockAndCalendarDatePickerStyle];
|
|
[datePicker setBackgroundColor:[CPColor whiteColor]];
|
|
[self registerThemeValues:themeValues forView:datePicker];
|
|
|
|
return datePicker;
|
|
}
|
|
|
|
+ (CPTokenField)themedTokenField
|
|
{
|
|
var tokenfield = [[CPTokenField alloc] initWithFrame:CGRectMake(0.0, 0.0, 160.0, 29.0)],
|
|
|
|
overrides =
|
|
[
|
|
[@"bezel-inset", CGInsetMakeZero()],
|
|
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeStateBezeled],
|
|
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"editor-inset", CGInsetMake(3.0, 0.0, 0.0, 0.0)],
|
|
|
|
// Non-bezeled token field with tokens
|
|
[@"content-inset", CGInsetMake(6.0, 8.0, 4.0, 8.0)],
|
|
|
|
// Non-bezeled token field with no tokens
|
|
[@"content-inset", CGInsetMake(7.0, 8.0, 6.0, 8.0), CPTextFieldStatePlaceholder],
|
|
|
|
// Bezeled token field with tokens
|
|
[@"content-inset", CGInsetMake(4.0, 8.0, 4.0, 8.0), CPThemeStateBezeled],
|
|
|
|
// Bezeled token field with no tokens
|
|
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 8.0), [CPThemeStateBezeled, CPTextFieldStatePlaceholder]]
|
|
];
|
|
|
|
[self registerThemeValues:overrides forView:tokenfield inherit:themedTextFieldValues];
|
|
|
|
return tokenfield;
|
|
}
|
|
|
|
+ (_CPTokenFieldToken)themedTokenFieldToken
|
|
{
|
|
var token = [[_CPTokenFieldToken alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 19.0)],
|
|
|
|
bezelColor = PatternColor(
|
|
"token{state}{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 11.0,
|
|
height: 19.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
textColor = [CPColor colorWithRed:41.0 / 255.0 green:51.0 / 255.0 blue:64.0 / 255.0 alpha:1.0],
|
|
textHighlightedColor = [CPColor whiteColor],
|
|
textDisabledColor = [CPColor colorWithRed:41.0 / 255.0 green:51.0 / 255.0 blue:64.0 / 255.0 alpha:0.5],
|
|
|
|
themeValues =
|
|
[
|
|
[@"bezel-color", bezelColor["@"], CPThemeStateBezeled],
|
|
[@"bezel-color", bezelColor["highlighted"], [CPThemeStateBezeled, CPThemeStateHighlighted]],
|
|
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
[@"text-color", textColor],
|
|
[@"text-color", textHighlightedColor, CPThemeStateHighlighted],
|
|
[@"text-color", textDisabledColor, CPThemeStateDisabled],
|
|
|
|
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBezeled],
|
|
[@"content-inset", CGInsetMake(1.0, 20.0, 2.0, 20.0), CPThemeStateBezeled],
|
|
|
|
// Minimum height == maximum height since tokens are fixed height.
|
|
[@"min-size", CGSizeMake(0.0, 19.0)],
|
|
[@"max-size", CGSizeMake(-1.0, 19.0)],
|
|
|
|
[@"vertical-alignment", CPCenterTextAlignment]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:token];
|
|
|
|
return token;
|
|
}
|
|
|
|
+ (_CPTokenFieldTokenDisclosureButton)themedTokenFieldDisclosureButton
|
|
{
|
|
var button = [[_CPTokenFieldTokenDisclosureButton alloc] initWithFrame:CGRectMake(0, 0, 9, 9)],
|
|
|
|
arrowImage = PatternColor("token-disclosure.png", 7.0, 6.0),
|
|
arrowImageHiglighted = PatternColor("token-disclosure-highlighted.png", 7.0, 6.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
|
|
|
|
[@"bezel-color", nil, CPThemeStateBordered],
|
|
[@"bezel-color", arrowImage, [CPThemeStateBordered, CPThemeStateHovered]],
|
|
[@"bezel-color", arrowImageHiglighted, [CPThemeStateBordered, CPThemeStateHovered, CPThemeStateHighlighted]],
|
|
|
|
[@"min-size", CGSizeMake(7.0, 6.0)],
|
|
[@"max-size", CGSizeMake(7.0, 6.0)],
|
|
|
|
[@"offset", CGPointMake(16, 7)]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (_CPTokenFieldTokenCloseButton)themedTokenFieldTokenCloseButton
|
|
{
|
|
var button = [[_CPTokenFieldTokenCloseButton alloc] initWithFrame:CGRectMake(0, 0, 9, 9)],
|
|
|
|
bezelColor = PatternColor("token-close.png", 8.0, 8.0),
|
|
bezelHighlightedColor = PatternColor("token-close-highlighted.png", 8.0, 8.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"bezel-color", bezelColor, [CPThemeStateBordered, CPThemeStateHovered]],
|
|
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"bezel-color", bezelHighlightedColor, [CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
|
|
[@"min-size", CGSizeMake(8.0, 8.0)],
|
|
[@"max-size", CGSizeMake(8.0, 8.0)],
|
|
|
|
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered],
|
|
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), [CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
|
|
[@"offset", CGPointMake(16, 6), CPThemeStateBordered]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPComboBox)themedComboBox
|
|
{
|
|
var combo = [[CPComboBox alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 31.0)],
|
|
|
|
regularBezelColor = PatternColor(
|
|
"combobox-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 4.0,
|
|
height: 25.0,
|
|
rightWidth: 24.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
regularBezelFocusedColor = PatternColor(
|
|
"combobox-bezel-focused{position}.png",
|
|
{
|
|
width: 9.0,
|
|
height: 31.0,
|
|
rightWidth: 27.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
regularBezelNoBorderColor = PatternColor(
|
|
"combobox-bezel-no-border{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 4.0,
|
|
height: 25.0,
|
|
rightWidth: 25.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
regularBezelNoBorderFocusedColor = PatternColor(
|
|
"combobox-bezel-no-border-focused{position}.png",
|
|
{
|
|
width: 9.0,
|
|
height: 31.0,
|
|
rightWidth: 27.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelColor = PatternColor(
|
|
"combobox-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 4.0,
|
|
height: 20.0,
|
|
rightWidth: 19.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelFocusedColor = PatternColor(
|
|
"combobox-bezel-focused{position}.png",
|
|
{
|
|
width: 8.0,
|
|
height: 26.0,
|
|
rightWidth: 21.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelNoBorderColor = PatternColor(
|
|
"combobox-bezel-no-border{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 4.0,
|
|
height: 20.0,
|
|
rightWidth: 19.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelNoBorderFocusedColor = PatternColor(
|
|
"combobox-bezel-no-border-focused{position}.png",
|
|
{
|
|
width: 8.0,
|
|
height: 26.0,
|
|
rightWidth: 23.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniBezelColor = PatternColor(
|
|
"combobox-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 4.0,
|
|
height: 17.5,
|
|
rightWidth: 17.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniBezelFocusedColor = PatternColor(
|
|
"combobox-bezel-focused{position}.png",
|
|
{
|
|
width: 6.0,
|
|
height: 22.0,
|
|
rightWidth: 19.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniBezelNoBorderColor = PatternColor(
|
|
"combobox-bezel-no-border{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 4.0,
|
|
height: 17.5,
|
|
rightWidth: 17.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniBezelNoBorderFocusedColor = PatternColor(
|
|
"combobox-bezel-no-border-focused{position}.png",
|
|
{
|
|
width: 6.0,
|
|
height: 22.0,
|
|
rightWidth: 19.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
overrides =
|
|
[
|
|
[@"bezel-color", regularBezelColor["@"], [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
|
|
[@"bezel-color", regularBezelFocusedColor, [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing]],
|
|
[@"bezel-color", regularBezelColor["disabled"], [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled]],
|
|
|
|
[@"bezel-color", regularBezelNoBorderColor["@"], CPThemeStateBezeled],
|
|
[@"bezel-color", regularBezelNoBorderFocusedColor, [CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"bezel-color", regularBezelNoBorderColor["disabled"], [CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
[@"border-inset", CGInsetMake(3.0, 3.0, 3.0, 3.0), CPThemeStateBezeled],
|
|
|
|
[@"bezel-inset", CGInsetMake(0.0, 1.0, 0.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing, CPComboBoxStateButtonBordered]],
|
|
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), [CPThemeStateBezeled, CPThemeStateDisabled, CPComboBoxStateButtonBordered]],
|
|
|
|
[@"bezel-inset", CGInsetMake(0.0, 4.0, 0.0, 1.0), [CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"bezel-inset", CGInsetMake(3.0, 5.0, 3.0, 4.0), [CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
// The right border inset has to make room for the focus ring and popup button
|
|
[@"content-inset", CGInsetMake(9.0, 30.0, 7.0, 10.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
|
|
[@"content-inset", CGInsetMake(9.0, 30.0, 7.0, 10.0), CPThemeStateBezeled],
|
|
[@"content-inset", CGInsetMake(9.0, 28.0, 7.0, 10.0), [CPThemeStateBezeled, CPThemeStateEditing]],
|
|
|
|
[@"popup-button-size", CGSizeMake(21.0, 23.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
|
|
[@"popup-button-size", CGSizeMake(17.0, 23.0), CPThemeStateBezeled],
|
|
|
|
// Because combo box uses a three-part bezel, the height is fixed
|
|
[@"min-size", CGSizeMake(0, 31.0)],
|
|
[@"max-size", CGSizeMake(-1, 31.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, 0.0, 5.0, 0.0)],
|
|
|
|
[@"text-color", regularDisabledTextColor, [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"text-shadow-color", regularDisabledTextShadowColor, [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"bezel-color", smallBezelColor["@"], [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
|
|
[@"bezel-color", smallBezelFocusedColor, [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing]],
|
|
[@"bezel-color", smallBezelColor["disabled"], [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled]],
|
|
|
|
[@"bezel-color", smallBezelNoBorderColor["@"], [CPThemeStateControlSizeSmall, CPThemeStateBezeled]],
|
|
[@"bezel-color", smallBezelNoBorderFocusedColor, [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"bezel-color", smallBezelNoBorderColor["disabled"], [CPThemeStateControlSizeSmall, CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
[@"bezel-inset", CGInsetMake(1.0, 2.0, 1.0, 2.0), [CPThemeStateBezeled, CPThemeStateEditing, CPComboBoxStateButtonBordered, CPThemeStateControlSizeSmall]],
|
|
[@"content-inset", CGInsetMake(7.0, 28.0, 7.0, 8.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateControlSizeSmall]],
|
|
[@"content-inset", CGInsetMake(7.0, 28.0, 7.0, 8.0), [CPThemeStateBezeled, CPThemeStateControlSizeSmall]],
|
|
|
|
[@"min-size", CGSizeMake(0, 26.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1, 26.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, -1.0, 5.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"bezel-color", miniBezelColor["@"], [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPComboBoxStateButtonBordered]],
|
|
[@"bezel-color", miniBezelFocusedColor, [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateEditing]],
|
|
[@"bezel-color", miniBezelColor["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateDisabled]],
|
|
|
|
[@"bezel-color", miniBezelNoBorderColor["@"], [CPThemeStateControlSizeMini, CPThemeStateBezeled]],
|
|
[@"bezel-color", miniBezelNoBorderFocusedColor, [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPThemeStateEditing]],
|
|
[@"bezel-color", miniBezelNoBorderColor["disabled"], [CPThemeStateControlSizeMini, CPThemeStateBezeled, CPThemeStateDisabled]],
|
|
|
|
[@"bezel-inset", CGInsetMake(1.0, 2.0, 1.0, 2.0), [CPThemeStateBezeled, CPThemeStateEditing, CPComboBoxStateButtonBordered, CPThemeStateControlSizeMini]],
|
|
[@"content-inset", CGInsetMake(7.0, 26.0, 7.0, 8.0), [CPThemeStateBezeled, CPComboBoxStateButtonBordered, CPThemeStateControlSizeMini]],
|
|
[@"content-inset", CGInsetMake(7.0, 26.0, 7.0, 8.0), [CPThemeStateBezeled, CPThemeStateControlSizeMini]],
|
|
|
|
[@"min-size", CGSizeMake(0, 22.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1, 22.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-4.0, -2.0, 6.0, 0.0), CPThemeStateControlSizeMini],
|
|
];
|
|
|
|
[self registerThemeValues:overrides forView:combo inherit:themedTextFieldValues];
|
|
|
|
return combo;
|
|
}
|
|
|
|
+ (CPRadioButton)themedRadioButton
|
|
{
|
|
var button = [CPRadio radioWithTitle:@"Radio button"],
|
|
regularImageNormal = PatternImage("radio-image.png", 21.0, 21.0),
|
|
regularImageSelected = PatternImage("radio-image-selected.png", 21.0, 21.0),
|
|
regularImageSelectedHighlighted = PatternImage("radio-image-selected-highlighted.png", 21.0, 21.0),
|
|
regularImageSelectedDisabled = PatternImage("radio-image-selected.png", 21.0, 21.0),
|
|
regularImageDisabled = PatternImage("radio-image.png", 21.0, 21.0),
|
|
regularImageHighlighted = PatternImage("radio-image-highlighted.png", 21.0, 21.0),
|
|
|
|
smallImageNormal = PatternImage("radio-image.png", 20.0, 20.0),
|
|
smallImageSelected = PatternImage("radio-image-selected.png", 20.0, 20.0),
|
|
smallImageSelectedHighlighted = PatternImage("radio-image-selected-highlighted.png", 20.0, 20.0),
|
|
smallImageSelectedDisabled = PatternImage("radio-image-selected.png", 20.0, 20.0),
|
|
smallImageDisabled = PatternImage("radio-image.png", 20.0, 20.0),
|
|
smallImageHighlighted = PatternImage("radio-image-highlighted.png", 20.0, 20.0),
|
|
|
|
miniImageNormal = PatternImage("radio-image.png", 16.0, 16.0),
|
|
miniImageSelected = PatternImage("radio-image-selected.png", 16.0, 16.0),
|
|
miniImageSelectedHighlighted = PatternImage("radio-image-selected-highlighted.png", 16.0, 16.0),
|
|
miniImageSelectedDisabled = PatternImage("radio-image-selected.png", 16.0, 16.0),
|
|
miniImageDisabled = PatternImage("radio-image.png", 16.0, 16.0),
|
|
miniImageHighlighted = PatternImage("radio-image-highlighted.png", 16.0, 16.0);
|
|
|
|
// Global
|
|
themedRadioButtonValues =
|
|
[
|
|
[@"alignment", CPLeftTextAlignment, CPThemeStateNormal],
|
|
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateNormal],
|
|
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
|
|
|
|
[@"image", regularImageNormal, CPThemeStateNormal],
|
|
[@"image", regularImageSelected, CPThemeStateSelected],
|
|
[@"image", regularImageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", regularImageHighlighted, CPThemeStateHighlighted],
|
|
[@"image", regularImageDisabled, CPThemeStateDisabled],
|
|
[@"image", regularImageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"image-offset", CPRadioImageOffset],
|
|
|
|
[@"text-color", regularDisabledTextColor, CPThemeStateDisabled],
|
|
|
|
[@"min-size", CGSizeMake(21.0, 21.0)],
|
|
[@"max-size", CGSizeMake(-1.0, -1.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, -2.0, 0.0, 0.0)],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"image", smallImageNormal, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"image", smallImageSelected, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
[@"image", smallImageSelectedHighlighted, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", smallImageHighlighted, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted]],
|
|
[@"image", smallImageDisabled, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"image", smallImageSelectedDisabled, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, -3.0, 0.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"image", miniImageNormal, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"image", miniImageSelected, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
[@"image", miniImageSelectedHighlighted, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", miniImageHighlighted, [CPThemeStateControlSizeMini, CPThemeStateHighlighted]],
|
|
[@"image", miniImageDisabled, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"image", miniImageSelectedDisabled, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(0, 16.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1, 16.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, -3.0, 0.0, 0.0), CPThemeStateControlSizeMini],
|
|
];
|
|
|
|
[self registerThemeValues:themedRadioButtonValues forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPCheckBox)themedCheckBoxButton
|
|
{
|
|
var button = [CPCheckBox checkBoxWithTitle:@"Checkbox"],
|
|
regularImageNormal = PatternImage("check-box-image.png", 21.0, 21.0),
|
|
regularImageSelected = PatternImage("check-box-image-selected.png", 21.0, 21.0),
|
|
regularImageSelectedHighlighted = PatternImage("check-box-image-selected-highlighted.png", 21.0, 21.0),
|
|
regularImageSelectedDisabled = PatternImage("check-box-image-selected.png", 21.0, 21.0),
|
|
regularImageDisabled = PatternImage("check-box-image.png", 21.0, 21.0),
|
|
regularImageHighlighted = PatternImage("check-box-image-highlighted.png", 21.0, 21.0),
|
|
|
|
smallImageNormal = PatternImage("check-box-image.png", 19.0, 19.0),
|
|
smallImageSelected = PatternImage("check-box-image-selected.png", 19.0, 19.0),
|
|
smallImageSelectedHighlighted = PatternImage("check-box-image-selected-highlighted.png", 19.0, 19.0),
|
|
smallImageSelectedDisabled = PatternImage("check-box-image-selected.png", 19.0, 19.0),
|
|
smallImageDisabled = PatternImage("check-box-image.png", 19.0, 19.0),
|
|
smallImageHighlighted = PatternImage("check-box-image-highlighted.png", 19.0, 19.0),
|
|
|
|
miniImageNormal = PatternImage("check-box-image.png", 16.0, 16.0),
|
|
miniImageSelected = PatternImage("check-box-image-selected.png", 16.0, 16.0),
|
|
miniImageSelectedHighlighted = PatternImage("check-box-image-selected-highlighted.png", 16.0, 16.0),
|
|
miniImageSelectedDisabled = PatternImage("check-box-image-selected.png", 16.0, 16.0),
|
|
miniImageDisabled = PatternImage("check-box-image.png", 16.0, 16.0),
|
|
miniImageHighlighted = PatternImage("check-box-image-highlighted.png", 16.0, 16.0);
|
|
|
|
// Global
|
|
themedCheckBoxValues =
|
|
[
|
|
[@"alignment", CPLeftTextAlignment, CPThemeStateNormal],
|
|
[@"content-inset", CGInsetMakeZero(), CPThemeStateNormal],
|
|
|
|
[@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal],
|
|
[@"text-color", regularDisabledTextColor, CPThemeStateDisabled],
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView],
|
|
[@"text-color", [CPColor whiteColor], [CPThemeStateTableDataView, CPThemeStateSelectedDataView, CPThemeStateFirstResponder, CPThemeStateKeyWindow]],
|
|
[@"image-offset", CPCheckBoxImageOffset],
|
|
|
|
// CPThemeStateControlSizeRegular
|
|
|
|
[@"image", regularImageNormal, CPThemeStateNormal],
|
|
[@"image", regularImageSelected, CPThemeStateSelected],
|
|
[@"image", regularImageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", regularImageHighlighted, CPThemeStateHighlighted],
|
|
[@"image", regularImageDisabled, CPThemeStateDisabled],
|
|
[@"image", regularImageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(21.0, 21.0)],
|
|
[@"max-size", CGSizeMake(-1.0, -1.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-1.0, 2.0, 10.0, 0.0)],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"image", smallImageNormal, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"image", smallImageSelected, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
[@"image", smallImageSelectedHighlighted, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", smallImageHighlighted, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted]],
|
|
[@"image", smallImageDisabled, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"image", smallImageSelectedDisabled, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(19.0, 19.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1.0, -1.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(1.0, 1.0, 0.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"image", miniImageNormal, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"image", miniImageSelected, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
[@"image", miniImageSelectedHighlighted, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", miniImageHighlighted, [CPThemeStateControlSizeMini, CPThemeStateHighlighted]],
|
|
[@"image", miniImageDisabled, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"image", miniImageSelectedDisabled, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(16.0, 16.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1.0, -1.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 0.0, 0.0, 0.0), CPThemeStateControlSizeMini]
|
|
];
|
|
|
|
[button setThemeState:CPThemeStateSelected];
|
|
|
|
[self registerThemeValues:themedCheckBoxValues forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPCheckBox)themedMixedCheckBoxButton
|
|
{
|
|
var button = [self themedCheckBoxButton];
|
|
|
|
[button setAllowsMixedState:YES];
|
|
[button setState:CPMixedState];
|
|
|
|
var mixedHighlightedImage = PatternImage("check-box-image-mixed-highlighted.png", 21.0, 21.0),
|
|
mixedDisabledImage = PatternImage("check-box-image-mixed.png", 21.0, 21.0),
|
|
mixedImage = PatternImage("check-box-image-mixed.png", 21.0, 21.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"image", mixedImage, CPButtonStateMixed],
|
|
[@"image", mixedHighlightedImage, [CPButtonStateMixed, CPThemeStateHighlighted]],
|
|
[@"image", mixedDisabledImage, [CPButtonStateMixed, CPThemeStateDisabled]],
|
|
[@"image-offset", CPCheckBoxImageOffset, CPButtonStateMixed],
|
|
[@"max-size", CGSizeMake(-1.0, -1.0)]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPSegmentedControl)makeSegmentedControl
|
|
{
|
|
var segmentedControl = [[CPSegmentedControl alloc] initWithFrame:CGRectMake(0.0, 0.0, 0.0, 25.0)];
|
|
|
|
[segmentedControl setTrackingMode:CPSegmentSwitchTrackingSelectAny];
|
|
[segmentedControl setSegmentCount:3];
|
|
|
|
[segmentedControl setWidth:40.0 forSegment:0];
|
|
[segmentedControl setLabel:@"foo" forSegment:0];
|
|
[segmentedControl setTag:1 forSegment:0];
|
|
|
|
[segmentedControl setWidth:60.0 forSegment:1];
|
|
[segmentedControl setLabel:@"bar" forSegment:1];
|
|
[segmentedControl setTag:2 forSegment:1];
|
|
|
|
[segmentedControl setWidth:35.0 forSegment:2];
|
|
[segmentedControl setLabel:@"1" forSegment:2];
|
|
[segmentedControl setTag:3 forSegment:2];
|
|
|
|
return segmentedControl;
|
|
}
|
|
|
|
+ (CPSegmentedControl)themedSegmentedControl
|
|
{
|
|
var segmentedControl = [self makeSegmentedControl],
|
|
|
|
centerBezelColor = PatternColor("segmented-control-bezel-center.png", 1.0, 25.0),
|
|
dividerBezelColor = PatternColor("segmented-control-bezel-divider.png", 1.0, 25.0),
|
|
centerHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-center.png", 1.0, 25.0),
|
|
dividerHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-divider.png", 1.0, 25.0),
|
|
leftHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-left.png", 4.0, 25.0),
|
|
rightHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-right.png", 4.0, 25.0),
|
|
inactiveCenterBezelColor = PatternColor("segmented-control-bezel-disabled-center.png", 1.0, 25.0),
|
|
inactiveDividerBezelColor = PatternColor("segmented-control-bezel-disabled-divider.png", 1.0, 25.0),
|
|
inactiveLeftBezelColor = PatternColor("segmented-control-bezel-disabled-left.png", 4.0, 25.0),
|
|
inactiveRightBezelColor = PatternColor("segmented-control-bezel-disabled-right.png", 4.0, 25.0),
|
|
inactiveHighlightedCenterBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-center.png", 1.0, 25.0),
|
|
inactiveHighlightedDividerBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-divider.png", 1.0, 25.0),
|
|
inactiveHighlightedLeftBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-left.png", 4.0, 25.0),
|
|
inactiveHighlightedRightBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-right.png", 4.0, 25.0),
|
|
leftBezelColor = PatternColor("segmented-control-bezel-left.png", 4.0, 25.0),
|
|
rightBezelColor = PatternColor("segmented-control-bezel-right.png", 4.0, 25.0),
|
|
pushedCenterBezelColor = PatternColor("segmented-control-bezel-pushed-center.png", 1.0, 25.0),
|
|
pushedLeftBezelColor = PatternColor("segmented-control-bezel-pushed-left.png", 4.0, 25.0),
|
|
pushedRightBezelColor = PatternColor("segmented-control-bezel-pushed-right.png", 4.0, 25.0),
|
|
pushedHighlightedCenterBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-center.png", 1.0, 25.0),
|
|
pushedHighlightedLeftBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-left.png", 4.0, 25.0),
|
|
pushedHighlightedRightBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-right.png", 4.0, 25.0);
|
|
|
|
var smallCenterBezelColor = PatternColor("segmented-control-bezel-center.png", 1.0, 20.0),
|
|
smallDividerBezelColor = PatternColor("segmented-control-bezel-divider.png", 1.0, 20.0),
|
|
smallCenterHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-center.png", 1.0, 20.0),
|
|
smallDividerHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-divider.png", 1.0, 20.0),
|
|
smallLeftHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-left.png", 4.0, 20.0),
|
|
smallRightHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-right.png", 4.0, 20.0),
|
|
smallInactiveCenterBezelColor = PatternColor("segmented-control-bezel-disabled-center.png", 1.0, 20.0),
|
|
smallInactiveDividerBezelColor = PatternColor("segmented-control-bezel-disabled-divider.png", 1.0, 20.0),
|
|
smallInactiveLeftBezelColor = PatternColor("segmented-control-bezel-disabled-left.png", 4.0, 20.0),
|
|
smallInactiveRightBezelColor = PatternColor("segmented-control-bezel-disabled-right.png", 4.0, 20.0),
|
|
smallInactiveHighlightedCenterBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-center.png", 1.0, 20.0),
|
|
smallInactiveHighlightedDividerBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-divider.png", 1.0, 20.0),
|
|
smallInactiveHighlightedLeftBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-left.png", 4.0, 20.0),
|
|
smallInactiveHighlightedRightBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-right.png", 4.0, 20.0),
|
|
smallLeftBezelColor = PatternColor("segmented-control-bezel-left.png", 4.0, 20.0),
|
|
smallRightBezelColor = PatternColor("segmented-control-bezel-right.png", 4.0, 20.0),
|
|
smallPushedCenterBezelColor = PatternColor("segmented-control-bezel-pushed-center.png", 1.0, 20.0),
|
|
smallPushedLeftBezelColor = PatternColor("segmented-control-bezel-pushed-left.png", 4.0, 20.0),
|
|
smallPushedRightBezelColor = PatternColor("segmented-control-bezel-pushed-right.png", 4.0, 20.0),
|
|
smallPushedHighlightedCenterBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-center.png", 1.0, 20.0),
|
|
smallPushedHighlightedLeftBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-left.png", 4.0, 20.0),
|
|
smallPushedHighlightedRightBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-right.png", 4.0, 20.0);
|
|
|
|
var miniCenterBezelColor = PatternColor("segmented-control-bezel-center.png", 1.0, 15.0),
|
|
miniDividerBezelColor = PatternColor("segmented-control-bezel-divider.png", 1.0, 15.0),
|
|
miniCenterHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-center.png", 1.0, 15.0),
|
|
miniDividerHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-divider.png", 1.0, 15.0),
|
|
miniLeftHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-left.png", 4.0, 15.0),
|
|
miniRightHighlightedBezelColor = PatternColor("segmented-control-bezel-highlighted-right.png", 4.0, 15.0),
|
|
miniInactiveCenterBezelColor = PatternColor("segmented-control-bezel-disabled-center.png", 1.0, 15.0),
|
|
miniInactiveDividerBezelColor = PatternColor("segmented-control-bezel-disabled-divider.png", 1.0, 15.0),
|
|
miniInactiveLeftBezelColor = PatternColor("segmented-control-bezel-disabled-left.png", 4.0, 15.0),
|
|
miniInactiveRightBezelColor = PatternColor("segmented-control-bezel-disabled-right.png", 4.0, 15.0),
|
|
miniInactiveHighlightedCenterBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-center.png", 1.0, 15.0),
|
|
miniInactiveHighlightedDividerBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-divider.png", 1.0, 15.0),
|
|
miniInactiveHighlightedLeftBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-left.png", 4.0, 15.0),
|
|
miniInactiveHighlightedRightBezelColor = PatternColor("segmented-control-bezel-highlighted-disabled-right.png", 4.0, 15.0),
|
|
miniLeftBezelColor = PatternColor("segmented-control-bezel-left.png", 4.0, 15.0),
|
|
miniRightBezelColor = PatternColor("segmented-control-bezel-right.png", 4.0, 15.0),
|
|
miniPushedCenterBezelColor = PatternColor("segmented-control-bezel-pushed-center.png", 1.0, 15.0),
|
|
miniPushedLeftBezelColor = PatternColor("segmented-control-bezel-pushed-left.png", 4.0, 15.0),
|
|
miniPushedRightBezelColor = PatternColor("segmented-control-bezel-pushed-right.png", 4.0, 15.0),
|
|
miniPushedHighlightedCenterBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-center.png", 1.0, 15.0),
|
|
miniPushedHighlightedLeftBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-left.png", 4.0, 15.0),
|
|
miniPushedHighlightedRightBezelColor = PatternColor("segmented-control-bezel-pushed-highlighted-right.png", 4.0, 15.0);
|
|
|
|
themedSegmentedControlValues =
|
|
[
|
|
[@"center-segment-bezel-color", centerBezelColor, CPThemeStateNormal],
|
|
[@"center-segment-bezel-color", inactiveCenterBezelColor, CPThemeStateDisabled],
|
|
[@"center-segment-bezel-color", inactiveHighlightedCenterBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"center-segment-bezel-color", centerHighlightedBezelColor, CPThemeStateSelected],
|
|
[@"center-segment-bezel-color", pushedCenterBezelColor, CPThemeStateHighlighted],
|
|
[@"center-segment-bezel-color", pushedHighlightedCenterBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"divider-bezel-color", dividerBezelColor, CPThemeStateNormal],
|
|
[@"divider-bezel-color", inactiveDividerBezelColor, CPThemeStateDisabled],
|
|
[@"divider-bezel-color", inactiveHighlightedDividerBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"divider-bezel-color", dividerHighlightedBezelColor, CPThemeStateSelected],
|
|
|
|
[@"left-segment-bezel-color", leftBezelColor, CPThemeStateNormal],
|
|
[@"left-segment-bezel-color", inactiveLeftBezelColor, CPThemeStateDisabled],
|
|
[@"left-segment-bezel-color", inactiveHighlightedLeftBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"left-segment-bezel-color", leftHighlightedBezelColor, CPThemeStateSelected],
|
|
[@"left-segment-bezel-color", pushedLeftBezelColor, CPThemeStateHighlighted],
|
|
[@"left-segment-bezel-color", pushedHighlightedLeftBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"right-segment-bezel-color", rightBezelColor, CPThemeStateNormal],
|
|
[@"right-segment-bezel-color", inactiveRightBezelColor, CPThemeStateDisabled],
|
|
[@"right-segment-bezel-color", inactiveHighlightedRightBezelColor, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"right-segment-bezel-color", rightHighlightedBezelColor, CPThemeStateSelected],
|
|
[@"right-segment-bezel-color", pushedRightBezelColor, CPThemeStateHighlighted],
|
|
[@"right-segment-bezel-color", pushedHighlightedRightBezelColor, [CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
|
|
[@"center-segment-bezel-color", smallCenterBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"center-segment-bezel-color", smallInactiveCenterBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"center-segment-bezel-color", smallInactiveHighlightedCenterBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"center-segment-bezel-color", smallCenterHighlightedBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
[@"center-segment-bezel-color", smallPushedCenterBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted]],
|
|
[@"center-segment-bezel-color", smallPushedHighlightedCenterBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"divider-bezel-color", smallDividerBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"divider-bezel-color", smallInactiveDividerBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"divider-bezel-color", smallInactiveHighlightedDividerBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"divider-bezel-color", smallDividerHighlightedBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
|
|
[@"left-segment-bezel-color", smallLeftBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"left-segment-bezel-color", smallInactiveLeftBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"left-segment-bezel-color", smallInactiveHighlightedLeftBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"left-segment-bezel-color", smallLeftHighlightedBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
[@"left-segment-bezel-color", smallPushedLeftBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted]],
|
|
[@"left-segment-bezel-color", smallPushedHighlightedLeftBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"right-segment-bezel-color", smallRightBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"right-segment-bezel-color", smallInactiveRightBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"right-segment-bezel-color", smallInactiveHighlightedRightBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"right-segment-bezel-color", smallRightHighlightedBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
[@"right-segment-bezel-color", smallPushedRightBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted]],
|
|
[@"right-segment-bezel-color", smallPushedHighlightedRightBezelColor, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
|
|
[@"center-segment-bezel-color", miniCenterBezelColor, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"center-segment-bezel-color", miniInactiveCenterBezelColor, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"center-segment-bezel-color", miniInactiveHighlightedCenterBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"center-segment-bezel-color", miniCenterHighlightedBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
[@"center-segment-bezel-color", miniPushedCenterBezelColor, [CPThemeStateControlSizeMini, CPThemeStateHighlighted]],
|
|
[@"center-segment-bezel-color", miniPushedHighlightedCenterBezelColor, [CPThemeStateControlSizeMini, CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"divider-bezel-color", miniDividerBezelColor, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"divider-bezel-color", miniInactiveDividerBezelColor, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"divider-bezel-color", miniInactiveHighlightedDividerBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"divider-bezel-color", miniDividerHighlightedBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
|
|
[@"left-segment-bezel-color", miniLeftBezelColor, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"left-segment-bezel-color", miniInactiveLeftBezelColor, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"left-segment-bezel-color", miniInactiveHighlightedLeftBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"left-segment-bezel-color", miniLeftHighlightedBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
[@"left-segment-bezel-color", miniPushedLeftBezelColor, [CPThemeStateControlSizeMini, CPThemeStateHighlighted]],
|
|
[@"left-segment-bezel-color", miniPushedHighlightedLeftBezelColor, [CPThemeStateControlSizeMini, CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"right-segment-bezel-color", miniRightBezelColor, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"right-segment-bezel-color", miniInactiveRightBezelColor, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"right-segment-bezel-color", miniInactiveHighlightedRightBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"right-segment-bezel-color", miniRightHighlightedBezelColor, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
[@"right-segment-bezel-color", miniPushedRightBezelColor, [CPThemeStateControlSizeMini, CPThemeStateHighlighted]],
|
|
[@"right-segment-bezel-color", miniPushedHighlightedRightBezelColor, [CPThemeStateControlSizeMini, CPThemeStateHighlighted, CPThemeStateSelected]],
|
|
|
|
[@"content-inset", CGInsetMake(0.0, 4.0, 0.0, 4.0), CPThemeStateNormal],
|
|
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal],
|
|
|
|
[@"min-size", CGSizeMake(-1.0, 25.0)],
|
|
[@"max-size", CGSizeMake(-1.0, 25.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 2.0, -4.0, 1.0)],
|
|
|
|
[@"min-size", CGSizeMake(-1.0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1.0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(2.0, 0.0, -5.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
[@"min-size", CGSizeMake(-1.0, 15.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1.0, 15.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(1.0, 0.0, -2.0, 0.0), CPThemeStateControlSizeMini],
|
|
|
|
[@"font", [CPFont boldSystemFontOfSize:12.0]],
|
|
[@"text-color", regularTextColor],
|
|
[@"text-color", regularDisabledTextColor, CPThemeStateDisabled],
|
|
|
|
// The "default" button state is the same theme color as the "selected" segmented control state, so we can use
|
|
// the same text theme values.
|
|
[@"text-color", defaultTextColor, CPThemeStateSelected],
|
|
[@"text-color", defaultDisabledTextColor, [CPThemeStateDisabled, CPThemeStateSelected]],
|
|
[@"text-shadow-color", regularTextShadowColor],
|
|
[@"text-shadow-color", regularDisabledTextShadowColor, CPThemeStateDisabled],
|
|
[@"text-shadow-color", defaultDisabledTextShadowColor, [CPThemeStateDisabled, CPThemeStateSelected]],
|
|
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.2], CPThemeStateSelected],
|
|
[@"text-shadow-offset", CGSizeMake(0.0, 1.0)],
|
|
[@"text-shadow-offset", CGSizeMake(0.0, 1.0), CPThemeStateSelected],
|
|
[@"text-shadow-offset", CGSizeMake(0.0, 0.0), [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"line-break-mode", CPLineBreakByTruncatingTail],
|
|
|
|
[@"divider-thickness", 1.0]
|
|
];
|
|
|
|
[self registerThemeValues:themedSegmentedControlValues forView:segmentedControl];
|
|
|
|
return segmentedControl;
|
|
}
|
|
|
|
+ (CPSlider)makeHorizontalSlider
|
|
{
|
|
return [[CPSlider alloc] initWithFrame:CGRectMake(0.0, 0.0, 50.0, 24.0)];
|
|
}
|
|
|
|
+ (CPSlider)themedHorizontalSlider
|
|
{
|
|
var slider = [self makeHorizontalSlider],
|
|
|
|
trackColor = PatternColor(
|
|
"horizontal-track{state}{position}.png",
|
|
{
|
|
states: ["", "disabled"],
|
|
width: 2.0,
|
|
height: 5.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
knobColor = PatternColor("knob.png", 21.0, 21.0),
|
|
knobHighlightedColor = PatternColor("knob-highlighted.png", 21.0, 21.0),
|
|
knobDisabledColor = PatternColor("knob-disabled.png", 20.0, 21.0);
|
|
|
|
// Gobal
|
|
themedHorizontalSliderValues =
|
|
[
|
|
[@"track-width", 5.0],
|
|
[@"track-color", trackColor["@"]],
|
|
[@"track-color", trackColor["disabled"], CPThemeStateDisabled],
|
|
|
|
[@"knob-size", CGSizeMake(21.0, 21.0)],
|
|
[@"knob-color", knobColor],
|
|
[@"knob-color", knobHighlightedColor, CPThemeStateHighlighted],
|
|
[@"knob-color", knobDisabledColor, CPThemeStateDisabled]
|
|
];
|
|
|
|
[self registerThemeValues:themedHorizontalSliderValues forView:slider];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPSlider)makeVerticalSlider
|
|
{
|
|
return [[CPSlider alloc] initWithFrame:CGRectMake(0.0, 0.0, 24.0, 50.0)];
|
|
}
|
|
|
|
+ (CPSlider)themedVerticalSlider
|
|
{
|
|
var slider = [self makeVerticalSlider],
|
|
|
|
trackColor = PatternColor(
|
|
"vertical-track{position}.png",
|
|
{
|
|
width: 5.0,
|
|
height: 3.0,
|
|
orientation: PatternIsVertical
|
|
}),
|
|
|
|
trackDisabledColor = PatternColor(
|
|
"vertical-track-disabled{position}.png",
|
|
{
|
|
width: 5.0,
|
|
height: 6.0,
|
|
bottomHeight: 4.0,
|
|
orientation: PatternIsVertical
|
|
}),
|
|
|
|
knobColor = PatternColor("knob.png", 21.0, 21.0),
|
|
knobHighlightedColor = PatternColor("knob-highlighted.png", 21.0, 21.0),
|
|
knobDisabledColor = PatternColor("knob-disabled.png", 21.0, 21.0);
|
|
|
|
themedVerticalSliderValues =
|
|
[
|
|
[@"track-width", 5.0],
|
|
[@"track-color", trackColor, CPThemeStateVertical],
|
|
[@"track-color", trackDisabledColor, [CPThemeStateVertical, CPThemeStateDisabled]],
|
|
|
|
[@"knob-size", CGSizeMake(21.0, 21.0)],
|
|
[@"knob-color", knobColor],
|
|
[@"knob-color", knobHighlightedColor, CPThemeStateHighlighted],
|
|
[@"knob-color", knobDisabledColor, CPThemeStateDisabled]
|
|
];
|
|
|
|
[self registerThemeValues:themedVerticalSliderValues forView:slider];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPSlider)makeCircularSlider
|
|
{
|
|
var slider = [[CPSlider alloc] initWithFrame:CGRectMake(0.0, 0.0, 30.0, 30.0)];
|
|
|
|
[slider setSliderType:CPCircularSlider];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPSlider)themedCircularSlider
|
|
{
|
|
var slider = [self makeCircularSlider],
|
|
|
|
trackColor = PatternColor("slider-circular-bezel.png", 30.0, 30.0),
|
|
trackDisabledColor = PatternColor("slider-circular-disabled-bezel.png", 30.0, 30.0),
|
|
knobColor = PatternColor("slider-circular-knob.png", 5.0, 5.0),
|
|
knobDisabledColor = PatternColor("slider-circular-disabled-knob.png", 5.0, 5.0),
|
|
knobHighlightedColor = knobColor;
|
|
|
|
themedCircularSliderValues =
|
|
[
|
|
[@"track-color", trackColor, CPThemeStateCircular],
|
|
[@"track-color", trackDisabledColor, [CPThemeStateCircular, CPThemeStateDisabled]],
|
|
|
|
[@"knob-size", CGSizeMake(5.0, 5.0), CPThemeStateCircular],
|
|
[@"knob-color", knobColor, CPThemeStateCircular],
|
|
[@"knob-color", knobHighlightedColor, [CPThemeStateCircular, CPThemeStateHighlighted]],
|
|
[@"knob-color", knobDisabledColor, [CPThemeStateCircular, CPThemeStateDisabled]]
|
|
];
|
|
|
|
[self registerThemeValues:themedCircularSliderValues forView:slider];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPButtonBar)makeButtonBar
|
|
{
|
|
var buttonBar = [[CPButtonBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 147.0, 26.0)];
|
|
|
|
[buttonBar setHasResizeControl:YES];
|
|
|
|
var popup = [CPButtonBar actionPopupButton];
|
|
[popup addItemWithTitle:"Item 1"];
|
|
[popup addItemWithTitle:"Item 2"];
|
|
|
|
[buttonBar setButtons:[[CPButtonBar plusButton], [CPButtonBar minusButton], popup]];
|
|
|
|
return buttonBar;
|
|
}
|
|
|
|
+ (CPButtonBar)themedButtonBar
|
|
{
|
|
var buttonBar = [self makeButtonBar],
|
|
color = PatternColor("buttonbar-bezel.png", 1.0, 26.0),
|
|
resizeColor = PatternColor("buttonbar-resize-control.png", 5.0, 10.0),
|
|
buttonBezelColor = PatternColor(
|
|
"buttonbar-button-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 2.0,
|
|
height: 25.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
buttonImagePlus = PatternImage("buttonbar-image-plus.png", 11.0, 12.0),
|
|
buttonImageMinus = PatternImage("buttonbar-image-minus.png", 11.0, 4.0),
|
|
buttonImageAction = PatternImage("buttonbar-image-action.png", 22.0, 14.0),
|
|
|
|
themedButtonBarValues =
|
|
[
|
|
[@"bezel-color", color],
|
|
|
|
[@"resize-control-size", CGSizeMake(5.0, 10.0)],
|
|
[@"resize-control-inset", CGInsetMake(9.0, 4.0, 7.0, 4.0)],
|
|
[@"resize-control-color", resizeColor],
|
|
|
|
[@"button-bezel-color", buttonBezelColor["@"]],
|
|
[@"button-bezel-color", buttonBezelColor["highlighted"], CPThemeStateHighlighted],
|
|
[@"button-bezel-color", buttonBezelColor["disabled"], CPThemeStateDisabled],
|
|
[@"button-text-color", [CPColor blackColor]],
|
|
|
|
[@"button-image-plus", buttonImagePlus],
|
|
[@"button-image-minus", buttonImageMinus],
|
|
[@"button-image-action", buttonImageAction]
|
|
];
|
|
|
|
[self registerThemeValues:themedButtonBarValues forView:buttonBar];
|
|
|
|
return buttonBar;
|
|
}
|
|
|
|
+ (_CPTableColumnHeaderView)makeColumnHeader
|
|
{
|
|
var header = [[_CPTableColumnHeaderView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 25.0)];
|
|
|
|
[header setStringValue:@"Table Header"];
|
|
|
|
return header;
|
|
}
|
|
|
|
+ (_CPTableColumnHeaderView)themedColumnHeader
|
|
{
|
|
var header = [self makeColumnHeader],
|
|
highlightedPressed = PatternColor("tableview-headerview-highlighted-pressed.png", 1.0, 25.0),
|
|
highlighted = PatternColor("tableview-headerview-highlighted.png", 1.0, 25.0),
|
|
pressed = PatternColor("tableview-headerview-pressed.png", 1.0, 25.0),
|
|
normal = PatternColor("tableview-headerview.png", 1.0, 25.0),
|
|
|
|
themedColumnHeaderValues =
|
|
[
|
|
[@"background-color", normal],
|
|
|
|
[@"text-inset", CGInsetMake(0, 5, 0, 5)],
|
|
[@"text-color", [CPColor colorWithHexString:@"808080"]],
|
|
[@"font", [CPFont boldSystemFontOfSize:11.0]],
|
|
[@"text-shadow-color", [CPColor whiteColor]],
|
|
[@"text-shadow-offset", CGSizeMake(0.0, 1.0)],
|
|
[@"text-alignment", CPLeftTextAlignment],
|
|
[@"line-break-mode", CPLineBreakByTruncatingTail],
|
|
|
|
[@"background-color", pressed, CPThemeStateHighlighted],
|
|
[@"background-color", highlighted, CPThemeStateSelected],
|
|
[@"background-color", highlightedPressed, [CPThemeStateHighlighted, CPThemeStateSelected]]
|
|
];
|
|
|
|
[self registerThemeValues:themedColumnHeaderValues forView:header];
|
|
|
|
return header;
|
|
}
|
|
|
|
+ (CPTableHeaderView)themedTableHeaderRow
|
|
{
|
|
var header = [[CPTableHeaderView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 25.0)],
|
|
normal = PatternColor("tableview-headerview.png", 1.0, 25.0),
|
|
gridColor = [CPColor colorWithHexString:@"cccccc"];
|
|
|
|
[header setValue:normal forThemeAttribute:@"background-color"];
|
|
[header setValue:gridColor forThemeAttribute:@"divider-color"];
|
|
|
|
return header;
|
|
}
|
|
|
|
+ (_CPCornerView)themedCornerview
|
|
{
|
|
var scrollerWidth = [CPScroller scrollerWidth],
|
|
corner = [[_CPCornerView alloc] initWithFrame:CGRectMake(0.0, 0.0, scrollerWidth, 25.0)],
|
|
normal = PatternColor("tableview-headerview.png", 1.0, 25.0),
|
|
dividerColor = [CPColor colorWithHexString:@"cccccc"];
|
|
|
|
[corner setValue:normal forThemeAttribute:"background-color"];
|
|
[corner setValue:dividerColor forThemeAttribute:"divider-color"];
|
|
|
|
return corner;
|
|
}
|
|
|
|
+ (CPTableView)themedTableView
|
|
{
|
|
// This is a bit more complicated than the rest because we actually set theme values for several different (table related) controls in this method
|
|
|
|
var tableview = [[CPTableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 150.0, 150.0)],
|
|
sortImage = PatternImage("tableview-headerview-ascending.png", 9.0, 8.0),
|
|
sortImageReversed = PatternImage("tableview-headerview-descending.png", 9.0, 8.0),
|
|
imageGenericFile = PatternImage("tableview-image-generic-file.png", 64.0, 64.0),
|
|
alternatingRowColors = [[CPColor whiteColor], [CPColor colorWithRed:245.0 / 255.0 green:249.0 / 255.0 blue:252.0 / 255.0 alpha:1.0]],
|
|
gridColor = [CPColor colorWithHexString:@"dce0e2"],
|
|
selectionColor = [CPColor colorWithHexString:@"5780d8"],
|
|
sourceListSelectionColor = @{
|
|
CPSourceListGradient: CGGradientCreateWithColorComponents(
|
|
CGColorSpaceCreateDeviceRGB(),
|
|
[109.0 / 255.0, 150.0 / 255.0, 238.0 / 255.0, 1.0, 72.0 / 255.0, 113.0 / 255.0, 201.0 / 255.0, 1.0],
|
|
[0, 1],
|
|
2
|
|
),
|
|
CPSourceListTopLineColor: [CPColor colorWithCalibratedRed:70.0 / 255.0 green:107.0 / 255.0 blue:215.0 / 255.0 alpha:1.0],
|
|
CPSourceListBottomLineColor: [CPColor colorWithCalibratedRed:42.0 / 255.0 green:74.0 / 255.0 blue:177.0 / 255.0 alpha:1.0]
|
|
},
|
|
|
|
themedTableViewValues =
|
|
[
|
|
[@"alternating-row-colors", alternatingRowColors],
|
|
[@"grid-color", gridColor],
|
|
[@"highlighted-grid-color", [CPColor whiteColor]],
|
|
[@"selection-color", selectionColor],
|
|
[@"sourcelist-selection-color", sourceListSelectionColor],
|
|
[@"sort-image", sortImage],
|
|
[@"sort-image-reversed", sortImageReversed],
|
|
[@"image-generic-file", imageGenericFile],
|
|
[@"default-row-height", 25.0],
|
|
|
|
[@"dropview-on-background-color", [CPColor colorWithRed:72 / 255 green:134 / 255 blue:202 / 255 alpha:0.25]],
|
|
[@"dropview-on-border-color", [CPColor colorWithHexString:@"4886ca"]],
|
|
[@"dropview-on-border-width", 3.0],
|
|
[@"dropview-on-border-radius", 8.0],
|
|
|
|
[@"dropview-on-selected-background-color", [CPColor clearColor]],
|
|
[@"dropview-on-selected-border-color", [CPColor whiteColor]],
|
|
[@"dropview-on-selected-border-width", 2.0],
|
|
[@"dropview-on-selected-border-radius", 8.0],
|
|
|
|
[@"dropview-above-border-color", [CPColor colorWithHexString:@"4886ca"]],
|
|
[@"dropview-above-border-width", 3.0],
|
|
|
|
[@"dropview-above-selected-border-color", [CPColor colorWithHexString:@"8BB6F0"]],
|
|
[@"dropview-above-selected-border-width", 2.0],
|
|
];
|
|
|
|
[tableview setUsesAlternatingRowBackgroundColors:YES];
|
|
[self registerThemeValues:themedTableViewValues forView:tableview];
|
|
|
|
return tableview;
|
|
}
|
|
|
|
+ (CPTextField)themedTableDataView
|
|
{
|
|
var view = [self themedStandardTextField];
|
|
|
|
[view setBezeled:NO];
|
|
[view setEditable:NO];
|
|
[view setThemeState:CPThemeStateTableDataView];
|
|
|
|
return view;
|
|
}
|
|
|
|
+ (CPSplitView)themedSplitView
|
|
{
|
|
var splitView = [[CPSplitView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 200.0)],
|
|
leftView = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, 75.0, 150.0)],
|
|
rightView = [[CPView alloc] initWithFrame:CGRectMake(75.0, 0.0, 75.0, 150.0)],
|
|
horizontalDividerColor = PatternImage("splitview-divider-horizontal.png", 5.0, 10.0),
|
|
verticalDividerColor = PatternImage("splitview-divider-vertical.png", 10.0, 5.0);
|
|
|
|
[splitView addSubview:leftView];
|
|
[splitView addSubview:rightView];
|
|
[splitView setIsPaneSplitter:YES];
|
|
|
|
var themedSplitViewValues =
|
|
[
|
|
[@"divider-thickness", 1.0],
|
|
[@"pane-divider-thickness", 10.0],
|
|
[@"pane-divider-color", [CPColor colorWithRed:165.0 / 255.0 green:165.0 / 255.0 blue:165.0 / 255.0 alpha:1.0]],
|
|
[@"horizontal-divider-color", horizontalDividerColor],
|
|
[@"vertical-divider-color", verticalDividerColor]
|
|
];
|
|
|
|
[self registerThemeValues:themedSplitViewValues forView:splitView];
|
|
|
|
return splitView;
|
|
}
|
|
|
|
+ (CPAlert)themedAlert
|
|
{
|
|
var alert = [CPAlert new],
|
|
buttonOffset = 10.0,
|
|
defaultElementsMargin = 3.0,
|
|
errorIcon = PatternImage("alert-error.png", 53.0, 46.0),
|
|
helpIcon = PatternImage("alert-help.png", 24.0, 24.0),
|
|
helpIconPressed = PatternImage("alert-help-pressed.png", 24.0, 24.0),
|
|
helpLeftOffset = 15,
|
|
imageOffset = CGPointMake(15, 18),
|
|
informationIcon = PatternImage("alert-info.png", 53.0, 46.0),
|
|
informativeFont = [CPFont systemFontOfSize:CPFontCurrentSystemSize],
|
|
inset = CGInsetMake(15, 15, 15, 80),
|
|
messageFont = [CPFont boldSystemFontOfSize:CPFontDefaultSystemFontSize + 1],
|
|
size = CGSizeMake(400.0, 120.0),
|
|
suppressionButtonXOffset = 2.0,
|
|
suppressionButtonYOffset = 10.0,
|
|
suppressionButtonFont = [CPFont systemFontOfSize:CPFontCurrentSystemSize],
|
|
warningIcon = PatternImage("alert-warning.png", 48.0, 43.0);
|
|
|
|
// Global
|
|
themedAlertValues =
|
|
[
|
|
[@"button-offset", buttonOffset],
|
|
[@"content-inset", inset],
|
|
[@"default-elements-margin", defaultElementsMargin],
|
|
[@"error-image", errorIcon],
|
|
[@"help-image", helpIcon],
|
|
[@"help-image-left-offset", helpLeftOffset],
|
|
[@"help-image-pressed", helpIconPressed],
|
|
[@"image-offset", imageOffset],
|
|
[@"information-image", informationIcon],
|
|
[@"informative-text-alignment", CPJustifiedTextAlignment],
|
|
[@"informative-text-color", [CPColor blackColor]],
|
|
[@"informative-text-font", informativeFont],
|
|
[@"message-text-alignment", CPJustifiedTextAlignment],
|
|
[@"message-text-color", [CPColor blackColor]],
|
|
[@"message-text-font", messageFont],
|
|
[@"modal-window-button-margin-x", -18.0],
|
|
[@"modal-window-button-margin-y", 15.0],
|
|
[@"suppression-button-text-color", [CPColor blackColor]],
|
|
[@"suppression-button-text-font", suppressionButtonFont],
|
|
[@"size", size],
|
|
[@"suppression-button-x-offset", suppressionButtonXOffset],
|
|
[@"suppression-button-y-offset", suppressionButtonYOffset],
|
|
[@"warning-image", warningIcon]
|
|
];
|
|
|
|
[self registerThemeValues:themedAlertValues forView:alert];
|
|
|
|
return [alert themeView];
|
|
}
|
|
|
|
+ (CPStepper)themedStepper
|
|
{
|
|
var stepper = [CPStepper stepper],
|
|
|
|
regularBezelUp = PatternColor(
|
|
"stepper-bezel-big{state}-up{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 4.0,
|
|
height: 13.0,
|
|
centerWidth: 17.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
regularBezelDown = PatternColor(
|
|
"stepper-bezel-big{state}-down{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 4.0,
|
|
height: 12.0,
|
|
centerWidth: 17.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelUp = PatternColor(
|
|
"stepper-bezel-big{state}-up{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 3.0,
|
|
height: 11.0,
|
|
centerWidth: 14.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
smallBezelDown = PatternColor(
|
|
"stepper-bezel-big{state}-down{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 3.0,
|
|
height: 10.0,
|
|
centerWidth: 14.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniBezelUp = PatternColor(
|
|
"stepper-bezel-big{state}-up{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 2.0,
|
|
height: 8.0,
|
|
centerWidth: 10.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
miniBezelDown = PatternColor(
|
|
"stepper-bezel-big{state}-down{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 2.0,
|
|
height: 7.0,
|
|
centerWidth: 10.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
// CPThemeStateControlSizeRegular
|
|
[@"bezel-color-up-button", regularBezelUp["@"], [CPThemeStateBordered]],
|
|
[@"bezel-color-down-button", regularBezelDown["@"], [CPThemeStateBordered]],
|
|
[@"bezel-color-up-button", regularBezelUp["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"bezel-color-down-button", regularBezelDown["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]],
|
|
[@"bezel-color-up-button", regularBezelUp["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
[@"bezel-color-down-button", regularBezelDown["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
|
|
[@"up-button-size", CGSizeMake(25.0, 13.0)],
|
|
[@"down-button-size", CGSizeMake(25.0, 12.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(3.0, -25.0, 0.0, 0.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],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(3.0, -21.0, 0.0, 0.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]],
|
|
|
|
[@"up-button-size", CGSizeMake(14.0, 8.0), CPThemeStateControlSizeMini],
|
|
[@"down-button-size", CGSizeMake(14.0, 7.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(3.0, -14.0, 0.0, 0.0), CPThemeStateControlSizeMini],
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:stepper];
|
|
|
|
return stepper;
|
|
}
|
|
|
|
+ (CPRuleEditor)themedRuleEditor
|
|
{
|
|
var ruleEditor = [[CPRuleEditor alloc] initWithFrame:CGRectMake(0.0, 0.0, 400.0, 300.0)],
|
|
backgroundColors = [[CPColor whiteColor], [CPColor colorWithRed:235 / 255 green:239 / 255 blue:252 / 255 alpha:1]],
|
|
selectedActiveRowColor = [CPColor colorWithHexString:@"5f83b9"],
|
|
selectedInactiveRowColor = [CPColor colorWithWhite:0.83 alpha:1],
|
|
sliceTopBorderColor = [CPColor colorWithWhite:0.9 alpha:1.0],
|
|
sliceBottomBorderColor = [CPColor colorWithWhite:0.729412 alpha:1.0],
|
|
sliceLastBottomBorderColor = [CPColor colorWithWhite:0.6 alpha:1.0],
|
|
buttonAddImage = PatternImage(@"rule-editor-button-add-image.png", 20.0, 20.0),
|
|
buttonRemoveImage = PatternImage(@"rule-editor-button-remove-image.png", 20.0, 20.0),
|
|
buttonAddHighlightedImage = PatternImage(@"rule-editor-button-add-highlighted-image.png", 20.0, 20.0),
|
|
buttonRemoveHighlightedImage = PatternImage(@"rule-editor-button-remove-highlighted-image.png", 20.0, 20.0),
|
|
fontColor = [CPColor colorWithWhite:150 / 255 alpha:1],
|
|
|
|
ruleEditorThemedValues =
|
|
[
|
|
[@"alternating-row-colors", backgroundColors],
|
|
[@"selected-color", selectedActiveRowColor, CPThemeStateNormal],
|
|
[@"selected-color", selectedInactiveRowColor, CPThemeStateDisabled],
|
|
[@"slice-top-border-color", sliceTopBorderColor],
|
|
[@"slice-bottom-border-color", sliceBottomBorderColor],
|
|
[@"slice-last-bottom-border-color", sliceLastBottomBorderColor],
|
|
[@"font", [CPFont systemFontOfSize:10.0]],
|
|
[@"font-color", fontColor],
|
|
[@"add-image", buttonAddImage, CPThemeStateNormal],
|
|
[@"add-image", buttonAddHighlightedImage, CPThemeStateHighlighted],
|
|
[@"remove-image", buttonRemoveImage, CPThemeStateNormal],
|
|
[@"remove-image", buttonRemoveHighlightedImage, CPThemeStateHighlighted],
|
|
[@"vertical-alignment", CPCenterVerticalTextAlignment],
|
|
];
|
|
|
|
[self registerThemeValues:ruleEditorThemedValues forView:ruleEditor];
|
|
|
|
return ruleEditor;
|
|
}
|
|
|
|
+ (_CPToolTipWindowView)themedTooltip
|
|
{
|
|
var toolTipView = [[_CPToolTipWindowView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 100.0) styleMask:_CPToolTipWindowMask],
|
|
|
|
themeValues =
|
|
[
|
|
[@"stroke-color", [CPColor colorWithHexString:@"B0B0B0"]],
|
|
[@"stroke-width", 1.0],
|
|
[@"border-radius", 2.0],
|
|
[@"background-color", [CPColor colorWithHexString:@"FFFFCA"]],
|
|
[@"color", [CPColor blackColor]]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:toolTipView];
|
|
|
|
return toolTipView;
|
|
}
|
|
|
|
+ (CPColorWell)themedColorWell
|
|
{
|
|
// The CPColorPanel CPColorWell depends on requires CPApp.
|
|
[CPApplication sharedApplication];
|
|
|
|
var colorWell = [[CPColorWell alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 24.0)],
|
|
|
|
bezelColor = PatternColor(
|
|
"colorwell-bezel{state}{position}.png",
|
|
{
|
|
states: ["", "highlighted", "disabled"],
|
|
width: 3.0,
|
|
height: 24.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
contentBorderColor = PatternColor(
|
|
"colorwell-content-border{position}.png",
|
|
{
|
|
width: 1.0,
|
|
height: 15.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
themedColorWellValues = [
|
|
[@"bezel-color", bezelColor["@"], CPThemeStateBordered],
|
|
[@"content-inset", CGInsetMake(5.0, 5.0, 5.0, 5.0), CPThemeStateBordered],
|
|
[@"content-border-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBordered],
|
|
[@"content-border-color", contentBorderColor, CPThemeStateBordered],
|
|
|
|
[@"bezel-color", bezelColor["highlighted"], [CPThemeStateBordered, CPThemeStateHighlighted]],
|
|
|
|
[@"bezel-color", bezelColor["disabled"], [CPThemeStateBordered, CPThemeStateDisabled]]
|
|
];
|
|
|
|
[self registerThemeValues:themedColorWellValues forView:colorWell];
|
|
|
|
return colorWell;
|
|
}
|
|
|
|
+ (CPProgressIndicator)themedBarProgressIndicator
|
|
{
|
|
var progressBar = [[CPProgressIndicator alloc] initWithFrame:CGRectMake(0, 0, 75, 20)];
|
|
[progressBar setDoubleValue:30];
|
|
|
|
var bezelColor = PatternColor(
|
|
"progress-indicator-bezel-border{position}.png",
|
|
{
|
|
width: 1.0,
|
|
height: 20.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
barColor = PatternColor(
|
|
"progress-indicator-bar{position}.png",
|
|
{
|
|
width: 1.0,
|
|
height: 20.0,
|
|
orientation: PatternIsHorizontal
|
|
});
|
|
|
|
themedProgressIndicator =
|
|
[
|
|
[@"bezel-color", bezelColor],
|
|
[@"bar-color", barColor],
|
|
[@"default-height", 20]
|
|
];
|
|
|
|
[self registerThemeValues:themedProgressIndicator forView:progressBar];
|
|
|
|
return progressBar;
|
|
}
|
|
|
|
+ (CPProgressIndicator)themedIndeterminateBarProgressIndicator
|
|
{
|
|
var progressBar = [[CPProgressIndicator alloc] initWithFrame:CGRectMake(0, 0, 75, 20)];
|
|
|
|
[progressBar setIndeterminate:YES];
|
|
|
|
var bezelColor = PatternColor(
|
|
"progress-indicator-bezel-border{position}.png",
|
|
{
|
|
width: 1.0,
|
|
height: 20.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
barColor = PatternColor(
|
|
"progress-indicator-indeterminate-bar{position}.png",
|
|
{
|
|
width: 1.0,
|
|
height: 20.0,
|
|
centerWidth: 20.0,
|
|
orientation: PatternIsHorizontal
|
|
});
|
|
|
|
themedIndeterminateProgressIndicator =
|
|
[
|
|
[@"bezel-color", bezelColor],
|
|
[@"indeterminate-bar-color", barColor],
|
|
[@"default-height", 20]
|
|
];
|
|
|
|
[self registerThemeValues:themedIndeterminateProgressIndicator forView:progressBar];
|
|
|
|
return progressBar;
|
|
}
|
|
|
|
+ (CPProgressIndicator)themedSpinningProgressIndicator
|
|
{
|
|
var progressBar = [[CPProgressIndicator alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
|
|
[progressBar setStyle:CPProgressIndicatorSpinningStyle];
|
|
|
|
var spinningMini = PatternColor(@"progress-indicator-spinning-style-mini.gif", 16.0, 16.0),
|
|
spinningSmall = PatternColor(@"progress-indicator-spinning-style-small.gif", 32.0, 32.0),
|
|
spinningRegular = PatternColor(@"progress-indicator-spinning-style-regular.gif", 64.0, 64.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"spinning-mini-gif", spinningMini],
|
|
[@"spinning-small-gif", spinningSmall],
|
|
[@"spinning-regular-gif", spinningRegular]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:progressBar];
|
|
|
|
return progressBar;
|
|
}
|
|
|
|
+ (CPProgressIndicator)themedCircularProgressIndicator
|
|
{
|
|
var progressBar = [[CPProgressIndicator alloc] initWithFrame:CGRectMake(0, 0, 32, 32)];
|
|
[progressBar setStyle:CPProgressIndicatorSpinningStyle];
|
|
[progressBar setIndeterminate:NO];
|
|
|
|
var themeValues =
|
|
[
|
|
[@"circular-border-color", [CPColor colorWithHexString:@"A0A0A0"]],
|
|
[@"circular-border-size", 1],
|
|
[@"circular-color", [CPColor colorWithHexString:@"5982DA"]]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:progressBar];
|
|
|
|
return progressBar;
|
|
}
|
|
|
|
+ (CPBox)themedBox
|
|
{
|
|
var box = [[CPBox alloc] initWithFrame:CGRectMake(0, 0, 100, 100)],
|
|
|
|
themeValues =
|
|
[
|
|
[@"background-color", [CPColor colorWithHexString:@"E4E4E4"]],
|
|
[@"border-width", 1.0],
|
|
[@"border-color", [CPColor colorWithHexString:@"B7B7B7"]],
|
|
[@"corner-radius", 3.0],
|
|
[@"inner-shadow-offset", CGSizeMakeZero()],
|
|
[@"inner-shadow-color", [CPColor blackColor]],
|
|
[@"inner-shadow-size", 6.0],
|
|
[@"content-margin", CGSizeMakeZero()]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:box];
|
|
|
|
return box;
|
|
}
|
|
|
|
+ (CPLevelIndicator)themedLevelIndicator
|
|
{
|
|
var levelIndicator = [[CPLevelIndicator alloc] initWithFrame:CGRectMake(0, 0, 100, 100)],
|
|
|
|
bezelColor = PatternColor(
|
|
"level-indicator-bezel{position}.png",
|
|
{
|
|
width: 3.0,
|
|
height: 18.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
segmentColor = PatternColor(
|
|
"level-indicator-segment{state}{position}.png",
|
|
{
|
|
states: ["empty", "normal", "warning", "critical"],
|
|
width: 3.0,
|
|
height: 17.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
[@"bezel-color", bezelColor],
|
|
[@"color-empty", segmentColor["empty"]],
|
|
[@"color-normal", segmentColor["normal"]],
|
|
[@"color-warning", segmentColor["warning"]],
|
|
[@"color-critical", segmentColor["critical"]],
|
|
[@"spacing", 1.0]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:levelIndicator];
|
|
|
|
return levelIndicator;
|
|
}
|
|
|
|
+ (CPShadowView)themedShadowView
|
|
{
|
|
var shadowView = [[CPShadowView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100, 100)],
|
|
|
|
lightColor = PatternColor(
|
|
"shadow-view-light{position}.png",
|
|
{
|
|
width: 9.0,
|
|
height: 9.0,
|
|
centerIsNil: YES
|
|
}),
|
|
|
|
heavyColor = PatternColor(
|
|
"shadow-view-heavy{position}.png",
|
|
{
|
|
width: 17.0,
|
|
height: 17.0,
|
|
centerIsNil: YES
|
|
}),
|
|
|
|
themedShadowViewValues =
|
|
[
|
|
[@"bezel-color", lightColor, CPThemeStateShadowViewLight],
|
|
[@"bezel-color", heavyColor, CPThemeStateShadowViewHeavy],
|
|
|
|
[@"content-inset", CGInsetMake(3.0, 3.0, 5.0, 3.0), CPThemeStateShadowViewLight],
|
|
[@"content-inset", CGInsetMake(5.0, 7.0, 5.0, 7.0), CPThemeStateShadowViewHeavy]
|
|
];
|
|
|
|
[self registerThemeValues:themedShadowViewValues forView:shadowView];
|
|
|
|
return shadowView;
|
|
}
|
|
|
|
+ (CPBrowser)themedBrowser
|
|
{
|
|
var browser = [[CPBrowser alloc] initWithFrame:CGRectMake(0.0, 0.0, 100, 100.0)],
|
|
|
|
imageResize = PatternImage(@"browser-image-resize-control.png", 15.0, 14.0),
|
|
imageLeaf = PatternImage(@"browser-image-leaf.png", 9.0, 9.0),
|
|
imageLeafPressed = PatternImage(@"browser-image-leaf-pressed.png", 9.0, 9.0),
|
|
|
|
themedBrowser =
|
|
[
|
|
["image-control-resize", imageResize],
|
|
["image-control-leaf", imageLeaf],
|
|
["image-control-leaf-pressed", imageLeafPressed]
|
|
];
|
|
|
|
[self registerThemeValues:themedBrowser forView:browser];
|
|
|
|
return browser;
|
|
}
|
|
|
|
+ (_CPModalWindowView)themedModalWindowView
|
|
{
|
|
var modalWindowView = [[_CPModalWindowView alloc] initWithFrame:CGRectMake(0, 0, 200, 200) styleMask:_CPModalWindowView];
|
|
|
|
var bezelColor = PatternColor(
|
|
"window-popup{position}.png",
|
|
{
|
|
positions: "full",
|
|
width: 10.0,
|
|
height: 10.0,
|
|
bottomHeight: 71.0
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
[@"bezel-color", bezelColor]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:modalWindowView];
|
|
|
|
return modalWindowView;
|
|
}
|
|
|
|
+ (_CPWindowView)themedWindowView
|
|
{
|
|
var windowView = [[_CPWindowView alloc] initWithFrame:CGRectMakeZero(0.0, 0.0, 200, 200)],
|
|
|
|
sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 1, 8),
|
|
resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12),
|
|
|
|
shadowColor = PatternColor(
|
|
"window-shadow{position}.png",
|
|
{
|
|
positions: "#",
|
|
width: 20.0,
|
|
height: 19.0,
|
|
rightWidth: 19.0,
|
|
bottomHeight: 18.0
|
|
});
|
|
|
|
// Global
|
|
themedWindowViewValues =
|
|
[
|
|
[@"shadow-inset", CGInsetMake(10.0, 19.0, 10.0, 20.0)],
|
|
[@"shadow-distance", 5.0],
|
|
[@"window-shadow-color", shadowColor],
|
|
[@"resize-indicator", resizeIndicator],
|
|
[@"attached-sheet-shadow-color", sheetShadow],
|
|
[@"shadow-height", 8],
|
|
[@"size-indicator", CGSizeMake(12, 12)]
|
|
];
|
|
|
|
[self registerThemeValues:themedWindowViewValues forView:windowView];
|
|
|
|
return windowView;
|
|
}
|
|
|
|
+ (_CPHUDWindowView)themedHUDWindowView
|
|
{
|
|
var HUDWindowView = [[_CPHUDWindowView alloc] initWithFrame:CGRectMake(0, 0, 200, 200) styleMask:CPHUDBackgroundWindowMask | CPClosableWindowMask],
|
|
HUDBezelColor = PatternColor(
|
|
"HUD/window-bezel{position}.png",
|
|
{
|
|
positions: "full",
|
|
width: 5.0,
|
|
height: 5.0
|
|
}),
|
|
|
|
closeImage = PatternImage(@"HUD/window-close.png", 18.0, 18.0),
|
|
|
|
closeActiveImage = PatternImage(@"HUD/window-close-active.png", 18.0, 18.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"close-image-size", CGSizeMake(18.0, 18.0)],
|
|
[@"close-image-origin", CGPointMake(6.0,4.0)],
|
|
[@"close-image", closeImage],
|
|
[@"close-active-image", closeActiveImage],
|
|
[@"bezel-color", HUDBezelColor],
|
|
[@"title-font", [CPFont systemFontOfSize:14]],
|
|
[@"title-text-color", [CPColor colorWithWhite:255.0 / 255.0 alpha:1]],
|
|
[@"title-text-color", [CPColor colorWithWhite:255.0 / 255.0 alpha:1], CPThemeStateKeyWindow],
|
|
[@"title-text-color", [CPColor colorWithWhite:255.0 / 255.0 alpha:1], CPThemeStateMainWindow],
|
|
[@"title-text-shadow-color", [CPColor blackColor]],
|
|
[@"title-text-shadow-offset", CGSizeMake(0.0, 1.0)],
|
|
[@"title-alignment", CPCenterTextAlignment],
|
|
[@"title-line-break-mode", CPLineBreakByTruncatingTail],
|
|
[@"title-vertical-alignment", CPCenterVerticalTextAlignment],
|
|
[@"title-bar-height", 26]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:HUDWindowView inherit:themedWindowViewValues];
|
|
|
|
[HUDWindowView setTitle:@"HUDWindow"];
|
|
|
|
return HUDWindowView;
|
|
}
|
|
|
|
+ (_CPStandardWindowView)themedStandardWindowView
|
|
{
|
|
var standardWindowView = [[_CPStandardWindowView alloc] initWithFrame:CGRectMake(0, 0, 200, 200) styleMask:CPClosableWindowMask],
|
|
|
|
bezelHeadColor = PatternColor(
|
|
"window-standard-head{state}{position}.png",
|
|
{
|
|
states: ["", "inactive"],
|
|
width: 5.0,
|
|
height: 31.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
/*solidColor = CustomDrawView(function(drawView) {
|
|
var gradient = [[CPGradient alloc] initWithStartingColor:[CPColor colorWithCalibratedRed:0.902 green:0.902 blue:0.902 alpha:1] endingColor:[CPColor colorWithCalibratedRed:0.878 green:0.878 blue:0.878 alpha:1]];
|
|
[gradient drawInRect:[drawView bounds] angle:90];
|
|
}),*/
|
|
|
|
solidColor = PatternColor(
|
|
"window-standard-head-solid{position}.png",
|
|
{
|
|
positions: "full",
|
|
width: 5.0,
|
|
height: 1.0
|
|
}),
|
|
|
|
bezelSheetHeadColor = PatternColor(
|
|
"window-standard-head-sheet-solid{position}.png",
|
|
{
|
|
positions: "full",
|
|
width: 5.0,
|
|
height: 1.0
|
|
}),
|
|
|
|
bezelColor = PatternColor(
|
|
"window-standard{position}.png",
|
|
{
|
|
positions: "full",
|
|
width: 5.0,
|
|
height: 1.0,
|
|
bottomHeight:5.0
|
|
}),
|
|
|
|
dividerColor = PatternColor(
|
|
"window-standard-divider{position}.png",
|
|
{
|
|
width: 1.0,
|
|
height: 1.0,
|
|
orientation: PatternIsHorizontal
|
|
}),
|
|
|
|
closeButtonImage = PatternImage(@"window-standard-close-button.png", 16, 16),
|
|
closeButtonImageInactive = PatternImage(@"window-standard-close-button-inactive.png", 16, 16),
|
|
closeButtonImageHighlighted = PatternImage(@"window-standard-button-highlighted.png", 16, 16),
|
|
unsavedButtonImage = PatternImage(@"window-standard-button-unsaved.png", 16, 16),
|
|
unsavedButtonImageInactive = PatternImage(@"window-standard-button-unsaved-inactive.png", 16, 16),
|
|
unsavedButtonImageHighlighted = PatternImage(@"window-standard-close-button-unsaved-highlighted.png", 16, 16),
|
|
minimizeButtonImage = PatternImage(@"window-standard-minimize-button.png", 16, 16),
|
|
minimizeButtonImageHighlighted = PatternImage(@"window-standard-minimize-button-highlighted.png", 16, 16),
|
|
|
|
resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12),
|
|
|
|
themeValues =
|
|
[
|
|
[@"gradient-height", 31.0],
|
|
[@"bezel-head-color", bezelHeadColor["inactive"], CPThemeStateNormal],
|
|
[@"bezel-head-color", bezelHeadColor["@"], CPThemeStateKeyWindow],
|
|
[@"bezel-head-color", bezelHeadColor["@"], CPThemeStateMainWindow],
|
|
[@"bezel-head-sheet-color", bezelSheetHeadColor],
|
|
[@"solid-color", solidColor],
|
|
|
|
[@"title-font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]],
|
|
[@"title-text-color", [CPColor colorWithHexString:@"848484"]],
|
|
[@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:1], CPThemeStateKeyWindow],
|
|
[@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:1], CPThemeStateMainWindow],
|
|
[@"title-text-shadow-color", [CPColor whiteColor]],
|
|
[@"title-text-shadow-offset", CGSizeMake(0.0, 1.0)],
|
|
[@"title-alignment", CPCenterTextAlignment],
|
|
// FIXME: Make this to CPLineBreakByTruncatingMiddle once it's implemented.
|
|
[@"title-line-break-mode", CPLineBreakByTruncatingTail],
|
|
[@"title-vertical-alignment", CPCenterVerticalTextAlignment],
|
|
[@"title-bar-height", 31],
|
|
|
|
[@"divider-color", dividerColor],
|
|
[@"body-color", bezelColor],
|
|
[@"title-bar-height", 31],
|
|
|
|
[@"unsaved-image-button", unsavedButtonImage],
|
|
[@"unsaved-image-highlighted-button", unsavedButtonImageHighlighted],
|
|
[@"close-image-button", closeButtonImageInactive, CPThemeStateNormal],
|
|
[@"close-image-button", closeButtonImage, CPThemeStateKeyWindow],
|
|
[@"close-image-button", closeButtonImage, CPThemeStateMainWindow],
|
|
[@"close-image-highlighted-button", closeButtonImageHighlighted],
|
|
[@"minimize-image-button", minimizeButtonImage],
|
|
[@"minimize-image-highlighted-button", minimizeButtonImageHighlighted],
|
|
|
|
[@"close-image-size", CGSizeMake(16.0, 16.0)],
|
|
[@"close-image-origin", CGPointMake(8.0, 10.0)],
|
|
|
|
[@"resize-indicator", resizeIndicator],
|
|
[@"size-indicator", CGSizeMake(12, 12)]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:standardWindowView inherit:themedWindowViewValues];
|
|
|
|
return standardWindowView;
|
|
}
|
|
|
|
+ (_CPDocModalWindowView)themedDocModalWindowView
|
|
{
|
|
var docModalWindowView = [[_CPDocModalWindowView alloc] initWithFrame:CGRectMake(0, 0, 200, 200) styleMask:nil],
|
|
|
|
bezelColor = PatternColor(
|
|
"window-standard{position}.png",
|
|
{
|
|
positions: "full",
|
|
width: 5.0,
|
|
height: 5.0
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
[@"body-color", bezelColor]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:docModalWindowView inherit:themedWindowViewValues];
|
|
|
|
return docModalWindowView;
|
|
}
|
|
|
|
+ (_CPBorderlessBridgeWindowView)themedBorderlessBridgeWindowView
|
|
{
|
|
var borderlessBridgeWindowView = [[_CPBorderlessBridgeWindowView alloc] initWithFrame:CGRectMake(0,0,0,0)],
|
|
|
|
toolbarBackgroundColor = PatternColor(
|
|
[
|
|
nil,
|
|
[@"toolbar-background-center.png", 1.0, 58.0],
|
|
[@"toolbar-background-bottom.png", 1.0, 1.0]
|
|
], PatternIsVertical),
|
|
|
|
themeValues =
|
|
[
|
|
[@"toolbar-background-color", toolbarBackgroundColor]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:borderlessBridgeWindowView inherit:themedWindowViewValues];
|
|
|
|
return borderlessBridgeWindowView;
|
|
}
|
|
|
|
+ (_CPToolbarView)themedToolbarView
|
|
{
|
|
var toolbarView = [[_CPToolbarView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 59.0)],
|
|
|
|
toolbarExtraItemsImage = PatternImage(@"toolbar-view-extra-items-image.png", 10.0, 15.0),
|
|
toolbarExtraItemsAlternateImage = PatternImage(@"toolbar-view-extra-items-alternate-image.png", 10.0, 15.0),
|
|
toolbarSeparatorColor = PatternColor(
|
|
"toolbar-item-separator{position}.png",
|
|
{
|
|
positions: "#",
|
|
width: 2.0,
|
|
height: 26.0,
|
|
orientation: PatternIsVertical
|
|
}),
|
|
|
|
themeValues =
|
|
[
|
|
[@"extra-item-extra-image", toolbarExtraItemsImage],
|
|
[@"extra-item-extra-alternate-image", toolbarExtraItemsAlternateImage],
|
|
[@"item-margin", 10.0],
|
|
[@"extra-item-width", 20.0],
|
|
[@"content-inset", CGInsetMake(4.0, 4.0, 4.0, 10)],
|
|
[@"regular-size-height", 59.0],
|
|
[@"small-size-height", 46.0],
|
|
[@"image-item-separator-color", toolbarSeparatorColor],
|
|
[@"image-item-separator-size", CGRectMake(0.0, 0.0, 2.0, 32.0)]
|
|
];
|
|
|
|
|
|
[self registerThemeValues:themeValues forView:toolbarView];
|
|
|
|
return toolbarView;
|
|
}
|
|
|
|
+ (_CPMenuItemMenuBarView)themedMenuItemMenuBarView
|
|
{
|
|
var menuItemMenuBarView = [[_CPMenuItemMenuBarView alloc] initWithFrame:CGRectMake(0.0, 0.0, 16.0, 16.0)],
|
|
|
|
themeValues =
|
|
[
|
|
[@"horizontal-margin", 9.0],
|
|
[@"submenu-indicator-margin", 3.0],
|
|
[@"vertical-margin", 4.0]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:menuItemMenuBarView];
|
|
|
|
return menuItemMenuBarView;
|
|
}
|
|
|
|
+ (_CPMenuItemStandardView)themedMenuItemStandardView
|
|
{
|
|
var menuItemStandardView = [[_CPMenuItemStandardView alloc] initWithFrame:CGRectMake(0.0, 0.0, 16.0, 16.0)],
|
|
|
|
menuItemDefaultOnStateImage = PatternImage(@"menu-item-on-state.png", 14.0, 14.0),
|
|
menuItemDefaultOnStateHighlightedImage = PatternImage(@"menu-item-on-state-highlighted.png", 14.0, 14.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"submenu-indicator-color", [CPColor grayColor]],
|
|
[@"menu-item-selection-color", [CPColor colorWithHexString:@"5C85D8"]],
|
|
[@"menu-item-text-color", [CPColor colorWithHexString:@"333333"]],
|
|
[@"menu-item-text-shadow-color", [CPColor colorWithWhite:1.0 alpha:0.8]],
|
|
[@"menu-item-default-off-state-image", nil],
|
|
[@"menu-item-default-off-state-highlighted-image", nil],
|
|
[@"menu-item-default-on-state-image", menuItemDefaultOnStateImage],
|
|
[@"menu-item-default-on-state-highlighted-image", menuItemDefaultOnStateHighlightedImage],
|
|
[@"menu-item-separator-color", [CPColor colorWithHexString:@"DFDFDF"]],
|
|
[@"menu-item-default-mixed-state-image", nil],
|
|
[@"menu-item-default-mixed-state-highlighted-image", nil],
|
|
[@"left-margin", 3.0],
|
|
[@"right-margin", 17.0],
|
|
[@"state-column-width", 14.0],
|
|
[@"indentation-width", 17.0],
|
|
[@"vertical-margin", 4.0],
|
|
[@"right-columns-margin", 30.0]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:menuItemStandardView];
|
|
|
|
return menuItemStandardView;
|
|
}
|
|
|
|
+ (_CPMenuView)themedMenuView
|
|
{
|
|
var menuView = [[_CPMenuView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 100.0)],
|
|
|
|
menuWindowMoreAboveImage = PatternImage(@"menu-window-more-above.png", 38.0, 18.0),
|
|
menuWindowMoreBelowImage = PatternImage(@"menu-window-more-below.png", 38.0, 18.0),
|
|
generalIconNew = PatternImage(@"menu-general-icon-new.png", 16.0, 16.0),
|
|
generalIconNewHighlighted = PatternImage(@"menu-general-icon-new-highlighted.png", 16.0, 16.0),
|
|
generalIconOpen = PatternImage(@"menu-general-icon-open.png", 16.0, 16.0),
|
|
generalIconOpenHighlighted = PatternImage(@"menu-general-icon-open-highlighted.png", 16.0, 16.0),
|
|
generalIconSave = PatternImage(@"menu-general-icon-save.png", 16.0, 16.0),
|
|
generalIconSaveHighlighted = PatternImage(@"menu-general-icon-save-highlighted.png", 16.0, 16.0),
|
|
|
|
menuWindowPopUpBackgroundStyleColor = PatternColor(
|
|
[
|
|
[@"menu-window-rounded-0.png", 7.0, 7.0],
|
|
[@"menu-window-1.png", 1.0, 7.0],
|
|
[@"menu-window-rounded-2.png", 7.0, 7.0],
|
|
[@"menu-window-3.png", 7.0, 1.0],
|
|
[@"menu-window-4.png", 1.0, 1.0],
|
|
[@"menu-window-5.png", 7.0, 1.0],
|
|
[@"menu-window-rounded-6.png", 7.0, 7.0],
|
|
[@"menu-window-7.png", 1.0, 7.0],
|
|
[@"menu-window-rounded-8.png", 7.0, 7.0]
|
|
]
|
|
),
|
|
|
|
menuWindowMenuBarBackgroundStyleColor = PatternColor(
|
|
[
|
|
[@"menu-window-3.png", 7.0, 0.0],
|
|
[@"menu-window-4.png", 1.0, 0.0],
|
|
[@"menu-window-5.png", 7.0, 0.0],
|
|
[@"menu-window-3.png", 7.0, 1.0],
|
|
[@"menu-window-4.png", 1.0, 1.0],
|
|
[@"menu-window-5.png", 7.0, 1.0],
|
|
[@"menu-window-rounded-6.png", 7.0, 7.0],
|
|
[@"menu-window-7.png", 1.0, 7.0],
|
|
[@"menu-window-rounded-8.png", 7.0, 7.0]
|
|
]
|
|
),
|
|
|
|
menuBarWindowBackgroundColor = PatternColor(@"menu-bar-window-background.png", 1.0, 30.0),
|
|
menuBarWindowBackgroundSelectedColor = PatternColor(@"menu-bar-window-background-selected.png", 1.0, 30.0),
|
|
|
|
themeValues =
|
|
[
|
|
[@"menu-window-more-above-image", menuWindowMoreAboveImage],
|
|
[@"menu-window-more-below-image", menuWindowMoreBelowImage],
|
|
[@"menu-window-pop-up-background-style-color", menuWindowPopUpBackgroundStyleColor],
|
|
[@"menu-window-menu-bar-background-style-color", menuWindowMenuBarBackgroundStyleColor],
|
|
[@"menu-window-margin-inset", CGInsetMake(5.0, 1.0, 5.0, 1.0)],
|
|
[@"menu-window-scroll-indicator-height", 16.0],
|
|
|
|
[@"menu-bar-window-background-color", menuBarWindowBackgroundColor],
|
|
[@"menu-bar-window-background-selected-color", menuBarWindowBackgroundSelectedColor],
|
|
[@"menu-bar-window-font", [CPFont boldSystemFontOfSize:[CPFont systemFontSize]]],
|
|
[@"menu-bar-window-height", 30.0],
|
|
[@"menu-bar-window-margin", 10.0],
|
|
[@"menu-bar-window-left-margin", 10.0],
|
|
[@"menu-bar-window-right-margin", 10.0],
|
|
|
|
[@"menu-bar-text-color", [CPColor colorWithRed:0.051 green:0.2 blue:0.275 alpha:1.0]],
|
|
[@"menu-bar-title-color", [CPColor colorWithRed:0.051 green:0.2 blue:0.275 alpha:1.0]],
|
|
[@"menu-bar-text-shadow-color", [CPColor whiteColor]],
|
|
[@"menu-bar-title-shadow-color", [CPColor whiteColor]],
|
|
[@"menu-bar-highlight-color", menuBarWindowBackgroundSelectedColor],
|
|
[@"menu-bar-highlight-text-color", [CPColor whiteColor]],
|
|
[@"menu-bar-highlight-text-shadow-color", [CPColor blackColor]],
|
|
[@"menu-bar-height", 30.0],
|
|
[@"menu-bar-icon-image", nil],
|
|
[@"menu-bar-icon-image-alpha-value", 1.0],
|
|
|
|
[@"menu-general-icon-new", generalIconNew],
|
|
[@"menu-general-icon-new", generalIconNewHighlighted, CPThemeStateHighlighted],
|
|
|
|
[@"menu-general-icon-save", generalIconSave],
|
|
[@"menu-general-icon-save", generalIconSaveHighlighted, CPThemeStateHighlighted],
|
|
|
|
[@"menu-general-icon-open", generalIconOpen],
|
|
[@"menu-general-icon-open", generalIconOpenHighlighted, CPThemeStateHighlighted]
|
|
];
|
|
|
|
|
|
[self registerThemeValues:themeValues forView:menuView];
|
|
|
|
return menuView;
|
|
}
|
|
|
|
+ (_CPPopoverWindowView)themedPopoverWindowView
|
|
{
|
|
var popoverWindowView = [[_CPPopoverWindowView alloc] initWithFrame:CGRectMake(0, 0, 200, 200) styleMask:nil],
|
|
|
|
gradient = CGGradientCreateWithColorComponents(
|
|
CGColorSpaceCreateDeviceRGB(),
|
|
[
|
|
(254.0 / 255), (254.0 / 255), (254.0 / 255), 0.93,
|
|
(241.0 / 255), (241.0 / 255), (241.0 / 255), 0.93
|
|
],
|
|
[0, 1],
|
|
2
|
|
),
|
|
|
|
gradientHUD = CGGradientCreateWithColorComponents(
|
|
CGColorSpaceCreateDeviceRGB(),
|
|
[
|
|
(38.0 / 255), (38.0 / 255), (38.0 / 255), 0.93,
|
|
(18.0 / 255), (18.0 / 255), (18.0 / 255), 0.93
|
|
],
|
|
[0, 1],
|
|
2),
|
|
|
|
strokeColor = [CPColor colorWithHexString:@"B8B8B8"],
|
|
strokeColorHUD = [CPColor colorWithHexString:@"222222"],
|
|
|
|
themeValues =
|
|
[
|
|
[@"border-radius", 5.0],
|
|
[@"stroke-width", 1.0],
|
|
[@"shadow-size", CGSizeMake(0, 6)],
|
|
[@"shadow-blur", 15.0],
|
|
[@"background-gradient", gradient],
|
|
[@"background-gradient-hud", gradientHUD],
|
|
[@"stroke-color", strokeColor],
|
|
[@"stroke-color-hud", strokeColorHUD]
|
|
];
|
|
|
|
[self registerThemeValues:themeValues forView:popoverWindowView];
|
|
|
|
return popoverWindowView;
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation Aristo2HUDThemeDescriptor : BKThemeDescriptor
|
|
{
|
|
}
|
|
|
|
+ (CPString)themeName
|
|
{
|
|
return @"Aristo2-HUD";
|
|
}
|
|
|
|
+ (CPArray)themeShowcaseExcludes
|
|
{
|
|
return ["alert"];
|
|
}
|
|
|
|
+ (CPColor)defaultShowcaseBackgroundColor
|
|
{
|
|
return [CPColor blackColor];
|
|
}
|
|
|
|
+ (CPArray)defaultThemeOverridesAddedTo:(CPArray)themeValues
|
|
{
|
|
var overrides = [CPArray arrayWithObjects:
|
|
[@"text-color", [CPColor colorWithHexString:@"cdcdcd"]],
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:0.6], CPThemeStateDisabled],
|
|
[@"text-shadow-color", [CPColor blackColor]],
|
|
[@"text-shadow-color", [CPColor blackColor], CPThemeStateDisabled],
|
|
[@"text-shadow-offset", CGSizeMake(0, 1.0)]
|
|
];
|
|
|
|
if (themeValues)
|
|
[overrides addObjectsFromArray:themeValues];
|
|
|
|
return overrides;
|
|
}
|
|
|
|
+ (CPPopUpButton)themedSegmentedControl
|
|
{
|
|
var segmentedControl = [Aristo2ThemeDescriptor makeSegmentedControl];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:nil] forView:segmentedControl inherit:themedSegmentedControlValues];
|
|
|
|
return segmentedControl;
|
|
}
|
|
|
|
+ (CPButton)button
|
|
{
|
|
var button = [Aristo2ThemeDescriptor makeButton];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:nil] forView:button inherit:themedButtonValues];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPButton)themedStandardButton
|
|
{
|
|
var button = [self button];
|
|
|
|
[button setTitle:@"Cancel"];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPButton)themedDefaultButton
|
|
{
|
|
var button = [self button];
|
|
|
|
[button setTitle:@"OK"];
|
|
[button setThemeState:CPThemeStateDefault];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPSlider)themedHorizontalSlider
|
|
{
|
|
var slider = [Aristo2ThemeDescriptor makeHorizontalSlider];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:nil] forView:slider inherit:themedHorizontalSliderValues];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPSlider)themedVerticalSlider
|
|
{
|
|
var slider = [Aristo2ThemeDescriptor makeVerticalSlider];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:nil] forView:slider inherit:themedVerticalSliderValues];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPSlider)themedCircularSlider
|
|
{
|
|
var slider = [Aristo2ThemeDescriptor makeCircularSlider];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:nil] forView:slider inherit:themedCircularSliderValues];
|
|
|
|
return slider;
|
|
}
|
|
|
|
+ (CPAlert)themedAlert
|
|
{
|
|
var alert = [CPAlert new],
|
|
|
|
hudSpecificValues =
|
|
[
|
|
[@"message-text-color", [CPColor whiteColor]],
|
|
[@"informative-text-color", [CPColor whiteColor]],
|
|
[@"suppression-button-text-color", [CPColor whiteColor]]
|
|
];
|
|
|
|
[self registerThemeValues:hudSpecificValues forView:alert inherit:themedAlertValues];
|
|
|
|
return [alert themeView];
|
|
}
|
|
|
|
+ (CPProgressIndicator)themedBarProgressIndicator
|
|
{
|
|
var progressBar = [[CPProgressIndicator alloc] initWithFrame:CGRectMake(0, 0, 75, 16)];
|
|
[progressBar setDoubleValue:30];
|
|
|
|
[self registerThemeValues:nil forView:progressBar inherit:themedProgressIndicator];
|
|
|
|
return progressBar;
|
|
|
|
}
|
|
|
|
+ (CPProgressIndicator)themedIndeterminateBarProgressIndicator
|
|
{
|
|
var progressBar = [[CPProgressIndicator alloc] initWithFrame:CGRectMake(0, 0, 75, 16)];
|
|
[progressBar setIndeterminate:YES];
|
|
|
|
[self registerThemeValues:nil forView:progressBar inherit:themedIndeterminateProgressIndicator];
|
|
|
|
return progressBar;
|
|
}
|
|
|
|
+ (CPCheckBox)themedCheckBoxButton
|
|
{
|
|
var button = [CPCheckBox checkBoxWithTitle:@"Checkbox"];
|
|
|
|
[button setThemeState:CPThemeStateSelected];
|
|
|
|
var imageNormal = PatternImage("HUD/check-box-image.png", 21.0, 21.0),
|
|
imageSelected = PatternImage("HUD/check-box-image-selected.png", 21.0, 21.0),
|
|
imageSelectedHighlighted = PatternImage("HUD/check-box-image-selected-highlighted.png", 21.0, 21.0),
|
|
imageSelectedDisabled = PatternImage("HUD/check-box-image-selected.png", 21.0, 21.0),
|
|
imageDisabled = PatternImage("HUD/check-box-image.png", 21.0, 21.0),
|
|
imageHighlighted = PatternImage("HUD/check-box-image-highlighted.png", 21.0, 21.0),
|
|
mixedHighlightedImage = PatternImage("HUD/check-box-image-mixed-highlighted.png", 21.0, 21.0),
|
|
mixedDisabledImage = PatternImage("HUD/check-box-image-mixed.png", 21.0, 21.0),
|
|
mixedImage = PatternImage("HUD/check-box-image-mixed.png", 21.0, 21.0),
|
|
|
|
hudSpecific =
|
|
[
|
|
[@"image", imageNormal, CPThemeStateNormal],
|
|
[@"image", imageSelected, CPThemeStateSelected],
|
|
[@"image", imageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", imageHighlighted, CPThemeStateHighlighted],
|
|
[@"image", imageDisabled, CPThemeStateDisabled],
|
|
[@"image", imageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
[@"image", mixedImage, CPButtonStateMixed],
|
|
[@"image", mixedHighlightedImage, [CPButtonStateMixed, CPThemeStateHighlighted]],
|
|
[@"image", mixedDisabledImage, [CPButtonStateMixed, CPThemeStateDisabled]]
|
|
];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:hudSpecific] forView:button inherit:themedCheckBoxValues];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPCheckBox)themedMixedCheckBoxButton
|
|
{
|
|
var button = [self themedCheckBoxButton];
|
|
|
|
[button setAllowsMixedState:YES];
|
|
[button setState:CPMixedState];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:nil] forView:button];
|
|
|
|
return button;
|
|
}
|
|
|
|
+ (CPRadioButton)themedRadioButton
|
|
{
|
|
var button = [CPRadio radioWithTitle:@"Radio button"],
|
|
regularImageNormal = PatternImage("HUD/radio-image.png", 21.0, 21.0),
|
|
regularImageSelected = PatternImage("HUD/radio-image-selected.png", 21.0, 21.0),
|
|
regularImageSelectedHighlighted = PatternImage("HUD/radio-image-selected-highlighted.png", 21.0, 21.0),
|
|
regularImageSelectedDisabled = PatternImage("HUD/radio-image-selected.png", 21.0, 21.0),
|
|
regularImageDisabled = PatternImage("HUD/radio-image.png", 21.0, 21.0),
|
|
regularImageHighlighted = PatternImage("HUD/radio-image-highlighted.png", 21.0, 21.0),
|
|
|
|
smallImageNormal = PatternImage("HUD/radio-image.png", 20.0, 20.0),
|
|
smallImageSelected = PatternImage("HUD/radio-image-selected.png", 20.0, 20.0),
|
|
smallImageSelectedHighlighted = PatternImage("HUD/radio-image-selected-highlighted.png", 20.0, 20.0),
|
|
smallImageSelectedDisabled = PatternImage("HUD/radio-image-selected.png", 20.0, 20.0),
|
|
smallImageDisabled = PatternImage("HUD/radio-image.png", 20.0, 20.0),
|
|
smallImageHighlighted = PatternImage("HUD/radio-image-highlighted.png", 20.0, 20.0),
|
|
|
|
miniImageNormal = PatternImage("HUD/radio-image.png", 16.0, 16.0),
|
|
miniImageSelected = PatternImage("HUD/radio-image-selected.png", 16.0, 16.0),
|
|
miniImageSelectedHighlighted = PatternImage("HUD/radio-image-selected-highlighted.png", 16.0, 16.0),
|
|
miniImageSelectedDisabled = PatternImage("HUD/radio-image-selected.png", 16.0, 16.0),
|
|
miniImageDisabled = PatternImage("HUD/radio-image.png", 16.0, 16.0),
|
|
miniImageHighlighted = PatternImage("HUD/radio-image-highlighted.png", 16.0, 16.0);
|
|
|
|
hudSpecific =
|
|
[
|
|
[@"image", regularImageNormal, CPThemeStateNormal],
|
|
[@"image", regularImageSelected, CPThemeStateSelected],
|
|
[@"image", regularImageSelectedHighlighted, [CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", regularImageHighlighted, CPThemeStateHighlighted],
|
|
[@"image", regularImageDisabled, CPThemeStateDisabled],
|
|
[@"image", regularImageSelectedDisabled, [CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(21.0, 21.0)],
|
|
[@"max-size", CGSizeMake(-1.0, -1.0)],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-5.0, 2.0, 0.0, 0.0)],
|
|
|
|
// CPThemeStateControlSizeSmall
|
|
[@"image", smallImageNormal, [CPThemeStateControlSizeSmall, CPThemeStateNormal]],
|
|
[@"image", smallImageSelected, [CPThemeStateControlSizeSmall, CPThemeStateSelected]],
|
|
[@"image", smallImageSelectedHighlighted, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", smallImageHighlighted, [CPThemeStateControlSizeSmall, CPThemeStateHighlighted]],
|
|
[@"image", smallImageDisabled, [CPThemeStateControlSizeSmall, CPThemeStateDisabled]],
|
|
[@"image", smallImageSelectedDisabled, [CPThemeStateControlSizeSmall, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(0, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"max-size", CGSizeMake(-1, 20.0), CPThemeStateControlSizeSmall],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(-2.0, 2.0, 15.0, 0.0), CPThemeStateControlSizeSmall],
|
|
|
|
// CPThemeStateControlSizeMini
|
|
[@"image", miniImageNormal, [CPThemeStateControlSizeMini, CPThemeStateNormal]],
|
|
[@"image", miniImageSelected, [CPThemeStateControlSizeMini, CPThemeStateSelected]],
|
|
[@"image", miniImageSelectedHighlighted, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateHighlighted]],
|
|
[@"image", miniImageHighlighted, [CPThemeStateControlSizeMini, CPThemeStateHighlighted]],
|
|
[@"image", miniImageDisabled, [CPThemeStateControlSizeMini, CPThemeStateDisabled]],
|
|
[@"image", miniImageSelectedDisabled, [CPThemeStateControlSizeMini, CPThemeStateSelected, CPThemeStateDisabled]],
|
|
|
|
[@"min-size", CGSizeMake(0, 16.0), CPThemeStateControlSizeMini],
|
|
[@"max-size", CGSizeMake(-1, 16.0), CPThemeStateControlSizeMini],
|
|
[@"nib2cib-adjustment-frame", CGRectMake(0.0, 2.0, 15.0, 0.0), CPThemeStateControlSizeMini],
|
|
];
|
|
|
|
[self registerThemeValues:[self defaultThemeOverridesAddedTo:hudSpecific] forView:button inherit:themedRadioButtonValues];
|
|
return button;
|
|
}
|
|
|
|
@end
|