DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "fontSizeScale", FLOAT, FONT_SIZE_SCALE )
DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "primaryCursorPosition", INTEGER, PRIMARY_CURSOR_POSITION )
DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "grabHandleColor", VECTOR4, GRAB_HANDLE_COLOR )
+DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextField, "inputFilter", MAP, INPUT_FILTER )
DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "textChanged", SIGNAL_TEXT_CHANGED )
DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED )
DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "inputStyleChanged", SIGNAL_INPUT_STYLE_CHANGED)
DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "anchorClicked", SIGNAL_ANCHOR_CLICKED )
+DALI_SIGNAL_REGISTRATION(Toolkit, TextField, "inputFiltered", SIGNAL_INPUT_FILTERED )
DALI_TYPE_REGISTRATION_END()
// clang-format on
impl.RequestTextRelayout();
break;
}
+ case Toolkit::DevelTextField::Property::INPUT_FILTER:
+ {
+ const Property::Map* map = value.GetMap();
+ if(map)
+ {
+ impl.mController->SetInputFilterOption(*map);
+ }
+ break;
+ }
} // switch
} // textfield
}
value = impl.mDecorator->GetHandleColor();
break;
}
+ case Toolkit::DevelTextField::Property::INPUT_FILTER:
+ {
+ Property::Map map;
+ impl.mController->GetInputFilterOption(map);
+ value = map;
+ break;
+ }
} //switch
}
fieldImpl.AnchorClickedSignal().Connect(tracker, functor);
}
}
+ else if(0 == strcmp(signalName.c_str(), SIGNAL_INPUT_FILTERED))
+ {
+ if(field)
+ {
+ Internal::TextField& fieldImpl(GetImpl(field));
+ fieldImpl.InputFilteredSignal().Connect(tracker, functor);
+ }
+ }
else
{
// signalName does not match any signal
return mAnchorClickedSignal;
}
+DevelTextField::InputFilteredSignalType& TextField::InputFilteredSignal()
+{
+ return mInputFilteredSignal;
+}
+
void TextField::OnInitialize()
{
Actor self = Self();
mAnchorClickedSignal.Emit(handle, href.c_str(), href.length());
}
+void TextField::InputFiltered(Toolkit::InputFilter::Property::Type type)
+{
+ Dali::Toolkit::TextField handle(GetOwner());
+ mInputFilteredSignal.Emit(handle, type);
+}
+
void TextField::AddDecoration(Actor& actor, bool needsClipping)
{
if(actor)
Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition));
slf.SetProperty(Toolkit::TextField::Property::TEXT,
- txt.substr(0, startPosition) + txt.substr(endPosition - startPosition, txt.size()));
+ txt.substr(0, startPosition) + txt.substr(endPosition));
+
+ return true;
+}
+
+bool TextField::AccessibleImpl::DeleteText(size_t startPosition,
+ size_t endPosition)
+{
+ if(endPosition <= startPosition)
+ return false;
+
+ auto slf = Toolkit::TextField::DownCast(Self());
+ auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+
+ slf.SetProperty(Toolkit::TextField::Property::TEXT,
+ txt.substr(0, startPosition) + txt.substr(endPosition));
return true;
}
return states;
}
+bool TextField::AccessibleImpl::InsertText(size_t startPosition,
+ std::string text)
+{
+ auto slf = Toolkit::TextField::DownCast(Self());
+ auto txt = slf.GetProperty(Toolkit::TextField::Property::TEXT).Get<std::string>();
+
+ txt.insert(startPosition, text);
+
+ slf.SetProperty(Toolkit::TextField::Property::TEXT, std::move(txt));
+
+ return true;
+}
+
+bool TextField::AccessibleImpl::SetTextContents(std::string newContents)
+{
+ auto slf = Toolkit::TextField::DownCast(Self());
+ slf.SetProperty(Toolkit::TextField::Property::TEXT, std::move(newContents));
+ return true;
+}
+
} // namespace Internal
} // namespace Toolkit