// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.ui.input2;

/// Modifiers are special keys that modify the purpose or the function
/// of other keys when used in combination with them.
bits Modifiers : uint32 {
    /// Applies when either the `LEFT_SHIFT` or `RIGHT_SHIFT` modifier is pressed.
    SHIFT = 0x00000001;
    /// Applies when the `LEFT_SHIFT` modifier is pressed.
    LEFT_SHIFT = 0x00000002;
    /// Applies when the `RIGHT_SHIFT` modifier is pressed.
    RIGHT_SHIFT = 0x00000004;

    /// Applies when either the `LEFT_CONTROL` or `RIGHT_CONTROL` modifier is pressed.
    CONTROL = 0x00000008;
    /// Applies when the `LEFT_CONTROL` modifier is pressed.
    LEFT_CONTROL = 0x00000010;
    /// Applies when the `RIGHT_CONTROL` modifier is pressed.
    RIGHT_CONTROL = 0x00000020;

    /// Applies when either the `LEFT_ALT` or `RIGHT_ALT` modifier is pressed.
    ALT = 0x00000040;
    /// Applies when the `LEFT_ALT` modifier is pressed.
    LEFT_ALT = 0x00000080;
    /// Applies when the `RIGHT_ALT` modifier is pressed.
    RIGHT_ALT = 0x00000100;

    /// Applies when either the `LEFT_META` or `RIGHT_META` modifier is pressed.
    META = 0x00000200;
    /// Applies when the `LEFT_META` modifier is pressed.
    LEFT_META = 0x00000400;
    /// Applies when the `RIGHT_META` modifier is pressed.
    RIGHT_META = 0x00000800;

    /// Applies when the `CAPS_LOCK` modifier is locked.
    CAPS_LOCK = 0x00001000;
    /// Applies when the `NUM_LOCK` modifier is locked.
    NUM_LOCK = 0x00002000;
    /// Applies when the `SCROLL_LOCK` modifier is locked.
    SCROLL_LOCK = 0x00004000;

    // TODO: Define additional modifiers as needed.
    // ALT_GRAPH, FUNCTION, FUNCTION_LOCK, SYMBOL, SYMBOL_LOCK
};
