[NUI] Add TextEditorStyle and theme example code (#2778)
authorJiyun Yang <ji.yang@samsung.com>
Fri, 2 Apr 2021 02:16:03 +0000 (11:16 +0900)
committerhuiyueun <35286162+huiyueun@users.noreply.github.com>
Tue, 20 Apr 2021 06:13:00 +0000 (15:13 +0900)
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
src/Tizen.NUI/src/public/BaseComponents/Style/TextEditorStyle.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs
src/Tizen.NUI/src/public/Theme/DefaultTheme.cs
src/Tizen.NUI/src/public/Theme/DefaultThemeCommon.cs [new file with mode: 0644]
src/Tizen.NUI/src/public/Theme/DefaultThemeTV.cs [new file with mode: 0644]

diff --git a/src/Tizen.NUI/src/public/BaseComponents/Style/TextEditorStyle.cs b/src/Tizen.NUI/src/public/BaseComponents/Style/TextEditorStyle.cs
new file mode 100755 (executable)
index 0000000..721082f
--- /dev/null
@@ -0,0 +1,523 @@
+/*
+ * 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.
+ *
+ */
+using System;
+using System.ComponentModel;
+using Tizen.NUI.Binding;
+
+namespace Tizen.NUI.BaseComponents
+{
+    /// <summary>
+    /// The style class for TextEditor.
+    /// This can decorate a TextEditor instance.
+    /// </summary>
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    public class TextEditorStyle : ViewStyle
+    {
+        /// <summary> The bindable property of FontFamily. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty FontFamilyProperty = BindableProperty.Create(nameof(FontFamily), typeof(string), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).fontFamily = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).fontFamily);
+
+        /// <summary> The bindable property of PointSize. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty PointSizeProperty = BindableProperty.Create(nameof(PointSize), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).pointSize = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).pointSize);
+        
+        /// <summary> The bindable property of PixelSize. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty PixelSizeProperty = BindableProperty.Create(nameof(PixelSize), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).pixelSize = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).pixelSize);
+
+        /// <summary> The bindable property of TextColor. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty TextColorProperty = BindableProperty.Create(nameof(TextColor), typeof(Vector4), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).textColor = (Vector4)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).textColor);
+
+        /// <summary> The bindable property of PlaceholderTextColor. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty PlaceholderTextColorProperty = BindableProperty.Create(nameof(PlaceholderTextColor), typeof(Color), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).placeholderTextColor = (Color)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).placeholderTextColor);
+
+        /// <summary> The bindable property of PrimaryCursorColor. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty PrimaryCursorColorProperty = BindableProperty.Create(nameof(PrimaryCursorColor), typeof(Vector4), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).primaryCursorColor = (Vector4)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).primaryCursorColor);
+
+        /// <summary> The bindable property of HorizontalAlignment. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty HorizontalAlignmentProperty = BindableProperty.Create(nameof(HorizontalAlignment), typeof(HorizontalAlignment?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).horizontalAlignment = (HorizontalAlignment?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).horizontalAlignment);
+
+        /// <summary> The bindable property of SecondaryCursorColor. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty SecondaryCursorColorProperty = BindableProperty.Create(nameof(SecondaryCursorColor), typeof(Vector4), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).secondaryCursorColor = (Vector4)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).secondaryCursorColor);
+
+        /// <summary> The bindable property of EnableCursorBlink. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty EnableCursorBlinkProperty = BindableProperty.Create(nameof(EnableCursorBlink), typeof(bool?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).enableCursorBlink = (bool?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).enableCursorBlink);
+
+        /// <summary> The bindable property of CursorBlinkInterval. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty CursorBlinkIntervalProperty = BindableProperty.Create(nameof(CursorBlinkInterval), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).cursorBlinkInterval = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).cursorBlinkInterval);
+
+        /// <summary> The bindable property of CursorBlinkDuration. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty CursorBlinkDurationProperty = BindableProperty.Create(nameof(CursorBlinkDuration), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).cursorBlinkDuration = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).cursorBlinkDuration);
+
+        /// <summary> The bindable property of CursorWidth. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty CursorWidthProperty = BindableProperty.Create(nameof(CursorWidth), typeof(int?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).cursorWidth = (int?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).cursorWidth);
+
+        /// <summary> The bindable property of GrabHandleImage. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty GrabHandleImageProperty = BindableProperty.Create(nameof(GrabHandleImage), typeof(string), typeof(TextEditorStyle), String.Empty,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).grabHandleImage = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).grabHandleImage);
+
+        /// <summary> The bindable property of GrabHandlePressedImage. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty GrabHandlePressedImageProperty = BindableProperty.Create(nameof(GrabHandlePressedImage), typeof(string), typeof(TextEditorStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).grabHandlePressedImage = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).grabHandlePressedImage);
+
+        /// <summary> The bindable property of ScrollThreshold. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty ScrollThresholdProperty = BindableProperty.Create(nameof(ScrollThreshold), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).scrollThreshold = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).scrollThreshold);
+
+        /// <summary> The bindable property of ScrollSpeed. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty ScrollSpeedProperty = BindableProperty.Create(nameof(ScrollSpeed), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).scrollSpeed = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).scrollSpeed);
+
+        /// <summary> The bindable property of SelectionHighlightColor. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty SelectionHighlightColorProperty = BindableProperty.Create(nameof(SelectionHighlightColor), typeof(Vector4), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).selectionHighlightColor = (Vector4)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).selectionHighlightColor);
+
+        /// <summary> The bindable property of DecorationBoundingBox. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty DecorationBoundingBoxProperty = BindableProperty.Create(nameof(DecorationBoundingBox), typeof(Rectangle), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).decorationBoundingBox = (Rectangle)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).decorationBoundingBox);
+
+        /// <summary> The bindable property of InputColor. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputColorProperty = BindableProperty.Create(nameof(InputColor), typeof(Vector4), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputColor = (Vector4)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputColor);
+
+
+        /// <summary> The bindable property of InputFontFamily. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputFontFamilyProperty = BindableProperty.Create(nameof(InputFontFamily), typeof(string), typeof(TextEditorStyle), String.Empty, propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputFontFamily = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputFontFamily);
+
+        /// <summary> The bindable property of InputPointSize. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputPointSizeProperty = BindableProperty.Create(nameof(InputPointSize), typeof(float?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputPointSize = (float?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputPointSize);
+
+        /// <summary> The bindable property of InputUnderline. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputUnderlineProperty = BindableProperty.Create(nameof(InputUnderline), typeof(string), typeof(TextEditorStyle), String.Empty,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputUnderline = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputUnderline);
+
+        /// <summary> The bindable property of InputShadow. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputShadowProperty = BindableProperty.Create(nameof(InputShadow), typeof(string), typeof(TextEditorStyle), String.Empty,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputShadow = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputShadow);
+
+        /// <summary> The bindable property of Emboss. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty EmbossProperty = BindableProperty.Create(nameof(Emboss), typeof(string), typeof(TextEditorStyle), String.Empty,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).emboss = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).emboss);
+
+        /// <summary> The bindable property of InputEmboss. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputEmbossProperty = BindableProperty.Create(nameof(InputEmboss), typeof(string), typeof(TextEditorStyle), String.Empty,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputEmboss = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputEmboss);
+
+        /// <summary> The bindable property of InputOutline. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty InputOutlineProperty = BindableProperty.Create(nameof(InputOutline), typeof(string), typeof(TextEditorStyle), String.Empty,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).inputOutline = (string)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).inputOutline);
+
+        /// <summary> The bindable property of EnableSelection. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty EnableSelectionProperty = BindableProperty.Create(nameof(EnableSelection), typeof(bool?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).enableSelection = (bool?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).enableSelection);
+
+        /// <summary> The bindable property of MatchSystemLanguageDirection. </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal static readonly BindableProperty MatchSystemLanguageDirectionProperty = BindableProperty.Create(nameof(MatchSystemLanguageDirection), typeof(bool?), typeof(TextEditorStyle), null,
+            propertyChanged: (bindable, oldValue, newValue) => ((TextEditorStyle)bindable).matchSystemLanguageDirection = (bool?)newValue,
+            defaultValueCreator: (bindable) => ((TextEditorStyle)bindable).matchSystemLanguageDirection);
+
+        private HorizontalAlignment? horizontalAlignment;
+        private Vector4 secondaryCursorColor;
+        private bool? enableCursorBlink;
+        private float? cursorBlinkInterval;
+        private float? cursorBlinkDuration;
+        private int? cursorWidth;
+        private string grabHandleImage;
+        private string grabHandlePressedImage;
+        private float? scrollThreshold;
+        private float? scrollSpeed;
+        private Vector4 selectionHighlightColor;
+        private Rectangle decorationBoundingBox;
+        private Vector4 inputColor;
+        private string inputFontFamily;
+        private float? inputPointSize;
+        private string inputUnderline;
+        private string inputShadow;
+        private string emboss;
+        private string inputEmboss;
+        private string inputOutline;
+        private float? pixelSize;
+        private bool? enableSelection;
+        private bool? matchSystemLanguageDirection;
+        private string fontFamily;
+        private Vector4 textColor;
+        private float? pointSize;
+        private Color placeholderTextColor;
+        private Vector4 primaryCursorColor;
+
+        static TextEditorStyle() { }
+
+        /// <summary>
+        /// Create an empty instance.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public TextEditorStyle() : base()
+        {
+        }
+
+        /// <summary>
+        /// The FontFamily property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string FontFamily
+        {
+            get => (string)GetValue(FontFamilyProperty);
+            set => SetValue(FontFamilyProperty, value);
+        }
+
+        /// <summary>
+        /// The HorizontalAlignment property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public HorizontalAlignment? HorizontalAlignment
+        {
+            get => (HorizontalAlignment?)GetValue(HorizontalAlignmentProperty);
+            set => SetValue(HorizontalAlignmentProperty, value);
+        }
+
+        /// <summary>
+        /// The SecondaryCursorColor property.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector4 SecondaryCursorColor
+        {
+            get => (Vector4)GetValue(SecondaryCursorColorProperty);
+            set => SetValue(SecondaryCursorColorProperty, value);
+        }
+
+        /// <summary>
+        /// The EnableCursorBlink property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool? EnableCursorBlink
+        {
+            get => (bool?)GetValue(EnableCursorBlinkProperty);
+            set => SetValue(EnableCursorBlinkProperty, value);
+        }
+
+        /// <summary>
+        /// The CursorBlinkInterval property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? CursorBlinkInterval
+        {
+            get => (float?)GetValue(CursorBlinkIntervalProperty);
+            set => SetValue(CursorBlinkIntervalProperty, value);
+        }
+
+        /// <summary>
+        /// The CursorBlinkDuration property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? CursorBlinkDuration
+        {
+            get => (float?)GetValue(CursorBlinkDurationProperty);
+            set => SetValue(CursorBlinkDurationProperty, value);
+        }
+
+        /// <summary>
+        /// The CursorWidth property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public int? CursorWidth
+        {
+            get => (int?)GetValue(CursorWidthProperty);
+            set => SetValue(CursorWidthProperty, value);
+        }
+
+        /// <summary>
+        /// The GrabHandleImage property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string GrabHandleImage
+        {
+            get => (string)GetValue(GrabHandleImageProperty);
+            set => SetValue(GrabHandleImageProperty, value);
+        }
+
+        /// <summary>
+        /// The GrabHandlePressedImage property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string GrabHandlePressedImage
+        {
+            get => (string)GetValue(GrabHandlePressedImageProperty);
+            set => SetValue(GrabHandlePressedImageProperty, value);
+        }
+
+        /// <summary>
+        /// The ScrollThreshold property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? ScrollThreshold
+        {
+            get => (float?)GetValue(ScrollThresholdProperty);
+            set => SetValue(ScrollThresholdProperty, value);
+        }
+
+        /// <summary>
+        /// The ScrollSpeed property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? ScrollSpeed
+        {
+            get => (float?)GetValue(ScrollSpeedProperty);
+            set => SetValue(ScrollSpeedProperty, value);
+        }
+
+        /// <summary>
+        /// The SelectionHighlightColor property.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector4 SelectionHighlightColor
+        {
+            get => (Vector4)GetValue(SelectionHighlightColorProperty);
+            set => SetValue(SelectionHighlightColorProperty, value);
+        }
+
+        /// <summary>
+        /// The DecorationBoundingBox property.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Rectangle DecorationBoundingBox
+        {
+            get => (Rectangle)GetValue(DecorationBoundingBoxProperty);
+            set => SetValue(DecorationBoundingBoxProperty, value);
+        }
+
+        /// <summary>
+        /// The InputColor property.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector4 InputColor
+        {
+            get => (Vector4)GetValue(InputColorProperty);
+            set => SetValue(InputColorProperty, value);
+        }
+
+        /// <summary>
+        /// The InputFontFamily property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string InputFontFamily
+        {
+            get => (string)GetValue(InputFontFamilyProperty);
+            set => SetValue(InputFontFamilyProperty, value);
+        }
+
+        /// <summary>
+        /// The InputPointSize property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? InputPointSize
+        {
+            get => (float?)GetValue(InputPointSizeProperty);
+            set => SetValue(InputPointSizeProperty, value);
+        }
+
+        /// <summary>
+        /// The InputUnderline property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string InputUnderline
+        {
+            get => (string)GetValue(InputUnderlineProperty);
+            set => SetValue(InputUnderlineProperty, value);
+        }
+
+        /// <summary>
+        /// The InputShadow property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string InputShadow
+        {
+            get => (string)GetValue(InputShadowProperty);
+            set => SetValue(InputShadowProperty, value);
+        }
+
+        /// <summary>
+        /// The Emboss property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string Emboss
+        {
+            get => (string)GetValue(EmbossProperty);
+            set => SetValue(EmbossProperty, value);
+        }
+
+        /// <summary>
+        /// The InputEmboss property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string InputEmboss
+        {
+            get => (string)GetValue(InputEmbossProperty);
+            set => SetValue(InputEmbossProperty, value);
+        }
+
+        /// <summary>
+        /// The InputOutline property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string InputOutline
+        {
+            get => (string)GetValue(InputOutlineProperty);
+            set => SetValue(InputOutlineProperty, value);
+        }
+
+        /// <summary>
+        /// The PixelSize property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? PixelSize
+        {
+            get => (float?)GetValue(PixelSizeProperty);
+            set => SetValue(PixelSizeProperty, value);
+        }
+
+        /// <summary>
+        /// The EnableSelection property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool? EnableSelection
+        {
+            get => (bool?)GetValue(EnableSelectionProperty);
+            set => SetValue(EnableSelectionProperty, value);
+        }
+
+        /// <summary>
+        /// The text alignment to match the direction of the system language.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool? MatchSystemLanguageDirection
+        {
+            get => (bool?)GetValue(MatchSystemLanguageDirectionProperty);
+            set => SetValue(MatchSystemLanguageDirectionProperty, value);
+        }
+
+        /// <summary>
+        /// The TextColor property.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector4 TextColor
+        {
+            get => (Vector4)GetValue(TextColorProperty);
+            set => SetValue(TextColorProperty, value);
+        }
+
+        /// <summary>
+        /// The PointSize property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float? PointSize
+        {
+            get => (float?)GetValue(PointSizeProperty);
+            set => SetValue(PointSizeProperty, value);
+        }
+
+        /// <summary>
+        /// The Placeholder text color.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Color PlaceholderTextColor
+        {
+            get => (Color)GetValue(PlaceholderTextColorProperty);
+            set => SetValue(PlaceholderTextColorProperty, value);
+        }
+
+        /// <summary>
+        /// The PrimaryCursorColor property.
+        /// Note that the cascade chaining set is impossible. Please set a whole value.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector4 PrimaryCursorColor
+        {
+            get => (Vector4)GetValue(PrimaryCursorColorProperty);
+            set => SetValue(PrimaryCursorColorProperty, value);
+        }
+    }
+}
index a1414d8..b155f96 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2018 Samsung Electronics Co., Ltd.
+ * 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.
@@ -37,6 +37,8 @@ namespace Tizen.NUI.BaseComponents
         private float fontSizeScale = 1.0f;
         private bool hasFontSizeChangedCallback = false;
 
