d2f870c911
A variety of modifier key handling issues are addressed in this CL: - Added a skui::Key for the Super key (this is ImGui's name for command) - Added OS X event handling for `flagsChanged` (sent when modifier keys are pressed) - OS X manually tracks modifier key state and sends key-up and key-down events to the ImGuiLayer as necessary - OS X does not send key-up events when hotkeys are pressed, so these are manually synthesized and sent to ImGui (otherwise hotkeys are repeated forever) - Replaced hardcoded Virtual Key valus in OS X code with named constants - Our custom bitmask type was lacking the ability to XOR This CL does NOT enable the OS X clipboard; this uses the ImGui internal clipboard. Change-Id: I76b55215858bfb6441dbef18ad638426fa8bc073 Bug: skia:10338 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300182 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
61 lines
1.1 KiB
C++
61 lines
1.1 KiB
C++
// 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 skui_key_DEFINED
|
|
#define skui_key_DEFINED
|
|
namespace skui {
|
|
enum class Key {
|
|
kNONE, //corresponds to android's UNKNOWN
|
|
|
|
kLeftSoftKey,
|
|
kRightSoftKey,
|
|
|
|
kHome, //!< the home key - added to match android
|
|
kBack, //!< (CLR)
|
|
kSend, //!< the green (talk) key
|
|
kEnd, //!< the red key
|
|
|
|
k0,
|
|
k1,
|
|
k2,
|
|
k3,
|
|
k4,
|
|
k5,
|
|
k6,
|
|
k7,
|
|
k8,
|
|
k9,
|
|
kStar, //!< the * key
|
|
kHash, //!< the # key
|
|
|
|
kUp,
|
|
kDown,
|
|
kLeft,
|
|
kRight,
|
|
|
|
// Keys needed by ImGui
|
|
kTab,
|
|
kPageUp,
|
|
kPageDown,
|
|
kDelete,
|
|
kEscape,
|
|
kShift,
|
|
kCtrl,
|
|
kOption, // AKA Alt
|
|
kSuper, // AKA Command
|
|
kA,
|
|
kC,
|
|
kV,
|
|
kX,
|
|
kY,
|
|
kZ,
|
|
|
|
kOK, //!< the center key
|
|
|
|
kVolUp, //!< volume up - match android
|
|
kVolDown, //!< volume down - same
|
|
kPower, //!< power button - same
|
|
kCamera, //!< camera - same
|
|
};
|
|
}
|
|
#endif // skui_key_DEFINED
|