18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006 Apple Computer, Inc.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful,
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details.
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB.  If not, write to
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA.
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectmodule events {
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // Introduced in DOM Level 3:
24d0825bca7fe65beaee391d30da42e937db621564Steve Block    interface KeyboardEvent : UIEvent {
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
265f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        // KeyLocationCode
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        const unsigned long       KEY_LOCATION_STANDARD      = 0x00;
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        const unsigned long       KEY_LOCATION_LEFT          = 0x01;
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        const unsigned long       KEY_LOCATION_RIGHT         = 0x02;
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        const unsigned long       KEY_LOCATION_NUMPAD        = 0x03;
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute DOMString        keyIdentifier;
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute unsigned long    keyLocation;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute boolean          ctrlKey;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute boolean          shiftKey;
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute boolean          altKey;
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute boolean          metaKey;
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute boolean          altGraphKey;
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
425f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        boolean getModifierState(in DOMString keyIdentifierArg);
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        // FIXME: this does not match the version in the DOM spec.
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        void initKeyboardEvent(in DOMString type,
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean canBubble,
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean cancelable,
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in DOMWindow view,
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in DOMString keyIdentifier,
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in unsigned long keyLocation,
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean ctrlKey,
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean altKey,
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean shiftKey,
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean metaKey,
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean altGraphKey);
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        // WebKit Extensions
605f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute long             keyCode;
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        readonly attribute long             charCode;
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        void initKeyboardEvent(in DOMString type,
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean canBubble,
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean cancelable,
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in DOMWindow view,
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in DOMString keyIdentifier,
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in unsigned long keyLocation,
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean ctrlKey,
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean altKey,
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean shiftKey,
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               in boolean metaKey);
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
79