/Frameworks/AppKit/browser.platform/CPSegmentedControl.j

http://github.com/jfahrenkrug/MapKit-HelloWorld · Unknown · 522 lines · 522 code · 0 blank · 0 comment · 0 complexity · 06cdee77051c9bf977befd173fbe6820 MD5 · raw file

  1. I;20;Foundation/CPArray.ji;11;CPControl.jc;20227;
  2. CPSegmentSwitchTrackingSelectOne=0;
  3. CPSegmentSwitchTrackingSelectAny=1;
  4. CPSegmentSwitchTrackingMomentary=2;
  5. var _1=objj_allocateClassPair(CPControl,"CPSegmentedControl"),_2=_1.isa;
  6. class_addIvars(_1,[new objj_ivar("_segments"),new objj_ivar("_themeStates"),new objj_ivar("_selectedSegment"),new objj_ivar("_segmentStyle"),new objj_ivar("_trackingMode"),new objj_ivar("_trackingSegment"),new objj_ivar("_trackingHighlighted")]);
  7. objj_registerClassPair(_1);
  8. objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));
  9. class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){
  10. with(_3){
  11. _segments=[];
  12. _themeStates=[];
  13. _3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"initWithFrame:",_5);
  14. if(_3){
  15. _selectedSegment=-1;
  16. _trackingMode=CPSegmentSwitchTrackingSelectOne;
  17. }
  18. return _3;
  19. }
  20. }),new objj_method(sel_getUid("selectedTag"),function(_6,_7){
  21. with(_6){
  22. return _segments[_selectedSegment].tag;
  23. }
  24. }),new objj_method(sel_getUid("setSegmentCount:"),function(_8,_9,_a){
  25. with(_8){
  26. if(_segments.length==_a){
  27. return;
  28. }
  29. var _b=CGRectGetHeight(objj_msgSend(_8,"bounds"));
  30. if(_segments.length<_a){
  31. for(var _c=_segments.length;_c<_a;++_c){
  32. _segments[_c]=objj_msgSend(objj_msgSend(_CPSegmentItem,"alloc"),"init");
  33. _themeStates[_c]=CPThemeStateNormal;
  34. }
  35. }else{
  36. if(_a<_segments.length){
  37. for(var _c=_a;_c<_segments.length;++_c){
  38. _segments[_c]=nil;
  39. }
  40. }
  41. }
  42. if(_selectedSegment<_segments.length){
  43. _selectedSegment=-1;
  44. }
  45. objj_msgSend(_8,"tileWithChangedSegment:",0);
  46. }
  47. }),new objj_method(sel_getUid("segmentCount"),function(_d,_e){
  48. with(_d){
  49. return _segments.length;
  50. }
  51. }),new objj_method(sel_getUid("setSelectedSegment:"),function(_f,_10,_11){
  52. with(_f){
  53. objj_msgSend(_f,"setSelected:forSegment:",YES,_11);
  54. }
  55. }),new objj_method(sel_getUid("selectedSegment"),function(_12,_13){
  56. with(_12){
  57. return _selectedSegment;
  58. }
  59. }),new objj_method(sel_getUid("selectSegmentWithTag:"),function(_14,_15,_16){
  60. with(_14){
  61. var _17=0;
  62. for(;_17<_segments.length;++_17){
  63. if(_segments[_17].tag==_16){
  64. objj_msgSend(_14,"setSelectedSegment:",_17);
  65. return YES;
  66. }
  67. }
  68. return NO;
  69. }
  70. }),new objj_method(sel_getUid("isTracking"),function(_18,_19){
  71. with(_18){
  72. }
  73. }),new objj_method(sel_getUid("setTrackingMode:"),function(_1a,_1b,_1c){
  74. with(_1a){
  75. if(_trackingMode==_1c){
  76. return;
  77. }
  78. _trackingMode=_1c;
  79. if(_trackingMode==CPSegmentSwitchTrackingSelectOne){
  80. var _1d=0,_1e=NO;
  81. for(;_1d<_segments.length;++_1d){
  82. if(_segments[_1d].selected){
  83. if(_1e){
  84. objj_msgSend(_1a,"setSelected:forSegment:",NO,_1d);
  85. }else{
  86. _1e=YES;
  87. }
  88. }
  89. }
  90. }else{
  91. if(_trackingMode==CPSegmentSwitchTrackingMomentary){
  92. var _1d=0;
  93. for(;_1d<_segments.length;++_1d){
  94. if(_segments[_1d].selected){
  95. objj_msgSend(_1a,"setSelected:forSegment:",NO,_1d);
  96. }
  97. }
  98. }
  99. }
  100. }
  101. }),new objj_method(sel_getUid("trackingMode"),function(_1f,_20){
  102. with(_1f){
  103. return _trackingMode;
  104. }
  105. }),new objj_method(sel_getUid("setWidth:forSegment:"),function(_21,_22,_23,_24){
  106. with(_21){
  107. _segments[_24].width=_23;
  108. objj_msgSend(_21,"tileWithChangedSegment:",_24);
  109. }
  110. }),new objj_method(sel_getUid("widthForSegment:"),function(_25,_26,_27){
  111. with(_25){
  112. return _segments[_27].width;
  113. }
  114. }),new objj_method(sel_getUid("setImage:forSegment:"),function(_28,_29,_2a,_2b){
  115. with(_28){
  116. var _2c=_segments[_2b];
  117. _2c.image=_2a;
  118. objj_msgSend(_28,"tileWithChangedSegment:",_2b);
  119. }
  120. }),new objj_method(sel_getUid("imageForSegment:"),function(_2d,_2e,_2f){
  121. with(_2d){
  122. return _segments[_2f].image;
  123. }
  124. }),new objj_method(sel_getUid("setLabel:forSegment:"),function(_30,_31,_32,_33){
  125. with(_30){
  126. var _34=_segments[_33];
  127. _segments[_33].label=_32;
  128. objj_msgSend(_30,"tileWithChangedSegment:",_33);
  129. }
  130. }),new objj_method(sel_getUid("labelForSegment:"),function(_35,_36,_37){
  131. with(_35){
  132. return _segments[_37].label;
  133. }
  134. }),new objj_method(sel_getUid("setMenu:forSegment:"),function(_38,_39,_3a,_3b){
  135. with(_38){
  136. _segments[_3b].menu=_3a;
  137. }
  138. }),new objj_method(sel_getUid("menuForSegment:"),function(_3c,_3d,_3e){
  139. with(_3c){
  140. return _segments[_3e].menu;
  141. }
  142. }),new objj_method(sel_getUid("setSelected:forSegment:"),function(_3f,_40,_41,_42){
  143. with(_3f){
  144. var _43=_segments[_42];
  145. if(_43.selected==_41){
  146. return;
  147. }
  148. _43.selected=_41;
  149. _themeStates[_42]=_41?CPThemeStateSelected:CPThemeStateNormal;
  150. if(_41){
  151. var _44=_selectedSegment;
  152. _selectedSegment=_42;
  153. if(_trackingMode==CPSegmentSwitchTrackingSelectOne&&_44!=_42&&_44!=-1){
  154. _segments[_44].selected=NO;
  155. _themeStates[_44]=CPThemeStateNormal;
  156. objj_msgSend(_3f,"drawSegmentBezel:highlight:",_44,NO);
  157. }
  158. }
  159. if(_trackingMode!=CPSegmentSwitchTrackingMomentary){
  160. objj_msgSend(_3f,"drawSegmentBezel:highlight:",_42,NO);
  161. }
  162. objj_msgSend(_3f,"setNeedsLayout");
  163. objj_msgSend(_3f,"setNeedsDisplay:",YES);
  164. }
  165. }),new objj_method(sel_getUid("isSelectedForSegment:"),function(_45,_46,_47){
  166. with(_45){
  167. return _segments[_47].selected;
  168. }
  169. }),new objj_method(sel_getUid("setEnabled:forSegment:"),function(_48,_49,_4a,_4b){
  170. with(_48){
  171. _segments[_4b].enabled=_4a;
  172. objj_msgSend(_48,"setNeedsLayout");
  173. objj_msgSend(_48,"setNeedsDisplay:",YES);
  174. }
  175. }),new objj_method(sel_getUid("isEnabledForSegment:"),function(_4c,_4d,_4e){
  176. with(_4c){
  177. return _segments[_4e].enabled;
  178. }
  179. }),new objj_method(sel_getUid("setTag:forSegment:"),function(_4f,_50,_51,_52){
  180. with(_4f){
  181. _segments[_52].tag=_51;
  182. }
  183. }),new objj_method(sel_getUid("tagForSegment:"),function(_53,_54,_55){
  184. with(_53){
  185. return _segments[_55].tag;
  186. }
  187. }),new objj_method(sel_getUid("drawSegmentBezel:highlight:"),function(_56,_57,_58,_59){
  188. with(_56){
  189. if(_59){
  190. _themeStates[_58]|=CPThemeStateHighlighted;
  191. }else{
  192. _themeStates[_58]&=~CPThemeStateHighlighted;
  193. }
  194. objj_msgSend(_56,"setNeedsLayout");
  195. objj_msgSend(_56,"setNeedsDisplay:",YES);
  196. }
  197. }),new objj_method(sel_getUid("_leftOffsetForSegment:"),function(_5a,_5b,_5c){
  198. with(_5a){
  199. var _5d=objj_msgSend(_5a,"currentValueForThemeAttribute:","bezel-inset");
  200. if(_5c==0){
  201. return _5d.left;
  202. }
  203. var _5e=objj_msgSend(_5a,"currentValueForThemeAttribute:","divider-thickness");
  204. return objj_msgSend(_5a,"_leftOffsetForSegment:",_5c-1)+objj_msgSend(_5a,"widthForSegment:",_5c-1)+_5e;
  205. }
  206. }),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_5f,_60,_61){
  207. with(_5f){
  208. var _62=objj_msgSend(_5f,"currentValueForThemeAttribute:","default-height"),_63=objj_msgSend(_5f,"currentValueForThemeAttribute:","content-inset"),_64=objj_msgSend(_5f,"currentValueForThemeAttribute:","bezel-inset"),_65=objj_msgSend(_5f,"bounds");
  209. if(_61==="left-segment-bezel"){
  210. return CGRectMake(_64.left,_64.top,_63.left,_62);
  211. }else{
  212. if(_61==="right-segment-bezel"){
  213. return CGRectMake(CGRectGetMaxX(_65)-_63.right-_64.right,_64.top,_63.right,_62);
  214. }else{
  215. if(_61.substring(0,"segment-bezel".length)=="segment-bezel"){
  216. var _66=parseInt(_61.substring("segment-bezel-".length),10),_67=CGRectCreateCopy(_segments[_66].frame);
  217. if(_66==0){
  218. _67.origin.x+=_63.left;
  219. _67.size.width-=_63.left;
  220. }
  221. if(_66==_segments.length-1){
  222. _67.size.width-=_63.right;
  223. }
  224. return _67;
  225. }else{
  226. if(_61.substring(0,"divider-bezel".length)=="divider-bezel"){
  227. var _66=parseInt(_61.substring("divider-bezel-".length),10),_68=objj_msgSend(_5f,"widthForSegment:",_66),_69=objj_msgSend(_5f,"_leftOffsetForSegment:",_66),_6a=objj_msgSend(_5f,"currentValueForThemeAttribute:","divider-thickness");
  228. return CGRectMake(_69+_68,_64.top,_6a,_62);
  229. }else{
  230. if(_61.substring(0,"segment-content".length)=="segment-content"){
  231. var _66=parseInt(_61.substring("segment-content-".length),10);
  232. return objj_msgSend(_5f,"contentFrameForSegment:",_66);
  233. }
  234. }
  235. }
  236. }
  237. }
  238. return objj_msgSendSuper({receiver:_5f,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_61);
  239. }
  240. }),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_6b,_6c,_6d){
  241. with(_6b){
  242. if(_6d.substring(0,"segment-content".length)=="segment-content"){
  243. return objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}});
  244. }
  245. return objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}});
  246. }
  247. }),new objj_method(sel_getUid("layoutSubviews"),function(_6e,_6f){
  248. with(_6e){
  249. var _70=objj_msgSend(_6e,"valueForThemeAttribute:inState:","left-segment-bezel-color",_themeStates[0]);
  250. var _71=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","left-segment-bezel",CPWindowBelow,nil);
  251. objj_msgSend(_71,"setBackgroundColor:",_70);
  252. var _72=objj_msgSend(_6e,"valueForThemeAttribute:inState:","right-segment-bezel-color",_themeStates[_themeStates.length-1]);
  253. var _73=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","right-segment-bezel",CPWindowBelow,nil);
  254. objj_msgSend(_73,"setBackgroundColor:",_72);
  255. for(var i=0,_75=_themeStates.length;i<_75;i++){
  256. var _76=_themeStates[i];
  257. _76|=_themeState&CPThemeStateDisabled;
  258. var _77=objj_msgSend(_6e,"valueForThemeAttribute:inState:","center-segment-bezel-color",_76);
  259. var _78=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","segment-bezel-"+i,CPWindowBelow,nil);
  260. objj_msgSend(_78,"setBackgroundColor:",_77);
  261. var _79=_segments[i];
  262. var _7a=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","segment-content-"+i,CPWindowAbove,"segment-bezel-"+i);
  263. objj_msgSend(_7a,"setText:",_79.label);
  264. objj_msgSend(_7a,"setImage:",_79.image);
  265. objj_msgSend(_7a,"setFont:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","font",_76));
  266. objj_msgSend(_7a,"setTextColor:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-color",_76));
  267. objj_msgSend(_7a,"setAlignment:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","alignment",_76));
  268. objj_msgSend(_7a,"setVerticalAlignment:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","vertical-alignment",_76));
  269. objj_msgSend(_7a,"setLineBreakMode:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","line-break-mode",_76));
  270. objj_msgSend(_7a,"setTextShadowColor:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-shadow-color",_76));
  271. objj_msgSend(_7a,"setTextShadowOffset:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-shadow-offset",_76));
  272. objj_msgSend(_7a,"setImageScaling:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","image-scaling",_76));
  273. if(_79.image&&_79.label){
  274. objj_msgSend(_7a,"setImagePosition:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","image-position",_76));
  275. }else{
  276. if(_79.image){
  277. objj_msgSend(_7a,"setImagePosition:",CPImageOnly);
  278. }
  279. }
  280. if(i==_75-1){
  281. continue;
  282. }
  283. var _7b=_themeStates[i]|_themeStates[i+1];
  284. _7b=(_7b&CPThemeStateSelected&~CPThemeStateHighlighted)?CPThemeStateSelected:CPThemeStateNormal;
  285. _7b|=_themeState&CPThemeStateDisabled;
  286. var _7c=objj_msgSend(_6e,"valueForThemeAttribute:inState:","divider-bezel-color",_7b);
  287. var _7d=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","divider-bezel-"+i,CPWindowBelow,nil);
  288. objj_msgSend(_7d,"setBackgroundColor:",_7c);
  289. }
  290. }
  291. }),new objj_method(sel_getUid("drawSegment:highlight:"),function(_7e,_7f,_80,_81){
  292. with(_7e){
  293. }
  294. }),new objj_method(sel_getUid("tileWithChangedSegment:"),function(_82,_83,_84){
  295. with(_82){
  296. if(_84>=_segments.length){
  297. return;
  298. }
  299. var _85=_segments[_84],_86=_85.width,_87=_themeStates[_84]|(_themeState&CPThemeStateDisabled),_88=objj_msgSend(_82,"valueForThemeAttribute:inState:","content-inset",_87),_89=objj_msgSend(_82,"valueForThemeAttribute:inState:","font",_87);
  300. if(!_86){
  301. if(_85.image&&_85.label){
  302. _86=objj_msgSend(_85.label,"sizeWithFont:",_89).width+objj_msgSend(_85.image,"size").width+_88.left+_88.right;
  303. }else{
  304. if(_85.image){
  305. _86=objj_msgSend(_85.image,"size").width+_88.left+_88.right;
  306. }else{
  307. if(_85.label){
  308. _86=objj_msgSend(_85.label,"sizeWithFont:",_89).width+_88.left+_88.right;
  309. }else{
  310. _86=0;
  311. }
  312. }
  313. }
  314. }
  315. var _8a=_86-CGRectGetWidth(_85.frame);
  316. if(!_8a){
  317. return;
  318. }
  319. var _8b=objj_msgSend(_82,"frame");
  320. objj_msgSend(_82,"setFrameSize:",CGSizeMake(CGRectGetWidth(_8b)+_8a,CGRectGetHeight(_8b)));
  321. _85.width=_86;
  322. _85.frame=objj_msgSend(_82,"frameForSegment:",_84);
  323. var _8c=_84+1;
  324. for(;_8c<_segments.length;++_8c){
  325. _segments[_8c].frame.origin.x+=_8a;
  326. objj_msgSend(_82,"drawSegmentBezel:highlight:",_8c,NO);
  327. objj_msgSend(_82,"drawSegment:highlight:",_8c,NO);
  328. }
  329. objj_msgSend(_82,"drawSegmentBezel:highlight:",_84,NO);
  330. objj_msgSend(_82,"drawSegment:highlight:",_84,NO);
  331. objj_msgSend(_82,"setNeedsLayout");
  332. objj_msgSend(_82,"setNeedsDisplay:",YES);
  333. }
  334. }),new objj_method(sel_getUid("frameForSegment:"),function(_8d,_8e,_8f){
  335. with(_8d){
  336. return objj_msgSend(_8d,"bezelFrameForSegment:",_8f);
  337. }
  338. }),new objj_method(sel_getUid("bezelFrameForSegment:"),function(_90,_91,_92){
  339. with(_90){
  340. var _93=objj_msgSend(_90,"currentValueForThemeAttribute:","default-height"),_94=objj_msgSend(_90,"currentValueForThemeAttribute:","bezel-inset"),_95=objj_msgSend(_90,"widthForSegment:",_92),_96=objj_msgSend(_90,"_leftOffsetForSegment:",_92);
  341. return CGRectMake(_96,_94.top,_95,_93);
  342. }
  343. }),new objj_method(sel_getUid("contentFrameForSegment:"),function(_97,_98,_99){
  344. with(_97){
  345. var _9a=objj_msgSend(_97,"currentValueForThemeAttribute:","default-height"),_9b=objj_msgSend(_97,"currentValueForThemeAttribute:","content-inset"),_9c=objj_msgSend(_97,"widthForSegment:",_99),_9d=objj_msgSend(_97,"_leftOffsetForSegment:",_99);
  346. return CGRectMake(_9d+_9b.left,_9b.top,_9c-_9b.left-_9b.right,_9a-_9b.top-_9b.bottom);
  347. }
  348. }),new objj_method(sel_getUid("testSegment:"),function(_9e,_9f,_a0){
  349. with(_9e){
  350. var _a1=objj_msgSend(_9e,"convertPoint:fromView:",_a0,nil),_a2=_segments.length;
  351. while(_a2--){
  352. if(CGRectContainsPoint(_segments[_a2].frame,_a0)){
  353. return _a2;
  354. }
  355. }
  356. return -1;
  357. }
  358. }),new objj_method(sel_getUid("mouseDown:"),function(_a3,_a4,_a5){
  359. with(_a3){
  360. if(!objj_msgSend(_a3,"isEnabled")){
  361. return;
  362. }
  363. objj_msgSend(_a3,"trackSegment:",_a5);
  364. }
  365. }),new objj_method(sel_getUid("mouseUp:"),function(_a6,_a7,_a8){
  366. with(_a6){
  367. }
  368. }),new objj_method(sel_getUid("trackSegment:"),function(_a9,_aa,_ab){
  369. with(_a9){
  370. var _ac=objj_msgSend(_ab,"type"),_ad=objj_msgSend(_a9,"convertPoint:fromView:",objj_msgSend(_ab,"locationInWindow"),nil);
  371. if(_ac==CPLeftMouseUp){
  372. if(_trackingSegment==-1){
  373. return;
  374. }
  375. if(CGRectContainsPoint(_segments[_trackingSegment].frame,_ad)){
  376. if(_trackingMode==CPSegmentSwitchTrackingSelectAny){
  377. objj_msgSend(_a9,"setSelected:forSegment:",!objj_msgSend(_a9,"isSelectedForSegment:",_trackingSegment),_trackingSegment);
  378. _selectedSegment=_trackingSegment;
  379. }else{
  380. objj_msgSend(_a9,"setSelected:forSegment:",YES,_trackingSegment);
  381. }
  382. objj_msgSend(_a9,"sendAction:to:",objj_msgSend(_a9,"action"),objj_msgSend(_a9,"target"));
  383. if(_trackingMode==CPSegmentSwitchTrackingMomentary){
  384. objj_msgSend(_a9,"setSelected:forSegment:",NO,_trackingSegment);
  385. _selectedSegment=-1;
  386. }
  387. }
  388. objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,NO);
  389. _trackingSegment=-1;
  390. return;
  391. }
  392. if(_ac==CPLeftMouseDown){
  393. _trackingHighlighted=YES;
  394. _trackingSegment=objj_msgSend(_a9,"testSegment:",_ad);
  395. objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,YES);
  396. }else{
  397. if(_ac==CPLeftMouseDragged){
  398. if(_trackingSegment==-1){
  399. return;
  400. }
  401. var _ae=CGRectContainsPoint(_segments[_trackingSegment].frame,_ad);
  402. if(_ae!=_trackingHighlighted){
  403. _trackingHighlighted=_ae;
  404. objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,_trackingHighlighted);
  405. }
  406. }
  407. }
  408. objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_a9,sel_getUid("trackSegment:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES);
  409. }
  410. }),new objj_method(sel_getUid("setFont:"),function(_af,_b0,_b1){
  411. with(_af){
  412. objj_msgSendSuper({receiver:_af,super_class:objj_getClass("CPControl")},"setFont:",_b1);
  413. objj_msgSend(_af,"tileWithChangedSegment:",0);
  414. }
  415. })]);
  416. class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_b2,_b3){
  417. with(_b2){
  418. return "segmented-control";
  419. }
  420. }),new objj_method(sel_getUid("themeAttributes"),function(_b4,_b5){
  421. with(_b4){
  422. return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[CPCenterTextAlignment,CPCenterVerticalTextAlignment,CPImageLeft,CPScaleNone,{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},nil,nil,nil,nil,1,24],["alignment","vertical-alignment","image-position","image-scaling","bezel-inset","content-inset","left-segment-bezel-color","right-segment-bezel-color","center-segment-bezel-color","divider-bezel-color","divider-thickness","default-height"]);
  423. }
  424. })]);
  425. var _b6="CPSegmentedControlSegmentsKey",_b7="CPSegmentedControlSelectedKey",_b8="CPSegmentedControlSegmentStyleKey",_b9="CPSegmentedControlTrackingModeKey";
  426. var _1=objj_getClass("CPSegmentedControl");
  427. if(!_1){
  428. objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSegmentedControl\""));
  429. }
  430. var _2=_1.isa;
  431. class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_ba,_bb,_bc){
  432. with(_ba){
  433. _ba=objj_msgSendSuper({receiver:_ba,super_class:objj_getClass("CPControl")},"initWithCoder:",_bc);
  434. if(_ba){
  435. var _bd=objj_msgSend(_ba,"frame"),_be=_bd.size.width;
  436. _bd.size.width=0;
  437. objj_msgSend(_ba,"setFrame:",_bd);
  438. _segments=objj_msgSend(_bc,"decodeObjectForKey:",_b6);
  439. _segmentStyle=objj_msgSend(_bc,"decodeIntForKey:",_b8);
  440. _themeStates=[];
  441. if(objj_msgSend(_bc,"containsValueForKey:",_b7)){
  442. _selectedSegment=objj_msgSend(_bc,"decodeIntForKey:",_b7);
  443. }else{
  444. _selectedSegment=-1;
  445. }
  446. if(objj_msgSend(_bc,"containsValueForKey:",_b9)){
  447. _trackingMode=objj_msgSend(_bc,"decodeIntForKey:",_b9);
  448. }else{
  449. _trackingMode=CPSegmentSwitchTrackingSelectOne;
  450. }
  451. for(var i=0;i<_segments.length;i++){
  452. _themeStates[i]=_segments[i].selected?CPThemeStateSelected:CPThemeStateNormal;
  453. objj_msgSend(_ba,"tileWithChangedSegment:",i);
  454. }
  455. var _c0=MAX(_be-objj_msgSend(_ba,"frame").size.width,0),_c1=FLOOR(_c0/_segments.length);
  456. for(var i=0;i<_segments.length;i++){
  457. objj_msgSend(_ba,"setWidth:forSegment:",_segments[i].width+_c1,i);
  458. }
  459. objj_msgSend(_ba,"tileWithChangedSegment:",0);
  460. }
  461. return _ba;
  462. }
  463. }),new objj_method(sel_getUid("encodeWithCoder:"),function(_c2,_c3,_c4){
  464. with(_c2){
  465. objj_msgSendSuper({receiver:_c2,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_c4);
  466. objj_msgSend(_c4,"encodeObject:forKey:",_segments,_b6);
  467. objj_msgSend(_c4,"encodeInt:forKey:",_selectedSegment,_b7);
  468. objj_msgSend(_c4,"encodeInt:forKey:",_segmentStyle,_b8);
  469. objj_msgSend(_c4,"encodeInt:forKey:",_trackingMode,_b9);
  470. }
  471. })]);
  472. var _1=objj_allocateClassPair(CPObject,"_CPSegmentItem"),_2=_1.isa;
  473. class_addIvars(_1,[new objj_ivar("image"),new objj_ivar("label"),new objj_ivar("menu"),new objj_ivar("selected"),new objj_ivar("enabled"),new objj_ivar("tag"),new objj_ivar("width"),new objj_ivar("frame")]);
  474. objj_registerClassPair(_1);
  475. objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));
  476. class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_c5,_c6){
  477. with(_c5){
  478. if(_c5=objj_msgSendSuper({receiver:_c5,super_class:objj_getClass("CPObject")},"init")){
  479. image=nil;
  480. label="";
  481. menu=nil;
  482. selected=NO;
  483. enabled=NO;
  484. tag=0;
  485. width=0;
  486. frame=CGRectMakeZero();
  487. }
  488. return _c5;
  489. }
  490. })]);
  491. var _c7="CPSegmentItemImageKey",_c8="CPSegmentItemLabelKey",_c9="CPSegmentItemMenuKey",_ca="CPSegmentItemSelectedKey",_cb="CPSegmentItemEnabledKey",_cc="CPSegmentItemTagKey",_cd="CPSegmentItemWidthKey";
  492. var _1=objj_getClass("_CPSegmentItem");
  493. if(!_1){
  494. objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPSegmentItem\""));
  495. }
  496. var _2=_1.isa;
  497. class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_ce,_cf,_d0){
  498. with(_ce){
  499. _ce=objj_msgSendSuper({receiver:_ce,super_class:objj_getClass("CPObject")},"init");
  500. if(_ce){
  501. image=objj_msgSend(_d0,"decodeObjectForKey:",_c7);
  502. label=objj_msgSend(_d0,"decodeObjectForKey:",_c8);
  503. menu=objj_msgSend(_d0,"decodeObjectForKey:",_c9);
  504. selected=objj_msgSend(_d0,"decodeBoolForKey:",_ca);
  505. enabled=objj_msgSend(_d0,"decodeBoolForKey:",_cb);
  506. tag=objj_msgSend(_d0,"decodeIntForKey:",_cc);
  507. width=objj_msgSend(_d0,"decodeFloatForKey:",_cd);
  508. frame=CGRectMakeZero();
  509. }
  510. return _ce;
  511. }
  512. }),new objj_method(sel_getUid("encodeWithCoder:"),function(_d1,_d2,_d3){
  513. with(_d1){
  514. objj_msgSend(_d3,"encodeObject:forKey:",image,_c7);
  515. objj_msgSend(_d3,"encodeObject:forKey:",label,_c8);
  516. objj_msgSend(_d3,"encodeObject:forKey:",menu,_c9);
  517. objj_msgSend(_d3,"encodeBool:forKey:",selected,_ca);
  518. objj_msgSend(_d3,"encodeBool:forKey:",enabled,_cb);
  519. objj_msgSend(_d3,"encodeInt:forKey:",tag,_cc);
  520. objj_msgSend(_d3,"encodeFloat:forKey:",width,_cd);
  521. }
  522. })]);