[NUI] Add TextSelectionPopupStyle for 7.0 UX
authorBowon Ryu <bowon.ryu@samsung.com>
Fri, 13 May 2022 07:46:12 +0000 (16:46 +0900)
committerJaehyun Cho <jaehyun0cho@gmail.com>
Mon, 4 Jul 2022 07:13:17 +0000 (16:13 +0900)
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
13 files changed:
src/Tizen.NUI/res/IoT-selection-popup-background.9.png [new file with mode: 0644]
src/Tizen.NUI/res/IoT-selection-popup-border.9.png [new file with mode: 0644]
src/Tizen.NUI/src/internal/Interop/Interop.TextEditor.cs
src/Tizen.NUI/src/internal/Interop/Interop.TextField.cs
src/Tizen.NUI/src/internal/Interop/ManualPINVOKE.cs
src/Tizen.NUI/src/public/BaseComponents/Style/TextEditorStyle.cs
src/Tizen.NUI/src/public/BaseComponents/Style/TextFieldStyle.cs
src/Tizen.NUI/src/public/BaseComponents/TextEditor.cs
src/Tizen.NUI/src/public/BaseComponents/TextEditorBindableProperty.cs
src/Tizen.NUI/src/public/BaseComponents/TextField.cs
src/Tizen.NUI/src/public/BaseComponents/TextFieldBindableProperty.cs
src/Tizen.NUI/src/public/Common/NUIConstants.cs
src/Tizen.NUI/src/public/Theme/DefaultThemeCommon.cs

diff --git a/src/Tizen.NUI/res/IoT-selection-popup-background.9.png b/src/Tizen.NUI/res/IoT-selection-popup-background.9.png
new file mode 100644 (file)
index 0000000..b27254b
Binary files /dev/null and b/src/Tizen.NUI/res/IoT-selection-popup-background.9.png differ
diff --git a/src/Tizen.NUI/res/IoT-selection-popup-border.9.png b/src/Tizen.NUI/res/IoT-selection-popup-border.9.png
new file mode 100644 (file)
index 0000000..553056e
Binary files /dev/null and b/src/Tizen.NUI/res/IoT-selection-popup-border.9.png differ
index 21f7934..9d7a4e7 100755 (executable)
@@ -72,6 +72,9 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextEditor_Property_GRAB_HANDLE_PRESSED_IMAGE_get")]
             public static extern int GrabHandlePressedImageGet();
 
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextEditor_Property_SELECTION_POPUP_STYLE_get")]
+            public static extern int SelectionPopupStyleGet();
+
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextEditor_Property_SELECTION_HANDLE_IMAGE_LEFT_get")]
             public static extern int SelectionHandleImageLeftGet();
 
index 1930a61..86ad919 100755 (executable)
@@ -87,6 +87,9 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextField_Property_SCROLL_SPEED_get")]
             public static extern int ScrollSpeedGet();
 
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextField_Property_SELECTION_POPUP_STYLE_get")]
+            public static extern int SelectionPopupStyleGet();
+
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextField_Property_SELECTION_HANDLE_IMAGE_LEFT_get")]
             public static extern int SelectionHandleImageLeftGet();
 
index b28af6f..f20aa30 100755 (executable)
@@ -45,5 +45,47 @@ namespace Tizen.NUI
 
         [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WORD_NO_BREAK_get")]
         public static extern int WordNoBreakGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_POPUP_MAX_SIZE_get")]
+        public static extern int TextSelectionPopupPropertyPopupMaxSizeGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_OPTION_DIVIDER_SIZE_get")]
+        public static extern int TextSelectionPopupPropertyOptionDividerSizeGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_OPTION_DIVIDER_PADDING_get")]
+        public static extern int TextSelectionPopupPropertyOptionDividerPaddingGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_LABEL_MINIMUM_SIZE_get")]
+        public static extern int TextSelectionPopupPropertyLabelMinimumSizeGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_LABEL_PADDING_get")]
+        public static extern int TextSelectionPopupPropertyLabelPaddingGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_LABEL_TEXT_VISUAL_get")]
+        public static extern int TextSelectionPopupPropertyLabelTextVisualGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_ENABLE_SCROLL_BAR_get")]
+        public static extern int TextSelectionPopupPropertyEnableScrollBarGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_POPUP_DIVIDER_COLOR_get")]
+        public static extern int TextSelectionPopupPropertyPopupDividerColorGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_POPUP_PRESSED_COLOR_get")]
+        public static extern int TextSelectionPopupPropertyPopupPressedColorGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_POPUP_PRESSED_CORNER_RADIUS_get")]
+        public static extern int TextSelectionPopupPropertyPopupPressedCornerRadiusGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_POPUP_FADE_IN_DURATION_get")]
+        public static extern int TextSelectionPopupPropertyPopupFadeInDurationGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_POPUP_FADE_OUT_DURATION_get")]
+        public static extern int TextSelectionPopupPropertyPopupFadeOutDurationGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_BACKGROUND_get")]
+        public static extern int TextSelectionPopupPropertyPopupBackgroundGet();
+
+        [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_TextSelectionPopup_Property_BACKGROUND_BORDER_get")]
+        public static extern int TextSelectionPopupPropertyPopupBackgroundBorderGet();
     }
 }
