private void maximize() { mNonMaximizedLocation = mShell.getLocation(); mNonMaximizedSize = mShell.getSize(); Monitor monitor = mShell.getMonitor(); mShell.setBounds(monitor.getBounds()); }
public boolean open() { display = Display.getCurrent(); shell = new Shell(display, SWT.NO_TRIM | SWT.TOOL); // SWT.NO_TRIM | SWT.TOO shell.setLayout(new FillLayout()); int[] size = CPerspective.getSplashSize(); shell.setSize(size[0], size[1]); Composite composite = new Composite(shell, SWT.NONE); composite.setLayout(new FillLayout()); container = new FlashContainer(composite, "splash"); container.addHookInterceptor( new OleHookInterceptor() { public boolean intercept(Msg message, int code, int param, int param2) { if (message.getMessage() == Win32Constant.WM_RBUTTONDOWN) { Point cursor = container.getParent().toControl(Display.getCurrent().getCursorLocation()); if (container.getBounds().contains(cursor) && container.isVisible()) { return true; } } return false; } }); container.loadMovie(0, CPerspective.getSplashSwfPath()); Monitor primary = shell.getMonitor(); Rectangle bounds = primary.getBounds(); Rectangle rect = shell.getBounds(); int x = bounds.x + (bounds.width - rect.width) / 2; int y = bounds.y + (bounds.height - rect.height) / 2; if (x < 0) x = 0; if (y < 0) y = 0; shell.setLocation(x, y); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return true; }
private void resize() { if (isFirstPage()) { getShell().setBounds(fInitialSize); return; } Control control = fPageContainer.getTopPage(); Point size = control.getSize(); int dw = Math.max(0, fPreviewWidth - size.x); int dh = Math.max(0, fPreviewHeight - size.y); int dx = dw / 2; int dy = dh / 2; Shell shell = getShell(); Rectangle rect = shell.getBounds(); Rectangle clientRect = shell.getMonitor().getClientArea(); rect.x = Math.max(clientRect.x, rect.x - dx); rect.y = Math.max(clientRect.y, rect.y - dy); // limit with and height to monitor rect.width = Math.min(rect.width + dw, clientRect.width); rect.height = Math.min(rect.height + dh, clientRect.height); // Reposition the dialog so that it will be fully visible. // Normalize x and y relative to the client area. int xe = (rect.x - clientRect.x) + rect.width; if (xe > clientRect.width) { rect.x -= xe - clientRect.width; } int ye = (rect.y - clientRect.y) + rect.height; if (ye > clientRect.height) { rect.y -= ye - clientRect.height; } shell.setBounds(rect); }
public Shell open(Display display) { clipboard = new Clipboard(display); shell = new Shell(display); shell.setText("SWT Clipboard"); shell.setLayout(new FillLayout()); ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL); Composite parent = new Composite(sc, SWT.NONE); sc.setContent(parent); parent.setLayout(new GridLayout(2, true)); Group copyGroup = new Group(parent, SWT.NONE); copyGroup.setText("Copy From:"); GridData data = new GridData(GridData.FILL_BOTH); copyGroup.setLayoutData(data); copyGroup.setLayout(new GridLayout(3, false)); Group pasteGroup = new Group(parent, SWT.NONE); pasteGroup.setText("Paste To:"); data = new GridData(GridData.FILL_BOTH); pasteGroup.setLayoutData(data); pasteGroup.setLayout(new GridLayout(3, false)); Group controlGroup = new Group(parent, SWT.NONE); controlGroup.setText("Control API:"); data = new GridData(GridData.FILL_BOTH); data.horizontalSpan = 2; controlGroup.setLayoutData(data); controlGroup.setLayout(new GridLayout(5, false)); Group typesGroup = new Group(parent, SWT.NONE); typesGroup.setText("Available Types"); data = new GridData(GridData.FILL_BOTH); data.horizontalSpan = 2; typesGroup.setLayoutData(data); typesGroup.setLayout(new GridLayout(2, false)); status = new Label(parent, SWT.BORDER); data = new GridData(GridData.FILL_HORIZONTAL); data.horizontalSpan = 2; data.heightHint = 60; status.setLayoutData(data); createTextTransfer(copyGroup, pasteGroup); createRTFTransfer(copyGroup, pasteGroup); createHTMLTransfer(copyGroup, pasteGroup); createFileTransfer(copyGroup, pasteGroup); createMyTransfer(copyGroup, pasteGroup); createControlTransfer(controlGroup); createAvailableTypes(typesGroup); sc.setMinSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT)); sc.setExpandHorizontal(true); sc.setExpandVertical(true); Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle monitorArea = shell.getMonitor().getClientArea(); shell.setSize( Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20)); shell.open(); return shell; }
/** * Sets the size of the shell to it's "packed" size, unless that makes it larger than the monitor * it is being displayed on, in which case just set the shell size to be slightly smaller than the * monitor. */ static void setShellSize(ControlExample instance, Shell shell) { Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle monitorArea = shell.getMonitor().getClientArea(); shell.setSize(Math.min(size.x, monitorArea.width), Math.min(size.y, monitorArea.height)); }