39 |
#include "gtkpeer.h" |
#include "gtkpeer.h" |
40 |
#include "gnu_java_awt_peer_gtk_GtkChoicePeer.h" |
#include "gnu_java_awt_peer_gtk_GtkChoicePeer.h" |
41 |
|
|
42 |
|
static jmethodID postChoiceItemEventID; |
43 |
|
|
44 |
|
void |
45 |
|
cp_gtk_choice_init_jni (void) |
46 |
|
{ |
47 |
|
jclass gtkchoicepeer; |
48 |
|
|
49 |
|
gtkchoicepeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(), |
50 |
|
"gnu/java/awt/peer/gtk/GtkChoicePeer"); |
51 |
|
|
52 |
|
postChoiceItemEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkchoicepeer, |
53 |
|
"postChoiceItemEvent", |
54 |
|
"(Ljava/lang/String;I)V"); |
55 |
|
} |
56 |
|
|
57 |
static void selection_changed_cb (GtkComboBox *combobox, jobject peer); |
static void selection_changed_cb (GtkComboBox *combobox, jobject peer); |
58 |
|
|
59 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
87 |
ptr = NSA_GET_PTR (env, obj); |
ptr = NSA_GET_PTR (env, obj); |
88 |
gref = NSA_GET_GLOBAL_REF (env, obj); |
gref = NSA_GET_GLOBAL_REF (env, obj); |
89 |
|
|
90 |
|
/* Choice signals */ |
91 |
g_signal_connect (G_OBJECT (ptr), "changed", |
g_signal_connect (G_OBJECT (ptr), "changed", |
92 |
G_CALLBACK (selection_changed_cb), *gref); |
G_CALLBACK (selection_changed_cb), *gref); |
93 |
|
|
94 |
|
/* Component signals */ |
95 |
|
cp_gtk_component_connect_signals (G_OBJECT (ptr), gref); |
96 |
|
|
97 |
gdk_threads_leave (); |
gdk_threads_leave (); |
98 |
} |
} |
99 |
|
|
234 |
model = gtk_combo_box_get_model (combobox); |
model = gtk_combo_box_get_model (combobox); |
235 |
gtk_combo_box_get_active_iter (combobox, &iter); |
gtk_combo_box_get_active_iter (combobox, &iter); |
236 |
gtk_tree_model_get (model, &iter, 0, &selected, -1); |
gtk_tree_model_get (model, &iter, 0, &selected, -1); |
237 |
label = (*gdk_env())->NewStringUTF (gdk_env(), selected); |
label = (*cp_gtk_gdk_env())->NewStringUTF (cp_gtk_gdk_env(), selected); |
238 |
|
|
239 |
gdk_threads_leave (); |
gdk_threads_leave (); |
240 |
|
|
241 |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, |
242 |
choicePostItemEventID, |
postChoiceItemEventID, |
243 |
label, |
label, |
244 |
(jint) AWT_ITEM_SELECTED); |
(jint) AWT_ITEM_SELECTED); |
245 |
|
|
246 |
gdk_threads_enter (); |
gdk_threads_enter (); |
247 |
} |
} |