diff options
author | Tom Tromey <tromey@redhat.com> | 2001-04-21 02:48:35 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2001-04-21 02:48:35 +0000 |
commit | f825e235a8a52f9bb4f8c80a81b1c86f854afc54 (patch) | |
tree | 54447dd4a8eef3e869a33fca9294765629c6a8df /libjava/java/awt/Dialog.java | |
parent | 968b956afbc4bc6ce30273784b4f6acf7a4ffa40 (diff) | |
download | gcc-f825e235a8a52f9bb4f8c80a81b1c86f854afc54.zip gcc-f825e235a8a52f9bb4f8c80a81b1c86f854afc54.tar.gz gcc-f825e235a8a52f9bb4f8c80a81b1c86f854afc54.tar.bz2 |
List.java: Wrote.
* java/awt/List.java: Wrote.
* java/awt/Dialog.java: Wrote.
From-SVN: r41476
Diffstat (limited to 'libjava/java/awt/Dialog.java')
-rw-r--r-- | libjava/java/awt/Dialog.java | 150 |
1 files changed, 146 insertions, 4 deletions
diff --git a/libjava/java/awt/Dialog.java b/libjava/java/awt/Dialog.java index fcd8d63..82f5fef 100644 --- a/libjava/java/awt/Dialog.java +++ b/libjava/java/awt/Dialog.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,155 @@ details. */ package java.awt; -/* A very incomplete placeholder. */ +import java.awt.peer.DialogPeer; + +/** + * @author Tom Tromey <tromey@redhat.com> + * @date April 17, 2001 + */ public class Dialog extends Window { + public Dialog (Dialog owner) + { + this (owner, "", false); + } + + public Dialog (Dialog owner, String title) + { + this (owner, title, false); + } + + public Dialog (Dialog owner, String title, boolean modal) + { + super (owner); + this.modal = modal; + this.title = title; + setLayout (new BorderLayout ()); + } + public Dialog (Frame owner) { - super(owner); - // FIXME + this (owner, "", false); } + + public Dialog (Frame owner, boolean modal) + { + this (owner, "", modal); + } + + public Dialog (Frame owner, String title) + { + this (owner, title, false); + } + + public Dialog (Frame owner, String title, boolean modal) + { + super (owner); + this.modal = modal; + this.title = title; + setLayout (new BorderLayout ()); + } + + /** Create the peer if it does not already exist. */ + public void addNotify () + { + if (peer == null) + peer = getToolkit ().createDialog (this); + } + + public boolean isModal () + { + return modal; + } + + public void setModal (boolean modal) + { + this.modal = modal; + } + + public String getTitle () + { + return title; + } + + public void setTitle (String title) + { + this.title = title; + if (peer != null) + { + DialogPeer d = (DialogPeer) peer; + d.setTitle (title); + } + } + + public void show () + { + boolean vis = isVisible (); + super.show (); + if (modal && vis) + { + // Don't return until something happens. We lock on the peer + // instead of `this' so that we don't interfere with whatever + // locks the caller might want to use. + synchronized (peer) + { + try + { + peer.wait (); + } + catch (InterruptedException _) + { + } + } + } + } + + public void hide () + { + super.hide (); + synchronized (peer) + { + peer.notify (); + } + } + + public void dispose () + { + super.dispose (); + synchronized (peer) + { + peer.notify (); + } + } + + public boolean isResizable () + { + return resizable; + } + + public void setResizable (boolean resizable) + { + this.resizable = resizable; + if (peer != null) + { + DialogPeer d = (DialogPeer) peer; + d.setResizable (resizable); + } + } + + protected String paramString () + { + return ("Dialog[" + + title + "," + + modal + "," + + resizable + "]"); + } + + // True if dialog is modal. + private boolean modal; + // True if dialog is resizable by the user. + private boolean resizable = false; + // Dialog title. + private String title; } |