// Copyright 2017 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.input;

/// Common mouse buttons report constants
const kMouseButtonPrimary uint32 = 1;
const kMouseButtonSecondary uint32 = 2;
const kMouseButtonTertiary uint32 = 4;

/// Common stylus buttons report constants
const kStylusBarrel uint32 = 1;

/// Used as mask bits (2^N) against ButtonDescriptor.buttons.
const kVolumeUp uint32 = 1;
const kVolumeDown uint32 = 2;
const kMicMute uint32 = 4;
const kReset uint32 = 8;
const kPause uint32 = 16;
const kCameraDisable uint32 = 32;
