summaryrefslogtreecommitdiff
path: root/libjava/jni/gtk-peer
diff options
context:
space:
mode:
authorfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-13 20:58:33 +0000
committerfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-13 20:58:33 +0000
commit20ae57d3b7ab2937bb9f1963acc9e9c66a20f7a1 (patch)
treeb7d513f8624f5a1b1705ce57bce0883838a7052c /libjava/jni/gtk-peer
parent3546565593871f419d570bdc3a447efb6236d977 (diff)
downloadgcc-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.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 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;
+}