#include <dali/public-api/adaptor-framework/timer.h>
#include <dali/public-api/actors/image-actor.h>
#include <dali/public-api/actors/layer.h>
-#include <dali/public-api/actors/mesh-actor.h>
+#include <dali/devel-api/actors/mesh-actor.h>
#include <dali/public-api/animation/constraint.h>
#include <dali/public-api/common/constants.h>
#include <dali/public-api/common/stage.h>
#include <dali/public-api/events/tap-gesture.h>
#include <dali/public-api/events/tap-gesture-detector.h>
+#include <dali/public-api/events/touch-event.h>
#include <dali/public-api/events/pan-gesture.h>
#include <dali/public-api/events/pan-gesture-detector.h>
-#include <dali/public-api/geometry/mesh.h>
-#include <dali/public-api/geometry/mesh-data.h>
+#include <dali/devel-api/geometry/mesh.h>
+#include <dali/devel-api/geometry/mesh-data.h>
#include <dali/public-api/images/resource-image.h>
#include <dali/public-api/math/rect.h>
#include <dali/public-api/math/vector2.h>
#include <dali-toolkit/public-api/controls/buttons/push-button.h>
#include <dali-toolkit/public-api/controls/default-controls/solid-color-actor.h>
#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
-#include <dali-toolkit/public-api/controls/text-controls/text-selection-popup.h>
+#include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
#ifdef DEBUG_ENABLED
#define DECORATOR_DEBUG
struct CursorImpl
{
CursorImpl()
- : color( Dali::Color::WHITE ),
+ : color( Dali::Color::BLACK ),
position(),
cursorHeight( 0.0f ),
lineHeight( 0.0f )
grabHandle.grabArea.SetSizeModeFactor( DEFAULT_GRAB_HANDLE_RELATIVE_SIZE );
grabHandle.actor.Add( grabHandle.grabArea );
+ grabHandle.grabArea.TouchedSignal().Connect( this, &Decorator::Impl::OnGrabHandleTouched );
mTapDetector.Attach( grabHandle.grabArea );
mPanGestureDetector.Attach( grabHandle.grabArea );
if( Gesture::Started == gesture.state )
{
handle.grabDisplacementX = handle.grabDisplacementY = 0;
- if( mHandleImages[type][HANDLE_IMAGE_PRESSED] )
- {
- handle.actor.SetImage( mHandleImages[type][HANDLE_IMAGE_PRESSED] );
- }
}
handle.grabDisplacementX += gesture.displacement.x;
mHandleScrolling = type;
StartScrollTimer();
}
- else if( x > mTextControlParent.GetControlSize().width - mScrollThreshold )
+ else if( x > mTextControlParent.Self().GetTargetSize().width - mScrollThreshold )
{
mScrollDirection = SCROLL_LEFT;
mHandleScrolling = type;
}
}
+ bool OnGrabHandleTouched( Actor actor, const TouchEvent& event )
+ {
+ // Switch between pressed/release grab-handle images
+ if( event.GetPointCount() > 0 &&
+ mHandle[GRAB_HANDLE].actor )
+ {
+ const TouchPoint& point = event.GetPoint(0);
+
+ if( TouchPoint::Down == point.state &&
+ mHandleImages[GRAB_HANDLE][HANDLE_IMAGE_PRESSED] )
+ {
+ mHandle[GRAB_HANDLE].actor.SetImage( mHandleImages[GRAB_HANDLE][HANDLE_IMAGE_PRESSED] );
+ }
+ else if( TouchPoint::Up == point.state &&
+ mHandleImages[GRAB_HANDLE][HANDLE_IMAGE_RELEASED] )
+ {
+ mHandle[GRAB_HANDLE].actor.SetImage( mHandleImages[GRAB_HANDLE][HANDLE_IMAGE_RELEASED] );
+ }
+ }
+
+ // Consume to avoid pop-ups accidentally closing, when handle is outside of pop-up area
+ return true;
+ }
+
bool OnHandleOneTouched( Actor actor, const TouchEvent& touch )
{
// TODO
- return false;
+ // Consume to avoid pop-ups accidentally closing, when handle is outside of pop-up area
+ return true;
}
bool OnHandleTwoTouched( Actor actor, const TouchEvent& touch )
{
// TODO
- return false;
+ // Consume to avoid pop-ups accidentally closing, when handle is outside of pop-up area
+ return true;
}
// Popup