classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: Merge GtkArgs removal from libgcj gui branch


From: Mark Wielaard
Subject: [cp-patches] FYI: Merge GtkArgs removal from libgcj gui branch
Date: Sat, 31 Jul 2004 01:15:06 +0200

Hi,

This merges the patch that refactors some of the peers so that we can
remove the GtkArg-based APIs.  Using GTK functions directly is more
straight-forward for debugging, and more consistent with what the rest
of the peers do.

jni headers have been regenerated for these classes.
And while I was at it I also regenerated gnu_java_nio_VMPipe.h.

Cheers,

Mark

2004-07-30  Mark Wielaard  <address@hidden>

        * include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: Regenerated.
        * include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Likewise.
        * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Likewise.
        * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Likewise.

        * include/gnu_java_nio_VMPipe.h: Regenerated.

2004-07-30  Thomas Fitzsimmons  <address@hidden>

        * gnu/java/awt/peer/gtk/GtkArg.java: Remove file.
        * gnu/java/awt/peer/gtk/GtkArgList.java: Remove file.

        * gnu/java/awt/peer/gtk/GtkButtonPeer.java,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
        (create(String)): New method.
        (create): Call new create method.
        (getArgs): Remove method.
        * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
        (nativeCreate): Rename to create.
        (gtkSetLabel): Rename to gtkButtonSetLabel.
        (gtkToggleButtonSetActive): New method.
        (create): Call gtkToggleButtonSetActive and gtkButtonSetLabel.
        (setState): Replace set call with gtkToggleButtonSetActive.
        (setLabel): Replace gtkSetLabel call with gtkButtonSetLabel.
        (getArgs): Remove method.
        * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
        (gtkWidgetSetSensitive): New method.
        (gtkWidgetSetParent): Likewise.
        (GtkComponentPeer): Call setParent, setComponentBounds and
        setVisibleAndEnabled.
        (setParent): New method.
        (setComponentBounds): New method.
        (setVisibleAndEnabled): New method.
        (setEnabled): Call gtkWidgetSetSensitive.
        (getArgs): Remove method.
        Remove all set methods.
        * gnu/java/awt/peer/gtk/GtkDialogPeer.java (create): Call
        gtkWindowSetModal, setTitle and setResizable.
        (getArgs): Remove method.
        * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
        (setComponentBounds): New method.
        * gnu/java/awt/peer/gtk/GtkFramePeer.java (setResizable):
        Replace set call with gtkWindowSetResizable.
        (getArgs): Remove method.
        (create): Call setTitle and setResizable.
        * gnu/java/awt/peer/gtk/GtkWindowPeer.java,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
        (gtkWindowSetTitle): New method.
        (gtkWindowSetResizable): New method.
        (gtkWindowSetModal): New method.
        (setParent): New method.
        (setVisibleAndEnabled): New method.
        (getArgs): Remove method.
        (setTitle): Call gtkWindowSetTitle.
        (setResizable): Call gtkWindowSetResizable.
        * native/jni/gtk-peer/gtkpeer.h [DEBUG_LOCKING]: New define to turn on
        and off locking instrumentation.

Index: gnu/java/awt/peer/gtk/GtkButtonPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkButtonPeer.java,v
retrieving revision 1.28
diff -u -r1.28 GtkButtonPeer.java
--- gnu/java/awt/peer/gtk/GtkButtonPeer.java    31 May 2004 21:11:40 -0000      
1.28
+++ gnu/java/awt/peer/gtk/GtkButtonPeer.java    30 Jul 2004 23:10:01 -0000
@@ -50,12 +50,13 @@
 public class GtkButtonPeer extends GtkComponentPeer
     implements ButtonPeer
 {
-  native void create ();
+  native void create (String label);
+
   public native void connectJObject ();
   public native void connectSignals ();
 
   native void gtkSetFont (String name, int style, int size);
-  native void gtkSetLabel(String label);
+  native void gtkSetLabel (String label);
   native void gtkWidgetSetForeground (int red, int green, int blue);
   native void gtkActivate ();
 
@@ -64,6 +65,11 @@
     super (b);
   }
 
