diff options
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/awt/Checkbox.java | 3 | ||||
-rw-r--r-- | libjava/java/awt/CheckboxMenuItem.java | 3 | ||||
-rw-r--r-- | libjava/java/awt/Choice.java | 3 | ||||
-rw-r--r-- | libjava/java/awt/Component.java | 14 | ||||
-rw-r--r-- | libjava/java/awt/ComponentOrientation.java | 8 | ||||
-rw-r--r-- | libjava/java/awt/Dialog.java | 1 | ||||
-rw-r--r-- | libjava/java/awt/EventQueue.java | 6 | ||||
-rw-r--r-- | libjava/java/awt/FileDialog.java | 109 | ||||
-rw-r--r-- | libjava/java/awt/GraphicsConfiguration.java | 8 | ||||
-rw-r--r-- | libjava/java/awt/Label.java | 3 | ||||
-rw-r--r-- | libjava/java/awt/List.java | 8 | ||||
-rw-r--r-- | libjava/java/awt/Menu.java | 10 | ||||
-rw-r--r-- | libjava/java/awt/MenuBar.java | 2 | ||||
-rw-r--r-- | libjava/java/awt/MenuItem.java | 2 | ||||
-rw-r--r-- | libjava/java/awt/PopupMenu.java | 27 | ||||
-rw-r--r-- | libjava/java/awt/Rectangle.java | 13 | ||||
-rw-r--r-- | libjava/java/awt/RenderingHints.java | 4 | ||||
-rw-r--r-- | libjava/java/awt/Scrollbar.java | 3 | ||||
-rw-r--r-- | libjava/java/awt/TextComponent.java | 25 | ||||
-rw-r--r-- | libjava/java/awt/event/ContainerEvent.java | 6 | ||||
-rw-r--r-- | libjava/java/awt/geom/Rectangle2D.java | 10 |
21 files changed, 216 insertions, 52 deletions
diff --git a/libjava/java/awt/Checkbox.java b/libjava/java/awt/Checkbox.java index 10c6744..82ced64 100644 --- a/libjava/java/awt/Checkbox.java +++ b/libjava/java/awt/Checkbox.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -63,6 +63,7 @@ public class Checkbox extends Component implements ItemSelectable { if (peer == null) peer = getToolkit ().createCheckbox (this); + super.addNotify (); } /** Returns the current CheckboxGroup associated with this diff --git a/libjava/java/awt/CheckboxMenuItem.java b/libjava/java/awt/CheckboxMenuItem.java index 83941a7..007d3dc 100644 --- a/libjava/java/awt/CheckboxMenuItem.java +++ b/libjava/java/awt/CheckboxMenuItem.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -55,6 +55,7 @@ public class CheckboxMenuItem extends MenuItem implements ItemSelectable // what else to do. peer = Toolkit.getDefaultToolkit ().createCheckboxMenuItem (this); } + super.addNotify (); } /** Returns this checkbox's label if this checkbox is selected. */ diff --git a/libjava/java/awt/Choice.java b/libjava/java/awt/Choice.java index 3e30ead..6b9a112 100644 --- a/libjava/java/awt/Choice.java +++ b/libjava/java/awt/Choice.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -66,6 +66,7 @@ public class Choice extends Component implements ItemSelectable { if (peer == null) peer = getToolkit ().createChoice (this); + super.addNotify (); } /** Returns number of items. diff --git a/libjava/java/awt/Component.java b/libjava/java/awt/Component.java index 6bca20d..0feb694 100644 --- a/libjava/java/awt/Component.java +++ b/libjava/java/awt/Component.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -649,14 +649,18 @@ public abstract class Component implements ImageObserver, MenuContainer, public FontMetrics getFontMetrics(Font font) { - return getToolkit().getFontMetrics(font); + if (peer == null) + return getToolkit().getFontMetrics(font); + return peer.getFontMetrics (font); } - + public void setCursor(Cursor cursor) { this.cursor = cursor; + if (peer != null) + peer.setCursor (cursor); } - + public Cursor getCursor() { return this.cursor; @@ -705,7 +709,7 @@ public abstract class Component implements ImageObserver, MenuContainer, parent.repaint(tm, x+getX(), y+getY(), width, height); return; } - + if (peer != null) peer.repaint(tm, x, y, width, height); } diff --git a/libjava/java/awt/ComponentOrientation.java b/libjava/java/awt/ComponentOrientation.java index 8cc0664..5497d23 100644 --- a/libjava/java/awt/ComponentOrientation.java +++ b/libjava/java/awt/ComponentOrientation.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -13,7 +13,7 @@ package java.awt; import java.util.Locale; import java.util.ResourceBundle; -public class ComponentOrientation implements java.io.Serializable +public final class ComponentOrientation implements java.io.Serializable { // Here is a wild guess. private static int HORIZONTAL_ID = 1 << 0, @@ -29,7 +29,7 @@ public class ComponentOrientation implements java.io.Serializable // FIXME: This field is from the serialization spec, but what are the // correct values? int orientation; - + ComponentOrientation(int orientation) { this.orientation = orientation; @@ -54,7 +54,7 @@ public class ComponentOrientation implements java.io.Serializable public static ComponentOrientation getOrientation(ResourceBundle bdl) { ComponentOrientation r; - + try { Object obj = bdl.getObject("Orientation"); diff --git a/libjava/java/awt/Dialog.java b/libjava/java/awt/Dialog.java index 82f5fef..7b84907 100644 --- a/libjava/java/awt/Dialog.java +++ b/libjava/java/awt/Dialog.java @@ -63,6 +63,7 @@ public class Dialog extends Window { if (peer == null) peer = getToolkit ().createDialog (this); + super.addNotify (); } public boolean isModal () diff --git a/libjava/java/awt/EventQueue.java b/libjava/java/awt/EventQueue.java index 2cddc6b..7037118 100644 --- a/libjava/java/awt/EventQueue.java +++ b/libjava/java/awt/EventQueue.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -166,7 +166,7 @@ public class EventQueue } /** @since JDK1.2 */ - static void invokeLater(Runnable runnable) + public static void invokeLater(Runnable runnable) { EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); @@ -176,7 +176,7 @@ public class EventQueue eq.postEvent(ie); } - static boolean isDispatchThread() + public static boolean isDispatchThread() { EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); return (Thread.currentThread() == eq.dispatchThread); diff --git a/libjava/java/awt/FileDialog.java b/libjava/java/awt/FileDialog.java index cdcf442..f1ba23c 100644 --- a/libjava/java/awt/FileDialog.java +++ b/libjava/java/awt/FileDialog.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -8,13 +8,112 @@ details. */ package java.awt; -/* A very incomplete placeholder. */ +import java.awt.peer.FileDialogPeer; +import java.io.FilenameFilter; + +/** + * @author Tom Tromey <tromey@redhat.com> + * @date April 20, 2001 + */ public class FileDialog extends Dialog { - public FileDialog (Frame owner) + public static int LOAD = 0; + public static int SAVE = 1; + + public FileDialog (Frame parent) + { + this (parent, "", LOAD); + } + + public FileDialog (Frame parent, String title) + { + this (parent, title, LOAD); + } + + public FileDialog (Frame parent, String title, int mode) + { + super (parent, title, true); + if (mode != LOAD && mode != SAVE) + throw new IllegalArgumentException ("unknown mode: " + mode); + this.mode = mode; + } + + public void addNotify () + { + if (peer == null) + peer = getToolkit ().createFileDialog (this); + super.addNotify (); + } + + public String getDirectory () + { + return dir; + } + + public String getFile () + { + return file; + } + + public FilenameFilter getFilenameFilter () { - super(owner); - // FIXME + return filter; } + + public int getMode () + { + return mode; + } + + protected String paramString () + { + return ("FileDialog[mode=" + mode + + ",dir=" + dir + + ",file=" + file + "]"); + } + + public void setDirectory (String dir) + { + this.dir = dir; + if (peer != null) + { + FileDialogPeer f = (FileDialogPeer) peer; + f.setDirectory (dir); + } + } + + public void setFile (String file) + { + this.file = file; + if (peer != null) + { + FileDialogPeer f = (FileDialogPeer) peer; + f.setFile (file); + } + } + + public void setFilenameFilter (FilenameFilter filter) + { + this.filter = filter; + if (peer != null) + { + FileDialogPeer f = (FileDialogPeer) peer; + f.setFilenameFilter (filter); + } + } + + public void setMode (int mode) + { + if (mode != LOAD && mode != SAVE) + throw new IllegalArgumentException ("unknown mode: " + mode); + this.mode = mode; + // FIXME: update peer? + } + + // Names here from serialization spec. + private int mode; + private String dir; + private String file; + private FilenameFilter filter; } diff --git a/libjava/java/awt/GraphicsConfiguration.java b/libjava/java/awt/GraphicsConfiguration.java index ca4b566..8e4fd08 100644 --- a/libjava/java/awt/GraphicsConfiguration.java +++ b/libjava/java/awt/GraphicsConfiguration.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -17,6 +17,12 @@ import java.awt.geom.AffineTransform; public abstract class GraphicsConfiguration { + // Can't instantiate directly. Having a protected constructor seems + // redundant, but that is what the docs specify. + protected GraphicsConfiguration () + { + } + /* public abstract GraphicsDevice getDevice(); */ diff --git a/libjava/java/awt/Label.java b/libjava/java/awt/Label.java index c184dce..d599288 100644 --- a/libjava/java/awt/Label.java +++ b/libjava/java/awt/Label.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libjava. @@ -43,6 +43,7 @@ public class Label extends Component { if (peer == null) peer = getToolkit ().createLabel (this); + super.addNotify (); } public int getAlignment () diff --git a/libjava/java/awt/List.java b/libjava/java/awt/List.java index c0ac302..f3d5e4b 100644 --- a/libjava/java/awt/List.java +++ b/libjava/java/awt/List.java @@ -52,6 +52,7 @@ public class List extends Component implements ItemSelectable { if (peer != null) peer = getToolkit ().createList (this); + super.addNotify (); } public int getItemCount () @@ -107,7 +108,12 @@ public class List extends Component implements ItemSelectable public void replaceItem (String item, int index) { items.setElementAt (item, index); - // FIXME: notify peer + if (peer != null) + { + ListPeer l = (ListPeer) peer; + l.delItems (index, index); + l.add (item, index); + } } public void removeAll () diff --git a/libjava/java/awt/Menu.java b/libjava/java/awt/Menu.java index 34dd600..6d52d05 100644 --- a/libjava/java/awt/Menu.java +++ b/libjava/java/awt/Menu.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation This file is part of libjava. @@ -40,7 +40,13 @@ public class Menu extends MenuItem implements MenuContainer public void addNotify() { - // FIXME + if (peer != null) + { + // This choice of toolkit seems unsatisfying, but I'm not sure + // what else to do. + peer = Toolkit.getDefaultToolkit ().createMenu (this); + } + super.addNotify (); } public void removeNotify() diff --git a/libjava/java/awt/MenuBar.java b/libjava/java/awt/MenuBar.java index 6e25bc9..40de61a 100644 --- a/libjava/java/awt/MenuBar.java +++ b/libjava/java/awt/MenuBar.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation This file is part of libjava. diff --git a/libjava/java/awt/MenuItem.java b/libjava/java/awt/MenuItem.java index 06b5acc..b127bfa 100644 --- a/libjava/java/awt/MenuItem.java +++ b/libjava/java/awt/MenuItem.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. diff --git a/libjava/java/awt/PopupMenu.java b/libjava/java/awt/PopupMenu.java index 3be7f84..ed4f343 100644 --- a/libjava/java/awt/PopupMenu.java +++ b/libjava/java/awt/PopupMenu.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libjava. @@ -8,6 +8,8 @@ details. */ package java.awt; +import java.awt.peer.PopupMenuPeer; + /* Status: Incomplete. */ public class PopupMenu extends Menu @@ -24,14 +26,31 @@ public class PopupMenu extends Menu public void addNotify() { - // FIXME + if (peer != null) + { + // This choice of toolkit seems unsatisfying, but I'm not sure + // what else to do. + peer = Toolkit.getDefaultToolkit ().createPopupMenu (this); + } + super.addNotify (); } public void show(Component origin, int x, int y) { - // FIXME + if (! origin.isShowing () + // FIXME: or ! parent is showing -- but how? + ) + { + // This is an invalid call which we choose to ignore. + return; + } + + addNotify (); // FIXME? + Event e = new Event (origin, 0, 0, x, y, 0, 0); + PopupMenuPeer p = (PopupMenuPeer) peer; + p.show (e); } - + // Accessibility API not yet implemented. // public AccessibleContext getAccessibleContext() } diff --git a/libjava/java/awt/Rectangle.java b/libjava/java/awt/Rectangle.java index 6695c58..7e7ef72 100644 --- a/libjava/java/awt/Rectangle.java +++ b/libjava/java/awt/Rectangle.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation This file is part of libjava. @@ -7,11 +7,14 @@ Libjava License. Please consult the file "LIBJAVA_LICENSE" for details. */ package java.awt; + import java.awt.geom.*; +import java.io.Serializable; /* Status: Mostly complete. Some of the Java2D stuff is commented out. */ -public class Rectangle extends Rectangle2D implements Cloneable, Shape +public class Rectangle extends Rectangle2D + implements Cloneable, Shape, Serializable { public int x; public int y; @@ -151,12 +154,6 @@ public class Rectangle extends Rectangle2D implements Cloneable, Shape return new Point(x,y); } - public PathIterator getPathIterator (AffineTransform t) - { - // FIXME - return null; - } - public Dimension getSize() { return new Dimension(width, height); diff --git a/libjava/java/awt/RenderingHints.java b/libjava/java/awt/RenderingHints.java index a2dace6..c0010cb 100644 --- a/libjava/java/awt/RenderingHints.java +++ b/libjava/java/awt/RenderingHints.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -16,7 +16,7 @@ public class RenderingHints implements Cloneable { - static abstract class Key + public abstract static class Key { private int intKey; diff --git a/libjava/java/awt/Scrollbar.java b/libjava/java/awt/Scrollbar.java index 88a8d1f..186a7c3 100644 --- a/libjava/java/awt/Scrollbar.java +++ b/libjava/java/awt/Scrollbar.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libjava. @@ -55,6 +55,7 @@ public class Scrollbar extends Component implements Adjustable { if (peer == null) peer = getToolkit ().createScrollbar (this); + super.addNotify (); } public int getOrientation () diff --git a/libjava/java/awt/TextComponent.java b/libjava/java/awt/TextComponent.java index 738cc89..0836b5f 100644 --- a/libjava/java/awt/TextComponent.java +++ b/libjava/java/awt/TextComponent.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999 Free Software Foundation +/* Copyright (C) 1999, 2001 Free Software Foundation This file is part of libjava. @@ -7,16 +7,25 @@ Libjava License. Please consult the file "LIBJAVA_LICENSE" for details. */ package java.awt; + import java.awt.event.*; +import java.awt.peer.TextComponentPeer; /* A very incomplete placeholder. */ public class TextComponent extends Component { + protected TextListener textListener; + char[] buffer; int length; int caretPosition; + public synchronized void addTextListener (TextListener listener) + { + textListener = AWTEventMulticaster.add (textListener, listener); + } + public synchronized String getText () { return new String(buffer, 0, length); } @@ -28,11 +37,15 @@ public class TextComponent extends Component text.getChars(0, length, buffer, 0); } - public synchronized void addTextListener (TextListener listener) - { /* FIXME */ } - public int getCaretPosition () { return caretPosition; } - public void setCaretPosition (int pos) { caretPosition = pos; } - + public void setCaretPosition (int pos) + { + caretPosition = pos; + if (peer != null) + { + TextComponentPeer t = (TextComponentPeer) peer; + t.setCaretPosition (pos); + } + } } diff --git a/libjava/java/awt/event/ContainerEvent.java b/libjava/java/awt/event/ContainerEvent.java index 9e89519..9996414 100644 --- a/libjava/java/awt/event/ContainerEvent.java +++ b/libjava/java/awt/event/ContainerEvent.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libjava. @@ -35,9 +35,9 @@ public class ContainerEvent extends ComponentEvent return child; } - public Component getContainer () + public Container getContainer () { - return (Component) source; + return (Container) source; } public String paramString () diff --git a/libjava/java/awt/geom/Rectangle2D.java b/libjava/java/awt/geom/Rectangle2D.java index 16ab826..f0957b1 100644 --- a/libjava/java/awt/geom/Rectangle2D.java +++ b/libjava/java/awt/geom/Rectangle2D.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation +/* Copyright (C) 2000, 2001 Free Software Foundation This file is part of libjava. @@ -379,6 +379,14 @@ public abstract class Rectangle2D extends RectangularShape this.height = (float) h; } + public void setRect (float x, float y, float w, float h) + { + this.x = x; + this.y = y; + this.width = w; + this.height = h; + } + public void setRect (Rectangle2D r) { this.x = (float) r.getX (); |