private EventHandler<ScrollStateChangedEventArgs> textEditorScrollStateChangedEventHandler;
private ScrollStateChangedCallbackDelegate textEditorScrollStateChangedCallbackDelegate;
+ private EventHandler<CursorPositionChangedEventArgs> textEditorCursorPositionChangedEventHandler;
+ private CursorPositionChangedCallbackDelegate textEditorCursorPositionChangedCallbackDelegate;
+
private EventHandler<MaxLengthReachedEventArgs> textEditorMaxLengthReachedEventHandler;
private MaxLengthReachedCallbackDelegate textEditorMaxLengthReachedCallbackDelegate;
private EventHandler<AnchorClickedEventArgs> textEditorAnchorClickedEventHandler;
private AnchorClickedCallbackDelegate textEditorAnchorClickedCallbackDelegate;
+ private EventHandler<TextSelectionChangedEventArgs> textEditorSelectionChangedEventHandler;
+ private SelectionChangedCallbackDelegate textEditorSelectionChangedCallbackDelegate;
+
private EventHandler<InputFilteredEventArgs> textEditorInputFilteredEventHandler;
private InputFilteredCallbackDelegate textEditorInputFilteredCallbackDelegate;
private delegate void ScrollStateChangedCallbackDelegate(IntPtr textEditor, ScrollState state);
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ private delegate void CursorPositionChangedCallbackDelegate(IntPtr textEditor, uint oldPosition);
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void MaxLengthReachedCallbackDelegate(IntPtr textEditor);
[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>
}
/// <summary>
+ /// The CursorPositionChanged 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<CursorPositionChangedEventArgs> CursorPositionChanged
+ {
+ add
+ {
+ if (textEditorCursorPositionChangedEventHandler == null)
+ {
+ textEditorCursorPositionChangedCallbackDelegate = (OnCursorPositionChanged);
+ CursorPositionChangedSignal().Connect(textEditorCursorPositionChangedCallbackDelegate);
+ }
+ textEditorCursorPositionChangedEventHandler += value;
+ }
+ remove
+ {
+ if (textEditorCursorPositionChangedEventHandler == null && CursorPositionChangedSignal().Empty() == false)
+ {
+ this.CursorPositionChangedSignal().Disconnect(textEditorCursorPositionChangedCallbackDelegate);
+ }
+ textEditorCursorPositionChangedEventHandler -= value;
+ }
+ }
+
+ /// <summary>
/// The MaxLengthReached event.
/// </summary>
/// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
}
/// <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<TextSelectionChangedEventArgs> 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>
/// <remarks>
return ret;
}
+ internal TextEditorSignal CursorPositionChangedSignal()
+ {
+ TextEditorSignal ret = new TextEditorSignal(Interop.TextEditor.CursorPositionChangedSignal(SwigCPtr), false);
+ if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+
internal TextEditorSignal MaxLengthReachedSignal()
{
TextEditorSignal ret = new TextEditorSignal(Interop.TextEditor.MaxLengthReachedSignal(SwigCPtr), false);
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);
}
}
+ private void OnCursorPositionChanged(IntPtr textEditor, uint oldPosition)
+ {
+ if (textEditorCursorPositionChangedEventHandler != null)
+ {
+ CursorPositionChangedEventArgs e = new CursorPositionChangedEventArgs();
+
+ // Populate all members of "e" (CursorPositionChangedEventArgs) with real data
+ e.OldCursorPosition = oldPosition;
+
+ //here we send all data to user event handlers
+ textEditorCursorPositionChangedEventHandler?.Invoke(this, e);
+ }
+ }
+
private void OnMaxLengthReached(IntPtr textEditor)
{
if (textEditorMaxLengthReachedEventHandler != null)
textEditorAnchorClickedEventHandler?.Invoke(this, e);
}
+ private void OnSelectionChanged(IntPtr textEditor, uint oldStart, uint oldEnd)
+ {
+ if (textEditorSelectionChangedEventHandler != null)
+ {
+ TextSelectionChangedEventArgs e = new TextSelectionChangedEventArgs();
+
+ // Populate all members of "e" (TextSelectionChangedEventArgs) 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();