23 package com.realtime.crossfire.jxclient.gui.keybindings;
25 import java.awt.event.InputEvent;
26 import java.awt.event.KeyEvent;
27 import org.jetbrains.annotations.NotNull;
28 import org.jetbrains.annotations.Nullable;
34 public class KeyEvent2 implements Comparable<KeyEvent2> {
39 public static final int NONE = 0;
44 public static final int ALT = InputEvent.ALT_DOWN_MASK;
49 public static final int ALT_GRAPH = InputEvent.ALT_GRAPH_DOWN_MASK;
54 public static final int CTRL = InputEvent.CTRL_DOWN_MASK;
59 public static final int META = InputEvent.META_DOWN_MASK;
64 public static final int SHIFT = InputEvent.SHIFT_DOWN_MASK;
131 if (
keyCode == KeyEvent.VK_UNDEFINED) {
132 return keyChar == keyEvent.keyChar;
138 public boolean equals(@Nullable
final Object obj) {
139 if (obj ==
null || obj.getClass() != getClass()) {
143 if (
keyCode != KeyEvent.VK_UNDEFINED && keyEvent.
keyCode != KeyEvent.VK_UNDEFINED) {
147 if (
keyCode == KeyEvent.VK_UNDEFINED && keyEvent.
keyCode == KeyEvent.VK_UNDEFINED) {
160 final int cmp1 = Integer.compare(
keyCode, o.keyCode);
164 final int cmp2 = Integer.compare(
keyChar, o.keyChar);
168 return Integer.compare(
modifiers, o.modifiers);
182 @SuppressWarnings({
"deprecation",
"RedundantSuppression"})
185 if ((
modifiers&InputEvent.ALT_MASK) != 0) {
186 result |= InputEvent.ALT_DOWN_MASK;
188 if ((
modifiers&InputEvent.ALT_GRAPH_MASK) != 0) {
189 result |=
modifiers&InputEvent.ALT_GRAPH_DOWN_MASK;
191 if ((
modifiers&InputEvent.CTRL_MASK) != 0) {
192 result |= InputEvent.CTRL_DOWN_MASK;
194 if ((
modifiers&InputEvent.META_MASK) != 0) {
195 result |= InputEvent.META_DOWN_MASK;
197 if ((
modifiers&InputEvent.SHIFT_MASK) != 0) {
198 result |= InputEvent.SHIFT_DOWN_MASK;
210 final StringBuilder sb =
new StringBuilder();
215 sb.append(
"|alt_graph");
226 return sb.length() == 0 ?
"none" : sb.substring(1);
242 for (
final String s :
modifiers.split(
"\\|", -1)) {
265 System.err.println(
"Warning: ignoring unknown modifier '"+s+
"' in keybinding");