From: Paul Wisbey
Date: Mon, 11 Jul 2016 10:28:47 +0000 (-0700)
Subject: Merge "Updated Gradient renderer to use SetTexture" into devel/master
X-Git-Tag: dali_1.1.43~12
X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=b66d124507442dd6537edd78dcfc4b40e9659d71;hp=36ac338ff7e9c299ce45818d77aa8f71c63a45aa
Merge "Updated Gradient renderer to use SetTexture" into devel/master
---
diff --git a/automated-tests/execute.sh b/automated-tests/execute.sh
index bc108fa..989560f 100755
--- a/automated-tests/execute.sh
+++ b/automated-tests/execute.sh
@@ -138,9 +138,7 @@ else
ret=$?
if [ $ret -ne 6 ] ; then
if [ $opt_debug -ne 0 ] ; then
- if [ $ret -eq 0 ] ; then
- gdb --args build/src/$mod/tct-$mod-core $1
- fi
+ gdb --args build/src/$mod/tct-$mod-core $1
else
echo $output
if [ $ret -eq 0 ] ; then echo -e "\nPassed" ; fi
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AccessibilityManager.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AccessibilityManager.cpp
index 238f67f..6cdb503 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-AccessibilityManager.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-AccessibilityManager.cpp
@@ -1282,6 +1282,16 @@ int UtcDaliAccessibilityManagerActionActivateSignalP(void)
AccessibilityManager manager = AccessibilityManager::Get();
DALI_TEST_CHECK( manager );
+ Dali::AccessibilityAdaptor accAdaptor = Dali::AccessibilityAdaptor::Get();
+ Test::AccessibilityAdaptor::SetEnabled( accAdaptor, true );
+ accAdaptor.HandleActionEnableEvent();
+
+ Dali::Toolkit::PushButton button = Dali::Toolkit::PushButton::New();
+ button.SetSize(480, 800);
+ Stage::GetCurrent().Add(button);
+ manager.SetFocusOrder( button, 1 );
+ manager.SetCurrentFocusActor( button );
+
manager.ActionActivateSignal().Connect( &callback, &AccessibilityManagerSignalHandler::Callback );
Dali::AccessibilityAdaptor accessibilityAdaptor = Dali::AccessibilityAdaptor::Get();
@@ -1530,11 +1540,11 @@ int UtcDaliAccessibilityManagerActionDownSignalP(void)
manager.ActionDownSignal().Connect( &callback, &AccessibilityManagerSignalHandler::Callback );
- DummyControl dummyControl = DummyControl::New(true);
- dummyControl.SetSize(480, 800);
- manager.SetFocusOrder( dummyControl, 1 );
- Stage::GetCurrent().Add( dummyControl );
- manager.SetCurrentFocusActor( dummyControl );
+ Dali::Toolkit::PushButton button = Dali::Toolkit::PushButton::New();
+ button.SetSize(480, 800);
+ Stage::GetCurrent().Add(button);
+ manager.SetFocusOrder( button, 1 );
+ manager.SetCurrentFocusActor( button );
accessibilityAdaptor.HandleActionDownEvent();
@@ -2054,13 +2064,19 @@ int UtcDaliAccessibilityManagerActionZoomSignalP(void)
AccessibilityManagerSignalHandler callback;
+ AccessibilityManager manager = AccessibilityManager::Get();
+ DALI_TEST_CHECK( manager );
+
+ Dali::Toolkit::PushButton button = Dali::Toolkit::PushButton::New();
+ button.SetSize(480, 800);
+ Stage::GetCurrent().Add(button);
+ manager.SetFocusOrder( button, 1 );
+ manager.SetCurrentFocusActor( button );
+
Dali::AccessibilityAdaptor accAdaptor = Dali::AccessibilityAdaptor::Get();
Test::AccessibilityAdaptor::SetEnabled( accAdaptor, true );
accAdaptor.HandleActionEnableEvent();
- AccessibilityManager manager = AccessibilityManager::Get();
- DALI_TEST_CHECK( manager );
-
manager.ActionZoomSignal().Connect( &callback, &AccessibilityManagerSignalHandler::Callback );
Dali::AccessibilityAdaptor accessibilityAdaptor = Dali::AccessibilityAdaptor::Get();
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Builder.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Builder.cpp
index 32946a0..645863e 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-Builder.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-Builder.cpp
@@ -1604,3 +1604,43 @@ int UtcDaliBuilderMappingCycleCheck(void)
END_TEST;
}
+
+int UtcDaliBuilderTypeCasts(void)
+{
+ ToolkitTestApplication application;
+
+ std::string json(
+ "{"
+ "\"stage\":"
+ "[{"
+ "\"type\": \"Layer\","
+ "\"maximumSize\": { \"typeCast\":\"vector2\", \"value\":[100,15] },"
+ "\"position\": { \"typeCast\":\"vector3\", \"value\":[100,10,1] },"
+ "\"color\": { \"typeCast\":\"vector4\", \"value\":[0.5,0.5,0.5,1] },"
+ "\"sensitive\": { \"typeCast\":\"boolean\", \"value\":false },"
+ "\"orientation\": { \"typeCast\":\"rotation\", \"value\":[10,10,10,10] },"
+ "\"colorMode\": { \"typeCast\":\"string\", \"value\":\"USE_OWN_MULTIPLY_PARENT_COLOR\" },"
+ "\"clippingBox\": { \"typeCast\":\"rect\", \"value\":[10,10,10,10] }"
+ "}]"
+ "}"
+ );
+
+ Actor rootActor = Actor::New();
+ Stage::GetCurrent().Add( rootActor );
+
+ Builder builder = Builder::New();
+ builder.LoadFromString( json );
+ builder.AddActors( rootActor );
+
+ application.SendNotification();
+ application.Render();
+
+ Actor createdActor = rootActor.GetChildAt( 0 );
+ DALI_TEST_EQUALS( createdActor.GetMaximumSize(), Vector2(100.0f,15.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS( createdActor.GetCurrentPosition(), Vector3(100.0f,10.0f,1.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS( createdActor.GetCurrentColor(), Vector4(0.5f,0.5f,0.5f,1.0f), TEST_LOCATION );
+ DALI_TEST_EQUALS( createdActor.IsSensitive(), false, TEST_LOCATION );
+ DALI_TEST_EQUALS( createdActor.GetColorMode(), USE_OWN_MULTIPLY_PARENT_COLOR, TEST_LOCATION );
+
+ END_TEST;
+}
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ItemView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ItemView.cpp
index b1fd832..8be97fe 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-ItemView.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-ItemView.cpp
@@ -22,8 +22,10 @@
// Need to override adaptor classes for toolkit test harness, so include
// test harness headers before dali headers.
#include
-
#include
+#include
+#include
+
using namespace Dali;
using namespace Toolkit;
@@ -59,6 +61,48 @@ static void OnLayoutActivated()
gOnLayoutActivatedCalled = true;
}
+// Generate a PanGestureEvent to send to Core
+Integration::PanGestureEvent GeneratePan(
+ Gesture::State state,
+ const Vector2& previousPosition,
+ const Vector2& currentPosition,
+ unsigned long timeDelta,
+ unsigned int numberOfTouches = 1)
+{
+ Integration::PanGestureEvent pan(state);
+
+ pan.previousPosition = previousPosition;
+ pan.currentPosition = currentPosition;
+ pan.timeDelta = timeDelta;
+ pan.numberOfTouches = numberOfTouches;
+
+ return pan;
+}
+
+/**
+ * Helper to generate PanGestureEvent
+ *
+ * @param[in] application Application instance
+ * @param[in] state The Gesture State
+ * @param[in] pos The current position of touch.
+ */
+static void SendPan(ToolkitTestApplication& application, Gesture::State state, const Vector2& pos)
+{
+ static Vector2 last;
+
+ if( (state == Gesture::Started) ||
+ (state == Gesture::Possible) )
+ {
+ last.x = pos.x;
+ last.y = pos.y;
+ }
+
+ application.ProcessEvent(GeneratePan(state, last, pos, RENDER_FRAME_INTERVAL));
+
+ last.x = pos.x;
+ last.y = pos.y;
+}
+
/*
* Simulate time passed by.
*
@@ -926,3 +970,126 @@ int UtcDaliItemViewSetGetProperty(void)
END_TEST;
}
+
+int UtcDaliItemViewOvershootVertical(void)
+{
+ ToolkitTestApplication application;
+ Dali::Stage stage = Dali::Stage::GetCurrent();
+
+ // Create the ItemView actor
+ TestItemFactory factory;
+ ItemView view = ItemView::New(factory);
+
+ // Create a grid layout and add it to ItemView
+ ItemLayoutPtr gridLayout = DefaultItemLayout::New( DefaultItemLayout::GRID );
+ view.AddLayout(*gridLayout);
+ stage.Add(view);
+
+ // Activate the grid layout so that the items will be created and added to ItemView
+ Vector3 stageSize(stage.GetSize());
+ view.ActivateLayout(0, stageSize, 0.5f);
+
+ view.SetProperty( Scrollable::Property::OVERSHOOT_ENABLED, true );
+ DALI_TEST_EQUALS( view.GetProperty(Scrollable::Property::OVERSHOOT_ENABLED).Get(), true, TEST_LOCATION );
+
+ view.SetProperty( Scrollable::Property::OVERSHOOT_SIZE, Vector2(30, 30) );
+
+ Wait(application);
+
+ // Do a pan starting from 100,100 and moving down
+ Vector2 pos(100.0f, 100.0f);
+ SendPan(application, Gesture::Possible, pos);
+ SendPan(application, Gesture::Started, pos);
+ pos.y += 5.0f;
+ Wait(application, 100);
+
+ for(int i = 0;i<200;i++)
+ {
+ SendPan(application, Gesture::Continuing, pos);
+ pos.y += 5.0f;
+ Wait(application);
+ }
+
+ SendPan(application, Gesture::Finished, pos);
+ Wait(application, 100);
+
+ // Do a pan starting from 100,100 and moving up
+ pos = Vector2(100.0f, 300.0f);
+ SendPan(application, Gesture::Possible, pos);
+ SendPan(application, Gesture::Started, pos);
+ pos.y -= 5.0f;
+ Wait(application, 100);
+
+ for(int i = 0;i<200;i++)
+ {
+ SendPan(application, Gesture::Continuing, pos);
+ pos.y -= 5.0f;
+ Wait(application);
+ }
+
+ SendPan(application, Gesture::Finished, pos);
+ Wait(application, 100);
+ END_TEST;
+}
+
+int UtcDaliItemViewOvershootHorizontal(void)
+{
+ ToolkitTestApplication application;
+ Dali::Stage stage = Dali::Stage::GetCurrent();
+
+ // Create the ItemView actor
+ TestItemFactory factory;
+ ItemView view = ItemView::New(factory);
+
+ // Create a grid layout and add it to ItemView
+ ItemLayoutPtr gridLayout = DefaultItemLayout::New( DefaultItemLayout::SPIRAL );
+ view.AddLayout(*gridLayout);
+ stage.Add(view);
+
+ // Activate the grid layout so that the items will be created and added to ItemView
+ Vector3 stageSize(stage.GetSize());
+ view.ActivateLayout(0, stageSize, 0.5f);
+
+ view.SetProperty( Scrollable::Property::OVERSHOOT_ENABLED, true );
+ DALI_TEST_EQUALS( view.GetProperty(Scrollable::Property::OVERSHOOT_ENABLED).Get(), true, TEST_LOCATION );
+
+ view.SetProperty( Scrollable::Property::OVERSHOOT_SIZE, Vector2(30, 30) );
+
+ Wait(application);
+
+ // Do a pan starting from 100,100 and moving left
+ Vector2 pos(100.0f, 100.0f);
+ SendPan(application, Gesture::Possible, pos);
+ SendPan(application, Gesture::Started, pos);
+ pos.x -= 5.0f;
+ Wait(application, 100);
+
+ for(int i = 0;i<200;i++)
+ {
+ SendPan(application, Gesture::Continuing, pos);
+ pos.x -= 5.0f;
+ Wait(application);
+ }
+
+ SendPan(application, Gesture::Finished, pos);
+ Wait(application, 100);
+
+ // Do a pan starting from 100,100 and moving right
+ pos = Vector2(100.0f, 100.0f);
+ SendPan(application, Gesture::Possible, pos);
+ SendPan(application, Gesture::Started, pos);
+ pos.x += 5.0f;
+ Wait(application, 100);
+
+ for(int i = 0;i<200;i++)
+ {
+ SendPan(application, Gesture::Continuing, pos);
+ pos.x += 5.0f;
+ Wait(application);
+ }
+
+ SendPan(application, Gesture::Finished, pos);
+ Wait(application, 100);
+
+ END_TEST;
+}
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp
index ee941cc..3b4038e 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-ScrollView.cpp
@@ -44,10 +44,24 @@ static void TestCallback(BaseHandle handle)
gObjectCreatedCallBackCalled = true;
}
+struct CallbackFunctor
+{
+ CallbackFunctor(bool* callbackFlag)
+ : mCallbackFlag( callbackFlag )
+ {
+ }
+
+ void operator()()
+ {
+ *mCallbackFlag = true;
+ }
+ bool* mCallbackFlag;
+};
const int MILLISECONDS_PER_SECOND = 1000;
const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS)
const int RENDER_ANIMATION_TEST_DURATION_MS = 1000; ///< 1000ms to test animation
+
const int RENDER_DELAY_SCROLL = 1000; ///< duration to wait for any scroll to complete.
// For Clamp Signal testing...
@@ -311,10 +325,10 @@ int UtcDaliScrollViewDestructorP(void)
END_TEST;
}
-int UtcDaliToolkitScrollViewNewP(void)
+int UtcDaliToolkitScrollViewNewP1(void)
{
ToolkitTestApplication application;
- tet_infoline(" UtcDaliToolkitScrollViewNewP");
+ tet_infoline(" UtcDaliToolkitScrollViewNewP1");
ScrollView scrollView;
@@ -341,6 +355,25 @@ int UtcDaliToolkitScrollViewNewP(void)
END_TEST;
}
+int UtcDaliToolkitScrollViewNewP2(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliToolkitScrollViewNewP2 - create thru type registry");
+
+ ScrollView scrollView;
+ DALI_TEST_CHECK( !scrollView );
+
+ TypeRegistry typeRegistry = TypeRegistry::Get();
+ TypeInfo scrollViewType = typeRegistry.GetTypeInfo("ScrollView");
+ BaseHandle handle = scrollViewType.CreateInstance();
+ DALI_TEST_CHECK( handle );
+
+ scrollView = ScrollView::DownCast(handle);
+ DALI_TEST_CHECK( scrollView );
+
+ END_TEST;
+}
+
int UtcDaliToolkitScrollViewDownCastP(void)
{
ToolkitTestApplication application;
@@ -394,6 +427,9 @@ int UtcDaliToolkitScrollViewScrollToPositionWithDirectionBiasP(void)
scrollView.SetWrapMode(true);
+ Property::Value wrapMode = scrollView.GetProperty( Toolkit::ScrollView::Property::WRAP_ENABLED );
+ DALI_TEST_EQUALS( wrapMode.Get(), true, TEST_LOCATION );
+
const Vector2 target = Vector2(50.0f, 50.0f);
const Vector2 target2 = Vector2(150.0f, 150.0f);
@@ -785,7 +821,7 @@ int UtcDaliToolkitScrollViewSignalsStartComplete(void)
END_TEST;
}
-int UtcDaliToolkitScrollViewSignalsUpdate(void)
+int UtcDaliToolkitScrollViewSignalsUpdate01(void)
{
ToolkitTestApplication application;
tet_infoline(" UtcDaliToolkitScrollViewSignalsUpdate");
@@ -845,6 +881,73 @@ int UtcDaliToolkitScrollViewSignalsUpdate(void)
END_TEST;
}
+int UtcDaliToolkitScrollViewSignalsUpdate02(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliToolkitScrollViewSignalsUpdate");
+
+ gOnScrollStartCalled = false;
+ gOnScrollUpdateCalled = false;
+ gOnScrollCompleteCalled = false;
+
+ ScrollView scrollView = ScrollView::New();
+ Stage::GetCurrent().Add( scrollView );
+ Vector2 stageSize = Stage::GetCurrent().GetSize();
+ scrollView.SetSize(stageSize);
+ scrollView.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ scrollView.SetAnchorPoint(AnchorPoint::TOP_LEFT);
+
+ // Position rulers.
+ RulerPtr rulerX = new DefaultRuler();
+ RulerPtr rulerY = new DefaultRuler();
+ rulerX->SetDomain( RulerDomain(0.0f, 1000.0f, false) );
+ rulerY->SetDomain( RulerDomain(0.0f, 1000.0f, false) );
+ scrollView.SetRulerX(rulerX);
+ scrollView.SetRulerY(rulerY);
+ Dali::ConnectionTracker tracker;
+ bool scrollStarted=false;
+ bool scrollUpdated=false;
+ bool scrollCompleted=false;
+ DALI_TEST_CHECK(scrollView.ConnectSignal( &tracker, "scrollStarted", CallbackFunctor(&scrollStarted) ));
+ DALI_TEST_CHECK(scrollView.ConnectSignal( &tracker, "scrollUpdated", CallbackFunctor(&scrollUpdated) ));
+ DALI_TEST_CHECK(scrollView.ConnectSignal( &tracker, "scrollCompleted", CallbackFunctor(&scrollCompleted) ));
+
+ Actor image = Actor::New();
+ image.SetSize(stageSize);
+ image.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ image.SetAnchorPoint(AnchorPoint::TOP_LEFT);
+ scrollView.Add(image);
+
+ Wait(application);
+
+ // Do a pan starting from 100,100 and moving down diagonally.
+ Vector2 pos(100.0f, 100.0f);
+ SendPan(application, Gesture::Possible, pos);
+ SendPan(application, Gesture::Started, pos);
+ pos.x += 5.0f;
+ pos.y += 5.0f;
+ Wait(application, 100);
+
+ for(int i = 0;i<20;i++)
+ {
+ SendPan(application, Gesture::Continuing, pos);
+ pos.x += 5.0f;
+ pos.y += 5.0f;
+ Wait(application);
+ }
+
+ SendPan(application, Gesture::Finished, pos);
+ Wait(application, RENDER_DELAY_SCROLL);
+
+ DALI_TEST_CHECK(scrollStarted);
+ DALI_TEST_CHECK(scrollUpdated);
+ DALI_TEST_CHECK(scrollCompleted);
+
+ Stage::GetCurrent().Remove( scrollView );
+
+ END_TEST;
+}
+
static Vector2 PerformGestureDiagonalSwipe(ToolkitTestApplication& application, Vector2 start, Vector2 direction, int frames, bool finish = true)
{
gOnScrollStartCalled = false;
@@ -2285,6 +2388,9 @@ int UtcDaliToolkitScrollViewConstraintsWrap(void)
Wait(application, RENDER_DELAY_SCROLL);
DALI_TEST_EQUALS( scrollView.GetCurrentScrollPosition(), target2, TEST_LOCATION );
+ scrollView.Remove(a);
+ Wait(application);
+
END_TEST;
}
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp
index 8a1f1a0..717b5cf 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-ScrollViewEffect.cpp
@@ -320,4 +320,3 @@ int UtcDaliScrollViewPagePathEffectTest(void)
CleanupTest();
END_TEST;
}
-
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Slider.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Slider.cpp
index 1ec25ce..fcfc821 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-Slider.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-Slider.cpp
@@ -101,20 +101,27 @@ int UtcDaliSliderDownCast(void)
END_TEST;
}
-static bool gSliderValueChangedCallBackCalled;
+static bool gSliderValueChangedCallBackCalled=false;
static bool OnSliderValueChanged( Slider slider, float value )
{
gSliderValueChangedCallBackCalled = true;
return true;
}
-static bool gSliderMarkCallBackCalled;
+static bool gSliderMarkCallBackCalled=false;
static bool OnSliderMark( Slider slider, int value )
{
gSliderMarkCallBackCalled = true;
return true;
}
+static bool gSliderSlidingFinishedCallBackCalled=false;
+static bool OnSlidingFinished( Slider slider, float value )
+{
+ gSliderSlidingFinishedCallBackCalled = true;
+ return true;
+}
+
int UtcDaliSliderSignals1(void)
{
ToolkitTestApplication application; // Exceptions require ToolkitTestApplication
@@ -141,42 +148,55 @@ int UtcDaliSliderSignals1(void)
slider.ValueChangedSignal().Connect( &OnSliderValueChanged );
slider.MarkReachedSignal().Connect( &OnSliderMark );
+ slider.SlidingFinishedSignal().Connect( &OnSlidingFinished );
application.SendNotification();
application.Render();
gSliderValueChangedCallBackCalled = false;
gSliderMarkCallBackCalled = false;
+ gSliderSlidingFinishedCallBackCalled = false;
- Dali::Integration::TouchEvent event;
-
- event = Dali::Integration::TouchEvent();
-
- Integration::Point pointDown;
- pointDown.SetState( PointState::DOWN );
- pointDown.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
- event.AddPoint( pointDown );
+ {
+ Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent();
+ Integration::Point pointDown;
+ pointDown.SetState( PointState::DOWN );
+ pointDown.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
+ event.AddPoint( pointDown );
+
+ application.ProcessEvent( event );
+ application.SendNotification();
+ application.Render();
+ }
for( int i = 0; i < 5; ++i )
{
+ Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent();
Integration::Point pointMotion;
pointMotion.SetState( PointState::MOTION );
pointMotion.SetScreenPosition( Vector2( 10.0f + i * 10.0f, 10.0f ) );
event.AddPoint( pointMotion );
- }
-
- Integration::Point pointUp;
- pointUp.SetState( PointState::UP );
- pointUp.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
- event.AddPoint( pointUp );
- application.ProcessEvent( event );
+ application.ProcessEvent( event );
+ application.SendNotification();
+ application.Render();
+ }
- application.SendNotification();
- application.Render();
+ {
+ Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent();
+ Integration::Point pointUp;
+ pointUp.SetState( PointState::UP );
+ pointUp.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
+ event.AddPoint( pointUp );
+
+ application.ProcessEvent( event );
+ application.SendNotification();
+ application.Render();
+ }
DALI_TEST_CHECK(gSliderValueChangedCallBackCalled);
DALI_TEST_CHECK(gSliderMarkCallBackCalled);
+ DALI_TEST_CHECK(gSliderSlidingFinishedCallBackCalled);
END_TEST;
}
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
index 65fa82e..d10e397 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-TextField.cpp
@@ -20,6 +20,8 @@
#include
#include
#include
+#include
+#include
#include
#include
@@ -94,6 +96,8 @@ const Vector4 PLACEHOLDER_TEXT_COLOR( 0.8f, 0.8f, 0.8f, 0.8f );
const Dali::Vector4 LIGHT_BLUE( 0.75f, 0.96f, 1.f, 1.f ); // The text highlight color.
const unsigned int CURSOR_BLINK_INTERVAL = 500u; // Cursor blink interval
+const float RENDER_FRAME_INTERVAL = 16.66f;
+
const float TO_MILLISECONDS = 1000.f;
const float TO_SECONDS = 1.f / TO_MILLISECONDS;
@@ -103,6 +107,105 @@ const float SCROLL_SPEED = 300.f;
static bool gTextChangedCallBackCalled;
static bool gMaxCharactersCallBackCalled;
+static void LoadBitmapResource(TestPlatformAbstraction& platform, int width, int height)
+{
+ Integration::ResourceRequest* request = platform.GetRequest();
+ Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD );
+ Integration::ResourcePointer resource(bitmap);
+ bitmap->GetPackedPixelsProfile()->ReserveBuffer(Pixel::RGBA8888, width, height, width, height);
+
+ if(request)
+ {
+ platform.SetResourceLoaded(request->GetId(), request->GetType()->id, resource);
+ }
+}
+
+static void LoadMarkerImages(ToolkitTestApplication& app, TextField textField)
+{
+ int width(40);
+ int height(40);
+ LoadBitmapResource( app.GetPlatform(), width, height );
+
+ Property::Map propertyMap;
+ propertyMap["filename"] = "image.png";
+ propertyMap["width"] = width;
+ propertyMap["height"] = height;
+ textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_LEFT, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_IMAGE_RIGHT, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_LEFT, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_PRESSED_IMAGE_RIGHT, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_LEFT, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::SELECTION_HANDLE_MARKER_IMAGE_RIGHT, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::GRAB_HANDLE_IMAGE, propertyMap );
+ textField.SetProperty( Toolkit::TextField::Property::GRAB_HANDLE_PRESSED_IMAGE, propertyMap );
+}
+
+// Generate a PanGestureEvent to send to Core
+static Integration::PanGestureEvent GeneratePan(
+ Gesture::State state,
+ const Vector2& previousPosition,
+ const Vector2& currentPosition,
+ unsigned long timeDelta,
+ unsigned int numberOfTouches = 1)
+{
+ Integration::PanGestureEvent pan(state);
+
+ pan.previousPosition = previousPosition;
+ pan.currentPosition = currentPosition;
+ pan.timeDelta = timeDelta;
+ pan.numberOfTouches = numberOfTouches;
+
+ return pan;
+}
+
+/**
+ * Helper to generate PanGestureEvent
+ *
+ * @param[in] application Application instance
+ * @param[in] state The Gesture State
+ * @param[in] pos The current position of touch.
+ */
+static void SendPan(ToolkitTestApplication& application, Gesture::State state, const Vector2& pos)
+{
+ static Vector2 last;
+
+ if( (state == Gesture::Started) ||
+ (state == Gesture::Possible) )
+ {
+ last.x = pos.x;
+ last.y = pos.y;
+ }
+
+ application.ProcessEvent(GeneratePan(state, last, pos, 16));
+
+ last.x = pos.x;
+ last.y = pos.y;
+}
+
+/*
+ * Simulate time passed by.
+ *
+ * @note this will always process at least 1 frame (1/60 sec)
+ *
+ * @param application Test application instance
+ * @param duration Time to pass in milliseconds.
+ * @return The actual time passed in milliseconds
+ */
+static int Wait(ToolkitTestApplication& application, int duration = 0)
+{
+ int time = 0;
+
+ for(int i = 0; i <= ( duration / RENDER_FRAME_INTERVAL); i++)
+ {
+ application.SendNotification();
+ application.Render(RENDER_FRAME_INTERVAL);
+ time += RENDER_FRAME_INTERVAL;
+ }
+
+ return time;
+}
+
+
static void TestTextChangedCallback( TextField control )
{
tet_infoline(" TestTextChangedCallback");
@@ -693,6 +796,7 @@ int utcDaliTextFieldEvent02(void)
TextField field = TextField::New();
field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
DALI_TEST_CHECK( field );
+ LoadMarkerImages(application, field);
Stage::GetCurrent().Add( field );
@@ -844,6 +948,7 @@ int utcDaliTextFieldEvent03(void)
// Avoid a crash when core load gl resources.
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+ LoadMarkerImages(application, field);
// Render and notify
application.SendNotification();
@@ -880,3 +985,132 @@ int utcDaliTextFieldEvent03(void)
END_TEST;
}
+
+int utcDaliTextFieldEvent04(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" utcDaliTextFieldEvent04");
+
+ // Checks if the highlight actor is created.
+
+ TextField field = TextField::New();
+ DALI_TEST_CHECK( field );
+ Stage::GetCurrent().Add( field );
+ LoadMarkerImages(application, field);
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
+ field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
+ field.SetSize( 300.f, 50.f );
+ field.SetParentOrigin( ParentOrigin::TOP_LEFT );
+ field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+
+ // Avoid a crash when core load gl resources.
+ application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Create a tap event to touch the text field.
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+
+ // Tap first to get the focus.
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 1.f, 25.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 1.f, 25.0f ) ) );
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Double tap to select a word.
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 1.f, 25.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 1.f, 25.0f ) ) );
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Tap grab handle
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 0.f, 40.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 0.f, 40.0f ) ) );
+ END_TEST;
+}
+
+int utcDaliTextFieldEvent05(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" utcDaliTextFieldEvent05");
+
+ // Checks if the highlight actor is created.
+
+ TextField field = TextField::New();
+ DALI_TEST_CHECK( field );
+ Stage::GetCurrent().Add( field );
+ LoadMarkerImages(application, field);
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
+ field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
+ field.SetSize( 300.f, 50.f );
+ field.SetParentOrigin( ParentOrigin::TOP_LEFT );
+ field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+
+ // Avoid a crash when core load gl resources.
+ application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Create a tap event to touch the text field.
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+
+ // Tap first to get the focus.
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 1.f, 25.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 1.f, 25.0f ) ) );
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // Double tap to select a word.
+ application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 1.f, 25.0f ) ) );
+ application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 1.f, 25.0f ) ) );
+
+ // Render and notify
+ application.SendNotification();
+ application.Render();
+
+ // drag grab handle right
+ Vector2 pos(0.0f, 40.0f);
+ SendPan(application, Gesture::Possible, pos);
+ SendPan(application, Gesture::Started, pos);
+ pos.x += 5.0f;
+ Wait(application, 100);
+
+ for(int i = 0;i<20;i++)
+ {
+ SendPan(application, Gesture::Continuing, pos);
+ pos.x += 5.0f;
+ Wait(application);
+ }
+
+ SendPan(application, Gesture::Finished, pos);
+ Wait(application, RENDER_FRAME_INTERVAL);
+
+ Actor offscreenRoot = field.GetChildAt( 1u );
+ END_TEST;
+}
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopup.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopup.cpp
index f6f9730..2cee1b5 100644
--- a/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopup.cpp
+++ b/automated-tests/src/dali-toolkit/utc-Dali-TextSelectionPopup.cpp
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
using namespace Dali;
using namespace Toolkit;
@@ -105,3 +106,37 @@ int UtcDaliToolkitTextSelectionPopupDownCastP(void)
END_TEST;
}
+
+// TextSelectionToolBar is used TextSelectionPopup, below tests it individually
+
+int UtcDaliToolkitTextSelectionToolBarP(void)
+{
+
+ // Creates Toolbar, adds 2 options and a divider then resizes divider
+ ToolkitTestApplication application;
+
+ TextSelectionToolbar toolbar = TextSelectionToolbar::New();
+
+ toolbar.SetProperty( Toolkit::TextSelectionToolbar::Property::MAX_SIZE, Size( 100.0f, 60.0f) );
+
+ Toolkit::PushButton option = Toolkit::PushButton::New();
+ option.SetName( "test-option" );
+ option.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+ toolbar.AddOption( option );
+
+ Toolkit::Control divider = Toolkit::Control::New();
+ divider.SetSize( 2.0f, 0.0f );
+ divider.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT );
+ toolbar.AddDivider( divider );
+
+ Toolkit::PushButton option2 = Toolkit::PushButton::New();
+ option2.SetName( "test-option-2" );
+ option2.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+ toolbar.AddOption( option2 );
+
+ Size newSize = Size(3.0f, 0.0f);
+ toolbar.ResizeDividers( newSize );
+
+ DALI_TEST_CHECK( toolbar );
+ END_TEST;
+}
diff --git a/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp b/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp
index 56f1efb..2d75ede 100644
--- a/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp
+++ b/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp
@@ -277,21 +277,6 @@ const char* NRMMAP_FRAGMENT_SHADER = MAKE_SHADER(
using namespace Dali;
-void LookAt(Matrix& result, const Vector3& eye, const Vector3& target, const Vector3& up)
-{
- Vector3 vZ = target - eye;
- vZ.Normalize();
-
- Vector3 vX = up.Cross(vZ);
- vX.Normalize();
-
- Vector3 vY = vZ.Cross(vX);
- vY.Normalize();
-
- result.SetInverseTransformComponents(vX, vY, vZ, eye);
-}
-
-
Model3dView::Model3dView()
: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) )
{
diff --git a/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp b/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp
index 741b057..b7c1e57 100644
--- a/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp
+++ b/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp
@@ -1441,16 +1441,6 @@ void ItemView::CalculateDomainSize(const Vector3& layoutSize)
}
}
-Vector2 ItemView::GetDomainSize() const
-{
- Actor self = Self();
-
- float minScrollPosition = self.GetProperty(Toolkit::Scrollable::Property::SCROLL_POSITION_MIN_Y);
- float maxScrollPosition = self.GetProperty(Toolkit::Scrollable::Property::SCROLL_POSITION_MAX_Y);
-
- return Vector2(0.0f, fabs(GetScrollPosition(minScrollPosition, self.GetCurrentSize()) - GetScrollPosition(-maxScrollPosition, self.GetCurrentSize())));
-}
-
bool ItemView::IsLayoutScrollable(const Vector3& layoutSize)
{
Actor self = Self();
diff --git a/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h b/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h
index d8bbcac..5ae0112 100644
--- a/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h
+++ b/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h
@@ -216,11 +216,6 @@ public:
void ReplaceItems(const ItemContainer& replacementItems, float durationSeconds);
/**
- * @copydoc Toolkit::Scrollable::GetDomainSize
- */
- Vector2 GetDomainSize() const;
-
- /**
* @copydoc Toolkit::Scrollable::GetCurrentScrollPosition
*/
Vector2 GetCurrentScrollPosition() const;
diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp
index 690704d..1d53111 100644
--- a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp
+++ b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp
@@ -1176,19 +1176,6 @@ Vector2 ScrollView::GetCurrentScrollPosition() const
return -GetPropertyPosition();
}
-Vector2 ScrollView::GetDomainSize() const
-{
- Vector3 size = Self().GetCurrentSize();
-
- const RulerDomain& xDomain = GetRulerX()->GetDomain();
- const RulerDomain& yDomain = GetRulerY()->GetDomain();
-
- Vector2 domainSize;
- domainSize.x = xDomain.max - xDomain.min - size.x;
- domainSize.y = yDomain.max - yDomain.min - size.y;
- return domainSize;
-}
-
void ScrollView::TransformTo(const Vector2& position,
DirectionBias horizontalBias, DirectionBias verticalBias)
{
diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h
index 63df8dc..b288720 100644
--- a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h
+++ b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h
@@ -364,11 +364,6 @@ public:
Vector2 GetCurrentScrollPosition() const;
/**
- * @copydoc Toolkit::Scrollable::GetDomainSize
- */
- Vector2 GetDomainSize() const;
-
- /**
* @copydoc ScrollTo(const Vector2&)
*/
void TransformTo(const Vector2& position,
diff --git a/dali-toolkit/internal/controls/scrollable/scrollable-impl.h b/dali-toolkit/internal/controls/scrollable/scrollable-impl.h
index 0d5d045..660606c 100644
--- a/dali-toolkit/internal/controls/scrollable/scrollable-impl.h
+++ b/dali-toolkit/internal/controls/scrollable/scrollable-impl.h
@@ -55,12 +55,6 @@ public:
void SetOvershootEnabled(bool enable);
/**
- * Gets the size of the domain (minimum/maximum extents for each axis to scroll to)
- * @return the domain size
- */
- virtual Vector2 GetDomainSize() const = 0;
-
- /**
* Adds actor as an Overlay to Scrollable
* This method is called by Add-on UI components
* such as scroll bars, page indicators.
diff --git a/dali-toolkit/internal/text/decorator/text-decorator.cpp b/dali-toolkit/internal/text/decorator/text-decorator.cpp
index 74fc924..cc76691 100644
--- a/dali-toolkit/internal/text/decorator/text-decorator.cpp
+++ b/dali-toolkit/internal/text/decorator/text-decorator.cpp
@@ -623,11 +623,18 @@ struct Decorator::Impl : public ConnectionTracker
void SetupGestures()
{
+ // Will consume tap gestures on handles.
mTapDetector = TapGestureDetector::New();
- mTapDetector.DetectedSignal().Connect( this, &Decorator::Impl::OnTap );
- mPanGestureDetector = PanGestureDetector::New();
- mPanGestureDetector.DetectedSignal().Connect( this, &Decorator::Impl::OnPan );
+ // Will consume double tap gestures on handles.
+ mTapDetector.SetMaximumTapsRequired( 2u );
+
+ // Will consume long press gestures on handles.
+ mLongPressDetector = LongPressGestureDetector::New();
+
+ // Detects pan gestures on handles.
+ mPanDetector = PanGestureDetector::New();
+ mPanDetector.DetectedSignal().Connect( this, &Decorator::Impl::OnPan );
}
void CreateActiveLayer()
@@ -695,8 +702,15 @@ struct Decorator::Impl : public ConnectionTracker
grabHandle.actor.SetColor( mHandleColor );
grabHandle.grabArea.TouchSignal().Connect( this, &Decorator::Impl::OnGrabHandleTouched );
- mTapDetector.Attach( grabHandle.grabArea );
- mPanGestureDetector.Attach( grabHandle.grabArea );
+
+ // The grab handle's actor is attached to the tap and long press detectors in order to consume these events.
+ // Note that no callbacks are connected to any signal emitted by the tap and long press detectors.
+ mTapDetector.Attach( grabHandle.actor );
+ mLongPressDetector.Attach( grabHandle.actor );
+
+ // The grab handle's area is attached to the pan detector.
+ // The OnPan() method is connected to the signals emitted by the pan detector.
+ mPanDetector.Attach( grabHandle.grabArea );
mActiveLayer.Add( grabHandle.actor );
}
@@ -755,10 +769,17 @@ struct Decorator::Impl : public ConnectionTracker
primary.grabArea.SetAnchorPoint( AnchorPoint::TOP_CENTER );
primary.grabArea.SetSizeModeFactor( DEFAULT_SELECTION_HANDLE_RELATIVE_SIZE );
- mTapDetector.Attach( primary.grabArea );
- mPanGestureDetector.Attach( primary.grabArea );
primary.grabArea.TouchSignal().Connect( this, &Decorator::Impl::OnHandleOneTouched );
+ // The handle's actor is attached to the tap and long press detectors in order to consume these events.
+ // Note that no callbacks are connected to any signal emitted by the tap and long press detectors.
+ mTapDetector.Attach( primary.actor );
+ mLongPressDetector.Attach( primary.actor );
+
+ // The handle's area is attached to the pan detector.
+ // The OnPan() method is connected to the signals emitted by the pan detector.
+ mPanDetector.Attach( primary.grabArea );
+
primary.actor.Add( primary.grabArea );
CreateHandleMarker( primary, mHandleImages[LEFT_SELECTION_HANDLE_MARKER][HANDLE_IMAGE_RELEASED], LEFT_SELECTION_HANDLE );
@@ -792,10 +813,17 @@ struct Decorator::Impl : public ConnectionTracker
secondary.grabArea.SetAnchorPoint( AnchorPoint::TOP_CENTER );
secondary.grabArea.SetSizeModeFactor( DEFAULT_SELECTION_HANDLE_RELATIVE_SIZE );
- mTapDetector.Attach( secondary.grabArea );
- mPanGestureDetector.Attach( secondary.grabArea );
secondary.grabArea.TouchSignal().Connect( this, &Decorator::Impl::OnHandleTwoTouched );
+ // The handle's actor is attached to the tap and long press detectors in order to consume these events.
+ // Note that no callbacks are connected to any signal emitted by the tap and long press detectors.
+ mTapDetector.Attach( secondary.actor );
+ mLongPressDetector.Attach( secondary.actor );
+
+ // The handle's area is attached to the pan detector.
+ // The OnPan() method is connected to the signals emitted by the pan detector.
+ mPanDetector.Attach( secondary.grabArea );
+
secondary.actor.Add( secondary.grabArea );
CreateHandleMarker( secondary, mHandleImages[RIGHT_SELECTION_HANDLE_MARKER][HANDLE_IMAGE_RELEASED], RIGHT_SELECTION_HANDLE );
@@ -1085,14 +1113,6 @@ struct Decorator::Impl : public ConnectionTracker
}
}
- void OnTap( Actor actor, const TapGesture& tap )
- {
- if( actor == mHandle[GRAB_HANDLE].actor )
- {
- // TODO
- }
- }
-
void DoPan( HandleImpl& handle, HandleType type, const PanGesture& gesture )
{
if( Gesture::Started == gesture.state )
@@ -1637,8 +1657,10 @@ struct Decorator::Impl : public ConnectionTracker
ControllerInterface& mController;
- TapGestureDetector mTapDetector;
- PanGestureDetector mPanGestureDetector;
+ TapGestureDetector mTapDetector;
+ PanGestureDetector mPanDetector;
+ LongPressGestureDetector mLongPressDetector;
+
Timer mCursorBlinkTimer; ///< Timer to signal cursor to blink
Timer mScrollTimer; ///< Timer used to scroll the text when the grab handle is moved close to the edges.
diff --git a/dali-toolkit/public-api/dali-toolkit-version.cpp b/dali-toolkit/public-api/dali-toolkit-version.cpp
index 7d98390..d087913 100644
--- a/dali-toolkit/public-api/dali-toolkit-version.cpp
+++ b/dali-toolkit/public-api/dali-toolkit-version.cpp
@@ -31,7 +31,7 @@ namespace Toolkit
const unsigned int TOOLKIT_MAJOR_VERSION = 1;
const unsigned int TOOLKIT_MINOR_VERSION = 1;
-const unsigned int TOOLKIT_MICRO_VERSION = 41;
+const unsigned int TOOLKIT_MICRO_VERSION = 42;
const char * const TOOLKIT_BUILD_DATE = __DATE__ " " __TIME__;
#ifdef DEBUG_ENABLED
diff --git a/packaging/dali-toolkit.spec b/packaging/dali-toolkit.spec
index 24da6cf..3dae332 100644
--- a/packaging/dali-toolkit.spec
+++ b/packaging/dali-toolkit.spec
@@ -1,6 +1,6 @@
Name: dali-toolkit
Summary: The OpenGLES Canvas Core Library Toolkit
-Version: 1.1.41
+Version: 1.1.42
Release: 1
Group: System/Libraries
License: Apache-2.0 and BSD-2-Clause and MIT
@@ -37,12 +37,6 @@ BuildRequires: dali-adaptor-devel
%define dali_toolkit_profile MOBILE
%endif
-%if 0%{?enable_coverage}
-CXXFLAGS+=" -fprofile-arcs -ftest-coverage --coverage "
-LDFLAGS+=" -fprofile-arcs -ftest-coverage --coverage -lgcov "
-%endif
-
-
%description
The OpenGLES Canvas Core Library Toolkit - a set of controls that provide
user interface functionality.
@@ -88,6 +82,11 @@ PREFIX="/usr"
CXXFLAGS+=" -Wall -g -Os -fPIC -fvisibility-inlines-hidden -fdata-sections -ffunction-sections "
LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -Wl,--gc-sections -Wl,-Bsymbolic-functions "
+%if 0%{?enable_coverage}
+CXXFLAGS+=" --coverage "
+LDFLAGS+=" --coverage "
+%endif
+
libtoolize --force
cd %{_builddir}/dali-toolkit-%{version}/build/tizen
autoreconf --install