diff options
author | Sven Gothel <[email protected]> | 2010-05-04 14:16:33 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2010-05-04 14:16:33 +0200 |
commit | 7613753091793b27a90585094aadb7beb36aab4b (patch) | |
tree | 1ebbb9b03683305d6e3197f3ae33d8ed75dfeece /src/newt/classes/com | |
parent | 7fad4be03e6d9987be420444364b6714667d32cc (diff) |
NEWT Fixes (Windows/child-win):
- Clarify NEWT setSize/setPosition in regards to fullscreen state
- Windows: Allow child win to receive keyboard events
- requestFocus: calls SetForegroundWindow and SetFocus
- requestFocus when mouse clicked
- add WS_TABSTOP
- Windows: Allow child win to set position
- TODO: child-win fullscreen as in X11 ..
Diffstat (limited to 'src/newt/classes/com')
3 files changed, 32 insertions, 33 deletions
diff --git a/src/newt/classes/com/jogamp/newt/Window.java b/src/newt/classes/com/jogamp/newt/Window.java index 653d76522..e807ad6af 100755 --- a/src/newt/classes/com/jogamp/newt/Window.java +++ b/src/newt/classes/com/jogamp/newt/Window.java @@ -507,22 +507,31 @@ public abstract class Window implements NativeWindow } public abstract void setVisible(boolean visible); + /** * Sets the size of the client area of the window, excluding decorations * Total size of the window will be - * {@code width+insets.left+insets.right, height+insets.top+insets.bottom} + * {@code width+insets.left+insets.right, height+insets.top+insets.bottom}<br> + * + * This call is ignored if in fullscreen mode.<br> + * * @param width of the client area of the window * @param height of the client area of the window */ public abstract void setSize(int width, int height); + /** * Sets the location of the top left corner of the window, including * decorations (so the client area will be placed at - * {@code x+insets.left,y+insets.top}. + * {@code x+insets.left,y+insets.top}.<br> + * + * This call is ignored if in fullscreen mode.<br> + * * @param x coord of the top left corner * @param y coord of the top left corner */ public abstract void setPosition(int x, int y); + public abstract boolean setFullscreen(boolean fullscreen); // diff --git a/src/newt/classes/com/jogamp/newt/impl/windows/WindowsWindow.java b/src/newt/classes/com/jogamp/newt/impl/windows/WindowsWindow.java index ce1a0ad2e..bec7bfed2 100755 --- a/src/newt/classes/com/jogamp/newt/impl/windows/WindowsWindow.java +++ b/src/newt/classes/com/jogamp/newt/impl/windows/WindowsWindow.java @@ -159,13 +159,13 @@ public class WindowsWindow extends Window { public void setSize(int width, int height) { if (width != this.width || this.height != height) { if(!fullscreen) { + this.width=width; + this.height=height; nfs_width=width; nfs_height=height; - } - this.width = width; - this.height = height; - if(0!=windowHandle && !fullscreen) { - setSize0(parentWindowHandle, windowHandle, x, y, width, height); + if(0!=windowHandle) { + setSize0(parentWindowHandle, windowHandle, x, y, width, height); + } } } } @@ -174,13 +174,13 @@ public class WindowsWindow extends Window { public void setPosition(int x, int y) { if ( this.x != x || this.y != y ) { if(!fullscreen) { + this.x=x; + this.y=y; nfs_x=x; nfs_y=y; - } - this.x = x; - this.y = y; - if(0!=windowHandle && !fullscreen) { - setPosition(parentWindowHandle, windowHandle, x , y); + if(0!=windowHandle) { + setPosition0(parentWindowHandle, windowHandle, x , y /*, width, height*/); + } } } } @@ -245,7 +245,7 @@ public class WindowsWindow extends Window { private native long MonitorFromWindow(long windowHandle); private static native void setVisible0(long windowHandle, boolean visible); private native void setSize0(long parentWindowHandle, long windowHandle, int x, int y, int width, int height); - private native void setPosition(long parentWindowHandle, long windowHandle, int x, int y); + private static native void setPosition0(long parentWindowHandle, long windowHandle, int x, int y /*, int width, int height*/); private native void setFullscreen0(long parentWindowHandle, long windowHandle, int x, int y, int width, int height, boolean isUndecorated, boolean on); private static native void setTitle(long windowHandle, String title); private static native void requestFocus(long windowHandle); diff --git a/src/newt/classes/com/jogamp/newt/impl/x11/X11Window.java b/src/newt/classes/com/jogamp/newt/impl/x11/X11Window.java index cd089ccfb..2fa41c62a 100755 --- a/src/newt/classes/com/jogamp/newt/impl/x11/X11Window.java +++ b/src/newt/classes/com/jogamp/newt/impl/x11/X11Window.java @@ -95,39 +95,29 @@ public class X11Window extends Window { } public void setSize(int width, int height) { - if(DEBUG_IMPLEMENTATION) { - System.err.println("X11Window setSize: "+this.x+"/"+this.y+" "+this.width+"x"+this.height+" -> "+width+"x"+height); - // Exception e = new Exception("XXXXXXXXXX"); - // e.printStackTrace(); - } if (width != this.width || this.height != height) { - this.width = width; - this.height = height; if(!fullscreen) { + this.width = width; + this.height = height; nfs_width=width; nfs_height=height; - } - if(0!=windowHandle && !fullscreen) { - setSize0(getDisplayHandle(), windowHandle, width, height); + if(0!=windowHandle) { + setSize0(getDisplayHandle(), windowHandle, width, height); + } } } } public void setPosition(int x, int y) { - if(DEBUG_IMPLEMENTATION) { - System.err.println("X11Window setPosition: "+this.x+"/"+this.y+" -> "+x+"/"+y); - // Exception e = new Exception("XXXXXXXXXX"); - // e.printStackTrace(); - } if ( this.x != x || this.y != y ) { - this.x = x; - this.y = y; if(!fullscreen) { + this.x = x; + this.y = y; nfs_x=x; nfs_y=y; - } - if(0!=windowHandle && !fullscreen) { - setPosition0(parentWindowHandle, getDisplayHandle(), windowHandle, x, y); + if(0!=windowHandle) { + setPosition0(parentWindowHandle, getDisplayHandle(), windowHandle, x, y); + } } } } |