diff options
Diffstat (limited to 'src/newt/classes/com/sun/javafx/newt/Window.java')
-rwxr-xr-x | src/newt/classes/com/sun/javafx/newt/Window.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/newt/classes/com/sun/javafx/newt/Window.java b/src/newt/classes/com/sun/javafx/newt/Window.java index 3321715c3..918e54e1f 100755 --- a/src/newt/classes/com/sun/javafx/newt/Window.java +++ b/src/newt/classes/com/sun/javafx/newt/Window.java @@ -34,7 +34,9 @@ package com.sun.javafx.newt; import com.sun.javafx.newt.impl.Debug; + import javax.media.nativewindow.*; +import com.sun.nativewindow.impl.NWReflection; import java.util.ArrayList; import java.util.Iterator; @@ -82,7 +84,7 @@ public abstract class Window implements NativeWindow return windowClass; } - protected static Window create(long parentWindowHandle, String type, Screen screen, Capabilities caps, boolean undecorated) { + protected static Window create(String type, long parentWindowHandle, Screen screen, Capabilities caps, boolean undecorated) { try { Class windowClass = getWindowClass(type); Window window = (Window) windowClass.newInstance(); @@ -97,6 +99,21 @@ public abstract class Window implements NativeWindow } } + protected static Window create(String type, Object[] cstrArguments, Screen screen, Capabilities caps, boolean undecorated) { + try { + Class windowClass = getWindowClass(type); + Window window = (Window) NWReflection.createInstance( windowClass, cstrArguments ) ; + window.invalidate(); + window.screen = screen; + window.setUndecorated(undecorated); + window.createNative(0, caps); + return window; + } catch (Throwable t) { + t.printStackTrace(); + throw new NativeWindowException(t); + } + } + protected static Window wrapHandle(String type, Screen screen, AbstractGraphicsConfiguration config, long windowHandle, boolean fullscreen, boolean visible, int x, int y, int width, int height) @@ -146,6 +163,8 @@ public abstract class Window implements NativeWindow ", surfaceHandle 0x"+Long.toHexString(getSurfaceHandle())+ ", pos "+getX()+"/"+getY()+", size "+getWidth()+"x"+getHeight()+ ", visible "+isVisible()+ + ", undecorated "+undecorated+ + ", fullscreen "+fullscreen+ ", "+screen+ ", wrappedWindow "+getWrappedWindow()); |