aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c82
1 files changed, 52 insertions, 30 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
index 71a789e..ed9ced6 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
@@ -42,7 +42,8 @@ exception statement from your version. */
#define TEXT_FROM_SW(obj) (GTK_TEXT_VIEW(GTK_SCROLLED_WINDOW (obj)->container.child))
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
- (JNIEnv *env, jobject obj, jint scroll)
+ (JNIEnv *env, jobject obj,
+ jint textview_width, jint textview_height, jint scroll)
{
GtkWidget *text, *sw;
@@ -50,8 +51,9 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
NSA_SET_GLOBAL_REF (env, obj);
gdk_threads_enter ();
-
+
text = gtk_text_view_new ();
+ gtk_widget_set_size_request (text, textview_width, textview_height);
gtk_widget_show (text);
sw = gtk_scrolled_window_new (NULL, NULL);
@@ -78,34 +80,6 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize
- (JNIEnv *env, jobject obj, jintArray jdims)
-{
- void *ptr;
- jint *dims;
- GtkWidget *text;
- GtkRequisition requisition;
-
- ptr = NSA_GET_PTR (env, obj);
-
- dims = (*env)->GetIntArrayElements (env, jdims, 0);
- dims[0] = dims[1] = 0;
-
- gdk_threads_enter ();
-
- text = GTK_WIDGET (TEXT_FROM_SW (ptr));
-
- gtk_widget_size_request(GTK_WIDGET (text), &requisition);
- dims[0] = requisition.width;
- dims[1] = requisition.height;
-
- gdk_threads_leave ();
-
- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
-}
-
-
-JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert
(JNIEnv *env, jobject obj, jstring contents, jint position)
{
@@ -198,3 +172,51 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont
(*env)->ReleaseStringUTFChars (env, name, font_name);
}
+
+JNIEXPORT jint JNICALL
+Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight
+ (JNIEnv *env, jobject obj)
+{
+ void *ptr;
+ GtkScrolledWindow *sw;
+ GtkRequisition requisition;
+ jint height = 0;
+ jint spacing = 0;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter ();
+ sw = GTK_SCROLLED_WINDOW (ptr);
+
+ gtk_widget_size_request (sw->hscrollbar, &requisition);
+ gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL);
+ height = requisition.height + spacing;
+
+ gdk_threads_leave ();
+
+ return height;
+}
+
+JNIEXPORT jint JNICALL
+Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth
+ (JNIEnv *env, jobject obj)
+{
+ void *ptr;
+ GtkScrolledWindow *sw;
+ GtkRequisition requisition;
+ jint width = 0;
+ jint spacing = 0;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter ();
+ sw = GTK_SCROLLED_WINDOW (ptr);
+
+ gtk_widget_size_request (sw->vscrollbar, &requisition);
+ gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL);
+ width = requisition.width + spacing;
+
+ gdk_threads_leave ();
+
+ return width;
+}