[NUI] sync dalihub + nui version 504 (#470)
authorhuiyueun <35286162+huiyueun@users.noreply.github.com>
Mon, 17 Sep 2018 04:26:24 +0000 (13:26 +0900)
committerGitHub <noreply@github.com>
Mon, 17 Sep 2018 04:26:24 +0000 (13:26 +0900)
* Added LayoutGroup and LayoutItem classes in NUI.

This was done by using bindings wrapper classes for LayoutItem,
LayoutGroup, LayoutMeasureSpec, LayoutLength, and LayoutMeasuredSize.

Change-Id: I19e28bdff59a62cf1c8e8711f50f9f0e8f1c119a

* Layouting support in NUI

Change-Id: I3d6f688d869faa81c34385db37feceb1d8c1d0c0

* Fixed disposed bug and removed RegisterChildProperties API usage.

Change-Id: I7b71bd1a3a03306897abdf3c263c6bbb65c1bff8

* RootLayout added to Window

Change-Id: Ie47ceec452b5f254950263bdaf661e9e3fe86d1f

* All Layers have an Absolute layout

Change-Id: I08281a25b2b73822b45f5c6a567b574b5af74fb4

* Set View.Size2D sets layout minimum size if exists.

Change-Id: Ide73c78957d9ee5d4799bfff4aa2232b87ffa536

* [NUI] Minimize public api for xaml

Change-Id: Ib1426b1956a2af307bd6128d6b97067b0d732847

* Renaming of rootlayer in Layer.cs

Change-Id: I583f49caaad819cabaca83b09c9c7dd9c2b9a331

* Fix NUI nested layout issue

Change-Id: I68edd6cf8295e06a52655d84b8ce039a4e1f1008

* [NUI] Back-sync Samsung/TizenFX into dalihub/TizenFX

Change-Id: Ib63e792bc3474c9226506f30889994219e237ec1

* [NUI] Remove tabs and redundant spaces

Change-Id: I1d512d7f478e532f76629b2529995386820fc764

* Sync dalihub/TizenFX and Samsung/TizenFX

- [NUI] Remove apis which are using internal APIs (#324)
  Some apis are using DALi internal APIs.
  Clean up these wrong apis to prevent future errors.
Signed-off-by: minho.sun <minho.sun@samsung.com>
Change-Id: I77f773ec84f93f69684c2bdad26d9721f8ed705d
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
* Sync dalihub/TizenFX and Samsung/TizenFX for NUI-XAML related changes

Change-Id: Ied6a4e33d462712672e65763572c6aa88065a897
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
* Support multi-cascade property setting for Size2D and Position2D

Change-Id: Ibeb9e9ec639742b78054fe8592167170ea0f00d2
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
* Add Mouse button type to identify clicked button kind

Change-Id: Id336dacccff8192a17cda552ba8ea2ba01121002
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
* [NUI] Fix dereferenced error

Value trans, which has null value,
is dereferenced in member access expression trans.Name

Change-Id: I5b7fa2a0e96689ff0cc0821f2e931ed3c4001e9d
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI]Remove ContentProperty attribute and update sample

Change-Id: I0fbb60bf00c609779b6f5ff4d8aff58a26a8819e

* [NUI] Fix children count of LayoutGroup bug

Change-Id: I73c3b597b161a2dbf4a52d37e6f5a0ab4858c11b
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Make Layout APIs as internal ones (will be changed as public APIs later)

Conflicts:
src/Tizen.NUI/src/internal/Layouting/LayoutGroupWrapper.cs
src/Tizen.NUI/src/internal/Layouting/LayoutItemWrapper.cs

Change-Id: Ia64e9216d10ecc986e0e977f2e0633a03813faec
Signed-off-by: dongsug.song <dongsug.song@samsung.com>
* Fix View Size2D.

We force Size2D by setting fixed width & height specifications.
There is no really another way in new layouting without breaking
new layouting design.

Also MinimumSize will set now Layout.MinimumSize.

Change-Id: I65c7eaab8210c83b9097426a14c8877173d11f90

* [NUI] Change Parameter type of KeyboardRepeatInfo APIs

- Changed the parameters type of KeyboardRepeatInfo APIs
  : 'double' type -> 'float' type

Change-Id: I3940e44a1a2c116988e8c947ae81d118ac266000
Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
* [NUI] Fix getting ClippingMode error

Change-Id: I2379ec6adda1442e819d2adbaa9751e5dd154996

* [NUI] Fix animation flickering issue.

Change-Id: Idd3e28ac861a6fa33ad316e4bcae6a7b2199c0de
Signed-off-by: Feng Jin <feng16.jin@samsung.com>
* [NUI] Remove redundant logs

Change-Id: Ic7ec157fe8117b613d0d008f68e74cf7c4bccf64

* [NUI] Fix KeyValue issue

Change-Id: I1970a61633fba277379a43035cf84ec2871d1cdd

* [NUI]public BindableObject.GetValue and BindableObject.SetValue to enable other modules(EX.Tizen.TV.NUI) to implement data binding.

Change-Id: Ibb048e668e765a96f1e8553951e4073b181e9a84
Signed-off-by: Feng Jin <feng16.jin@samsung.com>
* [NUI]Add protect codes in API View::Add

1. Add protect codes, so that if the child is null, this API won't don anything.

Change-Id: Icfd7e2cbb08b99ed962660edb88e8797bad2b654

* [NUI] public gesture detector.

Change-Id: Ife9902fe77b43f2c422a1a2ebeaf474d13e67589
Signed-off-by: Feng Jin <feng16.jin@samsung.com>
* GridLayout added

Change-Id: I67916a0e2a8efde6fd8d28daac79bca39d679d10

* Add PropertyValue.Get function for RelativeVector2, RelativeVector3, and RelativeVector4 type.

Change-Id: I181c51a6eea0a94721b28a48d8187673a3f0b88b
Signed-off-by: Feng Jin <feng16.jin@samsung.com>
* Explict assigning of Layouts to children

Allows legacy GridContainer to display it's children.
CustomLayouts children get a LayoutItem and displayed.

Change-Id: Ic3f900ae01800de77695b85a57661f886ee060b7

* [NUI] Add DestroyContext call before disposing TextField/TextEditor

In order to speed up IME hide, temporarily add DestroyContext call.

Change-Id: Id93c99f4d45061d4e406d36ced7a0ec09c8f2c34

* [NUI] VisualMap revising

Here are some changes:
Add VisualFittingMode property
Add Atlasing property
Add Shadow,Underline,Outline,Background property
Add RenderIfTransparent property

Change-Id: I8d85f9d1a438cb6fbb636f79c7438e9134e1df8f

* [NUI] Add visual test example

Change-Id: I25f41d969f7b98a494a4fa1716b0335c09ab5026

* [NUI] Add friend assembly for Tizen.TV.NUI.Component

Change-Id: I2fdc02205c03aa98260035fb81998d68514c030e

* View.cs assignement error and logging fix

Change-Id: Ic43213bb7e565f03f83d27df153d095b0e9f7143

* [NUI] Add support for changing the Rendering behavior

Change-Id: Ibbe3627659132fd40105482761795f62a92d1856

* Size2D set updates measure spec for all Views

Previously Size2D set only updated the WIDTH/HEIGHT MEASURESPEC
for Views that already had a Layout set.
But if the Size2D was set before the View added to it's parent
then the set size would not update the measure specs.

Change-Id: I28e731e5e6c6318231b5ba25108bf2daa9cd3411

* [NUI] Avoid raising InputMethodContext reference count

Change-Id: I25e89f41daa41008c81ae1b46fbb82c75a98a011

* [NUI] Add getter property for VisualFittingMode

Change-Id: I1ee389dd4a84f153e4a5d063fe3331a9525757eb

* SetLayoutRequired, IsLayoutRequired View API added

Change-Id: I6b4351901ad841c04f92b22be62c43f7f20b9263

* [NUI] NUI Version 504

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Remove unused local variable

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* Revert "[NUI] Avoid raising InputMethodContext reference count"

This reverts commit 515f4909922f29443d8e12f171fa84b51278b94d.

packaging/version.txt
src/Tizen.NUI/src/internal/Layouting/LayoutGroup.cs
src/Tizen.NUI/src/internal/ManualPINVOKE.cs
src/Tizen.NUI/src/internal/VersionCheck.cs
src/Tizen.NUI/src/public/BaseComponents/View.cs
src/Tizen.NUI/src/public/LongPressGestureDetector.cs

index c7a3ac3..89bf9ef 100755 (executable)
@@ -7,4 +7,4 @@ NUGET_VERSION=5.0.0.99999
 INTERNAL_NUGET_VERSION=5.0.0.999
 
 # RPM Version Suffix
-RPM_VERSION_SUFFIX=nui503
+RPM_VERSION_SUFFIX=nui504
index 1d85b99..9408d69 100755 (executable)
@@ -84,8 +84,35 @@ namespace Tizen.NUI
         /// <param name="heightMeasureSpec">vertical space requirements as imposed by the parent.</param>
         protected virtual void OnMeasure(LayoutMeasureSpec widthMeasureSpec, LayoutMeasureSpec heightMeasureSpec)
         {
-            SetMeasuredDimensions(new MeasuredSize(LayoutItemWrapperImpl.GetDefaultSize(layoutItemWrapperImpl.GetSuggestedMinimumWidth(), widthMeasureSpec)),
-                                   new MeasuredSize(LayoutItemWrapperImpl.GetDefaultSize(layoutItemWrapperImpl.GetSuggestedMinimumHeight(), heightMeasureSpec)));
+            LayoutLength childWidth  = new LayoutLength( 0 );
+            LayoutLength childHeight =  new LayoutLength( 0 );
+
+            LayoutLength measuredWidth = childWidth;
+            LayoutLength measuredHeight = childHeight;
+
+            for( uint i = 0; i < ChildCount; ++i )
+            {
+                var childLayout = GetChildAt( i );
+                if( childLayout )
+                {
+                    MeasureChild( childLayout, widthMeasureSpec, heightMeasureSpec );
+                    childWidth = childLayout.MeasuredWidth;
+                    childHeight = childLayout.MeasuredHeight;
+                    // Layout takes size of largest width and height dimension of children
+                    measuredWidth.Value = System.Math.Max( measuredWidth.Value, childWidth.Value );
+                    measuredHeight.Value = System.Math.Max( measuredHeight.Value, childHeight.Value );
+                }
+            }
+
+            if( 0 == ChildCount )
+            {
+                // Must be a leaf as has no children
+                measuredWidth = GetDefaultSize( SuggestedMinimumWidth, widthMeasureSpec );
+                measuredHeight = GetDefaultSize( SuggestedMinimumHeight, heightMeasureSpec );
+            }
+
+            SetMeasuredDimensions( new MeasuredSize( measuredWidth ),
+                                    new MeasuredSize( measuredHeight ) );
         }
 
         /// <summary>
@@ -185,4 +212,4 @@ namespace Tizen.NUI
             layoutGroupWrapperImpl.MeasureChildWithMarginsNative(child, parentWidthMeasureSpec, widthUsed, parentHeightMeasureSpec, heightUsed);
         }
     }
