From: huiyueun <35286162+huiyueun@users.noreply.github.com> Date: Wed, 13 Mar 2019 05:09:16 +0000 (+0900) Subject: [NUI] sync with dalihub (#746) X-Git-Tag: submit/tizen/20190314.005210~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=27340f2a2fd2215c9dd36c81af3a66f9c57b42cf;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] sync with dalihub (#746) * 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 Change-Id: I77f773ec84f93f69684c2bdad26d9721f8ed705d Signed-off-by: dongsug.song * Sync dalihub/TizenFX and Samsung/TizenFX for NUI-XAML related changes Change-Id: Ied6a4e33d462712672e65763572c6aa88065a897 Signed-off-by: dongsug.song * Support multi-cascade property setting for Size2D and Position2D Change-Id: Ibeb9e9ec639742b78054fe8592167170ea0f00d2 Signed-off-by: dongsug.song * Add Mouse button type to identify clicked button kind Change-Id: Id336dacccff8192a17cda552ba8ea2ba01121002 Signed-off-by: dongsug.song * [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 * [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 * [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 * 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 * [NUI] Fix getting ClippingMode error Change-Id: I2379ec6adda1442e819d2adbaa9751e5dd154996 * [NUI] Fix animation flickering issue. Change-Id: Idd3e28ac861a6fa33ad316e4bcae6a7b2199c0de Signed-off-by: Feng Jin * [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 * [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 * GridLayout added Change-Id: I67916a0e2a8efde6fd8d28daac79bca39d679d10 * Add PropertyValue.Get function for RelativeVector2, RelativeVector3, and RelativeVector4 type. Change-Id: I181c51a6eea0a94721b28a48d8187673a3f0b88b Signed-off-by: Feng Jin * 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 * [NUI] VisualMaps revising continue Here are changes: 1. Update VisualFittingMode 2. Remove EditorBrowsable attribute Change-Id: I2f272e822ba227fe255031b3574db325505e90e1 * [NUI] Add LinearLayout Alignment and Weight Change-Id: I0ed3010fd27f8f4cb26126efc5547a301c69cf38 Signed-off-by: Seoyeon Kim * SetLayoutRequired, IsLayoutRequired View API added Change-Id: I6b4351901ad841c04f92b22be62c43f7f20b9263 * Fixes required after https://review.tizen.org/gerrit/#/c/189231/ Removal of dangerous float conversion Change-Id: I6766c8747865c229a1df3ed669a1d9ab90fefdc4 * Update LayoutItem doxygen for Minimum(Width|Height) API. Change-Id: I0ead74f919c73823cb6f4b241bea81cbcdde4c98 * [NUI] Fix LayoutItemWrapperImpl null issue Change-Id: I158533d132eb81c4681d8ff622124ba45bfe0e4b Signed-off-by: huiyu.eun * [NUI] Fix RenderingBehavior issue Change-Id: I35b83e115fd60d2b43ed49c2a35a0f34377e55c2 Signed-off-by: huiyu.eun * [NUI] Support Resource path when using xaml Change-Id: I066c4a6b051bfdcc5fa6b26f9f784a2be5a255a7 * [NUI] Public ChildAdded,ChildRemoved,PropertySet events & properties of TableView.CellPosition Change-Id: I77b58a63e863b16e9eeef8c09da9ae5160f5e735 * [NUI] Public some apis of TableView,Animation,NUIApplication Change-Id: I280e6389cb9d2aa537d72c183b1547ee807fcfd6 * Layer SetLayoutingRequired for added Views Change-Id: I7e9ead91ddec74fee998bdafc0e9249ffe250453 * [NUI] Add comment Add Size, Size2D comment Signed-off-by: huiyu.eun Change-Id: Ic790ea0af14e9aa76314e92ac74a034ab2f7985c * [NUI] Fix ImageLoadThread issue PLM ID : [DF181025-02207],[DF181005-00132],[DF180906-00491] heap-use-after-free issue using ASAN. The application's destructor was not called after terminated. The Join of ImageLoadThread was not called in ImageLoadThread's destructor. The cause is that AnimationImpl is still referenced in C#. Resolve by explicitly calling dispose. Change-Id: Ica66a8a7a17ff305777c173be33e0a196213e566 * All Views in a tree can be layouts Prior to this fix a View with children within a View would not become a layout if the parent View did not have SetLayout explicitly called on it. Change-Id: Ibf9b214f907a0ea8df30f54269626747c50499ca * [NUI] Set LayoutItem Width/Height specification Change-Id: Idec264329f6dc20db4692fba84ac8ee1f95067aa Signed-off-by: huiyu.eun * [NUI] Public some apis for TCT and fix an issue Here are some changes: 1. public ScrollViewPagePathEffect class 2. public TypeRegistry class 3. public PinchGesture constructor 4. public SetScrollPropertySource api 5. Fix ScrollInterval event issue Change-Id: I649f0fc464a5af0453475b7ef0dcf4df614eb34e * [NUI] Modify since_tizen tag Change-Id: Ib9ee882177d2372b8f132542cb235a3fcae5e734 * [NUI] Fix build error Change-Id: Ib1ff4dcb142ce09539dbef3b567f649e40459527 Signed-off-by: huiyu.eun * LayoutGroup to layout children Change-Id: Idff81189013e4cb0e85a8bbf13e268170b8aad31 * [NUI] Add reverse support for parse Change-Id: Ia6f55508e34cf5adbf23d0f9acd4f69da7b6d3c5 * Disable layouting until set Layout Added a (static) flag that is set once a Layout is set on any View. Until this flag is set automatic Layout setting will not occur Change-Id: Ieff5ed12df75a062a899831681f138c5aa3b6e1f * [NUI] Fix ParentOrigin doesn't work when using XAML Change-Id: I53e4b18b6c24db79c16c75b758613113152c5b25 * Remove build warnings Change-Id: I8744e8f690a4e93b199dc762c14607bd8b191718 * VisualFactory Instance to retreive from native VisualFactory.Get() is deprecated whilst Instance just gets the C# class. Added call to native to return the native VisualFactory when Instance used. Change-Id: I3be36e8f6cb70a2a1b2128c7d934fa45fe5bf570 * [NUI] Fix State issue of View Change-Id: Ide87c43406e55b9399f191dd76f8fb0b68b0cae9 * Map non dependant ResizePolicies to Specs. Maps NaturalSize, FillToParent and FitToChildren to the new layouting specifications. NaturalSize is mapped to a fixed value. Parent relative mappings not done here, need to be done in the measure once parent sizes known. Change-Id: I1f11a9dca126541cd534a386583fc36f97646ed4 * [NUI] Clean NUI codes from Adaptor.cs to Window.cs Change-Id: Ic1e5458dd1b3b4ac43cff028204254ac378d2f86 * [NUI] Add test sample for C# binding of MatchSystemLanguageDirection Change-Id: I0ac4e82c0e026ee1c5074ec00fb4677c4690ddfe * Remove StereoMode Change-Id: If19a2e403114bf5375e914584e1e7fa513f7d889 * Sync dalihub and Samsung's TizenFX codes Change-Id: I634fbe56ff9772c05f5ba59736289b3eca7d3def Signed-off-by: dongsug.song * [NUI] Remove deprecated APIs in native DALi Change-Id: Icc5d90e6e5752fc3b24ce3ea29cd11a89280b4b7 Signed-off-by: Seoyeon Kim * [NUI] Clean code: BaseComponents,UIComponents,CustomView Change-Id: I6fbd47154f179ba3a908d140f0cfb267c1e76c2d * [NUI] Manual merge from tizen50 Merged patches from tizenfx tizen_50 branch - [NUI] Fix Svace issue (#534), Add to check Null value (View.cs) - [NUI] Fix SizeWidth/Height issue (#555) (View.cs) - [NUI] ResizePolicy UseNaturalSize mapped to WrapContent (#613) (View.cs) - Improve the performance when firstly create the View (#642) (ImageView.cs, Scrollable.cs, TableView.cs, TextEditor.cs, TextField.cs, TextLabel.cs, VideoView.cs, View.cs) - [NUI] Remove GL/VK if-else, reduce dll size (#649) (LayoutPINVOKE.cs, ManualPINVOKE.cs, NDalicPINVOKE.cs, NUIApplication.cs) Change-Id: I846ad3353dd7d6ef78ec096565e491d7a6eef44a Signed-off-by: dongsug.song * [NUI] Sync dalihub and Samsung's TizenFX codes. Change-Id: I8278896c39209e076cc7e1cce3fee63a6e3a53ad Signed-off-by: huiyu.eun * [NUI] modify GetHashCode() Change-Id: Ib642ba64e746fb811be7a5e7e2cb4e82d5c6eb8a Signed-off-by: huiyu.eun * [NUI] Fix VD svace issue - add null check - add lock Change-Id: I706d1b0314e1e9096597eedc01593932945286e1 Signed-off-by: huiyu.eun * [NUI] Fix VD Svace issue Change-Id: I032ed4e562603441be4d26be68e29e0081e8c917 Signed-off-by: huiyu.eun * [NUI] Remove all warnings Change-Id: I399e6395c83664040999f4f204f51970de1dc5df * [NUI] Add API for get the original size of image * [NUI] Codacy error fix Change-Id: Ib407c7be01ad4e42913bf7896edc050e9b4bd370 Signed-off-by: dongsug.song * Make some apis as inhouse, will be internal later Change-Id: I0fc398a3b33eaab5fd12df5e8f183d9c94ab7049 * Adding LayoutController LayoutController from C# exclusive Layouting (LayoutingEx) where all layouting in processed in the NUI side. Change-Id: Ic97166e51cd2ef173f6685659f53f53253c93b21 * [NUI] Fix NUI Manual TCT issue Add Null Checker Change-Id: If07ebc246bad5a55f5614a10fb2f63f4bdd4115e Signed-off-by: huiyu.eun * [NUI] Fix PropertyMap setting issue Change-Id: I90548287836a4e4338c3a6d2dd5c1802ef24f876 Signed-off-by: huiyu.eun * [NUI] Fix svace issue Change-Id: I014294612530f600c14c237484f95dfff0c5ec96 Signed-off-by: huiyu.eun * [NUI] Update comments of ImfManager and InputMethodContext Change-Id: I72cdb3665f2e6ee3d2e355c7d18e41f74c09bba6 * Override Equals function for Color. Signed-off-by: Feng Jin * [NUI] Remove unuseful ApplicationExtensions Change-Id: Iba33bce373883d5f049e6d4e146d9e3dd33fdf44 * Fix ImageView issues: (1)Cannot get the correct ResourceUrl after seting the Border. (2)The ImageView with empty url will show the default picture after seting the Border(Actualy it should show nothing). Signed-off-by: Feng Jin * add support for CustomView OnTouch callback Change-Id: I713a91e931e58b38a09c4838a2a3fd0ace5de749 * Adding MeasureSpecification class Class for C# exclusive layouting Change-Id: I189fcf297c098e0b0446466de3aa0f4dadb26448 * Adding LayoutLengthEx class Change-Id: Ic12e7d33eaa50f66bdcd55a058f1562ad42ab4ad * Adding LayoutSizeEx class Change-Id: I15738a2fc8c40da90ebe89888cf1779b9124b98e * Adding MeasuredSizeEx Change-Id: Ia8fc53d8c1700e90d00870eef22fea9b6a0b1169 * [NoMerge]ElmSharp Signed-off-by: huiyu.eun * [NUI] Fix ABI break (#731) Signed-off-by: huiyu.eun * [NoMerge]ElmSharp.Wearable Signed-off-by: huiyu.eun * Fix inhouse API Signed-off-by: huiyu.eun * Fix build warnings Signed-off-by: huiyu.eun * [NUI] Fix codacy Signed-off-by: huiyu.eun * [NUI] Fix codcay Signed-off-by: huiyu.eun * fix build error Signed-off-by: huiyu.eun * fix codacy Signed-off-by: huiyu.eun * fix codacy Signed-off-by: huiyu.eun * fix codacy Signed-off-by: huiyu.eun --- diff --git a/src/Tizen.NUI/src/internal/Application.cs b/src/Tizen.NUI/src/internal/Application.cs index 90dc8786d..d1e618a8d 100755 --- a/src/Tizen.NUI/src/internal/Application.cs +++ b/src/Tizen.NUI/src/internal/Application.cs @@ -1013,7 +1013,6 @@ namespace Tizen.NUI { Window.Instance.DisconnectNativeSignals(); } - } /** @@ -1332,12 +1331,12 @@ namespace Tizen.NUI { lock (this) { - NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs(); + NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs(); - // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data - e.BatteryStatus = status; - _applicationBatteryLowEventHandler?.Invoke(this, e); - } + // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data + e.BatteryStatus = status; + _applicationBatteryLowEventHandler?.Invoke(this, e); + } } /** @@ -1380,12 +1379,12 @@ namespace Tizen.NUI { lock (this) { - NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs(); + NUIApplicationMemoryLowEventArgs e = new NUIApplicationMemoryLowEventArgs(); - // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data - e.MemoryStatus = status; - _applicationMemoryLowEventHandler?.Invoke(this, e); - } + // Populate all members of "e" (NUIApplicationMemoryLowEventArgs) with real data + e.MemoryStatus = status; + _applicationMemoryLowEventHandler?.Invoke(this, e); + } } /** diff --git a/src/Tizen.NUI/src/internal/ApplicationExtensions.cs b/src/Tizen.NUI/src/internal/ApplicationExtensions.cs deleted file mode 100755 index 8f6f15db9..000000000 --- a/src/Tizen.NUI/src/internal/ApplicationExtensions.cs +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright(c) 2017 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. - * - */ - -namespace Tizen.NUI -{ - - internal class ApplicationExtensions : global::System.IDisposable - { - private global::System.Runtime.InteropServices.HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal ApplicationExtensions(global::System.IntPtr cPtr, bool cMemoryOwn) - { - swigCMemOwn = cMemoryOwn; - swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); - } - - internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ApplicationExtensions obj) - { - return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; - } - - //A Flag to check who called Dispose(). (By User or DisposeQueue) - private bool isDisposeQueued = false; - //A Flat to check if it is already disposed. - protected bool disposed = false; - - ~ApplicationExtensions() - { - if (!isDisposeQueued) - { - isDisposeQueued = true; - DisposeQueue.Instance.Add(this); - } - } - - public void Dispose() - { - //Throw excpetion if Dispose() is called in separate thread. - if (!Window.IsInstalled()) - { - throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread."); - } - - if (isDisposeQueued) - { - Dispose(DisposeTypes.Implicit); - } - else - { - Dispose(DisposeTypes.Explicit); - System.GC.SuppressFinalize(this); - } - } - - protected virtual void Dispose(DisposeTypes type) - { - if (disposed) - { - return; - } - - if (type == DisposeTypes.Explicit) - { - //Called by User - //Release your own managed resources here. - //You should release all of your own disposable objects here. - - } - - //Release your own unmanaged resources here. - //You should not access any managed member here except static instance. - //because the execution order of Finalizes is non-deterministic. - - if (swigCPtr.Handle != global::System.IntPtr.Zero) - { - if (swigCMemOwn) - { - swigCMemOwn = false; - NDalicPINVOKE.delete_ApplicationExtensions(swigCPtr); - } - swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero); - } - - disposed = true; - } - - - public ApplicationExtensions() : this(NDalicPINVOKE.new_ApplicationExtensions__SWIG_0(), true) - { - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public ApplicationExtensions(Application application) : this(NDalicPINVOKE.new_ApplicationExtensions__SWIG_1(Application.getCPtr(application)), true) - { - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void Init() - { - NDalicPINVOKE.ApplicationExtensions_Init(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void Start() - { - NDalicPINVOKE.ApplicationExtensions_Start(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void Terminate() - { - NDalicPINVOKE.ApplicationExtensions_Terminate(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void Pause() - { - NDalicPINVOKE.ApplicationExtensions_Pause(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void Resume() - { - NDalicPINVOKE.ApplicationExtensions_Resume(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - public void LanguageChange() - { - NDalicPINVOKE.ApplicationExtensions_LanguageChange(swigCPtr); - if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); - } - - } - -} diff --git a/src/Tizen.NUI/src/internal/EnvironmentVariable.cs b/src/Tizen.NUI/src/internal/EnvironmentVariable.cs old mode 100644 new mode 100755 diff --git a/src/Tizen.NUI/src/internal/Layouting/LayoutLengthEx.cs b/src/Tizen.NUI/src/internal/Layouting/LayoutLengthEx.cs new file mode 100755 index 000000000..cc5b4fa26 --- /dev/null +++ b/src/Tizen.NUI/src/internal/Layouting/LayoutLengthEx.cs @@ -0,0 +1,219 @@ +/* + * Copyright (c) 2019 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.BaseComponents; + +namespace Tizen.NUI +{ + /// + /// [Draft] A type that represents a layout length. Currently, this implies pixels, but could be extended to handle device dependant sizes, etc. + /// + internal class LayoutLengthEx : IEquatable + { + private readonly float _value; + + /// + /// [Draft] Constructor from an int + /// + /// Int to initialize with. + public LayoutLengthEx(int value) + { + _value = value; + } + + /// + /// [Draft] Constructor from a float + /// + /// Float to initialize with. + public LayoutLengthEx(float value) + { + _value = value; + } + + /// + /// [Draft] Constructor from a LayoutLength + /// + /// LayoutLength object to initialize with. + public LayoutLengthEx(LayoutLengthEx layoutLength) + { + _value = layoutLength._value; + } + + /// + /// [Draft] Return value as rounded value (whole number), best used as final output + /// + /// The layout length value as a rounded whole number. + public float AsRoundedValue() + { + return (float)Math.Round((decimal)_value, MidpointRounding.AwayFromZero); + } + + /// + /// [Draft] Return value as the raw decimal value, best used for calculations + /// + /// The layout length value as the raw decimal value. + public float AsDecimal() + { + return _value; + } + + /// + /// [Draft] The == operator. + /// + /// The first value. + /// The second value + /// true if LayoutLengths are equal + public static bool operator ==(LayoutLengthEx arg1, LayoutLengthEx arg2) + { + return arg1.Equals(arg2); + } + + /// + /// [Draft] The != operator. + /// + /// The first value. + /// The second value + /// true if LayoutLengths are not equal + public static bool operator !=(LayoutLengthEx arg1, LayoutLengthEx arg2) + { + return !arg1.Equals(arg2); + } + + /// + /// Determines whether the specified object is equal to the current object. + /// + /// The object to compare with the current object. + /// true if equal LayoutLength, else false. + public override bool Equals(object obj) + { + LayoutLengthEx layoutLengthEx = obj as LayoutLengthEx; + if (layoutLengthEx != null) + { + return Equals(layoutLengthEx); + } + return false; + } + + /// + /// Determines whether the specified object is equal to the current object. + /// + /// The LayoutLength to compare with the current LayoutLength. + /// true if equal LayoutLengths, else false. + public bool Equals(LayoutLengthEx layoutLength) + { + return (Math.Abs(_value - layoutLength._value ) <= float.Epsilon); + } + + /// + /// A hash code for the current object. + /// + public override int GetHashCode() + { + return _value.GetHashCode(); + } + + /// + /// The addition operator. + /// + /// The first value. + /// The second value. + /// The LayoutLength containing the result of the addition. + public static LayoutLengthEx operator +(LayoutLengthEx arg1, LayoutLengthEx arg2) + { + return new LayoutLengthEx( arg1._value + arg2._value ); + } + + /// + /// The addition operator. + /// + /// The first value. + /// The second value. + /// The LayoutLength containing the result of the addition. + public static LayoutLengthEx operator +(LayoutLengthEx arg1, int arg2) + { + return new LayoutLengthEx(arg1._value + (float)arg2); + } + + /// + /// The subtraction operator. + /// + /// The first value. + /// The second value. + /// The LayoutLength containing the result of the subtraction. + public static LayoutLengthEx operator -(LayoutLengthEx arg1, LayoutLengthEx arg2) + { + return new LayoutLengthEx(arg1._value - arg2._value); + } + + /// + /// The subtraction operator. + /// + /// The first value. + /// The second value. + /// The LayoutLength containing the result of the subtraction. + public static LayoutLengthEx operator -(LayoutLengthEx arg1, int arg2) + { + return new LayoutLengthEx(arg1._value - (float)arg2); + } + + /// + /// The multiplication operator. + /// + /// The first value. + /// The second value. + /// The LayoutLength containing the result of the multiplication. + public static LayoutLengthEx operator *(LayoutLengthEx arg1, LayoutLengthEx arg2) + { + return new LayoutLengthEx(arg1._value * arg2._value); + } + + /// + /// Th multiplication operator. + /// + /// The first value. + /// The int value to scale the LayoutLength. + /// The LayoutLength containing the result of the scaling. + public static LayoutLengthEx operator *(LayoutLengthEx arg1, int arg2) + { + return new LayoutLengthEx(arg1._value * arg2); + } + + /// + /// The division operator. + /// + /// The first value. + /// The second value. + /// The LayoutLength containing the result of the division. + public static LayoutLengthEx operator /(LayoutLengthEx arg1, LayoutLengthEx arg2) + { + return new LayoutLengthEx(arg1._value / arg2._value); + } + + /// + /// Th division operator. + /// + /// The first value. + /// The int value to scale the vector by. + /// The LayoutLength containing the result of the scaling. + public static LayoutLengthEx operator /(LayoutLengthEx arg1, int arg2) + { + return new LayoutLengthEx(arg1._value / (float)arg2); + } + } +} diff --git a/src/Tizen.NUI/src/internal/Layouting/LayoutSizeEx.cs b/src/Tizen.NUI/src/internal/Layouting/LayoutSizeEx.cs new file mode 100755 index 000000000..c64bfc2eb --- /dev/null +++ b/src/Tizen.NUI/src/internal/Layouting/LayoutSizeEx.cs @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2019 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.BaseComponents; + +namespace Tizen.NUI +{ + /// + /// [Draft] This class represents a layout size (width and height), non mutable. + /// + internal class LayoutSizeEx : IEquatable + { + /// + /// [Draft] Constructor from width and height + /// + /// Int to initialize with. + /// Int to initialize with. + public LayoutSizeEx(int width, int height) + { + Width = width; + Height = height; + } + + /// + /// Computes a hash code for this LayoutSize for use in hash based collections. + /// + /// A non unique hash code . + public override int GetHashCode() + { + return Width ^ Height; + } + + /// + /// Determines whether the specified object is equal to the current object. + /// + /// The object to compare with the current object. + /// true if equal LayoutSize, else false. + public override bool Equals(object obj) + { + LayoutSizeEx layoutSizeEx = (LayoutSizeEx)obj; + if (layoutSizeEx != null) + { + return this.Equals(layoutSizeEx); + } + return false; + } + + /// + /// Whether the values of two LayoutSize objects are equals + /// + /// Object to be compared against. + /// true if obj is equal to this LayoutSize. + public bool Equals(LayoutSizeEx obj) + { + LayoutSizeEx layoutSize = obj; + return ((layoutSize.Width == Width) && (layoutSize.Height == Height)); + } + + /// + /// [Draft] Get the width value of this layout + /// + public int Width{ get; private set; } + + /// + /// [Draft] Get the height value of this layout + /// + public int Height{ get; private set; } + + } +} diff --git a/src/Tizen.NUI/src/internal/Layouting/MeasureSpecification.cs b/src/Tizen.NUI/src/internal/Layouting/MeasureSpecification.cs new file mode 100755 index 000000000..064ac5a1d --- /dev/null +++ b/src/Tizen.NUI/src/internal/Layouting/MeasureSpecification.cs @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2019 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.ComponentModel; +using Tizen.NUI.BaseComponents; + +namespace Tizen.NUI +{ + /// + /// [Draft] A MeasureSpecification is used during the Measure pass by a LayoutGroup to inform it's children how to be measured. + /// For instance, it may measure a child with an exact width and an unspecified height in order to determine height for width. + /// + internal class MeasureSpecification + { + /// + /// MeasureSpecification Size value. + /// + public LayoutLengthEx Size; + + /// + /// MeasureSpecification Mode. + /// + public MeasureSpecification.ModeType Mode; + + /// + /// Constructor taking size and mode type. + /// + /// size value. + /// mode vaue. + public MeasureSpecification(LayoutLengthEx size, MeasureSpecification.ModeType mode) + { + Size = size; + Mode = mode; + } + + public enum ModeType + { + /// + /// This is used by a parent to determine the desired dimension of a child layout. + /// + Unspecified, + /// + /// This is used by a parent to impose an exact size on the child. + /// The child must use this size, and guarantee that all of its descendants will fit within this size. + /// + Exactly, + /// + /// This is used by the parent to impose a maximum size on the child. + /// The child must guarantee that it and all of it's descendants will fit within this size. + /// + AtMost + } + } +} diff --git a/src/Tizen.NUI/src/internal/Layouting/MeasuredSizeEx.cs b/src/Tizen.NUI/src/internal/Layouting/MeasuredSizeEx.cs new file mode 100755 index 000000000..5d806d5e1 --- /dev/null +++ b/src/Tizen.NUI/src/internal/Layouting/MeasuredSizeEx.cs @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2019 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.ComponentModel; +using Tizen.NUI.BaseComponents; + +namespace Tizen.NUI +{ + /// + /// [Draft] Class that encodes a measurement and a measure state, which is set if the measured size is too small. + /// + internal class MeasuredSizeEx + { + /// + /// Constructor + /// + /// size parameter + /// State + public MeasuredSizeEx(LayoutLengthEx measuredSize, MeasuredSizeEx.StateType state) + { + Size = measuredSize; + State = state; + } + + /// + /// Creates a MeasuredSize from a LayoutLength + /// + /// LayoutLength to create + public static implicit operator MeasuredSizeEx(LayoutLengthEx measuredSize) + { + return new MeasuredSizeEx(measuredSize, StateType.MeasuredSizeOK); + } + + /// + /// LayoutLength size property + /// + public LayoutLengthEx Size{ get; set;} + + /// + /// Measured state for this size. + /// + public StateType State{ get; set; } + + /// + /// Measured states for a Size value. + /// + public enum StateType + { + /// + /// The measured size is good + /// + MeasuredSizeOK, + /// + /// The measured size is too small + /// + MeasuredSizeTooSmall + } + } +} diff --git a/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs b/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs index 1b8b31a63..36cb84d32 100755 --- a/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs +++ b/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs @@ -8126,43 +8126,6 @@ namespace Tizen.NUI [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_DragAndDropDetector_DroppedSignal")] public static extern global::System.IntPtr DragAndDropDetector_DroppedSignal(global::System.Runtime.InteropServices.HandleRef jarg1); - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_new_ApplicationExtensions__SWIG_0")] - public static extern global::System.IntPtr new_ApplicationExtensions__SWIG_0(); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_new_ApplicationExtensions__SWIG_1")] - public static extern global::System.IntPtr new_ApplicationExtensions__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_delete_ApplicationExtensions")] - public static extern void delete_ApplicationExtensions(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_ApplicationExtensions_Init")] - public static extern void ApplicationExtensions_Init(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_ApplicationExtensions_Start")] - public static extern void ApplicationExtensions_Start(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_ApplicationExtensions_Terminate")] - public static extern void ApplicationExtensions_Terminate(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_ApplicationExtensions_Pause")] - public static extern void ApplicationExtensions_Pause(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_ApplicationExtensions_Resume")] - public static extern void ApplicationExtensions_Resume(global::System.Runtime.InteropServices.HandleRef jarg1); - - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_ApplicationExtensions_LanguageChange")] - public static extern void ApplicationExtensions_LanguageChange(global::System.Runtime.InteropServices.HandleRef jarg1); - - [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_Window_New__SWIG_0")] public static extern global::System.IntPtr Window_New__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3); diff --git a/src/Tizen.NUI/src/internal/XamlBinding/ResourcesExtensions.cs b/src/Tizen.NUI/src/internal/XamlBinding/ResourcesExtensions.cs index b4cd21a0c..a59898560 100755 --- a/src/Tizen.NUI/src/internal/XamlBinding/ResourcesExtensions.cs +++ b/src/Tizen.NUI/src/internal/XamlBinding/ResourcesExtensions.cs @@ -16,16 +16,16 @@ namespace Tizen.NUI.Binding resources = resources ?? new Dictionary(); if (ve.XamlResources != null) { - foreach (KeyValuePair res in ve.XamlResources.MergedResources) - if (!resources.ContainsKey(res.Key)) - resources.Add(res.Key, res.Value); - else if (res.Key.StartsWith(Style.StyleClassPrefix, StringComparison.Ordinal)) - { - var mergedClassStyles = new List