2 * Copyright(c) 2018 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 extern alias TizenSystemSettings;
19 using TizenSystemSettings.Tizen.System;
22 using System.Globalization;
23 using System.ComponentModel;
25 namespace Tizen.NUI.BaseComponents
28 /// A control which provides a multi-line editable text editor.
30 /// <since_tizen> 3 </since_tizen>
31 public partial class TextEditor : View
33 private string textEditorTextSid = null;
34 private string textEditorPlaceHolderTextSid = null;
35 private bool systemlangTextFlag = false;
36 private InputMethodContext inputMethodContext = null;
39 /// Creates the TextEditor control.
41 /// <since_tizen> 3 </since_tizen>
42 public TextEditor() : this(Interop.TextEditor.New(), true)
44 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
48 /// Creates the TextEditor with setting the status of shown or hidden.
50 /// <param name="shown">false : Not displayed (hidden), true : displayed (shown)</param>
51 /// This will be public opened in next release of tizen after ACR done. Before ACR, it is used as HiddenAPI (InhouseAPI).
52 [EditorBrowsable(EditorBrowsableState.Never)]
53 public TextEditor(bool shown) : this(Interop.TextEditor.New(), true)
55 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
59 internal TextEditor(TextEditor handle, bool shown = true) : this(Interop.TextEditor.NewTextEditor(TextEditor.getCPtr(handle)), true)
61 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
69 internal TextEditor(global::System.IntPtr cPtr, bool cMemoryOwn, bool shown = true) : base(Interop.TextEditor.Upcast(cPtr), cMemoryOwn)
78 /// The TranslatableText property.<br />
79 /// The text can set the SID value.<br />
81 /// <exception cref='ArgumentNullException'>
82 /// ResourceManager about multilingual is null.
84 /// <since_tizen> 4 </since_tizen>
85 public string TranslatableText
89 return textEditorTextSid;
93 if (NUIApplication.MultilingualResourceManager == null)
95 throw new ArgumentNullException(null, "ResourceManager about multilingual is null");
97 textEditorTextSid = value;
98 Text = SetTranslatable(textEditorTextSid);
99 NotifyPropertyChanged();
103 /// The TranslatablePlaceholderText property.<br />
104 /// The text can set the SID value.<br />
106 /// <exception cref='ArgumentNullException'>
107 /// ResourceManager about multilingual is null.
109 /// <since_tizen> 4 </since_tizen>
110 public string TranslatablePlaceholderText
114 return textEditorPlaceHolderTextSid;
118 if (NUIApplication.MultilingualResourceManager == null)
120 throw new ArgumentNullException(null, "ResourceManager about multilingual is null");
122 textEditorPlaceHolderTextSid = value;
123 PlaceholderText = SetTranslatable(textEditorPlaceHolderTextSid);
124 NotifyPropertyChanged();
129 /// The Text property.
131 /// <since_tizen> 3 </since_tizen>
136 return (string)GetValue(TextProperty);
140 SetValueAndForceSendChangeSignal(TextProperty, value);
141 NotifyPropertyChanged();
146 /// The TextColor property.
149 /// The property cascade chaining set is possible. For example, this (textEditor.TextColor.X = 0.1f;) is possible.
151 /// <since_tizen> 3 </since_tizen>
152 public Vector4 TextColor
156 Vector4 temp = (Vector4)GetValue(TextColorProperty);
157 return new Vector4(OnTextColorChanged, temp.X, temp.Y, temp.Z, temp.W);
161 SetValue(TextColorProperty, value);
162 NotifyPropertyChanged();
167 /// The FontFamily property.
169 /// <since_tizen> 3 </since_tizen>
170 public string FontFamily
174 return (string)GetValue(FontFamilyProperty);
178 SetValue(FontFamilyProperty, value);
179 NotifyPropertyChanged();
184 /// The FontStyle property.
186 /// <since_tizen> 3 </since_tizen>
187 public PropertyMap FontStyle
191 return (PropertyMap)GetValue(FontStyleProperty);
195 SetValue(FontStyleProperty, value);
196 NotifyPropertyChanged();
201 /// The PointSize property.
203 /// <since_tizen> 3 </since_tizen>
204 public float PointSize
208 return (float)GetValue(PointSizeProperty);
212 SetValue(PointSizeProperty, value);
213 NotifyPropertyChanged();
218 /// The HorizontalAlignment property.
220 /// <since_tizen> 3 </since_tizen>
221 public HorizontalAlignment HorizontalAlignment
225 return (HorizontalAlignment)GetValue(HorizontalAlignmentProperty);
229 SetValue(HorizontalAlignmentProperty, value);
230 NotifyPropertyChanged();
235 /// The ScrollThreshold property.
237 /// <since_tizen> 3 </since_tizen>
238 public float ScrollThreshold
242 return (float)GetValue(ScrollThresholdProperty);
246 SetValue(ScrollThresholdProperty, value);
247 NotifyPropertyChanged();
252 /// The ScrollSpeed property.
254 /// <since_tizen> 3 </since_tizen>
255 public float ScrollSpeed
259 return (float)GetValue(ScrollSpeedProperty);
263 SetValue(ScrollSpeedProperty, value);
264 NotifyPropertyChanged();
269 /// The PrimaryCursorColor property.
272 /// The property cascade chaining set is possible. For example, this (textEditor.PrimaryCursorColor.X = 0.1f;) is possible.
274 /// <since_tizen> 3 </since_tizen>
275 public Vector4 PrimaryCursorColor
279 Vector4 temp = (Vector4)GetValue(PrimaryCursorColorProperty);
280 return new Vector4(OnPrimaryCursorColorChanged, temp.X, temp.Y, temp.Z, temp.W);
284 SetValue(PrimaryCursorColorProperty, value);
285 NotifyPropertyChanged();
290 /// The SecondaryCursorColor property.
293 /// The property cascade chaining set is possible. For example, this (textEditor.SecondaryCursorColor.X = 0.1f;) is possible.
295 /// <since_tizen> 3 </since_tizen>
296 public Vector4 SecondaryCursorColor
300 Vector4 temp = (Vector4)GetValue(SecondaryCursorColorProperty);
301 return new Vector4(OnSecondaryCursorColorChanged, temp.X, temp.Y, temp.Z, temp.W);
305 SetValue(SecondaryCursorColorProperty, value);
306 NotifyPropertyChanged();
311 /// The EnableCursorBlink property.
313 /// <since_tizen> 3 </since_tizen>
314 public bool EnableCursorBlink
318 return (bool)GetValue(EnableCursorBlinkProperty);
322 SetValue(EnableCursorBlinkProperty, value);
323 NotifyPropertyChanged();
328 /// The CursorBlinkInterval property.
330 /// <since_tizen> 3 </since_tizen>
331 public float CursorBlinkInterval
335 return (float)GetValue(CursorBlinkIntervalProperty);
339 SetValue(CursorBlinkIntervalProperty, value);
340 NotifyPropertyChanged();
345 /// The CursorBlinkDuration property.
347 /// <since_tizen> 3 </since_tizen>
348 public float CursorBlinkDuration
352 return (float)GetValue(CursorBlinkDurationProperty);
356 SetValue(CursorBlinkDurationProperty, value);
357 NotifyPropertyChanged();
362 /// The CursorWidth property.
364 /// <since_tizen> 3 </since_tizen>
365 public int CursorWidth
369 return (int)GetValue(CursorWidthProperty);
373 SetValue(CursorWidthProperty, value);
374 NotifyPropertyChanged();
379 /// The GrabHandleImage property.
381 /// <since_tizen> 3 </since_tizen>
382 public string GrabHandleImage
386 return (string)GetValue(GrabHandleImageProperty);
390 SetValue(GrabHandleImageProperty, value);
391 NotifyPropertyChanged();
396 /// The GrabHandlePressedImage property.
398 /// <since_tizen> 3 </since_tizen>
399 public string GrabHandlePressedImage
403 return (string)GetValue(GrabHandlePressedImageProperty);
407 SetValue(GrabHandlePressedImageProperty, value);
408 NotifyPropertyChanged();
413 /// The SelectionHandleImageLeft property.
415 /// <since_tizen> 3 </since_tizen>
416 public PropertyMap SelectionHandleImageLeft
420 return (PropertyMap)GetValue(SelectionHandleImageLeftProperty);
424 SetValue(SelectionHandleImageLeftProperty, value);
425 NotifyPropertyChanged();
430 /// The SelectionHandleImageRight property.
432 /// <since_tizen> 3 </since_tizen>
433 public PropertyMap SelectionHandleImageRight
437 return (PropertyMap)GetValue(SelectionHandleImageRightProperty);
441 SetValue(SelectionHandleImageRightProperty, value);
442 NotifyPropertyChanged();
447 /// The SelectionHandlePressedImageLeft property.
449 /// <since_tizen> 3 </since_tizen>
450 public PropertyMap SelectionHandlePressedImageLeft
454 return (PropertyMap)GetValue(SelectionHandlePressedImageLeftProperty);
458 SetValue(SelectionHandlePressedImageLeftProperty, value);
459 NotifyPropertyChanged();
464 /// The SelectionHandlePressedImageRight property.
466 /// <since_tizen> 3 </since_tizen>
467 public PropertyMap SelectionHandlePressedImageRight
471 return (PropertyMap)GetValue(SelectionHandlePressedImageRightProperty);
475 SetValue(SelectionHandlePressedImageRightProperty, value);
476 NotifyPropertyChanged();
481 /// The SelectionHandleMarkerImageLeft property.
483 /// <since_tizen> 3 </since_tizen>
484 public PropertyMap SelectionHandleMarkerImageLeft
488 return (PropertyMap)GetValue(SelectionHandleMarkerImageLeftProperty);
492 SetValue(SelectionHandleMarkerImageLeftProperty, value);
493 NotifyPropertyChanged();
498 /// The SelectionHandleMarkerImageRight property.
500 /// <since_tizen> 3 </since_tizen>
501 public PropertyMap SelectionHandleMarkerImageRight
505 return (PropertyMap)GetValue(SelectionHandleMarkerImageRightProperty);
509 SetValue(SelectionHandleMarkerImageRightProperty, value);
510 NotifyPropertyChanged();
515 /// The SelectionHighlightColor property.
518 /// The property cascade chaining set is possible. For example, this (textEditor.SelectionHighlightColor.X = 0.1f;) is possible.
520 /// <since_tizen> 3 </since_tizen>
521 public Vector4 SelectionHighlightColor
525 Vector4 temp = (Vector4)GetValue(SelectionHighlightColorProperty);
526 return new Vector4(OnSelectionHighlightColorChanged, temp.X, temp.Y, temp.Z, temp.W);
530 SetValue(SelectionHighlightColorProperty, value);
531 NotifyPropertyChanged();
536 /// The DecorationBoundingBox property.
539 /// The property cascade chaining set is possible. For example, this (textEditor.DecorationBoundingBox.X = 1;) is possible.
541 /// <since_tizen> 3 </since_tizen>
542 public Rectangle DecorationBoundingBox
546 Rectangle temp = (Rectangle)GetValue(DecorationBoundingBoxProperty);
547 return new Rectangle(OnDecorationBoundingBoxChanged, temp.X, temp.Y, temp.Width, temp.Height);
551 SetValue(DecorationBoundingBoxProperty, value);
552 NotifyPropertyChanged();
557 /// The EnableMarkup property.
559 /// <since_tizen> 3 </since_tizen>
560 public bool EnableMarkup
564 return (bool)GetValue(EnableMarkupProperty);
568 SetValue(EnableMarkupProperty, value);
569 NotifyPropertyChanged();
574 /// The InputColor property.
577 /// The property cascade chaining set is possible. For example, this (textEditor.InputColor.X = 0.1f;) is possible.
579 /// <since_tizen> 3 </since_tizen>
580 public Vector4 InputColor
584 Vector4 temp = (Vector4)GetValue(InputColorProperty);
585 return new Vector4(OnInputColorChanged, temp.X, temp.Y, temp.Z, temp.W);
589 SetValue(InputColorProperty, value);
590 NotifyPropertyChanged();
595 /// The InputFontFamily property.
597 /// <since_tizen> 3 </since_tizen>
598 public string InputFontFamily
602 return (string)GetValue(InputFontFamilyProperty);
606 SetValue(InputFontFamilyProperty, value);
607 NotifyPropertyChanged();
612 /// The InputFontStyle property.
614 /// <since_tizen> 3 </since_tizen>
615 public PropertyMap InputFontStyle
619 return (PropertyMap)GetValue(InputFontStyleProperty);
623 SetValue(InputFontStyleProperty, value);
624 NotifyPropertyChanged();
629 /// The InputPointSize property.
631 /// <since_tizen> 3 </since_tizen>
632 public float InputPointSize
636 return (float)GetValue(InputPointSizeProperty);
640 SetValue(InputPointSizeProperty, value);
641 NotifyPropertyChanged();
646 /// The LineSpacing property.
648 /// <since_tizen> 3 </since_tizen>
649 public float LineSpacing
653 return (float)GetValue(LineSpacingProperty);
657 SetValue(LineSpacingProperty, value);
658 NotifyPropertyChanged();
663 /// The InputLineSpacing property.
665 /// <since_tizen> 3 </since_tizen>
666 public float InputLineSpacing
670 return (float)GetValue(InputLineSpacingProperty);
674 SetValue(InputLineSpacingProperty, value);
675 NotifyPropertyChanged();
680 /// The Underline property.
682 /// <since_tizen> 3 </since_tizen>
683 public PropertyMap Underline
687 return (PropertyMap)GetValue(UnderlineProperty);
691 SetValue(UnderlineProperty, value);
692 NotifyPropertyChanged();
697 /// The InputUnderline property.
699 /// <since_tizen> 3 </since_tizen>
700 public string InputUnderline
704 return (string)GetValue(InputUnderlineProperty);
708 SetValue(InputUnderlineProperty, value);
709 NotifyPropertyChanged();
714 /// The Shadow property.
716 /// <since_tizen> 3 </since_tizen>
717 public PropertyMap Shadow
721 return (PropertyMap)GetValue(ShadowProperty);
725 SetValue(ShadowProperty, value);
726 NotifyPropertyChanged();
731 /// The InputShadow property.
733 /// <since_tizen> 3 </since_tizen>
734 public string InputShadow
738 return (string)GetValue(InputShadowProperty);
742 SetValue(InputShadowProperty, value);
743 NotifyPropertyChanged();
748 /// The Emboss property.
750 /// <since_tizen> 3 </since_tizen>
755 return (string)GetValue(EmbossProperty);
759 SetValue(EmbossProperty, value);
760 NotifyPropertyChanged();
765 /// The InputEmboss property.
767 /// <since_tizen> 3 </since_tizen>
768 public string InputEmboss
772 return (string)GetValue(InputEmbossProperty);
776 SetValue(InputEmbossProperty, value);
777 NotifyPropertyChanged();
782 /// The Outline property.
784 /// <since_tizen> 3 </since_tizen>
785 public PropertyMap Outline
789 return (PropertyMap)GetValue(OutlineProperty);
793 SetValue(OutlineProperty, value);
794 NotifyPropertyChanged();
799 /// The InputOutline property.
801 /// <since_tizen> 3 </since_tizen>
802 public string InputOutline
806 return (string)GetValue(InputOutlineProperty);
810 SetValue(InputOutlineProperty, value);
811 NotifyPropertyChanged();
816 /// The SmoothScroll property.
818 /// <since_tizen> 3 </since_tizen>
819 public bool SmoothScroll
823 return (bool)GetValue(SmoothScrollProperty);
827 SetValue(SmoothScrollProperty, value);
828 NotifyPropertyChanged();
833 /// The SmoothScrollDuration property.
835 /// <since_tizen> 3 </since_tizen>
836 public float SmoothScrollDuration
840 return (float)GetValue(SmoothScrollDurationProperty);
844 SetValue(SmoothScrollDurationProperty, value);
845 NotifyPropertyChanged();
850 /// The EnableScrollBar property.
852 /// <since_tizen> 3 </since_tizen>
853 public bool EnableScrollBar
857 return (bool)GetValue(EnableScrollBarProperty);
861 SetValue(EnableScrollBarProperty, value);
862 NotifyPropertyChanged();
867 /// The ScrollBarShowDuration property.
869 /// <since_tizen> 3 </since_tizen>
870 public float ScrollBarShowDuration
874 return (float)GetValue(ScrollBarShowDurationProperty);
878 SetValue(ScrollBarShowDurationProperty, value);
879 NotifyPropertyChanged();
884 /// The ScrollBarFadeDuration property.
886 /// <since_tizen> 3 </since_tizen>
887 public float ScrollBarFadeDuration
891 return (float)GetValue(ScrollBarFadeDurationProperty);
895 SetValue(ScrollBarFadeDurationProperty, value);
896 NotifyPropertyChanged();
901 /// The PixelSize property.
903 /// <since_tizen> 3 </since_tizen>
904 public float PixelSize
908 return (float)GetValue(PixelSizeProperty);
912 SetValue(PixelSizeProperty, value);
913 NotifyPropertyChanged();
918 /// The line count of the text.
920 /// <since_tizen> 3 </since_tizen>
926 GetProperty(TextEditor.Property.LineCount).Get(out temp);
932 /// The text to display when the TextEditor is empty and inactive.
934 /// <since_tizen> 3 </since_tizen>
935 public string PlaceholderText
939 return (string)GetValue(PlaceholderTextProperty);
943 SetValue(PlaceholderTextProperty, value);
944 NotifyPropertyChanged();
949 /// The Selected Text property (read-only).
951 [EditorBrowsable(EditorBrowsableState.Never)]
952 public string SelectedText
957 GetProperty(TextEditor.Property.SelectedText).Get(out temp);
963 /// The Placeholder text color.
966 /// The property cascade chaining set is possible. For example, this (textEditor.PlaceholderTextColor.X = 0.1f;) is possible.
968 /// <since_tizen> 3 </since_tizen>
969 public Color PlaceholderTextColor
973 Color temp = (Color)GetValue(PlaceholderTextColorProperty);
974 return new Color(OnPlaceholderTextColorChanged, temp.R, temp.G, temp.B, temp.A);
978 SetValue(PlaceholderTextColorProperty, value);
979 NotifyPropertyChanged();
984 /// The EnableSelection property.
986 /// <since_tizen> 3 </since_tizen>
987 public bool EnableSelection
991 return (bool)GetValue(EnableSelectionProperty);
995 SetValue(EnableSelectionProperty, value);
996 NotifyPropertyChanged();
1001 /// The start index for selection.
1003 /// <since_tizen> 8 </since_tizen>
1004 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API.
1005 [EditorBrowsable(EditorBrowsableState.Never)]
1006 public int SelectedTextStart
1011 GetProperty(TextEditor.Property.SelectedTextStart).Get(out temp);
1016 SetProperty(TextEditor.Property.SelectedTextStart, new PropertyValue(value));
1017 NotifyPropertyChanged();
1022 /// The end index for selection.
1024 /// <since_tizen> 8 </since_tizen>
1025 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API.
1026 [EditorBrowsable(EditorBrowsableState.Never)]
1027 public int SelectedTextEnd
1032 GetProperty(TextEditor.Property.SelectedTextEnd).Get(out temp);
1037 SetProperty(TextEditor.Property.SelectedTextEnd, new PropertyValue(value));
1038 NotifyPropertyChanged();
1043 /// Enable editing in text control.
1045 /// <since_tizen> 8 </since_tizen>
1046 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API.
1047 [EditorBrowsable(EditorBrowsableState.Never)]
1048 public bool EnableEditing
1053 GetProperty(TextEditor.Property.EnableEditing).Get(out temp);
1058 SetProperty(TextEditor.Property.EnableEditing, new PropertyValue(value));
1059 NotifyPropertyChanged();
1064 /// Specify horizontal scroll position in text control.
1066 [EditorBrowsable(EditorBrowsableState.Never)]
1067 public int HorizontalScrollPosition
1072 using (PropertyValue propertyValue = GetProperty(TextEditor.Property.HorizontalScrollPosition))
1074 propertyValue.Get(out temp);
1080 using (PropertyValue propertyValue = new PropertyValue(value))
1082 SetProperty(TextEditor.Property.HorizontalScrollPosition, propertyValue);
1083 NotifyPropertyChanged();
1089 /// Specify vertical scroll position in text control.
1091 [EditorBrowsable(EditorBrowsableState.Never)]
1092 public int VerticalScrollPosition
1097 using (PropertyValue propertyValue = GetProperty(TextEditor.Property.VerticalScrollPosition))
1099 propertyValue.Get(out temp);
1105 using (PropertyValue propertyValue = new PropertyValue(value))
1107 SetProperty(TextEditor.Property.VerticalScrollPosition, propertyValue);
1108 NotifyPropertyChanged();
1114 /// The Placeholder property.
1115 /// Gets or sets the placeholder: text, color, font family, font style, point size, and pixel size.
1118 /// The following example demonstrates how to set the placeholder property.
1120 /// PropertyMap propertyMap = new PropertyMap();
1121 /// propertyMap.Add("text", new PropertyValue("Setting Placeholder Text"));
1122 /// propertyMap.Add("textFocused", new PropertyValue("Setting Placeholder Text Focused"));
1123 /// propertyMap.Add("color", new PropertyValue(Color.Red));
1124 /// propertyMap.Add("fontFamily", new PropertyValue("Arial"));
1125 /// propertyMap.Add("pointSize", new PropertyValue(12.0f));
1127 /// PropertyMap fontStyleMap = new PropertyMap();
1128 /// fontStyleMap.Add("weight", new PropertyValue("bold"));
1129 /// fontStyleMap.Add("width", new PropertyValue("condensed"));
1130 /// fontStyleMap.Add("slant", new PropertyValue("italic"));
1131 /// propertyMap.Add("fontStyle", new PropertyValue(fontStyleMap));
1133 /// TextEditor editor = new TextEditor();
1134 /// editor.Placeholder = propertyMap;
1137 /// <since_tizen> 3 </since_tizen>
1138 public Tizen.NUI.PropertyMap Placeholder
1142 return (PropertyMap)GetValue(PlaceholderProperty);
1146 SetValue(PlaceholderProperty, value);
1147 NotifyPropertyChanged();
1152 /// The LineWrapMode property.<br />
1153 /// The line wrap mode when the text lines over the layout width.<br />
1155 /// <since_tizen> 4 </since_tizen>
1156 public LineWrapMode LineWrapMode
1160 return (LineWrapMode)GetValue(LineWrapModeProperty);
1164 SetValue(LineWrapModeProperty, value);
1165 NotifyPropertyChanged();
1170 /// Enables Text selection using Shift key.
1172 /// <since_tizen> 5 </since_tizen>
1173 /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API.
1174 [EditorBrowsable(EditorBrowsableState.Never)]
1175 public bool EnableShiftSelection
1179 return (bool)GetValue(EnableShiftSelectionProperty);
1183 SetValue(EnableShiftSelectionProperty, value);
1184 NotifyPropertyChanged();
1189 /// The text alignment to match the direction of the system language.
1191 /// <since_tizen> 6 </since_tizen>
1192 public bool MatchSystemLanguageDirection
1196 return (bool)GetValue(MatchSystemLanguageDirectionProperty);
1200 SetValue(MatchSystemLanguageDirectionProperty, value);
1201 NotifyPropertyChanged();
1206 /// The MaxLength property.
1208 /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API.
1209 [EditorBrowsable(EditorBrowsableState.Never)]
1210 public int MaxLength
1214 return (int)GetValue(MaxLengthProperty);
1218 SetValue(MaxLengthProperty, value);
1219 NotifyPropertyChanged();
1223 /// Only used by the IL of xaml, will never changed to not hidden.
1224 [EditorBrowsable(EditorBrowsableState.Never)]
1225 public override bool IsCreateByXaml
1229 return base.IsCreateByXaml;
1233 base.IsCreateByXaml = value;
1237 this.TextChanged += (obj, e) =>
1239 this.Text = e.TextEditor.Text;
1246 /// Scroll the text control by specific amount..
1248 /// <param name="scroll">The amount (in pixels) of scrolling in horizontal & vertical directions.</param>
1249 [EditorBrowsable(EditorBrowsableState.Never)]
1250 public void ScrollBy(Vector2 scroll)
1252 Interop.TextEditor.ScrollBy(swigCPtr, Vector2.getCPtr(scroll));
1253 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1257 /// Get the InputMethodContext instance.
1259 /// <returns>The InputMethodContext instance.</returns>
1260 /// <since_tizen> 5 </since_tizen>
1261 public InputMethodContext GetInputMethodContext()
1263 if (inputMethodContext == null)
1265 /*Avoid raising InputMethodContext reference count.*/
1266 inputMethodContext = new InputMethodContext(Interop.TextEditor.GetInputMethodContext(swigCPtr), true);
1267 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1269 return inputMethodContext;
1273 /// Select the whole text.
1275 [EditorBrowsable(EditorBrowsableState.Never)]
1276 public void SelectWholeText()
1278 Interop.TextEditor.SelectWholeText(swigCPtr);
1279 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1283 /// Clear selection of the text.
1285 [EditorBrowsable(EditorBrowsableState.Never)]
1286 public void SelectNone()
1288 _ = Interop.TextEditor.SelectNone(swigCPtr);
1289 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1292 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TextEditor obj)
1294 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
1297 internal SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__TextEditor_Dali__Toolkit__TextEditor__InputStyle__MaskF_t InputStyleChangedSignal()
1299 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));
1300 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
1307 /// <since_tizen> 3 </since_tizen>
1308 protected override void Dispose(DisposeTypes type)
1315 if (systemlangTextFlag)
1317 SystemSettings.LocaleLanguageChanged -= SystemSettings_LocaleLanguageChanged;
1320 //Release your own unmanaged resources here.
1321 //You should not access any managed member here except static instance.
1322 //because the execution order of Finalizes is non-deterministic.
1326 if (_textEditorTextChangedCallbackDelegate != null)
1328 TextChangedSignal().Disconnect(_textEditorTextChangedCallbackDelegate);
1331 if (_textEditorMaxLengthReachedCallbackDelegate != null)
1333 this.MaxLengthReachedSignal().Disconnect(_textEditorMaxLengthReachedCallbackDelegate);
1340 /// This will not be public opened.
1341 [EditorBrowsable(EditorBrowsableState.Never)]
1342 protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
1344 // In order to speed up IME hide, temporarily add
1345 GetInputMethodContext()?.DestroyContext();
1346 Interop.TextEditor.DeleteTextEditor(swigCPtr);
1349 private string SetTranslatable(string textEditorSid)
1351 string translatableText = null;
1352 translatableText = NUIApplication.MultilingualResourceManager?.GetString(textEditorSid, new CultureInfo(SystemSettings.LocaleLanguage.Replace("_", "-")));
1353 if (translatableText != null)
1355 if (systemlangTextFlag == false)
1357 SystemSettings.LocaleLanguageChanged += SystemSettings_LocaleLanguageChanged;
1358 systemlangTextFlag = true;
1360 return translatableText;
1364 translatableText = "";
1365 return translatableText;
1369 private void SystemSettings_LocaleLanguageChanged(object sender, LocaleLanguageChangedEventArgs e)
1371 if (textEditorTextSid != null)
1373 Text = NUIApplication.MultilingualResourceManager?.GetString(textEditorTextSid, new CultureInfo(e.Value.Replace("_", "-")));
1375 if (textEditorPlaceHolderTextSid != null)
1377 PlaceholderText = NUIApplication.MultilingualResourceManager?.GetString(textEditorPlaceHolderTextSid, new CultureInfo(e.Value.Replace("_", "-")));
1381 internal new class Property
1383 internal static readonly int TEXT = Interop.TextEditor.TextGet();
1384 internal static readonly int TextColor = Interop.TextEditor.TextColorGet();
1385 internal static readonly int FontFamily = Interop.TextEditor.FontFamilyGet();
1386 internal static readonly int FontStyle = Interop.TextEditor.FontStyleGet();
1387 internal static readonly int PointSize = Interop.TextEditor.PointSizeGet();
1388 internal static readonly int HorizontalAlignment = Interop.TextEditor.HorizontalAlignmentGet();
1389 internal static readonly int ScrollThreshold = Interop.TextEditor.ScrollThresholdGet();
1390 internal static readonly int ScrollSpeed = Interop.TextEditor.ScrollSpeedGet();
1391 internal static readonly int PrimaryCursorColor = Interop.TextEditor.PrimaryCursorColorGet();
1392 internal static readonly int SecondaryCursorColor = Interop.TextEditor.SecondaryCursorColorGet();
1393 internal static readonly int EnableCursorBlink = Interop.TextEditor.EnableCursorBlinkGet();
1394 internal static readonly int CursorBlinkInterval = Interop.TextEditor.CursorBlinkIntervalGet();
1395 internal static readonly int CursorBlinkDuration = Interop.TextEditor.CursorBlinkDurationGet();
1396 internal static readonly int CursorWidth = Interop.TextEditor.CursorWidthGet();
1397 internal static readonly int GrabHandleImage = Interop.TextEditor.GrabHandleImageGet();
1398 internal static readonly int GrabHandlePressedImage = Interop.TextEditor.GrabHandlePressedImageGet();
1399 internal static readonly int SelectionHandleImageLeft = Interop.TextEditor.SelectionHandleImageLeftGet();
1400 internal static readonly int SelectionHandleImageRight = Interop.TextEditor.SelectionHandleImageRightGet();
1401 internal static readonly int SelectionHandlePressedImageLeft = Interop.TextEditor.SelectionHandlePressedImageLeftGet();
1402 internal static readonly int SelectionHandlePressedImageRight = Interop.TextEditor.SelectionHandlePressedImageRightGet();
1403 internal static readonly int SelectionHandleMarkerImageLeft = Interop.TextEditor.SelectionHandleMarkerImageLeftGet();
1404 internal static readonly int SelectionHandleMarkerImageRight = Interop.TextEditor.SelectionHandleMarkerImageRightGet();
1405 internal static readonly int SelectionHighlightColor = Interop.TextEditor.SelectionHighlightColorGet();
1406 internal static readonly int DecorationBoundingBox = Interop.TextEditor.DecorationBoundingBoxGet();
1407 internal static readonly int EnableMarkup = Interop.TextEditor.EnableMarkupGet();
1408 internal static readonly int InputColor = Interop.TextEditor.InputColorGet();
1409 internal static readonly int InputFontFamily = Interop.TextEditor.InputFontFamilyGet();
1410 internal static readonly int InputFontStyle = Interop.TextEditor.InputFontStyleGet();
1411 internal static readonly int InputPointSize = Interop.TextEditor.InputPointSizeGet();
1412 internal static readonly int LineSpacing = Interop.TextEditor.LineSpacingGet();
1413 internal static readonly int InputLineSpacing = Interop.TextEditor.InputLineSpacingGet();
1414 internal static readonly int UNDERLINE = Interop.TextEditor.UnderlineGet();
1415 internal static readonly int InputUnderline = Interop.TextEditor.InputUnderlineGet();
1416 internal static readonly int SHADOW = Interop.TextEditor.ShadowGet();
1417 internal static readonly int InputShadow = Interop.TextEditor.InputShadowGet();
1418 internal static readonly int EMBOSS = Interop.TextEditor.EmbossGet();
1419 internal static readonly int InputEmboss = Interop.TextEditor.InputEmbossGet();
1420 internal static readonly int OUTLINE = Interop.TextEditor.OutlineGet();
1421 internal static readonly int InputOutline = Interop.TextEditor.InputOutlineGet();
1422 internal static readonly int SmoothScroll = Interop.TextEditor.SmoothScrollGet();
1423 internal static readonly int SmoothScrollDuration = Interop.TextEditor.SmoothScrollDurationGet();
1424 internal static readonly int EnableScrollBar = Interop.TextEditor.EnableScrollBarGet();
1425 internal static readonly int ScrollBarShowDuration = Interop.TextEditor.ScrollBarShowDurationGet();
1426 internal static readonly int ScrollBarFadeDuration = Interop.TextEditor.ScrollBarFadeDurationGet();
1427 internal static readonly int PixelSize = Interop.TextEditor.PixelSizeGet();
1428 internal static readonly int LineCount = Interop.TextEditor.LineCountGet();
1429 internal static readonly int EnableSelection = Interop.TextEditor.EnableSelectionGet();
1430 internal static readonly int PLACEHOLDER = Interop.TextEditor.PlaceholderGet();
1431 internal static readonly int LineWrapMode = Interop.TextEditor.LineWrapModeGet();
1432 internal static readonly int PlaceholderText = Interop.TextEditor.PlaceholderTextGet();
1433 internal static readonly int PlaceholderTextColor = Interop.TextEditor.PlaceholderTextColorGet();
1434 internal static readonly int EnableShiftSelection = Interop.TextEditor.EnableShiftSelectionGet();
1435 internal static readonly int MatchSystemLanguageDirection = Interop.TextEditor.MatchSystemLanguageDirectionGet();
1436 internal static readonly int MaxLength = Interop.TextEditor.MaxLengthGet();
1437 internal static readonly int SelectedTextStart = Interop.TextEditor.SelectedTextStartGet();
1438 internal static readonly int SelectedTextEnd = Interop.TextEditor.SelectedTextEndGet();
1439 internal static readonly int EnableEditing = Interop.TextEditor.EnableEditingGet();
1440 internal static readonly int SelectedText = Interop.TextEditor.SelectedTextGet();
1441 internal static readonly int HorizontalScrollPosition = Interop.TextEditor.HorizontalScrollPositionGet();
1442 internal static readonly int VerticalScrollPosition = Interop.TextEditor.VerticalScrollPositionGet();
1445 internal class InputStyle
1451 FontFamily = 0x0002,
1454 LineSpacing = 0x0010,
1462 private void OnDecorationBoundingBoxChanged(int x, int y, int width, int height)
1464 DecorationBoundingBox = new Rectangle(x, y, width, height);
1466 private void OnInputColorChanged(float x, float y, float z, float w)
1468 InputColor = new Vector4(x, y, z, w);
1470 private void OnPlaceholderTextColorChanged(float r, float g, float b, float a)
1472 PlaceholderTextColor = new Color(r, g, b, a);
1474 private void OnPrimaryCursorColorChanged(float x, float y, float z, float w)
1476 PrimaryCursorColor = new Vector4(x, y, z, w);
1478 private void OnSecondaryCursorColorChanged(float x, float y, float z, float w)
1480 SecondaryCursorColor = new Vector4(x, y, z, w);
1482 private void OnSelectionHighlightColorChanged(float x, float y, float z, float w)
1484 SelectionHighlightColor = new Vector4(x, y, z, w);
1486 private void OnTextColorChanged(float x, float y, float z, float w)
1488 TextColor = new Vector4(x, y, z, w);