package dragWindow;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MenuDetectEvent; import org.eclipse.swt.events.MenuDetectListener; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.MouseMoveListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
public class DragWindow extends ApplicationWindow implements MouseListener,
MouseMoveListener, MenuDetectListener {
private Composite composite; private boolean isDraw = false; private int xx; private int yy;
public DragWindow(Shell parentShell) { super(parentShell);
setShellStyle(SWT.BORDER | SWT.RESIZE); }
@Override
protected void configureShell(Shell shell) { super.configureShell(shell); shell.setSize(200, 300);
}
@Override
protected Control createContents(Composite parent) { composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); GridData gridData = new GridData();
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
void function(e,t){for(var n=t.getElementsByTagName("img"),a=+new Date,i=[],o=function(){this.removeEventListener&&this.removeEventListener("load",o,!1),i.push({img:this,time:+new Date})},s=0;s< n.length;s++)!function(){var e=n[s];e.addEventListener?!e.complete&&e.addEventListener("load",o,!1):e.attachEvent&&e.attachEvent("onreadystatechange",function(){"complete"==e.readyState&&o.call(e,o)})}();alog("speed.set",{fsItems:i,fs:a})}(window,document);
gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; composite.setLayoutData(gridData); composite.addMouseListener(this);
composite.addMouseMoveListener(this); composite.addMenuDetectListener(this); return composite;
}
@Override
public void mouseMove(MouseEvent arg0) { if (isDraw) { getShell().setLocation(getShell().getLocation().x + arg0.x - xx, getShell().getLocation().y + arg0.y - yy);
}
}
@Override
public void mouseDoubleClick(MouseEvent arg0) { }
@Override
public void mouseDown(MouseEvent arg0) { isDraw = true; xx = arg0.x; yy = arg0.y;
}
@Override
public void mouseUp(MouseEvent arg0) { isDraw = false;
}
@Override
public void menuDetected(MenuDetectEvent arg0) { MenuManager manager = new MenuManager(); manager.add(new CloseAction());
Menu menu = manager.createContextMenu(composite);
menu.setLocation(arg0.x, arg0.y); menu.setVisible(true);
}
private class CloseAction extends Action {
public CloseAction() {
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
super("Close");
}
@Override
public void run() { close();
}
}
public static void main(String[] args) { DragWindow window = new DragWindow(new Shell()); window.setBlockOnOpen(true); window.open();
}
}