1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 /** 18 * @author Michael Danilov 19 * @version $Revision$ 20 */ 21 package java.awt.event; 22 23 import java.awt.Component; 24 25 /** 26 * This class is not supported in Android 1.0. It is merely provided to maintain 27 * interface compatibility with desktop Java implementations. 28 * 29 * @since Android 1.0 30 */ 31 public abstract class InputEvent extends ComponentEvent { 32 33 private static final long serialVersionUID = -2482525981698309786L; 34 35 public static final int SHIFT_MASK = 1; 36 37 public static final int CTRL_MASK = 2; 38 39 public static final int META_MASK = 4; 40 41 public static final int ALT_MASK = 8; 42 43 public static final int ALT_GRAPH_MASK = 32; 44 45 public static final int BUTTON1_MASK = 16; 46 47 public static final int BUTTON2_MASK = 8; 48 49 public static final int BUTTON3_MASK = 4; 50 51 public static final int SHIFT_DOWN_MASK = 64; 52 53 public static final int CTRL_DOWN_MASK = 128; 54 55 public static final int META_DOWN_MASK = 256; 56 57 public static final int ALT_DOWN_MASK = 512; 58 59 public static final int BUTTON1_DOWN_MASK = 1024; 60 61 public static final int BUTTON2_DOWN_MASK = 2048; 62 63 public static final int BUTTON3_DOWN_MASK = 4096; 64 65 public static final int ALT_GRAPH_DOWN_MASK = 8192; 66 67 private static final int DOWN_MASKS = SHIFT_DOWN_MASK | CTRL_DOWN_MASK | 68 META_DOWN_MASK | ALT_DOWN_MASK | BUTTON1_DOWN_MASK | 69 BUTTON2_DOWN_MASK | BUTTON3_DOWN_MASK | ALT_GRAPH_DOWN_MASK; 70 71 private long when; 72 private int modifiersEx; 73 74 public static String getModifiersExText(int modifiers/*Ex*/) { 75 return MouseEvent.addMouseModifiersExText( 76 KeyEvent.getKeyModifiersExText(modifiers), modifiers); 77 } 78 79 static int extractExFlags(int modifiers) { 80 int exFlags = modifiers & DOWN_MASKS; 81 82 if ((modifiers & SHIFT_MASK) != 0) { 83 exFlags |= SHIFT_DOWN_MASK; 84 } 85 if ((modifiers & CTRL_MASK) != 0) { 86 exFlags |= CTRL_DOWN_MASK; 87 } 88 if ((modifiers & META_MASK) != 0) { 89 exFlags |= META_DOWN_MASK; 90 } 91 if ((modifiers & ALT_MASK) != 0) { 92 exFlags |= ALT_DOWN_MASK; 93 } 94 if ((modifiers & ALT_GRAPH_MASK) != 0) { 95 exFlags |= ALT_GRAPH_DOWN_MASK; 96 } 97 if ((modifiers & BUTTON1_MASK) != 0) { 98 exFlags |= BUTTON1_DOWN_MASK; 99 } 100 if ((modifiers & BUTTON2_MASK) != 0) { 101 exFlags |= BUTTON2_DOWN_MASK; 102 } 103 if ((modifiers & BUTTON3_MASK) != 0) { 104 exFlags |= BUTTON3_DOWN_MASK; 105 } 106 107 return exFlags; 108 } 109 110 InputEvent(Component source, int id, long when, int modifiers) { 111 super(source, id); 112 113 this.when = when; 114 modifiersEx = extractExFlags(modifiers); 115 } 116 117 public int getModifiers() { 118 int modifiers = 0; 119 120 if ((modifiersEx & SHIFT_DOWN_MASK) != 0) { 121 modifiers |= SHIFT_MASK; 122 } 123 if ((modifiersEx & CTRL_DOWN_MASK) != 0) { 124 modifiers |= CTRL_MASK; 125 } 126 if ((modifiersEx & META_DOWN_MASK) != 0) { 127 modifiers |= META_MASK; 128 } 129 if ((modifiersEx & ALT_DOWN_MASK) != 0) { 130 modifiers |= ALT_MASK; 131 } 132 if ((modifiersEx & ALT_GRAPH_DOWN_MASK) != 0) { 133 modifiers |= ALT_GRAPH_MASK; 134 } 135 if ((modifiersEx & BUTTON1_DOWN_MASK) != 0) { 136 modifiers |= BUTTON1_MASK; 137 } 138 if ((modifiersEx & BUTTON2_DOWN_MASK) != 0) { 139 modifiers |= BUTTON2_MASK; 140 } 141 if ((modifiersEx & BUTTON3_DOWN_MASK) != 0) { 142 modifiers |= BUTTON3_MASK; 143 } 144 145 return modifiers; 146 } 147 148 public int getModifiersEx() { 149 return modifiersEx; 150 } 151 152 void setModifiers(int modifiers) { 153 modifiersEx = extractExFlags(modifiers); 154 } 155 156 public boolean isAltDown() { 157 return ((modifiersEx & ALT_DOWN_MASK) != 0); 158 } 159 160 public boolean isAltGraphDown() { 161 return ((modifiersEx & ALT_GRAPH_DOWN_MASK) != 0); 162 } 163 164 public boolean isControlDown() { 165 return ((modifiersEx & CTRL_DOWN_MASK) != 0); 166 } 167 168 public boolean isMetaDown() { 169 return ((modifiersEx & META_DOWN_MASK) != 0); 170 } 171 172 public boolean isShiftDown() { 173 return ((modifiersEx & SHIFT_DOWN_MASK) != 0); 174 } 175 176 public long getWhen() { 177 return when; 178 } 179 180 @Override 181 public void consume() { 182 super.consume(); 183 } 184 185 @Override 186 public boolean isConsumed() { 187 return super.isConsumed(); 188 } 189 190 } 191