[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextEditor_AnchorClickedSignal")]
public static extern global::System.IntPtr AnchorClickedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextEditor_SelectionChangedSignal")]
+ public static extern global::System.IntPtr SelectionChangedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextEditorSignal_Empty")]
[return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
public static extern bool TextEditorSignalEmpty(global::System.Runtime.InteropServices.HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextField_AnchorClickedSignal")]
public static extern global::System.IntPtr AnchorClickedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextField_SelectionChangedSignal")]
+ public static extern global::System.IntPtr SelectionChangedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextFieldSignal_Empty")]
[return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
public static extern bool TextFieldSignalEmpty(global::System.Runtime.InteropServices.HandleRef jarg1);
{
this.CursorPositionChangedSignal().Disconnect(textEditorCursorPositionChangedCallbackDelegate);
}
+
+ if (textEditorSelectionChangedCallbackDelegate != null)
+ {
+ this.SelectionChangedSignal().Disconnect(textEditorSelectionChangedCallbackDelegate);
+ }
}
base.Dispose(type);
private EventHandler<AnchorClickedEventArgs> textEditorAnchorClickedEventHandler;
private AnchorClickedCallbackDelegate textEditorAnchorClickedCallbackDelegate;
+ private EventHandler<SelectionChangedEventArgs> textEditorSelectionChangedEventHandler;
+ private SelectionChangedCallbackDelegate textEditorSelectionChangedCallbackDelegate;
+
private EventHandler<InputFilteredEventArgs> textEditorInputFilteredEventHandler;
private InputFilteredCallbackDelegate textEditorInputFilteredCallbackDelegate;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void AnchorClickedCallbackDelegate(IntPtr textEditor, IntPtr href, uint hrefLength);
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ private delegate void SelectionChangedCallbackDelegate(IntPtr textEditor, uint oldStart, uint oldEnd);
+
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void InputFilteredCallbackDelegate(IntPtr textEditor, InputFilterType type);
}
}
+ /// <summary>
+ /// The SelectionChanged event.
+ /// </summary>
+ /// This will be public opened after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<SelectionChangedEventArgs> SelectionChanged
+ {
+ add
+ {
+ if (textEditorSelectionChangedEventHandler == null)
+ {
+ textEditorSelectionChangedCallbackDelegate = (OnSelectionChanged);
+ SelectionChangedSignal().Connect(textEditorSelectionChangedCallbackDelegate);
+ }
+ textEditorSelectionChangedEventHandler += value;
+ }
+ remove
+ {
+ if (textEditorSelectionChangedEventHandler == null && SelectionChangedSignal().Empty() == false)
+ {
+ this.SelectionChangedSignal().Disconnect(textEditorSelectionChangedCallbackDelegate);
+ }
+ textEditorSelectionChangedEventHandler -= value;
+ }
+ }
+
/// <summary>
/// The InputFiltered signal is emitted when the input is filtered by InputFilter. <br />
/// </summary>
return ret;
}
+ internal TextEditorSignal SelectionChangedSignal()
+ {
+ TextEditorSignal ret = new TextEditorSignal(Interop.TextEditor.SelectionChangedSignal(SwigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
internal TextEditorSignal InputFilteredSignal()
{
TextEditorSignal ret = new TextEditorSignal(Interop.TextEditor.InputFilteredSignal(SwigCPtr), false);
textEditorAnchorClickedEventHandler?.Invoke(this, e);
}
+ private void OnSelectionChanged(IntPtr textEditor, uint oldStart, uint oldEnd)
+ {
+ if (textEditorSelectionChangedEventHandler != null)
+ {
+ SelectionChangedEventArgs e = new SelectionChangedEventArgs();
+
+ // Populate all members of "e" (SelectionChangedEventArgs) with real data
+ e.OldSelectionStart = oldStart;
+ e.OldSelectionEnd = oldEnd;
+
+ //here we send all data to user event handlers
+ textEditorSelectionChangedEventHandler?.Invoke(this, e);
+ }
+ }
+
private void OnInputFiltered(IntPtr textEditor, InputFilterType type)
{
InputFilteredEventArgs e = new InputFilteredEventArgs();
[EditorBrowsable(EditorBrowsableState.Never)]
public uint OldCursorPosition { get; set; }
}
+
+ /// <summary>
+ /// The SelectionChanged event arguments.
+ /// </summary>
+ /// This will be public opened after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class SelectionChangedEventArgs : EventArgs
+ {
+ /// <summary>
+ /// selection start before the change.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public uint OldSelectionStart { get; set; }
+
+ /// <summary>
+ /// selection end before the change.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public uint OldSelectionEnd { get; set; }
+ }
}
\ No newline at end of file
this.MaxLengthReachedSignal().Disconnect(textFieldMaxLengthReachedCallbackDelegate);
}
+ if (textFieldSelectionChangedCallbackDelegate != null)
+ {
+ this.SelectionChangedSignal().Disconnect(textFieldSelectionChangedCallbackDelegate);
+ }
+
if (textFieldTextChangedCallbackDelegate != null)
{
TextChangedSignal().Disconnect(textFieldTextChangedCallbackDelegate);
private MaxLengthReachedCallbackDelegate textFieldMaxLengthReachedCallbackDelegate;
private EventHandler<AnchorClickedEventArgs> textFieldAnchorClickedEventHandler;
private AnchorClickedCallbackDelegate textFieldAnchorClickedCallbackDelegate;
+
+ private EventHandler<SelectionChangedEventArgs> textFieldSelectionChangedEventHandler;
+ private SelectionChangedCallbackDelegate textFieldSelectionChangedCallbackDelegate;
+
private EventHandler<InputFilteredEventArgs> textFieldInputFilteredEventHandler;
private InputFilteredCallbackDelegate textFieldInputFilteredCallbackDelegate;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void AnchorClickedCallbackDelegate(IntPtr textField, IntPtr href, uint hrefLength);
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ private delegate void SelectionChangedCallbackDelegate(IntPtr textField, uint oldStart, uint oldEnd);
+
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void InputFilteredCallbackDelegate(IntPtr textField, InputFilterType type);
}
}
+ /// <summary>
+ /// The SelectionChanged event.
+ /// </summary>
+ /// This will be public opened after ACR done. Before ACR, need to be hidden as inhouse API.
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<SelectionChangedEventArgs> SelectionChanged
+ {
+ add
+ {
+ if (textFieldSelectionChangedEventHandler == null)
+ {
+ textFieldSelectionChangedCallbackDelegate = (OnSelectionChanged);
+ SelectionChangedSignal().Connect(textFieldSelectionChangedCallbackDelegate);
+ }
+ textFieldSelectionChangedEventHandler += value;
+ }
+ remove
+ {
+ if (textFieldSelectionChangedEventHandler == null && SelectionChangedSignal().Empty() == false)
+ {
+ this.SelectionChangedSignal().Disconnect(textFieldSelectionChangedCallbackDelegate);
+ }
+ textFieldSelectionChangedEventHandler -= value;
+ }
+ }
+
/// <summary>
/// The InputFiltered signal is emitted when the input is filtered by InputFilter. <br />
/// </summary>
return ret;
}
+ internal TextFieldSignal SelectionChangedSignal()
+ {
+ TextFieldSignal ret = new TextFieldSignal(Interop.TextField.SelectionChangedSignal(SwigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
internal TextFieldSignal InputFilteredSignal()
{
TextFieldSignal ret = new TextFieldSignal(Interop.TextField.InputFilteredSignal(SwigCPtr), false);
textFieldAnchorClickedEventHandler?.Invoke(this, e);
}
+ private void OnSelectionChanged(IntPtr textField, uint oldStart, uint oldEnd)
+ {
+ if (textFieldSelectionChangedEventHandler != null)
+ {
+ SelectionChangedEventArgs e = new SelectionChangedEventArgs();
+
+ // Populate all members of "e" (SelectionChangedEventArgs) with real data
+ e.OldSelectionStart = oldStart;
+ e.OldSelectionEnd = oldEnd;
+
+ //here we send all data to user event handlers
+ textFieldSelectionChangedEventHandler?.Invoke(this, e);
+ }
+ }
+
private void OnInputFiltered(IntPtr textField, InputFilterType type)
{
InputFilteredEventArgs e = new InputFilteredEventArgs();