aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/awt/EmbeddedWindow.java
diff options
context:
space:
mode:
authorThomas Fitzsimmons <fitzsim@redhat.com>2004-01-05 21:41:21 +0000
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>2004-01-05 21:41:21 +0000
commita8c2775c37f9e66e189d1040ae04b40d38e9eec9 (patch)
treefcd9290db182f1d323529db8273839e1b6589878 /libjava/gnu/java/awt/EmbeddedWindow.java
parent6037221c71ac41ed1971a58f1cb00e71da657665 (diff)
downloadgcc-a8c2775c37f9e66e189d1040ae04b40d38e9eec9.zip
gcc-a8c2775c37f9e66e189d1040ae04b40d38e9eec9.tar.gz
gcc-a8c2775c37f9e66e189d1040ae04b40d38e9eec9.tar.bz2
2004-01-05 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler): Set all insets to 0 when a Configure event is received for a GtkPlug. * gnu/java/awt/EmbeddedWindow.java (window_id): Rename handle. Make handle long, not int. (EmbeddedWindow()): New constructor. (EmbeddedWindow(int)): Rename window_id to handle. Make handle long, not int. (setHandle): New method. (getHandle): Return long, not int. * gnu/java/awt/peer/EmbeddedWindowPeer.java (embed): New method declaration. * gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c: (create(long)): Take long parameter, not int. Cast gtk_plug_new argument to GdkNativeWindow. (construct): New method. (embed): New method. From-SVN: r75447
Diffstat (limited to 'libjava/gnu/java/awt/EmbeddedWindow.java')
-rw-r--r--libjava/gnu/java/awt/EmbeddedWindow.java45
1 files changed, 37 insertions, 8 deletions
diff --git a/libjava/gnu/java/awt/EmbeddedWindow.java b/libjava/gnu/java/awt/EmbeddedWindow.java
index fc64e21..24bd107 100644
--- a/libjava/gnu/java/awt/EmbeddedWindow.java
+++ b/libjava/gnu/java/awt/EmbeddedWindow.java
@@ -50,18 +50,29 @@ import java.awt.Toolkit;
*/
public class EmbeddedWindow extends Frame
{
- private int window_id;
+ private long handle;
/**
- * Creates an window to be embedded into another application.
+ * Creates a window to be embedded into another application. The
+ * window will only be embedded after its setHandle method has been
+ * called.
+ */
+ public EmbeddedWindow ()
+ {
+ super();
+ this.handle = 0;
+ }
+
+ /**
+ * Creates a window to be embedded into another application.
*
- * @param window_id The native handle to the screen area where the AWT window
- * should be embedded.
+ * @param handle the native handle to the screen area where the AWT
+ * window should be embedded
*/
- public EmbeddedWindow (int window_id)
+ public EmbeddedWindow (long handle)
{
super();
- this.window_id = window_id;
+ this.handle = handle;
}
/**
@@ -84,13 +95,31 @@ public class EmbeddedWindow extends Frame
native void setWindowPeer (EmbeddedWindowPeer peer);
/**
+ * If the native peer for this embedded window has been created,
+ * then setHandle will embed the window. If not, setHandle tells
+ * us where to embed ourselves when our peer is created.
+ *
+ * @param handle the native handle to the screen area where the AWT
+ * window should be embedded
+ */
+ public void setHandle(long handle)
+ {
+ if (this.handle != 0)
+ throw new RuntimeException ("EmbeddedWindow is already embedded");
+
+ this.handle = handle;
+ if (peer != null)
+ ((EmbeddedWindowPeer) peer).embed (this.handle);
+ }
+
+ /**
* Gets the native handle of the screen area where the window will
* be embedded.
*
* @return The native handle that was passed to the constructor.
*/
- public int getHandle()
+ public long getHandle()
{
- return window_id;
+ return handle;
}
}