81 fDragImage = dragImage; 82 fDragImageOffset = dragImageOffset; 83 84 super.startDrag(dsc, cursor, dragImage, dragImageOffset); 85 } 86 87 protected void startDrag(Transferable transferable, long[] formats, Map formatMap) { 88 DragGestureEvent trigger = getTrigger(); 89 InputEvent triggerEvent = trigger.getTriggerEvent(); 90 91 Point dragOrigin = trigger.getDragOrigin(); 92 int extModifiers = (triggerEvent.getModifiers() | triggerEvent.getModifiersEx()); 93 long timestamp = triggerEvent.getWhen(); 94 int clickCount = ((triggerEvent instanceof MouseEvent) ? (((MouseEvent) triggerEvent).getClickCount()) : 1); 95 96 // Get drag source component and its peer: 97 Component component = trigger.getComponent(); 98 Point componentOffset = new Point(); 99 ComponentPeer peer = component.getPeer(); 100 101 // For a lightweight component traverse up the hierarchy to the first heavyweight 102 // which will be used as the ComponentModel for the native drag source. 103 if (component.isLightweight()) { 104 Point loc = component.getLocation(); 105 componentOffset.translate(loc.x, loc.y); 106 107 for (Component parent = component.getParent(); parent != null; parent = parent.getParent()) { 108 if (parent.isLightweight() == false) { 109 peer = parent.getPeer(); 110 break; 111 } 112 113 loc = parent.getLocation(); 114 componentOffset.translate(loc.x, loc.y); 115 } 116 } 117 118 // Make sure the drop target is a ComponentModel: 119 if (!(peer instanceof LWComponentPeer)) 120 throw new IllegalArgumentException("DragSource's peer must be a ComponentModel."); 121 122 // Get model pointer (CButton.m and such) and its native peer: 123 LWComponentPeer model = (LWComponentPeer) peer; 124 CPlatformWindow platformWindow = (CPlatformWindow) model.getPlatformWindow(); 125 long nativeWindowPtr = platformWindow.getNSWindowPtr(); 126 127 // Get drag cursor: 128 Cursor cursor = this.getCursor(); | 81 fDragImage = dragImage; 82 fDragImageOffset = dragImageOffset; 83 84 super.startDrag(dsc, cursor, dragImage, dragImageOffset); 85 } 86 87 protected void startDrag(Transferable transferable, long[] formats, Map formatMap) { 88 DragGestureEvent trigger = getTrigger(); 89 InputEvent triggerEvent = trigger.getTriggerEvent(); 90 91 Point dragOrigin = trigger.getDragOrigin(); 92 int extModifiers = (triggerEvent.getModifiers() | triggerEvent.getModifiersEx()); 93 long timestamp = triggerEvent.getWhen(); 94 int clickCount = ((triggerEvent instanceof MouseEvent) ? (((MouseEvent) triggerEvent).getClickCount()) : 1); 95 96 // Get drag source component and its peer: 97 Component component = trigger.getComponent(); 98 Point componentOffset = new Point(); 99 ComponentPeer peer = component.getPeer(); 100 101 102 // For a lightweight component traverse up the hierarchy to the first heavyweight 103 // which will be used as the ComponentModel for the native drag source. 104 if (!(component instanceof Window)) { 105 Point loc = component.getLocation(); 106 componentOffset.translate(loc.x, loc.y); 107 108 for (Component parent = component.getParent(); parent != null; parent = parent.getParent()) { 109 if (parent instanceof Window) { 110 peer = parent.getPeer(); 111 break; 112 } 113 114 loc = parent.getLocation(); 115 componentOffset.translate(loc.x, loc.y); 116 } 117 } 118 119 // Make sure the drop target is a ComponentModel: 120 if (!(peer instanceof LWComponentPeer)) 121 throw new IllegalArgumentException("DragSource's peer must be a ComponentModel."); 122 123 // Get model pointer (CButton.m and such) and its native peer: 124 LWComponentPeer model = (LWComponentPeer) peer; 125 CPlatformWindow platformWindow = (CPlatformWindow) model.getPlatformWindow(); 126 long nativeWindowPtr = platformWindow.getNSWindowPtr(); 127 128 // Get drag cursor: 129 Cursor cursor = this.getCursor(); |