/Frameworks/AppKit/rhino.platform/CPDOMWindowLayer.j

http://github.com/polymar/polish · Unknown · 76 lines · 76 code · 0 blank · 0 comment · 0 complexity · 13733edce8749a2eee0f88f63ad023c4 MD5 · raw file

  1. I;20;Foundation/CPArray.jI;21;Foundation/CPObject.jc;2417;
  2. var _1=objj_allocateClassPair(CPObject,"CPDOMWindowLayer"),_2=_1.isa;
  3. class_addIvars(_1,[new objj_ivar("_level"),new objj_ivar("_windows"),new objj_ivar("_DOMElement")]);
  4. objj_registerClassPair(_1);
  5. objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));
  6. class_addMethods(_1,[new objj_method(sel_getUid("initWithLevel:"),function(_3,_4,_5){
  7. with(_3){
  8. _3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init");
  9. if(_3){
  10. _level=_5;
  11. _windows=[];
  12. _DOMElement=document.createElement("div");
  13. _DOMElement.style.position="absolute";
  14. _DOMElement.style.top="0px";
  15. _DOMElement.style.left="0px";
  16. _DOMElement.style.width="1px";
  17. _DOMElement.style.height="1px";
  18. }
  19. return _3;
  20. }
  21. }),new objj_method(sel_getUid("level"),function(_6,_7){
  22. with(_6){
  23. return _level;
  24. }
  25. }),new objj_method(sel_getUid("removeWindow:"),function(_8,_9,_a){
  26. with(_8){
  27. if(!_a._isVisible){
  28. return;
  29. }
  30. var _b=_a._index,_c=_windows.length-1;
  31. CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8;
  32. CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement;
  33. CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_a._DOMElement;
  34. objj_msgSend(_windows,"removeObjectAtIndex:",_a._index);
  35. for(;_b<_c;++_b){
  36. _windows[_b]._index=_b;
  37. _windows[_b]._DOMElement.style.zIndex=_b;
  38. }
  39. _a._isVisible=NO;
  40. }
  41. }),new objj_method(sel_getUid("insertWindow:atIndex:"),function(_d,_e,_f,_10){
  42. with(_d){
  43. var _11=objj_msgSend(_windows,"count"),_12=(_10==CPNotFound?_11:_10),_13=_f._isVisible;
  44. if(_13){
  45. _12=MIN(_12,_f._index);
  46. objj_msgSend(_windows,"removeObjectAtIndex:",_f._index);
  47. }else{
  48. ++_11;
  49. }
  50. if(_10==CPNotFound||_10>=_11){
  51. objj_msgSend(_windows,"addObject:",_f);
  52. }else{
  53. objj_msgSend(_windows,"insertObject:atIndex:",_f,_10);
  54. }
  55. for(;_12<_11;++_12){
  56. _windows[_12]._index=_12;
  57. _windows[_12]._DOMElement.style.zIndex=_12;
  58. }
  59. if(!_13){
  60. if(_f._DOMElement.CPDOMDisplayContext){
  61. _f._DOMElement.CPDOMDisplayContext[0]=-1;
  62. }
  63. CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6;
  64. CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement;
  65. CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_f._DOMElement;
  66. _f._isVisible=YES;
  67. if(objj_msgSend(_f,"isFullBridge")){
  68. objj_msgSend(_f,"setFrame:",objj_msgSend(_f._bridge,"contentBounds"));
  69. }
  70. }
  71. }
  72. }),new objj_method(sel_getUid("orderedWindows"),function(_14,_15){
  73. with(_14){
  74. return _windows;
  75. }
  76. })]);