Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: tools/viewer/sk_app/Window.h

Issue 1982643004: Implement touch control (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: SkMutex Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/viewer/Viewer.cpp ('k') | tools/viewer/sk_app/Window.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef Window_DEFINED 8 #ifndef Window_DEFINED
9 #define Window_DEFINED 9 #define Window_DEFINED
10 10
11 #include "DisplayParams.h" 11 #include "DisplayParams.h"
12 #include "SkRect.h"
13 #include "SkTouchGesture.h"
12 #include "SkTypes.h" 14 #include "SkTypes.h"
13 #include "SkRect.h"
14 15
15 class SkCanvas; 16 class SkCanvas;
16 17
17 namespace sk_app { 18 namespace sk_app {
18 19
19 class WindowContext; 20 class WindowContext;
20 21
21 class Window { 22 class Window {
22 public: 23 public:
23 static Window* CreateNativeWindow(void* platformData); 24 static Window* CreateNativeWindow(void* platformData);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 enum InputState { 93 enum InputState {
93 kDown_InputState, 94 kDown_InputState,
94 kUp_InputState, 95 kUp_InputState,
95 kMove_InputState // only valid for mouse 96 kMove_InputState // only valid for mouse
96 }; 97 };
97 98
98 // return value of 'true' means 'I have handled this event' 99 // return value of 'true' means 'I have handled this event'
99 typedef bool(*OnCharFunc)(SkUnichar c, uint32_t modifiers, void* userData); 100 typedef bool(*OnCharFunc)(SkUnichar c, uint32_t modifiers, void* userData);
100 typedef bool(*OnKeyFunc)(Key key, InputState state, uint32_t modifiers, void * userData); 101 typedef bool(*OnKeyFunc)(Key key, InputState state, uint32_t modifiers, void * userData);
101 typedef bool(*OnMouseFunc)(int x, int y, InputState state, uint32_t modifier s, void* userData); 102 typedef bool(*OnMouseFunc)(int x, int y, InputState state, uint32_t modifier s, void* userData);
103 typedef bool(*OnTouchFunc)(int owner, InputState state, float x, float y, vo id* userData);
102 typedef void(*OnPaintFunc)(SkCanvas*, void* userData); 104 typedef void(*OnPaintFunc)(SkCanvas*, void* userData);
103 105
104 void registerCharFunc(OnCharFunc func, void* userData) { 106 void registerCharFunc(OnCharFunc func, void* userData) {
105 fCharFunc = func; 107 fCharFunc = func;
106 fCharUserData = userData; 108 fCharUserData = userData;
107 } 109 }
108 110
109 void registerKeyFunc(OnKeyFunc func, void* userData) { 111 void registerKeyFunc(OnKeyFunc func, void* userData) {
110 fKeyFunc = func; 112 fKeyFunc = func;
111 fKeyUserData = userData; 113 fKeyUserData = userData;
112 } 114 }
113 115
114 void registerMouseFunc(OnMouseFunc func, void* userData) { 116 void registerMouseFunc(OnMouseFunc func, void* userData) {
115 fMouseFunc = func; 117 fMouseFunc = func;
116 fMouseUserData = userData; 118 fMouseUserData = userData;
117 } 119 }
118 120
119 void registerPaintFunc(OnPaintFunc func, void* userData) { 121 void registerPaintFunc(OnPaintFunc func, void* userData) {
120 fPaintFunc = func; 122 fPaintFunc = func;
121 fPaintUserData = userData; 123 fPaintUserData = userData;
122 } 124 }
123 125
126 void registerTouchFunc(OnTouchFunc func, void* userData) {
127 fTouchFunc = func;
128 fTouchUserData = userData;
129 }
130
124 bool onChar(SkUnichar c, uint32_t modifiers); 131 bool onChar(SkUnichar c, uint32_t modifiers);
125 bool onKey(Key key, InputState state, uint32_t modifiers); 132 bool onKey(Key key, InputState state, uint32_t modifiers);
126 bool onMouse(int x, int y, InputState state, uint32_t modifiers); 133 bool onMouse(int x, int y, InputState state, uint32_t modifiers);
134 bool onTouch(int owner, InputState state, float x, float y); // multi-owner = multi-touch
127 void onPaint(); 135 void onPaint();
128 void onResize(uint32_t width, uint32_t height); 136 void onResize(uint32_t width, uint32_t height);
129 137
130 uint32_t width() { return fWidth; } 138 uint32_t width() { return fWidth; }
131 uint32_t height() { return fHeight; } 139 uint32_t height() { return fHeight; }
132 140
133 virtual const DisplayParams& getDisplayParams(); 141 virtual const DisplayParams& getDisplayParams();
134 void setDisplayParams(const DisplayParams& params); 142 void setDisplayParams(const DisplayParams& params);
135 143
136 protected: 144 protected:
137 Window(); 145 Window();
138 146
139 uint32_t fWidth; 147 uint32_t fWidth;
140 uint32_t fHeight; 148 uint32_t fHeight;
141 149
142 OnCharFunc fCharFunc; 150 OnCharFunc fCharFunc;
143 void* fCharUserData; 151 void* fCharUserData;
144 OnKeyFunc fKeyFunc; 152 OnKeyFunc fKeyFunc;
145 void* fKeyUserData; 153 void* fKeyUserData;
146 OnMouseFunc fMouseFunc; 154 OnMouseFunc fMouseFunc;
147 void* fMouseUserData; 155 void* fMouseUserData;
156 OnTouchFunc fTouchFunc;
157 void* fTouchUserData;
148 OnPaintFunc fPaintFunc; 158 OnPaintFunc fPaintFunc;
149 void* fPaintUserData; 159 void* fPaintUserData;
150 160
151 WindowContext* fWindowContext; 161 WindowContext* fWindowContext = nullptr;
152 }; 162 };
153 163
154 } // namespace sk_app 164 } // namespace sk_app
155 #endif 165 #endif
OLDNEW
« no previous file with comments | « tools/viewer/Viewer.cpp ('k') | tools/viewer/sk_app/Window.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698