diff options
author | Mark Wielaard <mark@klomp.org> | 2004-07-31 21:15:06 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2004-07-31 21:15:06 +0000 |
commit | 4d04c2bed4e3e0b5b0633c676401d79af66e876d (patch) | |
tree | bc1a3c812042d46fe36952a201407bd705fcaf44 | |
parent | e3c3da88e072300843cd5e2831dbe870dfc5af47 (diff) | |
download | classpath-4d04c2bed4e3e0b5b0633c676401d79af66e876d.tar.gz |
2004-07-31 Mark Wielaard <mark@klomp.org>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(gtkWidgetSetSensitive): Removed.
(gtkWidgetSetParent): Removed.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(gtkWidgetSetSensitive): New method.
(gtkWidgetSetParent): Likewise.
Remove all set methods.
* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Regenerated.
2004-07-31 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkChoicePeer.java
(GtkChoicePeer): Do not automatically select first item.
(getHistory): Remove.
(nativeGetSelected): New method.
(nativeRemoveAll): New method.
(add): Use nativeGetSelected() instead of getHistory().
(remove): Likewise.
(removeAll): Call nativeRemoveAll().
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(create): Migrate to GtkComboBox.
(append): Likewise.
(nativeAdd): Likewise.
(nativeRemove): Likewise.
(select): Likewise.
(nativeRemoveAll): New method.
(nativeGetSelected): New method.
(selection_changed): New method.
(getHistory): Remove.
(item_activate): Remove.
(item_removed): Remove.
(connect_choice_item_selectable_hook): Remove.
-rw-r--r-- | ChangeLog | 35 | ||||
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkChoicePeer.java | 15 | ||||
-rw-r--r-- | include/gnu_java_awt_peer_gtk_GtkChoicePeer.h | 3 | ||||
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c | 241 | ||||
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c | 195 |
5 files changed, 149 insertions, 340 deletions
@@ -1,3 +1,38 @@ +2004-07-31 Mark Wielaard <mark@klomp.org> + + * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c + (gtkWidgetSetSensitive): Removed. + (gtkWidgetSetParent): Removed. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c + (gtkWidgetSetSensitive): New method. + (gtkWidgetSetParent): Likewise. + Remove all set methods. + * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Regenerated. + +2004-07-31 David Jee <djee@redhat.com> + + * gnu/java/awt/peer/gtk/GtkChoicePeer.java + (GtkChoicePeer): Do not automatically select first item. + (getHistory): Remove. + (nativeGetSelected): New method. + (nativeRemoveAll): New method. + (add): Use nativeGetSelected() instead of getHistory(). + (remove): Likewise. + (removeAll): Call nativeRemoveAll(). + * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c + (create): Migrate to GtkComboBox. + (append): Likewise. + (nativeAdd): Likewise. + (nativeRemove): Likewise. + (select): Likewise. + (nativeRemoveAll): New method. + (nativeGetSelected): New method. + (selection_changed): New method. + (getHistory): Remove. + (item_activate): Remove. + (item_removed): Remove. + (connect_choice_item_selectable_hook): Remove. + 2004-07-31 Thomas Fitzsimmons <fitzsim@redhat.com> * java/awt/Component.java: Document AWT 1.0 event handler diff --git a/gnu/java/awt/peer/gtk/GtkChoicePeer.java b/gnu/java/awt/peer/gtk/GtkChoicePeer.java index a03a41050..2ecea5cb9 100644 --- a/gnu/java/awt/peer/gtk/GtkChoicePeer.java +++ b/gnu/java/awt/peer/gtk/GtkChoicePeer.java @@ -58,25 +58,22 @@ public class GtkChoicePeer extends GtkComponentPeer items[i] = c.getItem (i); append (items); - - // Must set our state before notifying listeners - ((Choice) awtComponent).select (c.getItem (0)); - postItemEvent (c.getItem (0), ItemEvent.SELECTED); } } native void create (); native void append (String items[]); - native int getHistory (); + native int nativeGetSelected (); native void nativeAdd (String item, int index); native void nativeRemove (int index); + native void nativeRemoveAll (); native public void select (int position); public void add (String item, int index) { - int before = getHistory(); + int before = nativeGetSelected(); nativeAdd (item, index); @@ -92,11 +89,11 @@ public class GtkChoicePeer extends GtkComponentPeer public void remove (int index) { - int before = getHistory(); + int before = nativeGetSelected(); int after; nativeRemove (index); - after = getHistory(); + after = nativeGetSelected(); /* Generate an ItemEvent if we are removing the currently selected item and there are at least one item left. */ @@ -110,7 +107,7 @@ public class GtkChoicePeer extends GtkComponentPeer public void removeAll () { - nativeRemove (-1); + nativeRemoveAll(); } public void addItem (String item, int position) diff --git a/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h b/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h index ad2b3de8a..edccf6b46 100644 --- a/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h +++ b/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h @@ -12,9 +12,10 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append (JNIEnv *env, jobject, jobjectArray); -JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_getHistory (JNIEnv *env, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeAdd (JNIEnv *env, jobject, jstring, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove (JNIEnv *env, jobject, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_select (JNIEnv *env, jobject, jint); #ifdef __cplusplus diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c index 5cb7eda12..128443121 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c @@ -39,37 +39,27 @@ exception statement from your version. */ #include "gtkpeer.h" #include "gnu_java_awt_peer_gtk_GtkChoicePeer.h" -static void connect_choice_item_selectable_hook (JNIEnv *env, - jobject peer_obj, - GtkItem *menuitem, - const char *label); +static void selection_changed (GtkComboBox *combobox, gpointer data); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create (JNIEnv *env, jobject obj) { GtkWidget *menu; - GtkOptionMenu *option_menu; - GtkRequisition child_requisition; + GtkComboBox *combobox; NSA_SET_GLOBAL_REF (env, obj); gdk_threads_enter (); - option_menu = GTK_OPTION_MENU (gtk_option_menu_new ()); - menu = gtk_menu_new (); - gtk_widget_show (menu); + combobox = gtk_combo_box_new_text (); - gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu); - - gtk_widget_size_request (gtk_menu_item_new_with_label (""), - &child_requisition); - option_menu->width = child_requisition.width; - option_menu->height = child_requisition.height; + g_signal_connect (combobox, "changed", + G_CALLBACK (selection_changed), obj); gdk_threads_leave (); - NSA_SET_PTR (env, obj, option_menu); + NSA_SET_PTR (env, obj, combobox); } JNIEXPORT void JNICALL @@ -77,45 +67,27 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append (JNIEnv *env, jobject obj, jobjectArray items) { gpointer ptr; - GtkMenu *menu; jsize count, i; - int need_set_history = 0; ptr = NSA_GET_PTR (env, obj); gdk_threads_enter (); - menu = GTK_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (ptr))); - - /* Are we adding the first element? */ - if (gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)) < 0) - need_set_history = 1; - count = (*env)->GetArrayLength (env, items); for (i = 0; i < count; i++) { jobject item; const char *label; - GtkWidget *menuitem; item = (*env)->GetObjectArrayElement (env, items, i); label = (*env)->GetStringUTFChars (env, item, NULL); - menuitem = gtk_menu_item_new_with_label (label); - gtk_menu_append (menu, menuitem); - gtk_widget_show (menuitem); - - connect_choice_item_selectable_hook (env, obj, - GTK_ITEM (menuitem), label); + gtk_combo_box_append_text (GTK_COMBO_BOX (ptr), label); (*env)->ReleaseStringUTFChars (env, item, label); } - /* If we just added the first element select it. */ - if (need_set_history) - gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); - gdk_threads_leave (); } @@ -125,36 +97,13 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeAdd { void *ptr; const char *label; - GtkWidget *menu, *menuitem; - int current; - int need_set_history = 0; ptr = NSA_GET_PTR (env, obj); label = (*env)->GetStringUTFChars (env, item, 0); gdk_threads_enter (); - - current = gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)); - - /* Are we adding the first element or below or at the currently - selected one? */ - if ((current < 0) || (current >= index)) - need_set_history = 1; - - menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (ptr)); - menuitem = gtk_menu_item_new_with_label (label); - gtk_menu_insert (GTK_MENU (menu), menuitem, index); - gtk_widget_show (menuitem); - - connect_choice_item_selectable_hook (env, obj, GTK_ITEM (menuitem), label); - - /* If we just added the first element select it. - If we added at of below the currently selected position make - the first item the selected one. */ - if (need_set_history) - gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); - + gtk_combo_box_insert_text (GTK_COMBO_BOX (ptr), index, label); gdk_threads_leave (); (*env)->ReleaseStringUTFChars (env, item, label); @@ -165,50 +114,35 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove (JNIEnv *env, jobject obj, jint index) { void *ptr; - GtkContainer *menu; - GtkWidget *menuitem; - GList *children; - int need_set_history = 0; - int i, from, to; ptr = NSA_GET_PTR (env, obj); gdk_threads_enter (); + gtk_combo_box_remove_text (GTK_COMBO_BOX (ptr), index); + gdk_threads_leave (); +} - menu = GTK_CONTAINER (gtk_option_menu_get_menu (GTK_OPTION_MENU (ptr))); - children = gtk_container_children (menu); +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll + (JNIEnv *env, jobject obj) +{ + void *ptr; + GtkTreeModel *model; + gint count, i; - if (index == -1) - { - /* Remove all elements (removeAll) */ - from = g_list_length (children) - 1; - to = 0; + ptr = NSA_GET_PTR (env, obj); - /* Select the first item to prevent spurious activate signals */ - gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); - } - else - { - /* Remove the specific index element */ - from = index; - to = index; + gdk_threads_enter (); - /* Are we removing the currently selected element? */ - if (gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)) == index) - need_set_history = 1; - } + model = gtk_combo_box_get_model (GTK_COMBO_BOX (ptr)); + count = gtk_tree_model_iter_n_children (model, NULL); - for (i = from; i >= to; i--) - { - menuitem = GTK_WIDGET (g_list_nth (children, i)->data); - gtk_container_remove (menu, menuitem); - gtk_widget_destroy (menuitem); - } + /* First, unselect everything, to avoid problems when removing items. */ + gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), -1); - /* If we just removed the currently selected element and there are - still elements left in the list, make the first item the selected one. */ - if (need_set_history && gtk_container_children (menu)) - gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), 0); + for (i = count - 1; i >= 0; i--) { + gtk_combo_box_remove_text (GTK_COMBO_BOX (ptr), i); + } gdk_threads_leave (); } @@ -222,12 +156,12 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_select ptr = NSA_GET_PTR (env, obj); gdk_threads_enter (); - gtk_option_menu_set_history (GTK_OPTION_MENU (ptr), index); + gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), index); gdk_threads_leave (); } JNIEXPORT jint JNICALL -Java_gnu_java_awt_peer_gtk_GtkChoicePeer_getHistory +Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected (JNIEnv *env, jobject obj) { void *ptr; @@ -236,115 +170,38 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_getHistory ptr = NSA_GET_PTR (env, obj); gdk_threads_enter (); - - index = gtk_option_menu_get_history (GTK_OPTION_MENU (ptr)); - + index = gtk_combo_box_get_active (GTK_COMBO_BOX (ptr)); gdk_threads_leave (); return index; } -static void -item_activate (GtkItem *item __attribute__((unused)), - struct item_event_hook_info *ie) +void selection_changed (GtkComboBox *combobox, jobject peer) { jstring label; - gdk_threads_leave (); + GtkTreeModel *model; + GtkTreeIter iter; + GValue value; + gchar *selected; + gint index; - label = (*gdk_env)->NewStringUTF (gdk_env, ie->label); - (*gdk_env)->CallVoidMethod (gdk_env, ie->peer_obj, - choicePostItemEventID, - label, - (jint) AWT_ITEM_SELECTED); - gdk_threads_enter (); -} + index = gtk_combo_box_get_active(combobox); -static void -item_removed (gpointer data, - GClosure gc __attribute__((unused))) -{ - struct item_event_hook_info *ie = data; - - free ((void *) ie->label); - free (ie); -} - -static void -connect_choice_item_selectable_hook (JNIEnv *env, - jobject peer_obj, - GtkItem *menuitem, - const char *label) -{ - struct item_event_hook_info *ie; - jobject *peer_objGlobPtr; - - ie = (struct item_event_hook_info *) - malloc (sizeof (struct item_event_hook_info)); - - peer_objGlobPtr = NSA_GET_GLOBAL_REF (env, peer_obj); - g_assert (peer_objGlobPtr); + if (index >= 0) + { + model = gtk_combo_box_get_model (combobox); - ie->peer_obj = *peer_objGlobPtr; - ie->label = strdup (label); + gtk_combo_box_get_active_iter (combobox, &iter); - g_signal_connect_data (G_OBJECT (menuitem), "activate", - GTK_SIGNAL_FUNC (item_activate), ie, - (GClosureNotify) item_removed, 0); -} + gtk_tree_model_get (model, &iter, 0, &selected, -1); -JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent -(JNIEnv *env, jobject obj, jobject parent) -{ - void *ptr; - void *parent_ptr; - GtkWidget *widget; - GtkWidget *parent_widget; - - ptr = NSA_GET_PTR (env, obj); - parent_ptr = NSA_GET_PTR (env, parent); - - gdk_threads_enter (); - - widget = GTK_WIDGET (ptr); - parent_widget = GTK_WIDGET (parent_ptr); - - if (GTK_IS_WINDOW (parent_widget)) - { - GList *children = gtk_container_children - (GTK_CONTAINER (GTK_BIN (parent_widget)->child)); + gdk_threads_leave (); - if (GTK_IS_MENU_BAR (children->data)) - gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0); - else - gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0); + label = (*gdk_env)->NewStringUTF (gdk_env, selected); + (*gdk_env)->CallVoidMethod (gdk_env, peer, + choicePostItemEventID, + label, + (jint) AWT_ITEM_SELECTED); + gdk_threads_enter (); } - else - if (GTK_IS_SCROLLED_WINDOW (parent_widget)) - { - gtk_scrolled_window_add_with_viewport - (GTK_SCROLLED_WINDOW (parent_widget), widget); - gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent), - GTK_SHADOW_NONE); - - } - else - gtk_layout_put (GTK_LAYOUT (parent_widget), widget, 0, 0); - - gdk_threads_leave (); -} - -JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive -(JNIEnv *env, jobject obj, jboolean sensitive) -{ - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - - gdk_threads_enter (); - - gtk_widget_set_sensitive (GTK_WIDGET (ptr), sensitive); - - gdk_threads_leave (); } diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c index 9946f38f5..352285134 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c @@ -473,6 +473,63 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor } JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent + (JNIEnv *env, jobject obj, jobject parent) +{ + void *ptr; + void *parent_ptr; + GtkWidget *widget; + GtkWidget *parent_widget; + + ptr = NSA_GET_PTR (env, obj); + parent_ptr = NSA_GET_PTR (env, parent); + + gdk_threads_enter (); + + widget = GTK_WIDGET (ptr); + parent_widget = GTK_WIDGET (parent_ptr); + + if (GTK_IS_WINDOW (parent_widget)) + { + GList *children = gtk_container_children + (GTK_CONTAINER (GTK_BIN (parent_widget)->child)); + + if (GTK_IS_MENU_BAR (children->data)) + gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0); + else + gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0); + } + else + if (GTK_IS_SCROLLED_WINDOW (parent_widget)) + { + gtk_scrolled_window_add_with_viewport + (GTK_SCROLLED_WINDOW (parent_widget), widget); + gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent), + GTK_SHADOW_NONE); + + } + else + gtk_layout_put (GTK_LAYOUT (parent_widget), widget, 0, 0); + + gdk_threads_leave (); +} + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive + (JNIEnv *env, jobject obj, jboolean sensitive) +{ + void *ptr; + + ptr = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); + + gtk_widget_set_sensitive (GTK_WIDGET (ptr), sensitive); + + gdk_threads_leave (); +} + +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus (JNIEnv *env, jobject obj) { @@ -911,45 +968,6 @@ find_gtk_layout (GtkWidget *parent) return NULL; } -#define WIDGET_CLASS(w) GTK_WIDGET_CLASS (GTK_OBJECT (w)->klass) - -void -set_parent (GtkWidget *widget, GtkContainer *parent) -{ - if (GTK_IS_WINDOW (parent)) - { - GList *children = gtk_container_children - (GTK_CONTAINER (GTK_BIN (parent)->child)); - - if (GTK_IS_MENU_BAR (children->data)) - gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0); - else /* GTK_IS_LAYOUT (children->data) */ - gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0); - } - else - if (GTK_IS_SCROLLED_WINDOW (parent)) - { -/* if (WIDGET_CLASS (widget)->set_scroll_adjustments_signal) */ -/* gtk_container_add (GTK_CONTAINER (parent), widget); */ -/* else */ -/* { */ - gtk_scrolled_window_add_with_viewport - (GTK_SCROLLED_WINDOW (parent), widget); - gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent), - GTK_SHADOW_NONE); -/* } */ - - } -/* gtk_layout_put */ -/* (GTK_LAYOUT (GTK_BIN (parent)->child), widget, 0, 0); */ - -/* if (GTK_IS_SCROLLED_WINDOW (parent)) */ -/* gtk_layout_put */ -/* (GTK_LAYOUT (GTK_BIN (GTK_BIN (parent)->child)->child), widget, 0, 0); */ - else - gtk_layout_put (GTK_LAYOUT (parent), widget, 0, 0); -} - JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled (JNIEnv *env, jobject obj) @@ -981,105 +999,6 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_modalHasGrab return retval; } -JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_String_2 - (JNIEnv *env, jobject obj, jstring jname, jstring jvalue) -{ - const char *name; - const char *value; - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - name = (*env)->GetStringUTFChars (env, jname, NULL); - value = (*env)->GetStringUTFChars (env, jvalue, NULL); - - gdk_threads_enter(); - g_object_set(ptr, name, value, NULL); - gdk_threads_leave(); - - (*env)->ReleaseStringUTFChars (env, jname, name); - (*env)->ReleaseStringUTFChars (env, jvalue, value); -} - -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Z - (JNIEnv *env, jobject obj, jstring jname, jboolean value) -{ - const char *name; - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - - name = (*env)->GetStringUTFChars (env, jname, NULL); - - gdk_threads_enter(); - g_object_set(ptr, name, value, NULL); - gdk_threads_leave(); - - (*env)->ReleaseStringUTFChars (env, jname, name); -} - -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2I - (JNIEnv *env, jobject obj, jstring jname, jint value) -{ - const char *name; - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - name = (*env)->GetStringUTFChars (env, jname, NULL); - - gdk_threads_enter(); - g_object_set(ptr, name, value, NULL); - gdk_threads_leave(); - - (*env)->ReleaseStringUTFChars (env, jname, name); -} - -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2F - (JNIEnv *env, jobject obj, jstring jname, jfloat value) -{ - const char *name; - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - name = (*env)->GetStringUTFChars (env, jname, NULL); - - gdk_threads_enter(); - g_object_set(ptr, name, value, NULL); - gdk_threads_leave(); - - (*env)->ReleaseStringUTFChars (env, jname, name); -} - -JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_Object_2 - (JNIEnv *env, jobject obj1, jstring jname, jobject obj2) -{ - const char *name; - void *ptr1, *ptr2; - - ptr1 = NSA_GET_PTR (env, obj1); - ptr2 = NSA_GET_PTR (env, obj2); - - name = (*env)->GetStringUTFChars (env, jname, NULL); - - /* special case to catch where we need to set the parent */ - if (!strcmp (name, "parent")) - { - gdk_threads_enter (); - set_parent (GTK_WIDGET (ptr1), GTK_CONTAINER (ptr2)); - gdk_threads_leave (); - - (*env)->ReleaseStringUTFChars (env, jname, name); - return; - } - - gdk_threads_enter(); - g_object_set(ptr1, name, ptr2, NULL); - gdk_threads_leave(); - - (*env)->ReleaseStringUTFChars (env, jname, name); -} - static gboolean filter_expose_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer) { |