com.sun.glass.ui.swt.SWTWindow Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openjfx-78-backport Show documentation
Show all versions of openjfx-78-backport Show documentation
This is a backport of OpenJFX 8 to run on Java 7.
The newest version!
/*
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.glass.ui.swt;
import com.sun.glass.events.WindowEvent;
import com.sun.glass.ui.Cursor;
import com.sun.glass.ui.Pixels;
import com.sun.glass.ui.Screen;
import com.sun.glass.ui.View;
import com.sun.glass.ui.Window;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
final class SWTWindow extends Window {
Shell shell;
static SWTWindow focusWindow;
protected SWTWindow(Window owner, Screen screen, int styleMask) {
super(owner, screen, styleMask);
}
protected SWTWindow(long parent) {
super(parent);
}
@Override protected long _createWindow(long ownerPtr, long screenPtr, int mask) {
//int bits = SWT.SHELL_TRIM | SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE;
int bits = SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE;
if ((mask & Window.TITLED) != 0) {
if ((mask & Window.CLOSABLE) != 0) bits |= SWT.CLOSE;
if ((mask & Window.MINIMIZABLE) != 0) bits |= SWT.MIN;
if ((mask & Window.MAXIMIZABLE) != 0) bits |= SWT.MAX;
// if ((mask & Window.RESIZEABLE) != 0) bits |= SWT.RESIZE;
bits |= SWT.RESIZE;
} else {
bits |= SWT.NO_TRIM | SWT.NO_FOCUS;
}
//if ((mask & Window.TRANSPARENT) != 0) bits |= SWT.NO_TRIM;
if ((mask & Window.UTILITY) != 0) bits |= SWT.TOOL;
if ((mask & Window.POPUP) != 0) bits |=SWT.TOOL;
if ((mask & Window.RIGHT_TO_LEFT) != 0) bits |= SWT.RIGHT_TO_LEFT;
Shell parent = (Shell) SWTApplication.findWidget(ownerPtr);
if (parent != null) {
shell = new Shell(parent, bits);
} else {
shell = new Shell(Display.getDefault(), bits);
}
if ((mask & Window.TRANSPARENT) != 0) {
shell.setData("transparent", true);
}
int [] shellEvents = new int [] {
SWT.Activate,
SWT.Close,
SWT.Deactivate,
SWT.Iconify,
SWT.Deiconify,
SWT.Move,
SWT.Resize,
SWT.Dispose,
};
Listener shellListener = new Listener () {
public void handleEvent(Event event) {
handleShellEvent (event);
}
};
for (int i=0; i