This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: FileDialog default sizes


On Wed, 2004-01-14 at 17:10, Kim Ho wrote:
> Hi,
> 
> This patch gives file dialogs default sizes of gtk size request + insets
> (if no size is set for them - current defaults to 0x0).
> 
> Cheers,
> 
> Kim
> 
> 2004-01-14  Kim Ho  <kho@redhat.com>
> 
>        * gnu/java/awt/peer/gtk/GtkComponentPeer.java (Constructor): 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 (getTotalSize):
>        New method.
>        * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
>        (getTotalSize): New method. Takes size request and adds insets.
> 

Noticed a small error. Fixed now.


Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/libjava/ChangeLog,v
retrieving revision 1.2557
diff -u -r1.2557 ChangeLog
--- ChangeLog	15 Jan 2004 03:41:47 -0000	1.2557
+++ ChangeLog	15 Jan 2004 14:52:37 -0000
@@ -1,3 +1,13 @@
+2004-01-14  Kim Ho  <kho@redhat.com>
+
+        * gnu/java/awt/peer/gtk/GtkComponentPeer.java (Constructor): 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 (getTotalSize): New
+        method.
+        * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (getTotalSize):
+        New method. Takes size request and adds insets.
+
 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
 
 	* configure.in: Add in AC_PREREQ(2.13)
Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.13
diff -u -r1.13 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java	13 Jan 2004 20:54:46 -0000	1.13
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java	15 Jan 2004 14:52:37 -0000
@@ -1,5 +1,5 @@
 /* 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 @@
 	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);
 
Index: gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,v
retrieving revision 1.4
diff -u -r1.4 GtkFileDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java	8 Jan 2004 21:12:25 -0000	1.4
+++ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java	15 Jan 2004 14:52:37 -0000
@@ -1,5 +1,5 @@
 /* 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 @@
   native void connectJObject ();
   native void connectSignals ();
   native void nativeSetFile (String file);
+  native void gtkWidgetGetDimensions (int[] dims);
 
   public void setFile (String fileName)
   {
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v
retrieving revision 1.12
diff -u -r1.12 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	13 Jan 2004 20:54:46 -0000	1.12
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	15 Jan 2004 14:52:38 -0000
@@ -1,5 +1,5 @@
 /* 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.
 
@@ -399,6 +399,33 @@
 
   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,

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]