60 |
window_widget = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
window_widget = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
61 |
window = GTK_WINDOW (window_widget); |
window = GTK_WINDOW (window_widget); |
62 |
|
|
63 |
|
// Avoid GTK runtime assertion failures. |
64 |
|
width = (width < 1) ? 1 : width; |
65 |
|
height = (height < 1) ? 1 : height; |
66 |
|
|
67 |
gtk_window_set_default_size (window, width, height); |
gtk_window_set_default_size (window, width, height); |
68 |
|
|
69 |
/* We must set this window's size requisition. Otherwise when a |
/* We must set this window's size requisition. Otherwise when a |
84 |
|
|
85 |
gtk_window_set_type_hint (window, type); |
gtk_window_set_type_hint (window, type); |
86 |
|
|
87 |
|
gtk_window_group_add_window (global_gtk_window_group, window); |
88 |
|
|
89 |
vbox = gtk_vbox_new (0, 0); |
vbox = gtk_vbox_new (0, 0); |
90 |
layout = gtk_layout_new (NULL, NULL); |
layout = gtk_layout_new (NULL, NULL); |
91 |
gtk_box_pack_end (GTK_BOX (vbox), layout, 1, 1, 0); |
gtk_box_pack_end (GTK_BOX (vbox), layout, 1, 1, 0); |
99 |
NSA_SET_PTR (env, obj, window_widget); |
NSA_SET_PTR (env, obj, window_widget); |
100 |
} |
} |
101 |
|
|
102 |
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisible |
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible |
103 |
(JNIEnv *env, jobject obj, jboolean visible) |
(JNIEnv *env, jobject obj, jboolean visible) |
104 |
{ |
{ |
105 |
void *ptr; |
void *ptr; |
155 |
gdk_threads_leave (); |
gdk_threads_leave (); |
156 |
} |
} |
157 |
|
|
|
void |
|
|
setup_window (JNIEnv *env, jobject obj, GtkWidget *window, jint width, |
|
|
jint height, jboolean visible) |
|
|
{ |
|
|
GtkWidget *layout, *vbox; |
|
|
|
|
|
gdk_threads_enter(); |
|
|
gtk_window_set_policy (GTK_WINDOW (window), 1, 1, 0); |
|
|
gtk_widget_set_usize (window, width, height); |
|
|
|
|
|
vbox = gtk_vbox_new (0, 0); |
|
|
layout = gtk_layout_new (NULL, NULL); |
|
|
gtk_box_pack_end (GTK_BOX (vbox), layout, 1, 1, 0); |
|
|
gtk_container_add (GTK_CONTAINER (window), vbox); |
|
|
gtk_widget_realize (layout); |
|
|
connect_awt_hook (env, obj, 1, GTK_LAYOUT(layout)->bin_window); |
|
|
gtk_widget_show (layout); |
|
|
gtk_widget_show (vbox); |
|
|
|
|
|
gtk_widget_realize (window); |
|
|
|
|
|
connect_awt_hook (env, obj, 1, window->window); |
|
|
set_visible (window, visible); |
|
|
gdk_threads_leave (); |
|
|
} |
|
|
|
|
158 |
/* |
/* |
159 |
* Set a frame's title |
* Set a frame's title |
160 |
*/ |
*/ |
230 |
{ |
{ |
231 |
void *ptr = NSA_GET_PTR (env, obj); |
void *ptr = NSA_GET_PTR (env, obj); |
232 |
|
|
233 |
|
// Avoid GTK runtime assertion failures. |
234 |
|
width = (width < 1) ? 1 : width; |
235 |
|
height = (height < 1) ? 1 : height; |
236 |
|
|
237 |
gdk_threads_enter (); |
gdk_threads_enter (); |
238 |
gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height); |
gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height); |
239 |
gdk_threads_leave (); |
gdk_threads_leave (); |
245 |
{ |
{ |
246 |
void *ptr = NSA_GET_PTR (env, obj); |
void *ptr = NSA_GET_PTR (env, obj); |
247 |
|
|
248 |
|
// Avoid GTK runtime assertion failures. |
249 |
|
width = (width < 1) ? 1 : width; |
250 |
|
height = (height < 1) ? 1 : height; |
251 |
|
|
252 |
gdk_threads_enter (); |
gdk_threads_enter (); |
253 |
gtk_window_move (GTK_WINDOW(ptr), x, y); |
gtk_window_move (GTK_WINDOW(ptr), x, y); |
254 |
/* Need to change the widget's request size. */ |
/* Need to change the widget's request size. */ |
302 |
|
|
303 |
return height; |
return height; |
304 |
} |
} |
|
|
|
|
|
|
|
void |
|
|
gdk_window_get_root_geometry (GdkWindow *window, |
|
|
gint *x, |
|
|
gint *y, |
|
|
gint *width, |
|
|
gint *height, |
|
|
gint *border, |
|
|
gint *depth) |
|
|
{ |
|
|
GdkWindow *private; |
|
|
|
|
|
g_return_if_fail (window != NULL); |
|
|
|
|
|
private = (GdkWindow*) window; |
|
|
if (x) |
|
|
*x = 0; |
|
|
if (y) |
|
|
*y = 0; |
|
|
if (width) |
|
|
*width = 0; |
|
|
if (height) |
|
|
*height = 0; |
|
|
if (border) |
|
|
*border = 0; |
|
|
if (depth) |
|
|
*depth = 0; |
|
|
|
|
|
if (GDK_WINDOW_DESTROYED (private)) |
|
|
return; |
|
|
|
|
|
private = gdk_window_get_toplevel (private); |
|
|
if (GDK_WINDOW_DESTROYED(private)) |
|
|
return; |
|
|
|
|
|
gdk_window_get_geometry (private, x, y, width, height, depth); |
|
|
|
|
|
} |
|
|
|
|