diff options
Diffstat (limited to 'libjava/java/awt/MenuShortcut.java')
-rw-r--r-- | libjava/java/awt/MenuShortcut.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/libjava/java/awt/MenuShortcut.java b/libjava/java/awt/MenuShortcut.java new file mode 100644 index 0000000..b198926 --- /dev/null +++ b/libjava/java/awt/MenuShortcut.java @@ -0,0 +1,75 @@ +/* Copyright (C) 2000 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +package java.awt; + +import java.awt.event.KeyEvent; + +/* Status: Complete, except for hashCode(). Untested. */ + +public class MenuShortcut +{ + // Fields from the serialization spec. Decalare others "transient". + int key; + boolean usesShift; + + public MenuShortcut(int key) + { + this.key = key; + } + + public MenuShortcut(int key, boolean useShiftModifier) + { + this.key = key; + this.usesShift = useShiftModifier; + } + + public int getKey() + { + return key; + } + + public boolean usesShiftModifier() + { + return usesShift; + } + + public boolean equals(MenuShortcut ms) + { + return (ms.key == key && ms.usesShift == usesShift); + } + + public boolean equals(Object obj) + { + if (obj instanceof MenuShortcut) + { + MenuShortcut ms = (MenuShortcut) obj; + return (ms.key == key && ms.usesShift == usesShift); + } + return false; + } + + public int hashCode() + { + // FIXME: find/implement the correct algorithm for this + if (usesShift) + return (2 * key); + else + return key; + } + + public String toString() + { + return paramString(); // ? + } + + protected String paramString() + { + return KeyEvent.getKeyText(key); + } +} |