46 |
GdkEventFocus *event, |
GdkEventFocus *event, |
47 |
jobject peer); |
jobject peer); |
48 |
|
|
49 |
static void block_expose_events_cb (GtkWidget *widget, |
static void block_expose_event_cb (GtkWidget *widget, |
50 |
jobject peer); |
jobject peer); |
51 |
|
|
52 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
53 |
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create |
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create |
57 |
GtkWidget *eventbox; |
GtkWidget *eventbox; |
58 |
GtkWidget *button; |
GtkWidget *button; |
59 |
|
|
60 |
|
gdk_threads_enter (); |
61 |
|
|
62 |
NSA_SET_GLOBAL_REF (env, obj); |
NSA_SET_GLOBAL_REF (env, obj); |
63 |
|
|
64 |
c_label = (*env)->GetStringUTFChars (env, label, NULL); |
c_label = (*env)->GetStringUTFChars (env, label, NULL); |
65 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
66 |
eventbox = gtk_event_box_new (); |
eventbox = gtk_event_box_new (); |
67 |
button = gtk_button_new_with_label (c_label); |
button = gtk_button_new_with_label (c_label); |
68 |
gtk_container_add (GTK_CONTAINER (eventbox), button); |
gtk_container_add (GTK_CONTAINER (eventbox), button); |
69 |
gtk_widget_show (button); |
gtk_widget_show (button); |
70 |
|
|
|
gdk_threads_leave (); |
|
|
|
|
71 |
(*env)->ReleaseStringUTFChars (env, label, c_label); |
(*env)->ReleaseStringUTFChars (env, label, c_label); |
72 |
NSA_SET_PTR (env, obj, eventbox); |
NSA_SET_PTR (env, obj, eventbox); |
73 |
|
|
74 |
|
gdk_threads_leave (); |
75 |
} |
} |
76 |
|
|
77 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
82 |
jobject *gref; |
jobject *gref; |
83 |
GtkWidget *button; |
GtkWidget *button; |
84 |
|
|
85 |
|
gdk_threads_enter (); |
86 |
|
|
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 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
90 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
91 |
|
|
92 |
g_signal_connect (G_OBJECT (ptr), "event", |
g_signal_connect (G_OBJECT (ptr), "event", |
102 |
G_CALLBACK (focus_out_cb), *gref); |
G_CALLBACK (focus_out_cb), *gref); |
103 |
|
|
104 |
g_signal_connect_after (G_OBJECT (button), "pressed", |
g_signal_connect_after (G_OBJECT (button), "pressed", |
105 |
G_CALLBACK (block_expose_events_cb), *gref); |
G_CALLBACK (block_expose_event_cb), *gref); |
106 |
|
|
107 |
g_signal_connect_after (G_OBJECT (button), "released", |
g_signal_connect_after (G_OBJECT (button), "released", |
108 |
G_CALLBACK (block_expose_events_cb), *gref); |
G_CALLBACK (block_expose_event_cb), *gref); |
109 |
|
|
110 |
gdk_threads_leave (); |
gdk_threads_leave (); |
111 |
} |
} |
119 |
GtkWidget *label; |
GtkWidget *label; |
120 |
void *ptr; |
void *ptr; |
121 |
|
|
122 |
|
gdk_threads_enter (); |
123 |
|
|
124 |
ptr = NSA_GET_PTR (env, obj); |
ptr = NSA_GET_PTR (env, obj); |
125 |
|
|
126 |
text = (*env)->GetStringUTFChars (env, jtext, NULL); |
text = (*env)->GetStringUTFChars (env, jtext, NULL); |
127 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
128 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
129 |
label = gtk_bin_get_child (GTK_BIN (button)); |
label = gtk_bin_get_child (GTK_BIN (button)); |
130 |
gtk_label_set_text (GTK_LABEL (label), text); |
gtk_label_set_text (GTK_LABEL (label), text); |
131 |
|
|
|
gdk_threads_leave (); |
|
|
|
|
132 |
(*env)->ReleaseStringUTFChars (env, jtext, text); |
(*env)->ReleaseStringUTFChars (env, jtext, text); |
133 |
|
|
134 |
|
gdk_threads_leave (); |
135 |
} |
} |
136 |
|
|
137 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
144 |
GtkWidget *label; |
GtkWidget *label; |
145 |
PangoFontDescription *font_desc; |
PangoFontDescription *font_desc; |
146 |
|
|
147 |
|
gdk_threads_enter(); |
148 |
|
|
149 |
ptr = NSA_GET_PTR (env, obj); |
ptr = NSA_GET_PTR (env, obj); |
150 |
|
|
151 |
font_name = (*env)->GetStringUTFChars (env, name, NULL); |
font_name = (*env)->GetStringUTFChars (env, name, NULL); |
152 |
|
|
|
gdk_threads_enter(); |
|
|
|
|
153 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
154 |
label = gtk_bin_get_child (GTK_BIN (button)); |
label = gtk_bin_get_child (GTK_BIN (button)); |
155 |
|
|
166 |
|
|
167 |
pango_font_description_free (font_desc); |
pango_font_description_free (font_desc); |
168 |
|
|
|
gdk_threads_leave(); |
|
|
|
|
169 |
(*env)->ReleaseStringUTFChars (env, name, font_name); |
(*env)->ReleaseStringUTFChars (env, name, font_name); |
170 |
|
|
171 |
|
gdk_threads_leave(); |
172 |
} |
} |
173 |
|
|
174 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
184 |
GtkWidget *button; |
GtkWidget *button; |
185 |
void *ptr; |
void *ptr; |
186 |
|
|
187 |
|
gdk_threads_enter (); |
188 |
|
|
189 |
ptr = NSA_GET_PTR (env, obj); |
ptr = NSA_GET_PTR (env, obj); |
190 |
|
|
191 |
normal_color.red = (red / 255.0) * 65535; |
normal_color.red = (red / 255.0) * 65535; |
207 |
prelight_color.green = prelight_green > 65535 ? 65535 : prelight_green; |
prelight_color.green = prelight_green > 65535 ? 65535 : prelight_green; |
208 |
prelight_color.blue = prelight_blue > 65535 ? 65535 : prelight_blue; |
prelight_color.blue = prelight_blue > 65535 ? 65535 : prelight_blue; |
209 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
210 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
211 |
|
|
212 |
gtk_widget_modify_bg (button, GTK_STATE_NORMAL, &normal_color); |
gtk_widget_modify_bg (button, GTK_STATE_NORMAL, &normal_color); |
225 |
GtkWidget *label; |
GtkWidget *label; |
226 |
void *ptr; |
void *ptr; |
227 |
|
|
228 |
|
gdk_threads_enter (); |
229 |
|
|
230 |
ptr = NSA_GET_PTR (env, obj); |
ptr = NSA_GET_PTR (env, obj); |
231 |
|
|
232 |
color.red = (red / 255.0) * 65535; |
color.red = (red / 255.0) * 65535; |
233 |
color.green = (green / 255.0) * 65535; |
color.green = (green / 255.0) * 65535; |
234 |
color.blue = (blue / 255.0) * 65535; |
color.blue = (blue / 255.0) * 65535; |
235 |
|
|
|
gdk_threads_enter (); |
|
|
|
|
236 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
237 |
label = gtk_bin_get_child (GTK_BIN (button)); |
label = gtk_bin_get_child (GTK_BIN (button)); |
238 |
|
|
250 |
GtkWidget *button; |
GtkWidget *button; |
251 |
void *ptr; |
void *ptr; |
252 |
|
|
|
ptr = NSA_GET_PTR (env, obj); |
|
|
|
|
253 |
gdk_threads_enter (); |
gdk_threads_enter (); |
254 |
|
|
255 |
|
ptr = NSA_GET_PTR (env, obj); |
256 |
|
|
257 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
258 |
gtk_widget_activate (GTK_WIDGET (button)); |
gtk_widget_activate (GTK_WIDGET (button)); |
259 |
|
|
267 |
void *ptr; |
void *ptr; |
268 |
GtkWidget *button; |
GtkWidget *button; |
269 |
|
|
270 |
|
gdk_threads_enter (); |
271 |
|
|
272 |
ptr = NSA_GET_PTR (env, obj); |
ptr = NSA_GET_PTR (env, obj); |
273 |
|
|
|
gdk_threads_enter (); |
|
274 |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
button = gtk_bin_get_child (GTK_BIN (ptr)); |
275 |
gtk_widget_grab_focus (button); |
gtk_widget_grab_focus (button); |
276 |
|
|
277 |
gdk_threads_leave (); |
gdk_threads_leave (); |
278 |
} |
} |
279 |
|
|
284 |
GtkWidget *widget, *child; |
GtkWidget *widget, *child; |
285 |
void *ptr; |
void *ptr; |
286 |
|
|
|
ptr = NSA_GET_PTR (env, obj); |
|
|
|
|
287 |
gdk_threads_enter (); |
gdk_threads_enter (); |
288 |
|
|
289 |
|
ptr = NSA_GET_PTR (env, obj); |
290 |
|
|
291 |
widget = GTK_WIDGET (ptr); |
widget = GTK_WIDGET (ptr); |
292 |
|
|
293 |
/* We assume that -1 is a width or height and not a request for the |
/* We assume that -1 is a width or height and not a request for the |
319 |
{ |
{ |
320 |
gdk_threads_leave (); |
gdk_threads_leave (); |
321 |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
322 |
postFocusEventID, |
postFocusEventID, |
323 |
AWT_FOCUS_GAINED, |
AWT_FOCUS_GAINED, |
324 |
JNI_FALSE); |
JNI_FALSE); |
325 |
gdk_threads_enter (); |
gdk_threads_enter (); |
326 |
return FALSE; |
return FALSE; |
327 |
} |
} |
333 |
{ |
{ |
334 |
gdk_threads_leave (); |
gdk_threads_leave (); |
335 |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
336 |
postFocusEventID, |
postFocusEventID, |
337 |
AWT_FOCUS_LOST, |
AWT_FOCUS_LOST, |
338 |
JNI_FALSE); |
JNI_FALSE); |
339 |
gdk_threads_enter (); |
gdk_threads_enter (); |
340 |
return FALSE; |
return FALSE; |
341 |
} |
} |
342 |
|
|
343 |
static void |
static void |
344 |
block_expose_events_cb (GtkWidget *widget, jobject peer) |
block_expose_event_cb (GtkWidget *widget, jobject peer) |
345 |
{ |
{ |
346 |
gdk_threads_leave (); |
gdk_threads_leave (); |
347 |
|
|
348 |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
349 |
beginNativeRepaintID); |
beginNativeRepaintID); |
350 |
|
|
351 |
gdk_threads_enter (); |
gdk_threads_enter (); |
352 |
|
|
353 |
gdk_window_process_updates (widget->window, TRUE); |
gdk_window_process_updates (widget->window, TRUE); |
354 |
|
|
355 |
gdk_threads_leave (); |
gdk_threads_leave (); |
356 |
|
|
357 |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
(*gdk_env())->CallVoidMethod (gdk_env(), peer, |
358 |
endNativeRepaintID); |
endNativeRepaintID); |
359 |
|
|
360 |
gdk_threads_enter (); |
gdk_threads_enter (); |
361 |
} |
} |