From d01bc09b5bd2ce4147f6199dce4f2325478f059f Mon Sep 17 00:00:00 2001 From: Ross Boucher Date: Wed, 15 Apr 2009 00:32:34 -0700 Subject: [PATCH] Add focus rings for CPTextFields --- AppKit/CPTextField.j | 4 +- ...textfield-bezel-rounded-focused-center.png | Bin 0 -> 163 bytes .../textfield-bezel-rounded-focused-left.png | Bin 0 -> 804 bytes .../textfield-bezel-rounded-focused-right.png | Bin 0 -> 853 bytes .../textfield-bezel-square-focused-0.png | Bin 0 -> 204 bytes .../textfield-bezel-square-focused-1.png | Bin 0 -> 136 bytes .../textfield-bezel-square-focused-2.png | Bin 0 -> 223 bytes .../textfield-bezel-square-focused-3.png | Bin 0 -> 127 bytes .../textfield-bezel-square-focused-4.png | Bin 0 -> 109 bytes .../textfield-bezel-square-focused-5.png | Bin 0 -> 126 bytes .../textfield-bezel-square-focused-6.png | Bin 0 -> 191 bytes .../textfield-bezel-square-focused-7.png | Bin 0 -> 126 bytes .../textfield-bezel-square-focused-8.png | Bin 0 -> 184 bytes AppKit/Themes/Aristo/ThemeDescriptors.j | 49 +++++++++++++++--- 14 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-center.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-left.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-right.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-0.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-1.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-2.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-3.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-4.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-5.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-6.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-7.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-8.png diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 9467e5788..36ee9b3b8 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -684,8 +684,8 @@ CPTextFieldStatePlaceholder = 1 << 13; - (CGRect)bezelRectForBounds:(CFRect)bounds { var bezelInset = [self currentValueForThemedAttributeName:@"bezel-inset"]; - - if (!_CGInsetIsEmpty(bezelInset)) + + if (_CGInsetIsEmpty(bezelInset)) return bounds; bounds.origin.x += bezelInset.left; diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-center.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-center.png new file mode 100644 index 0000000000000000000000000000000000000000..2b08c2e66474dd7d5a3f06763bb0b87b2c416f18 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!3HGXPAxeOq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6}fu4IEGZ*N{Xm>HPJ?xnYo#{qk~k!-@xEymZqV> zp5Gr{+8>_3|Np;c6^RvoHNXC}HfDZa%b)PBPGF;eiwp~g0mE;3kx$_>d`f`^GI+ZB KxvX_jb$n*Wab%6AWzPF za=e$l`}7kJ9E{+EPM8Wqoy+S?f8b{MeU2y)E>TvW^4!WqizM02MWRk@5SxkyQB@-O z8*QG%P(P>;sw$ok zdvP3Z8G}T zwv@y|7&R?GvtCUqkOJ)=NkLVEQcgoYZzXduuZfE!niARaLOy4tbD(Kh_P7(+(6uxMXDdkr5fGld5XQ^j zJSz!_YvMv)n1nHeh!98dN)n$K5QaYoDfIE$9|-v(;p|ID2kST#WK>lj6-~&|M6c(LxJw#3ZCav zf9|g+lgLOTLhc_2#CrigIOt9Bt#^sZ#DfUM!X9PoiTrjtQ;n6H`TpU#-|k)a@vPyX zSg_JXiKdyeyNeQL=H*14OX(m6+xvZkz3%ssR=37zI3^s+K*iSYERWd{s8}5}!Eyk9 z5T6CuPS?YB*Yg``3m0!0nP@!o`G+_r4%M0?myC*94b4THR~AjEw0VSRr*mD*-Dmg(A^wNSmf-9%zG0`R4xv>5s;Vyas{X$PZkA zI;aXY&;VE0#BPYZxJCRF?1Hc0oBTck=kg-&FA;U{eP~D+QK-{+jX{*nmCeOs+0gna zy0*c4@Cp0?CsNf&NI!mfpQ0$DAPC9xe6pPZb$d3oPxi>p+|lN8>6tQ&b=+G7mORHE zc9Ws$^-2jMXpKVh{g7PGqrN?$cBe~?W}D7x2Nabmt47*y}&B~x!3<5nS8 zmx6$0nY2{6L*|3NsK7=mo)9X5vQ#o%B=N{hYnp>l-by9Si(nq4XA+^fniQFssrgJgY2t-v#@5X$ z!qu=pJZm?6qyN0TP$fTYS!}_~B2hTpUwwZRDXnBj&n&{*!Nb1l1S*M&x`dWHlL+r} z-cOzWfO?9(jPs=`={H@3i|1k3*x7rRE=9`lC9IC65`U^l7>04iRGVG82;;4`EooO1 zPeNm21rTr?mrgG_w9^jIrugk!GMsbCl}L~CARYoLIBaz2^Z5YjV{m}K1s^2}u13k0 zyfqG`_~BtFUG*H=sduSnN9Z?>MPT#aDq<0i!6Y7AwohHhqk7k+h66$3-KMr=2uV;U zUW|?o{bsjy+la6RRB~i6Kf&SHBLlpXz;z|=TC$ja%QVh(cx_BLMmr)r^%&ipaG(dt fu`p>Z{SjaQpxAMZ8mmCO00000NkvXXu0mjfe-)2= literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-0.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-0.png new file mode 100644 index 0000000000000000000000000000000000000000..09f9e4f4a1d4f426eca918bebe26a55e97a1ea5e GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ;0V1_0*t`W&k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X@;qG}Ln>}1#ZQY%pLJzEZ@uLM0*~C}gTe~DWM4fz05!} literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-1.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-1.png new file mode 100644 index 0000000000000000000000000000000000000000..88231173032a98ec6d4a0b2b6e1d9abdeeb2dff3 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrJ!3HEx`lwF8U}fi7AzZCsS>JinKgk978H@B}G)cnrI`;%-n3-(ZMWu&Swt4pMgQl&Z4LG hhmZHm|7T{AV3@7I6RiB&N*Sn&!PC{xWt~$(696MDCdvQ+ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-2.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e058f2d537412a0e70c34c309f2e8c5abfac5b70 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ;0V1_0*t`W&k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X8a-VcLn>}1#Zk<0}Z}#gr9OCM*XZ#qg zP{(>izTteck_uf0;v*jKdiofdqzQX$m24 T6>ePuI)=g1)z4*}Q$iB}2pUVK literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-3.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-3.png new file mode 100644 index 0000000000000000000000000000000000000000..50ef3a0cb667aabb472fa66016b88c0c752e87ab GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3C%nv#o$S!^URA>*{Qgk&$c-49pDP XQ7l)YmN^>bP0l+XkKIF2L* literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-4.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-4.png new file mode 100644 index 0000000000000000000000000000000000000000..9432d30c917e1aad20c86c98689e6d342bb49454 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X_&r@5Ln>}1{rdmk-l2h!fsKusLA$eLEl`TV)78&qol`;+ E0DoN_YybcN literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-5.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-5.png new file mode 100644 index 0000000000000000000000000000000000000000..63d4a0c834a209f894d4d2cb057a2e1db63e02c9 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3Cbk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5}1#ZhDzIKs=)CXnhq2>5^T%+7eY{6%6gu|@ mFiw~_zu||Vz-A^E35E}8QnywewWtGH#^CAd=d#Wzp$PzIUqIvl literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-7.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-7.png new file mode 100644 index 0000000000000000000000000000000000000000..c78b5f1fb956644f0d3f2b66569de85859560181 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MGBrSjv*DdlK%bp__+R9>vFlj=}8F*H@KC=8atX97}*%+ XL~?p6{?k?fs%7wW^>bP0l+XkKHgP4~ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-8.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-8.png new file mode 100644 index 0000000000000000000000000000000000000000..bda038c4cb53b6827a3c8921ead2224924d9d2c1 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ)0V2~P<~{>bk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XqC8z3Ln>}1)qHw#^8fSm^NnME>;IeF*qCT0kk9()vrhH= zzs#2s4mLZ~aCh8i`lv6auu-mKz7wlH^G9uke~gnN7>~?fpyk*k-|)lS!M<0ZZz f&eZ>`90m+egp@89DyiN8+QQ)J>gTe~DWM4fG-*In literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index 9f2e1cf36..990e018da 100644 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -110,7 +110,7 @@ + (CPTextField)themedStandardTextField { - var textfield = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 22.0)], + var textfield = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 29.0)], bezelColor = [CPColor colorWithPatternImage:[[CPNinePartImage alloc] initWithImageSlices: [ [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-0.png" size:CGSizeMake(2.0, 3.0)], @@ -122,15 +122,35 @@ [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-6.png" size:CGSizeMake(2.0, 2.0)], [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-7.png" size:CGSizeMake(1.0, 2.0)], [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-8.png" size:CGSizeMake(2.0, 2.0)] + ]]], + + bezelFocusedColor = [CPColor colorWithPatternImage:[[CPNinePartImage alloc] initWithImageSlices: + [ + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-0.png" size:CGSizeMake(6.0, 7.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-1.png" size:CGSizeMake(1.0, 7.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-2.png" size:CGSizeMake(6.0, 7.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-3.png" size:CGSizeMake(6.0, 1.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-4.png" size:CGSizeMake(1.0, 1.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-5.png" size:CGSizeMake(6.0, 1.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-6.png" size:CGSizeMake(6.0, 5.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-7.png" size:CGSizeMake(1.0, 5.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-square-focused-8.png" size:CGSizeMake(6.0, 5.0)] ]]]; [textfield setBezeled:YES]; + [textfield setValue:bezelColor forThemedAttributeName:@"bezel-color" inControlState:CPControlStateBezeled]; + [textfield setValue:bezelFocusedColor forThemedAttributeName:@"bezel-color" inControlState:CPControlStateBezeled|CPControlStateEditing]; + [textfield setValue:[CPFont systemFontOfSize:12.0] forThemedAttributeName:@"font"]; - [textfield setValue:CGInsetMake(5.0, 4.0, 2.0, 3.0) forThemedAttributeName:@"content-inset" inControlState:CPControlStateBezeled]; - + + [textfield setValue:CGInsetMake(9.0, 8.0, 5.0, 7.0) forThemedAttributeName:@"content-inset" inControlState:CPControlStateBezeled]; + + [textfield setValue:CGInsetMake(4.0, 4.0, 3.0, 4.0) forThemedAttributeName:@"bezel-inset" inControlState:CPControlStateBezeled]; + [textfield setValue:CGInsetMake(0.0, 0.0, 0.0, 0.0) forThemedAttributeName:@"bezel-inset" inControlState:CPControlStateBezeled|CPControlStateEditing]; + [textfield setValue:[CPColor colorWithCalibratedRed:189.0 / 255.0 green:199.0 / 255.0 blue:211.0 / 255.0 alpha:1.0] forThemedAttributeName:@"text-color" inControlState:CPTextFieldStatePlaceholder]; - + [textfield setPlaceholderString:"cheese cheese"]; [textfield setStringValue:""]; [textfield setEditable:YES]; @@ -140,22 +160,35 @@ + (CPTextField)themedRoundedTextField { - var textfield = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 22.0)], + var textfield = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 30.0)], bezelColor = [CPColor colorWithPatternImage:[[CPThreePartImage alloc] initWithImageSlices: [ [_CPCibCustomResource imageResourceWithName:"textfield-bezel-rounded-left.png" size:CGSizeMake(13.0, 22.0)], [_CPCibCustomResource imageResourceWithName:"textfield-bezel-rounded-center.png" size:CGSizeMake(1.0, 22.0)], [_CPCibCustomResource imageResourceWithName:"textfield-bezel-rounded-right.png" size:CGSizeMake(13.0, 22.0)] + ] isVertical:NO]], + + bezelFocusedColor = [CPColor colorWithPatternImage:[[CPThreePartImage alloc] initWithImageSlices: + [ + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-rounded-focused-left.png" size:CGSizeMake(17.0, 30.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-rounded-focused-center.png" size:CGSizeMake(1.0, 30.0)], + [_CPCibCustomResource imageResourceWithName:"textfield-bezel-rounded-focused-right.png" size:CGSizeMake(17.0, 30.0)] ] isVertical:NO]]; [textfield setBezeled:YES]; [textfield setBezelStyle:CPTextFieldRoundedBezel]; + [textfield setValue:bezelColor forThemedAttributeName:@"bezel-color" inControlState:CPControlStateBezeled | CPTextFieldStateRounded]; + [textfield setValue:bezelFocusedColor forThemedAttributeName:@"bezel-color" inControlState:CPControlStateBezeled | CPTextFieldStateRounded | CPControlStateEditing]; + [textfield setValue:[CPFont systemFontOfSize:12.0] forThemedAttributeName:@"font"]; - [textfield setValue:CGInsetMake(5.0, 10.0, 2.0, 10.0) forThemedAttributeName:@"content-inset" inControlState:CPControlStateBezeled | CPTextFieldStateRounded]; - + [textfield setValue:CGInsetMake(9.0, 14.0, 6.0, 14.0) forThemedAttributeName:@"content-inset" inControlState:CPControlStateBezeled | CPTextFieldStateRounded]; + + [textfield setValue:CGInsetMake(4.0, 4.0, 4.0, 4.0) forThemedAttributeName:@"bezel-inset" inControlState:CPControlStateBezeled|CPTextFieldStateRounded]; + [textfield setValue:CGInsetMake(0.0, 0.0, 0.0, 0.0) forThemedAttributeName:@"bezel-inset" inControlState:CPControlStateBezeled|CPTextFieldStateRounded|CPControlStateEditing]; + [textfield setValue:[CPColor colorWithCalibratedRed:189.0 / 255.0 green:199.0 / 255.0 blue:211.0 / 255.0 alpha:1.0] forThemedAttributeName:@"text-color" inControlState:CPTextFieldStatePlaceholder]; - + [textfield setPlaceholderString:"cheese cheese"]; [textfield setStringValue:""]; [textfield setEditable:YES];