+  void create ()
+  {
+    create (((Button) awtComponent).getLabel ());
+  }
+
   public void setLabel (String label) 
   {
     gtkSetLabel(label);
@@ -97,11 +103,4 @@
 
     super.handleEvent (e);
   }
-
-  public void getArgs (Component component, GtkArgList args)
-  {
-    super.getArgs (component, args);
-
-    args.add ("label", ((Button)component).getLabel ());
-  }
 }
Index: gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,v
retrieving revision 1.17
diff -u -r1.17 GtkCheckboxPeer.java
--- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java  31 May 2004 21:11:40 -0000      
1.17
+++ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java  30 Jul 2004 23:10:01 -0000
@@ -52,39 +52,39 @@
   // The current state of the GTK checkbox.
   private boolean currentState;  
 
-  public native void nativeCreate (GtkCheckboxGroupPeer group,
-                                   boolean state);
+  public native void create (GtkCheckboxGroupPeer group);
   public native void nativeSetCheckboxGroup (GtkCheckboxGroupPeer group);
   public native void connectSignals ();
   native void gtkSetFont (String name, int style, int size);
-  public native void gtkSetLabel (String label);
+  native void gtkButtonSetLabel (String label);
+  native void gtkToggleButtonSetActive (boolean is_active);
 
   public GtkCheckboxPeer (Checkbox c)
   {
     super (c);
   }
 
-  // We can't fully use the ordinary getArgs code here, due to
-  // oddities of this particular widget.  In particular we must be
-  // able to switch between a checkbutton and a radiobutton
-  // dynamically.
+  // FIXME: we must be able to switch between a checkbutton and a
+  // radiobutton dynamically.
   public void create ()
   {
-    CheckboxGroup g = ((Checkbox) awtComponent).getCheckboxGroup ();
+    Checkbox checkbox = (Checkbox) awtComponent;
+    CheckboxGroup g = checkbox.getCheckboxGroup ();
     old_group = GtkCheckboxGroupPeer.getCheckboxGroupPeer (g);
-    currentState = ((Checkbox)awtComponent).getState();
-    nativeCreate (old_group, currentState);
+    create (old_group);
+    gtkToggleButtonSetActive (checkbox.getState ());
+    gtkButtonSetLabel (checkbox.getLabel ());
   }
 
   public void setState (boolean state)
   {
     if (currentState != state)
-      set ("active", state);
+      gtkToggleButtonSetActive (state);
   }
 
   public void setLabel (String label)
   {
-    gtkSetLabel (label);
+    gtkButtonSetLabel (label);
   }
 
   public void setCheckboxGroup (CheckboxGroup group)
@@ -100,13 +100,6 @@
       }
   }
 
-  public void getArgs (Component component, GtkArgList args)
-  {
-    super.getArgs (component, args);
-    args.add ("active", ((Checkbox) component).getState ());
-    args.add ("label", ((Checkbox) component).getLabel ());
-  }
-
   // Override the superclass postItemEvent so that the peer doesn't
   // need information that we have.
   public void postItemEvent (Object item, int stateChange)
Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.67
diff -u -r1.67 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 29 Jul 2004 06:12:04 -0000      
1.67
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 30 Jul 2004 23:10:01 -0000
@@ -92,6 +92,8 @@
   native void gtkWidgetSetCursor (int type);
   native void gtkWidgetSetBackground (int red, int green, int blue);
   native void gtkWidgetSetForeground (int red, int green, int blue);
+  native void gtkWidgetSetSensitive (boolean sensitive);
+  native void gtkWidgetSetParent (ComponentPeer parent);
   native void gtkWidgetRequestFocus ();
   native void gtkWidgetDispatchKeyEvent (int id, long when, int mods,
                                          int keyCode, int keyLocation);
@@ -114,37 +116,59 @@
     this.awtComponent = awtComponent;
     insets = new Insets (0, 0, 0, 0);
 
-      create ();
-      
-      GtkArgList args = new GtkArgList ();
-      getArgs (awtComponent, args);
-      args.setArgs (this);
-
-      connectJObject ();
-      connectSignals ();
-
-      if (awtComponent.getForeground () != null)
-       setForeground (awtComponent.getForeground ());
-      if (awtComponent.getBackground () != null)
-       setBackground (awtComponent.getBackground ());
-      if (awtComponent.getFont() != null)
-       setFont(awtComponent.getFont());
-
-      setCursor (awtComponent.getCursor ());
-      if (this instanceof GtkFileDialogPeer && awtComponent.getHeight() == 0
-          && awtComponent.getWidth() == 0)
+    create ();
+
+    setParent ();
+
+    connectJObject ();
+    connectSignals ();
+
+    if (awtComponent.getForeground () != null)
+      setForeground (awtComponent.getForeground ());
+    if (awtComponent.getBackground () != null)
+      setBackground (awtComponent.getBackground ());
+    if (awtComponent.getFont() != null)
+      setFont(awtComponent.getFont());
+
+    setCursor (awtComponent.getCursor ());
+
+    setComponentBounds ();
+
+    Rectangle bounds = awtComponent.getBounds ();
+    setBounds (bounds.x, bounds.y, bounds.width, bounds.height);
+    setVisibleAndEnabled ();
+  }
+
+   void setParent ()
+  {
+    ComponentPeer p;
+    Component component = awtComponent;
+    do
       {
-        int[] dims = new int[2];
-        gtkWidgetGetDimensions(dims);
-        ((GtkFileDialogPeer) this).setBoundsCallback((Window)awtComponent, 
-                                                     awtComponent.getX(), 
-                                                     awtComponent.getY(),
-                                                     dims[0], dims[1]);
+       component = component.getParent ();
+       p = component.getPeer ();
       }
+    while (p instanceof java.awt.peer.LightweightPeer);
+    
+    if (p != null)
+      gtkWidgetSetParent (p);
+  }
+  
+  /*
+   * Set the bounds of this peer's AWT Component based on dimensions
+   * returned by the native windowing system.  Most Components impose
+   * their dimensions on the peers so the default implementation does
+   * nothing.  However some peers, like GtkFileDialogPeer, need to
+   * pass their size back to the AWT Component.
+   */
+  void setComponentBounds ()
+  {
+  }
 
-      Rectangle bounds = awtComponent.getBounds ();
-      setBounds (bounds.x, bounds.y, bounds.width, bounds.height);
+  void setVisibleAndEnabled ()
+  {
     setVisible (awtComponent.isVisible ());
+    setEnabled (awtComponent.isEnabled ());
   }
 
   public int checkImage (Image image, int width, int height, 
@@ -416,7 +440,7 @@
 
   public void setEnabled (boolean b)
   {
-    set ("sensitive", b);
+    gtkWidgetSetSensitive (b);
   }
 
   public void setFont (Font f)
@@ -505,45 +529,6 @@
                                item, stateChange));
   }
 
-  public void getArgs (Component component, GtkArgList args)
-  {
-    args.add ("sensitive", component.isEnabled ());
-
-    ComponentPeer p;
-
-    do
-      {
-       component = component.getParent ();
-       p = component.getPeer ();
-      } while (p instanceof java.awt.peer.LightweightPeer);
-    
-    if (p != null)
-      args.add ("parent", p);
-  }
-
-  native void set (String name, String value);
-  native void set (String name, boolean value);
-  native void set (String name, int value);
-  native void set (String name, float value);
-  native void set (String name, Object value);
-
-  void set (GtkArg arg)
-  {
-    String name = arg.getName ();
-    Object value = arg.getValue ();
-
-    if (value instanceof Boolean)
-      set (name, ((Boolean)value).booleanValue ());
-    else if (value instanceof Integer)
-      set (name, ((Integer)value).intValue ());
-    else if (value instanceof Float)
-      set (name, ((Float)value).floatValue ());
-    else if (value instanceof String)
-      set (name, ((String) value));
-    else
-      set (name, value);
-  }
-
   public GraphicsConfiguration getGraphicsConfiguration ()
   {
     // FIXME: just a stub for now.
Index: gnu/java/awt/peer/gtk/GtkDialogPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java,v
retrieving revision 1.20
diff -u -r1.20 GtkDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkDialogPeer.java    31 May 2004 21:11:40 -0000      
1.20
+++ gnu/java/awt/peer/gtk/GtkDialogPeer.java    30 Jul 2004 23:10:01 -0000
@@ -85,17 +85,11 @@
   {
     // Create a decorated dialog window.
     create (GDK_WINDOW_TYPE_HINT_DIALOG, true);
-  }
-
-  public void getArgs (Component component, GtkArgList args)
-  {
-    super.getArgs (component, args);
 
-    Dialog dialog = (Dialog) component;
+    Dialog dialog = (Dialog) awtComponent;
 
-    args.add ("title", dialog.getTitle ());
-    args.add ("modal", dialog.isModal ());
-    args.add ("allow_shrink", dialog.isResizable ());
-    args.add ("allow_grow", dialog.isResizable ());
+    gtkWindowSetModal (dialog.isModal ());
+    setTitle (dialog.getTitle ());
+    setResizable (dialog.isResizable ());
   }
 }
Index: gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,v
retrieving revision 1.15
diff -u -r1.15 GtkFileDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java        22 Jul 2004 19:45:38 
-0000      1.15
+++ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java        30 Jul 2004 23:10:01 
-0000
@@ -42,6 +42,7 @@
 import java.awt.Dialog;
 import java.awt.FileDialog;
 import java.awt.Graphics;
+import java.awt.Window;
 import java.awt.event.WindowEvent;
 import java.awt.peer.FileDialogPeer;
 import java.io.FilenameFilter;
@@ -81,6 +82,20 @@
     super (fd);
   }
 
+  void setComponentBounds ()
+  {
+    if (awtComponent.getHeight () == 0
+        && awtComponent.getWidth () == 0)
+      {
+        int[] dims = new int[2];
+        gtkWidgetGetPreferredDimensions (dims);
+        ((GtkFileDialogPeer) this).setBoundsCallback ((Window) awtComponent,
+                                                      awtComponent.getX (),
+                                                      awtComponent.getY (),
+                                                      dims[0], dims[1]);
+      }
+  }
+
   public void setFile (String fileName)
   {
     /* If nothing changed do nothing.  This usually happens because
Index: gnu/java/awt/peer/gtk/GtkFramePeer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java,v
retrieving revision 1.24
diff -u -r1.24 GtkFramePeer.java
--- gnu/java/awt/peer/gtk/GtkFramePeer.java     29 Jan 2004 14:51:50 -0000      
1.24
+++ gnu/java/awt/peer/gtk/GtkFramePeer.java     30 Jul 2004 23:10:01 -0000
@@ -115,10 +115,9 @@
     setSize (awtComponent.getWidth() - insets.left - insets.right,
              awtComponent.getHeight() - insets.top - insets.bottom
              + menuBarHeight);
-    set ("allow_shrink", resizable);
-    set ("allow_grow", resizable);
-  }  
-  
+    gtkWindowSetResizable (resizable);
+  }
+
   protected void postInsetsChangedEvent (int top, int left,
                                         int bottom, int right)
   {
@@ -137,19 +136,13 @@
   {
     // Create a normal decorated window.
     create (GDK_WINDOW_TYPE_HINT_NORMAL, true);
-    setMenuBar(((Frame) awtComponent).getMenuBar());
-    awtComponent.setForeground(java.awt.SystemColor.windowText);
-  }
 
-  public void getArgs (Component component, GtkArgList args)
-  {
-    super.getArgs (component, args);
+    Frame frame = (Frame) awtComponent;
 
-    Frame frame = (Frame) component;
+    setMenuBar (frame.getMenuBar ());
 
-    args.add ("title", frame.getTitle ());
-    args.add ("allow_shrink", frame.isResizable ());
-    args.add ("allow_grow", frame.isResizable ());
+    setTitle (frame.getTitle ());
+    setResizable (frame.isResizable ());
   }
 
   public void setIconImage (Image image) 
Index: gnu/java/awt/peer/gtk/GtkWindowPeer.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java,v
retrieving revision 1.26
diff -u -r1.26 GtkWindowPeer.java
--- gnu/java/awt/peer/gtk/GtkWindowPeer.java    13 Jan 2004 22:29:35 -0000      
1.26
+++ gnu/java/awt/peer/gtk/GtkWindowPeer.java    30 Jul 2004 23:10:01 -0000
@@ -60,6 +60,10 @@
   private boolean hasBeenShown = false;
   private int oldState = Frame.NORMAL;
 
+  native void gtkWindowSetTitle (String title);
+  native void gtkWindowSetResizable (boolean resizable);
+  native void gtkWindowSetModal (boolean modal);
+
   native void create (int type, boolean decorated,
                      int width, int height,
                      GtkWindowPeer parent,
@@ -92,6 +96,16 @@
     create (GDK_WINDOW_TYPE_HINT_NORMAL, false);
   }
 
+  void setParent ()
+  {
+    setVisible (awtComponent.isVisible ());
+    setEnabled (awtComponent.isEnabled ());
+  }
+
+  void setVisibleAndEnabled ()
+  {
+  }
+
   native void connectJObject ();
   native void connectSignals ();
 
@@ -100,12 +114,6 @@
     super (window);
   }
 
-  public void getArgs (Component component, GtkArgList args)
-  {
-    args.add ("visible", component.isVisible ());
-    args.add ("sensitive", component.isEnabled ());
-  }
-
   native public void toBack ();
   native public void toFront ();
 
@@ -120,7 +128,7 @@
 
   public void setTitle (String title)
   {
-    set ("title", title);
+    gtkWindowSetTitle (title);
   }
 
   native void setSize (int width, int height);
@@ -132,8 +140,7 @@
     // was resizable.
     setSize (awtComponent.getWidth() - insets.left - insets.right,
             awtComponent.getHeight() - insets.top - insets.bottom);
-    set ("allow_shrink", resizable);
-    set ("allow_grow", resizable);
+    gtkWindowSetResizable (resizable);
   }
 
   native void setBoundsCallback (Window window,
Index: include/gnu_java_awt_peer_gtk_GtkButtonPeer.h
===================================================================
RCS file: 
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h,v
retrieving revision 1.8
diff -u -r1.8 gnu_java_awt_peer_gtk_GtkButtonPeer.h
--- include/gnu_java_awt_peer_gtk_GtkButtonPeer.h       31 May 2004 21:11:43 
-0000      1.8
+++ include/gnu_java_awt_peer_gtk_GtkButtonPeer.h       30 Jul 2004 23:10:01 
-0000
@@ -10,7 +10,7 @@
 {
 #endif
 
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create (JNIEnv 
*env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create (JNIEnv 
*env, jobject, jstring);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectJObject 
(JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals 
(JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont 
(JNIEnv *env, jobject, jstring, jint, jint);
Index: include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h
===================================================================
RCS file: 
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h,v
retrieving revision 1.6
diff -u -r1.6 gnu_java_awt_peer_gtk_GtkCheckboxPeer.h
--- include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h     28 May 2004 17:27:52 
-0000      1.6
+++ include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h     30 Jul 2004 23:10:01 
-0000
@@ -10,11 +10,12 @@
 {
 #endif
 
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate 
(JNIEnv *env, jobject, jobject, jboolean);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_create 
(JNIEnv *env, jobject, jobject);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup (JNIEnv *env, 
jobject, jobject);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals (JNIEnv *env, 
jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetFont 
(JNIEnv *env, jobject, jstring, jint, jint);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetLabel 
(JNIEnv *env, jobject, jstring);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel (JNIEnv *env, 
jobject, jstring);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive (JNIEnv 
*env, jobject, jboolean);
 
 #ifdef __cplusplus
 }
Index: include/gnu_java_awt_peer_gtk_GtkComponentPeer.h
===================================================================
RCS file: 
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,v
retrieving revision 1.13
diff -u -r1.13 gnu_java_awt_peer_gtk_GtkComponentPeer.h
--- include/gnu_java_awt_peer_gtk_GtkComponentPeer.h    22 Jul 2004 19:45:38 
-0000      1.13
+++ include/gnu_java_awt_peer_gtk_GtkComponentPeer.h    30 Jul 2004 23:10:01 
-0000
@@ -21,6 +21,8 @@
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor (JNIEnv *env, 
jobject, jint);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground (JNIEnv 
*env, jobject, jint, jint, jint);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground (JNIEnv 
*env, jobject, jint, jint, jint);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive (JNIEnv *env, 
jobject, jboolean);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent (JNIEnv *env, 
jobject, jobject);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus (JNIEnv *env, 
jobject);
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent (JNIEnv 
*env, jobject, jint, jlong, jint, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkSetFont 
(JNIEnv *env, jobject, jstring, jint, jint);
@@ -32,11 +34,6 @@
 JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds (JNIEnv *env, 
jobject, jint, jint, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_hide 
(JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_show 
(JNIEnv *env, jobject);
-JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_String_2
 (JNIEnv *env, jobject, jstring, jstring);
-JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Z (JNIEnv 
*env, jobject, jstring, jboolean);
-JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2I (JNIEnv 
*env, jobject, jstring, jint);
-JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2F (JNIEnv 
*env, jobject, jstring, jfloat);
-JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_Object_2
 (JNIEnv *env, jobject, jstring, jobject);
 
 #ifdef __cplusplus
 }
Index: include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
===================================================================
RCS file: 
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,v
retrieving revision 1.10
diff -u -r1.10 gnu_java_awt_peer_gtk_GtkWindowPeer.h
--- include/gnu_java_awt_peer_gtk_GtkWindowPeer.h       28 May 2004 17:27:53 
-0000      1.10
+++ include/gnu_java_awt_peer_gtk_GtkWindowPeer.h       30 Jul 2004 23:10:01 
-0000
@@ -10,6 +10,9 @@
 {
 #endif
 
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle (JNIEnv *env, 
jobject, jstring);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable (JNIEnv *env, 
jobject, jboolean);
+JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal (JNIEnv *env, 
jobject, jboolean);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create (JNIEnv 
*env, jobject, jint, jboolean, jint, jint, jobject, jintArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectJObject 
(JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals 
(JNIEnv *env, jobject);
Index: include/gnu_java_nio_VMPipe.h
===================================================================
RCS file: /cvsroot/classpath/classpath/include/gnu_java_nio_VMPipe.h,v
retrieving revision 1.1
diff -u -r1.1 gnu_java_nio_VMPipe.h
--- include/gnu_java_nio_VMPipe.h       21 Jul 2004 20:35:30 -0000      1.1
+++ include/gnu_java_nio_VMPipe.h       30 Jul 2004 23:10:01 -0000
@@ -1,7 +1,7 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
-#ifndef __gnu_java_nio_VMPipe
-#define __gnu_java_nio_VMPipe
+#ifndef __gnu_java_nio_VMPipe__
+#define __gnu_java_nio_VMPipe__
 
 #include <jni.h>
 
@@ -10,7 +10,7 @@
 {
 #endif
 
-JNIEXPORT void JNICALL Java_gnu_java_nio_VMPipe_init (JNIEnv *env, jobject, 
jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_nio_VMPipe_init (JNIEnv *env, jclass, 
jobject, jobject);
 
 #ifdef __cplusplus
 }
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,v
retrieving revision 1.15
diff -u -r1.15 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c   26 Jun 2004 
16:07:03 -0000      1.15
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c   30 Jul 2004 
23:10:02 -0000
@@ -42,20 +42,23 @@
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
-  (JNIEnv *env, jobject obj)
+  (JNIEnv *env, jobject obj, jstring label)
 {
+  const char *c_label;
   GtkWidget *button;
 
-  /* Create global reference and save it for future use */
   NSA_SET_GLOBAL_REF (env, obj);
 
+  c_label = (*env)->GetStringUTFChars (env, label, NULL);
+
   gdk_threads_enter ();
-  
-  button = gtk_button_new();
+
+  button = gtk_button_new_with_label (c_label);
   gtk_widget_show (button);
 
   gdk_threads_leave ();
 
+  (*env)->ReleaseStringUTFChars (env, label, c_label);
   NSA_SET_PTR (env, obj, button);
 }
 
@@ -102,7 +105,7 @@
   gdk_threads_enter ();
 
   label = gtk_bin_get_child (GTK_BIN (ptr));
-  gtk_label_set_text (GTK_LABEL(label), text);
+  gtk_label_set_text (GTK_LABEL (label), text);
 
   gdk_threads_leave ();
 
@@ -126,9 +129,6 @@
 
   label = gtk_bin_get_child (GTK_BIN (ptr));
 
-  if (!label)
-    return;
-
   font_desc = pango_font_description_from_string (font_name);
   pango_font_description_set_size (font_desc, size * dpi_conversion_factor);
 
@@ -165,9 +165,6 @@
 
   label = gtk_bin_get_child (GTK_BIN(ptr));
 
-  if (!label)
-      return;
-
   gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &color);
   gtk_widget_modify_fg (label, GTK_STATE_ACTIVE, &color);
   gtk_widget_modify_fg (label, GTK_STATE_PRELIGHT, &color);
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,v
retrieving revision 1.13
diff -u -r1.13 gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 26 Jun 2004 
16:07:03 -0000      1.13
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 30 Jul 2004 
23:10:02 -0000
@@ -43,12 +43,11 @@
 static void item_toggled (GtkToggleButton *item, jobject peer);
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate
-  (JNIEnv *env, jobject obj, jobject group, jboolean state)
+Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_create
+  (JNIEnv *env, jobject obj, jobject group)
 {
   GtkWidget *button;
 
-  /* Create global reference and save it for future use */
   NSA_SET_GLOBAL_REF (env, obj);
 
   gdk_threads_enter ();
@@ -66,7 +65,6 @@
          NSA_SET_PTR (env, group, button);
        }
     }
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), state);
 
   gdk_threads_leave ();
 
@@ -131,6 +129,21 @@
 }
 
 JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive
+  (JNIEnv *env, jobject obj, jboolean is_active)
+{
+  void *ptr;
+
+  ptr = NSA_GET_PTR (env, obj);
+
+  gdk_threads_enter ();
+
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ptr), is_active);
+
+  gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetFont
   (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
 {
@@ -171,26 +184,25 @@
 }
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetLabel
+Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
   (JNIEnv *env, jobject obj, jstring label)
 {
-  const char *str;
-  void *ptr;
+  const char *c_label;
   GtkWidget *label_widget;
+  void *ptr;
 
   ptr = NSA_GET_PTR (env, obj);
 
-  label_widget = gtk_bin_get_child (GTK_BIN(ptr));
-
-  str = (*env)->GetStringUTFChars (env, label, 0);
+  c_label = (*env)->GetStringUTFChars (env, label, NULL);
 
   gdk_threads_enter ();
 
-  gtk_label_set_label (GTK_LABEL (label_widget), str);
+  label_widget = gtk_bin_get_child (GTK_BIN (ptr));
+  gtk_label_set_text (GTK_LABEL (label_widget), c_label);
 
   gdk_threads_leave ();
 
-  (*env)->ReleaseStringUTFChars (env, label, str);
+  (*env)->ReleaseStringUTFChars (env, label, c_label);
 }
 
 static void
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,v
retrieving revision 1.9
diff -u -r1.9 gnu_java_awt_peer_gtk_GtkChoicePeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c   29 Mar 2004 
07:07:26 -0000      1.9
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c   30 Jul 2004 
23:10:02 -0000
@@ -52,7 +52,6 @@
   GtkOptionMenu *option_menu;
   GtkRequisition child_requisition;
 
-  /* Create global reference and save it for future use */
   NSA_SET_GLOBAL_REF (env, obj);
 
   gdk_threads_enter ();
@@ -292,3 +291,60 @@
                      GTK_SIGNAL_FUNC (item_activate), ie,
                      (GClosureNotify) item_removed, 0);
 }
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent
+(JNIEnv *env, jobject obj, jobject parent)
+{
+  void *ptr;
+  void *parent_ptr;
+  GtkWidget *widget;
+  GtkWidget *parent_widget;
+  
+  ptr = NSA_GET_PTR (env, obj);
+  parent_ptr = NSA_GET_PTR (env, parent);
+  
+  gdk_threads_enter ();
+  
+  widget = GTK_WIDGET (ptr);
+  parent_widget = GTK_WIDGET (parent_ptr);
+  
+  if (GTK_IS_WINDOW (parent_widget))
+    {
+      GList *children = gtk_container_children
+        (GTK_CONTAINER (GTK_BIN (parent_widget)->child));
+
+      if (GTK_IS_MENU_BAR (children->data))
+       gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0);
+      else
+       gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0);
+    }
+  else
+    if (GTK_IS_SCROLLED_WINDOW (parent_widget))
+      {
+       gtk_scrolled_window_add_with_viewport
+         (GTK_SCROLLED_WINDOW (parent_widget), widget);
+       gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent),
+                                     GTK_SHADOW_NONE);
+       
+      }
+    else
+      gtk_layout_put (GTK_LAYOUT (parent_widget), widget, 0, 0);
+  
+  gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive
+(JNIEnv *env, jobject obj, jboolean sensitive)
+{
+  void *ptr;
+  
+  ptr = NSA_GET_PTR (env, obj);
+  
+  gdk_threads_enter ();
+  
+  gtk_widget_set_sensitive (GTK_WIDGET (ptr), sensitive);
+  
+  gdk_threads_leave ();
+}
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v
retrieving revision 1.30
diff -u -r1.30 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c   22 Jul 2004 
19:45:39 -0000      1.30
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c   30 Jul 2004 
23:10:02 -0000
@@ -104,7 +104,6 @@
   insets = (*env)->GetIntArrayElements (env, jinsets, 0);
   insets[0] = insets[1] = insets[2] = insets[3] = 0;
 