index ab46af3..ddceba5 100755 (executable)
@@ -276,6 +276,18 @@ namespace Tizen.NUI.BaseComponents
             return textEditorStyle.relativeLineHeight;
         });
 
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty SelectionPopupStyleProperty = BindableProperty.Create(nameof(SelectionPopupStyle), typeof(PropertyMap), typeof(TextEditorStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+        {
+            var textEditorStyle = (TextEditorStyle)bindable;
+            textEditorStyle.selectionPopupStyle = (PropertyMap)newValue;
+        },
+        defaultValueCreator: (bindable) =>
+        {
+            var textEditorStyle = (TextEditorStyle)bindable;
+            return textEditorStyle.selectionPopupStyle;
+        });
+
         private HorizontalAlignment? horizontalAlignment;
         private VerticalAlignment? verticalAlignment;
         private Vector4 secondaryCursorColor;
@@ -309,6 +321,7 @@ namespace Tizen.NUI.BaseComponents
         private Color placeholderTextColor;
         private Vector4 primaryCursorColor;
         private PropertyMap fontStyle;
+        private PropertyMap selectionPopupStyle;
         private bool? ellipsis;
         private float? lineSpacing;
         private float? minLineSize;
@@ -698,5 +711,12 @@ namespace Tizen.NUI.BaseComponents
             get => (float?)GetValue(RelativeLineHeightProperty);
             set => SetValue(RelativeLineHeightProperty, value);
         }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public PropertyMap SelectionPopupStyle
+        {
+            get => (PropertyMap)GetValue(SelectionPopupStyleProperty);
+            set => SetValue(SelectionPopupStyleProperty, value);
+        }
     }
 }
index 223693e..965aaab 100755 (executable)
@@ -497,6 +497,18 @@ namespace Tizen.NUI.BaseComponents
             return textFieldStyle.fontStyle;
         });
 
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty SelectionPopupStyleProperty = BindableProperty.Create(nameof(SelectionPopupStyle), typeof(PropertyMap), typeof(TextFieldStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+        {
+            var textFieldStyle = (TextFieldStyle)bindable;
+            textFieldStyle.selectionPopupStyle = (PropertyMap)newValue;
+        },
+        defaultValueCreator: (bindable) =>
+        {
+            var textFieldStyle = (TextFieldStyle)bindable;
+            return textFieldStyle.selectionPopupStyle;
+        });
+
         private string placeholderText;
         private string placeholderTextFocused;
         private int? maxLength;
@@ -536,6 +548,7 @@ namespace Tizen.NUI.BaseComponents
         private Vector4 placeholderTextColor;
         private Vector4 primaryCursorColor;
         private PropertyMap fontStyle;
+        private PropertyMap selectionPopupStyle;
 
         static TextFieldStyle() { }
 
@@ -859,5 +872,12 @@ namespace Tizen.NUI.BaseComponents
             get => (PropertyMap)GetValue(FontStyleProperty);
             set => SetValue(FontStyleProperty, value);
         }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public PropertyMap SelectionPopupStyle
+        {
+            get => (PropertyMap)GetValue(SelectionPopupStyleProperty);
+            set => SetValue(SelectionPopupStyleProperty, value);
+        }
     }
 }
index 9de2008..ea57f6a 100755 (executable)
@@ -531,6 +531,24 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
+        /// The SelectionPopupStyle property.<br />
+        /// The style of the text selection popup can be set through SelectionPopupStyle property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public PropertyMap SelectionPopupStyle
+        {
+            get
+            {
+                return (PropertyMap)GetValue(SelectionPopupStyleProperty);
+            }
+            set
+            {
+                SetValue(SelectionPopupStyleProperty, value);
+                NotifyPropertyChanged();
+            }
+        }
+
+        /// <summary>
         /// The SelectionHandleImageLeft property.<br />
         /// The image to display for the left selection handle.<br />
         /// The selectionHandleImageLeft map contains the following key :<br />
