aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
index a52f54ce35f..e16b2d457d6 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
@@ -37,20 +37,56 @@ exception statement from your version. */
#include "gtkpeer.h"
+#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
#include "gnu_java_awt_peer_gtk_GtkButtonPeer.h"
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
(JNIEnv *env, jobject obj)
{
GtkWidget *button;
+ /* Create global reference and save it for future use */
+ NSA_SET_GLOBAL_REF (env, obj);
+
gdk_threads_enter ();
+
button = gtk_button_new();
gtk_widget_show (button);
+
gdk_threads_leave ();
+
NSA_SET_PTR (env, obj, button);
}
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectJObject
+ (JNIEnv *env, jobject obj)
+{
+ void *ptr;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter ();
+
+ gtk_widget_realize (GTK_WIDGET (ptr));
+
+ connect_awt_hook (env, obj, 1, GTK_BUTTON(ptr)->event_window);
+
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals
+ (JNIEnv *env, jobject obj)
+{
+ /* FIXME: Do we need to connect any signals here? Otherwise just do not
+ override parent method. */
+
+ /* Connect the superclass signals. */
+ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj);
+}
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring name, jint style, jint size)