Commit 2b8deefa by Kim Ho Committed by Kim Ho

GtkComponentPeer.java (GtkComponentPeer): If it is a FileDialog and has dimensions of 0 by 0...

2004-01-16  Kim Ho  <kho@redhat.com>

        * gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): If
        it is a FileDialog and has dimensions of 0 by 0, then the initial
        size is set to size request plus insets.
        * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
        (gtkWidgetGetDimensions): Override method.
        * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
        (gtkWidgetGetDimensions): Override method. Returns size request plus
        insets.

From-SVN: r75993
parent 79a76d65
2004-01-16 Kim Ho <kho@redhat.com>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): If
it is a FileDialog and has dimensions of 0 by 0, then the initial
size is set to size request plus insets.
* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
(gtkWidgetGetDimensions): Override method.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(gtkWidgetGetDimensions): Override method. Returns size request plus
insets.
2004-01-16 Andrew Haley <aph@redhat.com>
* sysdep/x86-64/locks.h: Don't use in/out memory constraints.
......
/* GtkComponentPeer.java -- Implements ComponentPeer with GTK
Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
......@@ -124,6 +124,16 @@ public class GtkComponentPeer extends GtkGenericPeer
setFont(awtComponent.getFont());
setCursor (awtComponent.getCursor ());
if (this instanceof GtkFileDialogPeer && awtComponent.getHeight() == 0
&& awtComponent.getWidth() == 0)
{
int[] dims = new int[2];
gtkWidgetGetDimensions(dims);
((GtkFileDialogPeer) this).setBoundsCallback((Window)awtComponent,
awtComponent.getX(),
awtComponent.getY(),
dims[0], dims[1]);
}
Rectangle bounds = awtComponent.getBounds ();
setBounds (bounds.x, bounds.y, bounds.width, bounds.height);
......
/* GtkFileDialogPeer.java -- Implements FileDialogPeer with GTK
Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
......@@ -63,6 +63,7 @@ public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer
native void connectJObject ();
native void connectSignals ();
native void nativeSetFile (String file);
native void gtkWidgetGetDimensions (int[] dims);
public void setFile (String fileName)
{
......
/* gtkwindowpeer.c -- Native implementation of GtkWindowPeer
Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
......@@ -400,6 +400,33 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight
return height;
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_gtkWidgetGetDimensions
(JNIEnv *env, jobject obj, jintArray jdims)
{
void *ptr;
jint *dims;
int top, left, bottom, right;
GtkRequisition req;
ptr = NSA_GET_PTR (env, obj);
dims = (*env)->GetIntArrayElements (env, jdims, 0);
dims[0] = dims[1] = 0;
gdk_threads_enter ();
gtk_widget_size_request (GTK_WIDGET (ptr), &req);
window_get_frame_extents (GTK_WIDGET (ptr), &top, &left, &bottom, &right);
dims[0] = req.width + left + right;
dims[1] = req.height + top + bottom;
gdk_threads_leave ();
(*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
}
static void
window_get_frame_extents (GtkWidget *window,
int *top, int *left, int *bottom, int *right)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment