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]

[gui][PATCH] remove GtkArg


Hi,

This patch 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.

I committed this to java-gui-branch.

Tom

2004-07-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

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

	* Makefile.am (gtk_awt_peer_sources): Remove GtkArg.java and
	GtkArgList.java.
	(gtk_c_files): Use CAIRO_CFLAGS and PANGOFT2_CFLAGS, not _LIBS.
	* Makefile.in: Regenerate.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	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,
	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,
	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,
	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.
	* jni/gtk-peer/gtkpeer.h [DEBUG_LOCKING]: New define to turn on
	and off locking instrumentation.

Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.361.2.30
diff -u -r1.361.2.30 Makefile.am
--- Makefile.am	29 Jul 2004 16:02:21 -0000	1.361.2.30
+++ Makefile.am	30 Jul 2004 09:44:19 -0000
@@ -237,8 +237,6 @@
 gnu/java/awt/peer/gtk/GdkGraphics2D.java \
 gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \
 gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
-gnu/java/awt/peer/gtk/GtkArg.java \
-gnu/java/awt/peer/gtk/GtkArgList.java \
 gnu/java/awt/peer/gtk/GtkButtonPeer.java \
 gnu/java/awt/peer/gtk/GtkCanvasPeer.java \
 gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java	\
@@ -498,7 +496,7 @@
 $(gtk_c_files): %.lo: %.c
 	$(LTCOMPILE) -c -Ijniinclude -I$(srcdir)/jni/classpath -I$(srcdir)/jni/gtk-peer \
 	$(PEDANTIC_CFLAGS) $(GTK_CFLAGS) $(LIBART_CFLAGS) \
-	$(CAIRO_LIBS) $(PANGOFT2_LIBS) -o $@ $<
+	$(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS) -o $@ $<
 
 
 $(gtk_c_files): $(gtk_c_headers)
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.in,v
retrieving revision 1.385.2.30
diff -u -r1.385.2.30 Makefile.in
--- Makefile.in	29 Jul 2004 16:02:22 -0000	1.385.2.30
+++ Makefile.in	30 Jul 2004 09:44:21 -0000
@@ -328,8 +328,6 @@
 gnu/java/awt/peer/gtk/GdkGraphics2D.java \
 gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \
 gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
-gnu/java/awt/peer/gtk/GtkArg.java \
-gnu/java/awt/peer/gtk/GtkArgList.java \
 gnu/java/awt/peer/gtk/GtkButtonPeer.java \
 gnu/java/awt/peer/gtk/GtkCanvasPeer.java \
 gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java	\
@@ -3491,8 +3489,6 @@
 @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
 @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.lo \
 @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArg.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArgList.lo \
 @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
 @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
 @GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
@@ -3571,8 +3567,6 @@
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.lo \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
-@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArg.lo \
-@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArgList.lo \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
@@ -3795,8 +3789,6 @@
 .deps/gnu/java/awt/peer/gtk/GdkGraphics2D.P \
 .deps/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.P \
 .deps/gnu/java/awt/peer/gtk/GdkPixbufDecoder.P \
-.deps/gnu/java/awt/peer/gtk/GtkArg.P \
-.deps/gnu/java/awt/peer/gtk/GtkArgList.P \
 .deps/gnu/java/awt/peer/gtk/GtkButtonPeer.P \
 .deps/gnu/java/awt/peer/gtk/GtkCanvasPeer.P \
 .deps/gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.P \
@@ -6127,7 +6119,7 @@
 $(gtk_c_files): %.lo: %.c
 	$(LTCOMPILE) -c -Ijniinclude -I$(srcdir)/jni/classpath -I$(srcdir)/jni/gtk-peer \
 	$(PEDANTIC_CFLAGS) $(GTK_CFLAGS) $(LIBART_CFLAGS) \
-	$(CAIRO_LIBS) $(PANGOFT2_LIBS) -o $@ $<
+	$(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS) -o $@ $<
 
 $(gtk_c_files): $(gtk_c_headers)
 
Index: gnu/java/awt/peer/gtk/GtkButtonPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java,v
retrieving revision 1.8.2.3
diff -u -r1.8.2.3 GtkButtonPeer.java
--- gnu/java/awt/peer/gtk/GtkButtonPeer.java	18 May 2004 22:06:01 -0000	1.8.2.3
+++ gnu/java/awt/peer/gtk/GtkButtonPeer.java	30 Jul 2004 09:44:22 -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: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,v
retrieving revision 1.4.8.3
diff -u -r1.4.8.3 GtkCheckboxPeer.java
--- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java	18 May 2004 22:06:01 -0000	1.4.8.3
+++ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java	30 Jul 2004 09:44:22 -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: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.16.2.15
diff -u -r1.16.2.15 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java	21 Jul 2004 16:51:20 -0000	1.16.2.15
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java	30 Jul 2004 09:44:22 -0000
@@ -93,6 +93,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);
@@ -116,10 +118,8 @@
     insets = new Insets (0, 0, 0, 0);
 
     create ();
