// 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 uint32 kMouseButtonPrimary = 1;
const uint32 kMouseButtonSecondary = 2;
const uint32 kMouseButtonTertiary = 4;

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

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