mHorizontalScrollingEnabled( false ),
mVerticalScrollingEnabled( false ),
mSmoothHandlePanEnabled( false ),
- mIsHighlightBoxActive( false )
+ mIsHighlightBoxActive( false ),
+ mHidePrimaryCursorAndGrabHandle( false )
{
mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2;
mHighlightShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
if( mPrimaryCursor )
{
const CursorImpl& cursor = mCursor[PRIMARY_CURSOR];
- mPrimaryCursorVisible = ( ( mControlSize.width - ( cursor.position.x + mCursorWidth ) > -Math::MACHINE_EPSILON_1000 ) &&
+ mPrimaryCursorVisible = (!mHidePrimaryCursorAndGrabHandle) && ( ( mControlSize.width - ( cursor.position.x + mCursorWidth ) > -Math::MACHINE_EPSILON_1000 ) &&
( cursor.position.x > -Math::MACHINE_EPSILON_1000 ) &&
( mControlSize.height - ( cursor.position.y + cursor.cursorHeight ) > -Math::MACHINE_EPSILON_1000 ) &&
( cursor.position.y > -Math::MACHINE_EPSILON_1000 ) );
grabHandle.verticallyVisible = ( ( ( mControlSize.height - grabHandle.lineHeight ) - grabHandle.position.y > -Math::MACHINE_EPSILON_1000 ) &&
( grabHandle.position.y > -Math::MACHINE_EPSILON_1000 ) );
- const bool isVisible = grabHandle.horizontallyVisible && grabHandle.verticallyVisible;
+ const bool isVisible = grabHandle.horizontallyVisible && grabHandle.verticallyVisible && (!mHidePrimaryCursorAndGrabHandle);
if( isVisible )
{
CreateGrabHandle();
{
if( !mActiveLayer )
{
- mActiveLayer = Layer::New();
+ mActiveLayer = Actor::New();
#ifdef DECORATOR_DEBUG
mActiveLayer.SetProperty( Actor::Property::NAME, "ActiveLayerActor" );
#endif
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.
- Layer mActiveLayer; ///< Layer for active handles and alike that ensures they are above all else.
+ Actor mActiveLayer; ///< Actor for active handles and alike that ensures they are above all else.
PropertyNotification mHandleVerticalLessThanNotification; ///< Notifies when the 'y' coord of the active layer is less than a given value.
PropertyNotification mHandleVerticalGreaterThanNotification; ///< Notifies when the 'y' coord of the active layer is grater than a given value.
PropertyNotification mHandleHorizontalLessThanNotification; ///< Notifies when the 'x' coord of the active layer is less than a given value.
bool mVerticalScrollingEnabled : 1; ///< Whether the vertical scrolling is enabled.
bool mSmoothHandlePanEnabled : 1; ///< Whether to pan smoothly the handles.
bool mIsHighlightBoxActive : 1; ///< Whether the highlight box is active.
+ bool mHidePrimaryCursorAndGrabHandle : 1; ///< Whether the primary cursor and grab are hidden always.
};
DecoratorPtr Decorator::New( ControllerInterface& controller,
return static_cast<int>( mImpl->mCursorWidth );
}
+void Decorator::SetEditable( bool editable )
+{
+ mImpl->mHidePrimaryCursorAndGrabHandle = !editable;
+ mImpl->Relayout( mImpl->mControlSize );
+}
/** Handles **/
void Decorator::SetHandleActive( HandleType handleType, bool active )