4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
8 * Jaewon Lim <jaewon81.lim@samsung.com>
9 * Woojin Jung <woojin2.jung@samsung.com>
10 * Juyoung Kim <j0.kim@samsung.com>
12 * This library is free software; you can redistribute it and/or modify it under
13 * the terms of the GNU Lesser General Public License as published by the
14 * Free Software Foundation; either version 2.1 of the License, or (at your option)
17 * This library is distributed in the hope that it will be useful, but WITHOUT ANY
18 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20 * License for more details.
22 * You should have received a copy of the GNU Lesser General Public License
23 * along with this library; if not, write to the Free Software Foundation, Inc., 51
24 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33 #include "probeinfo.h"
34 #include "osp_probe.h"
35 #include "dacollection.h"
39 #define GESTURE_EVENT_LOG(_FUNCNAME, _GESTURETYPE, _X, _Y, _INFO1, _INFO2) \
40 setProbePoint(&probeInfo); \
42 APPEND_LOG_BASIC_NAME(LC_UIEVENT, _FUNCNAME); \
43 APPEND_LOG_COMMON_NONE(0); \
44 log.length += sprintf(log.data + log.length, "`,%d`,%d`,%d`,%d`,%d`,%d", \
45 _EVENT_GESTURE, _GESTURETYPE, _X, _Y, _INFO1, _INFO2); \
46 printLog(&log, MSG_LOG)
48 GestureEventListener GestureEventListener::rInstance;
50 GestureEventListener::GestureEventListener()
55 GestureEventListener::~GestureEventListener()
60 void GestureEventListener::OnCustomGestureCanceled (TouchGestureDetector &gestureDetector)
62 DECLARE_COMMON_VARIABLE;
64 if(isOptionEnabled(OPT_EVENT))
67 GESTURE_EVENT_LOG("canceled", _GESTURE_CUSTOM, 0, 0, 0, 0);
72 void GestureEventListener::OnCustomGestureChanged (TouchGestureDetector &gestureDetector)
74 DECLARE_COMMON_VARIABLE;
76 if(isOptionEnabled(OPT_EVENT))
79 GESTURE_EVENT_LOG("changed", _GESTURE_CUSTOM, 0, 0, 0, 0);
84 void GestureEventListener::OnCustomGestureFinished (TouchGestureDetector &gestureDetector)
86 DECLARE_COMMON_VARIABLE;
88 if(isOptionEnabled(OPT_EVENT))
91 GESTURE_EVENT_LOG("finished", _GESTURE_CUSTOM, 0, 0, 0, 0);
96 void GestureEventListener::OnCustomGestureStarted (TouchGestureDetector &gestureDetector)
98 DECLARE_COMMON_VARIABLE;
100 if(isOptionEnabled(OPT_EVENT))
103 GESTURE_EVENT_LOG("started", _GESTURE_CUSTOM, 0, 0, 0, 0);
108 void GestureEventListener::OnFlickGestureCanceled (TouchFlickGestureDetector &gestureDetector)
110 DECLARE_COMMON_VARIABLE;
112 if(isOptionEnabled(OPT_EVENT))
116 int x = 0, y = 0, dur = 0;
117 FlickDirection direction = FLICK_DIRECTION_NONE;
119 gestureDetector.GetDistance(x, y);
120 dur = gestureDetector.GetDuration();
121 direction = gestureDetector.GetDirection();
122 GESTURE_EVENT_LOG("canceled", _GESTURE_FLICK, x, y, dur, (int)direction);
128 void GestureEventListener::OnFlickGestureDetected (TouchFlickGestureDetector &gestureDetector)
130 DECLARE_COMMON_VARIABLE;
132 if(isOptionEnabled(OPT_EVENT))
136 int x = 0, y = 0, dur = 0;
137 FlickDirection direction = FLICK_DIRECTION_NONE;
139 gestureDetector.GetDistance(x, y);
140 dur = gestureDetector.GetDuration();
141 direction = gestureDetector.GetDirection();
142 GESTURE_EVENT_LOG("detected", _GESTURE_FLICK, x, y, dur, (int)direction);
148 void GestureEventListener::OnLongPressGestureCanceled (TouchLongPressGestureDetector &gestureDetector)
150 DECLARE_COMMON_VARIABLE;
152 if(isOptionEnabled(OPT_EVENT))
156 int moveallow = 0, tcount = 0, dur = 0;
158 moveallow = gestureDetector.GetMoveAllowance();
159 dur = gestureDetector.GetDuration();
160 tcount = gestureDetector.GetTouchCount();
161 GESTURE_EVENT_LOG("canceled", _GESTURE_LONGPRESS, moveallow, 0, dur, tcount);
167 void GestureEventListener::OnLongPressGestureDetected (TouchLongPressGestureDetector &gestureDetector)
169 DECLARE_COMMON_VARIABLE;
171 if(isOptionEnabled(OPT_EVENT))
175 int moveallow = 0, tcount = 0, dur = 0;
177 moveallow = gestureDetector.GetMoveAllowance();
178 dur = gestureDetector.GetDuration();
179 tcount = gestureDetector.GetTouchCount();
180 GESTURE_EVENT_LOG("detected", _GESTURE_LONGPRESS, moveallow, 0, dur, tcount);
186 void GestureEventListener::OnPanningGestureCanceled (TouchPanningGestureDetector &gestureDetector)
188 DECLARE_COMMON_VARIABLE;
190 if(isOptionEnabled(OPT_EVENT))
196 tcount = gestureDetector.GetTouchCount();
197 GESTURE_EVENT_LOG("canceled", _GESTURE_PANNING, 0, 0, 0, tcount);
203 void GestureEventListener::OnPanningGestureChanged (TouchPanningGestureDetector &gestureDetector)
205 DECLARE_COMMON_VARIABLE;
207 if(isOptionEnabled(OPT_EVENT))
213 tcount = gestureDetector.GetTouchCount();
214 GESTURE_EVENT_LOG("changed", _GESTURE_PANNING, 0, 0, 0, tcount);
220 void GestureEventListener::OnPanningGestureFinished (TouchPanningGestureDetector &gestureDetector)
222 DECLARE_COMMON_VARIABLE;
224 if(isOptionEnabled(OPT_EVENT))
230 tcount = gestureDetector.GetTouchCount();
231 GESTURE_EVENT_LOG("finished", _GESTURE_PANNING, 0, 0, 0, tcount);
237 void GestureEventListener::OnPanningGestureStarted (TouchPanningGestureDetector &gestureDetector)
239 DECLARE_COMMON_VARIABLE;
241 if(isOptionEnabled(OPT_EVENT))
247 tcount = gestureDetector.GetTouchCount();
248 GESTURE_EVENT_LOG("started", _GESTURE_PANNING, 0, 0, 0, tcount);
254 void GestureEventListener::OnPinchGestureCanceled (TouchPinchGestureDetector &gestureDetector)
256 DECLARE_COMMON_VARIABLE;
258 if(isOptionEnabled(OPT_EVENT))
262 Tizen::Graphics::Point point;
265 point = gestureDetector.GetCenterPoint();
266 scale = gestureDetector.GetScale();
267 GESTURE_EVENT_LOG("canceled", _GESTURE_PINCH, point.x, point.y, scale, 0);
273 void GestureEventListener::OnPinchGestureChanged (TouchPinchGestureDetector &gestureDetector)
275 DECLARE_COMMON_VARIABLE;
277 if(isOptionEnabled(OPT_EVENT))
281 Tizen::Graphics::Point point;
284 point = gestureDetector.GetCenterPoint();
285 scale = gestureDetector.GetScale();
286 GESTURE_EVENT_LOG("changed", _GESTURE_PINCH, point.x, point.y, scale, 0);
292 void GestureEventListener::OnPinchGestureFinished (TouchPinchGestureDetector &gestureDetector)
294 DECLARE_COMMON_VARIABLE;
296 if(isOptionEnabled(OPT_EVENT))
300 Tizen::Graphics::Point point;
303 point = gestureDetector.GetCenterPoint();
304 scale = gestureDetector.GetScale();
305 GESTURE_EVENT_LOG("finished", _GESTURE_PINCH, point.x, point.y, scale, 0);
311 void GestureEventListener::OnPinchGestureStarted (TouchPinchGestureDetector &gestureDetector)
313 DECLARE_COMMON_VARIABLE;
315 if(isOptionEnabled(OPT_EVENT))
319 Tizen::Graphics::Point point;
322 point = gestureDetector.GetCenterPoint();
323 scale = gestureDetector.GetScale();
324 GESTURE_EVENT_LOG("started", _GESTURE_PINCH, point.x, point.y, scale, 0);
330 void GestureEventListener::OnRotationGestureCanceled (TouchRotationGestureDetector &gestureDetector)
332 DECLARE_COMMON_VARIABLE;
334 if(isOptionEnabled(OPT_EVENT))
341 distance = gestureDetector.GetDistance();
342 angle = gestureDetector.GetAngle();
343 GESTURE_EVENT_LOG("canceled", _GESTURE_ROTATION, 0, 0, distance, static_cast<int>(angle));
349 void GestureEventListener::OnRotationGestureChanged (TouchRotationGestureDetector &gestureDetector)
351 DECLARE_COMMON_VARIABLE;
353 if(isOptionEnabled(OPT_EVENT))
360 distance = gestureDetector.GetDistance();
361 angle = gestureDetector.GetAngle();
362 GESTURE_EVENT_LOG("changed", _GESTURE_ROTATION, 0, 0, distance, static_cast<int>(angle));
368 void GestureEventListener::OnRotationGestureFinished (TouchRotationGestureDetector &gestureDetector)
370 DECLARE_COMMON_VARIABLE;
372 if(isOptionEnabled(OPT_EVENT))
379 distance = gestureDetector.GetDistance();
380 angle = gestureDetector.GetAngle();
381 GESTURE_EVENT_LOG("finished", _GESTURE_ROTATION, 0, 0, distance, static_cast<int>(angle));
387 void GestureEventListener::OnRotationGestureStarted (TouchRotationGestureDetector &gestureDetector)
389 DECLARE_COMMON_VARIABLE;
391 if(isOptionEnabled(OPT_EVENT))
398 distance = gestureDetector.GetDistance();
399 angle = gestureDetector.GetAngle();
400 GESTURE_EVENT_LOG("started", _GESTURE_ROTATION, 0, 0, distance, static_cast<int>(angle));
406 void GestureEventListener::OnTapGestureCanceled (TouchTapGestureDetector &gestureDetector)
408 DECLARE_COMMON_VARIABLE;
410 if(isOptionEnabled(OPT_EVENT))
414 int move = 0, tapcount = 0, touchcount = 0, interval = 0;
416 move = gestureDetector.GetMoveAllowance();
417 tapcount = gestureDetector.GetTapCount();
418 interval = gestureDetector.GetTapInterval();
419 touchcount = gestureDetector.GetTouchCount();
420 GESTURE_EVENT_LOG("canceled", _GESTURE_TAP, move, tapcount, interval, touchcount);
426 void GestureEventListener::OnTapGestureDetected (TouchTapGestureDetector &gestureDetector)
428 DECLARE_COMMON_VARIABLE;
430 if(isOptionEnabled(OPT_EVENT))
434 int move = 0, tapcount = 0, touchcount = 0, interval = 0;
436 move = gestureDetector.GetMoveAllowance();
437 tapcount = gestureDetector.GetTapCount();
438 interval = gestureDetector.GetTapInterval();
439 touchcount = gestureDetector.GetTouchCount();
440 GESTURE_EVENT_LOG("detected", _GESTURE_TAP, move, tapcount, interval, touchcount);
446 GestureEventListener& GestureEventListener::GetInstance()
452 namespace Tizen { namespace Ui {
454 result TouchFlickGestureDetector::AddFlickGestureEventListener(ITouchFlickGestureEventListener& listener)
456 typedef result (TouchFlickGestureDetector::*methodType)(ITouchFlickGestureEventListener& listener);
457 static methodType addflickgestureeventlistenerp;
460 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui25TouchFlickGestureDetector28AddFlickGestureEventListenerERNS0_31ITouchFlickGestureEventListenerE,
461 LIBOSP_UIFW, addflickgestureeventlistenerp);
464 GestureEventListener& mylistener = GestureEventListener::GetInstance();
465 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
467 iret = (this->*addflickgestureeventlistenerp)(static_cast<ITouchFlickGestureEventListener&>(mylistener));
468 if(likely(iret == E_SUCCESS))
474 del_detector_hash(static_cast<void*>(this));
479 return (this->*addflickgestureeventlistenerp)(listener);
482 result TouchLongPressGestureDetector::AddLongPressGestureEventListener(ITouchLongPressGestureEventListener& listener)
484 typedef result (TouchLongPressGestureDetector::*methodType)(ITouchLongPressGestureEventListener& listener);
485 static methodType addlongpressgestureeventlistenerp;
488 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui29TouchLongPressGestureDetector32AddLongPressGestureEventListenerERNS0_35ITouchLongPressGestureEventListenerE,
489 LIBOSP_UIFW, addlongpressgestureeventlistenerp);
492 GestureEventListener& mylistener = GestureEventListener::GetInstance();
493 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
495 iret = (this->*addlongpressgestureeventlistenerp)(static_cast<ITouchLongPressGestureEventListener&>(mylistener));
496 if(likely(iret == E_SUCCESS))
502 del_detector_hash(static_cast<void*>(this));
507 return (this->*addlongpressgestureeventlistenerp)(listener);
510 result TouchPanningGestureDetector::AddPanningGestureEventListener(ITouchPanningGestureEventListener& listener)
512 typedef result (TouchPanningGestureDetector::*methodType)(ITouchPanningGestureEventListener& listener);
513 static methodType addpanninggestureeventlistenerp;
516 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui27TouchPanningGestureDetector30AddPanningGestureEventListenerERNS0_33ITouchPanningGestureEventListenerE,
517 LIBOSP_UIFW, addpanninggestureeventlistenerp);
520 GestureEventListener& mylistener = GestureEventListener::GetInstance();
521 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
523 iret = (this->*addpanninggestureeventlistenerp)(static_cast<ITouchPanningGestureEventListener&>(mylistener));
524 if(likely(iret == E_SUCCESS))
530 del_detector_hash(static_cast<void*>(this));
535 return (this->*addpanninggestureeventlistenerp)(listener);
538 result TouchPinchGestureDetector::AddPinchGestureEventListener(ITouchPinchGestureEventListener& listener)
540 typedef result (TouchPinchGestureDetector::*methodType)(ITouchPinchGestureEventListener& listener);
541 static methodType addpinchgestureeventlistenerp;
544 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui25TouchPinchGestureDetector28AddPinchGestureEventListenerERNS0_31ITouchPinchGestureEventListenerE,
545 LIBOSP_UIFW, addpinchgestureeventlistenerp);
548 GestureEventListener& mylistener = GestureEventListener::GetInstance();
549 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
551 iret = (this->*addpinchgestureeventlistenerp)(static_cast<ITouchPinchGestureEventListener&>(mylistener));
552 if(likely(iret == E_SUCCESS))
558 del_detector_hash(static_cast<void*>(this));
563 return (this->*addpinchgestureeventlistenerp)(listener);
566 result TouchRotationGestureDetector::AddRotationGestureEventListener(ITouchRotationGestureEventListener& listener)
568 typedef result (TouchRotationGestureDetector::*methodType)(ITouchRotationGestureEventListener& listener);
569 static methodType addrotationgestureeventlistenerp;
572 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui28TouchRotationGestureDetector31AddRotationGestureEventListenerERNS0_34ITouchRotationGestureEventListenerE,
573 LIBOSP_UIFW, addrotationgestureeventlistenerp);
576 GestureEventListener& mylistener = GestureEventListener::GetInstance();
577 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
579 iret = (this->*addrotationgestureeventlistenerp)(static_cast<ITouchRotationGestureEventListener&>(mylistener));
580 if(likely(iret == E_SUCCESS))
586 del_detector_hash(static_cast<void*>(this));
591 return (this->*addrotationgestureeventlistenerp)(listener);
594 result TouchTapGestureDetector::AddTapGestureEventListener(ITouchTapGestureEventListener& listener)
596 typedef result (TouchTapGestureDetector::*methodType)(ITouchTapGestureEventListener& listener);
597 static methodType addtapgestureeventlistenerp;
600 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui23TouchTapGestureDetector26AddTapGestureEventListenerERNS0_29ITouchTapGestureEventListenerE,
601 LIBOSP_UIFW, addtapgestureeventlistenerp);
604 GestureEventListener& mylistener = GestureEventListener::GetInstance();
605 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
607 iret = (this->*addtapgestureeventlistenerp)(static_cast<ITouchTapGestureEventListener&>(mylistener));
608 if(likely(iret == E_SUCCESS))
614 del_detector_hash(static_cast<void*>(this));
619 return (this->*addtapgestureeventlistenerp)(listener);
622 result TouchGestureDetector::AddGestureEventListener(ITouchGestureEventListener& listener)
624 typedef result (TouchGestureDetector::*methodType)(ITouchGestureEventListener& listener);
625 static methodType addgestureeventlistenerp;
628 GET_REAL_FUNC_OSP(_ZN5Tizen2Ui20TouchGestureDetector23AddGestureEventListenerERNS0_26ITouchGestureEventListenerE,
629 LIBOSP_UIFW, addgestureeventlistenerp);
632 GestureEventListener& mylistener = GestureEventListener::GetInstance();
633 if(add_detector_hash(static_cast<void*>(this), static_cast<void*>(&mylistener)) <= 0)
635 iret = (this->*addgestureeventlistenerp)(static_cast<ITouchGestureEventListener&>(mylistener));
636 if(likely(iret == E_SUCCESS))
642 del_detector_hash(static_cast<void*>(this));
647 return (this->*addgestureeventlistenerp)(listener);
651 } } // end of namespace