diff options
author | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-13 20:58:33 +0000 |
---|---|---|
committer | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-13 20:58:33 +0000 |
commit | 20ae57d3b7ab2937bb9f1963acc9e9c66a20f7a1 (patch) | |
tree | b7d513f8624f5a1b1705ce57bce0883838a7052c /libjava/jni/gtk-peer | |
parent | 3546565593871f419d570bdc3a447efb6236d977 (diff) | |
download | gcc-20ae57d3b7ab2937bb9f1963acc9e9c66a20f7a1.tar.gz |
2004-01-13 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
(native create): Add width and height parameters. Set text
view's size request according to new parameters.
(create): Calculate text view size based on current font's
metrics and number of rows and columns. Set TextArea's font if
not already set. Call native create.
(getMinimumSize): Call minimumSize.
(getPreferredSize): Call preferredSize.
(getHScrollbarHeight): New method.
(getVScrollbarWidth): New method.
(minimumSize): Calculate minimum size based on scrollbar
visibility, scrollbar sizes, font metrics and number of rows and
columns.
(preferredSize): Likewise for preferred size.
(gtkTextGetSize): Remove method.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75817 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/jni/gtk-peer')
-rw-r--r-- | libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c | 82 |
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 71a789ed37f..ed9ced653da 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; +} |