-      
-    GtkArgList args = new GtkArgList ();
-    getArgs (awtComponent, args);
-    args.setArgs (this);
+
+    setParent ();
 
     connectJObject ();
     connectSignals ();
@@ -132,20 +132,44 @@
       setFont(awtComponent.getFont());
 
     setCursor (awtComponent.getCursor ());
-    if (this instanceof GtkFileDialogPeer && 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]);
-      }
+
+    setComponentBounds ();
 
     Rectangle bounds = awtComponent.getBounds ();
     setBounds (bounds.x, bounds.y, bounds.width, bounds.height);
+    setVisibleAndEnabled ();
+  }
+
+  void setParent ()
+  {
+    ComponentPeer p;
+    Component component = awtComponent;
+    do
+      {
+        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 ()
+  {
+  }
+
+  void setVisibleAndEnabled ()
+  {
     setVisible (awtComponent.isVisible ());
+    setEnabled (awtComponent.isEnabled ());
   }
 
   public int checkImage (Image image, int width, int height, 
@@ -417,7 +441,7 @@
 
   public void setEnabled (boolean b)
   {
-    set ("sensitive", b);
+    gtkWidgetSetSensitive (b);
   }
 
   public void setFont (Font f)
@@ -506,45 +530,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: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java,v
retrieving revision 1.9.8.1
diff -u -r1.9.8.1 GtkDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkDialogPeer.java	3 May 2004 19:10:59 -0000	1.9.8.1
+++ gnu/java/awt/peer/gtk/GtkDialogPeer.java	30 Jul 2004 09:44:22 -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: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,v
retrieving revision 1.6.4.2
diff -u -r1.6.4.2 GtkFileDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java	20 Jul 2004 15:46:00 -0000	1.6.4.2
+++ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java	30 Jul 2004 09:44:22 -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: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java,v
retrieving revision 1.17
diff -u -r1.17 GtkFramePeer.java
--- gnu/java/awt/peer/gtk/GtkFramePeer.java	29 Jan 2004 14:34:31 -0000	1.17
+++ gnu/java/awt/peer/gtk/GtkFramePeer.java	30 Jul 2004 09:44:22 -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: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java,v
retrieving revision 1.10
diff -u -r1.10 GtkWindowPeer.java
--- gnu/java/awt/peer/gtk/GtkWindowPeer.java	13 Jan 2004 20:54:46 -0000	1.10
+++ gnu/java/awt/peer/gtk/GtkWindowPeer.java	30 Jul 2004 09:44:22 -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: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,v
retrieving revision 1.8.2.3
diff -u -r1.8.2.3 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c	27 May 2004 18:40:20 -0000	1.8.2.3
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c	30 Jul 2004 09:44:26 -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: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,v
retrieving revision 1.4.8.4
diff -u -r1.4.8.4 gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c	24 Jun 2004 05:31:39 -0000	1.4.8.4
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c	30 Jul 2004 09:44:26 -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: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,v
retrieving revision 1.6.8.2
diff -u -r1.6.8.2 gnu_java_awt_peer_gtk_GtkChoicePeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c	26 Jul 2004 20:30:56 -0000	1.6.8.2
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c	30 Jul 2004 09:44:26 -0000
@@ -48,7 +48,6 @@
   GtkWidget *menu;
   GtkComboBox *combobox;
 
-  /* Create global reference and save it for future use */
   NSA_SET_GLOBAL_REF (env, obj);
 
   gdk_threads_enter ();
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v
retrieving revision 1.15.2.19
diff -u -r1.15.2.19 gnu_java_awt_peer_gtk_GtkComponentPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c	21 Jul 2004 16:51:21 -0000	1.15.2.19
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c	30 Jul 2004 09:44:26 -0000
@@ -473,6 +473,63 @@
 }
 
 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 ();
+}
+
+JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus
   (JNIEnv *env, jobject obj)
 {
@@ -925,45 +982,6 @@
   return NULL;
 }
 
-#define WIDGET_CLASS(w)  GTK_WIDGET_CLASS (GTK_OBJECT (w)->klass)
-
-void
-set_parent (GtkWidget *widget, GtkContainer *parent)
-{
-  if (GTK_IS_WINDOW (parent))
-    {
-      GList *children = gtk_container_children 
-	                  (GTK_CONTAINER (GTK_BIN (parent)->child));
-
-      if (GTK_IS_MENU_BAR (children->data))
-	gtk_layout_put (GTK_LAYOUT (children->next->data), widget, 0, 0);
-      else /* GTK_IS_LAYOUT (children->data) */
-	gtk_layout_put (GTK_LAYOUT (children->data), widget, 0, 0);
-    }
-  else
-    if (GTK_IS_SCROLLED_WINDOW (parent))
-      {
-/*  	if (WIDGET_CLASS (widget)->set_scroll_adjustments_signal) */
-/*  	  gtk_container_add (GTK_CONTAINER (parent), widget); */
-/*  	else */
-/*  	  { */
-	    gtk_scrolled_window_add_with_viewport 
-	      (GTK_SCROLLED_WINDOW (parent), widget);
-	    gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent), 
-					  GTK_SHADOW_NONE);
-/*  	  } */
-
-      }
-/*        gtk_layout_put  */
-/*  	(GTK_LAYOUT (GTK_BIN (parent)->child), widget, 0, 0); */
-
-/*      if (GTK_IS_SCROLLED_WINDOW (parent)) */
-/*        gtk_layout_put  */
-/*  	(GTK_LAYOUT (GTK_BIN (GTK_BIN (parent)->child)->child), widget, 0, 0); */
-    else
-      gtk_layout_put (GTK_LAYOUT (parent), widget, 0, 0);
-}
-
 JNIEXPORT jboolean JNICALL 
 Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled 
   (JNIEnv *env, jobject obj)
