ModifierKey unifies sk_app::Window::ModifierKey & Sample::Click::ModifierKey

Change-Id: Idb5dfe57a7f6e3d6078ab1e68d542b084114cfbe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225735
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
diff --git a/tools/ModifierKey.h b/tools/ModifierKey.h
new file mode 100644
index 0000000..5f4d25d
--- /dev/null
+++ b/tools/ModifierKey.h
@@ -0,0 +1,25 @@
+// Copyright 2019 Google LLC.
+// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
+#ifndef ModifierKey_DEFINED
+#define ModifierKey_DEFINED
+
+#include "include/private/SkBitmaskEnum.h"
+
+enum class ModifierKey {
+    kNone       = 0,
+    kShift      = 1 << 0,
+    kControl    = 1 << 1,
+    kOption     = 1 << 2,   // same as ALT
+    kCommand    = 1 << 3,
+    kFirstPress = 1 << 4,
+};
+
+namespace skstd {
+template <> struct is_bitmask_enum<ModifierKey> : std::true_type {};
+}
+
+static inline bool ModifierKeyIsSet(ModifierKey m) {
+    return m != ModifierKey::kNone;
+}
+
+#endif  // ModifierKey_DEFINED