本文整理汇总了C++中TestApplication::GetGestureManager方法的典型用法代码示例。如果您正苦于以下问题:C++ TestApplication::GetGestureManager方法的具体用法?C++ TestApplication::GetGestureManager怎么用?C++ TestApplication::GetGestureManager使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TestApplication
的用法示例。
在下文中一共展示了TestApplication::GetGestureManager方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UtcDaliGestureDetectorDetachN03
int UtcDaliGestureDetectorDetachN03(void)
{
TestApplication application;
TestGestureManager& gestureManager = application.GetGestureManager();
// Use pan gesture as GestureDetector cannot be created.
GestureDetector detector = PanGestureDetector::New();
Actor actor = Actor::New();
detector.Attach(actor);
// Detach an actor twice - no exception should happen.
try
{
detector.Detach(actor);
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
gestureManager.Initialize(); // Reset values
detector.Detach(actor);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
}
catch (DaliException& e)
{
DALI_TEST_PRINT_ASSERT( e );
tet_result(TET_FAIL);
}
END_TEST;
}
示例2: UtcDaliGestureDetectorDetachAllN
int UtcDaliGestureDetectorDetachAllN(void)
{
TestApplication application;
TestGestureManager& gestureManager = application.GetGestureManager();
// Use pan gesture as GestureDetector cannot be created.
GestureDetector detector = PanGestureDetector::New();
const unsigned int actorsToAdd = 5;
std::vector<Actor> myActors;
for (unsigned int i = 0; i < actorsToAdd; ++i)
{
Actor actor = Actor::New();
myActors.push_back(actor);
detector.Attach(actor);
}
DALI_TEST_EQUALS(actorsToAdd, detector.GetAttachedActorCount(), TEST_LOCATION);
// Detach and retrieve attached actors again, the vector should be empty.
detector.DetachAll();
DALI_TEST_EQUALS(0u, detector.GetAttachedActorCount(), TEST_LOCATION);
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
// Call DetachAll again, there should not be any exception
try
{
gestureManager.Initialize(); // Reset values
detector.DetachAll();
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
}
catch (DaliException& e)
{
DALI_TEST_PRINT_ASSERT( e );
tet_result(TET_FAIL);
}
END_TEST;
}
示例3: UtcDaliTapGestureSignalReceptionMultipleGestureDetectors
int UtcDaliTapGestureSignalReceptionMultipleGestureDetectors(void)
{
TestApplication application;
Dali::TestGestureManager& gestureManager = application.GetGestureManager();
Actor first = Actor::New();
first.SetSize(100.0f, 100.0f);
first.SetAnchorPoint(AnchorPoint::TOP_LEFT);
Stage::GetCurrent().Add(first);
Actor second = Actor::New();
second.SetSize(100.0f, 100.0f);
second.SetAnchorPoint(AnchorPoint::TOP_LEFT);
second.SetX(100.0f);
first.Add(second);
// Render and notify
application.SendNotification();
application.Render();
SignalData data;
GestureReceivedFunctor functor(data);
TapGestureDetector firstDetector = TapGestureDetector::New();
firstDetector.Attach(first);
firstDetector.DetectedSignal().Connect(&application, functor);
// secondDetector is scoped
{
// Reset gestureManager statistics
gestureManager.Initialize();
TapGestureDetector secondDetector = TapGestureDetector::New( 2 );
secondDetector.Attach(second);
secondDetector.DetectedSignal().Connect(&application, functor);
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UpdateType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::RegisterType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
// Tap within second actor's area
application.ProcessEvent(GenerateTap(Gesture::Possible, 2u, 1u, Vector2(150.0f, 10.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, 2u, 1u, Vector2(150.0f, 10.0f)));
DALI_TEST_EQUALS(true, data.functorCalled, TEST_LOCATION);
DALI_TEST_EQUALS(true, second == data.tappedActor, TEST_LOCATION);
// Tap continues as single touch gesture - we should not receive any gesture
data.Reset();
application.ProcessEvent(GenerateTap(Gesture::Possible, 1u, 1u, Vector2(150.0f, 10.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, 1u, 1u, Vector2(150.0f, 10.0f)));
DALI_TEST_EQUALS(false, data.functorCalled, TEST_LOCATION);
// Single touch tap starts - first actor should be panned
data.Reset();
application.ProcessEvent(GenerateTap(Gesture::Possible, 1u, 1u, Vector2(50.0f, 10.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, 1u, 1u, Vector2(50.0f, 10.0f)));
DALI_TEST_EQUALS(true, data.functorCalled, TEST_LOCATION);
DALI_TEST_EQUALS(true, first == data.tappedActor, TEST_LOCATION);
// Pan changes to double-touch - we shouldn't receive event
data.Reset();
application.ProcessEvent(GenerateTap(Gesture::Possible, 2u, 2u, Vector2(50.0f, 10.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, 2u, 2u, Vector2(50.0f, 10.0f)));
DALI_TEST_EQUALS(false, data.functorCalled, TEST_LOCATION);
// Reset gesture manager statistics
gestureManager.Initialize();
}
// secondDetector has now been deleted. Gesture detection should have been updated only
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UpdateType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::RegisterType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
END_TEST;
}
示例4: UtcDaliTapGestureSetTapsRequired
int UtcDaliTapGestureSetTapsRequired(void)
{
TestApplication application;
TapGestureDetector detector = TapGestureDetector::New();
const unsigned int minTaps = 3;
const unsigned int maxTaps = 7;
DALI_TEST_CHECK( minTaps != detector.GetMinimumTapsRequired() );
DALI_TEST_CHECK( maxTaps != detector.GetMaximumTapsRequired() );
detector.SetMinimumTapsRequired( minTaps );
detector.SetMaximumTapsRequired( maxTaps );
DALI_TEST_EQUALS( minTaps, detector.GetMinimumTapsRequired(), TEST_LOCATION );
DALI_TEST_EQUALS( maxTaps, detector.GetMaximumTapsRequired(), TEST_LOCATION );
// Attach an actor and change the required touches
Actor actor = Actor::New();
actor.SetSize(100.0f, 100.0f);
actor.SetAnchorPoint(AnchorPoint::TOP_LEFT);
Stage::GetCurrent().Add(actor);
// Render and notify
application.SendNotification();
application.Render();
SignalData data;
GestureReceivedFunctor functor(data);
detector.Attach(actor);
detector.DetectedSignal().Connect( &application, functor );
// Ensure signal is emitted if minimum taps received
application.ProcessEvent(GenerateTap(Gesture::Possible, minTaps, 1u, Vector2(50.0f, 50.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, minTaps, 1u, Vector2(50.0f, 50.0f)));
DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
DALI_TEST_EQUALS( minTaps, data.receivedGesture.numberOfTaps, TEST_LOCATION );
data.Reset();
// Ensure signal is emitted if maximum taps received
application.ProcessEvent(GenerateTap(Gesture::Possible, maxTaps, 1u, Vector2(50.0f, 50.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, maxTaps, 1u, Vector2(50.0f, 50.0f)));
DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
DALI_TEST_EQUALS( maxTaps, data.receivedGesture.numberOfTaps, TEST_LOCATION );
data.Reset();
// Ensure signal is NOT emitted if outside the range
application.ProcessEvent(GenerateTap(Gesture::Possible, minTaps - 1, 1u, Vector2(50.0f, 50.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, minTaps - 1, 1u, Vector2(50.0f, 50.0f)));
DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
data.Reset();
application.ProcessEvent(GenerateTap(Gesture::Possible, maxTaps + 1, 1u, Vector2(50.0f, 50.0f)));
application.ProcessEvent(GenerateTap(Gesture::Started, maxTaps + 1, 1u, Vector2(50.0f, 50.0f)));
DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
data.Reset();
TestGestureManager& gestureManager = application.GetGestureManager();
gestureManager.Initialize();
detector.SetMinimumTapsRequired(4);
// Gesture detection should have been updated only
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UpdateType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::RegisterType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
// Reset values
gestureManager.Initialize();
detector.SetMaximumTapsRequired(maxTaps);
// Gesture detection should NOT have been updated
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UpdateType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::RegisterType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
// Reset values
gestureManager.Initialize();
// Create a second gesture detector that requires even less maximum touches
TapGestureDetector secondDetector = TapGestureDetector::New();
secondDetector.Attach(actor);
// Gesture detection should have been updated
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UpdateType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::RegisterType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
// Reset values
gestureManager.Initialize();
// Delete the second detector so that our detection is updated again
secondDetector.Reset();
DALI_TEST_EQUALS(true, gestureManager.WasCalled(TestGestureManager::UpdateType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::RegisterType), TEST_LOCATION);
DALI_TEST_EQUALS(false, gestureManager.WasCalled(TestGestureManager::UnregisterType), TEST_LOCATION);
//.........这里部分代码省略.........