@@ -2557,6 +2575,7 @@ namespace Tizen.NUI.BaseComponents
             internal static readonly int CursorWidth = Interop.TextEditor.CursorWidthGet();
             internal static readonly int GrabHandleImage = Interop.TextEditor.GrabHandleImageGet();
             internal static readonly int GrabHandlePressedImage = Interop.TextEditor.GrabHandlePressedImageGet();
+            internal static readonly int SelectionPopupStyle = Interop.TextEditor.SelectionPopupStyleGet();
             internal static readonly int SelectionHandleImageLeft = Interop.TextEditor.SelectionHandleImageLeftGet();
             internal static readonly int SelectionHandleImageRight = Interop.TextEditor.SelectionHandleImageRightGet();
             internal static readonly int SelectionHandlePressedImageLeft = Interop.TextEditor.SelectionHandlePressedImageLeftGet();
index 6964033..482c060 100755 (executable)
@@ -324,6 +324,24 @@ namespace Tizen.NUI.BaseComponents
             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)textEditor.SwigCPtr, TextEditor.Property.GrabHandlePressedImage).Get(out temp);
             return temp;
         }));
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty SelectionPopupStyleProperty = BindableProperty.Create(nameof(SelectionPopupStyle), typeof(PropertyMap), typeof(TextEditor), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var textEditor = (TextEditor)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textEditor.SwigCPtr, TextEditor.Property.SelectionPopupStyle, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var textEditor = (TextEditor)bindable;
+            PropertyMap temp = new PropertyMap();
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)textEditor.SwigCPtr, TextEditor.Property.SelectionPopupStyle).Get(temp);
+            return temp;
+        }));
+
         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty SelectionHandleImageLeftProperty = BindableProperty.Create(nameof(SelectionHandleImageLeft), typeof(PropertyMap), typeof(TextEditor), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
index 31d6126..42afe43 100755 (executable)
@@ -783,6 +783,24 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
+        /// The SelectionPopupStyle property.<br />
+        /// The style of the text selection popup can be set through SelectionPopupStyle property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public PropertyMap SelectionPopupStyle
+        {
+            get
+            {
+                return (PropertyMap)GetValue(SelectionPopupStyleProperty);
+            }
+            set
+            {
+                SetValue(SelectionPopupStyleProperty, value);
+                NotifyPropertyChanged();
+            }
+        }
+
+        /// <summary>
         /// The SelectionHandleImageLeft property.<br />
         /// The image to display for the left selection handle.<br />
         /// The selectionHandleImageLeft map contains the following key :<br />
@@ -2572,6 +2590,7 @@ namespace Tizen.NUI.BaseComponents
             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 SelectionPopupStyle = Interop.TextField.SelectionPopupStyleGet();
             internal static readonly int SelectionHandleImageLeft = Interop.TextField.SelectionHandleImageLeftGet();
             internal static readonly int SelectionHandleImageRight = Interop.TextField.SelectionHandleImageRightGet();
             internal static readonly int SelectionHandlePressedImageLeft = Interop.TextField.SelectionHandlePressedImageLeftGet();
index bc8ecb6..3d56dc1 100755 (executable)
@@ -164,6 +164,7 @@ namespace Tizen.NUI.BaseComponents
             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)textField.SwigCPtr, TextField.Property.FontStyle).Get(temp);
             return temp;
         }));
+
         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty PointSizeProperty = BindableProperty.Create(nameof(PointSize), typeof(float), typeof(TextField), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
@@ -495,6 +496,24 @@ namespace Tizen.NUI.BaseComponents
             Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)textField.SwigCPtr, TextField.Property.ScrollSpeed).Get(out temp);
             return temp;
         }));
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty SelectionPopupStyleProperty = BindableProperty.Create(nameof(SelectionPopupStyle), typeof(PropertyMap), typeof(TextField), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var textField = (TextField)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)textField.SwigCPtr, TextField.Property.SelectionPopupStyle, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var textField = (TextField)bindable;
+            PropertyMap temp = new PropertyMap();
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)textField.SwigCPtr, TextField.Property.SelectionPopupStyle).Get(temp);
+            return temp;
+        }));
+
         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty SelectionHandleImageLeftProperty = BindableProperty.Create(nameof(TextField.SelectionHandleImageLeft), typeof(PropertyMap), typeof(TextField), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
index 1c916a1..eed9837 100755 (executable)
@@ -1170,6 +1170,83 @@ namespace Tizen.NUI
     }
 
     /// <summary>