-}
\ No newline at end of file
+}
index ee63dbc..8d51bef 100644 (file)
@@ -7474,6 +7474,42 @@ namespace Tizen.NUI
         }
 
 
+        [global::System.Runtime.InteropServices.DllImport(Graphics.GlesCSharpBinder, EntryPoint = "CSharp_Dali_SetLayoutingRequired")]
+        public static extern void View_SetLayoutingRequired_gl(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);
+
+        [global::System.Runtime.InteropServices.DllImport(Graphics.VulkanCSharpBinder, EntryPoint = "CSharp_Dali_SetLayoutingRequired")]
+        public static extern void View_SetLayoutRequired_vulkan(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);
+
+        public static void View_SetLayoutingRequired(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2)
+        {
+            if (Tizen.NUI.Graphics.Backend == Tizen.NUI.Graphics.BackendType.Vulkan)
+            {
+                View_SetLayoutRequired_vulkan(jarg1, jarg2);
+            }
+            else
+            {
+                View_SetLayoutingRequired_gl(jarg1, jarg2);
+            }
+        }
+
+        [global::System.Runtime.InteropServices.DllImport(Graphics.GlesCSharpBinder, EntryPoint = "CSharp_Dali_View_IsLayoutingRequired")]
+        public static extern bool View_IsLayoutingRequired_gl(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+        [global::System.Runtime.InteropServices.DllImport(Graphics.VulkanCSharpBinder, EntryPoint = "CSharp_Dali_View_IsLayoutingRequired")]
+        public static extern bool View_IsLayoutingRequired_vulkan(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+        public static bool View_IsLayoutingRequired(global::System.Runtime.InteropServices.HandleRef jarg1)
+        {
+            if (Tizen.NUI.Graphics.Backend == Tizen.NUI.Graphics.BackendType.Vulkan)
+            {
+                return View_IsLayoutingRequired_vulkan(jarg1);
+            }
+            else
+            {
+                return View_IsLayoutingRequired_gl(jarg1);
+            }
+        }
+
         [global::System.Runtime.InteropServices.DllImport(Graphics.GlesCSharpBinder, EntryPoint = "CSharp_Dali_new_ViewLayoutDirectionSignal")]
         public static extern global::System.IntPtr new_ViewLayoutDirectionChangedSignal_gl();
 
index d6c032b..c9df821 100755 (executable)
@@ -26,7 +26,8 @@ namespace Tizen.NUI
         //from dali_1.3.23 : NUI internal API version 501
         //from dali_1.3.28 : NUI internal API version 502
         //from dali_1.3.34 : NUI internal API version 503
-        public const int nuiAPIVer = 503;
+        //from dali_1.3.41 : NUI internal API version 504
+        public const int nuiAPIVer = 504;
         public const int reservedVer1 = 0;
         public const int reservedVer2 = 0;
 
index d790995..fb3c3fc 100755 (executable)
@@ -1286,8 +1286,15 @@ namespace Tizen.NUI.BaseComponents
 
                 if (layoutSet == true && child.Layout == null) // Only give children a layout if parent an explicit container
                 {
-                    LayoutItem layoutItem = new LayoutItem();
-                    child.Layout = layoutItem;
+                    if( child.GetType() == typeof(View) ||  true == child.LayoutingRequired )
+                    {
+                        child.Layout = new LayoutGroup();
+
+                    }
+                    else
+                    {
+                        child.Layout = new LayoutItem();
+                    }
                 }
 
                 if (Layout)
@@ -3170,6 +3177,8 @@ namespace Tizen.NUI.BaseComponents
             set
             {
                 SetValue(Size2DProperty, value);
+                // Set Specification so when layouts measure this View it matches the value set here.
+                // All Views are currently Layouts.
                 SetProperty(LayoutItemWrapper.ChildProperty.WIDTH_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Width));
                 SetProperty(LayoutItemWrapper.ChildProperty.HEIGHT_SPECIFICATION, new Tizen.NUI.PropertyValue(value.Height));
                 NotifyPropertyChanged();
@@ -3435,6 +3444,25 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
+        /// Set that layouting is required on this View. It will automatically receive a Layout.
+        /// </summary>
+        /// <remarks>
+        /// </remarks>
+        internal bool LayoutingRequired
+        {
+            get
+            {
+                bool result = Tizen.NUI.NDalicManualPINVOKE.View_IsLayoutingRequired(View.getCPtr(this));
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return result;
+            }
+            set
+            {
+                Tizen.NUI.NDalicManualPINVOKE.View_SetLayoutingRequired(View.getCPtr(this), value);
+            }
+        }
+
+        /// <summary>
         /// Shows the view.
         /// </summary>
         /// <remarks>
index 052baf2..255ecca 100755 (executable)
@@ -258,7 +258,7 @@ namespace Tizen.NUI
 
         /// <summary>
         /// Sets the number of touches required.<br />
-        /// The number of touches corresponds to the number of fingers a user has on the screen. The default value is 1.<br />
+        /// The number of touches corresponds to the number of fingers a user has on the screen. The default is 1.<br />
         /// </summary>
         /// <param name="touches">Touches required</param>
         /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.