aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/awt/PopupMenu.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/awt/PopupMenu.java')
-rw-r--r--libjava/java/awt/PopupMenu.java27
1 files changed, 23 insertions, 4 deletions
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()
}