#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/buttons/push-button.h>
+#include <dali-toolkit/public-api/controls/default-controls/solid-color-actor.h>
#ifdef DEBUG_ENABLED
#define DECORATOR_DEBUG
const char* DEFAULT_SELECTION_HANDLE_TWO( DALI_IMAGE_DIR "text-input-selection-handle-right.png" );
//const char* DEFAULT_SELECTION_HANDLE_ONE_PRESSED( DALI_IMAGE_DIR "text-input-selection-handle-left-press.png" );
//const char* DEFAULT_SELECTION_HANDLE_TWO_PRESSED( DALI_IMAGE_DIR "text-input-selection-handle-right-press.png" );
-const char* DEFAULT_CURSOR_IMAGE( DALI_IMAGE_DIR "decorator-cursor.png");
const Dali::Vector3 DEFAULT_GRAB_HANDLE_RELATIVE_SIZE( 1.5f, 2.0f, 1.0f );
const Dali::Vector3 DEFAULT_SELECTION_HANDLE_RELATIVE_SIZE( 1.5f, 1.5f, 1.0f );
* Relayout of the decorations owned by the decorator.
* @param[in] size The Size of the UI control the decorater is adding it's decorations to.
*/
- void Relayout( const Vector2& size )
+ void Relayout( const Vector2& size, const Vector2& scrollPosition )
{
// TODO - Remove this if nothing is active
CreateActiveLayer();
CreateCursors();
if( mPrimaryCursor )
{
- mPrimaryCursor.SetPosition( mCursor[PRIMARY_CURSOR].x, mCursor[PRIMARY_CURSOR].y );
+ mPrimaryCursor.SetPosition( mCursor[PRIMARY_CURSOR].x + scrollPosition.x,
+ mCursor[PRIMARY_CURSOR].y + scrollPosition.y );
+ mPrimaryCursor.SetSize( 1.0f, mCursor[PRIMARY_CURSOR].height );
}
if( mSecondaryCursor )
{
- mSecondaryCursor.SetPosition( mCursor[SECONDARY_CURSOR].x, mCursor[SECONDARY_CURSOR].y );
+ mSecondaryCursor.SetPosition( mCursor[SECONDARY_CURSOR].x + scrollPosition.x,
+ mCursor[SECONDARY_CURSOR].y + scrollPosition.y );
+ mSecondaryCursor.SetSize( 1.0f, mCursor[SECONDARY_CURSOR].height );
}
// Show or hide the grab handle
CreateGrabHandle();
- mGrabHandle.SetPosition( mCursor[PRIMARY_CURSOR].x, mCursor[PRIMARY_CURSOR].y + mCursor[PRIMARY_CURSOR].height );
+ mGrabHandle.SetPosition( mCursor[PRIMARY_CURSOR].x + scrollPosition.x,
+ mCursor[PRIMARY_CURSOR].y + scrollPosition.y + mCursor[PRIMARY_CURSOR].height );
}
else if( mGrabHandle )
{
CreateSelectionHandles();
SelectionHandleImpl& primary = mSelectionHandle[ PRIMARY_SELECTION_HANDLE ];
- primary.actor.SetPosition( primary.x, primary.y + primary.cursorHeight );
+ primary.actor.SetPosition( primary.x + scrollPosition.x,
+ primary.y + scrollPosition.y + primary.cursorHeight );
SelectionHandleImpl& secondary = mSelectionHandle[ SECONDARY_SELECTION_HANDLE ];
- secondary.actor.SetPosition( secondary.x, secondary.y + secondary.cursorHeight );
+ secondary.actor.SetPosition( secondary.x + scrollPosition.x,
+ secondary.y + scrollPosition.y + secondary.cursorHeight );
//CreateHighlight(); TODO
}
void CreateCursor( ImageActor& cursor )
{
- if ( !mCursorImage )
- {
- mCursorImage = ResourceImage::New( DEFAULT_CURSOR_IMAGE );
- }
- cursor = ImageActor::New( mCursorImage );
+ cursor = CreateSolidColorActor( Color::WHITE );
+ cursor.SetParentOrigin( ParentOrigin::TOP_LEFT );
cursor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
}
return mImpl->mBoundingBox;
}
-void Decorator::Relayout( const Vector2& size )
+void Decorator::Relayout( const Vector2& size, const Vector2& scrollPosition )
{
- mImpl->Relayout( size );
+ mImpl->Relayout( size, scrollPosition );
}
/** Cursor **/
height = mImpl->mCursor[cursor].height;
}
-void Decorator::SetCursorImage( Dali::Image image )
-{
- mImpl->mCursorImage = image;
-}
-
-Dali::Image Decorator::GetCursorImage() const
-{
- return mImpl->mCursorImage;
-}
-
void Decorator::SetColor( Cursor cursor, const Dali::Vector4& color )
{
mImpl->mCursor[cursor].color = color;