+    /// The SelectionPopupStyle property.
+    /// </summary>
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    public struct SelectionPopupStyleProperty
+    {
+        /// <summary>
+        /// The maximum size the Popup can be.
+        /// </summary>
+        public static readonly int MaxSize = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupMaxSizeGet();
+
+        /// <summary>
+        /// TThe size of the divider between popup buttons.
+        /// </summary>
+        public static readonly int DividerSize = NDalicManualPINVOKE.TextSelectionPopupPropertyOptionDividerSizeGet();
+
+        /// <summary>
+        /// The padding of the divider between popup buttons.
+        /// </summary>
+        public static readonly int DividerPadding = NDalicManualPINVOKE.TextSelectionPopupPropertyOptionDividerPaddingGet();
+
+        /// <summary>
+        /// The color of the divider between popup buttons.
+        /// </summary>
+        public static readonly int DividerColor = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupDividerColorGet();
+
+        /// <summary>
+        /// The color of the button when pressed.
+        /// </summary>
+        public static readonly int PressedColor = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupPressedColorGet();
+
+        /// <summary>
+        /// The corner radius of the button when pressed.
+        /// </summary>
+        public static readonly int PressedCornerRadius = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupPressedCornerRadiusGet();
+
+        /// <summary>
+        /// The duration of the fade-in animation.
+        /// </summary>
+        public static readonly int FadeInDuration = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupFadeInDurationGet();
+
+        /// <summary>
+        /// The duration of the fade-out animation.
+        /// </summary>
+        public static readonly int FadeOutDuration = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupFadeOutDurationGet();
+
+        /// <summary>
+        /// The popup background.
+        /// </summary>
+        public static readonly int Background = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupBackgroundGet();
+
+        /// <summary>
+        /// The popup background can have a separate border with a different color.
+        /// </summary>
+        public static readonly int BackgroundBorder = NDalicManualPINVOKE.TextSelectionPopupPropertyPopupBackgroundBorderGet();
+
+        /// <summary>
+        /// The minimum size of popup label.
+        /// </summary>
+        public static readonly int LabelMinimumSize = NDalicManualPINVOKE.TextSelectionPopupPropertyLabelMinimumSizeGet();
+
+        /// <summary>
+        /// The padding of popup label.
+        /// </summary>
+        public static readonly int LabelPadding = NDalicManualPINVOKE.TextSelectionPopupPropertyLabelPaddingGet();
+
+        /// <summary>
+        /// The text visual map of popup label.
+        /// </summary>
+        public static readonly int LabelTextVisual = NDalicManualPINVOKE.TextSelectionPopupPropertyLabelTextVisualGet();
+
+        /// <summary>
+        /// Whether the scroll-bar is enabled.
+        /// </summary>
+        public static readonly int EnableScrollBar = NDalicManualPINVOKE.TextSelectionPopupPropertyEnableScrollBarGet();
+    };
+
+    /// <summary>
     /// ParentOrigin constants.
     /// </summary>
     /// <since_tizen> 3 </since_tizen>
index bab72c0..7a63ef0 100644 (file)
@@ -60,6 +60,24 @@ namespace Tizen.NUI
                 GrabHandleImage = FrameworkInformation.ResourcePath + "IoT_handler_center_downW.png",
                 SelectionHandleImageLeft = new PropertyMap().Add("filename", new PropertyValue(FrameworkInformation.ResourcePath + "IoT_handler_downleftW.png")),
                 SelectionHandleImageRight = new PropertyMap().Add("filename", new PropertyValue(FrameworkInformation.ResourcePath + "IoT_handler_downrightW.png")),
