86 |
gdk_threads_leave (); |
gdk_threads_leave (); |
87 |
} |
} |
88 |
|
|
89 |
|
JNIEXPORT void JNICALL |
90 |
|
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetGetPreferredDimensions |
91 |
|
(JNIEnv *env, jobject obj, jintArray jdims) |
92 |
|
{ |
93 |
|
void *ptr; |
94 |
|
jint *dims; |
95 |
|
GtkWidget *button; |
96 |
|
GtkWidget *label; |
97 |
|
GtkRequisition current_req; |
98 |
|
GtkRequisition current_label_req; |
99 |
|
GtkRequisition natural_req; |
100 |
|
|
101 |
|
gdk_threads_enter (); |
102 |
|
|
103 |
|
ptr = NSA_GET_PTR (env, obj); |
104 |
|
|
105 |
|
button = gtk_bin_get_child (GTK_BIN (ptr)); |
106 |
|
label = gtk_bin_get_child (GTK_BIN (button)); |
107 |
|
|
108 |
|
dims = (*env)->GetIntArrayElements (env, jdims, 0); |
109 |
|
dims[0] = dims[1] = 0; |
110 |
|
|
111 |
|
/* Save the button's current size request. */ |
112 |
|
gtk_widget_size_request (GTK_WIDGET (button), ¤t_req); |
113 |
|
|
114 |
|
/* Save the label's current size request. */ |
115 |
|
gtk_widget_size_request (GTK_WIDGET (label), ¤t_label_req); |
116 |
|
|
117 |
|
/* Get the widget's "natural" size request. */ |
118 |
|
gtk_widget_set_size_request (GTK_WIDGET (button), -1, -1); |
119 |
|
gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1); |
120 |
|
|
121 |
|
gtk_widget_size_request (GTK_WIDGET (button), &natural_req); |
122 |
|
|
123 |
|
/* Reset the button's size request. */ |
124 |
|
gtk_widget_set_size_request (GTK_WIDGET (button), |
125 |
|
current_req.width, current_req.height); |
126 |
|
|
127 |
|
/* Reset the label's size request. */ |
128 |
|
gtk_widget_set_size_request (GTK_WIDGET (label), |
129 |
|
current_label_req.width, current_label_req.height); |
130 |
|
|
131 |
|
dims[0] = natural_req.width; |
132 |
|
dims[1] = natural_req.height; |
133 |
|
|
134 |
|
(*env)->ReleaseIntArrayElements (env, jdims, dims, 0); |
135 |
|
|
136 |
|
gdk_threads_leave (); |
137 |
|
} |
138 |
|
|
139 |
JNIEXPORT void JNICALL |
JNIEXPORT void JNICALL |
140 |
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals |
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals |
141 |
(JNIEnv *env, jobject obj) |
(JNIEnv *env, jobject obj) |