#define DALI_INTERNAL_TAP_GESTURE_DETECTOR_H
/*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
// INTERNAL INCLUDES
+#include <dali/internal/event/events/gesture-detector-impl.h>
#include <dali/public-api/events/tap-gesture-detector.h>
#include <dali/public-api/events/tap-gesture.h>
-#include <dali/internal/event/events/gesture-detector-impl.h>
namespace Dali
{
-
namespace Internal
{
-
class TapGestureDetector;
-typedef IntrusivePtr<TapGestureDetector> TapGestureDetectorPtr;
-typedef DerivedGestureDetectorContainer<TapGestureDetector>::type TapGestureDetectorContainer;
+using TapGestureDetectorPtr = IntrusivePtr<TapGestureDetector>;
+using TapGestureDetectorContainer = DerivedGestureDetectorContainer<TapGestureDetector>::type;
/**
* @copydoc Dali::TapGestureDetector
class TapGestureDetector : public GestureDetector
{
public: // Creation
-
/**
* Create a new gesture detector.
* @return A smart-pointer to the newly allocated detector.
* @param[in] tapsRequired The number of taps required.
* @return A smart-pointer to the newly allocated detector.
*/
- static TapGestureDetectorPtr New( unsigned int tapsRequired );
+ static TapGestureDetectorPtr New(unsigned int tapsRequired);
/**
* Construct a new GestureDetector.
* Construct a new GestureDetector with the specified parameters.
* @param[in] tapsRequired The number of taps required.
*/
- TapGestureDetector( unsigned int tapsRequired );
+ TapGestureDetector(unsigned int tapsRequired);
public:
-
/**
* @copydoc Dali::TapGestureDetector::SetTouchesRequired(unsigned int)
*/
/**
* @copydoc Dali::TapGestureDetector::SetMinimumTapsRequired()
*/
- void SetMinimumTapsRequired( unsigned int minTaps );
+ void SetMinimumTapsRequired(unsigned int minTaps);
/**
* @copydoc Dali::TapGestureDetector::SetMaximumTapsRequired()
*/
- void SetMaximumTapsRequired( unsigned int maxTaps );
+ void SetMaximumTapsRequired(unsigned int maxTaps);
/**
* @copydoc Dali::TapGestureDetector::GetMinimumTapsRequired()
*/
unsigned int GetTouchesRequired() const;
-public:
+ /**
+ * @copydoc Dali::TapGestureDetector::ReceiveAllTapEvents()
+ */
+ void ReceiveAllTapEvents(bool receive);
+public:
/**
* Called by the TapGestureProcessor when a tap gesture event occurs within the bounds of our
* attached actor.
void EmitTapGestureSignal(Dali::Actor tappedActor, const Dali::TapGesture& tap);
public: // Signals
-
/**
* @copydoc Dali::TapGestureDetector::DetectedSignal()
*/
* @return True if the signal was connected.
* @post If a signal was connected, ownership of functor was passed to CallbackBase. Otherwise the caller is responsible for deleting the unused functor.
*/
- static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor );
+ static bool DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor);
protected:
-
/**
* A reference counted object may only be deleted by calling Unreference()
*/
- virtual ~TapGestureDetector();
+ ~TapGestureDetector() override;
private:
-
// Undefined
TapGestureDetector(const TapGestureDetector&);
TapGestureDetector& operator=(const TapGestureDetector& rhs);
-private: // GestureDetector overrides
+ /**
+ * Timer Callback
+ * @return will return false; one-shot timer.
+ */
+ bool TimerCallback();
+private: // GestureDetector overrides
/**
* @copydoc Dali::Internal::GestureDetector::OnActorAttach(Actor&)
*/
- virtual void OnActorAttach(Actor& actor);
+ void OnActorAttach(Actor& actor) override;
/**
* @copydoc Dali::Internal::GestureDetector::OnActorDetach(Actor&)
*/
- virtual void OnActorDetach(Actor& actor);
+ void OnActorDetach(Actor& actor) override;
/**
* @copydoc Dali::Internal::GestureDetector::OnActorDestroyed(Object&)
*/
- virtual void OnActorDestroyed(Object& object);
+ void OnActorDestroyed(Object& object) override;
private:
-
Dali::TapGestureDetector::DetectedSignalType mDetectedSignal;
- unsigned int mMinimumTapsRequired;
- unsigned int mMaximumTapsRequired;
- unsigned int mTouchesRequired;
+ unsigned int mMinimumTapsRequired;
+ unsigned int mMaximumTapsRequired;
+ unsigned int mTouchesRequired;
+ uint32_t mTimerId;
+ Dali::Actor mTappedActor;
+ Dali::TapGesture mTap;
+ bool mReceiveAllTapEvents;
};
} // namespace Internal
inline Internal::TapGestureDetector& GetImplementation(Dali::TapGestureDetector& detector)
{
- DALI_ASSERT_ALWAYS( detector && "TapGestureDetector handle is empty" );
+ DALI_ASSERT_ALWAYS(detector && "TapGestureDetector handle is empty");
BaseObject& handle = detector.GetBaseObject();
inline const Internal::TapGestureDetector& GetImplementation(const Dali::TapGestureDetector& detector)
{
- DALI_ASSERT_ALWAYS( detector && "TapGestureDetector handle is empty" );
+ DALI_ASSERT_ALWAYS(detector && "TapGestureDetector handle is empty");
const BaseObject& handle = detector.GetBaseObject();
} // namespace Dali
-#endif // DALI_INTERNAL_TAP_GESTURE_DETECTOR_H
+#endif // DALI_INTERNAL_TAP_GESTURE_DETECTOR_H
\ No newline at end of file