Index: tools/vulkan/Window.h |
diff --git a/tools/vulkan/Window.h b/tools/vulkan/Window.h |
index 2247ca16ca1ae9369ccf8c47964d7c61f8587b0f..dbfe4e1e71b5d3286984749fa3711c81bed3c69c 100644 |
--- a/tools/vulkan/Window.h |
+++ b/tools/vulkan/Window.h |
@@ -8,6 +8,8 @@ |
#ifndef Window_DEFINED |
#define Window_DEFINED |
+#include "SkTypes.h" |
+ |
class SkCanvas; |
class VulkanTestContext; |
@@ -34,10 +36,71 @@ public: |
void detach(); |
// input handling |
- typedef bool(*OnKeyFunc)(int key, bool down, void* userData); |
- typedef bool(*OnMouseFunc)(int x, int y, bool down, void* userData); |
+ enum Key { |
+ kNONE_Key, //corresponds to android's UNKNOWN |
+ |
+ kLeftSoftKey_Key, |
+ kRightSoftKey_Key, |
+ |
+ kHome_Key, //!< the home key - added to match android |
+ kBack_Key, //!< (CLR) |
+ kSend_Key, //!< the green (talk) key |
+ kEnd_Key, //!< the red key |
+ |
+ k0_Key, |
+ k1_Key, |
+ k2_Key, |
+ k3_Key, |
+ k4_Key, |
+ k5_Key, |
+ k6_Key, |
+ k7_Key, |
+ k8_Key, |
+ k9_Key, |
+ kStar_Key, //!< the * key |
+ kHash_Key, //!< the # key |
+ |
+ kUp_Key, |
+ kDown_Key, |
+ kLeft_Key, |
+ kRight_Key, |
+ |
+ kOK_Key, //!< the center key |
+ |
+ kVolUp_Key, //!< volume up - match android |
+ kVolDown_Key, //!< volume down - same |
+ kPower_Key, //!< power button - same |
+ kCamera_Key, //!< camera - same |
+ |
+ kLast_Key = kCamera_Key |
+ }; |
+ static const int kKeyCount = kLast_Key + 1; |
+ |
+ enum ModifierKeys { |
+ kShift_ModifierKey = 1 << 0, |
+ kControl_ModifierKey = 1 << 1, |
+ kOption_ModifierKey = 1 << 2, // same as ALT |
+ kCommand_ModifierKey = 1 << 3, |
+ kFirstPress_ModifierKey = 1 << 4, |
+ }; |
+ |
+ enum InputState { |
+ kDown_InputState, |
+ kUp_InputState, |
+ kMove_InputState // only valid for mouse |
+ }; |
+ |
+ // return value of 'true' means 'I have handled this event' |
+ typedef bool(*OnCharFunc)(SkUnichar c, uint32_t modifiers, void* userData); |
+ typedef bool(*OnKeyFunc)(Key key, InputState state, uint32_t modifiers, void* userData); |
+ typedef bool(*OnMouseFunc)(int x, int y, InputState state, uint32_t modifiers, void* userData); |
typedef void(*OnPaintFunc)(SkCanvas*, void* userData); |
+ void registerCharFunc(OnCharFunc func, void* userData) { |
+ fCharFunc = func; |
+ fCharUserData = userData; |
+ } |
+ |
void registerKeyFunc(OnKeyFunc func, void* userData) { |
fKeyFunc = func; |
fKeyUserData = userData; |
@@ -53,12 +116,17 @@ public: |
fPaintUserData = userData; |
} |
+ bool onChar(SkUnichar c, uint32_t modifiers); |
+ bool onKey(Key key, InputState state, uint32_t modifiers); |
+ bool onMouse(int x, int y, InputState state, uint32_t modifiers); |
void onPaint(); |
- void onSize(); |
+ void onResize(uint32_t width, uint32_t height); |
protected: |
Window(); |
+ OnCharFunc fCharFunc; |
+ void* fCharUserData; |
OnKeyFunc fKeyFunc; |
void* fKeyUserData; |
OnMouseFunc fMouseFunc; |