[NUI] sync with dalihub (#746)
authorhuiyueun <35286162+huiyueun@users.noreply.github.com>
Wed, 13 Mar 2019 05:09:16 +0000 (14:09 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 13 Mar 2019 05:09:16 +0000 (14:09 +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

* [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 <seoyeon2.kim@samsung.com>
* 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 <huiyu.eun@samsung.com>
* [NUI] Fix RenderingBehavior issue

Change-Id: I35b83e115fd60d2b43ed49c2a35a0f34377e55c2
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [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 <huiyu.eun@samsung.com>
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 <huiyu.eun@samsung.com>
* [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 <huiyu.eun@samsung.com>
* 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 <dongsug.song@samsung.com>
* [NUI] Remove deprecated APIs in native DALi

Change-Id: Icc5d90e6e5752fc3b24ce3ea29cd11a89280b4b7
Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
* [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 <dongsug.song@samsung.com>
* [NUI] Sync dalihub and Samsung's TizenFX codes.

Change-Id: I8278896c39209e076cc7e1cce3fee63a6e3a53ad
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] modify GetHashCode()

Change-Id: Ib642ba64e746fb811be7a5e7e2cb4e82d5c6eb8a
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Fix VD svace issue

- add null check
- add lock

Change-Id: I706d1b0314e1e9096597eedc01593932945286e1
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Fix VD Svace issue

Change-Id: I032ed4e562603441be4d26be68e29e0081e8c917
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [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 <dongsug.song@samsung.com>
* 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 <huiyu.eun@samsung.com>
* [NUI] Fix PropertyMap setting issue

Change-Id: I90548287836a4e4338c3a6d2dd5c1802ef24f876
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Fix svace issue

Change-Id: I014294612530f600c14c237484f95dfff0c5ec96
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Update comments of ImfManager and InputMethodContext

Change-Id: I72cdb3665f2e6ee3d2e355c7d18e41f74c09bba6

* Override Equals function for Color.

Signed-off-by: Feng Jin <feng16.jin@samsung.com>
* [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 <feng16.jin@samsung.com>
* 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 <huiyu.eun@samsung.com>
* [NUI] Fix ABI break (#731)

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NoMerge]ElmSharp.Wearable

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* Fix inhouse API

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* Fix build warnings

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Fix codacy

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* [NUI] Fix codcay

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* fix build error

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* fix codacy

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* fix codacy

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
* fix codacy

Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
16 files changed:
src/Tizen.NUI/src/internal/Application.cs
src/Tizen.NUI/src/internal/ApplicationExtensions.cs [deleted file]
src/Tizen.NUI/src/internal/EnvironmentVariable.cs [changed mode: 0644->0755]
src/Tizen.NUI/src/internal/Layouting/LayoutLengthEx.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/Layouting/LayoutSizeEx.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/Layouting/MeasureSpecification.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/Layouting/MeasuredSizeEx.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/NDalicPINVOKE.cs
src/Tizen.NUI/src/internal/XamlBinding/ResourcesExtensions.cs
src/Tizen.NUI/src/public/BaseComponents/ImageView.cs
src/Tizen.NUI/src/public/BaseComponents/VisualView.cs
src/Tizen.NUI/src/public/Color.cs
src/Tizen.NUI/src/public/ImfManager.cs
src/Tizen.NUI/src/public/InputMethodContext.cs
src/Tizen.NUI/src/public/NUIConstants.cs
src/Tizen.NUI/src/public/Window.cs

index 90dc878..d1e618a 100755 (executable)
@@ -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 (executable)
index 8f6f15d..0000000
+++ /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/Layouting/LayoutLengthEx.cs b/src/Tizen.NUI/src/internal/Layouting/LayoutLengthEx.cs
new file mode 100755 (executable)
index 0000000..cc5b4fa
--- /dev/null
@@ -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
+{
+    /// <summary>
+    /// [Draft] A type that represents a layout length. Currently, this implies pixels, but could be extended to handle device dependant sizes, etc.
+    /// </summary>
+    internal class LayoutLengthEx : IEquatable<LayoutLengthEx>
+    {
+        private readonly float _value;
+
+        /// <summary>
+        /// [Draft] Constructor from an int
+        /// </summary>
+        /// <param name="value">Int to initialize with.</param>
+        public LayoutLengthEx(int value)
+        {
+            _value = value;
+        }
+
+        /// <summary>
+        /// [Draft] Constructor from a float
+        /// </summary>
+        /// <param name="value">Float to initialize with.</param>
+        public LayoutLengthEx(float value)
+        {
+            _value = value;
+        }
+
+        /// <summary>
+        /// [Draft] Constructor from a LayoutLength
+        /// </summary>
+        /// <param name="layoutLength">LayoutLength object to initialize with.</param>
+        public LayoutLengthEx(LayoutLengthEx layoutLength)
+        {
+            _value = layoutLength._value;
+        }
+
+        /// <summary>
+        /// [Draft] Return value as rounded value (whole number), best used as final output
+        /// </summary>
+        /// <returns>The layout length value as a rounded whole number.</returns>
+        public float AsRoundedValue()
+        {
+            return (float)Math.Round((decimal)_value, MidpointRounding.AwayFromZero);
+        }
+
+        /// <summary>
+        /// [Draft] Return value as the raw decimal value, best used for calculations
+        /// </summary>
+        /// <returns>The layout length value as the raw decimal value.</returns>
+        public float AsDecimal()
+        {
+            return _value;
+        }
+
+        /// <summary>
+        /// [Draft] The == operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value</param>
+        /// <returns>true if LayoutLengths are equal</returns>
+        public static bool operator ==(LayoutLengthEx arg1, LayoutLengthEx arg2)
+        {
+            return arg1.Equals(arg2);
+        }
+
+        /// <summary>
+        /// [Draft] The != operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value</param>
+        /// <returns>true if LayoutLengths are not equal</returns>
+        public static bool operator !=(LayoutLengthEx arg1, LayoutLengthEx arg2)
+        {
+            return !arg1.Equals(arg2);
+        }
+
+        /// <summary>
+        /// Determines whether the specified object is equal to the current object.
+        /// </summary>
+        /// <param name="obj">The object to compare with the current object.</param>
+        /// <returns>true if equal LayoutLength, else false.</returns>
+        public override bool Equals(object obj)
+        {
+            LayoutLengthEx layoutLengthEx = obj as LayoutLengthEx;
+            if (layoutLengthEx != null)
+            {
+                return Equals(layoutLengthEx);
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// Determines whether the specified object is equal to the current object.
+        /// </summary>
+        /// <param name="layoutLength">The LayoutLength to compare with the current LayoutLength.</param>
+        /// <returns>true if equal LayoutLengths, else false.</returns>
+        public bool Equals(LayoutLengthEx layoutLength)
+        {
+            return (Math.Abs(_value - layoutLength._value ) <= float.Epsilon);
+        }
+
+        /// <summary>
+        /// A hash code for the current object.
+        /// </summary>
+        public override int GetHashCode()
+        {
+            return _value.GetHashCode();
+        }
+
+        /// <summary>
+        /// The addition operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value.</param>
+        /// <returns>The LayoutLength containing the result of the addition.</returns>
+        public static LayoutLengthEx operator +(LayoutLengthEx arg1, LayoutLengthEx arg2)
+        {
+            return new LayoutLengthEx( arg1._value + arg2._value );
+        }
+
+        /// <summary>
+        /// The addition operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value.</param>
+        /// <returns>The LayoutLength containing the result of the addition.</returns>
+        public static LayoutLengthEx operator +(LayoutLengthEx arg1, int arg2)
+        {
+            return new LayoutLengthEx(arg1._value + (float)arg2);
+        }
+
+        /// <summary>
+        /// The subtraction operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value.</param>
+        /// <returns>The LayoutLength containing the result of the subtraction.</returns>
+        public static LayoutLengthEx operator -(LayoutLengthEx arg1, LayoutLengthEx arg2)
+        {
+            return new LayoutLengthEx(arg1._value - arg2._value);
+        }
+
+        /// <summary>
+        /// The subtraction operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value.</param>
+        /// <returns>The LayoutLength containing the result of the subtraction.</returns>
+        public static LayoutLengthEx operator -(LayoutLengthEx arg1, int arg2)
+        {
+            return new LayoutLengthEx(arg1._value - (float)arg2);
+        }
+
+        /// <summary>
+        /// The multiplication operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value.</param>
+        /// <returns>The LayoutLength containing the result of the multiplication.</returns>
+        public static LayoutLengthEx operator *(LayoutLengthEx arg1, LayoutLengthEx arg2)
+        {
+            return new LayoutLengthEx(arg1._value * arg2._value);
+        }
+
+        /// <summary>
+        /// Th multiplication operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The int value to scale the LayoutLength.</param>
+        /// <returns>The LayoutLength containing the result of the scaling.</returns>
+        public static LayoutLengthEx operator *(LayoutLengthEx arg1, int arg2)
+        {
+            return new LayoutLengthEx(arg1._value * arg2);
+        }
+
+        /// <summary>
+        /// The division operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The second value.</param>
+        /// <returns>The LayoutLength containing the result of the division.</returns>
+        public static LayoutLengthEx operator /(LayoutLengthEx arg1, LayoutLengthEx arg2)
+        {
+            return new LayoutLengthEx(arg1._value /  arg2._value);
+        }
+
+        /// <summary>
+        /// Th division operator.
+        /// </summary>
+        /// <param name="arg1">The first value.</param>
+        /// <param name="arg2">The int value to scale the vector by.</param>
+        /// <returns>The LayoutLength containing the result of the scaling.</returns>
+        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 (executable)
index 0000000..c64bfc2
--- /dev/null
@@ -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
+{
+    /// <summary>
+    /// [Draft] This class represents a layout size (width and height), non mutable.
+    /// </summary>
+    internal class LayoutSizeEx : IEquatable<LayoutSizeEx>
+    {
+        /// <summary>
+        /// [Draft] Constructor from width and height
+        /// </summary>
+        /// <param name="width">Int to initialize with.</param>
+        /// <param name="height">Int to initialize with.</param>
+        public LayoutSizeEx(int width, int height)
+        {
+            Width = width;
+            Height = height;
+        }
+
+        /// <summary>
+        /// Computes a hash code for this LayoutSize for use in hash based collections.
+        /// </summary>
+        /// <returns>A non unique hash code .</returns>
+        public override int GetHashCode()
+        {
+            return Width ^ Height;
+        }
+
+        /// <summary>
+        /// Determines whether the specified object is equal to the current object.
+        /// </summary>
+        /// <param name="obj">The object to compare with the current object.</param>
+        /// <returns>true if equal LayoutSize, else false.</returns>
+        public override bool Equals(object obj)
+        {
+            LayoutSizeEx layoutSizeEx = (LayoutSizeEx)obj;
+            if (layoutSizeEx != null)
+            {
+                return this.Equals(layoutSizeEx);
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// Whether the values of two LayoutSize objects are equals
+        /// </summary>
+        /// <param name="obj">Object to be compared against.</param>
+        /// <returns>true if obj is equal to this LayoutSize.</returns>
+        public bool Equals(LayoutSizeEx obj)
+        {
+            LayoutSizeEx layoutSize = obj;
+            return ((layoutSize.Width == Width) && (layoutSize.Height == Height));
+        }
+
+        /// <summary>
+        /// [Draft] Get the width value of this layout
+        /// </summary>
+        public int Width{ get; private set; }
+
+        /// <summary>
+        /// [Draft] Get the height value of this layout
+        /// </summary>
+        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 (executable)
index 0000000..064ac5a
--- /dev/null
@@ -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
+{
+    /// <summary>
+    /// [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.
+    /// </summary>
+    internal class MeasureSpecification
+    {
+        /// <summary>
+        /// MeasureSpecification Size value.
+        /// </summary>
+        public LayoutLengthEx Size;
+
+        /// <summary>
+        /// MeasureSpecification Mode.
+        /// </summary>
+        public MeasureSpecification.ModeType Mode;
+
+        /// <summary>
+        /// Constructor taking size and mode type.
+        /// </summary>
+        /// <param name="size">size value.</param>
+        /// <param name="mode">mode vaue.</param>
+        public MeasureSpecification(LayoutLengthEx size, MeasureSpecification.ModeType mode)
+        {
+            Size = size;
+            Mode = mode;
+        }
+
+        public enum ModeType
+        {
+            /// <summary>
+            /// This is used by a parent to determine the desired dimension of a child layout.
+            /// </summary>
+            Unspecified,
+            /// <summary>
+            /// 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.
+            /// </summary>
+            Exactly,
+            /// <summary>
+            /// 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.
+            /// </summary>
+            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 (executable)
index 0000000..5d806d5
--- /dev/null
@@ -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
+{
+    /// <summary>
+    /// [Draft] Class that encodes a measurement and a measure state, which is set if the measured size is too small.
+    /// </summary>
+    internal class MeasuredSizeEx
+    {
+        /// <summary>
+        /// Constructor
+        /// </summary>
+        /// <param name="measuredSize">size parameter</param>
+        /// <param name="state">State</param>
+        public MeasuredSizeEx(LayoutLengthEx measuredSize, MeasuredSizeEx.StateType state)
+        {
+            Size = measuredSize;
+            State = state;
+        }
+
+        /// <summary>
+        /// Creates a MeasuredSize from a LayoutLength
+        /// </summary>
+        /// <param name="measuredSize">LayoutLength to create </param>
+        public static implicit operator MeasuredSizeEx(LayoutLengthEx measuredSize)
+        {
+            return new MeasuredSizeEx(measuredSize, StateType.MeasuredSizeOK);
+        }
+
+        /// <summary>
+        /// LayoutLength size property
+        /// </summary>
+        public LayoutLengthEx Size{ get; set;}
+
+        /// <summary>
+        /// Measured state for this size.
+        /// </summary>
+        public StateType State{ get; set; }
+
+        /// <summary>
+        /// Measured states for a Size value.
+        /// </summary>
+        public enum StateType
+        {
+            /// <summary>
+            /// The measured size is good
+            /// </summary>
+            MeasuredSizeOK,
+            /// <summary>
+            /// The measured size is too small
+            /// </summary>
+            MeasuredSizeTooSmall
+        }
+    }
+}
index 1b8b31a..36cb84d 100755 (executable)
@@ -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);
 
index b4cd21a..a598985 100755 (executable)
@@ -16,16 +16,16 @@ namespace Tizen.NUI.Binding
                     resources = resources ?? new Dictionary<string, object>();
                     if (ve.XamlResources != null)
                     {
-                    foreach (KeyValuePair<string, object> 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<Style>(resources[res.Key] as List<Style>);
-                            mergedClassStyles.AddRange(res.Value as List<Style>);
-                            resources[res.Key] = mergedClassStyles;
-                        }
-                }
+                        foreach (KeyValuePair<string, object> 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<Style>(resources[res.Key] as List<Style>);
+                                mergedClassStyles.AddRange(res.Value as List<Style>);
+                                resources[res.Key] = mergedClassStyles;
+                            }
+                    }
                 }
                 var app = element as Application;
                 if (app != null && app.SystemResources != null)
index 2e54697..370cb5e 100755 (executable)
@@ -49,7 +49,10 @@ namespace Tizen.NUI.BaseComponents
         defaultValueCreator: (bindable) =>
         {
             var imageView = (ImageView)bindable;
-            Tizen.NUI.Object.GetProperty(imageView.swigCPtr, ImageView.Property.IMAGE).Get(out imageView._url);
+            if(imageView._imageType == ImageType.Normal)
+            {
+                Tizen.NUI.Object.GetProperty(imageView.swigCPtr, ImageView.Property.IMAGE).Get(out imageView._url);
+            }
             return imageView._url;
         });
 
@@ -235,6 +238,7 @@ namespace Tizen.NUI.BaseComponents
         private string _url;
         private bool? _orientationCorrection;
         private PropertyMap _image;
+        private ImageType _imageType;
 
         /// <summary>
         /// Creates an initialized ImageView.
@@ -715,7 +719,7 @@ namespace Tizen.NUI.BaseComponents
 
         private void UpdateImage()
         {
-            if (_url != null)
+            if (_url != null && _url != "")
             {
                 if (_border != null)
                 { // for nine-patch image
@@ -727,6 +731,7 @@ namespace Tizen.NUI.BaseComponents
                     if (_synchronousLoading != null) { _nPatchMap.Add(NpatchImageVisualProperty.SynchronousLoading, new PropertyValue((bool)_synchronousLoading)); }
                     if (_orientationCorrection != null) { _nPatchMap.Add(ImageVisualProperty.OrientationCorrection, new PropertyValue((bool)_orientationCorrection)); }
                     SetProperty(ImageView.Property.IMAGE, new PropertyValue(_nPatchMap));
+                    _imageType = ImageType.Npatch;
                 }
                 else if (_synchronousLoading != null || _orientationCorrection != null)
                 { // for normal image, with synchronous loading property
@@ -736,10 +741,13 @@ namespace Tizen.NUI.BaseComponents
                     if (_synchronousLoading != null) { imageMap.Add(ImageVisualProperty.SynchronousLoading, new PropertyValue((bool)_synchronousLoading)); }
                     if (_orientationCorrection != null) { imageMap.Add(ImageVisualProperty.OrientationCorrection, new PropertyValue((bool)_orientationCorrection)); }
                     SetProperty(ImageView.Property.IMAGE, new PropertyValue(imageMap));
+
+                    _imageType = ImageType.Specific;
                 }
                 else
                 { // just for normal image
                     SetProperty(ImageView.Property.IMAGE, new PropertyValue(_url));
+                    _imageType = ImageType.Normal;
                 }
             }
             else
@@ -760,6 +768,7 @@ namespace Tizen.NUI.BaseComponents
                     map.Merge(_image);
                 }
                 SetProperty(ImageView.Property.IMAGE, new PropertyValue(map));
+                _imageType = ImageType.Normal;
             }
         }
 
@@ -826,5 +835,23 @@ namespace Tizen.NUI.BaseComponents
             internal static readonly int ACTION_PAUSE = NDalicManualPINVOKE.ImageView_IMAGE_VISUAL_ACTION_PAUSE_get();
             internal static readonly int ACTION_STOP = NDalicManualPINVOKE.ImageView_IMAGE_VISUAL_ACTION_STOP_get();
         }
+
+        private enum ImageType
+        {
+            /// <summary>
+            /// For Normal Image.
+            /// </summary>
+            Normal = 0,
+
+            /// <summary>
+            /// For normal image, with synchronous loading and orientation correction property
+            /// </summary>
+            Specific = 1,
+
+            /// <summary>
+            /// For nine-patch image
+            /// </summary>
+            Npatch = 2,
+        }
     }
 }
index e27587a..441fecd 100755 (executable)
@@ -50,7 +50,7 @@ namespace Tizen.NUI.BaseComponents
         /// Constructor.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
-        public VisualView() : base(typeof(VisualView).FullName, CustomViewBehaviour.ViewBehaviourDefault)
+        public VisualView() : base(typeof(VisualView).FullName, CustomViewBehaviour.ViewBehaviourDefault | CustomViewBehaviour.RequiresTouchEventsSupport)
         {
         }
 
index 0bb24ea..13f59f6 100755 (executable)
@@ -17,6 +17,7 @@
 
 using System;
 using Tizen.NUI.Binding;
+using System.ComponentModel;
 
 namespace Tizen.NUI
 {
@@ -24,7 +25,7 @@ namespace Tizen.NUI
     /// <summary>
     /// The Color class.
     /// </summary>
-    [TypeConverter(typeof(ColorTypeConverter))]
+    [Tizen.NUI.Binding.TypeConverter(typeof(ColorTypeConverter))]
     public class Color : global::System.IDisposable
     {
 
@@ -98,6 +99,8 @@ namespace Tizen.NUI
         //A Flag to check who called Dispose(). (By User or DisposeQueue)
         private bool isDisposeQueued = false;
 
+        private readonly bool hashDummy;
+
         /// <summary>
         /// Default constructor
         /// </summary>
@@ -135,6 +138,7 @@ namespace Tizen.NUI
         {
             swigCMemOwn = cMemoryOwn;
             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+                       hashDummy = false;
         }
 
         /// <summary>
@@ -617,6 +621,55 @@ namespace Tizen.NUI
             return ret;
         }
 
+        private static bool EqualsColorValue(float f1, float f2)
+        {
+            float EPS = (float)Math.Abs(f1 * .00001);
+            if(Math.Abs(f1 - f2) <= EPS)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+
+        private static bool EqualsColor(Color c1, Color c2)
+        {
+            return EqualsColorValue(c1.R, c2.R) && EqualsColorValue(c1.G, c2.G)
+                && EqualsColorValue(c1.B, c2.B) && EqualsColorValue(c1.A, c2.A);
+        }
+
+        /// <summary>
+        /// Determines whether the specified object is equal to the current object.
+        /// </summary>
+        /// <param name="obj">The object to compare with the current object.</param>
+        /// <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
+        /// 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 override bool Equals(System.Object obj)
+        {
+            Color color = obj as Color;
+            bool equal = false;
+            if (color == null)
+            {
+                return equal;
+            }
+
+            if (EqualsColor(this, color))
+            {
+                equal = true;
+            }
+            return equal;
+        }
+
+        /// 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 override int GetHashCode()
+        {
+            return hashDummy.GetHashCode();
+        }
+
         private float ValueOfIndex(uint index)
         {
             float ret = NDalicPINVOKE.Vector4_ValueOfIndex__SWIG_0(swigCPtr, index);
index 621fa18..a2dcd77 100755 (executable)
@@ -705,11 +705,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Dispose.
+        /// You can override it to clean-up your own resources.
         /// </summary>
         /// <param name="type">Dispose Type</param>
         /// <since_tizen> 3 </since_tizen>
-        /// Please DO NOT use! This will be deprecated!
+        /// Please do not use! This will be deprecated!
         /// Dispose() method in Singletone classes (ex: FocusManager, StyleManager, VisualFactory, ImfManager, TtsPlayer, Window) is not required.
         [EditorBrowsable(EditorBrowsableState.Never)]
         protected override void Dispose(DisposeTypes type)
@@ -728,7 +728,7 @@ namespace Tizen.NUI
             }
 
             //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
+            //You should not access any managed member here except static instance
             //because the execution order of Finalizes is non-deterministic.
 
             if (_keyboardTypeChangedEventCallback != null)
@@ -846,20 +846,20 @@ namespace Tizen.NUI
         public class ImfEventData : global::System.IDisposable
         {
             /// <summary>
-            /// swigCMemOwn
+            /// The state if it owns memory
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             protected bool swigCMemOwn;
 
             /// <summary>
-            /// A Flat to check if it is already disposed.
+            /// A flag to check if it is already disposed.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             protected bool disposed = false;
 
             private global::System.Runtime.InteropServices.HandleRef swigCPtr;
 
-            //A Flag to check who called Dispose(). (By User or DisposeQueue)
+            //A flag to check who called Dispose(). (By User or DisposeQueue)
             private bool isDisposeQueued = false;
 
             /// <summary>
@@ -891,7 +891,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// Releases the resource.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             ~ImfEventData()
@@ -1015,7 +1015,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// You can override it to clean-up your own resources.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             protected virtual void Dispose(DisposeTypes type)
@@ -1058,20 +1058,20 @@ namespace Tizen.NUI
         public class ImfCallbackData : global::System.IDisposable
         {
             /// <summary>
-            /// swigCMemOwn
+            /// The state if it owns memory
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             protected bool swigCMemOwn;
 
             /// <summary>
-            /// A Flat to check if it is already disposed.
+            /// A flag to check if it is already disposed.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             protected bool disposed = false;
 
             private global::System.Runtime.InteropServices.HandleRef swigCPtr;
 
-            //A Flag to check who called Dispose(). (By User or DisposeQueue)
+            //A flag to check who called Dispose(). (By User or DisposeQueue)
             private bool isDisposeQueued = false;
 
             /// <summary>
@@ -1103,7 +1103,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// Releases the resource.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             ~ImfCallbackData()
@@ -1232,7 +1232,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// You can override it to clean-up your own resources.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
             protected virtual void Dispose(DisposeTypes type)
@@ -1275,7 +1275,7 @@ namespace Tizen.NUI
         public class ActivatedEventArgs : EventArgs
         {
             /// <summary>
-            /// ImfManager
+            /// The instance of ImfManager
             /// </summary>
             /// <since_tizen> 4 </since_tizen>
             public ImfManager ImfManager
@@ -1292,7 +1292,7 @@ namespace Tizen.NUI
         public class EventReceivedEventArgs : EventArgs
         {
             /// <summary>
-            /// ImfManager
+            /// The instance of ImfManager
             /// </summary>
             /// <since_tizen> 4 </since_tizen>
             public ImfManager ImfManager
@@ -1302,7 +1302,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// ImfEventData
+            /// The event data of IMF
             /// </summary>
             /// <since_tizen> 4 </since_tizen>
             public ImfEventData ImfEventData
@@ -1336,7 +1336,7 @@ namespace Tizen.NUI
         public class ResizedEventArgs : EventArgs
         {
             /// <summary>
-            /// resized.
+            /// The state if the IMF resized.
             /// </summary>
             /// <since_tizen> 4 </since_tizen>
             public int Resized
index 368231a..01e967d 100755 (executable)
@@ -696,11 +696,11 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Dispose
+        /// You can override it to clean-up your own resources.
         /// </summary>
         /// <param name="type">Dispose Type</param>
         /// <since_tizen> 5 </since_tizen>
-        /// Please DO NOT use! This will be deprecated!
+        /// Please do not use! This will be deprecated!
         /// Dispose() method in Singletone classes (ex: FocusManager, StyleManager, VisualFactory, InputMethodContext, TtsPlayer, Window) is not required.
         [EditorBrowsable(EditorBrowsableState.Never)]
         protected override void Dispose(DisposeTypes type)
@@ -719,8 +719,8 @@ namespace Tizen.NUI
             }
 
             //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.
+            //You should not access any managed member here except static instance
+            //because the execution order of Finalizes is non-deterministic.
 
             if (_keyboardTypeChangedEventCallback != null)
             {
@@ -837,7 +837,7 @@ namespace Tizen.NUI
         public class EventData : global::System.IDisposable
         {
             /// <summary>
-            /// swigCMemOwn
+            /// The state if it owns memory
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             protected bool swigCMemOwn;
@@ -882,7 +882,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// Releases the resource.
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             ~EventData()
@@ -1006,7 +1006,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// You can override it to clean-up your own resources.
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             protected virtual void Dispose(DisposeTypes type)
@@ -1049,7 +1049,7 @@ namespace Tizen.NUI
         public class CallbackData : global::System.IDisposable
         {
             /// <summary>
-            /// swigCMemOwn
+            /// The state if it owns memory
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             protected bool swigCMemOwn;
@@ -1062,7 +1062,7 @@ namespace Tizen.NUI
 
             private global::System.Runtime.InteropServices.HandleRef swigCPtr;
 
-            //A Flag to check who called Dispose(). (By User or DisposeQueue)
+            //A flag to check who called Dispose(). (By User or DisposeQueue)
             private bool isDisposeQueued = false;
 
             /// <summary>
@@ -1088,7 +1088,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// Releases the resource.
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             ~CallbackData()
@@ -1139,7 +1139,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// If the cursor position needs to be updated.
+            /// The state if the cursor position needs to be updated.
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             public bool Update
@@ -1223,7 +1223,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// Dispose.
+            /// You can override it to clean-up your own resources.
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             protected virtual void Dispose(DisposeTypes type)
@@ -1266,7 +1266,7 @@ namespace Tizen.NUI
         public class ActivatedEventArgs : EventArgs
         {
             /// <summary>
-            /// InputMethodContext
+            /// The instance of InputMethodContext
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             public InputMethodContext InputMethodContext
@@ -1283,7 +1283,7 @@ namespace Tizen.NUI
         public class EventReceivedEventArgs : EventArgs
         {
             /// <summary>
-            /// InputMethodContext
+            /// The instance of InputMethodContext
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             public InputMethodContext InputMethodContext
@@ -1293,7 +1293,7 @@ namespace Tizen.NUI
             }
 
             /// <summary>
-            /// EventData.
+            /// The event data of IMF
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             public EventData EventData
@@ -1327,7 +1327,7 @@ namespace Tizen.NUI
         public class ResizedEventArgs : EventArgs
         {
             /// <summary>
-            /// resized.
+            /// The state if the IMF resized.
             /// </summary>
             /// <since_tizen> 5 </since_tizen>
             public int Resized
index c3cd64d..05ea25c 100755 (executable)
@@ -121,10 +121,6 @@ namespace Tizen.NUI
         /// <summary>
         /// Will be replaced by separate ClippingMode enum. Draw the actor and its children into the stencil buffer.
         /// </summary>
-        /// <remarks>
-        /// Deprecated.(API Level 6) Use ClippingModeType instead.
-        /// </remarks>
-        [Obsolete("Please do not use this DrawModeType.Stencil(Deprecated). Please use ClippingModeType instead.")]
         Stencil = 3
     }
 
@@ -257,6 +253,27 @@ namespace Tizen.NUI
         /// </summary>
         DisableSizeNegotiation = 1 << 0,
         /// <summary>
+        /// True if OnTouch() callback is required.
+        /// </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)]
+        RequiresTouchEventsSupport = 1 << 1,
+        /// <summary>
+        /// True if OnHover() callback is required.
+        /// </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)]
+        RequiresHoverEventsSupport = 1 << 2,
+        /// <summary>
+        /// True if OnWheel() callback is required.
+        /// </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)]
+        RequiresWheelEventsSupport = 1 << 3,
+        /// <summary>
         /// Use to provide key navigation support.
         /// </summary>
         RequiresKeyboardNavigationSupport = 1 << 5,
index ba929bf..8406045 100644 (file)
@@ -1530,7 +1530,7 @@ namespace Tizen.NUI
         private bool OnStageWheel(IntPtr rootLayer, IntPtr wheelEvent)
         {
             if (wheelEvent == global::System.IntPtr.Zero)
-        {
+            {
                 NUILog.Error("wheelEvent should not be null!");
                 return true;
             }