/Frameworks/AppKit/browser.platform/CPDragServer.j

http://github.com/jfahrenkrug/MapKit-HelloWorld · Unknown · 192 lines · 192 code · 0 blank · 0 comment · 0 complexity · 3db78567579af927ceb54dc3ad5ebd7e MD5 · raw file

  1. I;15;AppKit/CPView.jI;16;AppKit/CPEvent.jI;21;AppKit/CPPasteboard.jI;20;AppKit/CPImageView.jc;7236;
  2. var _1=nil;
  3. var _2=nil,_3=nil,_4=nil,_5=nil,_6=nil,_7=nil,_8=nil,_9=nil,_a=nil,_b=nil;
  4. var _c=NO,_d=NO,_e=NO,_f=NO,_10=NO;
  5. var _11=function(){
  6. objj_msgSend(_3,"autoscroll:",_a);
  7. };
  8. var _12=function(_13){
  9. _14(_13);
  10. };
  11. var _14=function(_15){
  12. if(objj_msgSend(_15,"type")==CPLeftMouseUp){
  13. if(_b!==nil){
  14. clearInterval(_b);
  15. }
  16. _b=nil;
  17. _6=objj_msgSend((objj_msgSend(_8,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_8:objj_msgSend(_8,"window")),"convertBridgeToBase:",objj_msgSend(objj_msgSend(_15,"window"),"convertBaseToBridge:",objj_msgSend(_15,"locationInWindow")));
  18. objj_msgSend(_2,"removeFromSuperview");
  19. objj_msgSend(_1._dragWindow,"orderOut:",nil);
  20. if(_8&&(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("prepareForDragOperation:"))||objj_msgSend(_8,"prepareForDragOperation:",_9))&&(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("performDragOperation:"))||objj_msgSend(_8,"performDragOperation:",_9))&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("concludeDragOperation:"))){
  21. objj_msgSend(_8,"concludeDragOperation:",_9);
  22. }
  23. if(_10){
  24. objj_msgSend(_3,"draggedImage:endedAt:operation:",objj_msgSend(_2,"image"),_6,NO);
  25. }else{
  26. if(_f){
  27. objj_msgSend(_3,"draggedView:endedAt:operation:",_2,_6,NO);
  28. }
  29. }
  30. _c=NO;
  31. _8=nil;
  32. return;
  33. }
  34. if(_b===nil){
  35. if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("autoscroll:"))){
  36. _b=setInterval(_11,100);
  37. }
  38. }
  39. _a=_15;
  40. objj_msgSend(CPApp,"setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:",_14,CPMouseMovedMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,0,NO);
  41. var _16=objj_msgSend(_15,"locationInWindow"),_17=bridgeLocation=objj_msgSend(objj_msgSend(_15,"window"),"convertBaseToBridge:",_16);
  42. var _18=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"_dragHitTest:pasteboard:",bridgeLocation,_7);
  43. _6=objj_msgSend((objj_msgSend(_18,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_18:objj_msgSend(_18,"window")),"convertBridgeToBase:",bridgeLocation);
  44. if(_18!=_8){
  45. if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingExited:"))){
  46. objj_msgSend(_8,"draggingExited:",_9);
  47. }
  48. _8=_18;
  49. if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingEntered:"))){
  50. objj_msgSend(_8,"draggingEntered:",_9);
  51. }
  52. }else{
  53. if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingUpdated:"))){
  54. objj_msgSend(_8,"draggingUpdated:",_9);
  55. }
  56. }
  57. _16.x-=_5.x;
  58. _16.y-=_5.y;
  59. objj_msgSend(_2,"setFrameOrigin:",_16);
  60. if(_e){
  61. objj_msgSend(_3,"draggedImage:movedTo:",objj_msgSend(_2,"image"),_16);
  62. }else{
  63. if(_d){
  64. objj_msgSend(_3,"draggedView:movedTo:",_2,_16);
  65. }
  66. }
  67. };
  68. var _19=objj_allocateClassPair(CPObject,"CPDraggingInfo"),_1a=_19.isa;
  69. objj_registerClassPair(_19);
  70. objj_addClassForBundle(_19,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));
  71. class_addMethods(_19,[new objj_method(sel_getUid("draggingSource"),function(_1b,_1c){
  72. with(_1b){
  73. return _3;
  74. }
  75. }),new objj_method(sel_getUid("draggingLocation"),function(_1d,_1e){
  76. with(_1d){
  77. return _6;
  78. }
  79. }),new objj_method(sel_getUid("draggingPasteboard"),function(_1f,_20){
  80. with(_1f){
  81. return _7;
  82. }
  83. }),new objj_method(sel_getUid("draggedImage"),function(_21,_22){
  84. with(_21){
  85. return objj_msgSend(_2,"image");
  86. }
  87. }),new objj_method(sel_getUid("draggedImageLocation"),function(_23,_24){
  88. with(_23){
  89. return objj_msgSend(_23,"draggedViewLocation");
  90. }
  91. }),new objj_method(sel_getUid("draggedViewLocation"),function(_25,_26){
  92. with(_25){
  93. return objj_msgSend((objj_msgSend(_8,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_8:objj_msgSend(_8,"window")),"convertBridgeToBase:",objj_msgSend(_2,"frame").origin);
  94. }
  95. }),new objj_method(sel_getUid("draggedView"),function(_27,_28){
  96. with(_27){
  97. return _2;
  98. }
  99. })]);
  100. var _19=objj_allocateClassPair(CPObject,"CPDragServer"),_1a=_19.isa;
  101. class_addIvars(_19,[new objj_ivar("_dragWindow"),new objj_ivar("_imageView")]);
  102. objj_registerClassPair(_19);
  103. objj_addClassForBundle(_19,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));
  104. class_addMethods(_19,[new objj_method(sel_getUid("init"),function(_29,_2a){
  105. with(_29){
  106. _29=objj_msgSendSuper({receiver:_29,super_class:objj_getClass("CPObject")},"init");
  107. if(_29){
  108. _dragWindow=objj_msgSend(objj_msgSend(CPWindow,"alloc"),"initWithContentRect:styleMask:",CPRectMakeZero(),CPBorderlessWindowMask);
  109. objj_msgSend(_dragWindow,"setLevel:",CPDraggingWindowLevel);
  110. }
  111. return _29;
  112. }
  113. }),new objj_method(sel_getUid("dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:"),function(_2b,_2c,_2d,_2e,_2f,_30,_31,_32,_33,_34){
  114. with(_2b){
  115. var _35=objj_msgSend(_31,"locationInWindow");
  116. _2=_2d;
  117. _3=_33;
  118. _4=_2e;
  119. _5=CPPointMake(_35.x-_2f.x,_35.y-_2f.y);
  120. _7=objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard);
  121. objj_msgSend(_dragWindow,"setFrameSize:",CGSizeMakeCopy(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"frame").size));
  122. objj_msgSend(_dragWindow,"orderFront:",_2b);
  123. objj_msgSend(_2d,"setFrameOrigin:",_2f);
  124. objj_msgSend(objj_msgSend(_dragWindow,"contentView"),"addSubview:",_2d);
  125. if(_c){
  126. if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:beganAt:"))){
  127. objj_msgSend(_3,"draggedImage:beganAt:",objj_msgSend(_2d,"image"),_2f);
  128. }
  129. _e=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:movedTo:"));
  130. _10=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:endAt:operation:"));
  131. _d=NO;
  132. _f=NO;
  133. }else{
  134. if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:beganAt:"))){
  135. objj_msgSend(_3,"draggedView:beganAt:",_2d,_2f);
  136. }
  137. _d=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:movedTo:"));
  138. _f=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:endedAt:operation:"));
  139. _e=NO;
  140. _10=NO;
  141. }
  142. _12(_31);
  143. }
  144. }),new objj_method(sel_getUid("dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:"),function(_36,_37,_38,_39,_3a,_3b,_3c,_3d,_3e,_3f){
  145. with(_36){
  146. _c=YES;
  147. if(!_imageView){
  148. _imageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CPRectMakeZero());
  149. }
  150. objj_msgSend(_imageView,"setImage:",_38);
  151. objj_msgSend(_imageView,"setFrameSize:",CGSizeMakeCopy(objj_msgSend(_38,"size")));
  152. objj_msgSend(_36,"dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:",_imageView,_39,_3a,_3b,_3c,_3d,_3e,_3f);
  153. }
  154. })]);
  155. class_addMethods(_1a,[new objj_method(sel_getUid("initialize"),function(_40,_41){
  156. with(_40){
  157. if(_40!=objj_msgSend(CPDragServer,"class")){
  158. return;
  159. }
  160. _9=objj_msgSend(objj_msgSend(CPDraggingInfo,"alloc"),"init");
  161. }
  162. }),new objj_method(sel_getUid("sharedDragServer"),function(_42,_43){
  163. with(_42){
  164. if(!_1){
  165. _1=objj_msgSend(objj_msgSend(CPDragServer,"alloc"),"init");
  166. }
  167. return _1;
  168. }
  169. })]);
  170. var _19=objj_getClass("CPWindow");
  171. if(!_19){
  172. objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPWindow\""));
  173. }
  174. var _1a=_19.isa;
  175. class_addMethods(_19,[new objj_method(sel_getUid("_dragHitTest:pasteboard:"),function(_44,_45,_46,_47){
  176. with(_44){
  177. if(!_inclusiveRegisteredDraggedTypes){
  178. return nil;
  179. }
  180. var _48={x:_46.x-(_frame.origin.x),y:_46.y-(_frame.origin.y)},_49=objj_msgSend(_windowView,"hitTest:",_48);
  181. while(_49&&!objj_msgSend(_47,"availableTypeFromArray:",objj_msgSend(_49,"registeredDraggedTypes"))){
  182. _49=objj_msgSend(_49,"superview");
  183. }
  184. if(_49){
  185. return _49;
  186. }
  187. if(objj_msgSend(_47,"availableTypeFromArray:",objj_msgSend(_44,"registeredDraggedTypes"))){
  188. return _44;
  189. }
  190. return nil;
  191. }
  192. })]);