diff options
author | Tom Tromey <tromey@cygnus.com> | 2000-07-30 23:19:57 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-07-30 23:19:57 +0000 |
commit | 4e07a9eadbf4c8bf943964c95a664494508cc28e (patch) | |
tree | 5171363ed0ce09ef1ceb12e1a0d67aa47dd4bd2a /libjava/java/awt/Container.java | |
parent | 3a8c5c77d573036d25982d47366164bc05112f61 (diff) | |
download | gcc-4e07a9eadbf4c8bf943964c95a664494508cc28e.zip gcc-4e07a9eadbf4c8bf943964c95a664494508cc28e.tar.gz gcc-4e07a9eadbf4c8bf943964c95a664494508cc28e.tar.bz2 |
Container.java (remove(int)): Wrote.
* java/awt/Container.java (remove(int)): Wrote.
(remove(Component)): Wrote.
(add(Component)): Wrote.
(add(Component,int)): Wrote.
(removeAll): Wrote.
(addNotify): Set our own peer.
* java/awt/Scrollbar.java (listeners): Changed type.
(Scrollbar): Don't initialize listeners.
(addNotify): Wrote.
(setValue): Call setValues.
(setMinimum): Likewise.
(setMaxPriority): Likewise.
(setVisibleAmount): Likewise.
(setValues): Wrote.
(setUnitIncrement): Forward to peer.
(setLineIncrement): Call setUnitIncrement.
(setPageIncrement): Call setBlockIncrement.
(setBlockIncrement): Forward to peer.
(addAdjustmentListener): Rewrote.
(removeAdjustmentListener): Rewrote.
(processAdjustmentEvent): Rewrote.
(paramString): Wrote.
* Makefile.in: Rebuilt.
* Makefile.am (awt_java_source_files): Added Button.java.
* java/awt/Button.java: New file.
* java/awt/Toolkit.java (createLabel): Declare.
(createButton): Likewise.
(createScrollbar): Likewise.
(createContainer): Likewise.
* java/awt/Label.java (addNotify): Wrote.
(setAlignment): Call setAlignment in the peer.
(setText): Call setText in the peer.
From-SVN: r35354
Diffstat (limited to 'libjava/java/awt/Container.java')
-rw-r--r-- | libjava/java/awt/Container.java | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/libjava/java/awt/Container.java b/libjava/java/awt/Container.java index 8484024..81a367b 100644 --- a/libjava/java/awt/Container.java +++ b/libjava/java/awt/Container.java @@ -12,6 +12,8 @@ import java.awt.event.*; import java.io.PrintStream; import java.io.PrintWriter; import java.util.EventListener; +import java.awt.peer.ComponentPeer; +import java.awt.peer.ContainerPeer; /* A very incomplete placeholder. */ @@ -70,10 +72,9 @@ public abstract class Container extends Component return getInsets(); } - public Component add(Component comp) + public Component add (Component comp) { - // FIXME - return null; + return add (comp, -1); } public Component add(String name, Component comp) @@ -84,8 +85,27 @@ public abstract class Container extends Component public Component add(Component comp, int index) { - // FIXME - return null; + // This isn't the most efficient implementation. We could do less + // copying when growing the array. It probably doesn't matter. + if (ncomponents >= component.length) + { + int nl = component.length * 2; + Component[] c = new Component[nl]; + System.arraycopy (component, 0, c, 0, ncomponents); + component = c; + } + + if (index == -1) + component[ncomponents++] = comp; + else + { + System.arraycopy (component, index, component, index + 1, + ncomponents - index); + component[index] = comp; + ++ncomponents; + } + + return comp; } public void add(Component comp, Object constraints) @@ -103,19 +123,27 @@ public abstract class Container extends Component // FIXME } - public void remove(int index) + public void remove (int index) { - // FIXME + System.arraycopy (component, index + 1, component, index, + ncomponents - index - 1); + component[--ncomponents] = null; } - public void remove(Component comp) + public void remove (Component comp) { - // FIXME + for (int i = 0; i < ncomponents; ++i) + if (component[i] == comp) + { + remove (i); + break; + } } public void removeAll() { - // FIXME + while (ncomponents >= 0) + component[--ncomponents] = null; } public LayoutManager getLayout() @@ -317,7 +345,8 @@ public abstract class Container extends Component { for (int i = ncomponents; --i >= 0; ) component[i].addNotify(); - } + peer = (ComponentPeer) getToolkit ().createContainer (this); + } public void removeNotify() { |