-  /* Create global reference and save it for future use */
   NSA_SET_GLOBAL_REF (env, obj);
 
   gdk_threads_enter ();
@@ -163,6 +162,56 @@
 }
 
 JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle
+  (JNIEnv *env, jobject obj, jstring title)
+{
+  const char *c_title;
+  void *ptr;
+
+  ptr = NSA_GET_PTR (env, obj);
+
+  c_title = (*env)->GetStringUTFChars (env, title, NULL);
+
+  gdk_threads_enter ();
+
+  gtk_window_set_title (GTK_WINDOW (ptr), c_title);
+
+  gdk_threads_leave ();
+
+  (*env)->ReleaseStringUTFChars (env, title, c_title);
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable
+  (JNIEnv *env, jobject obj, jboolean resizable)
+{
+  void *ptr;
+
+  ptr = NSA_GET_PTR (env, obj);
+
+  gdk_threads_enter ();
+
+  gtk_window_set_policy (GTK_WINDOW (ptr), resizable, resizable, FALSE);
+
+  gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal
+  (JNIEnv *env, jobject obj, jboolean modal)
+{
+  void *ptr;
+
+  ptr = NSA_GET_PTR (env, obj);
+
+  gdk_threads_enter ();
+
+  gtk_window_set_modal (GTK_WINDOW (ptr), modal);
+
+  gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible
   (JNIEnv *env, jobject obj, jboolean visible)
 {
Index: native/jni/gtk-peer/gtkpeer.h
===================================================================
RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gtkpeer.h,v
retrieving revision 1.17
diff -u -r1.17 gtkpeer.h
--- native/jni/gtk-peer/gtkpeer.h       26 Jun 2004 16:07:03 -0000      1.17
+++ native/jni/gtk-peer/gtkpeer.h       30 Jul 2004 23:10:02 -0000
@@ -459,4 +459,19 @@
   const char *label;
 };
 
+#define DEBUG_LOCKING 0
+
+#if DEBUG_LOCKING
+#define gdk_threads_enter()                       \
+{                                                 \
+  g_print ("lock: %s, %d\n", __FILE__, __LINE__); \
+  gdk_threads_enter ();                           \
+}
+#define gdk_threads_leave()                         \
+{                                                   \
+  g_print ("unlock: %s, %d\n", __FILE__, __LINE__); \
+  gdk_threads_leave ();                             \
+}
+#endif
+
 #endif /* __GTKPEER_H */

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]