@@ -995,105 +1013,6 @@
   return retval;
 }
 
-JNIEXPORT void JNICALL 
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_String_2
-  (JNIEnv *env, jobject obj, jstring jname, jstring jvalue)
-{
-  const char *name;
-  const char *value;
-  void *ptr;
-
-  ptr = NSA_GET_PTR (env, obj);
-  name = (*env)->GetStringUTFChars (env, jname, NULL);
-  value = (*env)->GetStringUTFChars (env, jvalue, NULL);
-
-  gdk_threads_enter();
-  g_object_set(ptr, name, value, NULL);
-  gdk_threads_leave();
-
-  (*env)->ReleaseStringUTFChars (env, jname, name);
-  (*env)->ReleaseStringUTFChars (env, jvalue, value);
-}
-
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Z
-  (JNIEnv *env, jobject obj, jstring jname, jboolean value)
-{
-  const char *name;
-  void *ptr;
-
-  ptr = NSA_GET_PTR (env, obj);
-
-  name = (*env)->GetStringUTFChars (env, jname, NULL);
-
-  gdk_threads_enter();
-  g_object_set(ptr, name, value, NULL);
-  gdk_threads_leave();
-
-  (*env)->ReleaseStringUTFChars (env, jname, name);
-}
-
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2I
-  (JNIEnv *env, jobject obj, jstring jname, jint value)
-{
-  const char *name;
-  void *ptr;
-
-  ptr = NSA_GET_PTR (env, obj);
-  name = (*env)->GetStringUTFChars (env, jname, NULL);
-
-  gdk_threads_enter();                          
-  g_object_set(ptr, name, value, NULL);
-  gdk_threads_leave();
-
-  (*env)->ReleaseStringUTFChars (env, jname, name);
-}
-
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2F
-  (JNIEnv *env, jobject obj, jstring jname, jfloat value)
-{
-  const char *name;
-  void *ptr;
-
-  ptr = NSA_GET_PTR (env, obj);
-  name = (*env)->GetStringUTFChars (env, jname, NULL);
-
-  gdk_threads_enter();                          
-  g_object_set(ptr, name, value, NULL);
-  gdk_threads_leave();
-
-  (*env)->ReleaseStringUTFChars (env, jname, name);
-}
-
-JNIEXPORT void JNICALL 
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_Object_2
-  (JNIEnv *env, jobject obj1, jstring jname, jobject obj2)
-{
-  const char *name;
-  void *ptr1, *ptr2;
-
-  ptr1 = NSA_GET_PTR (env, obj1);
-  ptr2 = NSA_GET_PTR (env, obj2);
-  
-  name = (*env)->GetStringUTFChars (env, jname, NULL);
-
-  /* special case to catch where we need to set the parent */
-  if (!strcmp (name, "parent"))
-    {
-      gdk_threads_enter ();
-      set_parent (GTK_WIDGET (ptr1), GTK_CONTAINER (ptr2));
-      gdk_threads_leave ();
-
-      (*env)->ReleaseStringUTFChars (env, jname, name);
-      return;
-    }
-
-  gdk_threads_enter();                          
-  g_object_set(ptr1, name, ptr2, NULL);
-  gdk_threads_leave();
-
-  (*env)->ReleaseStringUTFChars (env, jname, name);
-}
-
 static gboolean
 filter_expose_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
 {
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.24.2.10
diff -u -r1.24.2.10 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	10 Jul 2004 05:15:41 -0000	1.24.2.10
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	30 Jul 2004 09:44:26 -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: jni/gtk-peer/gtkpeer.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gtkpeer.h,v
retrieving revision 1.12.8.3
diff -u -r1.12.8.3 gtkpeer.h
--- jni/gtk-peer/gtkpeer.h	27 May 2004 18:40:21 -0000	1.12.8.3
+++ jni/gtk-peer/gtkpeer.h	30 Jul 2004 09:44:27 -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 */

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