[NUI] Update CommonUI (#937)
authorLynettejin90 <33114201+Lynettejin90@users.noreply.github.com>
Tue, 23 Jul 2019 02:19:49 +0000 (10:19 +0800)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 23 Jul 2019 02:19:49 +0000 (11:19 +0900)
* [NUI.CommonUI] Update CommonUI
(1)Fix issues
(2)Add style change event for FlexibleView

Signed-off-by: Feng Jin <feng16.jin@samsung.com>
* Add api to get the recycler in FlexibleView

src/Tizen.NUI.CommonUI/Attributes/PopupAttributes.cs
src/Tizen.NUI.CommonUI/Controls/FlexibleView/FlexibleView.cs
src/Tizen.NUI.CommonUI/Controls/Switch.cs
src/Tizen.NUI.CommonUI/Utils/Selector.cs

index 10f6e84..9954788 100755 (executable)
@@ -62,7 +62,11 @@ namespace Tizen.NUI.CommonUI
                 ButtonAttributes = attributes.ButtonAttributes.Clone() as ButtonAttributes;
             }
 
-            ShadowOffset = new Vector4(attributes.ShadowOffset.W, attributes.ShadowOffset.X, attributes.ShadowOffset.Y, attributes.ShadowOffset.Z);
+            if(attributes.ShadowOffset != null)
+            {
+                ShadowOffset = new Vector4(attributes.ShadowOffset.W, attributes.ShadowOffset.X, attributes.ShadowOffset.Y, attributes.ShadowOffset.Z);
+            }
+
         }
 
         /// <summary>
index 6a705b9..9d7a592 100755 (executable)
@@ -61,6 +61,7 @@ namespace Tizen.NUI.CommonUI
 
         private EventHandler<ItemClickEventArgs> clickEventHandlers;
         private EventHandler<ItemTouchEventArgs> touchEventHandlers;
+        private EventHandler<NUI.StyleManager.StyleChangedEventArgs> styleChangedEventHandlers;
 
         /// <summary>
         /// Creates a FlexibleView instance.
@@ -126,6 +127,25 @@ namespace Tizen.NUI.CommonUI
         }
 
         /// <summary>
+        /// Style changed, for example default font size.
+        /// </summary>
+        /// <since_tizen> 6 </since_tizen>
+        /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public event EventHandler<NUI.StyleManager.StyleChangedEventArgs> StyleChanged
+        {
+            add
+            {
+                styleChangedEventHandlers += value;
+            }
+
+            remove
+            {
+                styleChangedEventHandlers -= value;
+            }
+        }
+
+        /// <summary>
         /// overwrite the Padding.
         /// </summary>
         /// <since_tizen> 6 </since_tizen>
@@ -350,6 +370,17 @@ namespace Tizen.NUI.CommonUI
         }
 
         /// <summary>
+        /// Return the recycler instance.
+        /// </summary>
+        /// <since_tizen> 6 </since_tizen>
+        /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Recycler GetRecycler()
+        {
+            return mRecycler;
+        }
+
+        /// <summary>
         /// you can override it to clean-up your own resources.
         /// </summary>
         /// <param name="type">DisposeTypes</param>
@@ -365,6 +396,8 @@ namespace Tizen.NUI.CommonUI
 
             if (type == DisposeTypes.Explicit)
             {
+                mLayout.StopScroll();
+
                 if (mAdapter != null)
                 {
                     mAdapter.ItemEvent -= OnItemEvent;
@@ -436,6 +469,26 @@ namespace Tizen.NUI.CommonUI
             RemoveAndRecycleScrapInt();
         }
 
+        /// <summary>
+        /// you can override it to do something for style change.
+        /// </summary>
+        /// <since_tizen> 6 </since_tizen>
+        /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override void OnStyleChange(NUI.StyleManager styleManager, StyleChangeType change)
+        {
+            if (change == StyleChangeType.DefaultFontSizeChange)
+            {
+                NUI.StyleManager.StyleChangedEventArgs args = new NUI.StyleManager.StyleChangedEventArgs();
+                args.StyleManager = styleManager;
+                args.StyleChange = change;
+
+                styleChangedEventHandlers?.Invoke(this, args);
+
+                RelayoutRequest();
+            }
+        }
+
         private void DispatchLayoutStep1()
         {
             ProcessAdapterUpdates();
index 11e1bcf..1a5e817 100755 (executable)
@@ -357,6 +357,22 @@ namespace Tizen.NUI.CommonUI
             CreateHandlerAnimation();
         }
 
+        /// <summary>
+        /// Theme change callback when theme is changed, this callback will be trigger.
+        /// </summary>
+        /// <since_tizen> 6 </since_tizen>
+        /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void OnThemeChangedEvent(object sender, StyleManager.ThemeChangeEventArgs e)
+        {
+            SwitchAttributes tempAttributes = StyleManager.Instance.GetAttributes(style) as SwitchAttributes;
+            if (tempAttributes != null)
+            {
+                attributes = switchAttributes = tempAttributes;
+                RelayoutRequest();
+            }
+        }
+
         private void CreateSwitchBackgroundImageAttributes()
         {
             if (switchAttributes.SwitchBackgroundImageAttributes == null)
index cb611a5..761e2fa 100755 (executable)
@@ -164,6 +164,8 @@ namespace Tizen.NUI.CommonUI
                     return DisabledFocused != null? DisabledFocused : Other;
                 case ControlStates.DisabledSelected:
                     return DisabledSelected != null? DisabledSelected : Other;
+                case ControlStates.SelectedFocused:
+                    return SelectedFocused != null ? SelectedFocused : Other;
                 default:
                     return Other;
             }
@@ -184,6 +186,7 @@ namespace Tizen.NUI.CommonUI
             Selected = selector.Selected;
             DisabledSelected = selector.DisabledSelected;
             DisabledFocused = selector.DisabledFocused;
+            SelectedFocused = selector.SelectedFocused;
             Other = selector.Other;
         }