+                SelectionPopupStyle = new PropertyMap()
+                .Add(SelectionPopupStyleProperty.MaxSize, new PropertyValue(new Vector2(1200.0f, 40.0f)))
+                .Add(SelectionPopupStyleProperty.DividerSize, new PropertyValue(new Vector2(0.0f, 0.0f)))
+                .Add(SelectionPopupStyleProperty.DividerPadding, new PropertyValue(new Vector4(0.0f, 0.0f, 0.0f, 0.0f)))
+                .Add(SelectionPopupStyleProperty.Background, new PropertyValue(new PropertyMap().Add(ImageVisualProperty.URL, new PropertyValue(FrameworkInformation.ResourcePath + "IoT-selection-popup-background.9.png"))))
+                .Add(SelectionPopupStyleProperty.BackgroundBorder, new PropertyValue(new PropertyMap().Add(ImageVisualProperty.URL, new PropertyValue(FrameworkInformation.ResourcePath + "IoT-selection-popup-border.9.png"))))
+                .Add(SelectionPopupStyleProperty.PressedColor, new PropertyValue(new Vector4(1.0f, 0.39f, 0.0f, 0.16f)))
+                .Add(SelectionPopupStyleProperty.PressedCornerRadius, new PropertyValue(12.0f))
+                .Add(SelectionPopupStyleProperty.FadeInDuration, new PropertyValue(0.25f))
+                .Add(SelectionPopupStyleProperty.FadeOutDuration, new PropertyValue(0.25f))
+                .Add(SelectionPopupStyleProperty.EnableScrollBar, new PropertyValue(false))
+                .Add(SelectionPopupStyleProperty.LabelMinimumSize, new PropertyValue(new Vector2(0, 40.0f)))
+                .Add(SelectionPopupStyleProperty.LabelPadding, new PropertyValue(new Vector4(-4.0f, -4.0f, 0.0f, 0.0f)))
+                .Add(SelectionPopupStyleProperty.LabelTextVisual, new PropertyValue(new PropertyMap()
+                    .Add(TextVisualProperty.PointSize, new PropertyValue(6.0f))
+                    .Add(TextVisualProperty.TextColor, new PropertyValue(new Vector4(1.00f, 0.38f, 0.00f, 1)))
+                    .Add(TextVisualProperty.FontFamily, new PropertyValue("TizenSans"))
+                    .Add(TextVisualProperty.FontStyle, new PropertyValue(new PropertyMap().Add("weight", new PropertyValue("regular")))))),
             });
 
             // TextEditor style.
@@ -78,6 +96,24 @@ namespace Tizen.NUI
                 GrabHandleImage = FrameworkInformation.ResourcePath + "IoT_handler_center_downW.png",
                 SelectionHandleImageLeft = new PropertyMap().Add("filename", new PropertyValue(FrameworkInformation.ResourcePath + "IoT_handler_downleftW.png")),
                 SelectionHandleImageRight = new PropertyMap().Add("filename", new PropertyValue(FrameworkInformation.ResourcePath + "IoT_handler_downrightW.png")),
+                SelectionPopupStyle = new PropertyMap()
+                .Add(SelectionPopupStyleProperty.MaxSize, new PropertyValue(new Vector2(1200.0f, 40.0f)))
+                .Add(SelectionPopupStyleProperty.DividerSize, new PropertyValue(new Vector2(0.0f, 0.0f)))
+                .Add(SelectionPopupStyleProperty.DividerPadding, new PropertyValue(new Vector4(0.0f, 0.0f, 0.0f, 0.0f)))
+                .Add(SelectionPopupStyleProperty.Background, new PropertyValue(new PropertyMap().Add(ImageVisualProperty.URL, new PropertyValue(FrameworkInformation.ResourcePath + "IoT-selection-popup-background.9.png"))))
+                .Add(SelectionPopupStyleProperty.BackgroundBorder, new PropertyValue(new PropertyMap().Add(ImageVisualProperty.URL, new PropertyValue(FrameworkInformation.ResourcePath + "IoT-selection-popup-border.9.png"))))
+                .Add(SelectionPopupStyleProperty.PressedColor, new PropertyValue(new Vector4(1.0f, 0.39f, 0.0f, 0.16f)))
+                .Add(SelectionPopupStyleProperty.PressedCornerRadius, new PropertyValue(12.0f))
+                .Add(SelectionPopupStyleProperty.FadeInDuration, new PropertyValue(0.25f))
+                .Add(SelectionPopupStyleProperty.FadeOutDuration, new PropertyValue(0.25f))
+                .Add(SelectionPopupStyleProperty.EnableScrollBar, new PropertyValue(false))
+                .Add(SelectionPopupStyleProperty.LabelMinimumSize, new PropertyValue(new Vector2(0, 40.0f)))
+                .Add(SelectionPopupStyleProperty.LabelPadding, new PropertyValue(new Vector4(-4.0f, -4.0f, 0.0f, 0.0f)))
+                .Add(SelectionPopupStyleProperty.LabelTextVisual, new PropertyValue(new PropertyMap()
+                    .Add(TextVisualProperty.PointSize, new PropertyValue(6.0f))
+                    .Add(TextVisualProperty.TextColor, new PropertyValue(new Vector4(1.00f, 0.38f, 0.00f, 1)))
+                    .Add(TextVisualProperty.FontFamily, new PropertyValue("TizenSans"))
+                    .Add(TextVisualProperty.FontStyle, new PropertyValue(new PropertyMap().Add("weight", new PropertyValue("regular")))))),
             });
 
             return theme;