+        static TextEditor() { }
+
         /// <summary>
         /// Creates the TextEditor control.
         /// </summary>
@@ -47,6 +49,14 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
+        /// Creates the TextEditor with specified style.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public TextEditor(TextEditorStyle style) : this(Interop.TextLabel.New(), true, style: style)
+        {
+        }
+
+        /// <summary>
         /// Creates the TextEditor with setting the status of shown or hidden.
         /// </summary>
         /// <param name="shown">false : Not displayed (hidden), true : displayed (shown)</param>
@@ -68,7 +78,7 @@ namespace Tizen.NUI.BaseComponents
             }
         }
 
-        internal TextEditor(global::System.IntPtr cPtr, bool cMemoryOwn, bool shown = true) : base(cPtr, cMemoryOwn)
+        internal TextEditor(global::System.IntPtr cPtr, bool cMemoryOwn, bool shown = true, TextEditorStyle style = null) : base(cPtr, cMemoryOwn, style)
         {
             if (!shown)
             {
index b9e6784..c2dd2a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2020 Samsung Electronics Co., Ltd.
+ * 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.
@@ -19,7 +19,7 @@ using System.Collections.Generic;
 
 namespace Tizen.NUI
 {
-    internal class DefaultThemeCreator : IThemeCreator
+    internal partial class DefaultThemeCreator : IThemeCreator
     {
         private DefaultThemeCreator() { }
 
@@ -28,16 +28,6 @@ namespace Tizen.NUI
 
         internal static IThemeCreator Instance { get; set; } = new DefaultThemeCreator();
 
-        public Theme Create()
-        {
-            Theme theme = new Theme()
-            {
-                Id = DefaultId,
-                Version = DefaultVersion,
-            };
-            return theme;
-        }
-
         public HashSet<ExternalThemeKeyList> GetExternalThemeKeyListSet() => null;
     }
 }
diff --git a/src/Tizen.NUI/src/public/Theme/DefaultThemeCommon.cs b/src/Tizen.NUI/src/public/Theme/DefaultThemeCommon.cs
new file mode 100644 (file)
index 0000000..09082b7
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ *
+ */
+#if !PROFILE_TV
+
+using System.Diagnostics.CodeAnalysis;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI
+{
+    internal partial class DefaultThemeCreator
+    {
+        [SuppressMessage("Microsoft.Reliability", "CA2000: Dispose objects before losing scope", Justification = "The responsibility to dispose the object is transferred to the theme object.")]
+        public Theme Create()
+        {
+            Theme theme = new Theme()
+            {
+                Id = DefaultId,
+                Version = DefaultVersion,
+            };
+
+            // // TODO Add a TextLabelStyle style to the theme if need.
+            // // This is an example of text label style.
+            // theme.AddStyleWithoutClone("Tizen.NUI.BaseComponents.TextLabel", new TextLabelStyle()
+            // {
+            //     PixelSize = 10,
+            //     TextColor = Color.Red,
+            // });
+
+            // // TODO Add a TextFieldStyle to the theme if need.
+            // // This is an example of text filed style.
+            // theme.AddStyleWithoutClone("Tizen.NUI.BaseComponents.TextField", new TextFieldStyle()
+            // {
+            //     //...
+            // });
+
+            // // TODO Add a TextEditorStyle to the theme if need.
+            // // This is an example of text filed style.
+            // theme.AddStyleWithoutClone("Tizen.NUI.BaseComponents.TextEditor", new TextEditorStyle()
+            // {
+            //     //...
+            // });
+
+            return theme;
+        }
+    }
+}
+#endif
diff --git a/src/Tizen.NUI/src/public/Theme/DefaultThemeTV.cs b/src/Tizen.NUI/src/public/Theme/DefaultThemeTV.cs
new file mode 100644 (file)
index 0000000..772a5db
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ *
+ */
+#if PROFILE_TV
+using System.Collections.Generic;
+
+namespace Tizen.NUI
+{
+    internal partial class DefaultThemeCreator
+    {
+        public Theme Create()
+        {
+            Theme theme = new Theme()
+            {
+                Id = DefaultId,
+                Version = DefaultVersion,
+            };
+            return theme;
+        }
+    }
+}
+#endif