DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "strikethrough", MAP, STRIKETHROUGH )
DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "inputStrikethrough", MAP, INPUT_STRIKETHROUGH )
DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "characterSpacing", FLOAT, CHARACTER_SPACING )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "selectionPopupStyle", MAP, SELECTION_POPUP_STYLE )
DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "textChanged", SIGNAL_TEXT_CHANGED )
DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED )
} // namespace
-Toolkit::TextField TextField::New()
+Toolkit::TextField TextField::New(ControlBehaviour additionalBehaviour)
{
// Create the implementation, temporarily owned by this handle on stack
- IntrusivePtr<TextField> impl = new TextField();
+ IntrusivePtr<TextField> impl = new TextField(additionalBehaviour);
// Pass ownership to CustomActor handle
Toolkit::TextField handle(*impl);
mController->AnchorEvent(localPoint.x - padding.start, localPoint.y - padding.top);
Dali::Toolkit::KeyboardFocusManager keyboardFocusManager = Dali::Toolkit::KeyboardFocusManager::Get();
- if (keyboardFocusManager)
+ if(keyboardFocusManager)
{
keyboardFocusManager.SetCurrentFocusActor(Self());
}
void TextField::OnPan(const PanGesture& gesture)
{
mController->PanEvent(gesture.GetState(), gesture.GetDisplacement());
+ if(gesture.GetState() == GestureState::STARTED && !mController->IsScrollable(gesture.GetDisplacement()))
+ {
+ Dali::DevelActor::SetNeedGesturePropagation(Self(), true);
+ }
}
void TextField::OnLongPress(const LongPressGesture& gesture)
if(event.GetState() == KeyEvent::UP)
{
Dali::Toolkit::KeyboardFocusManager keyboardFocusManager = Dali::Toolkit::KeyboardFocusManager::Get();
- if (keyboardFocusManager)
+ if(keyboardFocusManager)
{
keyboardFocusManager.ClearFocus();
}
mIdleCallback = NULL;
}
-TextField::TextField()
-: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT)),
+TextField::TextField(ControlBehaviour additionalBehaviour)
+: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT | additionalBehaviour)),
mIdleCallback(NULL),
mAlignmentOffset(0.f),
mRenderingBackend(DEFAULT_RENDERING_BACKEND),
return mController->GetTextPosition(startIndex, endIndex);
}
+Rect<float> TextField::GetLineBoundingRectangle(const uint32_t lineIndex) const
+{
+ return mController->GetLineBoundingRectangle(lineIndex);
+}
+
+Rect<float> TextField::GetCharacterBoundingRectangle(const uint32_t charIndex) const
+{
+ return mController->GetCharacterBoundingRectangle(charIndex);
+}
+
+int TextField::GetCharacterIndexAtPosition(float visualX, float visualY) const
+{
+ return mController->GetCharacterIndexAtPosition(visualX, visualY);
+}
+
+void TextField::SetSpannedText(const Text::Spanned& spannedText)
+{
+ mController->SetSpannedText(spannedText);
+}
+
std::string TextField::TextFieldAccessible::GetName() const
{
if(IsHiddenInput())