From 3b7262681c0c40be0f4e8dd22f81160d955a6e2c Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Sat, 19 Jan 2013 14:20:51 +0700 Subject: [PATCH] Added inactive state to window title bar - When a window is neither key nor main the title bar is clearly different - capp_lint ThemeDescriptors.j - Renamed some layers in Aristo2 PSD to be more descriptive - New artwork files for window close buttons - Removed stray Aristo2 image --- AppKit/CPWindow/_CPStandardWindowView.j | 28 +- AppKit/Themes/Aristo/ThemeDescriptors.j | 190 +++++------ .../Aristo2/Artwork/Aristo 11-06-07.psd | Bin 5339956 -> 5302655 bytes .../window-standard-button-unsaved.psd | Bin 0 -> 25218 bytes .../Artwork/window-standard-close-button.psd | Bin 0 -> 21246 bytes .../Aristo2/Resources/Aristo-11-06-07_283.png | Bin 83 -> 0 bytes ...indow-standard-button-unsaved-inactive.png | Bin 0 -> 1584 bytes .../window-standard-close-button-inactive.png | Bin 0 -> 1536 bytes .../Resources/window-standard-head-center.png | Bin 93 -> 1017 bytes .../window-standard-head-inactive-center.png | Bin 0 -> 1016 bytes .../window-standard-head-inactive-left.png | Bin 0 -> 1078 bytes .../window-standard-head-inactive-right.png | Bin 0 -> 1083 bytes .../Resources/window-standard-head-left.png | Bin 146 -> 1078 bytes .../Resources/window-standard-head-right.png | Bin 159 -> 1080 bytes AppKit/Themes/Aristo2/ThemeDescriptors.j | 308 +++++++++--------- 15 files changed, 270 insertions(+), 256 deletions(-) create mode 100644 AppKit/Themes/Aristo2/Artwork/window-standard-button-unsaved.psd create mode 100644 AppKit/Themes/Aristo2/Artwork/window-standard-close-button.psd delete mode 100644 AppKit/Themes/Aristo2/Resources/Aristo-11-06-07_283.png create mode 100644 AppKit/Themes/Aristo2/Resources/window-standard-button-unsaved-inactive.png create mode 100644 AppKit/Themes/Aristo2/Resources/window-standard-close-button-inactive.png create mode 100644 AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-center.png create mode 100644 AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-left.png create mode 100644 AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-right.png diff --git a/AppKit/CPWindow/_CPStandardWindowView.j b/AppKit/CPWindow/_CPStandardWindowView.j index 1994cf3eb..adc65caa0 100644 --- a/AppKit/CPWindow/_CPStandardWindowView.j +++ b/AppKit/CPWindow/_CPStandardWindowView.j @@ -25,9 +25,10 @@ @implementation _CPTexturedWindowHeadView : CPView { - CPView _gradientView; - CPView _solidView; - CPView _dividerView; + _CPWindowView _parentView; + CPView _gradientView; + CPView _solidView; + CPView _dividerView; } + (CPString)defaultThemeClass @@ -41,18 +42,17 @@ forKeys:[]]; } -- (id)initWithFrame:(CGRect)aFrame +- (id)initWithFrame:(CGRect)aFrame windowView:(_CPWindowView)parentView { self = [super initWithFrame:aFrame]; if (self) { + _parentView = parentView; _gradientView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; - [self addSubview:_gradientView]; _solidView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; - [self addSubview:_solidView]; } @@ -67,9 +67,9 @@ bounds = [self bounds]; [_gradientView setFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), gradientHeight)]; - [_gradientView setBackgroundColor:[[CPTheme defaultTheme] valueForAttributeWithName:@"bezel-head-color" forClass:_CPStandardWindowView]]; + [_gradientView setBackgroundColor:[[CPTheme defaultTheme] valueForAttributeWithName:@"bezel-head-color" inState:[_parentView themeState] forClass:_CPStandardWindowView]]; - [_solidView setFrame:CGRectMake(0.0, gradientHeight ,CGRectGetWidth(bounds), CGRectGetHeight(bounds) - gradientHeight)]; + [_solidView setFrame:CGRectMake(0.0, gradientHeight, CGRectGetWidth(bounds), CGRectGetHeight(bounds) - gradientHeight)]; [_solidView setBackgroundColor:[[CPTheme defaultTheme] valueForAttributeWithName:@"solid-color" forClass:_CPStandardWindowView]]; } @@ -128,7 +128,7 @@ var theClass = [self class], bounds = [self bounds]; - _headView = [[_CPTexturedWindowHeadView alloc] initWithFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), [self valueForThemeAttribute:@"title-bar-height"])]; + _headView = [[_CPTexturedWindowHeadView alloc] initWithFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), [self valueForThemeAttribute:@"title-bar-height"]) windowView:self]; [_headView setAutoresizingMask:CPViewWidthSizable];; [_headView setHitTests:NO]; @@ -264,13 +264,13 @@ if (_isDocumentEdited) { - [_closeButton setImage:[self valueForThemeAttribute:@"unsaved-image-button"]]; + [_closeButton setImage:[self currentValueForThemeAttribute:@"unsaved-image-button"]]; [_closeButton setAlternateImage:[self valueForThemeAttribute:@"unsaved-image-highlighted-button"]]; } else { - [_closeButton setImage:[self valueForThemeAttribute:@"close-image-button"]]; - [_closeButton setAlternateImage:[self valueForThemeAttribute:@"close-image-highlighted-button"]]; + [_closeButton setImage:[self currentValueForThemeAttribute:@"close-image-button"]]; + [_closeButton setAlternateImage:[self currentValueForThemeAttribute:@"close-image-highlighted-button"]]; } } @@ -333,12 +333,12 @@ [_minimizeButton setImage:[self valueForThemeAttribute:@"minimize-image-button"]]; [_minimizeButton setAlternateImage:[self valueForThemeAttribute:@"minimize-image-highlighted-button"]]; - if(![_headView isHidden]) + if (![_headView isHidden]) [_headView setFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), [self toolbarMaxY])]; else [_headView setFrame:CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), 0)]; - if(![_dividerView isHidden]) + if (![_dividerView isHidden]) [_dividerView setFrame:CGRectMake(0.0, CGRectGetMaxY([_headView frame]), CGRectGetWidth(bounds), 1.0)]; else [_dividerView setFrame:CGRectMake(0.0, CGRectGetMaxY([_headView frame]), CGRectGetWidth(bounds), 0.0)]; diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index e4fa7d0a3..8cf99bb88 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -18,10 +18,10 @@ var themedButtonValues = nil, themedHorizontalSliderValues = nil, themedVerticalSliderValues = nil, themedCircularSliderValues = nil, - themedButtonBarValues = nil, themedAlertValues = nil, themedProgressIndicator = nil, - themedIndeterminateProgressIndicator = nil; + themedIndeterminateProgressIndicator = nil, + themedWindowViewValues = nil; /* HOW TO ADD OR MODIFY THEMED ELEMENTS @@ -694,7 +694,6 @@ var themedButtonValues = nil, ], PatternIsVertical); - themedVerticalScrollerValues = [ // Common @@ -1171,16 +1170,17 @@ var themedButtonValues = nil, ], 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], + 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", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted], + [@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted], - [@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled], - ]; + [@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled], + ]; [self registerThemeValues:themedColorWellValues forView:colorWell]; @@ -2117,8 +2117,7 @@ var themedButtonValues = nil, [@"level-indicator-segment-critical-left.png", 3.0, 17.0], [@"level-indicator-segment-critical-center.png", 1.0, 17.0], [@"level-indicator-segment-critical-right.png", 3.0, 17.0] - ]); - + ]), themeValues = [ @@ -2166,17 +2165,17 @@ var themedButtonValues = nil, ]), themedShadowViewValues = - [ - [@"bezel-color", lightColor, CPThemeStateShadowViewLight], - [@"bezel-color", heavyColor, CPThemeStateShadowViewHeavy], + [ + [@"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] - ]; + [@"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]; + [self registerThemeValues:themedShadowViewValues forView:shadowView]; - return shadowView; + return shadowView; } + (CPBrowser)themedBrowser @@ -2187,7 +2186,8 @@ var themedButtonValues = nil, imageLeaf = PatternImage(@"browser-image-leaf.png", 9.0, 9.0), imageLeafPressed = PatternImage(@"browser-image-leaf-pressed.png", 9.0, 9.0), - themedBrowser = [ + themedBrowser = + [ ["image-control-resize", imageResize], ["image-control-leaf", imageLeaf], ["image-control-leaf-pressed", imageLeafPressed] @@ -2229,31 +2229,31 @@ var themedButtonValues = nil, { var windowView = [[_CPWindowView alloc] initWithFrame:CGRectMakeZero()], - sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), - resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12), + sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), + resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12), - shadowColor = PatternColor( - [ - [@"window-shadow-0.png", 20.0, 19.0], - [@"window-shadow-1.png", 1.0, 19.0], - [@"window-shadow-2.png", 19.0, 19.0], - [@"window-shadow-3.png", 20.0, 1.0], - [@"window-shadow-4.png", 1.0, 1.0], - [@"window-shadow-5.png", 19.0, 1.0], - [@"window-shadow-6.png", 20.0, 18.0], - [@"window-shadow-7.png", 1.0, 18.0], - [@"window-shadow-8.png", 19.0, 18.0], - ]); + shadowColor = PatternColor( + [ + [@"window-shadow-0.png", 20.0, 19.0], + [@"window-shadow-1.png", 1.0, 19.0], + [@"window-shadow-2.png", 19.0, 19.0], + [@"window-shadow-3.png", 20.0, 1.0], + [@"window-shadow-4.png", 1.0, 1.0], + [@"window-shadow-5.png", 19.0, 1.0], + [@"window-shadow-6.png", 20.0, 18.0], + [@"window-shadow-7.png", 1.0, 18.0], + [@"window-shadow-8.png", 19.0, 18.0], + ]); 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], - [@"size-indicator", CGSizeMake(12, 12)] - ]; + [ + [@"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], + [@"size-indicator", CGSizeMake(12, 12)] + ]; [self registerThemeValues:themedWindowViewValues forView:windowView]; @@ -2284,22 +2284,22 @@ var themedButtonValues = nil, closeActiveImage = PatternImage(@"HUD/window-close-active.png", 18.0, 18.0), themeValues = - [ - [@"close-image-size", CPSizeMake(18.0, 18.0)], - [@"close-image-origin", CPPointMake(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-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], - ]; + [ + [@"close-image-size", CPSizeMake(18.0, 18.0)], + [@"close-image-origin", CPPointMake(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-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]; @@ -2355,40 +2355,40 @@ var themedButtonValues = nil, resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12), themeValues = - [ - [@"gradient-height", 31.0], - [@"bezel-head-color", bezelHeadColor], - [@"solid-color", solidColor], + [ + [@"gradient-height", 31.0], + [@"bezel-head-color", bezelHeadColor], + [@"solid-color", solidColor], - [@"title-font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], - [@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:0.75]], - [@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:1], CPThemeStateKeyWindow], - [@"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], + [@"title-font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], + [@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:0.75]], + [@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:1], CPThemeStateKeyWindow], + [@"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", [CPColor colorWithHexString:@"979797"]], - [@"body-color", bezelColor], - [@"title-bar-height", 31], + [@"divider-color", [CPColor colorWithHexString:@"979797"]], + [@"body-color", bezelColor], + [@"title-bar-height", 31], - [@"unsaved-image-button" ,unsavedButtonImage], - [@"unsaved-image-highlighted-button" ,unsavedButtonImageHighlighted], - [@"close-image-button" ,closeButtonImage], - [@"close-image-highlighted-button" ,closeButtonImageHighlighted], - [@"minimize-image-button" ,minimizeButtonImage], - [@"minimize-image-highlighted-button" ,minimizeButtonImageHighlighted], + [@"unsaved-image-button" ,unsavedButtonImage], + [@"unsaved-image-highlighted-button" ,unsavedButtonImageHighlighted], + [@"close-image-button" ,closeButtonImage], + [@"close-image-highlighted-button" ,closeButtonImageHighlighted], + [@"minimize-image-button" ,minimizeButtonImage], + [@"minimize-image-highlighted-button" ,minimizeButtonImageHighlighted], - [@"close-image-size", CPSizeMake(16.0, 16.0)], - [@"close-image-origin", CPPointMake(8.0, 10.0)], + [@"close-image-size", CPSizeMake(16.0, 16.0)], + [@"close-image-origin", CPPointMake(8.0, 10.0)], - [@"resize-indicator", resizeIndicator], - [@"attached-sheet-shadow-color", sheetShadow], - [@"size-indicator", CGSizeMake(12, 12)] - ]; + [@"resize-indicator", resizeIndicator], + [@"attached-sheet-shadow-color", sheetShadow], + [@"size-indicator", CGSizeMake(12, 12)] + ]; [self registerThemeValues:themeValues forView:standardWindowView inherit:themedWindowViewValues]; @@ -2415,11 +2415,11 @@ var themedButtonValues = nil, sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), themeValues = - [ - [@"body-color", bezelColor], - [@"height-shadow", 8], - [@"attached-sheet-shadow-color", sheetShadow] - ]; + [ + [@"body-color", bezelColor], + [@"height-shadow", 8], + [@"attached-sheet-shadow-color", sheetShadow] + ]; [self registerThemeValues:themeValues forView:docModalWindowView inherit:themedWindowViewValues]; @@ -2435,7 +2435,7 @@ var themedButtonValues = nil, [@"toolbar-background-top.png", 1.0, 1.0], [@"toolbar-background-center.png", 1.0, 57.0], [@"toolbar-background-bottom.png", 1.0, 1.0] - ], PatternIsVertical) + ], PatternIsVertical), themeValues = [ diff --git a/AppKit/Themes/Aristo2/Artwork/Aristo 11-06-07.psd b/AppKit/Themes/Aristo2/Artwork/Aristo 11-06-07.psd index 1853bc824b4b074e726f4d867cc7c7d9091b79ef..9f72b63b6c89a0d884f4ea537d4596fe6509874c 100755 GIT binary patch delta 35497 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 tUvKw{al94(m)pGu#nON+e(-Y% delta 61343 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 K*O!?}f%zYL+#^T; literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Artwork/window-standard-close-button.psd b/AppKit/Themes/Aristo2/Artwork/window-standard-close-button.psd new file mode 100644 index 0000000000000000000000000000000000000000..897891310c7263670d7628990b9256c5a7ebb54c GIT binary patch literal 21246 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 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/Aristo-11-06-07_283.png b/AppKit/Themes/Aristo2/Resources/Aristo-11-06-07_283.png deleted file mode 100644 index 11f4dfcc9a993d740f25a2dea67b3f95ad19d94b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{T!3HEx%~ItDQc|8Sjv*Y;$q5Mw9}+8meR)~m h_TRxFn~B4R;mqUU`^UY{$OBa|c)I$ztaD0e0sssX7jpmr diff --git a/AppKit/Themes/Aristo2/Resources/window-standard-button-unsaved-inactive.png b/AppKit/Themes/Aristo2/Resources/window-standard-button-unsaved-inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed0fbb282b585baceea6bee1c6d1653e92bee54 GIT binary patch literal 1584 zcmaJ>X;2eq7>;0LMnF--3RvBS2o{@Tb0;JsB%x%cOC{Wl7B|TPG45e@F%cbav|!On zN((rM2OS0-Ta?nlR1URjqqPN{Q9`vcjRlWZR8VYbOE)02KeRi$`+eU#@AJIRd(2m| zJo%lV>EY8E3`USXNo%0jVBg1L(*K2nqcFXMQMxQD70;vWunl3vn{guo=utQyF(9yc z{aQDoVlezUmb5G?3wl>+!ciXV^WiyAf<`kKsyGJ$o2&>07?FGnre+U(-OdIqW;Hug z0tp~OgA`bjifl+~QF5B8$ZArU*>Ot&l|xArpa=y64s;DhDjjO}7_XAv`^9}XN3)sp zlm>0$i&*qY%`TuQLdoab?RK7B#KUd*d{CiK_&9_@F73f3*JBjy;9_Lt1cMeKO*RWb zS#S*SF~UZ?kW#a0rQ<1}#3U_7z9fhpXUhU04{s<^xWr*N_WCjd>V6j%(wCJW{>yfub^ zAf+B7DHt;$daasGbMPz{vr?BJ(a6MNfh1la1woxqE*Hu)iUg@nr-+xx1+odO7B>~5 z2u4j{%`{db7bVI>8aa)Xy%g&k29%&9YZ04e9b!(j;V3Ycw9@iQEh62kwTxrUFVQld zhbZxtSUxR=?`!RUT0LQ+=f}6599;S^Ir<1j&%2Et?1~!KUkrxdVZAm!&Cx>{p!Y&j z=CtB%af>^{>ViAE>(T=QuFi9H7BA^OWk$^RE)`q7J#oGKEsZf-cT`eSS_EgxSe)QU zR#ZZx?z1cqsr*XhRi^?>FDH7i?-uzmcHq0v;)Jcd1CJlCO{uDO{k z>t$Elk;=aP5#>W?Ybv{ItEx(P;;XsFU#<-e9r>ZYeqg)PdC?Gj(-5ljYrL>vb?=r9 zo@J~lCtT{-k)ix%rTY#q{f1r!UF9Bo?S0cs3DHr^%$cRzC(q7pZ)!gIB%_QCb&35r zdba)(Z|Yg#pdhdz`-_VOtdxcG!%p2eaQXPz()5^5YpvSq3-#xt!N2;K3>``!#tGc;oWf|&MdbHemIc21y18H$n)l=J#-P9%>?>@M7 zZZ39bgqNJ*ajp6hZEdBVS{^*uZSCE%{|KghK_xTkmP9` z(X%75d!orBzJ2EzJZWcMS z4YN!1eQkLkm!3BQef|CJUUx)9#O__C;5XljFp;63*#<5Z{sb-+!~_Hclr=SpW|JgY z_hjha#*1BDUC(bDTfX1#=?_{>u-+`sU9sYh$9n=3-`&gbXKbwU4`BR(U-I4IdR?;i J^MqB~{sHT-Wt0E_ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/window-standard-close-button-inactive.png b/AppKit/Themes/Aristo2/Resources/window-standard-close-button-inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..3e9c4878240e7d95572902aec53a2cce51fa94f1 GIT binary patch literal 1536 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij}3MtFxuC zqq(t*k%5_op`nF=g|VZVlc9;ZfrXKap)<@3YOWQv}Q$%%1CxF)%RcdAc};RNTr5_RW?G6sa}t zyWb@>mE)*RiQ>|Op#p`I9X4^jUH?MuCwt?cM!n6&Q{yjQ3RPTEqNt~pq^fC z_g?(XoNv);lP`+8-n=1m)bX0u)Kkw7CIrN-4bz-{T6IFk@gr4x#bz!0`sm}2%8e0! z8gFDpGjP7k+WKqj_19A;9&z~?$0#z*V`ktG2Cu`|6{K`;SAA} z67)W>|6A5ovEcH{m|b`C*57|Gt`np+)x~bUc%y?ulUZ$#Vf)S}6IMS|XFSOFR$=$q zG~-NX153u-UlyX*p}rE}c(G^}yXkOZ#23Z*1?n z*s^NX?Y-9F8X}WiE}JZsyV4hPl}k#dKSgQ!>COZL4Y$P;S#p29u_!+LaD$^Bw*=7h z_ulP^(R-@tqb3}<{<><$<>L~?GrakB{NLI7JjLi|v4u?CCN8cR4NbL4Pk!{eISVOI z?D*5qq-ObKQv+XW{^gfn3b)_3U2y7RMu;#U7b&Cz$_cO{> zOpUiyi{ojC5^3l^uuim&>0N`?1r|1y{Z+l+il5#5R1|r%DJ4@;7}ya55<+4q=Oiu+RR=8FclX}=Jn#2eXXok4^4(=Y5LVjTPM5C> z{JXbwi~rZpKMeV@%36K4OGj+tXGE|JnR1T>cX zQb#J{l%oYPcfir+td7C{u6;$G8(UTTwZw0)Y9-P4_3aC#8vp}6@3 zY!n73hzavS5g#VGQJCVC*Wmk7EQ?^O!VXMv=2YM70Gnn6G^KhifCvGMCDdqQj2;68 zB1MM$#WmD0n%GcOFn>gDEel6R*Ky~z_{kK%b;?(o5h?9JtD4sI8@KYH{P>$m=uBmp; zy5z4L*J|gzla$C^lGEcX;Pn`-RbZaGn+=tU+#BP07V)C^hYk&nW0J78V~YGn3Zu|~ zNaI;l8&Fjs))3MW)E&pgu4TD(>?jq-by!zxxC(}_X~70UEk)B5)z-IgtEF2_4XPEk zo#f0<0#ezHxZNqX>AE*!4Lc(~qgjvA!>R*1W6EegrYW#@F?i_tL6nq&M`eL#@j4`n zUXakuXbh$qHlk}h(6yGW*DbZ~%p%vIR=4mLYN$|C9At}gZ1_J}lesf;*&hG2OC{nx zSZ=SHpC7Kqha`MvGCmw{Z-wBQpMB7F@z&JIVm9_AoNPk diff --git a/AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-center.png b/AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-center.png new file mode 100644 index 0000000000000000000000000000000000000000..3a13396a57329dac910b253a44ac0822a02697dc GIT binary patch literal 1016 zcmbVLzi-n(6n0gFP^C(UiL!8Yr3xfs-#LkYsitys35|qHltv}oYS~~RCU0zeZSuKz4yL*?`3D}(c;3L1xbVUqSC2mo#jwPieZI{`d_qzxxd9te(2mFs?NSmP?jO@NNtz#ry*}@Ik8Pht z3Mp)qJW2#wlGfJqg!sFZgCX4sV@Lk+`HKv~z>%NUJ?JG3Iu19FQo4P#)$@;beJhaH zAA+^q76cLH1mw|PoY}b}PkC)IFSb<~OilQ%BcBJ=_d1}#QVQxywc!rtldZ{;VkVjwpUg_XUsUu#w-DiZ5`b6h#$tq#{J@g&hy1I z4WH4Vm9hv-6}H1mB7oMvnVZn8y7~sH8PL=)YREHe@IR`lA{ezOkH5;L+!8fdOfQOG zEH2uI#-e9Z(Hzd{r=l@e+t}^p--d(1pyQwX`g!_%6}*~zcXD>NzKp)Uz4?9~OV@5o W%deNqlBwSm*2t77wyCd2Pd%yqLV%Y#@pZ z+)f_6D4qtQo1V3h9Ea*I^0j=E9|SaFn9D8&cpv*T2yI7MfX2k8VGiyAxt zv?#J5o)ATFiWYbva6Ea%D2S^GQ57V*{V>FuXV%n`mT%i4rzF$B*i|{M*=(}S7>m3* z2NXpKIRqg}G@|~3gY_Wl_#+(#4f=*>x!6Ju9Wv@wG>?-E@pLBy+btG%i53~V@_BRwN5^vPAo<)kH&uPe* zx1oazT9P3*tZA7l4`h->Db7m*FUkNYfLAmvFXq$fd`#4Y4#!^D1jtEpn$ISbyaGT@ zkYz#2Dj6}CQ_=~Umpa&j<73@1V8^aS?6$F)eX(lRgE~fD8KJpO2TU~(Mt%dibaq;# zj~8{razeq0us}QUYS6PTLo@Fon{H)Twf69USN@G$=H*yg%z(JW%Yp{7OdD(dPu4i% z3>UV?U+vNnksb`UyUkAyyW;~LGBX|-jvE($ejh{*~(#s3iPTqgfle&HAUgY6=JQj-$PaGRurXt^%&u_Yz yt?mAenbf(JgUg4P?kN0P|LU#2)tiqaT|Gn8+fDVgFj#vPPI4hPsXfZfT>lLqI8+`0 literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-right.png b/AppKit/Themes/Aristo2/Resources/window-standard-head-inactive-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9b554d39aaa268a5b1f69035ebeb354eea91f58e GIT binary patch literal 1083 zcmbVLPfXKL7;gXvq9nu%Xkx78B8gl3y0vQ?<|ykXOB|B1#GQ0q`^Fk*Uuhq%BSs?^ zA)x;W5(s-L2$ zf&8RaBqj6`{Zt+zhN+lS>|)S(+*t zOLK;7GU*HSSfCIB8)BUf?0Lsmf)vx@RmeURvkcu*!E-5Q`@n$92((n2gAH8=oh zQH+6vAd28T&2xZfIr558kWd6s;gfXxVTd))tSLn;*S1AYDW;CGtFUaN(TFwTG33p% zK$hi@gXg0}BkDIDtOrrYAL%e?&^J8G#TIhtkWsIqMVw-Yr+XpTZlSPG?D*|Ok(9B4 z?y?}pv9=w?)zbEH5&m)GKyAO&bRk=WK3en)Qjgk52TXEzxS>#yc%xkQEK(GGUPH#B z4IP}z~S z8Ie9$&<)E81*2hs_Ttr`XI+P8&O7pKRN7=4|K@Pcw{&h)FGJ+mX+7kQm|F6R4UWm)zOIg?ep6Q zYagCnd(?IRQ_r!RyF1(IzRl*3FULz=XZv1_pMF1{1IrTkWM^ml*Xqj3>w8B(-l)}T zR|nsH-`%}sF60JpKRyw;Go&TgUvBkotVcH1p7(e43{!U>rs>RypCjQo=d)AV(}~LR EZzCjCK>z>% literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo2/Resources/window-standard-head-left.png b/AppKit/Themes/Aristo2/Resources/window-standard-head-left.png index 1ddc91e61b745ec8a17c7a041daaf4241c5d9ef5..cde53ff2b310f6f762b7dfb1537f1f0556f6a734 100644 GIT binary patch literal 1078 zcmbVLJ8aWH75z&&08JPJeA0n7H?{r7+0|Grh49v|pG)lU$_ zKw&~FjUqv%s4K<7a5{l)`K~Qjvd02*q)x7==W(cCUZda

4+%6K1(X%e(l&_b4MJ5?=~fa(Phq$oaNGAs)O zfnt*>L0~Tdj$t{P!LN{DlX6OsxisiJB(@e|v>k%u7mK^ZZrDi_P8l5; zKFv}L?Kp8ror-f^qKlHxw&kZ{#b1jf-L|YM!~| zKo=FXEQxO@%eG{O6>%2RNhZxPg2=KG%Sf803%a7{yr6Mij=iwDnAEwHuBH?w$+CG) z6uGo2<%E1*Qc@z5?qUmWhz!?+UAs26+rj4c#mZ^`4dewC&s*$vK&kE_FRXh$P-g^i zzG#@X8w)PP1!~8u!N6XImL7NxXk}Qo_wYax^Qy!vXgDrib2+M2V*`pRP;dcXPy zUT!_Ue1H9Q^XK;P(Msv}w~tTWi=uc(Iel(*@X_te8ZosxJ~?@D@YC$t@|T^R9Ug2P z?9r`zQ^%^rRprHl&F#DE4+m?rS&)H|k&zeKHkg@=*aR7f6GXOTR69MjQ`sT_ X=aD2S9pP0+00000NkvXXu0mjfzE?4l diff --git a/AppKit/Themes/Aristo2/Resources/window-standard-head-right.png b/AppKit/Themes/Aristo2/Resources/window-standard-head-right.png index 7aa57b40f8ba749f08f871bd3828000b0679ac85..1fb1c69185e365ef809bdbef71d52211380379f3 100644 GIT binary patch literal 1080 zcmbVLO=#0l91okDV{T_ZP>dOf1DoWfZJNY&UDhTL&4GVr7a^`PK<>Bsaib}%G)@BQEZ_xpd}EG?d&96vTr zQPgB{K`WDWgnTE*M#-OJ4jv)PQCz6vCDg!eGk}z8qdKIEuDJ}$(6raCzJW6oHQaP6 zRa`YLC>C;AGuB}v*C%L-n#o1JX{|s^*Wt3`WtlHeUof;|XPL`sgE#y_hAOn{V<78M~w_aBB>3+#qc*7UwDa>_DIjD3aU+U+*mPO>Oi z=722AF^3=|h(;n@^RO8uyl`s3pux}z93MN#qhm(1j#hD&A)fX^aDBtrCHBI8qDacP z$n-hD@|^3&adovrT!w$$*i$>Ktoe{D!w{_o7O6*LY5*p=+uu;ENW4)l1`a8T+0u}; z>Ov0}wJbw!Slh7`9!MmMnG~N9cu@jC2E43kx~QwFo)k43MF0i`CwC~P91&M%4d z8N;+3FBVM41?t7C!N9o&Z9PCP-OaG#?BRhd74mXY%_Oy6RdF7qGQ1>cAkXx% z_Wxv!BhGMfd;HTb0}<)Lc)Q#DP$!@?>24PIG1>P{QcJF#_3Dyb!wQ}{yr<#Ki+*7&vLP_s6C#qb^ZVk CfKomH delta 130 zcmV-|0Db?s2%iCvBztB_L_t(2kz-pF07*qoM6N<$f(vst1ONa4 diff --git a/AppKit/Themes/Aristo2/ThemeDescriptors.j b/AppKit/Themes/Aristo2/ThemeDescriptors.j index 1be5fc42e..c55861edf 100644 --- a/AppKit/Themes/Aristo2/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo2/ThemeDescriptors.j @@ -16,7 +16,6 @@ var themedButtonValues = nil, themedHorizontalSliderValues = nil, themedVerticalSliderValues = nil, themedCircularSliderValues = nil, - themedButtonBarValues = nil, themedAlertValues = nil, themedWindowViewValues = nil, themedProgressIndicator = nil, @@ -89,54 +88,54 @@ var themedButtonValues = nil, ], PatternIsHorizontal), - // Rounded - roundedBezelColor = PatternColor( - [ - ["button-bezel-rounded-left.png", 12.0, 25.0], - ["button-bezel-rounded-center.png", 1.0, 25.0], - ["button-bezel-rounded-right.png", 12.0, 25.0] - ], - PatternIsHorizontal), + // Rounded + roundedBezelColor = PatternColor( + [ + ["button-bezel-rounded-left.png", 12.0, 25.0], + ["button-bezel-rounded-center.png", 1.0, 25.0], + ["button-bezel-rounded-right.png", 12.0, 25.0] + ], + PatternIsHorizontal), - roundedHighlightedBezelColor = PatternColor( - [ - ["button-bezel-rounded-highlighted-left.png", 12.0, 25.0], - ["button-bezel-rounded-highlighted-center.png", 1.0, 25.0], - ["button-bezel-rounded-highlighted-right.png", 12.0, 25.0] - ], - PatternIsHorizontal), + roundedHighlightedBezelColor = PatternColor( + [ + ["button-bezel-rounded-highlighted-left.png", 12.0, 25.0], + ["button-bezel-rounded-highlighted-center.png", 1.0, 25.0], + ["button-bezel-rounded-highlighted-right.png", 12.0, 25.0] + ], + PatternIsHorizontal), - roundedDisabledBezelColor = PatternColor( - [ - ["button-bezel-rounded-disabled-left.png", 12.0, 25.0], - ["button-bezel-rounded-disabled-center.png", 1.0, 25.0], - ["button-bezel-rounded-disabled-right.png", 12.0, 25.0] - ], - PatternIsHorizontal), + roundedDisabledBezelColor = PatternColor( + [ + ["button-bezel-rounded-disabled-left.png", 12.0, 25.0], + ["button-bezel-rounded-disabled-center.png", 1.0, 25.0], + ["button-bezel-rounded-disabled-right.png", 12.0, 25.0] + ], + PatternIsHorizontal), - defaultRoundedBezelColor = PatternColor( - [ - ["default-button-bezel-rounded-left.png", 12.0, 25.0], - ["default-button-bezel-rounded-center.png", 1.0, 25.0], - ["default-button-bezel-rounded-right.png", 12.0, 25.0] - ], - PatternIsHorizontal), + defaultRoundedBezelColor = PatternColor( + [ + ["default-button-bezel-rounded-left.png", 12.0, 25.0], + ["default-button-bezel-rounded-center.png", 1.0, 25.0], + ["default-button-bezel-rounded-right.png", 12.0, 25.0] + ], + PatternIsHorizontal), - defaultRoundedHighlightedBezelColor = PatternColor( - [ - ["default-button-bezel-rounded-highlighted-left.png", 12.0, 25.0], - ["default-button-bezel-rounded-highlighted-center.png", 1.0, 25.0], - ["default-button-bezel-rounded-highlighted-right.png", 12.0, 25.0] - ], - PatternIsHorizontal), + defaultRoundedHighlightedBezelColor = PatternColor( + [ + ["default-button-bezel-rounded-highlighted-left.png", 12.0, 25.0], + ["default-button-bezel-rounded-highlighted-center.png", 1.0, 25.0], + ["default-button-bezel-rounded-highlighted-right.png", 12.0, 25.0] + ], + PatternIsHorizontal), - defaultRoundedDisabledBezelColor = PatternColor( - [ - ["default-button-bezel-rounded-disabled-left.png", 12.0, 25.0], - ["default-button-bezel-rounded-disabled-center.png", 1.0, 25.0], - ["default-button-bezel-rounded-disabled-right.png", 12.0, 25.0] - ], - PatternIsHorizontal), + defaultRoundedDisabledBezelColor = PatternColor( + [ + ["default-button-bezel-rounded-disabled-left.png", 12.0, 25.0], + ["default-button-bezel-rounded-disabled-center.png", 1.0, 25.0], + ["default-button-bezel-rounded-disabled-right.png", 12.0, 25.0] + ], + PatternIsHorizontal), defaultTextColor = [CPColor colorWithCalibratedRed:38.0 / 255.0 green:38.0 / 255.0 blue:38.0 / 255.0 alpha:1.0], defaultDisabledTextColor = [CPColor colorWithCalibratedRed:38.0 / 255.0 green:38.0 / 255.0 blue:38.0 / 255.0 alpha:0.2]; @@ -419,7 +418,6 @@ var themedButtonValues = nil, ], PatternIsVertical); - themedVerticalScrollerValues = [ // Common @@ -439,8 +437,8 @@ var themedButtonValues = nil, [@"knob-color", knobColorDark, CPThemeStateVertical | CPThemeStateScrollerKnobDark], [@"increment-line-color", [CPNull null], CPThemeStateVertical], [@"decrement-line-color", [CPNull null], CPThemeStateVertical], - [@"decrement-line-size", CPSizeMakeZero(), CPThemeStateVertical], - [@"increment-line-size", CPSizeMakeZero(), CPThemeStateVertical], + [@"decrement-line-size", CGSizeMakeZero(), CPThemeStateVertical], + [@"increment-line-size", CGSizeMakeZero(), CPThemeStateVertical], // Legacy [@"scroller-width", 14.0, CPThemeStateVertical | CPThemeStateScrollViewLegacy], @@ -458,8 +456,8 @@ var themedButtonValues = nil, [@"knob-color", knobColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark], [@"increment-line-color", incrementColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy], [@"decrement-line-color", decrementColorLegacy, CPThemeStateVertical | CPThemeStateScrollViewLegacy], - [@"decrement-line-size", CPSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy], - [@"increment-line-size", CPSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy] + [@"decrement-line-size", CGSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy], + [@"increment-line-size", CGSizeMake(14.0, 11.0), CPThemeStateVertical | CPThemeStateScrollViewLegacy] ]; [self registerThemeValues:themedVerticalScrollerValues forView:scroller]; @@ -548,8 +546,8 @@ var themedButtonValues = nil, [@"knob-color", knobColor], [@"knob-color", knobColorLight, CPThemeStateScrollerKnobLight], [@"knob-color", knobColorDark, CPThemeStateScrollerKnobDark], - [@"decrement-line-size", CPSizeMakeZero()], - [@"increment-line-size", CPSizeMakeZero()], + [@"decrement-line-size", CGSizeMakeZero()], + [@"increment-line-size", CGSizeMakeZero()], // Legacy [@"scroller-width", 14.0, CPThemeStateScrollViewLegacy], @@ -565,8 +563,8 @@ var themedButtonValues = nil, [@"knob-color", knobColorLegacy, CPThemeStateScrollViewLegacy | CPThemeStateScrollerKnobDark], [@"increment-line-color", incrementColorLegacy, CPThemeStateScrollViewLegacy], [@"decrement-line-color", decrementColorLegacy, CPThemeStateScrollViewLegacy], - [@"decrement-line-size", CPSizeMake(11.0, 14.0), CPThemeStateScrollViewLegacy], - [@"increment-line-size", CPSizeMake(11.0, 14.0), CPThemeStateScrollViewLegacy] + [@"decrement-line-size", CGSizeMake(11.0, 14.0), CPThemeStateScrollViewLegacy], + [@"increment-line-size", CGSizeMake(11.0, 14.0), CPThemeStateScrollViewLegacy] ]; [self registerThemeValues:themedHorizontalScrollerValues forView:scroller]; @@ -736,7 +734,8 @@ var themedButtonValues = nil, imageCancel = PatternImage("search-field-cancel.png", 22.0, 22.0), imageCancelPressed = PatternImage("search-field-cancel-pressed.png", 22.0, 22.0), - overrides = [ + overrides = + [ [@"image-search", imageSearch], [@"image-find", imageFind], [@"image-cancel", imageCancel], @@ -750,7 +749,7 @@ var themedButtonValues = nil, + (CPTokenField)themedTokenField { - var tokenfield = [[CPTokenField alloc] initWithFrame:CGRectMake(0.0, 0.0, 160.0, 29.0)]; + var tokenfield = [[CPTokenField alloc] initWithFrame:CGRectMake(0.0, 0.0, 160.0, 29.0)], overrides = [ @@ -1606,7 +1605,7 @@ var themedButtonValues = nil, + (CPRuleEditor)themedRuleEditor { var ruleEditor = [[CPRuleEditor alloc] initWithFrame:CGRectMake(0, 0, 400, 300)], - backgroundColors = [[CPColor whiteColor], [CPColor colorWithRed:235/255 green:239/255 blue:252/255 alpha:1]], + 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], @@ -1635,7 +1634,7 @@ var themedButtonValues = nil, + (_CPToolTipWindowView)themedTooltip { - var toolTipView = [[_CPToolTipWindowView alloc] initWithFrame:CPRectMake(0.0, 0.0, 200.0, 100.0) styleMask:_CPToolTipWindowMask], + var toolTipView = [[_CPToolTipWindowView alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 100.0) styleMask:_CPToolTipWindowMask], themeValues = [ @@ -1690,16 +1689,17 @@ var themedButtonValues = nil, ], 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], + 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", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted], + [@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted], - [@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled], - ]; + [@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled], + ]; [self registerThemeValues:themedColorWellValues forView:colorWell]; @@ -1802,10 +1802,10 @@ var themedButtonValues = nil, [@"border-width", 1.0], [@"border-color", [CPColor colorWithHexString:@"B7B7B7"]], [@"corner-radius", 3.0], - [@"inner-shadow-offset", CPSizeMakeZero()], + [@"inner-shadow-offset", CGSizeMakeZero()], [@"inner-shadow-color", [CPColor blackColor]], [@"inner-shadow-size", 6.0], - [@"content-margin", CPSizeMakeZero()] + [@"content-margin", CGSizeMakeZero()] ]; [self registerThemeValues:themeValues forView:box]; @@ -1850,8 +1850,7 @@ var themedButtonValues = nil, [@"level-indicator-segment-critical-left.png", 3.0, 17.0], [@"level-indicator-segment-critical-center.png", 1.0, 17.0], [@"level-indicator-segment-critical-right.png", 3.0, 17.0] - ]); - + ]), themeValues = [ @@ -1899,17 +1898,17 @@ var themedButtonValues = nil, ]), themedShadowViewValues = - [ - [@"bezel-color", lightColor, CPThemeStateShadowViewLight], - [@"bezel-color", heavyColor, CPThemeStateShadowViewHeavy], + [ + [@"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] - ]; + [@"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]; + [self registerThemeValues:themedShadowViewValues forView:shadowView]; - return shadowView; + return shadowView; } + (CPBrowser)themedBrowser @@ -1920,7 +1919,8 @@ var themedButtonValues = nil, imageLeaf = PatternImage(@"browser-image-leaf.png", 9.0, 9.0), imageLeafPressed = PatternImage(@"browser-image-leaf-pressed.png", 9.0, 9.0), - themedBrowser = [ + themedBrowser = + [ ["image-control-resize", imageResize], ["image-control-leaf", imageLeaf], ["image-control-leaf-pressed", imageLeafPressed] @@ -1962,10 +1962,10 @@ var themedButtonValues = nil, { var windowView = [[_CPWindowView alloc] initWithFrame:CGRectMakeZero(0.0, 0.0, 200, 200)], - sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), - resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12), + sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), + resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12), - shadowColor = PatternColor( + shadowColor = PatternColor( [ [@"window-shadow-0.png", 20.0, 19.0], [@"window-shadow-1.png", 1.0, 19.0], @@ -1979,14 +1979,14 @@ var themedButtonValues = nil, ]); 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], - [@"size-indicator", CGSizeMake(12, 12)] - ]; + [ + [@"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], + [@"size-indicator", CGSizeMake(12, 12)] + ]; [self registerThemeValues:themedWindowViewValues forView:windowView]; @@ -2016,22 +2016,22 @@ var themedButtonValues = nil, closeActiveImage = PatternImage(@"HUD/window-close-active.png", 18.0, 18.0), themeValues = - [ - [@"close-image-size", CPSizeMake(18.0, 18.0)], - [@"close-image-origin", CPPointMake(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-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], - ]; + [ + [@"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-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]; @@ -2049,6 +2049,13 @@ var themedButtonValues = nil, [@"window-standard-head-right.png", 5.0, 31.0] ], PatternIsHorizontal), + bezelHeadInactiveColor = PatternColor( + [ + [@"window-standard-head-inactive-left.png", 5.0, 31.0], + [@"window-standard-head-inactive-center.png", 1.0, 31.0], + [@"window-standard-head-inactive-right.png", 5.0, 31.0] + ], PatternIsHorizontal), + solidColor = PatternColor( [ [@"window-standard-head-solid-top-left.png", 5.0, 1.0], @@ -2077,50 +2084,56 @@ var themedButtonValues = nil, ]), closeButtonImage = PatternImage(@"window-standard-close-button.png", 16, 16), - closeButtonImageHighlighted = PatternImage(@"window-standard-button-highlighted.png",16, 16), - unsavedButtonImage = PatternImage(@"window-standard-button-unsaved.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), + 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), sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), resizeIndicator = PatternImage(@"window-resize-indicator.png", 12, 12), themeValues = - [ - [@"gradient-height", 31.0], - [@"bezel-head-color", bezelHeadColor], - [@"solid-color", solidColor], + [ + [@"gradient-height", 31.0], + [@"bezel-head-color", bezelHeadInactiveColor, CPThemeStateNormal], + [@"bezel-head-color", bezelHeadColor, CPThemeStateKeyWindow], + [@"bezel-head-color", bezelHeadColor, CPThemeStateMainWindow], + [@"solid-color", solidColor], - [@"title-font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], - [@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:0.75]], - [@"title-text-color", [CPColor colorWithWhite:22.0 / 255.0 alpha:1], CPThemeStateKeyWindow], - [@"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], + [@"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-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", [CPColor colorWithHexString:@"858585"]], - [@"body-color", bezelColor], - [@"title-bar-height", 31], + [@"divider-color", [CPColor colorWithHexString:@"858585"]], + [@"body-color", bezelColor], + [@"title-bar-height", 31], - [@"unsaved-image-button" ,unsavedButtonImage], - [@"unsaved-image-highlighted-button" ,unsavedButtonImageHighlighted], - [@"close-image-button" ,closeButtonImage], - [@"close-image-highlighted-button" ,closeButtonImageHighlighted], - [@"minimize-image-button" ,minimizeButtonImage], - [@"minimize-image-highlighted-button" ,minimizeButtonImageHighlighted], + [@"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", CPSizeMake(16.0, 16.0)], - [@"close-image-origin", CPPointMake(8.0, 10.0)], + [@"close-image-size", CGSizeMake(16.0, 16.0)], + [@"close-image-origin", CGPointMake(8.0, 10.0)], - [@"resize-indicator", resizeIndicator], - [@"attached-sheet-shadow-color", sheetShadow], - [@"size-indicator", CGSizeMake(12, 12)] - ]; + [@"resize-indicator", resizeIndicator], + [@"attached-sheet-shadow-color", sheetShadow], + [@"size-indicator", CGSizeMake(12, 12)] + ]; [self registerThemeValues:themeValues forView:standardWindowView inherit:themedWindowViewValues]; @@ -2147,11 +2160,11 @@ var themedButtonValues = nil, sheetShadow = PatternColor(@"window-attached-sheet-shadow.png", 9, 8), themeValues = - [ - [@"body-color", bezelColor], - [@"height-shadow", 8], - [@"attached-sheet-shadow-color", sheetShadow] - ]; + [ + [@"body-color", bezelColor], + [@"height-shadow", 8], + [@"attached-sheet-shadow-color", sheetShadow] + ]; [self registerThemeValues:themeValues forView:docModalWindowView inherit:themedWindowViewValues]; @@ -2167,7 +2180,7 @@ var themedButtonValues = nil, nil, [@"toolbar-background-center.png", 1.0, 58.0], [@"toolbar-background-bottom.png", 1.0, 1.0] - ], PatternIsVertical) + ], PatternIsVertical), themeValues = [ @@ -2567,7 +2580,7 @@ var themedButtonValues = nil, imageSelectedHighlighted = PatternImage("HUD/radio-image-selected-highlighted.png", 21.0, 21.0), imageSelectedDisabled = PatternImage("HUD/radio-image-selected-disabled.png", 21.0, 21.0), imageDisabled = PatternImage("HUD/radio-image-disabled.png", 21.0, 21.0), - imageHighlighted = PatternImage("HUD/radio-image-highlighted.png", 21.0, 21.0); + imageHighlighted = PatternImage("HUD/radio-image-highlighted.png", 21.0, 21.0), hudSpecific = [ @@ -2577,9 +2590,10 @@ var themedButtonValues = nil, [@"image", imageHighlighted, CPThemeStateHighlighted], [@"image", imageDisabled, CPThemeStateDisabled], [@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled] - ] + ]; [self registerThemeValues:[self defaultThemeOverridesAddedTo:hudSpecific] forView:button inherit:themedRadioButtonValues]; return button; } + @end