summaryrefslogtreecommitdiff
path: root/gnu/java/awt/peer/gtk/GtkGenericPeer.java
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2002-11-15 03:05:11 +0000
committerTom Tromey <tromey@redhat.com>2002-11-15 03:05:11 +0000
commit4239a304becba56aef9ce945a03a57416d9a4237 (patch)
treebf44cb9599917897c1d118b6610b017e3f2ab4df /gnu/java/awt/peer/gtk/GtkGenericPeer.java
parentc87a7a36528120d7aed5d495f3e77e7c98dc39b6 (diff)
downloadclasspath-4239a304becba56aef9ce945a03a57416d9a4237.tar.gz
* native/jni/classpath/native_state.c (add_node): Set `c_state'
field even when moving node. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c (Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose): New function. (Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove): New function. Include GtkComponentPeer header. * gnu/java/awt/peer/gtk/GtkComponentPeer.java (dispose): Removed. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose): Renamed. * gnu/java/awt/peer/gtk/Makefile.am (EXTRA_DIST): Added GtkCheckboxGroupPeer.java. * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (old_group): Now a GtkCheckboxGroupPeer. (nativeCreate): Argument now a GtkCheckboxGroupPeer. (nativeSetCheckboxGroup): Likewise. Removed `old_group' argument. (create): Find the GtkCheckboxGroupPeer. (setCheckboxGroup): Likewise. (dispose): New method. * gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java: New file. * gnu/java/awt/peer/gtk/GtkGenericPeer.java (next_native_state): New global. (getUniqueInteger): New method. (native_state): Use it. (dispose): New native method.
Diffstat (limited to 'gnu/java/awt/peer/gtk/GtkGenericPeer.java')
-rw-r--r--gnu/java/awt/peer/gtk/GtkGenericPeer.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkGenericPeer.java b/gnu/java/awt/peer/gtk/GtkGenericPeer.java
index 0991e6082..464f71157 100644
--- a/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+++ b/gnu/java/awt/peer/gtk/GtkGenericPeer.java
@@ -40,17 +40,22 @@ package gnu.java.awt.peer.gtk;
import java.awt.*;
import java.awt.event.*;
-/* This class will go away with Japhar integration. For use with Sun's JDK
- this may be required, unless another method of associating Java objects
- with GTK objects is used. */
-
public class GtkGenericPeer
{
- // FIXME: this isn't guaranteed to give unique numbers.
- final int native_state = java.lang.System.identityHashCode(this);
+ final int native_state = getUniqueInteger ();
+
+ // Next native state value we will assign.
+ private static int next_native_state = 0;
+
+ // The widget or other java-side object we wrap.
protected Object awtWidget;
+
+ // Global event queue.
protected static EventQueue q = null;
+ // Dispose of our native state.
+ public native void dispose ();
+
protected GtkGenericPeer (Object awtWidget)
{
this.awtWidget = awtWidget;
@@ -67,4 +72,13 @@ public class GtkGenericPeer
q.postEvent (new ActionEvent (awtWidget, ActionEvent.ACTION_PERFORMED,
command, mods));
}
+
+ // Return a unique integer for use in the native state mapping
+ // code. We can't use a hash code since that is not guaranteed to
+ // be unique.
+ private static synchronized int getUniqueInteger ()
+ {
+ // Let's assume this will never wrap.
+ return next_native_state++;
+ }
}