/* * Copyright(c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ extern alias TizenSystemSettings; using TizenSystemSettings.Tizen.System; using System; using System.Globalization; using System.ComponentModel; using Tizen.NUI.Binding; using Tizen.NUI.Text; namespace Tizen.NUI.BaseComponents { /// /// A control which provides a single line editable text field. /// /// 3 public partial class TextField : View { private string textFieldTextSid = null; private string textFieldPlaceHolderTextSid = null; private string textFieldPlaceHolderTextFocusedSid = null; private bool systemlangTextFlag = false; private InputMethodContext inputMethodCotext = null; private float fontSizeScale = 1.0f; private bool hasFontSizeChangedCallback = false; static TextField() { } /// /// Creates the TextField control. /// /// 3 public TextField() : this(Interop.TextField.New(), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// /// Creates the TextField with setting the status of shown or hidden. /// /// false : Not displayed (hidden), true : displayed (shown) /// This will be public opened in next release of tizen after ACR done. Before ACR, it is used as HiddenAPI (InhouseAPI). [EditorBrowsable(EditorBrowsableState.Never)] public TextField(bool shown) : this(Interop.TextField.New(), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); SetVisible(shown); } /// /// Get attributes, it is abstract function and must be override. /// [EditorBrowsable(EditorBrowsableState.Never)] protected override ViewStyle CreateViewStyle() { return new TextFieldStyle(); } internal TextField(global::System.IntPtr cPtr, bool cMemoryOwn, ViewStyle viewStyle, bool shown = true) : base(cPtr, cMemoryOwn, viewStyle) { if (!shown) { SetVisible(false); } } internal TextField(global::System.IntPtr cPtr, bool cMemoryOwn, bool shown = true) : base(cPtr, cMemoryOwn, null) { if (!shown) { SetVisible(false); } } internal TextField(TextField handle, bool shown = true) : this(Interop.TextField.NewTextField(TextField.getCPtr(handle)), true) { if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); if (!shown) { SetVisible(false); } } internal enum ExceedPolicyType { ExceedPolicyOriginal, ExceedPolicyClip } /// /// The TranslatableText property.
/// The text can set the SID value.
///
/// /// ResourceManager about multilingual is null. /// /// 4 public string TranslatableText { get { return (string)GetValue(TranslatableTextProperty); } set { SetValue(TranslatableTextProperty, value); } } private string translatableText { get { return textFieldTextSid; } set { if (NUIApplication.MultilingualResourceManager == null) { throw new ArgumentNullException(null, "ResourceManager about multilingual is null"); } textFieldTextSid = value; Text = SetTranslatable(textFieldTextSid); NotifyPropertyChanged(); } } /// /// The TranslatablePlaceholderText property.
/// The text can set the SID value.
///
/// /// ResourceManager about multilingual is null. /// /// 4 public string TranslatablePlaceholderText { get { return (string)GetValue(TranslatablePlaceholderTextProperty); } set { SetValue(TranslatablePlaceholderTextProperty, value); } } private string translatablePlaceholderText { get { return textFieldPlaceHolderTextSid; } set { if (NUIApplication.MultilingualResourceManager == null) { throw new ArgumentNullException(null, "ResourceManager about multilingual is null"); } textFieldPlaceHolderTextSid = value; PlaceholderText = SetTranslatable(textFieldPlaceHolderTextSid); NotifyPropertyChanged(); } } /// /// The TranslatablePlaceholderTextFocused property.
/// The text can set the SID value.
///
/// /// ResourceManager about multilingual is null. /// /// This will be public opened in tizen_6.5 after ACR done. Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public string TranslatablePlaceholderTextFocused { get { return (string)GetValue(TranslatablePlaceholderTextFocusedProperty); } set { SetValue(TranslatablePlaceholderTextFocusedProperty, value); } } private string translatablePlaceholderTextFocused { get { return textFieldPlaceHolderTextFocusedSid; } set { if (NUIApplication.MultilingualResourceManager == null) { throw new ArgumentNullException(null, "ResourceManager about multilingual is null"); } textFieldPlaceHolderTextFocusedSid = value; PlaceholderTextFocused = SetTranslatable(textFieldPlaceHolderTextFocusedSid); NotifyPropertyChanged(); } } /// /// The Text property. /// /// 3 public string Text { get { return (string)GetValue(TextProperty); } set { SetValueAndForceSendChangeSignal(TextProperty, value); NotifyPropertyChanged(); } } /// /// The PlaceholderText property. /// /// 3 public string PlaceholderText { get { return (string)GetValue(PlaceholderTextProperty); } set { SetValue(PlaceholderTextProperty, value); NotifyPropertyChanged(); } } /// /// The PlaceholderTextFocused property. /// /// 3 public string PlaceholderTextFocused { get { return (string)GetValue(PlaceholderTextFocusedProperty); } set { SetValue(PlaceholderTextFocusedProperty, value); NotifyPropertyChanged(); } } /// /// The FontFamily property. /// /// 3 public string FontFamily { get { return (string)GetValue(FontFamilyProperty); } set { SetValue(FontFamilyProperty, value); NotifyPropertyChanged(); } } /// /// The FontStyle property. /// The fontStyle map contains the following keys :
/// /// width (string)The width key defines occupied by each glyph. (values: ultraCondensed, extraCondensed, condensed, semiCondensed, normal, semiExpanded, expanded, extraExpanded, ultraExpanded) /// weight (string)The weight key defines the thickness or darkness of the glyphs. (values: thin, ultraLight, extraLight, light, demiLight, semiLight, book, normal, regular, medium, demiBold, semiBold, bold, ultraBold, extraBold, black, heavy, extraBlack) /// slant (string)The slant key defines whether to use italics. (values: normal, roman, italic, oblique) /// ///
/// 3 [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1721: Property names should not match get methods")] public PropertyMap FontStyle { get { return (PropertyMap)GetValue(FontStyleProperty); } set { SetValue(FontStyleProperty, value); NotifyPropertyChanged(); } } /// /// Set FontStyle to TextField.
///
/// The FontStyle /// /// SetFontStyle specifies the requested font style through .
///
/// /// The following example demonstrates how to use the SetFontStyle method. /// /// var fontStyle = new Tizen.NUI.Text.FontStyle(); /// fontStyle.Width = FontWidthType.Expanded; /// fontStyle.Weight = FontWeightType.Bold; /// fontStyle.Slant = FontSlantType.Italic; /// field.SetFontStyle(fontStyle); /// /// [EditorBrowsable(EditorBrowsableState.Never)] public void SetFontStyle(FontStyle fontStyle) { SetProperty(TextField.Property.FontStyle, new PropertyValue(TextUtils.GetFontStyleMap(fontStyle))); NotifyPropertyChanged(); } /// /// Get FontStyle from TextField.
///
/// The FontStyle /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public FontStyle GetFontStyle() { var map = new PropertyMap(); GetProperty(TextField.Property.FontStyle).Get(map); return TextUtils.GetFontStyleStruct(map); } /// /// The PointSize property. /// /// 3 public float PointSize { get { return (float)GetValue(PointSizeProperty); } set { SetValue(PointSizeProperty, value); NotifyPropertyChanged(); } } /// /// The MaxLength property. /// /// 3 public int MaxLength { get { return (int)GetValue(MaxLengthProperty); } set { SetValue(MaxLengthProperty, value); NotifyPropertyChanged(); } } /// /// The ExceedPolicy property. /// /// 3 public int ExceedPolicy { get { return (int)GetValue(ExceedPolicyProperty); } set { SetValue(ExceedPolicyProperty, value); NotifyPropertyChanged(); } } /// /// The HorizontalAlignment property. /// /// 3 public HorizontalAlignment HorizontalAlignment { get { return (HorizontalAlignment)GetValue(HorizontalAlignmentProperty); } set { SetValue(HorizontalAlignmentProperty, value); NotifyPropertyChanged(); } } /// /// The VerticalAlignment property. /// /// 3 public VerticalAlignment VerticalAlignment { get { return (VerticalAlignment)GetValue(VerticalAlignmentProperty); } set { SetValue(VerticalAlignmentProperty, value); NotifyPropertyChanged(); NotifyPropertyChanged(); } } /// /// The TextColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.TextColor.X = 0.1f;) is possible. /// /// 3 public Color TextColor { get { Color temp = (Color)GetValue(TextColorProperty); return new Color(OnTextColorChanged, temp.R, temp.G, temp.B, temp.A); } set { SetValue(TextColorProperty, value); NotifyPropertyChanged(); } } /// /// The PlaceholderTextColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.PlaceholderTextColor.X = 0.1f;) is possible. /// /// 3 public Vector4 PlaceholderTextColor { get { Vector4 temp = (Vector4)GetValue(PlaceholderTextColorProperty); return new Vector4(OnPlaceholderTextColorChanged, temp.X, temp.Y, temp.Z, temp.W); } set { SetValue(PlaceholderTextColorProperty, value); NotifyPropertyChanged(); } } /// /// The ShadowOffset property. /// /// 3 /// /// Deprecated.(API Level 6) Use Shadow instead. /// The property cascade chaining set is possible. For example, this (textField.ShadowOffset.X = 0.1f;) is possible. /// [Obsolete("Please do not use this ShadowOffset(Deprecated). Please use Shadow instead.")] public Vector2 ShadowOffset { get { PropertyMap map = new PropertyMap(); GetProperty(TextField.Property.SHADOW).Get(map); Vector2 shadowOffset = new Vector2(); map.Find(TextField.Property.SHADOW, "offset")?.Get(shadowOffset); return new Vector2(OnShadowOffsetChanged, shadowOffset.X, shadowOffset.Y); } set { PropertyMap temp = new PropertyMap(); temp.Insert("offset", new PropertyValue(value)); SetValue(ShadowProperty, temp); NotifyPropertyChanged(); } } /// /// The ShadowColor property. /// /// 3 /// /// Deprecated.(API Level 6) Use Shadow instead. /// The property cascade chaining set is possible. For example, this (textField.ShadowColor.X = 0.1f;) is possible. /// [Obsolete("Please do not use this ShadowColor(Deprecated). Please use Shadow instead.")] public Vector4 ShadowColor { get { PropertyMap map = new PropertyMap(); GetProperty(TextField.Property.SHADOW).Get(map); Vector4 shadowColor = new Vector4(); map.Find(TextField.Property.SHADOW, "color")?.Get(shadowColor); return new Vector4(OnShadowColorChanged, shadowColor.X, shadowColor.Y, shadowColor.Z, shadowColor.W); } set { PropertyMap temp = new PropertyMap(); temp.Insert("color", new PropertyValue(value)); SetValue(ShadowProperty, temp); NotifyPropertyChanged(); } } /// /// The PrimaryCursorColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.PrimaryCursorColor.X = 0.1f;) is possible. /// /// 3 public Vector4 PrimaryCursorColor { get { Vector4 temp = (Vector4)GetValue(PrimaryCursorColorProperty); return new Vector4(OnPrimaryCursorColorChanged, temp.X, temp.Y, temp.Z, temp.W); } set { SetValue(PrimaryCursorColorProperty, value); NotifyPropertyChanged(); } } /// /// The SecondaryCursorColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.SecondaryCursorColor.X = 0.1f;) is possible. /// /// 3 public Vector4 SecondaryCursorColor { get { Vector4 temp = (Vector4)GetValue(SecondaryCursorColorProperty); return new Vector4(OnSecondaryCursorColorChanged, temp.X, temp.Y, temp.Z, temp.W); } set { SetValue(SecondaryCursorColorProperty, value); NotifyPropertyChanged(); } } /// /// The EnableCursorBlink property. /// /// 3 public bool EnableCursorBlink { get { return (bool)GetValue(EnableCursorBlinkProperty); } set { SetValue(EnableCursorBlinkProperty, value); NotifyPropertyChanged(); } } /// /// The CursorBlinkInterval property. /// /// 3 public float CursorBlinkInterval { get { return (float)GetValue(CursorBlinkIntervalProperty); } set { SetValue(CursorBlinkIntervalProperty, value); NotifyPropertyChanged(); } } /// /// The CursorBlinkDuration property. /// /// 3 public float CursorBlinkDuration { get { return (float)GetValue(CursorBlinkDurationProperty); } set { SetValue(CursorBlinkDurationProperty, value); NotifyPropertyChanged(); } } /// /// The CursorWidth property. /// /// 3 public int CursorWidth { get { return (int)GetValue(CursorWidthProperty); } set { SetValue(CursorWidthProperty, value); NotifyPropertyChanged(); } } /// /// The GrabHandleImage property. /// /// 3 public string GrabHandleImage { get { return (string)GetValue(GrabHandleImageProperty); } set { SetValue(GrabHandleImageProperty, value); NotifyPropertyChanged(); } } /// /// The GrabHandlePressedImage property. /// /// 3 public string GrabHandlePressedImage { get { return (string)GetValue(GrabHandlePressedImageProperty); } set { SetValue(GrabHandlePressedImageProperty, value); NotifyPropertyChanged(); } } /// /// The ScrollThreshold property. /// /// 3 public float ScrollThreshold { get { return (float)GetValue(ScrollThresholdProperty); } set { SetValue(ScrollThresholdProperty, value); NotifyPropertyChanged(); } } /// /// The ScrollSpeed property. /// /// 3 public float ScrollSpeed { get { return (float)GetValue(ScrollSpeedProperty); } set { SetValue(ScrollSpeedProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHandleImageLeft property. /// The selectionHandleImageLeft map contains the following key :
/// /// filename (string)The path of image file /// ///
/// 3 public PropertyMap SelectionHandleImageLeft { get { return (PropertyMap)GetValue(SelectionHandleImageLeftProperty); } set { SetValue(SelectionHandleImageLeftProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHandleImageRight property. /// The selectionHandleImageRight map contains the following key :
/// /// filename (string)The path of image file /// ///
/// 3 public PropertyMap SelectionHandleImageRight { get { return (PropertyMap)GetValue(SelectionHandleImageRightProperty); } set { SetValue(SelectionHandleImageRightProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHandlePressedImageLeft property. /// The selectionHandlePressedImageLeft map contains the following key :
/// /// filename (string)The path of image file /// ///
/// 3 public PropertyMap SelectionHandlePressedImageLeft { get { return (PropertyMap)GetValue(SelectionHandlePressedImageLeftProperty); } set { SetValue(SelectionHandlePressedImageLeftProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHandlePressedImageRight property. /// The selectionHandlePressedImageRight map contains the following key :
/// /// filename (string)The path of image file /// ///
/// 3 public PropertyMap SelectionHandlePressedImageRight { get { return (PropertyMap)GetValue(SelectionHandlePressedImageRightProperty); } set { SetValue(SelectionHandlePressedImageRightProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHandleMarkerImageLeft property. /// The selectionHandleMarkerImageLeft map contains the following key :
/// /// filename (string)The path of image file /// ///
/// 3 public PropertyMap SelectionHandleMarkerImageLeft { get { return (PropertyMap)GetValue(SelectionHandleMarkerImageLeftProperty); } set { SetValue(SelectionHandleMarkerImageLeftProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHandleMarkerImageRight property. /// The selectionHandleMarkerImageRight map contains the following key :
/// /// filename (string)The path of image file /// ///
/// 3 public PropertyMap SelectionHandleMarkerImageRight { get { return (PropertyMap)GetValue(SelectionHandleMarkerImageRightProperty); } set { SetValue(SelectionHandleMarkerImageRightProperty, value); NotifyPropertyChanged(); } } /// /// The SelectionHighlightColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.SelectionHighlightColor.X = 0.1f;) is possible. /// /// 3 public Vector4 SelectionHighlightColor { get { Vector4 temp = (Vector4)GetValue(SelectionHighlightColorProperty); return new Vector4(OnSelectionHighlightColorChanged, temp.X, temp.Y, temp.Z, temp.W); } set { SetValue(SelectionHighlightColorProperty, value); NotifyPropertyChanged(); } } /// /// The DecorationBoundingBox property. /// /// /// The property cascade chaining set is possible. For example, this (textField.DecorationBoundingBox.X = 0.1f;) is possible. /// /// 3 public Rectangle DecorationBoundingBox { get { Rectangle temp = (Rectangle)GetValue(DecorationBoundingBoxProperty); return new Rectangle(OnDecorationBoundingBoxChanged, temp.X, temp.Y, temp.Width, temp.Height); } set { SetValue(DecorationBoundingBoxProperty, value); NotifyPropertyChanged(); } } /// /// The InputMethodSettings property. /// /// /// is a class encapsulating the input method map. Please use the class for this property. /// /// /// The following example demonstrates how to set the InputMethodSettings property. /// /// InputMethod method = new InputMethod(); /// method.PanelLayout = InputMethod.PanelLayoutType.Normal; /// method.ActionButton = InputMethod.ActionButtonTitleType.Default; /// method.AutoCapital = InputMethod.AutoCapitalType.Word; /// method.Variation = 1; /// textField.InputMethodSettings = method.OutputMap; /// /// /// 3 public PropertyMap InputMethodSettings { get { return (PropertyMap)GetValue(InputMethodSettingsProperty); } set { SetValue(InputMethodSettingsProperty, value); NotifyPropertyChanged(); } } /// /// The InputColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.InputColor.X = 0.1f;) is possible. /// /// 3 public Vector4 InputColor { get { Vector4 temp = (Vector4)GetValue(InputColorProperty); return new Vector4(OnInputColorChanged, temp.X, temp.Y, temp.Z, temp.W); } set { SetValue(InputColorProperty, value); NotifyPropertyChanged(); } } /// /// The EnableMarkup property. /// /// 3 public bool EnableMarkup { get { return (bool)GetValue(EnableMarkupProperty); } set { SetValue(EnableMarkupProperty, value); NotifyPropertyChanged(); } } /// /// The InputFontFamily property. /// /// 3 public string InputFontFamily { get { return (string)GetValue(InputFontFamilyProperty); } set { SetValue(InputFontFamilyProperty, value); NotifyPropertyChanged(); } } /// /// The InputFontStyle property. /// The inputFontStyle map contains the following keys :
/// /// width (string)The width key defines occupied by each glyph. (values: ultraCondensed, extraCondensed, condensed, semiCondensed, normal, semiExpanded, expanded, extraExpanded, ultraExpanded) /// weight (string)The weight key defines the thickness or darkness of the glyphs. (values: thin, ultraLight, extraLight, light, demiLight, semiLight, book, normal, regular, medium, demiBold, semiBold, bold, ultraBold, extraBold, black, heavy, extraBlack) /// slant (string)The slant key defines whether to use italics. (values: normal, roman, italic, oblique) /// ///
/// 3 [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1721: Property names should not match get methods")] public PropertyMap InputFontStyle { get { return (PropertyMap)GetValue(InputFontStyleProperty); } set { SetValue(InputFontStyleProperty, value); NotifyPropertyChanged(); } } /// /// Set InputFontStyle to TextField.
///
/// The FontStyle /// /// SetInputFontStyle specifies the requested font style for new input text through .
///
/// /// The following example demonstrates how to use the SetInputFontStyle method. /// /// var fontStyle = new Tizen.NUI.Text.FontStyle(); /// fontStyle.Width = FontWidthType.Expanded; /// fontStyle.Weight = FontWeightType.Bold; /// fontStyle.Slant = FontSlantType.Italic; /// field.SetInputFontStyle(fontStyle); /// /// [EditorBrowsable(EditorBrowsableState.Never)] public void SetInputFontStyle(FontStyle fontStyle) { SetProperty(TextField.Property.InputFontStyle, new PropertyValue(TextUtils.GetFontStyleMap(fontStyle))); NotifyPropertyChanged(); } /// /// Get InputFontStyle from TextField.
///
/// The FontStyle /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public FontStyle GetInputFontStyle() { var map = new PropertyMap(); GetProperty(TextField.Property.InputFontStyle).Get(map); return TextUtils.GetFontStyleStruct(map); } /// /// The InputPointSize property. /// /// 3 public float InputPointSize { get { return (float)GetValue(InputPointSizeProperty); } set { SetValue(InputPointSizeProperty, value); NotifyPropertyChanged(); } } /// /// The Underline property. /// The underline map contains the following keys :
/// /// enable (bool)Whether the underline is enabled (the default value is false) /// color (Color)The color of the underline (If not provided then the color of the text is used) /// height (float)The height in pixels of the underline (the default value is 1.f) /// ///
/// 3 [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1721: Property names should not match get methods")] public PropertyMap Underline { get { return (PropertyMap)GetValue(UnderlineProperty); } set { SetValue(UnderlineProperty, value); NotifyPropertyChanged(); } } /// /// Set Underline to TextField.
///
/// The Underline /// /// SetUnderline specifies the underline of the text through .
///
/// /// The following example demonstrates how to use the SetUnderline method. /// /// var underline = new Tizen.NUI.Text.Underline(); /// underline.Enable = true; /// underline.Color = new Color("#3498DB"); /// underline.Height = 2.0f; /// field.SetUnderline(underline); /// /// [EditorBrowsable(EditorBrowsableState.Never)] public void SetUnderline(Underline underline) { SetProperty(TextField.Property.UNDERLINE, new PropertyValue(TextUtils.GetUnderlineMap(underline))); } /// /// Get Underline from TextField.
///
/// The Underline /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public Underline GetUnderline() { var map = new PropertyMap(); GetProperty(TextField.Property.UNDERLINE).Get(map); return TextUtils.GetUnderlineStruct(map); } /// /// The InputUnderline property. /// /// 3 public string InputUnderline { get { return (string)GetValue(InputUnderlineProperty); } set { SetValue(InputUnderlineProperty, value); NotifyPropertyChanged(); } } /// /// The Shadow property. /// The shadow map contains the following keys :
/// /// color (Color)The color of the shadow (the default color is Color.Black) /// offset (Vector2)The offset in pixels of the shadow (If not provided then the shadow is not enabled) /// blurRadius (float)The radius of the Gaussian blur for the soft shadow (If not provided then the soft shadow is not enabled) /// ///
/// 3 [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1721: Property names should not match get methods")] public PropertyMap Shadow { get { return (PropertyMap)GetValue(ShadowProperty); } set { SetValue(ShadowProperty, value); NotifyPropertyChanged(); } } /// /// Set Shadow to TextField.
///
/// The Shadow /// /// SetShadow specifies the shadow of the text through .
///
/// /// The following example demonstrates how to use the SetShadow method. /// /// var shadow = new Tizen.NUI.Text.Shadow(); /// shadow.Offset = new Vector2(3, 3); /// shadow.Color = new Color("#F1C40F"); /// field.SetShadow(shadow); /// /// [EditorBrowsable(EditorBrowsableState.Never)] public void SetShadow(Tizen.NUI.Text.Shadow shadow) { SetProperty(TextField.Property.SHADOW, new PropertyValue(TextUtils.GetShadowMap(shadow))); } /// /// Get Shadow from TextField.
///
/// The Shadow /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public Tizen.NUI.Text.Shadow GetShadow() { var map = new PropertyMap(); GetProperty(TextField.Property.SHADOW).Get(map); return TextUtils.GetShadowStruct(map); } /// /// The InputShadow property. /// /// 3 public string InputShadow { get { return (string)GetValue(InputShadowProperty); } set { SetValue(InputShadowProperty, value); NotifyPropertyChanged(); } } /// /// The Emboss property. /// /// 3 public string Emboss { get { return (string)GetValue(EmbossProperty); } set { SetValue(EmbossProperty, value); NotifyPropertyChanged(); } } /// /// The InputEmboss property. /// /// 3 public string InputEmboss { get { return (string)GetValue(InputEmbossProperty); } set { SetValue(InputEmbossProperty, value); NotifyPropertyChanged(); } } /// /// The Outline property. /// The outline map contains the following keys :
/// /// color (Color)The color of the outline (the default color is Color.White) /// width (float)The width in pixels of the outline (If not provided then the outline is not enabled) /// ///
/// 3 [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1721: Property names should not match get methods")] public PropertyMap Outline { get { return (PropertyMap)GetValue(OutlineProperty); } set { SetValue(OutlineProperty, value); NotifyPropertyChanged(); } } /// /// Set Outline to TextField.
///
/// The Outline /// /// SetOutline specifies the outline of the text through .
///
/// /// The following example demonstrates how to use the SetOutline method. /// /// var outline = new Tizen.NUI.Text.Outline(); /// outline.Width = 2.0f; /// outline.Color = new Color("#45B39D"); /// field.SetOutline(outline); /// /// [EditorBrowsable(EditorBrowsableState.Never)] public void SetOutline(Outline outline) { SetProperty(TextField.Property.OUTLINE, new PropertyValue(TextUtils.GetOutlineMap(outline))); } /// /// Get Outline from TextField.
///
/// The Outline /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public Outline GetOutline() { var map = new PropertyMap(); GetProperty(TextField.Property.OUTLINE).Get(map); return TextUtils.GetOutlineStruct(map); } /// /// The InputOutline property. /// /// 3 public string InputOutline { get { return (string)GetValue(InputOutlineProperty); } set { SetValue(InputOutlineProperty, value); NotifyPropertyChanged(); } } /// /// The HiddenInputSettings property. /// The hiddenInputSettings map contains the following keys :
/// /// HiddenInputProperty.Mode (int)The mode for input text display (Use HiddenInputModeType) /// HiddenInputProperty.SubstituteCharacter (int)All input characters are substituted by this character /// HiddenInputProperty.SubstituteCount (int)Length of text to show or hide, available when HideCount/ShowCount mode is used /// HiddenInputProperty.ShowLastCharacterDuration (int)Hide last character after this duration, available when ShowLastCharacter mode /// ///
/// /// See and for a detailed description. /// /// /// The following example demonstrates how to set the HiddenInputSettings property. /// /// PropertyMap map = new PropertyMap(); /// map.Add(HiddenInputProperty.Mode, new PropertyValue((int)HiddenInputModeType.ShowLastCharacter)); /// map.Add(HiddenInputProperty.ShowLastCharacterDuration, new PropertyValue(500)); /// map.Add(HiddenInputProperty.SubstituteCharacter, new PropertyValue(0x2A)); /// textField.HiddenInputSettings = map; /// /// /// 3 public Tizen.NUI.PropertyMap HiddenInputSettings { get { return (PropertyMap)GetValue(HiddenInputSettingsProperty); } set { SetValue(HiddenInputSettingsProperty, value); NotifyPropertyChanged(); } } /// /// The PixelSize property. /// /// 3 public float PixelSize { get { return (float)GetValue(PixelSizeProperty); } set { SetValue(PixelSizeProperty, value); NotifyPropertyChanged(); } } /// /// The Enable selection property. /// /// 3 public bool EnableSelection { get { return (bool)GetValue(EnableSelectionProperty); } set { SetValue(EnableSelectionProperty, value); NotifyPropertyChanged(); } } /// /// The Enable selection property. /// /// 6 /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public bool EnableGrabHandle { get { return (bool)GetValue(EnableGrabHandleProperty); } set { SetValue(EnableGrabHandleProperty, value); NotifyPropertyChanged(); } } /// /// The Enable selection property. /// /// 6 /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public bool EnableGrabHandlePopup { get { return (bool)GetValue(EnableGrabHandlePopupProperty); } set { SetValue(EnableGrabHandlePopupProperty, value); NotifyPropertyChanged(); } } /// /// The Selected Text property. /// /// 8 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public string SelectedText { get { string temp; GetProperty(TextField.Property.SelectedText).Get(out temp); return temp; } } /// /// The start index for selection. /// /// 8 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public int SelectedTextStart { get { int temp; GetProperty(TextField.Property.SelectedTextStart).Get(out temp); return temp; } set { SetProperty(TextField.Property.SelectedTextStart, new PropertyValue(value)); NotifyPropertyChanged(); } } /// /// The end index for selection. /// /// 8 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public int SelectedTextEnd { get { int temp; GetProperty(TextField.Property.SelectedTextEnd).Get(out temp); return temp; } set { SetProperty(TextField.Property.SelectedTextEnd, new PropertyValue(value)); NotifyPropertyChanged(); } } /// /// Enable editing in text control. /// /// 8 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public bool EnableEditing { get { bool temp; GetProperty(TextField.Property.EnableEditing).Get(out temp); return temp; } set { SetProperty(TextField.Property.EnableEditing, new PropertyValue(value)); NotifyPropertyChanged(); } } /// /// Specify primary cursor (caret) position in text control. /// [EditorBrowsable(EditorBrowsableState.Never)] public int PrimaryCursorPosition { get { int temp; using (PropertyValue propertyValue = GetProperty(TextField.Property.PrimaryCursorPosition)) { propertyValue.Get(out temp); } return temp; } set { using (PropertyValue propertyValue = new PropertyValue(value)) { SetProperty(TextField.Property.PrimaryCursorPosition, propertyValue); NotifyPropertyChanged(); } } } /// /// The GrabHandleColor property. /// /// /// The property cascade chaining set is possible. For example, this (textField.GrabHandleColor.X = 0.1f;) is possible. /// [EditorBrowsable(EditorBrowsableState.Never)] public Color GrabHandleColor { get { Color temp = (Color)GetValue(GrabHandleColorProperty); return new Color(OnGrabHandleColorChanged, temp.R, temp.G, temp.B, temp.A); } set { SetValue(GrabHandleColorProperty, value); NotifyPropertyChanged(); } } /// /// The ellipsis position of the text. /// The ellipsis position type when the text size over the layout size.
/// The ellipsis position: End, Start or Middle.
///
[EditorBrowsable(EditorBrowsableState.Never)] public EllipsisPosition EllipsisPosition { get { return (EllipsisPosition)GetValue(EllipsisPositionProperty); } set { SetValue(EllipsisPositionProperty, value); NotifyPropertyChanged(); } } /// /// Set InputFilter to TextField.
///
/// The InputFilter /// /// filters input based on regular expressions.
/// Users can set the Accepted or Rejected regular expression set, or both.
/// If both are used, Rejected has higher priority.
/// The character set must follow the regular expression rules.
/// Behaviour can not be guaranteed for incorrect grammars.
/// Refer the link below for detailed rules.
/// The functions in std::regex library use the ECMAScript grammar:
/// http://cplusplus.com/reference/regex/ECMAScript/
/// InputFiltered signal is emitted when the input is filtered by InputFilter
/// See , and for a detailed description.
///
/// /// The following example demonstrates how to use the SetInputFilter method. /// /// var inputFilter = new Tizen.NUI.Text.InputFilter(); /// inputFilter.Accepted = @"[\d]"; // accept whole digits /// inputFilter.Rejected = "[0-3]"; // reject 0, 1, 2, 3 /// field.SetInputFilter(inputFilter); // acceptable inputs are 4, 5, 6, 7, 8, 9 /// /// [EditorBrowsable(EditorBrowsableState.Never)] public void SetInputFilter(InputFilter inputFilter) { SetProperty(TextField.Property.InputFilter, new PropertyValue(TextUtils.GetInputFilterMap(inputFilter))); } /// /// Get InputFilter from TextField.
///
/// The InputFilter /// /// /// [EditorBrowsable(EditorBrowsableState.Never)] public InputFilter GetInputFilter() { var map = new PropertyMap(); GetProperty(TextField.Property.InputFilter).Get(map); return TextUtils.GetInputFilterStruct(map); } /// /// The Placeholder property. /// The placeholder map contains the following keys :
/// /// text (string)The text to display when the TextField is empty and inactive /// textFocused (string)The text to display when the placeholder has focus /// color (Color)The color of the placeholder text /// fontFamily (string)The fontFamily of the placeholder text /// fontStyle (PropertyMap)The fontStyle of the placeholder text /// pointSize (float)The pointSize of the placeholder text /// pixelSize (float)The pixelSize of the placeholder text /// ellipsis (bool)The ellipsis of the placeholder text /// ///
/// /// The following example demonstrates how to set the Placeholder property. /// /// PropertyMap propertyMap = new PropertyMap(); /// propertyMap.Add("text", new PropertyValue("Setting Placeholder Text")); /// propertyMap.Add("textFocused", new PropertyValue("Setting Placeholder Text Focused")); /// propertyMap.Add("color", new PropertyValue(Color.Red)); /// propertyMap.Add("fontFamily", new PropertyValue("Arial")); /// propertyMap.Add("pointSize", new PropertyValue(12.0f)); /// /// PropertyMap fontStyleMap = new PropertyMap(); /// fontStyleMap.Add("weight", new PropertyValue("bold")); /// fontStyleMap.Add("width", new PropertyValue("condensed")); /// fontStyleMap.Add("slant", new PropertyValue("italic")); /// propertyMap.Add("fontStyle", new PropertyValue(fontStyleMap)); /// /// TextField field = new TextField(); /// field.Placeholder = propertyMap; /// /// /// 3 public Tizen.NUI.PropertyMap Placeholder { get { PropertyMap map = (PropertyMap)GetValue(PlaceholderProperty); PropertyValue value = null; // text value = map.Find(0); if (null != value) { value.Get(out string text); map.Add("text", new PropertyValue(text)); } // textFocused value = map.Find(1); if (null != value) { value.Get(out string textFocused); map.Add("textFocused", new PropertyValue(textFocused)); } // color value = map.Find(2); if (null != value) { Color color = new Color(); value.Get(color); map.Add("color", new PropertyValue(color)); } // fontFamily value = map.Find(3); if (null != value) { value.Get(out string fontFamily); map.Add("fontFamily", new PropertyValue(fontFamily)); } // fontStyle value = map.Find(4); if (null != value) { PropertyMap fontStyle = new PropertyMap(); value.Get(fontStyle); map.Add("fontStyle", new PropertyValue(fontStyle)); } // pointSize value = map.Find(5); if (null != value) { value.Get(out float pointSize); map.Add("pointSize", new PropertyValue(pointSize)); } // pixelSize value = map.Find(6); if (null != value) { value.Get(out float pixelSize); map.Add("pixelSize", new PropertyValue(pixelSize)); } // ellipsis value = map.Find(7); if (null != value) { value.Get(out bool ellipsis); map.Add("ellipsis", new PropertyValue(ellipsis)); } return map; } set { SetValue(PlaceholderProperty, value); NotifyPropertyChanged(); } } /// /// The Ellipsis property.
/// Enable or disable the ellipsis.
/// Placeholder PropertyMap is used to add ellipsis to placeholder text. ///
/// 4 public bool Ellipsis { get { return (bool)GetValue(EllipsisProperty); } set { SetValue(EllipsisProperty, value); NotifyPropertyChanged(); } } /// /// Enables selection of the text using the Shift key. /// /// 5 /// This will be released at Tizen.NET API Level 5, so currently this would be used as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public bool EnableShiftSelection { get { return (bool)GetValue(EnableShiftSelectionProperty); } set { SetValue(EnableShiftSelectionProperty, value); NotifyPropertyChanged(); } } /// /// The text alignment to match the direction of the system language. /// /// 6 public bool MatchSystemLanguageDirection { get { return (bool)GetValue(MatchSystemLanguageDirectionProperty); } set { SetValue(MatchSystemLanguageDirectionProperty, value); NotifyPropertyChanged(); } } /// /// The FontSizeScale property.
/// The default value is 1.0.
/// If FontSizeScale.UseSystemSetting, will use the SystemSettings.FontSize internally.
///
/// 9 public float FontSizeScale { get { return fontSizeScale; } set { float newFontSizeScale; if (fontSizeScale == value) return; fontSizeScale = value; if (fontSizeScale == Tizen.NUI.FontSizeScale.UseSystemSetting) { SystemSettingsFontSize systemSettingsFontSize; try { systemSettingsFontSize = SystemSettings.FontSize; } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); systemSettingsFontSize = SystemSettingsFontSize.Normal; } newFontSizeScale = TextUtils.GetFontSizeScale(systemSettingsFontSize); addFontSizeChangedCallback(); } else { newFontSizeScale = fontSizeScale; removeFontSizeChangedCallback(); } SetValue(FontSizeScaleProperty, newFontSizeScale); NotifyPropertyChanged(); } } /// 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.TextField.Text; }; } } } /// /// Get the InputMethodContext instance. /// /// The InputMethodContext instance. /// 5 public InputMethodContext GetInputMethodContext() { if (inputMethodCotext == null) { /*Avoid raising InputMethodContext reference count.*/ inputMethodCotext = new InputMethodContext(Interop.TextField.GetInputMethodContext(SwigCPtr), true); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } return inputMethodCotext; } /// /// Select the whole text. /// /// 6 /// This will be released at Tizen.NET API Level 5.5, so currently this would be used as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public void SelectWholeText() { Interop.TextField.SelectWholeText(SwigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// /// Select text from start to end index. /// /// The start index for selection. /// The end index for selection. [EditorBrowsable(EditorBrowsableState.Never)] public void SelectText(uint start, uint end) { Interop.TextField.SelectText(SwigCPtr, start, end); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// /// Clear selection of the text. /// /// 8 /// This will be public opened in tizen_6.0 after ACR done, Before ACR, need to be hidden as inhouse API. [EditorBrowsable(EditorBrowsableState.Never)] public void SelectNone() { _ = Interop.TextField.SelectNone(SwigCPtr); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TextField 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__TextField_Dali__Toolkit__TextField__InputStyle__MaskF_t InputStyleChangedSignal() { SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__TextField_Dali__Toolkit__TextField__InputStyle__MaskF_t ret = new SWIGTYPE_p_Dali__SignalT_void_fDali__Toolkit__TextField_Dali__Toolkit__TextField__InputStyle__MaskF_t(Interop.TextField.InputStyleChangedSignal(SwigCPtr)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } /// /// Dispose. /// /// 3 protected override void Dispose(DisposeTypes type) { if (disposed) { DisposeQueue.Instance.Add(this); return; } if (systemlangTextFlag) { SystemSettings.LocaleLanguageChanged -= SystemSettings_LocaleLanguageChanged; } removeFontSizeChangedCallback(); if (type == DisposeTypes.Explicit) { //Called by User //Release your own managed resources here. //You should release all of your own disposable objects here. } //Release your own unmanaged resources here. //You should not access any managed member here except static instance. //because the execution order of Finalizes is non-deterministic. if (this.HasBody()) { if (textFieldCursorPositionChangedCallbackDelegate != null) { this.CursorPositionChangedSignal().Disconnect(textFieldCursorPositionChangedCallbackDelegate); } if (textFieldMaxLengthReachedCallbackDelegate != null) { this.MaxLengthReachedSignal().Disconnect(textFieldMaxLengthReachedCallbackDelegate); } if (textFieldTextChangedCallbackDelegate != null) { TextChangedSignal().Disconnect(textFieldTextChangedCallbackDelegate); } } base.Dispose(type); } /// This will not be public opened. [EditorBrowsable(EditorBrowsableState.Never)] protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr) { // In order to speed up IME hide, temporarily add GetInputMethodContext()?.DestroyContext(); Interop.TextField.DeleteTextField(swigCPtr); } private string SetTranslatable(string textFieldSid) { string translatableText = null; translatableText = NUIApplication.MultilingualResourceManager?.GetString(textFieldSid, new CultureInfo(SystemSettings.LocaleLanguage.Replace("_", "-"))); if (translatableText != null) { if (systemlangTextFlag == false) { SystemSettings.LocaleLanguageChanged += SystemSettings_LocaleLanguageChanged; systemlangTextFlag = true; } return translatableText; } else { translatableText = ""; return translatableText; } } private void SystemSettings_LocaleLanguageChanged(object sender, LocaleLanguageChangedEventArgs e) { if (textFieldTextSid != null) { Text = NUIApplication.MultilingualResourceManager?.GetString(textFieldTextSid, new CultureInfo(e.Value.Replace("_", "-"))); } if (textFieldPlaceHolderTextSid != null) { PlaceholderText = NUIApplication.MultilingualResourceManager?.GetString(textFieldPlaceHolderTextSid, new CultureInfo(e.Value.Replace("_", "-"))); } if (textFieldPlaceHolderTextFocusedSid != null) { PlaceholderTextFocused = NUIApplication.MultilingualResourceManager?.GetString(textFieldPlaceHolderTextFocusedSid, new CultureInfo(e.Value.Replace("_", "-"))); } } private void SystemSettingsFontSizeChanged(object sender, FontSizeChangedEventArgs e) { float newFontSizeScale = TextUtils.GetFontSizeScale(e.Value); SetValue(FontSizeScaleProperty, newFontSizeScale); NotifyPropertyChanged(); } private void addFontSizeChangedCallback() { if (hasFontSizeChangedCallback != true) { try { SystemSettings.FontSizeChanged += SystemSettingsFontSizeChanged; hasFontSizeChangedCallback = true; } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); hasFontSizeChangedCallback = false; } } } private void removeFontSizeChangedCallback() { if (hasFontSizeChangedCallback == true) { try { SystemSettings.FontSizeChanged -= SystemSettingsFontSizeChanged; hasFontSizeChangedCallback = false; } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); hasFontSizeChangedCallback = true; } } } internal new class Property { internal static readonly int TEXT = Interop.TextField.TextGet(); internal static readonly int PlaceholderText = Interop.TextField.PlaceholderTextGet(); internal static readonly int PlaceholderTextFocused = Interop.TextField.PlaceholderTextFocusedGet(); internal static readonly int FontFamily = Interop.TextField.FontFamilyGet(); internal static readonly int FontStyle = Interop.TextField.FontStyleGet(); internal static readonly int PointSize = Interop.TextField.PointSizeGet(); internal static readonly int MaxLength = Interop.TextField.MaxLengthGet(); internal static readonly int ExceedPolicy = Interop.TextField.ExceedPolicyGet(); internal static readonly int HorizontalAlignment = Interop.TextField.HorizontalAlignmentGet(); internal static readonly int VerticalAlignment = Interop.TextField.VerticalAlignmentGet(); internal static readonly int TextColor = Interop.TextField.TextColorGet(); internal static readonly int PlaceholderTextColor = Interop.TextField.PlaceholderTextColorGet(); internal static readonly int PrimaryCursorColor = Interop.TextField.PrimaryCursorColorGet(); internal static readonly int SecondaryCursorColor = Interop.TextField.SecondaryCursorColorGet(); internal static readonly int EnableCursorBlink = Interop.TextField.EnableCursorBlinkGet(); internal static readonly int CursorBlinkInterval = Interop.TextField.CursorBlinkIntervalGet(); internal static readonly int CursorBlinkDuration = Interop.TextField.CursorBlinkDurationGet(); internal static readonly int CursorWidth = Interop.TextField.CursorWidthGet(); internal static readonly int GrabHandleImage = Interop.TextField.GrabHandleImageGet(); internal static readonly int GrabHandlePressedImage = Interop.TextField.GrabHandlePressedImageGet(); internal static readonly int ScrollThreshold = Interop.TextField.ScrollThresholdGet(); internal static readonly int ScrollSpeed = Interop.TextField.ScrollSpeedGet(); internal static readonly int SelectionHandleImageLeft = Interop.TextField.SelectionHandleImageLeftGet(); internal static readonly int SelectionHandleImageRight = Interop.TextField.SelectionHandleImageRightGet(); internal static readonly int SelectionHandlePressedImageLeft = Interop.TextField.SelectionHandlePressedImageLeftGet(); internal static readonly int SelectionHandlePressedImageRight = Interop.TextField.SelectionHandlePressedImageRightGet(); internal static readonly int SelectionHandleMarkerImageLeft = Interop.TextField.SelectionHandleMarkerImageLeftGet(); internal static readonly int SelectionHandleMarkerImageRight = Interop.TextField.SelectionHandleMarkerImageRightGet(); internal static readonly int SelectionHighlightColor = Interop.TextField.SelectionHighlightColorGet(); internal static readonly int DecorationBoundingBox = Interop.TextField.DecorationBoundingBoxGet(); internal static readonly int InputMethodSettings = Interop.TextField.InputMethodSettingsGet(); internal static readonly int InputColor = Interop.TextField.InputColorGet(); internal static readonly int EnableMarkup = Interop.TextField.EnableMarkupGet(); internal static readonly int InputFontFamily = Interop.TextField.InputFontFamilyGet(); internal static readonly int InputFontStyle = Interop.TextField.InputFontStyleGet(); internal static readonly int InputPointSize = Interop.TextField.InputPointSizeGet(); internal static readonly int UNDERLINE = Interop.TextField.UnderlineGet(); internal static readonly int InputUnderline = Interop.TextField.InputUnderlineGet(); internal static readonly int SHADOW = Interop.TextField.ShadowGet(); internal static readonly int InputShadow = Interop.TextField.InputShadowGet(); internal static readonly int EMBOSS = Interop.TextField.EmbossGet(); internal static readonly int InputEmboss = Interop.TextField.InputEmbossGet(); internal static readonly int OUTLINE = Interop.TextField.OutlineGet(); internal static readonly int InputOutline = Interop.TextField.InputOutlineGet(); internal static readonly int HiddenInputSettings = Interop.TextField.HiddenInputSettingsGet(); internal static readonly int PixelSize = Interop.TextField.PixelSizeGet(); internal static readonly int EnableSelection = Interop.TextField.EnableSelectionGet(); internal static readonly int PLACEHOLDER = Interop.TextField.PlaceholderGet(); internal static readonly int ELLIPSIS = Interop.TextField.EllipsisGet(); internal static readonly int EnableShiftSelection = Interop.TextField.EnableShiftSelectionGet(); internal static readonly int MatchSystemLanguageDirection = Interop.TextField.MatchSystemLanguageDirectionGet(); internal static readonly int EnableGrabHandle = Interop.TextField.EnableGrabHandleGet(); internal static readonly int EnableGrabHandlePopup = Interop.TextField.EnableGrabHandlePopupGet(); internal static readonly int SelectedText = Interop.TextField.SelectedTextGet(); internal static readonly int SelectedTextStart = Interop.TextField.SelectedTextStartGet(); internal static readonly int SelectedTextEnd = Interop.TextField.SelectedTextEndGet(); internal static readonly int EnableEditing = Interop.TextField.EnableEditingGet(); internal static readonly int PrimaryCursorPosition = Interop.TextField.PrimaryCursorPositionGet(); internal static readonly int FontSizeScale = Interop.TextField.FontSizeScaleGet(); internal static readonly int GrabHandleColor = Interop.TextField.GrabHandleColorGet(); internal static readonly int EllipsisPosition = Interop.TextField.EllipsisPositionGet(); internal static readonly int InputFilter = Interop.TextField.InputFilterGet(); } internal class InputStyle { internal enum Mask { None = 0x0000, Color = 0x0001, FontFamily = 0x0002, PointSize = 0x0004, FontStyle = 0x0008, Underline = 0x0010, Shadow = 0x0020, Emboss = 0x0040, Outline = 0x0080 } } private void OnDecorationBoundingBoxChanged(int x, int y, int width, int height) { DecorationBoundingBox = new Rectangle(x, y, width, height); } private void OnInputColorChanged(float x, float y, float z, float w) { InputColor = new Vector4(x, y, z, w); } private void OnPlaceholderTextColorChanged(float r, float g, float b, float a) { PlaceholderTextColor = new Vector4(r, g, b, a); } private void OnPrimaryCursorColorChanged(float x, float y, float z, float w) { PrimaryCursorColor = new Vector4(x, y, z, w); } private void OnSecondaryCursorColorChanged(float x, float y, float z, float w) { SecondaryCursorColor = new Vector4(x, y, z, w); } private void OnSelectionHighlightColorChanged(float x, float y, float z, float w) { SelectionHighlightColor = new Vector4(x, y, z, w); } private void OnShadowColorChanged(float x, float y, float z, float w) { ShadowColor = new Vector4(x, y, z, w); } private void OnShadowOffsetChanged(float x, float y) { ShadowOffset = new Vector2(x, y); } private void OnTextColorChanged(float r, float g, float b, float a) { TextColor = new Color(r, g, b, a); } private void OnGrabHandleColorChanged(float r, float g, float b, float a) { GrabHandleColor = new Color(r, g, b, a); } } }