2000-07-12 11:32:07 +08:00
|
|
|
/* 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. */
|
|
|
|
|
2000-12-26 15:18:16 +08:00
|
|
|
public class MenuShortcut implements java.io.Serializable
|
2000-07-12 11:32:07 +08:00
|
|
|
{
|
|
|
|
// 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);
|
|
|
|
}
|
|
|
|
}
|