40 |
#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" |
#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" |
41 |
#include <gtk/gtkprivate.h> |
#include <gtk/gtkprivate.h> |
42 |
|
|
|
#define GTK_OBJECT_SETV(ptr, arg) \ |
|
|
gdk_threads_enter (); \ |
|
|
{ \ |
|
|
char *error; \ |
|
|
GtkArg test_arg; \ |
|
|
\ |
|
|
gtk_object_get (GTK_OBJECT_TYPE (ptr), arg.name, GTK_VALUE_POINTER (test_arg)); \ |
|
|
if (GTK_VALUE_POINTER (test_arg) == NULL) \ |
|
|
{ \ |
|
|
/* assume the argument is destined for the container's only child */ \ |
|
|
ptr = gtk_container_children (GTK_CONTAINER (ptr))->data; \ |
|
|
} \ |
|
|
switch (arg.type) \ |
|
|
{ \ |
|
|
case GTK_TYPE_CHAR: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_CHAR (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_UCHAR: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_UCHAR (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_BOOL: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_BOOL (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_INT: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_INT (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_UINT: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_UINT (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_LONG: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_LONG (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_ULONG: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_ULONG (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_FLOAT: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_FLOAT (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_DOUBLE: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_DOUBLE (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_STRING: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_STRING (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_BOXED: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_BOXED (arg)); \ |
|
|
break; \ |
|
|
case GTK_TYPE_POINTER: \ |
|
|
gtk_object_set (GTK_OBJECT (ptr), arg.name, GTK_VALUE_POINTER (arg)); \ |
|
|
break; \ |
|
|
} \ |
|
|
} \ |
|
|
gdk_threads_leave (); \ |
|
|
|
|
|
|
|
43 |
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose |
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose |
44 |
(JNIEnv *env, jobject obj) |
(JNIEnv *env, jobject obj) |
45 |
{ |
{ |
503 |
arg.type = GTK_TYPE_STRING; |
arg.type = GTK_TYPE_STRING; |
504 |
arg.name = (char *) name; |
arg.name = (char *) name; |
505 |
GTK_VALUE_STRING (arg) = (char *) value; |
GTK_VALUE_STRING (arg) = (char *) value; |
506 |
|
gdk_threads_enter(); |
507 |
GTK_OBJECT_SETV (ptr, arg); |
g_object_set(ptr, name, value, NULL); |
508 |
|
gdk_threads_leave(); |
509 |
|
|
510 |
(*env)->ReleaseStringUTFChars (env, jname, name); |
(*env)->ReleaseStringUTFChars (env, jname, name); |
511 |
(*env)->ReleaseStringUTFChars (env, jvalue, value); |
(*env)->ReleaseStringUTFChars (env, jvalue, value); |
525 |
arg.name = (char *) name; |
arg.name = (char *) name; |
526 |
GTK_VALUE_BOOL (arg) = value; |
GTK_VALUE_BOOL (arg) = value; |
527 |
|
|
528 |
GTK_OBJECT_SETV (ptr, arg); |
gdk_threads_enter(); |
529 |
|
g_object_set(ptr, name, GTK_VALUE_BOOL(arg), NULL); |
530 |
|
gdk_threads_leave(); |
531 |
|
|
532 |
(*env)->ReleaseStringUTFChars (env, jname, name); |
(*env)->ReleaseStringUTFChars (env, jname, name); |
533 |
} |
} |
546 |
arg.name = (char *) name; |
arg.name = (char *) name; |
547 |
GTK_VALUE_INT (arg) = value; |
GTK_VALUE_INT (arg) = value; |
548 |
|
|
549 |
GTK_OBJECT_SETV (ptr, arg); |
gdk_threads_enter(); |
550 |
|
g_object_set(ptr, name, value, NULL); |
551 |
|
gdk_threads_leave(); |
552 |
|
|
553 |
(*env)->ReleaseStringUTFChars (env, jname, name); |
(*env)->ReleaseStringUTFChars (env, jname, name); |
554 |
} |
} |
566 |
arg.type = GTK_TYPE_FLOAT; |
arg.type = GTK_TYPE_FLOAT; |
567 |
arg.name = (char *) name; |
arg.name = (char *) name; |
568 |
GTK_VALUE_FLOAT (arg) = value; |
GTK_VALUE_FLOAT (arg) = value; |
569 |
|
|
570 |
GTK_OBJECT_SETV (ptr, arg); |
gdk_threads_enter(); |
571 |
|
g_object_set(ptr, name, value, NULL); |
572 |
|
gdk_threads_leave(); |
573 |
|
|
574 |
(*env)->ReleaseStringUTFChars (env, jname, name); |
(*env)->ReleaseStringUTFChars (env, jname, name); |
575 |
} |
} |
602 |
arg.name = (char *) name; |
arg.name = (char *) name; |
603 |
GTK_VALUE_OBJECT (arg) = GTK_OBJECT (ptr2); |
GTK_VALUE_OBJECT (arg) = GTK_OBJECT (ptr2); |
604 |
|
|
605 |
GTK_OBJECT_SETV (ptr1, arg); |
gdk_threads_enter(); |
606 |
|
g_object_set(ptr1, name, ptr2, NULL); |
607 |
|
gdk_threads_leave(); |
608 |
|
|
609 |
(*env)->ReleaseStringUTFChars (env, jname, name); |
(*env)->ReleaseStringUTFChars (env, jname, name); |
610 |
} |
} |