Dali::LayoutDirection::Type layoutDirection = static_cast<Dali::LayoutDirection::Type>( self.GetProperty( Dali::Actor::Property::LAYOUT_DIRECTION ).Get<int>() );
mController->SetLayoutDirection( layoutDirection );
+ self.LayoutDirectionChangedSignal().Connect( this, &TextEditor::OnLayoutDirectionChanged );
+
// Forward input events to controller
EnableGestureDetection( static_cast<Gesture::Type>( Gesture::Tap | Gesture::Pan | Gesture::LongPress ) );
GetTapGestureDetector().SetMaximumTapsRequired( 2 );
self.Add( mStencil );
}
+void TextEditor::OnLayoutDirectionChanged( Dali::Actor actor, Dali::LayoutDirection::Type type )
+{
+ mController->UpdateLayoutDirectionChanged( type );
+}
+
void TextEditor::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor::OnStyleChange\n");
void OnScrollIndicatorAnimationFinished( Animation& animation );
/**
+ * @brief Callbacks when the layout direction changes
+ * @param[in] actor The actor whose layoutDirection is changed.
+ * @param[in] type The layoutDirection.
+ */
+ void OnLayoutDirectionChanged( Dali::Actor actor, Dali::LayoutDirection::Type type );
+
+ /**
* Construct a new TextEditor.
*/
TextEditor();
Dali::LayoutDirection::Type layoutDirection = static_cast<Dali::LayoutDirection::Type>( self.GetProperty( Dali::Actor::Property::LAYOUT_DIRECTION ).Get<int>() );
mController->SetLayoutDirection( layoutDirection );
+ self.LayoutDirectionChangedSignal().Connect( this, &TextField::OnLayoutDirectionChanged );
+
// Forward input events to controller
EnableGestureDetection( static_cast<Gesture::Type>( Gesture::Tap | Gesture::Pan | Gesture::LongPress ) );
GetTapGestureDetector().SetMaximumTapsRequired( 2 );
}
}
+void TextField::OnLayoutDirectionChanged( Dali::Actor actor, Dali::LayoutDirection::Type type )
+{
+ mController->UpdateLayoutDirectionChanged( type );
+}
+
void TextField::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::OnStyleChange\n");
void OnIdleSignal();
/**
+ * @brief Callbacks when the layout direction changes
+ * @param[in] actor The actor whose layoutDirection is changed.
+ * @param[in] type The layoutDirection.
+ */
+ void OnLayoutDirectionChanged( Dali::Actor actor, Dali::LayoutDirection::Type type );
+
+ /**
* Construct a new TextField.
*/
TextField();
Dali::LayoutDirection::Type layoutDirection = static_cast<Dali::LayoutDirection::Type>( self.GetProperty( Dali::Actor::Property::LAYOUT_DIRECTION ).Get<int>() );
mController->SetLayoutDirection( layoutDirection );
+ self.LayoutDirectionChangedSignal().Connect( this, &TextLabel::OnLayoutDirectionChanged );
+
Layout::Engine& engine = mController->GetLayoutEngine();
engine.SetCursorWidth( 0u ); // Do not layout space for the cursor.
}
+void TextLabel::OnLayoutDirectionChanged( Dali::Actor actor, Dali::LayoutDirection::Type type )
+{
+ mController->UpdateLayoutDirectionChanged( type );
+}
+
void TextLabel::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextLabel::OnStyleChange\n");
*/
virtual void ScrollingFinished();
+ /**
+ * @brief Callbacks when the layout direction changes
+ * @param[in] actor The actor whose layoutDirection is changed.
+ * @param[in] type The layoutDirection.
+ */
+ void OnLayoutDirectionChanged( Dali::Actor actor, Dali::LayoutDirection::Type type );
+
private: // Implementation
/**
return mImpl->mShouldClearFocusOnEscape;
}
+void Controller::UpdateLayoutDirectionChanged( Dali::LayoutDirection::Type type )
+{
+ mImpl->mLayoutDirection = type;
+ mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending |
+ BIDI_INFO );
+ mImpl->RequestRelayout();
+}
+
// private : Private contructors & copy operator.
Controller::Controller()
*/
bool ShouldClearFocusOnEscape() const;
+ /**
+ * @brief UpdateLayoutDirectionChanged
+ */
+ void UpdateLayoutDirectionChanged( Dali::LayoutDirection::Type type );
+
protected: // Inherit from Text::Decorator::ControllerInterface.
/**