private InputMethodContext inputMethodContext = null;
private float fontSizeScale = 1.0f;
private bool hasFontSizeChangedCallback = false;
+ private bool isSettingTextInCSharp = false;
static TextEditor() { }
{
SetVisible(false);
}
+
+ TextChanged += TextEditorTextChanged;
}
internal TextEditor(global::System.IntPtr cPtr, bool cMemoryOwn, bool shown = true, TextEditorStyle style = null) : base(cPtr, cMemoryOwn, style)
{
SetVisible(false);
}
+
+ TextChanged += TextEditorTextChanged;
}
/// <summary>
}
set
{
- SetValueAndForceSendChangeSignal(TextProperty, value);
+ SetValue(TextProperty, value);
NotifyPropertyChanged();
}
}
}
/// <summary>
- /// The Selected Text property (read-only).
+ /// The portion of the text that has been selected by the user.
/// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <remarks>
+ /// Empty string when nothing is selected.
+ /// </remarks>
+ /// <since_tizen> 9 </since_tizen>
public string SelectedText
{
get
/// <summary>
/// The start index for selection.
/// </summary>
- /// <since_tizen> 8 </since_tizen>
- /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <remarks>
+ /// When there is no selection, the index is current cursor position.
+ /// </remarks>
+ /// <since_tizen> 9 </since_tizen>
public int SelectedTextStart
{
get
/// <summary>
/// The end index for selection.
/// </summary>
- /// <since_tizen> 8 </since_tizen>
- /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API.
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <remarks>
+ /// When there is no selection, the index is current cursor position.
+ /// </remarks>
+ /// <since_tizen> 9 </since_tizen>
public int SelectedTextEnd
{
get
}
/// <summary>
- /// Set InputFilter to TextEditor. <br />
+ /// Set InputFilter to TextEditor.
/// </summary>
/// <param name="inputFilter">The InputFilter</param>
/// <remarks>
/// <see cref="Tizen.NUI.Text.InputFilter"/> filters input based on regular expressions. <br />
- /// Users can set the Accepted or Rejected regular expression set, or both. <br />
- /// If both are used, Rejected has higher priority. <br />
- /// The character set must follow the regular expression rules. <br />
- /// Behaviour can not be guaranteed for incorrect grammars. <br />
- /// Refer the link below for detailed rules. <br />
- /// The functions in std::regex library use the ECMAScript grammar: <br />
- /// http://cplusplus.com/reference/regex/ECMAScript/ <br />
/// InputFiltered signal is emitted when the input is filtered by InputFilter <br />
- /// See <see cref="InputFiltered"/>, <see cref="InputFilterType"/> and <see cref="InputFilteredEventArgs"/> for a detailed description. <br />
+ /// See <see cref="InputFiltered"/>, <see cref="InputFilterType"/> and <see cref="InputFilteredEventArgs"/> for a detailed description.
/// </remarks>
/// <example>
/// The following example demonstrates how to use the SetInputFilter method.
/// editor.SetInputFilter(inputFilter); // acceptable inputs are 4, 5, 6, 7, 8, 9
/// </code>
/// </example>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 9 </since_tizen>
public void SetInputFilter(InputFilter inputFilter)
{
SetProperty(TextEditor.Property.InputFilter, new PropertyValue(TextUtils.GetInputFilterMap(inputFilter)));
/// <remarks>
/// <see cref="Tizen.NUI.Text.InputFilter"/>
/// </remarks>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 9 </since_tizen>
public InputFilter GetInputFilter()
{
var map = new PropertyMap();
/// The Ellipsis property.<br />
/// Enable or disable the ellipsis.<br />
/// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 9 </since_tizen>
public bool Ellipsis
{
get
/// <summary>
/// The ellipsis position of the text.
- /// The ellipsis position type when the text size over the layout size.<br />
- /// The ellipsis position: End, Start or Middle.<br />
+ /// Specifies which portion of the text should be replaced with an ellipsis when the text size exceeds the layout size.<br />
/// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 9 </since_tizen>
public EllipsisPosition EllipsisPosition
{
get
}
}
- /// Only used by the IL of xaml, will never changed to not hidden.
- [EditorBrowsable(EditorBrowsableState.Never)]
- public override bool IsCreateByXaml
- {
- get
- {
- return base.IsCreateByXaml;
- }
- set
- {
- base.IsCreateByXaml = value;
-
- if (value == true)
- {
- this.TextChanged += (obj, e) =>
- {
- this.Text = e.TextEditor.Text;
- };
- }
- }
- }
-
/// <summary>
/// The FontSizeScale property. <br />
/// The default value is 1.0. <br />
/// <summary>
/// Select the whole text.
/// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 9 </since_tizen>
public void SelectWholeText()
{
Interop.TextEditor.SelectWholeText(SwigCPtr);
/// <summary>
/// Select text from start to end index. <br />
- /// The index is valid when 0 or positive. <br />
+ /// The index is valid when 0 or positive.
/// </summary>
/// <param name="start">The start index for selection.</param>
/// <param name="end">The end index for selection.</param>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <remarks>
+ /// If the end index exceeds the maximum value, it is set to the length of the text.
+ /// </remarks>
+ /// <since_tizen> 9 </since_tizen>
public void SelectText(int start, int end)
{
if (start < 0)
}
/// <summary>
- /// Clear selection of the text.
+ /// Clear selection of the text. <br />
+ /// Valid when selection is activate.
/// </summary>
- [EditorBrowsable(EditorBrowsableState.Never)]
+ /// <since_tizen> 9 </since_tizen>
public void SelectNone()
{
_ = Interop.TextEditor.SelectNone(SwigCPtr);
}
}
- internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TextEditor obj)
- {
- return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.SwigCPtr;
- }
-
internal SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__TextEditor_Dali__Toolkit__TextEditor__InputStyle__MaskF_t InputStyleChangedSignal()
{
SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__TextEditor_Dali__Toolkit__TextEditor__InputStyle__MaskF_t ret = new SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__TextEditor_Dali__Toolkit__TextEditor__InputStyle__MaskF_t(Interop.TextEditor.InputStyleChangedSignal(SwigCPtr));
}
}
+ TextChanged -= TextEditorTextChanged;
+
base.Dispose(type);
}
}
}
+ private void TextEditorTextChanged(object sender, TextChangedEventArgs e)
+ {
+ if (!isSettingTextInCSharp)
+ {
+ EnforceNotifyBindedInstance(TextProperty);
+ }
+ }
+
internal new class Property
{
internal static readonly int TEXT = Interop.TextEditor.TextGet();