* 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.
INTERNAL_NUGET_VERSION=5.0.0.999
# RPM Version Suffix
-RPM_VERSION_SUFFIX=nui503
+RPM_VERSION_SUFFIX=nui504
/// <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>
layoutGroupWrapperImpl.MeasureChildWithMarginsNative(child, parentWidthMeasureSpec, widthUsed, parentHeightMeasureSpec, heightUsed);
}
}
-}
\ No newline at end of file
+}
}
+ [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();
//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;
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)
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();
}
/// <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>
/// <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.