/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
#include <dali/integration-api/debug.h>
#include <dali/internal/event/actors/actor-impl.h>
#include <dali/internal/event/actors/layer-impl.h>
+#include <dali/internal/event/common/scene-impl.h>
#include <dali/internal/event/events/hit-test-algorithm-impl.h>
#include <dali/internal/event/events/actor-gesture-data.h>
#include <dali/internal/event/render-tasks/render-task-impl.h>
*/
struct GestureHitTestCheck : public HitTestAlgorithm::HitTestInterface
{
- GestureHitTestCheck( Gesture::Type type )
+ GestureHitTestCheck( DevelGesture::Type type )
: mType( type )
{
}
+ GestureHitTestCheck( Gesture::Type type )
+ : GestureHitTestCheck( static_cast< DevelGesture::Type >( type ) )
+ {
+ }
+
virtual bool IsActorHittable( Actor* actor )
{
return actor->IsGestureRequred( mType ) && // Does the Application or derived actor type require the gesture?
return layer->IsTouchConsumed();
}
- Gesture::Type mType;
+ DevelGesture::Type mType;
};
} // unnamed namespace
-GestureProcessor::GestureProcessor( Gesture::Type type )
-: mType( type ),
- mCurrentGesturedActor( NULL ),
+GestureProcessor::GestureProcessor( DevelGesture::Type type )
+: mGestureRecognizer(),
+ mNeedsUpdate( false ),
+ mType( type ),
+ mCurrentGesturedActor( nullptr ),
mGesturedActorDisconnected( false )
{
}
+GestureProcessor::GestureProcessor( Gesture::Type type )
+: GestureProcessor( static_cast< DevelGesture::Type >( type ) )
+{
+}
+
+
GestureProcessor::~GestureProcessor()
{
ResetActor();
}
+void GestureProcessor::ProcessTouch( Scene& scene, const Integration::TouchEvent& event )
+{
+ if( mGestureRecognizer )
+ {
+ mGestureRecognizer->SendEvent(scene, event);
+ }
+}
+
void GestureProcessor::GetGesturedActor( Actor*& actor, GestureDetectorContainer& gestureDetectors )
{
while ( actor )
}
}
-bool GestureProcessor::HitTest(
- Stage& stage,
- Vector2 screenCoordinates,
- HitTestAlgorithm::Results& hitTestResults)
+bool GestureProcessor::HitTest( Scene& scene, Vector2 screenCoordinates, HitTestAlgorithm::Results& hitTestResults )
{
GestureHitTestCheck hitCheck( mType );
- HitTestAlgorithm::HitTest( stage, screenCoordinates, hitTestResults, hitCheck );
+ HitTestAlgorithm::HitTest( scene.GetSize(), scene.GetRenderTaskList(), scene.GetLayerList(), screenCoordinates, hitTestResults, hitCheck );
return hitTestResults.renderTask && hitTestResults.actor;
}
if ( mCurrentGesturedActor )
{
mCurrentGesturedActor->RemoveObserver( *this );
- mCurrentGesturedActor = NULL;
+ mCurrentGesturedActor = nullptr;
mGesturedActorDisconnected = false;
}
}
Actor* GestureProcessor::GetCurrentGesturedActor()
{
- return mGesturedActorDisconnected ? NULL : mCurrentGesturedActor;
+ return mGesturedActorDisconnected ? nullptr : mCurrentGesturedActor;
}
void GestureProcessor::SceneObjectRemoved(Object& object)
// Inform deriving classes.
OnGesturedActorStageDisconnection();
- mCurrentGesturedActor = NULL;
+ mCurrentGesturedActor = nullptr;
}
}