[NUI] integration from DevelNUI to master (#3309)
authorSeoyeon2Kim <34738918+Seoyeon2Kim@users.noreply.github.com>
Tue, 13 Jul 2021 06:57:10 +0000 (15:57 +0900)
committerGitHub <noreply@github.com>
Tue, 13 Jul 2021 06:57:10 +0000 (15:57 +0900)
* [NUI] Add NUITizenGallery Ubuntu VS code project

* [NUI] fix transition order

 - this patch is hotfix to fix problem derived by transition order.

Signed-off-by: seungho <sbsh.baek@samsung.com>
* [NUI] Fix RelativeLayout Measure size calculation

Previously, the actual spec size is given to MeasureChild() and MeasureChild()
subtracts Padding size from the actual spec size.

Now, the actual spec size with Padding size is given to MeasureChild() to
display child with the actual spec size.

Moreover, since child's MeasuredWidth/Height are calculated in MeasureChild(),
duplicate MeasureWidth/Height assigning codes are removed.

* [NUI] Apply ImageUrl in CaptureTest

CaptureTest need to use ImageUrl
So i apply it

* [NUI] Rename APIs related to context menu. (#3263)

* [NUI] Fix ThemeManager to return valid platform theme Id (#3300)

Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
* [NUI] Add a tip for NUITizenGallery project

* [NUI] Add XAML TCs

* [XamlBuild] Remove static member in EXaml Operation

* [NUI] Fix build errors of NUI.Devel.Tests.

* [NUI] Add EncodedImageBuffer class (Load image frome Stream)

This patch will make some simple way to upload image from C# Stream to View.

- EncodedImageBuffer will create by C# Stream.
  Stream stream = global::System.IO.File.OpenRead("filename.png");
  EncodedImageBuffer buffer = new EncodedImageBuffer(stream);
- Generate ImageUrl
  ImageUrl url = buffer.GenerateUrl();
- You can use this ImageUrl as image's url
  ImageView view = new ImageView(url.GetUrl());

* [NUI] Add TCs of FrameBroker(internal).

* [NUI] Add TCs of Common(Internal).

* [NUI] Add ProcessorController

Signed-off-by: seungho <sbsh.baek@samsung.com>
* [NUI] Change InterceptTouchEvent.

* [NUI] Rectoring items layout

* [NUI] Change shouldIntercept value

* Revert "[NUI] Change shouldIntercept value"

This reverts commit 6d9b8daa4f1a466afa41cb8fb8cf7ede3990b9ec.

* Revert "[NUI] Change InterceptTouchEvent."

This reverts commit dbe26102b8c8f4473cb6ea08064dbcb916fbd3a8.

* [NUI] Version update (nui22034) (#3307)

Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
* [NUI] Change default Navigator Animation

Default Navigator Animation is changed not to show the background behind the
pages.

During Push(), alpha animation is not applied to the current page.
During Pop(), alpha animation is not applied to the previous page.

Co-authored-by: Dongsug Song <dongsug.song@samsung.com>
Co-authored-by: seungho <sbsh.baek@samsung.com>
Co-authored-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Co-authored-by: Sunghyun Kim <scholb.kim@samsung.com>
Co-authored-by: huayongxu <49056704+huayongxu@users.noreply.github.com>
Co-authored-by: Jiyun Yang <ji.yang@samsung.com>
Co-authored-by: zhouleonlei <zhouleon.lei@samsung.com>
Co-authored-by: Fang Xiaohui <xiaohui.fang@samsung.com>
Co-authored-by: guowei.wang <guowei.wang@samsung.com>
Co-authored-by: Eunki Hong <h.pichulia@gmail.com>
Co-authored-by: Joogab Yun <joogab.yun@samsung.com>
Co-authored-by: EverLEEst(SangHyeon Lee) <sh10233.lee@samsung.com>
580 files changed:
packaging/csapi-tizenfx.spec
packaging/version.txt
src/Tizen.NUI.Components/Controls/Navigation/Navigator.cs
src/Tizen.NUI.Components/Controls/RecyclerView/Item/DefaultLinearItem.cs
src/Tizen.NUI.Components/Controls/RecyclerView/Item/DefaultTitleItem.cs
src/Tizen.NUI.Components/Controls/RecyclerView/Item/RecyclerViewItem.Internal.cs
src/Tizen.NUI/src/internal/Common/ProcessorController.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/EXaml/Action/CreateInstanceAction.cs
src/Tizen.NUI/src/internal/EXaml/Action/GetObjectByPropertyAction.cs
src/Tizen.NUI/src/internal/EXaml/GlobalDataList.cs
src/Tizen.NUI/src/internal/EXaml/LoadEXaml.cs
src/Tizen.NUI/src/internal/EXaml/Operation/CreateInstance.cs
src/Tizen.NUI/src/internal/EXaml/Operation/GatherStaticInstance.cs
src/Tizen.NUI/src/internal/EXaml/Operation/RegisterXName.cs
src/Tizen.NUI/src/internal/Interop/Interop.EncodedImageBuffer.cs [new file with mode: 0644]
src/Tizen.NUI/src/internal/Interop/Interop.ProcessorController.cs [moved from src/Tizen.NUI/src/internal/Layouting/Interop/Interop.LayoutController.cs with 56% similarity]
src/Tizen.NUI/src/internal/Interop/Interop.WebContext.cs
src/Tizen.NUI/src/internal/Interop/Interop.WebContextMenu.cs
src/Tizen.NUI/src/internal/Interop/Interop.WebView.cs
src/Tizen.NUI/src/internal/Layouting/LayoutController.cs
src/Tizen.NUI/src/internal/WebView/WebContext.cs
src/Tizen.NUI/src/internal/WebView/WebContextMenu.cs
src/Tizen.NUI/src/internal/WebView/WebView.cs
src/Tizen.NUI/src/internal/WebView/WebViewContextMenuHiddenEventArgs.cs [moved from src/Tizen.NUI/src/internal/WebView/WebViewContextMenuItemSelectedEventArgs.cs with 71% similarity]
src/Tizen.NUI/src/internal/WebView/WebViewContextMenuHiddenSignal.cs [moved from src/Tizen.NUI/src/internal/WebView/WebViewContextMenuCustomizedSignal.cs with 74% similarity]
src/Tizen.NUI/src/internal/WebView/WebViewContextMenuShownEventArgs.cs [moved from src/Tizen.NUI/src/internal/WebView/WebViewContextMenuCustomizedEventArgs.cs with 79% similarity]
src/Tizen.NUI/src/internal/WebView/WebViewContextMenuShownSignal.cs [moved from src/Tizen.NUI/src/internal/WebView/WebViewContextMenuItemSelectedSignal.cs with 74% similarity]
src/Tizen.NUI/src/public/Images/EncodedImageBuffer.cs [new file with mode: 0644]
src/Tizen.NUI/src/public/Layouting/RelativeLayout.cs
src/Tizen.NUI/src/public/Theme/ThemeManager.cs
test/NUITizenGallery/.pic/NugetConfig.png [new file with mode: 0755]
test/NUITizenGallery/.pic/csproj-file.png [new file with mode: 0755]
test/NUITizenGallery/.pic/launch.png [new file with mode: 0755]
test/NUITizenGallery/.pic/run.png [new file with mode: 0755]
test/NUITizenGallery/.vscode/launch.json [new file with mode: 0644]
test/NUITizenGallery/.vscode/tasks.json [new file with mode: 0644]
test/NUITizenGallery/Examples/AbsoluteLayout/AbsoluteLayout.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/AbsoluteLayout/AbsoluteLayout.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ActivityIndicator/ActivityIndicator.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ActivityIndicator/ActivityIndicator.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/AlertDialogTest/AlertDialogTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/AlertDialogTest/AlertDialogTestPage.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/AnimationTest1/AnimationTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/AnimationTest1/AnimationTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/AnimationTest2/AnimationTest2.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/AnimationTest2/AnimationTest2.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/AnimationTest3/AnimationTest3.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/AnimationTest3/AnimationTest3.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/BackgroundColorTest1/BackGroundColorTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest1/BackgroundColorTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest2/BackGroundColorTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest2/BackgroundColorTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest3/BackGroundColorTest3.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest3/BackgroundColorTest3Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest4/BackGroundColorTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest4/BackgroundColorTest4Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest5/BackGroundColorTest5.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundColorTest5/BackgroundColorTest5Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundTest/BackgroundTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BackgroundTest/BackgroundTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest1/Behaviors/VisibilitySetter.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest1/BindingTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest1/BindingTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest1/ViewModels/BindingTest1ViewModel.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest2/BindingTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest2/BindingTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BindingTest2/ViewModels/BindingTest2ViewModel.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest1/BoViewTest1Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest1/BoxViewTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest2/BoViewTest2Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest2/BoxViewTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest3/BoViewTest3Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest3/BoxViewTest3.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest4/BoViewTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BoxViewTest4/BoxViewTest4.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushBackgroundTest/BrushBackgroundTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushBackgroundTest/BrushBackgroundTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushBorderTest/BrushBorderTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushBorderTest/BrushBorderTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushComponentsTest/BrushComponentsTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushComponentsTest/BrushComponentsTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushImageTest/BrushImageTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushImageTest/BrushImageTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushViewerTest/BrushViewerTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/BrushViewerTest/BrushViewerTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest2/ButtonTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest2/ButtonTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest5/ButtonTest5.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest5/ButtonTest5.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest6/ButtonTest6.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest6/ButtonTest6.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest7/ButtonTest7.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtonTest7/ButtonTest7.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtontTest1/ButtonTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ButtontTest1/ButtonTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselPageTest1/CarouselPageTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselPageTest1/CarouselPageTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselViewTest1/CarouselViewTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselViewTest1/CarouselViewTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselViewTest2/CarouselViewTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselViewTest2/CarouselViewTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselViewTest4/CarouselViewTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CarouselViewTest4/CarouselViewTest4.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CheckBoxTest/CheckBoxTest.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/CheckBoxTest/CheckBoxTest.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewFocusTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewFocusTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewItem.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest10.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest10Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest1Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest2Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest3.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest3Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest4.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest4Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest5.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest5Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest6.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest6Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest7.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest7Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest8.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest8Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest9.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest9Example.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CollectionViewTest/TestSource.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ContentPageTest/ContentPageTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ContentPageTest/ContentPageTestPage1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ContentPageTest/ContentPageTestPage2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CustomCellTest/CustomCellListItem.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CustomCellTest/CustomCellTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/CustomCellTest/CustomCellTestPage.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/DatePickerTest/DatePickerTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/DatePickerTest/DatePickerTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EditorTest1/EditorTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EditorTest1/EditorTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EditorTest2/EditorTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EditorTest2/EditorTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EntryTest1/EntryTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EntryTest1/EntryTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EntryTest2/EntryTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EntryTest2/EntryTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EntryTest4/EntryTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/EntryTest4/EntryTest4Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FlexTest1/FlexTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FlexTest1/FlexTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FlexTest2/FlexTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FlexTest2/FlexTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FlexTest3/FlexTest3.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FlexTest3/FlexTest3.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FrameLayoutTest1/FrameLayoutTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FrameLayoutTest1/FrameLayoutTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FrameTest1/FrameTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/FrameTest1/FrameTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/GridTest1/GridTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/GridTest1/GridTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/GridTest2/GridTest2.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/GridTest2/GridTest2.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/HelloWorld/HelloWorld.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/HelloWorld/HelloWorld.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/IconTest/IconTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/IconTest/IconTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ImageButtonTest/ImageButtonTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ImageButtonTest/ImageButtonTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ImageTest1/ImageTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest1/ImageTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest2/ImageTest2.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest2/ImageTest2.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest3/ImageTest3.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest3/ImageTest3.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest4/ImageTest4.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest4/ImageTest4.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest5/ImageTest5.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ImageTest5/ImageTest5.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/IndicatorViewTest1/IndicatorViewTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/IndicatorViewTest1/IndicatorViewTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/IndicatorViewTest4/IndicatorViewTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/IndicatorViewTest4/IndicatorViewTest4.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest1/LabelTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest1/LabelTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest2/LabelTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest2/LabelTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest3/LabeTest3Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest3/LabelTest3.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest5/LabelTest5.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/LabelTest5/LabelTest5Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ListViewFooterTest1/ListViewFooterTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ListViewFooterTest1/ListViewFooterTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/MenuTest/MenuTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/MenuTest/MenuTestMenu.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/MenuTest/MenuTestPage.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/NavigatorTest1/NavigatorTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/NavigatorTest1/NavigatorTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/NavigatorTest2/NavigatorTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/NavigatorTest2/NavigatorTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/OpacityTest1/OpacityTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/OpacityTest1/OpacityTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PanGestureTest1/PanGestureTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PanGestureTest1/PanGestureTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest1/ListItemTitle.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest1/PerformanceTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest1/PerformanceTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest2/ListItemTitleSwitch.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest2/PerformanceTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest2/PerformanceTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest3/ListItemTitleView.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest3/PerformanceTest3.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PerformanceTest3/PerformanceTest3.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PickerTest1/PickerTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PickerTest1/PickerTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PinchGestureTest1/PinchGestureTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/PinchGestureTest1/PinchGestureTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ProgressbarTest1/ProgressbarTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ProgressbarTest1/ProgressbarTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/RecalculateTest1/RecalculateTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/RecalculateTest1/RecalculateTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/RefreshViewTest1/RefreshViewTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/RefreshViewTest1/RefreshViewTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/RotationTest1/RotationTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/RotationTest1/RotationTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScaleTest1/ScaleTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ScaleTest1/ScaleTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ScaleTest2/ScaleTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ScaleTest2/ScaleTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ScrollViewTest1/ScrollViewTest1.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest1/ScrollViewTest1.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest2/ScrollViewTest2.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest2/ScrollViewTest2.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest3/ScrollViewTest3.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest3/ScrollViewTest3.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest4/ScrollViewTest4.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest4/ScrollViewTest4.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest7/ScrollViewTest7.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/ScrollViewTest7/ScrollViewTest7.xaml.cs [new file with mode: 0755]
test/NUITizenGallery/Examples/SetColorTest/SetColorTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SetColorTest/SetColorTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SimpleTest/SimpleTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SimpleTest/SimpleTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SliderTest1/SliderTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SliderTest1/SliderTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SliderTest2/SliderTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SliderTest2/SliderTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackInGridTest1/StackInGridTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackInGridTest1/StackInGridTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest1/StackLayoutTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest1/StackLayoutTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest2/StackLayoutTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest2/StackLayoutTest2Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest3/StackLayoutTest3.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest3/StackLayoutTest3Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest4Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest5.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest5Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest6/StackLayoutTest6.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest6/StackLayoutTest6Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest8/StackLayoutTest8.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/StackLayoutTest8/StackLayoutTest8Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SwipeGestureRecognizerTest/SwipeGestureRecognizerTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SwipeGestureRecognizerTest/SwipeGestureRecognizerTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SwipeViewTest1/SwipeViewTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SwipeViewTest1/SwipeViewTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SwipeViewTest2/SwipeViewTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/SwipeViewTest2/SwipeViewTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TabViewTest/TabViewTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TabViewTest/TabViewTestPage.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest1/TapGestureTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest1/TapGestureTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest2/TapGestureTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest2/TapGestureTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest3/TapGestureTest3.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest3/TapGestureTest3.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest4/TapGestureTest4.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TapGestureTest4/TapGestureTest4.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/Test1/Test1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/Test1/Test1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/Test2/Test2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/Test2/Test2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TextAnchorTest/TextAnchorTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TextAnchorTest/TextAnchorTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TimePickerTest/TimePickerTest.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/TimePickerTest/TimePickerTest.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ToolbarItemTest1/ToolbarItemTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/ToolbarItemTest1/ToolbarItemTest1Page.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/WebViewTest1/WebViewTest1.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/WebViewTest1/WebViewTest1.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/WebViewTest2/WebViewTest2.cs [new file with mode: 0644]
test/NUITizenGallery/Examples/WebViewTest2/WebViewTest2.xaml.cs [new file with mode: 0644]
test/NUITizenGallery/IExample.cs [new file with mode: 0644]
test/NUITizenGallery/NUITizenGallery.code-workspace [new file with mode: 0644]
test/NUITizenGallery/NUITizenGallery.cs [new file with mode: 0644]
test/NUITizenGallery/NUITizenGallery.csproj [new file with mode: 0755]
test/NUITizenGallery/NuGet.config [new file with mode: 0644]
test/NUITizenGallery/README.md [new file with mode: 0755]
test/NUITizenGallery/res/images/Boston.png [new file with mode: 0644]
test/NUITizenGallery/res/images/Image.png [new file with mode: 0644]
test/NUITizenGallery/res/images/NUITizenGallery.png [new file with mode: 0644]
test/NUITizenGallery/res/images/a.jpg [new file with mode: 0755]
test/NUITizenGallery/res/images/bg_0.png [new file with mode: 0644]
test/NUITizenGallery/res/images/bg_1.png [new file with mode: 0644]
test/NUITizenGallery/res/images/clock_tabs_ic_stopwatch.png [new file with mode: 0644]
test/NUITizenGallery/res/images/controller_btn_check_off.png [new file with mode: 0755]
test/NUITizenGallery/res/images/controller_btn_check_on.png [new file with mode: 0755]
test/NUITizenGallery/res/images/pagination_ic_nor.png [new file with mode: 0644]
test/NUITizenGallery/res/images/pagination_ic_sel.png [new file with mode: 0644]
test/NUITizenGallery/res/images/picture.png [new file with mode: 0755]
test/NUITizenGallery/res/images/posters/01 Jaws.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/02 Raiders of the Lost Ark.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/03 star wars.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/04 E.T. 2.jpeg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/05 Vertigo.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/06 Alien.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/07 Jurassic Park.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/08 The Silence of the Lambs.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/09 American Beauty.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/10 Back to the Future.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/11 Chinatown.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/12 The Godfather.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/13 Airplane.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/14 Pulp Fiction.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/15 Ghostbusters.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/16 The Usual Suspects.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/17 the people vs larry flynt.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/18 Trainspotting.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/19 Goodfellas.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/20 the truman show.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/21 Blade Runner.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/22 Full Metal Jacket.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/23 Attack of the 50ft Woman.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/24 Batman.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/25 nymph.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/26 the driver.jpeg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/27 The Phantom Menace.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/28 Platoon.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/29 Gone with the Wind.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/30 Forbidden Planet.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/31 The Exorcist.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/32 Anatomy of a Murder.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/33 Metropolis.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/34 Clockwork Orange.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/35 Halloween.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/36 Apocalypse Now.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/37 Rocketeer.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/38 Rosemary's Baby.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/39 Moon.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/40 Scream.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/41 Breakfast at Tiffany's.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/42 The Social Network.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/43 The Thing.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/44 Fear and Loathing in Las Vegas.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/45 Love In The Afternoon.jpeg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/46 Manhattan.jpeg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/47 Lord of War.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/48 Mean Streets.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/49 The Graduate.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/posters/50 little miss sunshine.jpg [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_0.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_1.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_10.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_11.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_12.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_2.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_3.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_4.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_5.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_6.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_7.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_8.png [new file with mode: 0644]
test/NUITizenGallery/res/images/progress_9.png [new file with mode: 0644]
test/NUITizenGallery/res/images/tizen.png [new file with mode: 0644]
test/NUITizenGallery/res/images/xamarin_logo.png [new file with mode: 0644]
test/NUITizenGallery/res/layout/AbsoluteLayoutPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ActivityIndicatorPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/AlertDialogTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/AnimationTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/AnimationTest2Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/AnimationTest3Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/BackgroundColorTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BackgroundColorTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BackgroundColorTest3Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BackgroundColorTest4Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BackgroundColorTest5Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BackgroundTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BindingTest1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BindingTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest2.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest3.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest4.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BrushBackgroundTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BrushBorderTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BrushComponentsTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BrushImageTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/BrushViewerTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ButtonTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ButtonTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ButtonTest5Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ButtonTest6Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ButtonTest7Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CarouselPageTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CarouselViewTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CarouselViewTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CarouselViewTest4Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CheckBoxTestPage.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/CollectionViewFocusTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewItem.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest10.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest2.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest3.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest4.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest5.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest6.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest7.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest8.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest9.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ContentPageTestPage1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ContentPageTestPage2.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CustomCellListItem.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/CustomCellTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/DatePickerTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/EditorTest1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/EditorTest2.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/EntryTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/EntryTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/EntryTest4Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/FlexTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/FlexTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/FlexTest3Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/FrameLayoutTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/FrameTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/GridTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/GridTest2Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/HelloWorldPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/IconTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ImageButtonTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ImageTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ImageTest2Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ImageTest3Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ImageTest4Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ImageTest5Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/IndicatorViewTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/IndicatorViewTest4Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/LabelTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/LabelTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/LabelTest3Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/LabelTest5Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ListItemTitle.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ListItemTitleSwitch.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ListItemTitleView.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ListViewFooterTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/MenuTest/MenuTestMenu.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/MenuTest/MenuTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/NavigatorTest/NavigatorTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/NavigatorTest/NavigatorTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/OpacityTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/PanGestureTest1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/PerformanceTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/PerformanceTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/PerformanceTest3Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/PickerTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/PinchGestureTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ProgressbarTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/RecalculateTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/RefreshViewTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/RotationTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ScaleTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ScaleTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ScrollViewTest1Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ScrollViewTest2Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ScrollViewTest3Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ScrollViewTest4Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/ScrollViewTest7Page.xaml [new file with mode: 0755]
test/NUITizenGallery/res/layout/SetColorTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/SimpleTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/SliderTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/SliderTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackInGridTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest3Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest4Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest5Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest6Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/StackLayoutTest8Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/SwipeGestureRecognizerTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/SwipeViewTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/SwipeViewTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TabViewTest/TabViewTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TapGestureTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TapGestureTest2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TapGestureTest3Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TapGestureTest4Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/Test1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/Test2Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TextAnchorTest.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/TimePickerTestPage.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/ToolbarItemTest1Page.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/WebViewTest1.xaml [new file with mode: 0644]
test/NUITizenGallery/res/layout/WebViewTest2.xaml [new file with mode: 0644]
test/NUITizenGallery/res/menu.png [new file with mode: 0644]
test/NUITizenGallery/shared/res/NUITizenGallery.png [new file with mode: 0644]
test/NUITizenGallery/tizen-manifest.xml [new file with mode: 0644]
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/CaptureTest.cs [changed mode: 0755->0644]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSActivatedSignalType.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSBackKeyManager.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSBaseObject.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSChildPropertyRegistration.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSCustomActorImpl.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDaliException.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDefaultRuler.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDoublep.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFixedRuler.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFloatp.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFontDescription.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFontMetrics.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFrameBuffer.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSGlyphInfo.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSMatrix.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSMatrix3.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSNativeImageInterface.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPathConstrainer.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPropertyHelper.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPropertyRangeManager.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRenderTask.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRuler.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRulerDomain.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSStringValuePair.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTimePeriod.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTouchPoint.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTouchPointContainer.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTypeAction.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorBlob.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorUint16Pair.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorUnsignedChar.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVersionCheck.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSDefaultFrameBroker.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSFrameData.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSSafeFrameBrokerHandle.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSApplyPropertiesVisitor.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSCreateValuesVisitor.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSDesignMode.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSExpandMarkupsVisitor.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSFillResourceDictionariesVisitor.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSHydrationContext.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSIDictionaryExtensions.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSMarkupExpressionParser.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSMarkupExtensionParser.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSNamescopingVisitor.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSPruneIgnoredNodesVisitor.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSReflectionExtensions.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Images/TSImageLoading.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Images/TSNativeImageSource.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Images/TSPixelBuffer.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Images/TSPixelData.cs
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSApplicationResourcePathExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSArrayExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSBindingExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSDynamicResourceExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSNUIResourcePathExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSNullExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSReferenceExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSStaticExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSTemplateBindingExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSTypeExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSProvideCompiledAttribute.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSStaticResourceExtension.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSTypeConversionAttribute.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSViewExtensions.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlCompilationAttribute.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlFilePathAttribute.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlParseException.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlResourceIdAttribute.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlServiceProvider.cs [new file with mode: 0755]
test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXmlLineInfo.cs [new file with mode: 0755]
test/Tizen.NUI.WebViewTest/SimpleWebViewApp.cs
test/Tizen.NUI.WebViewTest/tizen-manifest.xml

index cd3b503..a6f3d60 100644 (file)
@@ -1,7 +1,7 @@
 # Auto-generated from csapi-tizenfx.spec.in by makespec.sh
 
 %define TIZEN_NET_API_VERSION 9
-%define TIZEN_NET_RPM_VERSION 9.0.0.999+nui22033
+%define TIZEN_NET_RPM_VERSION 9.0.0.999+nui22034
 %define TIZEN_NET_NUGET_VERSION 9.0.0.99999
 
 %define DOTNET_ASSEMBLY_PATH /usr/share/dotnet.tizen/framework
index 6a5c43e..dfcffc6 100755 (executable)
@@ -6,4 +6,4 @@ RPM_VERSION=9.0.0.999
 NUGET_VERSION=9.0.0.99999
 
 # RPM Version Suffix
-RPM_VERSION_SUFFIX=nui22033
+RPM_VERSION_SUFFIX=nui22034
index 190164c..cbed098 100755 (executable)
@@ -270,7 +270,7 @@ namespace Tizen.NUI.Components
             if (page is DialogPage == false)
             {
                 curAnimation = new Animation(1000);
-                curAnimation.AnimateTo(curTop, "Opacity", 0.0f, 0, 1000);
+                curAnimation.AnimateTo(curTop, "Opacity", 1.0f, 0, 1000);
                 curAnimation.EndAction = Animation.EndActions.StopFinal;
                 curAnimation.Finished += (object sender, EventArgs args) =>
                 {
@@ -347,7 +347,7 @@ namespace Tizen.NUI.Components
                 };
                 curAnimation.Play();
 
-                newTop.Opacity = 0.0f;
+                newTop.Opacity = 1.0f;
                 newTop.SetVisible(true);
                 newAnimation = new Animation(1000);
                 newAnimation.AnimateTo(newTop, "Opacity", 1.0f, 0, 1000);
@@ -622,9 +622,9 @@ namespace Tizen.NUI.Components
             newTopPage.SetVisible(true);
 
             List<View> taggedViewsInNewTopPage = new List<View>();
-            RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage);
+            RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage, true);
             List<View> taggedViewsInCurrentTopPage = new List<View>();
-            RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage);
+            RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage, true);
 
             List<KeyValuePair<View, View>> sameTaggedViewPair = new List<KeyValuePair<View, View>>();
             foreach(View currentTopPageView in taggedViewsInCurrentTopPage)
@@ -651,6 +651,7 @@ namespace Tizen.NUI.Components
             }
 
             TransitionSet newTransitionSet = new TransitionSet();
+            sameTaggedViewPair.Reverse();
             foreach(KeyValuePair<View, View> pair in sameTaggedViewPair)
             {
                 TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value);
@@ -696,26 +697,29 @@ namespace Tizen.NUI.Components
         /// </summary>
         /// <param name="taggedViews">Returned tagged view list..</param>
         /// <param name="view">Root View to get tagged child View.</param>
-        private void RetrieveTaggedViews(List<View> taggedViews, View view)
+        /// <param name="isPage">Flag to check current View is page or not</param>
+        private void RetrieveTaggedViews(List<View> taggedViews, View view, bool isPage)
         {
-            if (!string.IsNullOrEmpty(view.TransitionOptions?.TransitionTag))
+            if (!isPage)
             {
-                taggedViews.Add((view as View));
-            }
+                if (!string.IsNullOrEmpty(view.TransitionOptions?.TransitionTag))
+                {
+                    taggedViews.Add((view as View));
+                }
 
-            if (view.ChildCount == 0)
-            {
-                return;
-            }
+                if (view.ChildCount == 0)
+                {
+                    return;
+                }
 
-            if (view.TransitionOptions?.TransitionWithChild ?? false)
-            {
-                return;
+                if (view.TransitionOptions?.TransitionWithChild ?? false)
+                {
+                    return;
+                }
             }
-
             foreach (View child in view.Children)
             {
-                RetrieveTaggedViews(taggedViews, child);
+                RetrieveTaggedViews(taggedViews, child, false);
             }
         }
 
index dd6a730..37918b9 100755 (executable)
@@ -380,71 +380,27 @@ namespace Tizen.NUI.Components
 
             if (itemSubLabel != null)
             {
-                if (itemIcon != null)
-                {
-                    RelativeLayout.SetLeftTarget(itemSubLabel, itemIcon);
-                    RelativeLayout.SetLeftRelativeOffset(itemSubLabel, 1.0F);
-                }
-                else
-                {
-                    RelativeLayout.SetLeftTarget(itemSubLabel, this);
-                    RelativeLayout.SetLeftRelativeOffset(itemSubLabel, 0.0F);
-                }
-                if (itemExtra != null)
-                {
-                    RelativeLayout.SetRightTarget(itemSubLabel, itemExtra);
-                    RelativeLayout.SetRightRelativeOffset(itemSubLabel, 0.0F);
-                }
-                else
-                {
-                    RelativeLayout.SetRightTarget(itemSubLabel, this);
-                    RelativeLayout.SetRightRelativeOffset(itemSubLabel, 1.0F);
-                }
-
+                RelativeLayout.SetLeftTarget(itemSubLabel,  ((itemIcon != null)? itemIcon : this));
+                RelativeLayout.SetLeftRelativeOffset(itemSubLabel, ( (itemIcon != null)? 1.0F : 0.0F));
+                RelativeLayout.SetRightTarget(itemSubLabel, ((itemExtra != null)? itemExtra : this));
+                RelativeLayout.SetRightRelativeOffset(itemSubLabel, ((itemExtra != null)? 0.0F : 1.0F));
                 RelativeLayout.SetTopTarget(itemSubLabel, this);
                 RelativeLayout.SetTopRelativeOffset(itemSubLabel, 1.0F);
                 RelativeLayout.SetBottomTarget(itemSubLabel, this);
                 RelativeLayout.SetBottomRelativeOffset(itemSubLabel, 1.0F);
                 RelativeLayout.SetVerticalAlignment(itemSubLabel, RelativeLayout.Alignment.End);
-
                 RelativeLayout.SetHorizontalAlignment(itemSubLabel, RelativeLayout.Alignment.Center);
                 RelativeLayout.SetFillHorizontal(itemSubLabel, true);
             }
 
-            if (itemIcon != null)
-            {
-                RelativeLayout.SetLeftTarget(itemLabel, itemIcon);
-                RelativeLayout.SetLeftRelativeOffset(itemLabel, 1.0F);
-            }
-            else
-            {
-                RelativeLayout.SetLeftTarget(itemLabel, this);
-                RelativeLayout.SetLeftRelativeOffset(itemLabel, 0.0F);
-            }
-            if (itemExtra != null)
-            {
-                RelativeLayout.SetRightTarget(itemLabel, itemExtra);
-                RelativeLayout.SetRightRelativeOffset(itemLabel, 0.0F);
-            }
-            else
-            {
-                RelativeLayout.SetRightTarget(itemLabel, this);
-                RelativeLayout.SetRightRelativeOffset(itemLabel, 1.0F);
-            }
-
+            RelativeLayout.SetLeftTarget(itemLabel, ((itemIcon != null)? itemIcon : this));
+            RelativeLayout.SetLeftRelativeOffset(itemLabel, ((itemIcon != null)? 1.0F : 0.0F));
+            RelativeLayout.SetRightTarget(itemLabel, ((itemExtra != null)? itemExtra : this));
+            RelativeLayout.SetRightRelativeOffset(itemLabel, ((itemExtra != null)? 0.0F : 1.0F));
             RelativeLayout.SetTopTarget(itemLabel, this);
             RelativeLayout.SetTopRelativeOffset(itemLabel, 0.0F);
-
-            if (itemSubLabel != null)
-            {
-                RelativeLayout.SetBottomTarget(itemLabel, itemSubLabel);
-                RelativeLayout.SetBottomRelativeOffset(itemLabel, 0.0F);
-            }
-            else
-            {
-                RelativeLayout.SetBottomTarget(itemLabel, this);
-                RelativeLayout.SetBottomRelativeOffset(itemLabel, 1.0F);
-            }
+            RelativeLayout.SetBottomTarget(itemLabel, ((itemSubLabel != null)? (View)itemSubLabel : this));
+            RelativeLayout.SetBottomRelativeOffset(itemLabel, ((itemSubLabel != null)? 0.0F : 1.0F));
             RelativeLayout.SetVerticalAlignment(itemLabel, RelativeLayout.Alignment.Center);
             RelativeLayout.SetHorizontalAlignment(itemLabel, RelativeLayout.Alignment.Center);
             RelativeLayout.SetFillHorizontal(itemLabel, true);
index 56c0c94..2443b8a 100755 (executable)
@@ -285,17 +285,8 @@ namespace Tizen.NUI.Components
 
             RelativeLayout.SetLeftTarget(itemLabel, this);
             RelativeLayout.SetLeftRelativeOffset(itemLabel, 0.0F);
-            if (itemIcon)
-            {
-                RelativeLayout.SetRightTarget(itemLabel, itemIcon);
-                RelativeLayout.SetRightRelativeOffset(itemLabel, 0.0F);
-            }
-            else
-            {
-                RelativeLayout.SetRightTarget(itemLabel, this);
-                RelativeLayout.SetRightRelativeOffset(itemLabel, 1.0F);
-            }
-
+            RelativeLayout.SetRightTarget(itemLabel, ((itemIcon != null)? itemIcon: this));
+            RelativeLayout.SetRightRelativeOffset(itemLabel, ((itemIcon != null)? 0.0F: 1.0F));
             RelativeLayout.SetTopTarget(itemLabel, this);
             RelativeLayout.SetTopRelativeOffset(itemLabel, 0.0F);
             RelativeLayout.SetBottomTarget(itemLabel, this);
index 34a6edc..b3df782 100755 (executable)
@@ -220,8 +220,6 @@ namespace Tizen.NUI.Components
         public override void OnInitialize()
         {
             base.OnInitialize();
-            //FIXME!
-            IsCreateByXaml = true;
             Layout = new AbsoluteLayout();
             UpdateState();
 
diff --git a/src/Tizen.NUI/src/internal/Common/ProcessorController.cs b/src/Tizen.NUI/src/internal/Common/ProcessorController.cs
new file mode 100755 (executable)
index 0000000..85e34af
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2021 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 Tizen.NUI.BaseComponents;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System;
+using System.ComponentModel;
+
+namespace Tizen.NUI
+{
+    /// <summary>
+    /// Singleton class.
+    /// ProcessorController handles ProcessorCallbacks those are requested to be called for each end of event process.
+    /// If there are works those required to be called after all of the event process for the efficiency, add them ProcessorController.
+    /// The calling order is not guaranteed but ProcessorCallbackes of LayoutController those are added by using AddLayoutControllerProcessor,
+    /// are called after ordinaly ProcessCallbacks added by AddProcessor.
+    ///
+    /// The added callbacks will be called every time of event tick.
+    /// If the callback is not be wanted to be called anymore, remove it.
+    /// </summary>
+    internal sealed class ProcessorController : Disposable
+    {
+        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+        internal delegate void ProcessorCallback();
+
+        private ProcessorCallback callback = null;
+
+        public event EventHandler ProcessorOnceEvent;
+
+        public event EventHandler ProcessorEvent;
+
+        public event EventHandler LayoutProcessorEvent;
+
+        private ProcessorController() : this(Interop.ProcessorController.New(), true)
+        {
+        }
+
+        internal ProcessorController(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
+        {
+            callback = new ProcessorCallback(Process);
+            Interop.ProcessorController.SetCallback(SwigCPtr, callback);
+        }
+
+        private static ProcessorController instance = null;
+
+        public static ProcessorController Instance
+        {
+            get
+            {
+                if(instance == null)
+                {
+                    instance = new ProcessorController();
+                }
+                return instance;
+            }
+        }
+
+        public void Process()
+        {
+            ProcessorOnceEvent?.Invoke(this, null);
+            ProcessorOnceEvent = null;
+            ProcessorEvent?.Invoke(this, null);
+            LayoutProcessorEvent?.Invoke(this, null);
+        }
+
+        /// <summary>
+        /// Dispose ProcessorController.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void Dispose(DisposeTypes type)
+        {
+            Interop.ProcessorController.RemoveCallback(SwigCPtr, callback);
+            ProcessorOnceEvent = null;
+            ProcessorEvent = null;
+            LayoutProcessorEvent = null;
+            GC.SuppressFinalize(this);
+
+            base.Dispose(type);
+        }
+    } // class ProcessorController
+} // namespace Tizen.NUI
index 52b20ed..2b09a00 100755 (executable)
@@ -108,17 +108,5 @@ namespace Tizen.NUI.EXaml
         private GetValueListAction getXFactoryMethodIndexOp;
         private GetValueListAction getParamListOp;
         private GetValueListAction getStaticInstanceOp;
-
-        internal static object Root
-        {
-            get
-            {
-                return CreateInstance.Root;
-            }
-            set
-            {
-                CreateInstance.Root = value;
-            }
-        }
     }
 }
index 08e4089..66d5a16 100755 (executable)
@@ -71,17 +71,5 @@ namespace Tizen.NUI.EXaml
         }
 
         private GetValueListAction childOp;
-
-        internal static object Root
-        {
-            get
-            {
-                return CreateInstance.Root;
-            }
-            set
-            {
-                CreateInstance.Root = value;
-            }
-        }
     }
 }
index ae26f86..aacd8c0 100755 (executable)
@@ -24,6 +24,12 @@ namespace Tizen.NUI.EXaml
 {
     internal class GlobalDataList
     {
+        internal object Root
+        {
+            get;
+            set;
+        }
+
         internal List<Operation> PreLoadOperations
         {
             get;
index 8e4d23d..c39e902 100755 (executable)
@@ -42,6 +42,8 @@ namespace Tizen.NUI.EXaml
             var setBindingAction = new SetBindingAction(globalDataList, null);
             var otherActions = new OtherActions(globalDataList, null);
 
+            Action currentOp = null;
+
             foreach (char c in xaml)
             {
                 if (null == currentOp)
@@ -171,7 +173,7 @@ namespace Tizen.NUI.EXaml
         {
             var globalDataList = GatherDataList(xaml);
 
-            CreateInstanceAction.Root = view;
+            globalDataList.Root = view;
 
             foreach (var op in globalDataList.Operations)
             {
@@ -188,14 +190,12 @@ namespace Tizen.NUI.EXaml
                 return;
             }
 
-            CreateInstanceAction.Root = view;
+            globalDataList.Root = view;
 
             foreach (var op in globalDataList.Operations)
             {
                 op.Do();
             }
         }
-
-        private static Action currentOp = null;
     }
 }
index 2c40066..a91420e 100755 (executable)
@@ -40,9 +40,9 @@ namespace Tizen.NUI.EXaml
 
         public void Do()
         {
-            if (0 == globalDataList.GatheredInstances.Count && null != Root)
+            if (0 == globalDataList.GatheredInstances.Count && null != globalDataList.Root)
             {
-                globalDataList.GatheredInstances.Add(Root);
+                globalDataList.GatheredInstances.Add(globalDataList.Root);
             }
             else
             {
@@ -101,8 +101,6 @@ namespace Tizen.NUI.EXaml
 
         private int typeIndex;
 
-        internal static object Root;
-
         private List<object> paramList;
     }
 }
index b773a8e..fb25b2d 100755 (executable)
@@ -42,9 +42,9 @@ namespace Tizen.NUI.EXaml
 
         public void Do()
         {
-            if (0 == globalDataList.GatheredInstances.Count && null != Root)
+            if (0 == globalDataList.GatheredInstances.Count && null != globalDataList.Root)
             {
-                globalDataList.GatheredInstances.Add(Root);
+                globalDataList.GatheredInstances.Add(globalDataList.Root);
             }
             else
             {
@@ -75,7 +75,5 @@ namespace Tizen.NUI.EXaml
         }
 
         private int typeIndex;
-
-        internal static object Root;
     }
 }
index 4772d45..4a54a20 100755 (executable)
@@ -47,7 +47,7 @@ namespace Tizen.NUI.EXaml
                 realInstance = instance;
             }
 
-            var namescope = NameScope.GetNameScope(CreateInstance.Root as BindableObject);
+            var namescope = NameScope.GetNameScope(globalDataList.Root as BindableObject);
             namescope?.RegisterName(name, realInstance);
         }
 
diff --git a/src/Tizen.NUI/src/internal/Interop/Interop.EncodedImageBuffer.cs b/src/Tizen.NUI/src/internal/Interop/Interop.EncodedImageBuffer.cs
new file mode 100644 (file)
index 0000000..7860c7f
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright(c) 2021 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
+{
+    using global::System;
+    using global::System.Runtime.InteropServices;
+
+    internal static partial class Interop
+    {
+        internal static partial class EncodedImageBuffer
+        {
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_EncodedImageBuffer_New")]
+            public static extern IntPtr New(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_EncodedImageBuffer__SWIG_0")]
+            public static extern IntPtr NewEncodedImageBuffer();
+
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_EncodedImageBuffer__SWIG_1")]
+            public static extern IntPtr NewEncodedImageBuffer(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_EncodedImageBuffer")]
+            public static extern void DeleteEncodedImageBuffer(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_EncodedImageBuffer_GetRawBuffer")]
+            public static extern IntPtr GetRawBuffer(IntPtr handle);
+
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_EncodedImageBuffer_GenerateUrl")]
+            public static extern IntPtr GenerateUrl(IntPtr handle);
+        }
+    }
+}
\ No newline at end of file
@@ -19,20 +19,20 @@ namespace Tizen.NUI
 {
     internal static partial class Interop
     {
-        internal static partial class LayoutController
+        internal static partial class ProcessorController
         {
-            // LayoutController
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_LayoutController")]
+            // ProcessorController
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_ProcessorController")]
             public static extern global::System.IntPtr New();
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_LayoutController")]
-            public static extern global::System.IntPtr DeleteLayoutController(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_ProcessorController")]
+            public static extern global::System.IntPtr DeleteProcessorController(global::System.Runtime.InteropServices.HandleRef processorController);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_LayoutController_SetCallback")]
-            public static extern void SetCallback(global::System.Runtime.InteropServices.HandleRef jarg1, Tizen.NUI.LayoutController.Callback jarg2);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ProcessorController_SetCallback")]
+            public static extern void SetCallback(global::System.Runtime.InteropServices.HandleRef processorController, Tizen.NUI.ProcessorController.ProcessorCallback processorCallback);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_LayoutController_GetId")]
-            public static extern int GetId(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ProcessorController_RemoveCallback")]
+            public static extern void RemoveCallback(global::System.Runtime.InteropServices.HandleRef processorController, Tizen.NUI.ProcessorController.ProcessorCallback processorCallback);
         }
     }
 }
index 18db2cb..4f75731 100755 (executable)
@@ -30,9 +30,21 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetProxyUri")]
             public static extern void SetProxyUri(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetProxyUri")]
+            public static extern string GetProxyUri(global::System.Runtime.InteropServices.HandleRef jarg1);
+
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetProxyBypassRule")]
+            public static extern void SetProxyBypassRule(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
+
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetProxyBypassRule")]
+            public static extern string GetProxyBypassRule(global::System.Runtime.InteropServices.HandleRef jarg1);
+
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetCertificateFilePath")]
             public static extern void SetCertificateFilePath(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetCertificateFilePath")]
+            public static extern string GetCertificateFilePath(global::System.Runtime.InteropServices.HandleRef jarg1);
+
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetDefaultProxyAuth")]
             public static extern void SetDefaultProxyAuth(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
 
@@ -88,23 +100,20 @@ namespace Tizen.NUI
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool IsCacheEnabled(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetContextCertificateFile")]
-            public static extern string GetCertificateFilePath(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetContextAppId")]
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetAppId")]
             public static extern void SetAppId(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetContextAppVersion")]
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetAppVersion")]
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool SetAppVersion(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetContextApplicationType")]
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetApplicationType")]
             public static extern void SetApplicationType(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetContextTimeOffset")]
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetTimeOffset")]
             public static extern void SetTimeOffset(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetContextTimeZoneOffset")]
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetTimeZoneOffset")]
             public static extern void SetTimeZoneOffset(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2, float jarg3);
 
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_RegisterUrlSchemesAsCorsEnabled")]
@@ -116,8 +125,8 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetDefaultZoomFactor")]
             public static extern void SetDefaultZoomFactor(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetContextDefaultZoomFactor")]
-            public static extern float GetContextDefaultZoomFactor(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetDefaultZoomFactor")]
+            public static extern float GetDefaultZoomFactor(global::System.Runtime.InteropServices.HandleRef jarg1);
 
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_DeleteAllApplicationCache")]
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
@@ -136,15 +145,6 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_DeleteAllFormCandidateData")]
             public static extern void DeleteAllFormCandidateData(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetContextProxy")]
-            public static extern string GetProxyUri(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_SetContextProxy")]
-            public static extern void SetProxyBypassRule(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
-
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_GetProxyBypassRule")]
-            public static extern string GetProxyBypassRule(global::System.Runtime.InteropServices.HandleRef jarg1);
-
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContext_FreeUnusedMemory")]
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool FreeUnusedMemory(global::System.Runtime.InteropServices.HandleRef jarg1);
index 7a65cf1..5f9e886 100755 (executable)
@@ -33,9 +33,6 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContextMenu_GetItemList")]
             public static extern System.IntPtr GetItemList(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContextMenu_GetPosition")]
-            public static extern System.IntPtr GetPosition(global::System.Runtime.InteropServices.HandleRef jarg1);
-
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebContextMenu_RemoveItem")]
             [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)]
             public static extern bool RemoveItem(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
index f4fa666..26ecbe3 100755 (executable)
@@ -388,29 +388,29 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewConsoleMessageSignal_Disconnect")]
             public static extern void WebViewConsoleMessageSignalDisconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_WebViewContextMenuCustomizedSignal_ContextMenuCustomized")]
-            public static extern global::System.IntPtr NewWebViewContextMenuCustomizedSignalContextMenuCustomized(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_WebViewContextMenuShownSignal_ContextMenuShown")]
+            public static extern global::System.IntPtr NewWebViewContextMenuShownSignalContextMenuShown(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_WebViewContextMenuCustomizedSignal")]
-            public static extern void DeleteWebViewContextMenuCustomizedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_WebViewContextMenuShownSignal")]
+            public static extern void DeleteWebViewContextMenuShownSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuCustomizedSignal_Connect")]
-            public static extern void WebViewContextMenuCustomizedSignalConnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuShownSignal_Connect")]
+            public static extern void WebViewContextMenuShownSignalConnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuCustomizedSignal_Disconnect")]
-            public static extern void WebViewContextMenuCustomizedSignalDisconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuShownSignal_Disconnect")]
+            public static extern void WebViewContextMenuShownSignalDisconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_WebViewContextMenuItemSelectedSignal_ContextMenuItemSelected")]
-            public static extern global::System.IntPtr NewWebViewContextMenuItemSelectedSignalContextMenuItemSelected(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_new_WebViewContextMenuHiddenSignal_ContextMenuHidden")]
+            public static extern global::System.IntPtr NewWebViewContextMenuHiddenSignalContextMenuHidden(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_WebViewContextMenuItemSelectedSignal")]
-            public static extern void DeleteWebViewContextMenuItemSelectedSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_delete_WebViewContextMenuHiddenSignal")]
+            public static extern void DeleteWebViewContextMenuHiddenSignal(global::System.Runtime.InteropServices.HandleRef jarg1);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuItemSelectedSignal_Connect")]
-            public static extern void WebViewContextMenuItemSelectedSignalConnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuHiddenSignal_Connect")]
+            public static extern void WebViewContextMenuHiddenSignalConnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuItemSelectedSignal_Disconnect")]
-            public static extern void WebViewContextMenuItemSelectedSignalDisconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebViewContextMenuHiddenSignal_Disconnect")]
+            public static extern void WebViewContextMenuHiddenSignalDisconnect(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
         }
     }
 }
index e9567a2..e103a19 100755 (executable)
@@ -30,10 +30,11 @@ namespace Tizen.NUI
     /// </summary>
     internal class LayoutController : Disposable
     {
-        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        internal delegate void Callback(int id);
+        private static int layoutControllerID = 1;
 
-        event Callback instance;
+        private int id;
+
+        private ProcessorController.ProcessorCallback LayoutProcessorCallback = null;
 
         private Window window;
 
@@ -47,14 +48,11 @@ namespace Tizen.NUI
         /// Constructs a LayoutController which controls the measuring and layouting.<br />
         /// <param name="window">Window attach this LayoutController to.</param>
         /// </summary>
-        public LayoutController(Window window) : this(Interop.LayoutController.New(), true)
+        public LayoutController(Window window)
         {
             this.window = window;
             layoutTransitionDataQueue = new List<LayoutData>();
-        }
-
-        internal LayoutController(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
-        {
+            id = layoutControllerID++;
         }
 
         /// <summary>
@@ -62,7 +60,7 @@ namespace Tizen.NUI
         /// </summary>
         public int GetId()
         {
-            return Interop.LayoutController.GetId(SwigCPtr);
+            return id;
         }
 
         /// <summary>
@@ -107,10 +105,9 @@ namespace Tizen.NUI
         /// </summary>
         internal void CreateProcessCallback()
         {
-            if (instance == null)
+            if (LayoutProcessorCallback == null)
             {
-                instance = new Callback(Process);
-                Interop.LayoutController.SetCallback(SwigCPtr, instance);
+                ProcessorController.Instance.LayoutProcessorEvent += Process;
             }
         }
 
@@ -146,13 +143,18 @@ namespace Tizen.NUI
                 return;
             }
 
+            if(LayoutProcessorCallback != null)
+            {
+                ProcessorController.Instance.LayoutProcessorEvent -= Process;
+                LayoutProcessorCallback = null;
+            }
+
             //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)
             {
-                Interop.LayoutController.DeleteLayoutController(SwigCPtr);
                 SwigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
             }
 
@@ -247,7 +249,7 @@ namespace Tizen.NUI
         /// <summary>
         /// Entry point into the C# Layouting that starts the Processing
         /// </summary>
-        private void Process(int id)
+        public void Process(object source, EventArgs e)
         {
             Vector2 windowSize = window.GetSize();
             float width = windowSize.Width;
index 729b205..68df524 100755 (executable)
@@ -290,7 +290,7 @@ namespace Tizen.NUI
         {
             get
             {
-                return Interop.WebContext.GetContextDefaultZoomFactor(SwigCPtr);
+                return Interop.WebContext.GetDefaultZoomFactor(SwigCPtr);
             }
             set
             {
index 12ed6da..511b8c1 100755 (executable)
@@ -64,19 +64,6 @@ namespace Tizen.NUI
         }
 
         /// <summary>
-        /// Gets position of the context menu.
-        /// </summary>
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        public Vector2 Position
-        {
-            get
-            {
-                IntPtr result = Interop.WebContextMenu.GetPosition(SwigCPtr);
-                return new Vector2(result, true);
-            }
-        }
-
-        /// <summary>
         /// Returns the nth item in a context menu.
         /// <param name="index">The position of the item</param>
         /// </summary>
index 9daa73c..35fc19e 100755 (executable)
@@ -96,13 +96,13 @@ namespace Tizen.NUI.BaseComponents
         private EventHandler<WebViewConsoleMessageReceivedEventArgs> consoleMessageReceivedEventHandler;
         private WebViewConsoleMessageReceivedCallbackDelegate consoleMessageReceivedCallback;
 
-        private readonly WebViewContextMenuCustomizedSignal contextMenuCustomizedSignal;
-        private EventHandler<WebViewContextMenuCustomizedEventArgs> contextMenuCustomizedEventHandler;
-        private WebViewContextMenuCustomizedCallbackDelegate contextMenuCustomizedCallback;
+        private readonly WebViewContextMenuShownSignal contextMenuShownSignal;
+        private EventHandler<WebViewContextMenuShownEventArgs> contextMenuShownEventHandler;
+        private WebViewContextMenuShownCallbackDelegate contextMenuShownCallback;
 
-        private readonly WebViewContextMenuItemSelectedSignal contextMenuItemSelectedSignal;
-        private EventHandler<WebViewContextMenuItemSelectedEventArgs> contextMenuItemSelectedEventHandler;
-        private WebViewContextMenuItemSelectedCallbackDelegate contextMenuItemSelectedCallback;
+        private readonly WebViewContextMenuHiddenSignal contextMenuHiddenSignal;
+        private EventHandler<WebViewContextMenuHiddenEventArgs> contextMenuHiddenEventHandler;
+        private WebViewContextMenuHiddenCallbackDelegate contextMenuHiddenCallback;
 
         /// <summary>
         /// Creates a WebView.
@@ -160,8 +160,8 @@ namespace Tizen.NUI.BaseComponents
             httpAuthRequestedSignal = new WebViewHttpAuthRequestedSignal(Interop.WebView.NewWebViewHttpAuthHandlerSignalHttpAuthHandler(SwigCPtr));
             httpRequestInterceptedSignal = new WebViewHttpRequestInterceptedSignal(Interop.WebView.NewWebViewRequestInterceptorSignalRequestInterceptor(SwigCPtr));
             consoleMessageReceivedSignal = new WebViewConsoleMessageReceivedSignal(Interop.WebView.NewWebViewConsoleMessageSignalConsoleMessage(SwigCPtr));
-            contextMenuCustomizedSignal = new WebViewContextMenuCustomizedSignal(Interop.WebView.NewWebViewContextMenuCustomizedSignalContextMenuCustomized(SwigCPtr));
-            contextMenuItemSelectedSignal = new WebViewContextMenuItemSelectedSignal(Interop.WebView.NewWebViewContextMenuItemSelectedSignalContextMenuItemSelected(SwigCPtr));
+            contextMenuShownSignal = new WebViewContextMenuShownSignal(Interop.WebView.NewWebViewContextMenuShownSignalContextMenuShown(SwigCPtr));
+            contextMenuHiddenSignal = new WebViewContextMenuHiddenSignal(Interop.WebView.NewWebViewContextMenuHiddenSignalContextMenuHidden(SwigCPtr));
 
             screenshotAcquiredProxyCallback = OnScreenshotAcquired;
             hitTestFinishedProxyCallback = OnHitTestFinished;
@@ -202,8 +202,8 @@ namespace Tizen.NUI.BaseComponents
                 httpAuthRequestedSignal.Dispose();
                 httpRequestInterceptedSignal.Dispose();
                 consoleMessageReceivedSignal.Dispose();
-                contextMenuCustomizedSignal.Dispose();
-                contextMenuItemSelectedSignal.Dispose();
+                contextMenuShownSignal.Dispose();
+                contextMenuHiddenSignal.Dispose();
 
                 BackForwardList.Dispose();
                 Context.Dispose();
@@ -318,10 +318,10 @@ namespace Tizen.NUI.BaseComponents
         private delegate void WebViewConsoleMessageReceivedCallbackDelegate(IntPtr data, IntPtr message);
 
         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void WebViewContextMenuCustomizedCallbackDelegate(IntPtr data, IntPtr menu);
+        private delegate void WebViewContextMenuShownCallbackDelegate(IntPtr data, IntPtr menu);
 
         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
-        private delegate void WebViewContextMenuItemSelectedCallbackDelegate(IntPtr data, IntPtr item);
+        private delegate void WebViewContextMenuHiddenCallbackDelegate(IntPtr data, IntPtr item);
 
         /// <summary>
         /// Event for the PageLoadStarted signal which can be used to subscribe or unsubscribe the event handler.<br />
@@ -688,53 +688,53 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
-        /// Event for the ContextMenuCustomized signal which can be used to subscribe or unsubscribe the event handler.<br />
-        /// This signal is emitted when context menu is customized.<br />
+        /// Event for the ContextMenuShown signal which can be used to subscribe or unsubscribe the event handler.<br />
+        /// This signal is emitted when context menu is shown.<br />
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public event EventHandler<WebViewContextMenuCustomizedEventArgs> ContextMenuCustomized
+        public event EventHandler<WebViewContextMenuShownEventArgs> ContextMenuShown
         {
             add
             {
-                if (contextMenuCustomizedEventHandler == null)
+                if (contextMenuShownEventHandler == null)
                 {
-                    contextMenuCustomizedCallback = OnContextMenuCustomized;
-                    contextMenuCustomizedSignal.Connect(contextMenuCustomizedCallback);
+                    contextMenuShownCallback = OnContextMenuShown;
+                    contextMenuShownSignal.Connect(contextMenuShownCallback);
                 }
-                contextMenuCustomizedEventHandler += value;
+                contextMenuShownEventHandler += value;
             }
             remove
             {
-                contextMenuCustomizedEventHandler -= value;
-                if (contextMenuCustomizedEventHandler == null && contextMenuCustomizedCallback != null)
+                contextMenuShownEventHandler -= value;
+                if (contextMenuShownEventHandler == null && contextMenuShownCallback != null)
                 {
-                    contextMenuCustomizedSignal.Disconnect(contextMenuCustomizedCallback);
+                    contextMenuShownSignal.Disconnect(contextMenuShownCallback);
                 }
             }
         }
 
         /// <summary>
-        /// Event for the ContextMenuItemSelected signal which can be used to subscribe or unsubscribe the event handler.<br />
-        /// This signal is emitted when context menu item is selected.<br />
+        /// Event for the ContextMenuHidden signal which can be used to subscribe or unsubscribe the event handler.<br />
+        /// This signal is emitted when context menu item is hidden.<br />
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public event EventHandler<WebViewContextMenuItemSelectedEventArgs> ContextMenuItemSelected
+        public event EventHandler<WebViewContextMenuHiddenEventArgs> ContextMenuHidden
         {
             add
             {
-                if (contextMenuItemSelectedEventHandler == null)
+                if (contextMenuHiddenEventHandler == null)
                 {
-                    contextMenuItemSelectedCallback = OnContextMenuItemSelected;
-                    contextMenuItemSelectedSignal.Connect(contextMenuItemSelectedCallback);
+                    contextMenuHiddenCallback = OnContextMenuHidden;
+                    contextMenuHiddenSignal.Connect(contextMenuHiddenCallback);
                 }
-                contextMenuItemSelectedEventHandler += value;
+                contextMenuHiddenEventHandler += value;
             }
             remove
             {
-                contextMenuItemSelectedEventHandler -= value;
-                if (contextMenuItemSelectedEventHandler == null && contextMenuItemSelectedCallback != null)
+                contextMenuHiddenEventHandler -= value;
+                if (contextMenuHiddenEventHandler == null && contextMenuHiddenCallback != null)
                 {
-                    contextMenuItemSelectedSignal.Disconnect(contextMenuItemSelectedCallback);
+                    contextMenuHiddenSignal.Disconnect(contextMenuHiddenCallback);
                 }
             }
         }
@@ -2135,14 +2135,14 @@ namespace Tizen.NUI.BaseComponents
             consoleMessageReceivedEventHandler?.Invoke(this, new WebViewConsoleMessageReceivedEventArgs(new WebConsoleMessage(message, false)));
         }
 
-        private void OnContextMenuCustomized(IntPtr data, IntPtr menu)
+        private void OnContextMenuShown(IntPtr data, IntPtr menu)
         {
-            contextMenuCustomizedEventHandler?.Invoke(this, new WebViewContextMenuCustomizedEventArgs(new WebContextMenu(menu, false)));
+            contextMenuShownEventHandler?.Invoke(this, new WebViewContextMenuShownEventArgs(new WebContextMenu(menu, false)));
         }
 
-        private void OnContextMenuItemSelected(IntPtr data, IntPtr item)
+        private void OnContextMenuHidden(IntPtr data, IntPtr menu)
         {
-            contextMenuItemSelectedEventHandler?.Invoke(this, new WebViewContextMenuItemSelectedEventArgs(new WebContextMenuItem(item, false)));
+            contextMenuHiddenEventHandler?.Invoke(this, new WebViewContextMenuHiddenEventArgs(new WebContextMenu(menu, false)));
         }
 
         private void OnHitTestFinished(IntPtr test)
@@ -21,20 +21,20 @@ using System.ComponentModel;
 namespace Tizen.NUI
 {
     /// <summary>
-    /// Event arguments that passed via the WebView.ContextMenuItemSelected.
+    /// Event arguments that passed via the WebView.ContextMenuHidden.
     /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
-    public class WebViewContextMenuItemSelectedEventArgs : EventArgs
+    public class WebViewContextMenuHiddenEventArgs : EventArgs
     {
-        internal WebViewContextMenuItemSelectedEventArgs(WebContextMenuItem item)
+        internal WebViewContextMenuHiddenEventArgs(WebContextMenu menu)
         {
-            ContextMenuItem = item;
+            ContextMenu = menu;
         }
 
         /// <summary>
-        /// The selected context menu item.
+        /// The context menu that is hidden.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public WebContextMenuItem ContextMenuItem { get; }
+        public WebContextMenu ContextMenu { get; }
     }
 }
 
 namespace Tizen.NUI
 {
-    internal class WebViewContextMenuCustomizedSignal : Disposable
+    internal class WebViewContextMenuHiddenSignal : Disposable
     {
-        public WebViewContextMenuCustomizedSignal(global::System.IntPtr cPtr) : base(cPtr, true)
+        public WebViewContextMenuHiddenSignal(global::System.IntPtr cPtr) : base(cPtr, true)
         {
         }
 
         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
         {
-            Interop.WebView.DeleteWebViewContextMenuCustomizedSignal(swigCPtr);
+            Interop.WebView.DeleteWebViewContextMenuHiddenSignal(swigCPtr);
         }
 
         public void Connect(System.Delegate func)
         {
             System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
             {
-                Interop.WebView.WebViewContextMenuCustomizedSignalConnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+                Interop.WebView.WebViewContextMenuHiddenSignalConnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
                 if (NDalicPINVOKE.SWIGPendingException.Pending)
                 {
                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -44,7 +44,7 @@ namespace Tizen.NUI
         {
             System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
             {
-                Interop.WebView.WebViewContextMenuCustomizedSignalDisconnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+                Interop.WebView.WebViewContextMenuHiddenSignalDisconnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
                 if (NDalicPINVOKE.SWIGPendingException.Pending)
                 {
                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -21,18 +21,18 @@ using System.ComponentModel;
 namespace Tizen.NUI
 {
     /// <summary>
-    /// Event arguments that passed via the WebView.ContextMenuCustomized.
+    /// Event arguments that passed via the WebView.ContextMenuShown.
     /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
-    public class WebViewContextMenuCustomizedEventArgs : EventArgs
+    public class WebViewContextMenuShownEventArgs : EventArgs
     {
-        internal WebViewContextMenuCustomizedEventArgs(WebContextMenu menu)
+        internal WebViewContextMenuShownEventArgs(WebContextMenu menu)
         {
             ContextMenu = menu;
         }
 
         /// <summary>
-        /// The context menu.
+        /// The context menu that is shown.
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public WebContextMenu ContextMenu { get; }
 
 namespace Tizen.NUI
 {
-    internal class WebViewContextMenuItemSelectedSignal : Disposable
+    internal class WebViewContextMenuShownSignal : Disposable
     {
-        public WebViewContextMenuItemSelectedSignal(global::System.IntPtr cPtr) : base(cPtr, true)
+        public WebViewContextMenuShownSignal(global::System.IntPtr cPtr) : base(cPtr, true)
         {
         }
 
         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
         {
-            Interop.WebView.DeleteWebViewContextMenuItemSelectedSignal(swigCPtr);
+            Interop.WebView.DeleteWebViewContextMenuShownSignal(swigCPtr);
         }
 
         public void Connect(System.Delegate func)
         {
             System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(func);
             {
-                Interop.WebView.WebViewContextMenuItemSelectedSignalConnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+                Interop.WebView.WebViewContextMenuShownSignalConnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
                 if (NDalicPINVOKE.SWIGPendingException.Pending)
                 {
                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
@@ -44,7 +44,7 @@ namespace Tizen.NUI
         {
             System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
             {
-                Interop.WebView.WebViewContextMenuItemSelectedSignalDisconnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+                Interop.WebView.WebViewContextMenuShownSignalDisconnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
                 if (NDalicPINVOKE.SWIGPendingException.Pending)
                 {
                     throw NDalicPINVOKE.SWIGPendingException.Retrieve();
diff --git a/src/Tizen.NUI/src/public/Images/EncodedImageBuffer.cs b/src/Tizen.NUI/src/public/Images/EncodedImageBuffer.cs
new file mode 100644 (file)
index 0000000..52f415e
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * Copyright(c) 2021 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;
+
+namespace Tizen.NUI
+{
+    using global::System;
+    using global::System.ComponentModel;
+    using global::System.Runtime.InteropServices;
+
+    /// <summary>
+    /// Class for Encoded Image Buffer.
+    /// Buffer comes from System.IO.Stream.
+    /// This data will decode internally when you use GeneratedUrl as View's ResourceUrl.
+    /// Note: This class doesn't allow to fix/change anything.
+    /// Only constructor allow to setup data.
+    /// </summary>
+    /// <remarks>Hidden API: Only for inhouse or developing usage. The behavior and interface can be changed anytime.</remarks>
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    public class EncodedImageBuffer : BaseHandle
+    {
+        private ImageUrl mCachedImageUrl = null; // cached Generated Url.
+        private VectorUnsignedChar mCachedBuffer = null; // cached encoded raw buffer
+
+        /// <summary>
+        /// Constructor.
+        /// </summary>
+        /// <param name="stream">The Stream of the image file.</param>
+        /// <exception cref="ArgumentNullException"> Thrown when stream is null. </exception>
+        /// <exception cref="InvalidOperationException"> Thrown when stream don't have any data. </exception>
+        /// <remarks>Hidden API: Only for inhouse or developing usage. The behavior and interface can be changed anytime.</remarks>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public EncodedImageBuffer(System.IO.Stream stream) : this(GetRawBuffrFromStreamHelper(stream))
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        internal EncodedImageBuffer(VectorUnsignedChar buffer) : this(Interop.EncodedImageBuffer.New(VectorUnsignedChar.getCPtr(buffer)), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            mCachedBuffer = buffer;
+        }
+
+        internal EncodedImageBuffer(EncodedImageBuffer handle) : this(Interop.EncodedImageBuffer.NewEncodedImageBuffer(EncodedImageBuffer.getCPtr(handle)), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        internal EncodedImageBuffer(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
+        {
+        }
+
+        /// <summary>
+        /// Generate URI from current buffer.
+        /// We can now use this url for ImageView.ResourceUrl
+        /// Note : the url lifecycle is same as ImageUrl and it's internal usage.
+        /// Store only ImageUrl.ToString() result and re-use that url is Undefined Behavior.
+        /// </summary>
+        /// <remarks>Hidden API: Only for inhouse or developing usage. The behavior and interface can be changed anytime.</remarks>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public ImageUrl GenerateUrl()
+        {
+            mCachedImageUrl ??= new ImageUrl(Interop.EncodedImageBuffer.GenerateUrl(this.SwigCPtr.Handle), true);
+            return mCachedImageUrl;
+        }
+
+        /// <summary>
+        /// Get current raw buffer. (read-only)
+        /// Note : the raw buffer doesn't have memory ownership.
+        /// Access to write something to raw buffer is Undefined Behavior.
+        /// </summary>
+        /// This will not be public opened.
+        internal VectorUnsignedChar GetRawBuffer()
+        {
+            mCachedBuffer ??= new VectorUnsignedChar(Interop.EncodedImageBuffer.GetRawBuffer(this.SwigCPtr.Handle), false);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return mCachedBuffer;
+        }
+
+        /// <summary>
+        /// Dispose
+        /// </summary>
+        /// <param name="type"></param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override 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.
+                mCachedImageUrl?.Dispose();
+                mCachedBuffer?.Dispose();
+            }
+
+            base.Dispose(type);
+        }
+
+        /// This will not be public opened.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void ReleaseSwigCPtr(HandleRef swigCPtr)
+        {
+            Interop.EncodedImageBuffer.DeleteEncodedImageBuffer(swigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Get VectorUnsignedChar from System.IO.Stream.
+        /// This funcion exist only for Constructor.
+        /// </summary>
+        /// This will not be public opened.
+        private static VectorUnsignedChar GetRawBuffrFromStreamHelper(System.IO.Stream stream)
+        {
+            if(stream == null)
+            {
+                throw new ArgumentNullException(nameof(stream));
+            }
+            if(!stream.CanRead)
+            {
+                throw new InvalidOperationException("stream don't support to read");
+            }
+
+            // Copy stream to memoryStream
+            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
+            stream.CopyTo(memoryStream);
+            memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
+
+            long streamLength = memoryStream.Length;
+            if(streamLength <= 0)
+            {
+                throw new InvalidOperationException("stream length is <= 0");
+            }
+
+            // Allocate buffer that internal DALi engine can read
+            VectorUnsignedChar buffer = new VectorUnsignedChar();
+
+            buffer.Resize((uint)streamLength);
+            var bufferBegin = buffer.Begin();
+            global::System.Runtime.InteropServices.HandleRef bufferRef = SWIGTYPE_p_unsigned_char.getCPtr(bufferBegin);
+
+            // Copy data from memoryStream to buffer
+            System.Runtime.InteropServices.Marshal.Copy(memoryStream.GetBuffer(), 0, bufferRef.Handle, (int)streamLength);
+
+            memoryStream.Dispose();
+
+            return buffer;
+        }
+    }
+}
index 4798c0f..790a0a8 100755 (executable)
@@ -391,8 +391,8 @@ namespace Tizen.NUI
 
                     if (childLayout.Owner.WidthSpecification == LayoutParamPolicies.MatchParent)
                     {
-                        childLeft = new LayoutLength(Padding.Start + childLayout.Margin.Start);
-                        childRight = new LayoutLength(MeasuredWidth.Size.AsDecimal() - Padding.End - childLayout.Margin.End);
+                        childLeft = new LayoutLength(childLayout.Margin.Start);
+                        childRight = new LayoutLength(MeasuredWidth.Size.AsDecimal() - childLayout.Margin.End);
                     }
                     else
                     {
@@ -404,8 +404,8 @@ namespace Tizen.NUI
 
                     if (childLayout.Owner.HeightSpecification == LayoutParamPolicies.MatchParent)
                     {
-                        childTop = new LayoutLength(Padding.Top + childLayout.Margin.Top);
-                        childBottom = new LayoutLength(MeasuredHeight.Size.AsDecimal() - Padding.Bottom - childLayout.Margin.Bottom);
+                        childTop = new LayoutLength(childLayout.Margin.Top);
+                        childBottom = new LayoutLength(MeasuredHeight.Size.AsDecimal() - childLayout.Margin.Bottom);
                     }
                     else
                     {
@@ -415,11 +415,9 @@ namespace Tizen.NUI
                         childBottom = new LayoutLength(verticalGeometry.Position + verticalGeometry.Size + Padding.Top - childLayout.Margin.Bottom);
                     }
 
-                    childLayout.MeasuredWidth = new MeasuredSize(new LayoutLength(childRight.AsDecimal() - childLeft.AsDecimal()), MeasuredSize.StateType.MeasuredSizeOK);
-                    childLayout.MeasuredHeight = new MeasuredSize(new LayoutLength(childBottom.AsDecimal() - childTop.AsDecimal()), MeasuredSize.StateType.MeasuredSizeOK);
-
-                    MeasureSpecification childWidthMeasureSpec = new MeasureSpecification(new LayoutLength(childRight.AsDecimal() - childLeft.AsDecimal()), MeasureSpecification.ModeType.Exactly);
-                    MeasureSpecification childHeightMeasureSpec = new MeasureSpecification(new LayoutLength(childBottom.AsDecimal() - childTop.AsDecimal()), MeasureSpecification.ModeType.Exactly);
+                    // Padding sizes are added because Padding sizes will be subtracted in MeasureChild().
+                    MeasureSpecification childWidthMeasureSpec = new MeasureSpecification(new LayoutLength(childRight.AsDecimal() - childLeft.AsDecimal() + Padding.Start + Padding.End), MeasureSpecification.ModeType.Exactly);
+                    MeasureSpecification childHeightMeasureSpec = new MeasureSpecification(new LayoutLength(childBottom.AsDecimal() - childTop.AsDecimal() + Padding.Top + Padding.Bottom), MeasureSpecification.ModeType.Exactly);
 
                     int origWidthSpecification = childLayout.Owner.WidthSpecification;
                     int origHeightSpecification = childLayout.Owner.HeightSpecification;
@@ -440,7 +438,8 @@ namespace Tizen.NUI
                         childLayout.Owner.HeightSpecification = LayoutParamPolicies.MatchParent;
                     }
 
-                    MeasureChildWithMargins(childLayout, childWidthMeasureSpec, new LayoutLength(0), childHeightMeasureSpec, new LayoutLength(0));
+                    // Use MeasureChild() because Margin sizes were already subtracted from childWidth/HeightMeasureSpec.
+                    MeasureChild(childLayout, childWidthMeasureSpec, childHeightMeasureSpec);
 
                     childLayout.Owner.WidthSpecification = origWidthSpecification;
                     childLayout.Owner.HeightSpecification = origHeightSpecification;
index 44b6cae..5ade00b 100755 (executable)
@@ -94,7 +94,7 @@ namespace Tizen.NUI
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static string PlatformThemeId
         {
-            get => platformTheme?.Id;
+            get => platformTheme?.Id ?? (platformThemeEnabled ? baseTheme.Id : null);
         }
 
         /// <summary>
@@ -519,7 +519,7 @@ namespace Tizen.NUI
         {
             Debug.Assert(baseTheme != null);
 
-            var platformThemeId = platformTheme?.Id;
+            var platformThemeId = PlatformThemeId;
             var userThemeId = userTheme?.Id;
             ThemeChangedInternal.Invoke(null, new ThemeChangedEventArgs(userThemeId, platformThemeId, platformThemeUpdated));
             ThemeChanged?.Invoke(null, new ThemeChangedEventArgs(userThemeId, platformThemeId, platformThemeUpdated));
diff --git a/test/NUITizenGallery/.pic/NugetConfig.png b/test/NUITizenGallery/.pic/NugetConfig.png
new file mode 100755 (executable)
index 0000000..c1bdea5
Binary files /dev/null and b/test/NUITizenGallery/.pic/NugetConfig.png differ
diff --git a/test/NUITizenGallery/.pic/csproj-file.png b/test/NUITizenGallery/.pic/csproj-file.png
new file mode 100755 (executable)
index 0000000..8352c69
Binary files /dev/null and b/test/NUITizenGallery/.pic/csproj-file.png differ
diff --git a/test/NUITizenGallery/.pic/launch.png b/test/NUITizenGallery/.pic/launch.png
new file mode 100755 (executable)
index 0000000..9125090
Binary files /dev/null and b/test/NUITizenGallery/.pic/launch.png differ
diff --git a/test/NUITizenGallery/.pic/run.png b/test/NUITizenGallery/.pic/run.png
new file mode 100755 (executable)
index 0000000..e1f7efa
Binary files /dev/null and b/test/NUITizenGallery/.pic/run.png differ
diff --git a/test/NUITizenGallery/.vscode/launch.json b/test/NUITizenGallery/.vscode/launch.json
new file mode 100644 (file)
index 0000000..c73b394
--- /dev/null
@@ -0,0 +1,51 @@
+{
+    // Use IntelliSense to learn about possible attributes.
+    // Hover to view descriptions of existing attributes.
+    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": ".NET Core Launch (console)",
+            "type": "coreclr",
+            "request": "launch",
+            "WARNING01": "*********************************************************************************",
+            "WARNING02": "The C# extension was unable to automatically decode projects in the current",
+            "WARNING03": "workspace to create a runnable launch.json file. A template launch.json file has",
+            "WARNING04": "been created as a placeholder.",
+            "WARNING05": "",
+            "WARNING06": "If OmniSharp is currently unable to load your project, you can attempt to resolve",
+            "WARNING07": "this by restoring any missing project dependencies (example: run 'dotnet restore')",
+            "WARNING08": "and by fixing any reported errors from building the projects in your workspace.",
+            "WARNING09": "If this allows OmniSharp to now load your project then --",
+            "WARNING10": "  * Delete this file",
+            "WARNING11": "  * Open the Visual Studio Code command palette (View->Command Palette)",
+            "WARNING12": "  * run the command: '.NET: Generate Assets for Build and Debug'.",
+            "WARNING13": "",
+            "WARNING14": "If your project requires a more complex launch configuration, you may wish to delete",
+            "WARNING15": "this configuration and pick a different template using the 'Add Configuration...'",
+            "WARNING16": "button at the bottom of this file.",
+            "WARNING17": "*********************************************************************************",
+            "preLaunchTask": "build",
+            "program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/NUITizenGallery.dll",
+            "args": [],
+            "env": {
+                "DESKTOP_PREFIX":"/home/ssong2best/dali-env/opt",
+                "PATH":"/home/ssong2best/dali-env/opt/bin:$PATH",
+                "LD_LIBRARY_PATH":"/home/ssong2best/dali-env/opt/lib:$LD_LIBRARY_PATH",
+                "INCLUDEDIR":"/home/ssong2best/dali-env/opt/include",
+                "PKG_CONFIG_PATH":"/home/ssong2best/dali-env/opt/lib/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig",
+                "DOTNET_CLI_TELEMETRY_OPTOUT":"1",
+                "DALI_WINDOW_WIDTH":"720",
+                "DALI_WINDOW_HEIGHT":"1080",
+            },
+            "cwd": "${workspaceFolder}",
+            "console": "internalConsole",
+            "stopAtEntry": false
+        },
+        {
+            "name": ".NET Core Attach",
+            "type": "coreclr",
+            "request": "attach"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/.vscode/tasks.json b/test/NUITizenGallery/.vscode/tasks.json
new file mode 100644 (file)
index 0000000..31c32bd
--- /dev/null
@@ -0,0 +1,24 @@
+{
+    // See https://go.microsoft.com/fwlink/?LinkId=733558
+    // for the documentation about the tasks.json format
+    "version": "2.0.0",
+    "tasks": [
+        {
+            "label": "build",
+            "command": "dotnet",
+            "type": "shell",
+            "args": [
+                "build",
+                // Ask dotnet build to generate full paths for file names.
+                "/property:GenerateFullPaths=true",
+                // Do not generate summary otherwise it leads to duplicate errors in Problems panel
+                "/consoleloggerparameters:NoSummary"
+            ],
+            "group": "build",
+            "presentation": {
+                "reveal": "silent"
+            },
+            "problemMatcher": "$msCompile"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/AbsoluteLayout/AbsoluteLayout.cs b/test/NUITizenGallery/Examples/AbsoluteLayout/AbsoluteLayout.cs
new file mode 100644 (file)
index 0000000..95f0c3d
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class AbsoluteLayout : IExample
+    {
+        Window window;
+        AbsoluteLayoutPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new AbsoluteLayoutPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/AbsoluteLayout/AbsoluteLayout.xaml.cs b/test/NUITizenGallery/Examples/AbsoluteLayout/AbsoluteLayout.xaml.cs
new file mode 100644 (file)
index 0000000..1a01c17
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class AbsoluteLayoutPage : View
+    {
+        public AbsoluteLayoutPage()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ActivityIndicator/ActivityIndicator.cs b/test/NUITizenGallery/Examples/ActivityIndicator/ActivityIndicator.cs
new file mode 100644 (file)
index 0000000..174afa9
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ActivityIndicator : IExample
+    {
+        Window window;
+        ActivityIndicatorPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new ActivityIndicatorPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ActivityIndicator/ActivityIndicator.xaml.cs b/test/NUITizenGallery/Examples/ActivityIndicator/ActivityIndicator.xaml.cs
new file mode 100644 (file)
index 0000000..a07e15f
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class ActivityIndicatorPage : View
+    {
+        public ActivityIndicatorPage()
+        {
+            InitializeComponent();
+
+            string[] imageArray = new string[13];
+            for(int i = 0; i < 13; ++i) {
+                imageArray[i] = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/progress_" + i.ToString() + ".png";
+            }
+            Spinner.ImageArray = imageArray;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/AlertDialogTest/AlertDialogTest.cs b/test/NUITizenGallery/Examples/AlertDialogTest/AlertDialogTest.cs
new file mode 100644 (file)
index 0000000..39780fd
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class AlertDialogTest : IExample
+    {
+        Window window;
+        Navigator navigator;
+        AlertDialogTestPage page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new AlertDialogTestPage();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/AlertDialogTest/AlertDialogTestPage.xaml.cs b/test/NUITizenGallery/Examples/AlertDialogTest/AlertDialogTestPage.xaml.cs
new file mode 100644 (file)
index 0000000..b956937
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class AlertDialogTestPage : ContentPage
+    {
+        public AlertDialogTestPage()
+        {
+            InitializeComponent();
+
+            buttonOneAction.Clicked += ButtonOneActionClicked;
+            buttonTwoActions.Clicked += ButtonTwoActionsClicked;
+            buttonNoTitle.Clicked += ButtonNoTitleClicked;
+            buttonNoMessage.Clicked += ButtonNoMessageClicked;
+        }
+
+        private void ButtonOneActionClicked(object sender, ClickedEventArgs args)
+        {
+            var button = new Button()
+            {
+                Text = "OK",
+            };
+
+            button.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            DialogPage.ShowAlertDialog("Title", "Message", button);
+        }
+
+        private void ButtonTwoActionsClicked(object sender, ClickedEventArgs args)
+        {
+            var button = new Button()
+            {
+                Text = "Cancel",
+            };
+
+            button.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            var button2 = new Button()
+            {
+                Text = "OK",
+            };
+
+            button2.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            DialogPage.ShowAlertDialog("Title", "Message", button, button2);
+        }
+
+        private void ButtonNoTitleClicked(object sender, ClickedEventArgs args)
+        {
+            var button = new Button()
+            {
+                Text = "Cancel",
+            };
+
+            button.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            var button2 = new Button()
+            {
+                Text = "OK",
+            };
+
+            button2.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            DialogPage.ShowAlertDialog(null, "Message", button, button2);
+        }
+
+        private void ButtonNoMessageClicked(object sender, ClickedEventArgs args)
+        {
+            var button = new Button()
+            {
+                Text = "Cancel",
+            };
+
+            button.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            var button2 = new Button()
+            {
+                Text = "OK",
+            };
+
+            button2.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            DialogPage.ShowAlertDialog("Title", null, button, button2);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/AnimationTest1/AnimationTest1.cs b/test/NUITizenGallery/Examples/AnimationTest1/AnimationTest1.cs
new file mode 100755 (executable)
index 0000000..5289ad7
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class AnimationTest1 : IExample
+    {
+        private Window window;
+        private AnimationTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new AnimationTest1Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/AnimationTest1/AnimationTest1.xaml.cs b/test/NUITizenGallery/Examples/AnimationTest1/AnimationTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..2809eb2
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class AnimationTest1Page : View
+    {
+        private Animation animation;
+
+        public AnimationTest1Page()
+        {
+            InitializeComponent();
+
+            animation = new Animation(2000);
+
+            animation.AnimateTo(imageView, "ScaleX", 0.6f, 0, 1000);
+            animation.AnimateTo(imageView, "ScaleY", 0.6f, 0, 1000);
+            animation.AnimateTo(imageView, "ScaleX", 3.0f, 1000, 2000);
+            animation.AnimateTo(imageView, "ScaleY", 3.0f, 1000, 2000);
+
+            image1Btn.Clicked += (o, e) =>
+            {
+                imageView.Scale = new Vector3(1.0f, 1.0f, 1.0f);
+                animation.Play();
+                desc1.Text = "True";
+            };
+
+            image2Btn.Clicked += (o, e) =>
+            {
+                animation.Stop();
+                desc1.Text = "False";
+            };
+
+            animation.Finished += (o, e) =>
+            {
+                desc1.Text = "False";
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/AnimationTest2/AnimationTest2.cs b/test/NUITizenGallery/Examples/AnimationTest2/AnimationTest2.cs
new file mode 100755 (executable)
index 0000000..be49d7a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class AnimationTest2 : IExample
+    {
+        private Window window;
+        private AnimationTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new AnimationTest2Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/AnimationTest2/AnimationTest2.xaml.cs b/test/NUITizenGallery/Examples/AnimationTest2/AnimationTest2.xaml.cs
new file mode 100755 (executable)
index 0000000..a74f954
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class AnimationTest2Page : View
+    {
+        private Animation animation;
+        private float position = 50.0f;
+
+        public AnimationTest2Page()
+        {
+            InitializeComponent();
+
+            animation = new Animation(2000);
+            animation.AnimateTo(imageView, "PositionX", position + 300.0f, 0, 2000);
+
+            image1Btn.Clicked += (o, e) =>
+            {
+                imageView.PositionX = position;
+                animation.Play();
+                desc1.Text = "True";
+            };
+
+            image2Btn.Clicked += (o, e) =>
+            {
+                animation.Stop();
+                desc1.Text = "False";
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/AnimationTest3/AnimationTest3.cs b/test/NUITizenGallery/Examples/AnimationTest3/AnimationTest3.cs
new file mode 100755 (executable)
index 0000000..aab90db
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class AnimationTest3 : IExample
+    {
+        private Window window;
+        private AnimationTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new AnimationTest3Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/AnimationTest3/AnimationTest3.xaml.cs b/test/NUITizenGallery/Examples/AnimationTest3/AnimationTest3.xaml.cs
new file mode 100755 (executable)
index 0000000..9dc9dad
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class AnimationTest3Page : View
+    {
+        private Animation animation;
+
+        public AnimationTest3Page()
+        {
+            InitializeComponent();
+
+            animation = new Animation(2000);
+            animation.AnimateTo(imageView, "Opacity", 0.0f, 0, 1000);
+            animation.AnimateTo(imageView, "Opacity", 1.0f, 1000, 2000);
+            animation.AnimateTo(imageView, "PositionY", 400.0f, 0, 2000);
+            animation.AnimateTo(imageView, "ScaleX", 2.0f, 0, 1000);
+            animation.AnimateTo(imageView, "ScaleY", 2.0f, 0, 1000);
+            animation.AnimateTo(imageView, "ScaleX", 1.0f, 1000, 2000);
+            animation.AnimateTo(imageView, "ScaleY", 1.0f, 1000, 2000);
+            animation.AnimateTo(imageView, "Orientation", new Rotation(new Radian(new Degree(180.0f)), PositionAxis.Z), 0, 1000);
+            animation.AnimateTo(imageView, "Orientation", new Rotation(new Radian(new Degree(360.0f)), PositionAxis.Z), 1000, 2000);
+            image1Btn.Clicked += (o, e) =>
+            {
+                imageView.PositionY = 0.0f;
+                imageView.Orientation = new Rotation(new Radian(new Degree(0.0f)), PositionAxis.Z);
+                animation.Play();
+                desc1.Text = "True";
+            };
+
+            image2Btn.Clicked += (o, e) =>
+            {
+                animation.Stop();
+                desc1.Text = "False";
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest1/BackGroundColorTest1.cs b/test/NUITizenGallery/Examples/BackgroundColorTest1/BackGroundColorTest1.cs
new file mode 100644 (file)
index 0000000..c95861c
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BackgroundColorTest1 : IExample
+    {
+        Window window;
+        BackgroundColorTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BackgroundColorTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest1/BackgroundColorTest1Page.xaml.cs b/test/NUITizenGallery/Examples/BackgroundColorTest1/BackgroundColorTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..836c43c
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright(c) 2021 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.Linq;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BackgroundColorTest1Page : View
+    {
+        public BackgroundColorTest1Page()
+        {
+            InitializeComponent();
+            var resources_path = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+            loading.ImageArray = Enumerable.Range(0, 12).Select(x => $"{resources_path}images/progress_{x}.png").ToArray();
+            loading.Stop();
+
+            button1.Clicked += OnButton1Clicked;
+        }
+
+        private void OnButton1Clicked(object sender, ClickedEventArgs e)
+        {
+            mainView.BackgroundColor = mainView.BackgroundColor.EqualTo(Color.Cyan) ? Color.White : Color.Cyan;
+            loading.Play();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                button1.Clicked -= OnButton1Clicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest2/BackGroundColorTest2.cs b/test/NUITizenGallery/Examples/BackgroundColorTest2/BackGroundColorTest2.cs
new file mode 100644 (file)
index 0000000..02ba99f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BackgroundColorTest2 : IExample
+    {
+        Window window;
+        BackgroundColorTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BackgroundColorTest2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest2/BackgroundColorTest2Page.xaml.cs b/test/NUITizenGallery/Examples/BackgroundColorTest2/BackgroundColorTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..c0d1779
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BackgroundColorTest2Page : View
+    {
+        public BackgroundColorTest2Page()
+        {
+            InitializeComponent();
+
+            button1.Clicked += OnButton1Clicked;
+            button2.Clicked += OnButton2Clicked;
+        }
+
+        private void OnButton1Clicked(object e, ClickedEventArgs args)
+        {
+            if (layout1.BackgroundColor.EqualTo(Color.Red))
+            {
+                layout1.ClearBackground();
+            }
+            else
+            {
+                layout1.BackgroundColor = Color.Red;
+            }
+        }
+
+        private void OnButton2Clicked(object sender, ClickedEventArgs e)
+        {
+            layout2.BackgroundColor = layout2.BackgroundColor.EqualTo(Color.Green) ? Color.Blue : Color.Green;
+            layout2.Opacity = layout2.Opacity == 0.5f ? 1.0f : 0.5f;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                button1.Clicked -= OnButton1Clicked;
+                button2.Clicked -= OnButton2Clicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest3/BackGroundColorTest3.cs b/test/NUITizenGallery/Examples/BackgroundColorTest3/BackGroundColorTest3.cs
new file mode 100644 (file)
index 0000000..6eeeea2
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BackgroundColorTest3 : IExample
+    {
+        Window window;
+        BackgroundColorTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BackgroundColorTest3Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest3/BackgroundColorTest3Page.xaml.cs b/test/NUITizenGallery/Examples/BackgroundColorTest3/BackgroundColorTest3Page.xaml.cs
new file mode 100644 (file)
index 0000000..dc5084c
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BackgroundColorTest3Page : View
+    {
+        public BackgroundColorTest3Page()
+        {
+            InitializeComponent();
+            button1.Clicked += OnButton1Clicked;
+        }
+
+        private void OnButton1Clicked(object sender, ClickedEventArgs e)
+        {
+            Color pink = new Color("#FF66FF");
+            if (this.BackgroundColor.EqualTo(pink))
+            {
+                this.ClearBackground();
+            }
+            else
+            {
+                this.BackgroundColor = pink;
+            }
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                button1.Clicked -= OnButton1Clicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest4/BackGroundColorTest4.cs b/test/NUITizenGallery/Examples/BackgroundColorTest4/BackGroundColorTest4.cs
new file mode 100644 (file)
index 0000000..2d8c5e1
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BackgroundColorTest4 : IExample
+    {
+        Window window;
+        BackgroundColorTest4Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BackgroundColorTest4Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest4/BackgroundColorTest4Page.xaml.cs b/test/NUITizenGallery/Examples/BackgroundColorTest4/BackgroundColorTest4Page.xaml.cs
new file mode 100644 (file)
index 0000000..37165ab
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BackgroundColorTest4Page : View
+    {
+        private Color btnDefaultBackgroundColor;
+        public BackgroundColorTest4Page()
+        {
+            InitializeComponent();
+            btnDefaultBackgroundColor = button.BackgroundColor;
+            Subscribe();
+        }
+
+        private void Subscribe()
+        {
+            btnRedLabel.Clicked += OnBtnRedLabelClicked;
+            btnDefaultLabel.Clicked += OnBtnDefaultLabelClicked;
+            btnBlueButton.Clicked += OnBtnBlueButtonClicked;
+            btnDefaultButton.Clicked += OnBtnDefaultButtonClicked;
+        }
+        private void Unsubscribe()
+        {
+            btnRedLabel.Clicked -= OnBtnRedLabelClicked;
+            btnDefaultLabel.Clicked -= OnBtnDefaultLabelClicked;
+            btnBlueButton.Clicked -= OnBtnBlueButtonClicked;
+            btnDefaultButton.Clicked -= OnBtnDefaultButtonClicked;
+        }
+
+        private void OnBtnRedLabelClicked(object sender, ClickedEventArgs e)
+        {
+            label.BackgroundColor = Color.Red;
+        }
+
+        private void OnBtnDefaultLabelClicked(object sender, ClickedEventArgs e)
+        {
+            label.ClearBackground();
+        }
+
+        private void OnBtnBlueButtonClicked(object sender, ClickedEventArgs e)
+        {
+            button.BackgroundColor = Color.Blue;
+        }
+        private void OnBtnDefaultButtonClicked(object sender, ClickedEventArgs e)
+        {
+            button.BackgroundColor = btnDefaultBackgroundColor;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                Unsubscribe();
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest5/BackGroundColorTest5.cs b/test/NUITizenGallery/Examples/BackgroundColorTest5/BackGroundColorTest5.cs
new file mode 100644 (file)
index 0000000..5fddddc
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BackgroundColorTest5 : IExample
+    {
+        Window window;
+        BackgroundColorTest5Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BackgroundColorTest5Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundColorTest5/BackgroundColorTest5Page.xaml.cs b/test/NUITizenGallery/Examples/BackgroundColorTest5/BackgroundColorTest5Page.xaml.cs
new file mode 100644 (file)
index 0000000..261ea82
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using System.Linq;
+
+namespace NUITizenGallery
+{
+    public partial class BackgroundColorTest5Page : View
+    {
+        private int setColorCount = 1;
+        public BackgroundColorTest5Page()
+        {
+            InitializeComponent();
+            var resources_path = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+            loading.ImageArray = Enumerable.Range(0, 12).Select(x => $"{resources_path}images/progress_{x}.png").ToArray();
+            loading.Stop();
+            button1.Clicked += OnButton1Clicked;
+        }
+
+        private void SetColor(Color color)
+        {
+            button1.BackgroundColor = color;
+            label.BackgroundColor = color;
+            textField.BackgroundColor = color;
+            progress.BufferColor = color;
+            slider.BgTrackColor = color;
+            loadingView.BackgroundColor = color;
+        }
+
+        private void OnButton1Clicked(object sender, ClickedEventArgs e)
+        {
+            if (setColorCount % 2 == 0)
+            {
+                SetColor(Color.Yellow);
+            }
+            else
+            {
+                SetColor(Color.Red);
+            }
+            loading.Play();
+            setColorCount++;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                button1.Clicked -= OnButton1Clicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundTest/BackgroundTest.cs b/test/NUITizenGallery/Examples/BackgroundTest/BackgroundTest.cs
new file mode 100644 (file)
index 0000000..e28adef
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class BackgroundTest : IExample
+    {
+        Window window;
+        BackgroundTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new BackgroundTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BackgroundTest/BackgroundTest.xaml.cs b/test/NUITizenGallery/Examples/BackgroundTest/BackgroundTest.xaml.cs
new file mode 100644 (file)
index 0000000..0a2efc7
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BackgroundTestPage : View
+    {
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        private int CurrentImage = 0;   
+        private string[] BackgroundsArray = { "bg_0.png", "bg_1.png" };
+        
+        public BackgroundTestPage()
+        {
+            InitializeComponent();
+
+            BackgroundView.BackgroundImage = ResourcePath + BackgroundsArray[CurrentImage];
+            ChangeBackgroundButton.Clicked += OnChangeBackgroundButtonClicked;
+        }
+
+        public void OnChangeBackgroundButtonClicked(object sender, ClickedEventArgs args)
+        {
+            int current = CurrentImage == 0 ? 1 : 0;
+            BackgroundView.BackgroundImage = ResourcePath + BackgroundsArray[CurrentImage = current];
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest1/Behaviors/VisibilitySetter.cs b/test/NUITizenGallery/Examples/BindingTest1/Behaviors/VisibilitySetter.cs
new file mode 100644 (file)
index 0000000..af0ea38
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Binding;
+
+namespace NUITizenGallery.Behaviors
+{
+    public static class VisibilitySetter
+    {
+        public static readonly BindableProperty IsVisibleProperty =
+            BindableProperty.CreateAttached(
+                "IsVisible",
+                typeof(bool),
+                typeof(VisibilitySetter),
+                true,
+                propertyChanged: OnVisibilityChanged);
+
+
+        public static bool GetIsVisible(BindableObject view) => (bool)view.GetValue(IsVisibleProperty);
+        public static void SetIsVisible(BindableObject view, bool value) => view.SetValue(IsVisibleProperty, value);
+
+        public static void OnVisibilityChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            if (newValue is bool isVisible && bindable is View view)
+            {
+                if (isVisible)
+                {
+                    view.Show();
+                }
+                else
+                {
+                    view.Hide();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest1/BindingTest1.cs b/test/NUITizenGallery/Examples/BindingTest1/BindingTest1.cs
new file mode 100644 (file)
index 0000000..67f54d0
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BindingTest1 : IExample
+    {
+        Window window;
+        private BindingTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BindingTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest1/BindingTest1Page.xaml.cs b/test/NUITizenGallery/Examples/BindingTest1/BindingTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..0746248
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class BindingTest1Page : View
+    {
+        public BindingTest1Page()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest1/ViewModels/BindingTest1ViewModel.cs b/test/NUITizenGallery/Examples/BindingTest1/ViewModels/BindingTest1ViewModel.cs
new file mode 100644 (file)
index 0000000..1253a8a
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright(c) 2021 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 System.Runtime.CompilerServices;
+using System.Windows.Input;
+using Tizen.NUI.Binding;
+
+namespace NUITizenGallery.ViewModels
+{
+    public class BindingTest1ViewModel : INotifyPropertyChanged
+    {
+        private bool isBoxVisible;
+        public ICommand ChangeVisibility { get; private set; }
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        public BindingTest1ViewModel()
+        {
+            isBoxVisible = true;
+            Tizen.Log.Debug("TEST", $"ctor");
+            ChangeVisibility = new Command(() => { IsBoxVisible = !IsBoxVisible; });
+        }
+
+        public bool IsBoxVisible 
+        { 
+            get => isBoxVisible; 
+            set
+            {
+                if (isBoxVisible != value)
+                {
+                    isBoxVisible = value;
+                    RaisePropertyChanged();
+                }
+            }
+        }
+
+        private void ExecuteChangeVisibility()
+        {
+            Tizen.Log.Debug("TEST", $"{IsBoxVisible}");
+        }
+
+
+        private void RaisePropertyChanged([CallerMemberName] string propertyName = null)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest2/BindingTest2.cs b/test/NUITizenGallery/Examples/BindingTest2/BindingTest2.cs
new file mode 100644 (file)
index 0000000..aecd410
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BindingTest2 : IExample
+    {
+        Window window;
+        private BindingTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BindingTest2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest2/BindingTest2Page.xaml.cs b/test/NUITizenGallery/Examples/BindingTest2/BindingTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..cac9c06
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class BindingTest2Page : View
+    {
+        public BindingTest2Page()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BindingTest2/ViewModels/BindingTest2ViewModel.cs b/test/NUITizenGallery/Examples/BindingTest2/ViewModels/BindingTest2ViewModel.cs
new file mode 100644 (file)
index 0000000..aba4f6b
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright(c) 2021 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 System.Runtime.CompilerServices;
+using System.Windows.Input;
+using Tizen.NUI.Binding;
+
+namespace NUITizenGallery.ViewModels
+{
+    public class BindingTest2ViewModel : INotifyPropertyChanged
+    {
+        private int boxSize;
+        private string boxSizeText;
+
+        public BindingTest2ViewModel()
+        {
+            BoxSize = 100;
+        }
+
+        public int BoxSize 
+        { 
+            get => boxSize;
+            set
+            {
+                if (value != boxSize)
+                {
+                    boxSize = value;
+                    BoxSizeText = $"Width: {(float)boxSize:F3}\nHeight: {(float)boxSize:F3}";
+                    RaisePropertyChanged();
+                }
+            } 
+        }
+
+        public string BoxSizeText 
+        { 
+            get => boxSizeText; 
+            set
+            {
+                boxSizeText = value;
+                RaisePropertyChanged();
+            }
+        }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        private void RaisePropertyChanged([CallerMemberName] string propertyName = null)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest1/BoViewTest1Example.cs b/test/NUITizenGallery/Examples/BoxViewTest1/BoViewTest1Example.cs
new file mode 100644 (file)
index 0000000..e196ffc
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BoxViewTest1Example : IExample
+    {
+        private Window window;
+        private BoxViewTest1 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BoxViewTest1();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest1/BoxViewTest1.xaml.cs b/test/NUITizenGallery/Examples/BoxViewTest1/BoxViewTest1.xaml.cs
new file mode 100644 (file)
index 0000000..f710567
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class BoxViewTest1 : View
+    {
+        public BoxViewTest1()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest2/BoViewTest2Example.cs b/test/NUITizenGallery/Examples/BoxViewTest2/BoViewTest2Example.cs
new file mode 100644 (file)
index 0000000..a6698d3
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BoxViewTest2Example : IExample
+    {
+        private Window window;
+        private BoxViewTest2 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BoxViewTest2();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest2/BoxViewTest2.xaml.cs b/test/NUITizenGallery/Examples/BoxViewTest2/BoxViewTest2.xaml.cs
new file mode 100644 (file)
index 0000000..763f3fb
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class BoxViewTest2 : View
+    {
+        public BoxViewTest2()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest3/BoViewTest3Example.cs b/test/NUITizenGallery/Examples/BoxViewTest3/BoViewTest3Example.cs
new file mode 100644 (file)
index 0000000..5dcbfcf
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BoxViewTest3Example : IExample
+    {
+        private Window window;
+        private BoxViewTest3 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BoxViewTest3();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest3/BoxViewTest3.xaml.cs b/test/NUITizenGallery/Examples/BoxViewTest3/BoxViewTest3.xaml.cs
new file mode 100644 (file)
index 0000000..b968840
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BoxViewTest3 : View
+    {
+        public BoxViewTest3()
+        {
+            InitializeComponent();
+            Subscribe();
+            ApplyColor();
+        }
+
+        private void Subscribe()
+        {
+            red.ValueChanged += OnSliderValueChanged;
+            green.ValueChanged += OnSliderValueChanged;
+            blue.ValueChanged += OnSliderValueChanged;
+            alpha.ValueChanged += OnSliderValueChanged;
+        }
+
+        private void Unsubscribe()
+        {
+            red.ValueChanged -= OnSliderValueChanged;
+            green.ValueChanged -= OnSliderValueChanged;
+            blue.ValueChanged -= OnSliderValueChanged;
+            alpha.ValueChanged -= OnSliderValueChanged;
+        }
+
+        private void OnSliderValueChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            ApplyColor();
+        }
+
+        private void ApplyColor()
+        {
+            float r = red.CurrentValue / 255f;
+            float g = green.CurrentValue / 255f;
+            float b = blue.CurrentValue / 255f;
+            float a = alpha.CurrentValue / 255f;
+
+            colorBox.BackgroundColor = new Color(r, g, b, a);
+            preColorBox.BackgroundColor = new Color(r * a, g * a, b * a, a);
+
+            output.Text = String.Format("R={0:000}, G={1:000}, B={2:000}, A={3:000}", r * 255f, g * 255f, b * 255f, a * 255f);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                Unsubscribe();
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest4/BoViewTest4.cs b/test/NUITizenGallery/Examples/BoxViewTest4/BoViewTest4.cs
new file mode 100644 (file)
index 0000000..2fa7062
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BoxViewTest4Example : IExample
+    {
+        private Window window;
+        private BoxViewTest4 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new BoxViewTest4();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BoxViewTest4/BoxViewTest4.xaml.cs b/test/NUITizenGallery/Examples/BoxViewTest4/BoxViewTest4.xaml.cs
new file mode 100644 (file)
index 0000000..834bf06
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class BoxViewTest4 : View
+    {
+        public BoxViewTest4()
+        {
+            InitializeComponent();
+            Subscribe();
+            box.Scale = new Vector3(2, 2, 1);
+            box.Orientation = new Rotation(new Radian(new Degree(50)), new Vector3(0f, 0f, 1f));
+            label.Text = "Scale : " + box.Scale.X;
+        }
+
+        private void Subscribe()
+        {
+            button1.Clicked += OnButton1Clicked;
+            button2.Clicked += OnButton2Clicked;
+        }
+
+        private void Unsubscribe()
+        {
+            button1.Clicked -= OnButton1Clicked;
+            button2.Clicked -= OnButton2Clicked;
+        }
+
+        private void OnButton1Clicked(object sender, ClickedEventArgs e)
+        {
+            box.Scale += new Vector3(1, 1, 0);
+            label.Text = "Scale : " + box.Scale.X;
+        }
+
+        private void OnButton2Clicked(object sender, ClickedEventArgs e)
+        {
+            box.Scale -= new Vector3(1, 1, 0);
+            label.Text = "Scale : " + box.Scale.X;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                Unsubscribe();
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushBackgroundTest/BrushBackgroundTest.cs b/test/NUITizenGallery/Examples/BrushBackgroundTest/BrushBackgroundTest.cs
new file mode 100644 (file)
index 0000000..37da55f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class BrushBackgroundTest : IExample
+    {
+        Window window;
+        BrushBackgroundTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new BrushBackgroundTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushBackgroundTest/BrushBackgroundTest.xaml.cs b/test/NUITizenGallery/Examples/BrushBackgroundTest/BrushBackgroundTest.xaml.cs
new file mode 100644 (file)
index 0000000..183e749
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class BrushBackgroundTestPage : View
+    {
+        public BrushBackgroundTestPage()
+        {
+            InitializeComponent();
+
+            ButtonSolid.Clicked += OnClickedSolid;
+            ButtonGradientLinear.Clicked += OnClickedLinear;
+            ButtonGradientRadial.Clicked += OnClickedRadial;
+        }
+
+        public void OnClickedSolid(object sender, ClickedEventArgs args)
+        {
+            BackgroundColor = Color.Red;
+        }
+
+        public void OnClickedLinear(object sender, ClickedEventArgs args)
+        {
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            GradientVisual linearGradient = new GradientVisual();
+            linearGradient.StopColor = stopColor;
+            linearGradient.StartPosition = new Vector2(0.0f, 0.0f);
+            linearGradient.EndPosition = new Vector2(0.3f, 0.3f);
+            linearGradient.Origin = Visual.AlignType.TopBegin;
+
+            Background = linearGradient.OutputVisualMap;
+        }
+
+        public void OnClickedRadial(object sender, ClickedEventArgs args)
+        {
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            GradientVisual radialGradient = new GradientVisual();
+            radialGradient.Center = new Vector2(0.0f, 0.0f);
+            radialGradient.Radius = 0.5f;
+            radialGradient.StopColor = stopColor;
+            radialGradient.Origin = Visual.AlignType.TopBegin;
+
+            Background = radialGradient.OutputVisualMap;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushBorderTest/BrushBorderTest.cs b/test/NUITizenGallery/Examples/BrushBorderTest/BrushBorderTest.cs
new file mode 100644 (file)
index 0000000..34f8cb9
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class BrushBorderTest : IExample
+    {
+        Window window;
+        BrushBorderTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new BrushBorderTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushBorderTest/BrushBorderTest.xaml.cs b/test/NUITizenGallery/Examples/BrushBorderTest/BrushBorderTest.xaml.cs
new file mode 100644 (file)
index 0000000..17b2513
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class BrushBorderTestPage : View
+    {
+        private VisualView FrameView;
+        private TextVisual FrameText;
+        private BorderVisual FrameBorder;
+        private GradientVisual LinearGradient;
+        private GradientVisual RadialGradient;
+
+        private readonly string TextId = "_textVisual";
+        private readonly string BorderId = "_borderVisual";
+        private readonly string LinearGradientId = "_linearGradientVisual";
+        private readonly string RadialGradientId = "_radialGradientVisual";
+
+        
+        public BrushBorderTestPage()
+        {
+            InitializeComponent();
+
+            ButtonSolid.Clicked += OnClickedSolid;
+            ButtonGradientLinear.Clicked += OnClickedLinear;
+            ButtonGradientRadial.Clicked += OnClickedRadial;
+
+            FrameView = new VisualView()
+            {
+                Size = new Size(500, 100),
+                BackgroundColor = Tizen.NUI.Color.White,
+                BoxShadow = new Shadow(10.0f, new Color(0.2f, 0.2f, 0.2f, 1.0f), new Vector2(5,5))
+            };
+
+            FrameText = new TextVisual();
+            FrameText.Text = "Frame With Shadow";
+            FrameText.TextColor = Tizen.NUI.Color.Black;
+            FrameText.PointSize = 10;
+            FrameText.HorizontalAlignment = HorizontalAlignment.Center;
+
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            LinearGradient = new GradientVisual();
+            LinearGradient.StopColor = stopColor;
+            LinearGradient.StartPosition = new Vector2(0.0f, 0.0f);
+            LinearGradient.EndPosition = new Vector2(0.3f, 0.3f);
+            LinearGradient.Origin = Visual.AlignType.TopBegin;
+
+            RadialGradient = new GradientVisual();
+            RadialGradient.Center = new Vector2(0.0f, 0.0f);
+            RadialGradient.Radius = 0.5f;
+            RadialGradient.StopColor = stopColor;
+            RadialGradient.Origin = Visual.AlignType.TopBegin;
+
+            FrameBorder = new BorderVisual();
+            FrameBorder.BorderSize = 2.0f;
+            FrameBorder.Color = Tizen.NUI.Color.Blue;
+            FrameBorder.RelativeSize = new RelativeVector2(1.0f, 1.0f);
+
+            FrameView.AddVisual(BorderId, FrameBorder);
+            FrameView.AddVisual(TextId, FrameText);
+
+            this.Add(FrameView);
+        }
+
+        public void OnClickedSolid(object sender, ClickedEventArgs args) 
+        {
+            ViewTest1.BackgroundColor = Color.Red;
+
+            FrameView.RemoveAll();
+            FrameView.BackgroundColor = Color.Red;
+            FrameView.AddVisual(BorderId, FrameBorder);
+            FrameView.AddVisual(TextId, FrameText);
+        }
+
+        public void OnClickedLinear(object sender, ClickedEventArgs args) 
+        {
+            ViewTest1.Background = LinearGradient.OutputVisualMap;
+            FrameView.RemoveAll();
+
+            FrameView.AddVisual(LinearGradientId, LinearGradient);
+            FrameView.AddVisual(BorderId, FrameBorder);
+            FrameView.AddVisual(TextId, FrameText);
+        }
+
+        public void OnClickedRadial(object sender, ClickedEventArgs args) 
+        {
+            ViewTest1.Background = RadialGradient.OutputVisualMap;
+            FrameView.RemoveAll();
+
+            FrameView.AddVisual(RadialGradientId, RadialGradient);
+            FrameView.AddVisual(BorderId, FrameBorder);
+            FrameView.AddVisual(TextId, FrameText);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushComponentsTest/BrushComponentsTest.cs b/test/NUITizenGallery/Examples/BrushComponentsTest/BrushComponentsTest.cs
new file mode 100644 (file)
index 0000000..783f549
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class BrushComponentsTest : IExample
+    {
+        Window window;
+        BrushComponentsTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new BrushComponentsTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushComponentsTest/BrushComponentsTest.xaml.cs b/test/NUITizenGallery/Examples/BrushComponentsTest/BrushComponentsTest.xaml.cs
new file mode 100644 (file)
index 0000000..ded8816
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class BrushComponentsTestPage : View
+    {
+        public BrushComponentsTestPage()
+        {
+            InitializeComponent();
+
+            LinearLayout pageLayout = new LinearLayout();
+            pageLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            pageLayout.CellPadding = new Size2D(10, 10);
+            pageLayout.Padding = new Extents(10, 10, 10, 10);
+            this.Layout = pageLayout;
+
+            ButtonSolid.Clicked += OnClickedSolid;
+            ButtonGradientLinear.Clicked += OnClickedLinear;
+            ButtonGradientRadial.Clicked += OnClickedRadial;
+        }
+
+        public void OnClickedSolid(object sender, ClickedEventArgs args) 
+        {
+            ViewTest1.BackgroundColor = Color.Red;
+            ViewTest2.BackgroundColor = Color.Red;
+            ViewTest3.BackgroundColor = Color.Red;
+        }
+
+        public void OnClickedLinear(object sender, ClickedEventArgs args) 
+        {
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            GradientVisual linearGradient = new GradientVisual();
+            linearGradient.StopColor = stopColor;
+            linearGradient.StartPosition = new Vector2(0.0f, 0.0f);
+            linearGradient.EndPosition = new Vector2(0.3f, 0.3f);
+            linearGradient.Origin = Visual.AlignType.TopBegin;
+
+            ViewTest1.Background = linearGradient.OutputVisualMap;
+            ViewTest2.Background = linearGradient.OutputVisualMap;
+            ViewTest3.Background = linearGradient.OutputVisualMap;
+        }
+
+        public void OnClickedRadial(object sender, ClickedEventArgs args) 
+        {
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            GradientVisual radialGradient = new GradientVisual();
+            radialGradient.Center = new Vector2(0.0f, 0.0f);
+            radialGradient.Radius = 0.5f;
+            radialGradient.StopColor = stopColor;
+            radialGradient.Origin = Visual.AlignType.TopBegin;
+
+            ViewTest1.Background = radialGradient.OutputVisualMap;
+            ViewTest2.Background = radialGradient.OutputVisualMap;
+            ViewTest3.Background = radialGradient.OutputVisualMap;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushImageTest/BrushImageTest.cs b/test/NUITizenGallery/Examples/BrushImageTest/BrushImageTest.cs
new file mode 100644 (file)
index 0000000..4dcbe18
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class BrushImageTest : IExample
+    {
+        Window window;
+        BrushImageTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new BrushImageTestPage();
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushImageTest/BrushImageTest.xaml.cs b/test/NUITizenGallery/Examples/BrushImageTest/BrushImageTest.xaml.cs
new file mode 100644 (file)
index 0000000..0bd5f59
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class BrushImageTestPage : ContentPage
+    {
+        private GradientVisual LinearGradient;
+        private GradientVisual RadialGradient;
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+
+        public BrushImageTestPage()
+        {
+            InitializeComponent();
+
+            ButtonSolid.Clicked += OnClickedSolid;
+            ButtonGradientLinear.Clicked += OnClickedLinear;
+            ButtonGradientRadial.Clicked += OnClickedRadial;
+
+            Image1.SetImage(ResourcePath + "tizen.png");
+            Image2.SetImage(ResourcePath + "xamarin_logo.png");
+
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            LinearGradient = new GradientVisual();
+            LinearGradient.StopColor = stopColor;
+            LinearGradient.StartPosition = new Vector2(0.0f, 0.0f);
+            LinearGradient.EndPosition = new Vector2(0.3f, 0.3f);
+            LinearGradient.Origin = Visual.AlignType.TopBegin;
+
+            RadialGradient = new GradientVisual();
+            RadialGradient.Center = new Vector2(0.0f, 0.0f);
+            RadialGradient.Radius = 0.5f;
+            RadialGradient.StopColor = stopColor;
+            RadialGradient.Origin = Visual.AlignType.TopBegin;
+        }
+
+        public void OnClickedSolid(object sender, ClickedEventArgs args)
+        {
+            Image1.BackgroundColor = Color.Red;
+            Image2.BackgroundColor = Color.Red;
+        }
+
+        public void OnClickedLinear(object sender, ClickedEventArgs args)
+        {
+            Image1.Background = LinearGradient.OutputVisualMap;
+            Image2.Background = LinearGradient.OutputVisualMap;
+        }
+
+        public void OnClickedRadial(object sender, ClickedEventArgs args)
+        {
+            Image1.Background = RadialGradient.OutputVisualMap;
+            Image2.Background = RadialGradient.OutputVisualMap;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushViewerTest/BrushViewerTest.cs b/test/NUITizenGallery/Examples/BrushViewerTest/BrushViewerTest.cs
new file mode 100644 (file)
index 0000000..2d57d3a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class BrushViewerTest : IExample
+    {
+        Window window;
+        BrushViewerTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new BrushViewerTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/BrushViewerTest/BrushViewerTest.xaml.cs b/test/NUITizenGallery/Examples/BrushViewerTest/BrushViewerTest.xaml.cs
new file mode 100644 (file)
index 0000000..b132c11
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class BrushViewerTestPage : View
+    {
+        public BrushViewerTestPage()
+        {
+            InitializeComponent();
+
+            LinearLayout pageLayout = new LinearLayout();
+            pageLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            pageLayout.CellPadding = new Size2D(10, 10);
+            pageLayout.Padding = new Extents(10, 10, 10, 10);
+            this.Layout = pageLayout;
+
+            ButtonSolid.Clicked += OnClickedSolid;
+            ButtonGradientLinear.Clicked += OnClickedLinear;
+            ButtonGradientRadial.Clicked += OnClickedRadial;
+        }
+
+        public void OnClickedSolid(object sender, ClickedEventArgs args)
+        {
+            BrushViewer.RemoveVisual("radialGradient");
+            BrushViewer.RemoveVisual("linearGradient");
+            BrushViewer.BackgroundColor = new Color(1f, 0f, 0f, 1f);
+        }
+
+        public void OnClickedLinear(object sender, ClickedEventArgs args)
+        {
+            ///Create new visual view and gradient visual instances
+            GradientVisual gradientVisualMap1 = new GradientVisual();
+
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            gradientVisualMap1.StartPosition = new Vector2(0.0f, 0.0f);
+            gradientVisualMap1.EndPosition = new Vector2(0.3f, 0.3f);
+            gradientVisualMap1.StopColor = stopColor;
+            gradientVisualMap1.Origin = Visual.AlignType.TopBegin;
+
+            BrushViewer.RemoveVisual("radialGradient");
+            BrushViewer.AddVisual("linearGradient", gradientVisualMap1);
+        }
+
+        public void OnClickedRadial(object sender, ClickedEventArgs args)
+        {
+            GradientVisual gradientVisualMap1 = new GradientVisual();
+
+            PropertyArray stopColor = new PropertyArray();
+            stopColor.Add(new PropertyValue(new Vector4(255.0f, 0.0f, 0.0f, 255.0f) / 255.0f));
+            stopColor.Add(new PropertyValue(new Vector4(0.0f, 255.0f, 0.0f, 255.0f) / 255.0f));
+
+            gradientVisualMap1.Center = new Vector2(0.0f, 0.0f);
+            gradientVisualMap1.Radius = 0.5f;
+            gradientVisualMap1.StopColor = stopColor;
+            gradientVisualMap1.Origin = Visual.AlignType.TopBegin;
+
+            BrushViewer.RemoveVisual("linearGradient");
+            BrushViewer.AddVisual("radialGradient", gradientVisualMap1);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ButtonTest2/ButtonTest2.cs b/test/NUITizenGallery/Examples/ButtonTest2/ButtonTest2.cs
new file mode 100644 (file)
index 0000000..91da0de
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ButtonTest2 : IExample
+    {
+        private Window window;
+        private ButtonTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ButtonTest2Page();
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ButtonTest2/ButtonTest2Page.xaml.cs b/test/NUITizenGallery/Examples/ButtonTest2/ButtonTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..bdfe376
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ButtonTest2Page : View
+    {
+        private readonly string ImageURL = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "images/";
+        private readonly Color[] button1Colors = {
+            Color.Black,
+            Color.Red,
+            Color.Green,
+            Color.Blue,
+            new Color(global::System.Drawing.Color.FromName("Pink")),
+            new Color(global::System.Drawing.Color.FromName("Olive")),
+            new Color(global::System.Drawing.Color.FromName("Lime")),
+            new Color(global::System.Drawing.Color.FromName("Aqua")),
+            new Color(global::System.Drawing.Color.FromName("Navy")),
+            Color.White,
+        };
+
+        uint button1ColorIndex = 0;
+
+        public ButtonTest2Page()
+        {
+            InitializeComponent();
+            rootView.Padding = new Extents(50, 50, 50, 50);
+            imageview1.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            coloredButton.Clicked += OnColoredButtonClicked;
+            button3.Clicked += OnButton3Clicked;
+        }
+
+        private void OnColoredButtonClicked(object sender, ClickedEventArgs e) =>
+            coloredButton.TextColor = button1Colors[++button1ColorIndex % button1Colors.Length];
+
+        private void OnButton3Clicked(object sender, ClickedEventArgs e) =>
+            button2.IsEnabled = !button2.IsEnabled;
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                coloredButton.Clicked -= OnColoredButtonClicked;
+                button3.Clicked -= OnButton3Clicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ButtonTest5/ButtonTest5.cs b/test/NUITizenGallery/Examples/ButtonTest5/ButtonTest5.cs
new file mode 100644 (file)
index 0000000..8706174
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ButtonTest5 : IExample
+    {
+        private Window window;
+        private ButtonTest5Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ButtonTest5Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ButtonTest5/ButtonTest5.xaml.cs b/test/NUITizenGallery/Examples/ButtonTest5/ButtonTest5.xaml.cs
new file mode 100644 (file)
index 0000000..771bba0
--- /dev/null
@@ -0,0 +1,53 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class ButtonTest5Page : View
+    {
+        bool opacityToggle = false;
+        public ButtonTest5Page()
+        {
+            InitializeComponent();
+            rootView.Padding = new Extents(50, 50, 50, 50);
+
+            slider1.ValueChanged += (o, e) =>
+            {
+                text1.Text = "Button Size: " + slider1.CurrentValue;
+                button1.SizeHeight = slider1.CurrentValue;
+                button2.SizeHeight = slider1.CurrentValue;
+            };
+
+            slider2.ValueChanged += (o, e) =>
+            {
+                text2.Text = "Button Font Size: " + slider2.CurrentValue;
+                button1.PointSize = slider2.CurrentValue;
+                button2.PointSize = slider2.CurrentValue;
+            };
+
+            slider3.ValueChanged += (o, e) =>
+            {
+                text3.Text = "Button Opacity: " + slider3.CurrentValue;
+                button1.Opacity = slider3.CurrentValue;
+                button2.Opacity = slider3.CurrentValue;
+            };
+
+            button1.Clicked += (o, e) =>
+            {
+                opacityToggle = !opacityToggle;
+                if (opacityToggle)
+                {
+                    slider3.CurrentValue = 0.5f;
+                } 
+                else
+                {
+                    slider3.CurrentValue = 1.0f;
+                }
+                text3.Text = "Button Opacity: " + slider3.CurrentValue;
+                button1.Opacity = slider3.CurrentValue;
+                button2.Opacity = slider3.CurrentValue;
+            };
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ButtonTest6/ButtonTest6.cs b/test/NUITizenGallery/Examples/ButtonTest6/ButtonTest6.cs
new file mode 100644 (file)
index 0000000..055ea28
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ButtonTest6 : IExample
+    {
+        private Window window;
+        private ButtonTest6Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ButtonTest6Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ButtonTest6/ButtonTest6.xaml.cs b/test/NUITizenGallery/Examples/ButtonTest6/ButtonTest6.xaml.cs
new file mode 100644 (file)
index 0000000..03246af
--- /dev/null
@@ -0,0 +1,29 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ButtonTest6Page : ContentPage
+    {
+        private TapGestureDetector mTapDetector;
+        public ButtonTest6Page()
+        {
+            InitializeComponent();
+
+            mTapDetector = new TapGestureDetector();
+            mTapDetector.Attach(redText);
+            mTapDetector.Attach(greenText);
+            mTapDetector.Attach(grayText);
+
+            mTapDetector.Detected += (obj, e) =>
+            {
+                View view = e.View;
+                if (view != null)
+                {
+                    button1.BackgroundColor = view.BackgroundColor;
+                }
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ButtonTest7/ButtonTest7.cs b/test/NUITizenGallery/Examples/ButtonTest7/ButtonTest7.cs
new file mode 100644 (file)
index 0000000..b1e09f8
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ButtonTest7 : IExample
+    {
+        private Window window;
+        private ButtonTest7Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ButtonTest7Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ButtonTest7/ButtonTest7.xaml.cs b/test/NUITizenGallery/Examples/ButtonTest7/ButtonTest7.xaml.cs
new file mode 100644 (file)
index 0000000..2bb50e9
--- /dev/null
@@ -0,0 +1,23 @@
+
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class ButtonTest7Page : View
+    {
+        public ButtonTest7Page()
+        {
+            InitializeComponent();
+            button1.ControlStateChangedEvent += (o, e) =>
+            {
+                if (e.CurrentState == ControlState.Normal) {
+                    text2.Text = "Normal";
+                }
+                if (e.CurrentState == ControlState.Pressed) {
+                    text2.Text = "Pressed";
+                }   
+            };
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ButtontTest1/ButtonTest1.cs b/test/NUITizenGallery/Examples/ButtontTest1/ButtonTest1.cs
new file mode 100644 (file)
index 0000000..3de8822
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ButtonTest1 : IExample
+    {
+        private Window window;
+        private ButtonTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ButtonTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ButtontTest1/ButtonTest1.xaml.cs b/test/NUITizenGallery/Examples/ButtontTest1/ButtonTest1.xaml.cs
new file mode 100644 (file)
index 0000000..2346b75
--- /dev/null
@@ -0,0 +1,42 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ButtonTest1Page : View
+    {
+        string ImageURL = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "images/";
+        Color[] button4Colors = { Color.White, Color.Black, Color.Red, Color.Magenta, Color.Green, Color.Yellow };
+        uint button4ColorsIndex = 0;
+        bool button5Clicked = false;
+        public ButtonTest1Page()
+        {
+            InitializeComponent();
+            rootView.Padding = new Extents(50, 50, 50, 50);
+            imageview1.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            imageview2.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            imageview3.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            imageview4.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            imageview5.ResourceUrl = ImageURL + "NUITizenGallery.png";
+
+            button4.Clicked += (s, e) =>
+            {
+                button4.TextColor = button4Colors[++button4ColorsIndex % button4Colors.Length];
+            };
+
+            button5.Clicked += (s, e) =>
+            {
+                button5Clicked = !button5Clicked;
+                if (button5Clicked) button5.Text = "";
+                else button5.Text = "Text Toggle";
+            };
+
+            button8.Clicked += (s, e) =>
+            {
+                button7.IsEnabled = !button7.IsEnabled;
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/CarouselPageTest1/CarouselPageTest1.cs b/test/NUITizenGallery/Examples/CarouselPageTest1/CarouselPageTest1.cs
new file mode 100644 (file)
index 0000000..bd145b4
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CarouselPageTest1 : IExample
+    {
+        private Window window;
+        private CarouselPageTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CarouselPageTest1Page();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselPageTest1/CarouselPageTest1.xaml.cs b/test/NUITizenGallery/Examples/CarouselPageTest1/CarouselPageTest1.xaml.cs
new file mode 100644 (file)
index 0000000..861e4b6
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class CarouselPageTest1Page : ContentPage
+    {
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        public CarouselPageTest1Page()
+        {
+            InitializeComponent();
+
+            Scroller.ScrollAnimationEnded += OnScrollAnimationEnded;
+
+            PaginationStyle paginationStyle = new PaginationStyle()
+            {
+                IndicatorSize = new Size(26, 26),
+                IndicatorSpacing = 8,
+                IndicatorImageUrl = new Selector<string>
+                {
+                    Normal = ResourcePath + "pagination_ic_nor.png",
+                    Selected = ResourcePath + "pagination_ic_sel.png"
+                }
+            };
+
+            Index.ApplyStyle(paginationStyle);
+            Index.BackgroundColor = Color.Gray;
+            Index.IndicatorCount = 3;
+            Index.SelectedIndex = 0;
+        }
+        private void OnScrollAnimationEnded(object sender, ScrollEventArgs args)
+        {
+            Index.SelectedIndex = Scroller.CurrentPage;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselViewTest1/CarouselViewTest1.cs b/test/NUITizenGallery/Examples/CarouselViewTest1/CarouselViewTest1.cs
new file mode 100644 (file)
index 0000000..9ce1eee
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CarouselViewTest1 : IExample
+    {
+        private Window window;
+        private CarouselViewTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CarouselViewTest1Page();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselViewTest1/CarouselViewTest1.xaml.cs b/test/NUITizenGallery/Examples/CarouselViewTest1/CarouselViewTest1.xaml.cs
new file mode 100644 (file)
index 0000000..d106963
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CarouselViewTest1Page : ContentPage
+    {
+        private bool DefaultScrollbarState;
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        public CarouselViewTest1Page()
+        {
+            InitializeComponent();
+            DefaultScrollbarState = Scroller.HideScrollbar;
+
+            Never.Clicked += OnNeverButtonClicked;
+            Always.Clicked += OnAlwaysButtonClicked;
+            Default.Clicked += OnDefaultButtonClicked;
+
+            Scroller.ScrollAnimationEnded += OnScrollAnimationEnded;
+            Scroller.ScrollDragStarted += OnScrollDragStarted;
+
+            PaginationStyle paginationStyle = new PaginationStyle()
+            {
+                IndicatorSize = new Size(26, 26),
+                IndicatorSpacing = 8,
+                IndicatorImageUrl = new Selector<string>
+                {
+                    Normal = ResourcePath + "pagination_ic_nor.png",
+                    Selected = ResourcePath + "pagination_ic_sel.png"
+                }
+            };
+
+            Index.ApplyStyle(paginationStyle);
+            Index.BackgroundColor = Color.Gray;
+            Index.IndicatorCount = 3;
+            Index.SelectedIndex = 0;
+        }
+
+        private void OnNeverButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Scroller.HideScrollbar = true;
+        }
+
+        private void OnAlwaysButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Scroller.HideScrollbar = false;
+        }
+
+        private void OnDefaultButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Scroller.HideScrollbar = DefaultScrollbarState;
+        }
+
+        private void OnScrollAnimationEnded(object sender, ScrollEventArgs args)
+        {
+            Index.SelectedIndex = Scroller.CurrentPage;
+            ScrollStatus.Text = "";
+        }
+
+        private void OnScrollDragStarted(object sender, ScrollEventArgs args)
+        {
+            ScrollStatus.Text = "Dragging";
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselViewTest2/CarouselViewTest2.cs b/test/NUITizenGallery/Examples/CarouselViewTest2/CarouselViewTest2.cs
new file mode 100644 (file)
index 0000000..4132024
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CarouselViewTest2 : IExample
+    {
+        private Window window;
+        private CarouselViewTest2Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CarouselViewTest2Page();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselViewTest2/CarouselViewTest2.xaml.cs b/test/NUITizenGallery/Examples/CarouselViewTest2/CarouselViewTest2.xaml.cs
new file mode 100644 (file)
index 0000000..d9f7aaf
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CarouselViewTest2Page : ContentPage
+    {
+        private bool DefaultScrollbarState;
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        public CarouselViewTest2Page()
+        {
+            InitializeComponent();
+            DefaultScrollbarState = Scroller.HideScrollbar;
+
+            Never.Clicked += OnNeverButtonClicked;
+            Always.Clicked += OnAlwaysButtonClicked;
+            Default.Clicked += OnDefaultButtonClicked;
+
+            Scroller.ScrollAnimationEnded += OnScrollAnimationEnded;
+            Scroller.ScrollDragStarted += OnScrollDragStarted;
+
+            PaginationStyle paginationStyle = new PaginationStyle()
+            {
+                IndicatorSize = new Size(26, 26),
+                IndicatorSpacing = 8,
+                IndicatorImageUrl = new Selector<string>
+                {
+                    Normal = ResourcePath + "pagination_ic_nor.png",
+                    Selected = ResourcePath + "pagination_ic_sel.png"
+                }
+            };
+
+            Index.ApplyStyle(paginationStyle);
+            Index.BackgroundColor = Color.Gray;
+            Index.IndicatorCount = 3;
+            Index.SelectedIndex = 0;
+        }
+
+        private void OnNeverButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Scroller.HideScrollbar = true;
+        }
+
+        private void OnAlwaysButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Scroller.HideScrollbar = false;
+        }
+
+        private void OnDefaultButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Scroller.HideScrollbar = DefaultScrollbarState;
+        }
+
+        private void OnScrollAnimationEnded(object sender, ScrollEventArgs args)
+        {
+            Index.SelectedIndex = Scroller.CurrentPage;
+            ScrollStatus.Text = "";
+        }
+
+        private void OnScrollDragStarted(object sender, ScrollEventArgs args)
+        {
+            ScrollStatus.Text = "Dragging";
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselViewTest4/CarouselViewTest4.cs b/test/NUITizenGallery/Examples/CarouselViewTest4/CarouselViewTest4.cs
new file mode 100644 (file)
index 0000000..5ab0e24
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CarouselViewTest4 : IExample
+    {
+        private Window window;
+        private CarouselViewTest4Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CarouselViewTest4Page();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CarouselViewTest4/CarouselViewTest4.xaml.cs b/test/NUITizenGallery/Examples/CarouselViewTest4/CarouselViewTest4.xaml.cs
new file mode 100644 (file)
index 0000000..d480850
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CarouselViewTest4Page : ContentPage
+    {
+        private readonly static int PageCount = 6;
+        Button[] buttons = new Button[PageCount];
+        public CarouselViewTest4Page()
+        {
+            InitializeComponent();
+
+            buttons[0] = SetPage0Button;
+            buttons[1] = SetPage1Button;
+            buttons[2] = SetPage2Button;
+            buttons[3] = SetPage3Button;
+            buttons[4] = SetPage4Button;
+            buttons[5] = SetPage5Button;
+
+            for (int i = 0; i < PageCount; ++i) 
+            {
+                buttons[i].Clicked += OnButtonClicked;
+            }
+
+            Scroller.ScrollAnimationEnded += OnScrollAnimationEnded;
+
+            SetPageIndicator(0);
+        }
+
+        private void OnButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Button btn = (Button) sender;
+            Scroller.ScrollToIndex(Int32.Parse(btn.Text));
+        }
+
+        private void SetPageIndicator(int index)
+        {
+            for (int i = 0; i < PageCount; ++i)
+            {
+                buttons[i].TextColor = Color.White;
+            }
+
+            buttons[index].TextColor = Color.Red;
+        }
+        private void OnScrollAnimationEnded(object sender, ScrollEventArgs args)
+        {
+            SetPageIndicator(Scroller.CurrentPage);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CheckBoxTest/CheckBoxTest.cs b/test/NUITizenGallery/Examples/CheckBoxTest/CheckBoxTest.cs
new file mode 100755 (executable)
index 0000000..de077b4
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class CheckBoxTest : IExample
+    {
+        private Window window;
+        private CheckBoxTestPage page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new CheckBoxTestPage();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/CheckBoxTest/CheckBoxTest.xaml.cs b/test/NUITizenGallery/Examples/CheckBoxTest/CheckBoxTest.xaml.cs
new file mode 100755 (executable)
index 0000000..b8077ce
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class CheckBoxTestPage : View
+    {
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+
+        public CheckBoxTestPage()
+        {
+            InitializeComponent();
+
+            var check2style = checkBox2.Style;
+            check2style.Icon.ResourceUrl = new Selector<string>
+            {
+                Normal = ResourcePath + "controller_btn_check_off.png",
+                Selected = ResourcePath + "controller_btn_check_on.png",
+                DisabledSelected = ResourcePath + "controller_btn_check_off.png",
+                Disabled = ResourcePath + "controller_btn_check_off.png",
+            };
+
+            checkBox2.ApplyStyle(check2style);
+
+            checkBox1.Clicked += (o, e) =>
+            {
+                if (checkBox1.IsSelected)
+                {
+                    checkBox1.Text = "True";
+                }
+                else
+                {
+                    checkBox1.Text = "False";
+                }
+            };
+
+            checkBox2.Clicked += (o, e) =>
+            {
+
+            };
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewFocusTest.cs b/test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewFocusTest.cs
new file mode 100644 (file)
index 0000000..2e22009
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewFocusTest : IExample
+    {
+        Window window;
+        CollectionViewFocusTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new CollectionViewFocusTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewFocusTest.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewFocusTest.xaml.cs
new file mode 100644 (file)
index 0000000..0a96672
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using System.IO;
+
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewFocusTestPage : View
+    {
+        private readonly static string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        private readonly static string PostersPath = ResourcePath + "posters/";
+        private int FocusedItem = -1;
+        private CollectionViewItem[] items;
+        private readonly string TestDescription = "A great example of colour scheme that extends from a film to its marketing. Yellow emanates from this heartwarming Sundance hit, seen on Paul Dano��s t-shirt and the lovably rubbish VW campervan, here flooding the negative space of both trailer and poster.";
+
+        public CollectionViewFocusTestPage()
+        {
+            InitializeComponent();
+
+            string[] files = Directory.GetFiles(PostersPath);
+            items = new CollectionViewItem[files.Length];
+
+            int i = 0;
+
+            foreach (string f in files)
+            {
+                items[i] = new CollectionViewItem(i, f, Path.GetFileNameWithoutExtension(f), TestDescription);
+                items[i].CollectionViewItemClicked += OnItemClicked;
+                Scroller.Add(items[i++]);
+            }
+        }
+        public void OnItemClicked(object sender, CollectionViewItemClickedEventArgs args)
+        {
+            if (FocusedItem == -1) 
+            {
+                items[args.ClickedItemId].SetFocused();
+                FocusedItem = args.ClickedItemId;
+            } else {
+                items[FocusedItem].SetNormal();
+                items[args.ClickedItemId].SetFocused();
+            }
+
+            FocusedItem = args.ClickedItemId;
+
+            Scroller.ScrollToIndex(FocusedItem);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewItem.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewFocusTest/CollectionViewItem.xaml.cs
new file mode 100644 (file)
index 0000000..5fb4434
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI;
+using System;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewItemClickedEventArgs : EventArgs
+    {
+        public int ClickedItemId = -1;
+        public CollectionViewItemClickedEventArgs(int id)
+        {
+            ClickedItemId = id;
+        }
+    }
+
+    public partial class CollectionViewItem : View
+    {
+        private int ItemId = -1;
+        public event EventHandler<CollectionViewItemClickedEventArgs> CollectionViewItemClicked;
+
+        private Animation animation;
+
+        public CollectionViewItem(int id, string poster, string name, string description)
+        {
+            ItemId = id;
+            InitializeComponent();
+
+            ItemPoster.ResourceUrl = poster;
+            ItemTitle.Text = name;
+            ItemDescription.Text = description;
+            ItemDescription.MultiLine = true;
+
+            TouchEvent += OnTouchEvent;
+            animation = new Animation();
+        }
+
+        public bool OnTouchEvent(object sender, TouchEventArgs args)
+        {
+            if (args.Touch.GetState(0) == Tizen.NUI.PointStateType.Finished) {
+                CollectionViewItemClicked.Invoke(this, new CollectionViewItemClickedEventArgs(ItemId));
+            }
+
+            return false;
+        }
+
+        public void SetFocused()
+        {
+            ItemBackground.BackgroundColor = Color.Blue;
+
+            animation.AnimateTo(ItemBackground, "SizeWidth", 340, 0, 100);
+            animation.AnimateTo(ItemBackground, "SizeHeight", 900, 0, 100);
+            animation.AnimateTo(ItemPoster, "SizeWidth", 340, 0, 100);
+            animation.AnimateTo(ItemPoster, "SizeHeight", 496, 0, 100);
+            animation.AnimateTo(ItemTitle, "SizeWidth", 340, 0, 100);
+            animation.AnimateTo(ItemDescription, "SizeWidth", 340, 0, 100);
+            animation.AnimateTo(ItemDescription, "SizeHeight", 350, 0, 100);
+            animation.Looping = false;
+            animation.Play();
+        }
+
+        public void SetNormal()
+        {
+            ItemBackground.BackgroundColor = Color.Red;
+            animation.AnimateTo(ItemBackground, "SizeWidth", 300, 0, 100);
+            animation.AnimateTo(ItemBackground, "SizeHeight", 700, 0, 100);
+            animation.AnimateTo(ItemPoster, "SizeWidth", 300, 0, 100);
+            animation.AnimateTo(ItemPoster, "SizeHeight", 438, 0, 100);
+            animation.AnimateTo(ItemTitle, "SizeWidth", 300, 0, 100);
+            animation.AnimateTo(ItemDescription, "SizeWidth", 300, 0, 100);
+            animation.AnimateTo(ItemDescription, "SizeHeight", 50, 0, 100);
+            animation.Looping = false;
+            animation.Play();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest1.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest1.xaml.cs
new file mode 100644 (file)
index 0000000..1bda94b
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest1 : ContentPage
+    {
+        void OnShowBarRadioChanged(object sender, SelectedChangedEventArgs e)
+        {
+            ColView.HideScrollbar = !(e.IsSelected);
+        }
+
+        public CollectionViewTest1()
+        {
+            InitializeComponent();
+            BindingContext = new TestSourceModel();
+            var RadioGroup = new RadioButtonGroup();
+            RadioGroup.Add(ShowBar);
+            RadioGroup.Add(HideBar);
+
+            ColView.ItemTemplate = new DataTemplate(() =>
+                {
+                    var item = new RecyclerViewItem()
+                    {
+                        HeightSpecification = LayoutParamPolicies.MatchParent,
+                        WidthSpecification = 200,
+                    };
+                    item.SetBinding(View.BackgroundColorProperty, "BgColor");
+                    var label = new TextLabel()
+                    {
+                        ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                        PivotPoint = Tizen.NUI.PivotPoint.Center,
+                        PositionUsesPivotPoint = true,
+                    };
+                    label.PixelSize = 30;
+                    label.SetBinding(TextLabel.TextProperty, "Index");
+                    item.Add(label);
+
+                    return item;
+                });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest10.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest10.xaml.cs
new file mode 100644 (file)
index 0000000..af5bb53
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright(c) 2021 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 System.Collections;
+using System.Collections.ObjectModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest10 : ContentPage
+    {
+        int addCount = 0;
+        public ObservableCollection<TestItem> source;
+        void AddItemClicked(object sender, ClickedEventArgs e)
+        {
+            // Add item in the source
+            source.Add(new TestItem(addCount, $"Test Item [{addCount}]", Color.Red));
+            addCount++;
+        }
+        void RemoveItemClicked(object sender, ClickedEventArgs e)
+        {
+            // Removed selected item from the source
+            if (ColView.SelectedItem != null)
+                source.Remove((TestItem)ColView.SelectedItem);
+        }
+        void RemoveAllClicked(object sender, ClickedEventArgs e)
+        {
+            // Remove All items in the source
+            source.Clear();
+            Console.WriteLine("Source clear is Clicked");
+        }
+
+        public CollectionViewTest10()
+        {
+            InitializeComponent();
+
+            // Empty Source
+            source = new ObservableCollection<TestItem>();
+            ColView.ItemsSource = source;
+            ColView.ItemTemplate = new DataTemplate(() =>
+            {
+                var item = new DefaultLinearItem()
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                };
+                item.Label.SetBinding(TextLabel.TextProperty, "Name");
+
+                return item;
+            });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest10Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest10Example.cs
new file mode 100644 (file)
index 0000000..7ff7315
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest10Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest10 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest10();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest1Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest1Example.cs
new file mode 100644 (file)
index 0000000..428ebf8
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest1Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest1 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest1();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest2.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest2.xaml.cs
new file mode 100644 (file)
index 0000000..c8d8ac0
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest2 : ContentPage
+    {
+        void OnShowBarRadioChanged(object sender, SelectedChangedEventArgs e)
+        {
+            ColView.HideScrollbar = !(e.IsSelected);
+        }
+
+        public CollectionViewTest2()
+        {
+            InitializeComponent();
+            BindingContext = new TestSourceModel();
+
+            var RadioGroup = new RadioButtonGroup();
+            RadioGroup.Add(ShowBar);
+            RadioGroup.Add(HideBar);
+
+            ColView.ItemTemplate = new DataTemplate(() =>
+                {
+                    var item = new RecyclerViewItem()
+                    {
+                        WidthSpecification = LayoutParamPolicies.MatchParent,
+                        HeightSpecification = 200,
+                    };
+                    item.SetBinding(View.BackgroundColorProperty, "BgColor");
+                    var label = new TextLabel()
+                    {
+                        ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                        PivotPoint = Tizen.NUI.PivotPoint.Center,
+                        PositionUsesPivotPoint = true,
+                    };
+                    label.PixelSize = 30;
+                    label.SetBinding(TextLabel.TextProperty, "Index");
+                    item.Add(label);
+
+                    return item;
+                });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest2Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest2Example.cs
new file mode 100644 (file)
index 0000000..19033c5
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest2Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest2 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest2();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest3.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest3.xaml.cs
new file mode 100644 (file)
index 0000000..c61d428
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest3 : ContentPage
+    {
+        public CollectionViewTest3()
+        {
+            InitializeComponent();
+            BindingContext = new TestSourceModel();
+            var winSize = NUIApplication.GetDefaultWindow().WindowSize;
+            var itemSize = (winSize.Width / 2);
+
+            ColView.ItemTemplate = new DataTemplate(() =>
+            {
+                var item = new RecyclerViewItem()
+                {
+                    WidthSpecification = itemSize,
+                    HeightSpecification = 200,
+                };
+                item.SetBinding(View.BackgroundColorProperty, "BgColor");
+                var label = new TextLabel()
+                {
+                    ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                    PivotPoint = Tizen.NUI.PivotPoint.Center,
+                    PositionUsesPivotPoint = true,
+                };
+                label.PixelSize = 30;
+                label.SetBinding(TextLabel.TextProperty, "Index");
+                item.Add(label);
+
+                return item;
+            });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest3Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest3Example.cs
new file mode 100644 (file)
index 0000000..61524cc
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest3Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest3 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest3();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest4.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest4.xaml.cs
new file mode 100644 (file)
index 0000000..530f5a4
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest4 : ContentPage
+    {
+        DataTemplate LinearTemplate = new DataTemplate(() =>
+        {
+            var item = new RecyclerViewItem()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = 200,
+            };
+            item.SetBinding(View.BackgroundColorProperty, "BgColor");
+            var label = new TextLabel()
+            {
+                ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                PivotPoint = Tizen.NUI.PivotPoint.Center,
+                PositionUsesPivotPoint = true,
+            };
+            label.PixelSize = 30;
+            label.SetBinding(TextLabel.TextProperty, "Index");
+            item.Add(label);
+
+            return item;
+        });
+        DataTemplate GridTemplate = new DataTemplate(() =>
+        {
+            var item = new RecyclerViewItem()
+            {
+                WidthSpecification = (NUIApplication.GetDefaultWindow().WindowSize.Width / 2),
+                HeightSpecification = 200,
+            };
+            item.SetBinding(View.BackgroundColorProperty, "BgColor");
+            var label = new TextLabel()
+            {
+                ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                PivotPoint = Tizen.NUI.PivotPoint.Center,
+                PositionUsesPivotPoint = true,
+            };
+            label.PixelSize = 30;
+            label.SetBinding(TextLabel.TextProperty, "Index");
+            item.Add(label);
+
+            return item;
+        });
+
+        void OnGridLayouterRadioChanged(object sender, SelectedChangedEventArgs e)
+        {
+            if (e.IsSelected)
+            {
+                ColView.ItemTemplate = GridTemplate;
+                ColView.ItemsLayouter = new GridLayouter();
+            }
+            else
+            {
+                ColView.ItemTemplate = LinearTemplate;
+                ColView.ItemsLayouter = new LinearLayouter();
+            }
+        }
+
+        public CollectionViewTest4()
+        {
+            InitializeComponent();
+            BindingContext = new TestSourceModel();
+
+            var RadioGroup = new RadioButtonGroup();
+            RadioGroup.Add(Linear);
+            RadioGroup.Add(Grid);
+
+            ColView.ItemTemplate = LinearTemplate;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest4Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest4Example.cs
new file mode 100644 (file)
index 0000000..6d7845e
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest4Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest4 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest4();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest5.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest5.xaml.cs
new file mode 100644 (file)
index 0000000..0a811aa
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright(c) 2021 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.Collections.ObjectModel;
+using System.ComponentModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest5 : ContentPage
+    {
+        TestItem item10;
+        ObservableCollection<TestItem> source;
+        void OnSelect10Clicked(object sender, ClickedEventArgs e)
+        {
+            ColView.SelectedItem = item10;
+        }
+
+        void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            TestItem SelectedItem = null;
+            string message;
+            foreach(TestItem item in e.CurrentSelection)
+            {
+                Console.WriteLine("Selected Item {0}", item?.GetHashCode());
+                SelectedItem = item;
+            }
+
+            if (source == null)
+            {
+                message = "Source is NULL";
+            }
+            else
+            {
+                int index = source.IndexOf(SelectedItem);
+                message = index + " was Selected";
+            }
+
+            var btn = new Button() { Text = "Ok", };
+            btn.Clicked += (object s, ClickedEventArgs args) =>
+            {
+                Navigator?.Pop();
+            };
+
+            Console.WriteLine(message);
+            DialogPage.ShowAlertDialog("Selected", message, btn);
+        }
+
+        public CollectionViewTest5()
+        {
+            InitializeComponent();
+            var MyModel = new TestSourceModel();
+            item10 = MyModel.TestSource[10];
+
+            ColView.ItemsSource = source = MyModel.TestSource;
+            ColView.ItemTemplate = new DataTemplate(() =>
+            {
+                var item = new RecyclerViewItem()
+                {
+                    HeightSpecification = LayoutParamPolicies.MatchParent,
+                    WidthSpecification = 200,
+                };
+                item.SetBinding(View.BackgroundColorProperty, "BgColor");
+                var label = new TextLabel()
+                {
+                    ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                    PivotPoint = Tizen.NUI.PivotPoint.Center,
+                    PositionUsesPivotPoint = true,
+                };
+                label.PixelSize = 30;
+                label.SetBinding(TextLabel.TextProperty, "Index");
+                item.Add(label);
+
+                return item;
+            });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest5Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest5Example.cs
new file mode 100644 (file)
index 0000000..9f9437c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest5Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest5 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest5();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest6.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest6.xaml.cs
new file mode 100644 (file)
index 0000000..e7a9020
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+ * Copyright(c) 2021 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.Collections.ObjectModel;
+using System.ComponentModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest6 : ContentPage
+    {
+        DataTemplate LinearTemplate = new DataTemplate(() =>
+        {
+            var item = new RecyclerViewItem()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = 100,
+            };
+            item.SetBinding(View.BackgroundColorProperty, "BgColor");
+            var label = new TextLabel()
+            {
+                ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                PivotPoint = Tizen.NUI.PivotPoint.Center,
+                PositionUsesPivotPoint = true,
+            };
+            label.PixelSize = 30;
+            label.SetBinding(TextLabel.TextProperty, "Index");
+            item.Add(label);
+
+            return item;
+        });
+        DataTemplate GridTemplate = new DataTemplate(() =>
+        {
+            var item = new RecyclerViewItem()
+            {
+                WidthSpecification = (NUIApplication.GetDefaultWindow().WindowSize.Width / 2),
+                HeightSpecification = 100,
+            };
+            item.SetBinding(View.BackgroundColorProperty, "BgColor");
+            var label = new TextLabel()
+            {
+                ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                PivotPoint = Tizen.NUI.PivotPoint.Center,
+                PositionUsesPivotPoint = true,
+            };
+            label.PixelSize = 30;
+            label.SetBinding(TextLabel.TextProperty, "Index");
+            item.Add(label);
+
+            return item;
+        });
+
+        ObservableCollection<TestItem> source;
+        bool headerClicked;
+        int clickedCount;
+        bool footerClicked;
+        bool layouterClicked;
+        bool srcClicked;
+
+        void HeaderBtnClicked(object sender, ClickedEventArgs e)
+        {
+            headerClicked = !headerClicked;
+            if (headerClicked)
+            {
+                var item = new RecyclerViewItem()
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                    HeightSpecification = 100,
+                    BackgroundColor = Color.Grey,
+                };
+                var label = new TextLabel()
+                {
+                    PixelSize = 20,
+                    Text = clickedCount.ToString(),
+                    VerticalAlignment = VerticalAlignment.Center,
+                    HorizontalAlignment = HorizontalAlignment.Begin,
+                    PositionUsesPivotPoint = true,
+                    ParentOrigin = Tizen.NUI.ParentOrigin.CenterLeft,
+                    PivotPoint = Position.PivotPointCenterLeft,
+                };
+                item.Add(label);
+                clickedCount++;
+
+                ColView.Header = item;
+            }
+            else
+            {
+                ColView.Header = null;
+            }
+        }
+        void FooterBtnClicked(object sender, ClickedEventArgs e)
+        {
+            footerClicked = !footerClicked;
+            if (footerClicked)
+            {
+                var item = new RecyclerViewItem()
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                    HeightSpecification = 100,
+                    BackgroundColor = Color.White,
+                };
+                var label = new TextLabel()
+                {
+                    PixelSize = 20,
+                    Text = clickedCount.ToString(),
+                    VerticalAlignment = VerticalAlignment.Center,
+                    HorizontalAlignment = HorizontalAlignment.Begin,
+                    PositionUsesPivotPoint = true,
+                    ParentOrigin = Tizen.NUI.ParentOrigin.CenterLeft,
+                    PivotPoint = Position.PivotPointCenterLeft,
+                };
+                item.Add(label);
+                clickedCount++;
+
+                ColView.Footer = item;
+            }
+            else
+            {
+                ColView.Footer = null;
+            }
+        }
+
+        void LayouterBtnClicked(object sender, ClickedEventArgs e)
+        {
+            layouterClicked = !layouterClicked;
+            if (layouterClicked)
+            {
+                ColView.ItemTemplate = GridTemplate;
+                ColView.ItemsLayouter = new GridLayouter();
+            }
+            else
+            {
+                ColView.ItemTemplate = LinearTemplate;
+                ColView.ItemsLayouter = new LinearLayouter();
+            }
+        }
+
+        void SrcBtnClicked(object sender, ClickedEventArgs e)
+        {
+            srcClicked = !srcClicked;
+            if (srcClicked)
+            {
+               ColView.ItemsSource = null;
+            }
+            else
+            {
+               ColView.ItemsSource = source;
+            }
+        }
+
+
+        public CollectionViewTest6()
+        {
+            InitializeComponent();
+
+            var MyModel = new TestSourceModel(20);
+            ColView.ItemsSource = source = MyModel.TestSource;
+            ColView.ItemTemplate = LinearTemplate;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest6Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest6Example.cs
new file mode 100644 (file)
index 0000000..1740838
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest6Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest6 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest6();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest7.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest7.xaml.cs
new file mode 100644 (file)
index 0000000..47a2621
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * Copyright(c) 2021 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.Collections.ObjectModel;
+using System.ComponentModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest7 : ContentPage
+    {
+        void OnScrolling(object sender, ScrollEventArgs e)
+        {
+            ObservableCollection<TestItem> source = ColView.ItemsSource as ObservableCollection<TestItem>;
+            if (source == null) return;
+            //Reached Bound of Scroll
+            if (e.ScrollPosition.Y == (ColView.ContentContainer.SizeHeight - ColView.SizeHeight))
+            {
+                int count = source.Count;
+                var Rand = new Random();
+                for (int i = count; i < count + 20; i++)
+                {
+                    source.Add(new TestItem(i,
+                                            "Test Item",
+                                            new Color(((float)(Rand.Next(255))/255),
+                                                      ((float)(Rand.Next(255))/255),
+                                                      ((float)(Rand.Next(255))/255), 1)));
+                }
+            }
+        }
+
+        public CollectionViewTest7()
+        {
+            InitializeComponent();
+            BindingContext = new TestSourceModel(40);
+
+            ColView.ItemTemplate = new DataTemplate(() =>
+            {
+                var item = new RecyclerViewItem()
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                    HeightSpecification = 100,
+                };
+                item.SetBinding(View.BackgroundColorProperty, "BgColor");
+                var label = new TextLabel()
+                {
+                    ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                    PivotPoint = Tizen.NUI.PivotPoint.Center,
+                    PositionUsesPivotPoint = true,
+                };
+                label.PixelSize = 30;
+                label.SetBinding(TextLabel.TextProperty, "Index");
+                item.Add(label);
+
+                return item;
+            });
+            // Currently ScrollableBase only support Scrolling and ScrollOutOfBound event.
+            ColView.Scrolling += OnScrolling;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest7Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest7Example.cs
new file mode 100644 (file)
index 0000000..5aab51b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest7Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest7 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest7();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest8.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest8.xaml.cs
new file mode 100644 (file)
index 0000000..d81a3cc
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Copyright(c) 2021 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.Collections.ObjectModel;
+using System.ComponentModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest8 : ContentPage
+    {
+        public CollectionViewTest8()
+        {
+            InitializeComponent();
+            BindingContext = new TestSourceModel(40);
+
+            var customStyle = new RecyclerViewItemStyle()
+            {
+                BackgroundColor = new Selector<Color>()
+                {
+                    Normal = Color.White,
+                    Pressed = Color.Red,
+                    Selected = Color.Blue,
+                    Disabled = Color.Grey,
+                },
+            };
+
+            ColView.ItemTemplate = new DataTemplate(() =>
+            {
+                var item = new RecyclerViewItem(customStyle)
+                {
+                    WidthSpecification = 100,
+                    HeightSpecification = LayoutParamPolicies.MatchParent,
+                };
+                var label = new TextLabel()
+                {
+                    ParentOrigin = Tizen.NUI.ParentOrigin.Center,
+                    PivotPoint = Tizen.NUI.PivotPoint.Center,
+                    PositionUsesPivotPoint = true,
+                };
+                label.PixelSize = 30;
+                label.SetBinding(TextLabel.TextProperty, "Index");
+                item.Add(label);
+
+                return item;
+            });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest8Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest8Example.cs
new file mode 100644 (file)
index 0000000..b3e02f4
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest8Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest8 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest8();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest9.xaml.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest9.xaml.cs
new file mode 100644 (file)
index 0000000..aa62204
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * Copyright(c) 2021 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.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class CollectionViewTest9 : ContentPage
+    {
+        void OnCheckClicked(object sender, ClickedEventArgs e)
+        {
+            CheckBox check = sender as CheckBox;
+            if (check == null) return;
+            if (check.BindingContext == null) return;
+            var item = check.BindingContext;
+            if (item is TestItem tItem)
+            {
+                tItem.IsSelected = check.IsSelected;
+                Console.WriteLine($"On Clicked {tItem.Index} : {tItem.IsSelected}");
+            }
+
+        }
+
+        void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            List<object> cur = new List<object>(e.CurrentSelection);
+
+            foreach(TestItem item in e.PreviousSelection)
+            {
+                if (cur.Contains(item)) continue;
+                item.IsSelected = false;
+                Console.WriteLine($"On Selection {item.Index} : {item.IsSelected}");
+            }
+            foreach(TestItem item in cur)
+            {
+                item.IsSelected = true;
+                Console.WriteLine($"On Selection {item.Index} : {item.IsSelected}");
+            }
+        }
+
+        public CollectionViewTest9()
+        {
+            InitializeComponent();
+            BindingContext = new GroupTestSourceModel(5, 5);
+
+            ColView.ItemTemplate = new DataTemplate(() =>
+            {
+                var item = new DefaultLinearItem()
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                };
+                item.Label.SetBinding(TextLabel.TextProperty, "Name");
+
+                var icon = new View()
+                {
+                    WidthSpecification = 60,
+                    HeightSpecification = 60
+                };
+                icon.SetBinding(BackgroundColorProperty, "BgColor");
+                item.Icon = icon;
+
+                var check = new CheckBox()
+                {
+                    WidthSpecification = 60,
+                    HeightSpecification = 60,
+                };
+                check.SetBinding(Button.IsSelectedProperty, "IsSelected");
+                check.Clicked += OnCheckClicked;
+                item.Extra = check;
+
+                return item;
+            });
+            ColView.GroupHeaderTemplate = new DataTemplate(() =>
+            {
+                var header = new DefaultTitleItem()
+                {
+                    WidthSpecification = LayoutParamPolicies.MatchParent,
+                };
+                header.Label.SetBinding(TextLabel.TextProperty, "GroupName");
+
+                return header;
+            });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest9Example.cs b/test/NUITizenGallery/Examples/CollectionViewTest/CollectionViewTest9Example.cs
new file mode 100644 (file)
index 0000000..f1030a5
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CollectionViewTest9Example : IExample
+    {
+        private Window window;
+        private CollectionViewTest9 page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new CollectionViewTest9();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CollectionViewTest/TestSource.cs b/test/NUITizenGallery/Examples/CollectionViewTest/TestSource.cs
new file mode 100644 (file)
index 0000000..979be75
--- /dev/null
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using Tizen.NUI;
+using Tizen.NUI.Binding;
+
+public class TestItem : INotifyPropertyChanged
+{
+    int index;
+    string name;
+    Color color;
+    bool isSelected;
+    public event PropertyChangedEventHandler PropertyChanged;
+    private void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }
+    public TestItem(int itemIndex, string itemName, Color itemColor) {  Index = itemIndex; Name = itemName; BgColor = itemColor; IsSelected=false; }
+    public int Index
+    {
+        get => index;
+        set { index = value; OnPropertyChanged("Index"); }
+    }
+    public string Name
+    {
+        get => name;
+        set { name = value; OnPropertyChanged("Name"); }
+    }
+    public Color BgColor
+    {
+        get => color;
+        set { color = value; OnPropertyChanged("BgColor"); }
+    }
+    public bool IsSelected
+    {
+        get => isSelected;
+        set { isSelected = value; OnPropertyChanged("IsSelected");}
+    }
+}
+
+public class GroupItem : ObservableCollection<TestItem>
+{
+    int groupIndex;
+    string groupName;
+    private void OnPropertyChanged(string propertyName) { OnPropertyChanged( new PropertyChangedEventArgs(propertyName)); }
+    public GroupItem(int itemIndex, string itemName) {  GroupIndex = itemIndex; GroupName = itemName; }
+    public int GroupIndex
+    {
+        get => groupIndex;
+        set { groupIndex = value; OnPropertyChanged("GroupIndex"); }
+    }
+    public string GroupName
+    {
+        get => groupName;
+        set { groupName = value; OnPropertyChanged("GroupName"); }
+    }
+}
+
+public class TestSourceModel
+{
+    public ObservableCollection<TestItem> TestSource {get; private set; } = new ObservableCollection<TestItem>();
+
+    public TestSourceModel(int count = 50)
+    {
+        CreateTestSource(count);
+    }
+
+    public void CreateTestSource(int count)
+    {
+        var Rand = new Random();
+
+        for (int i = 0; i < count; i++)
+            TestSource.Add(new TestItem(i, $"Test Item [{i}]", new Color(((float)(Rand.Next(255))/255), ((float)(Rand.Next(255))/255), ((float)(Rand.Next(255))/255), 1)));
+    }
+}
+
+public class GroupTestSourceModel
+{    public ObservableCollection<GroupItem> TestSource {get; private set; } = new ObservableCollection<GroupItem>();
+    public GroupTestSourceModel(int groupCount = 10, int childCount = 10)
+    {
+        CreateGroupTestSource(groupCount, childCount);
+    }
+    public void CreateGroupTestSource(int groupCount, int chlidCount)
+    {
+        var Rand = new Random();
+
+        for (int i = 0; i < groupCount; i++)
+        {
+            var group = new GroupItem(i, $"Test Group [{i}]");
+            for (int j = 0; j < chlidCount; j++)
+            {
+                group.Add(new TestItem(j, $"Test Item [{i}, {j}]", new Color(((float)(Rand.Next(255))/255), ((float)(Rand.Next(255))/255), ((float)(Rand.Next(255))/255), 1)));
+            }
+            TestSource.Add(group);
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ContentPageTest/ContentPageTest.cs b/test/NUITizenGallery/Examples/ContentPageTest/ContentPageTest.cs
new file mode 100644 (file)
index 0000000..8491872
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ContentPageTest : IExample
+    {
+        Window window;
+        Navigator navigator;
+        ContentPageTestPage1 page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new ContentPageTestPage1();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ContentPageTest/ContentPageTestPage1.xaml.cs b/test/NUITizenGallery/Examples/ContentPageTest/ContentPageTestPage1.xaml.cs
new file mode 100644 (file)
index 0000000..a816c12
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ContentPageTestPage1 : ContentPage
+    {
+        public ContentPageTestPage1()
+        {
+            InitializeComponent();
+
+            button.Clicked += ButtonClicked;
+        }
+
+        private void ButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Navigator?.Push(new ContentPageTestPage2());
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ContentPageTest/ContentPageTestPage2.xaml.cs b/test/NUITizenGallery/Examples/ContentPageTest/ContentPageTestPage2.xaml.cs
new file mode 100644 (file)
index 0000000..e4ba153
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ContentPageTestPage2 : ContentPage
+    {
+        public ContentPageTestPage2()
+        {
+            InitializeComponent();
+
+            button.Clicked += ButtonClicked;
+        }
+
+        private void ButtonClicked(object sender, ClickedEventArgs args)
+        {
+            Navigator?.Pop();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CustomCellTest/CustomCellListItem.cs b/test/NUITizenGallery/Examples/CustomCellTest/CustomCellListItem.cs
new file mode 100644 (file)
index 0000000..4e49c40
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class CustomCellListItem : View
+    {
+        private readonly string ResourcePath = "/opt/usr/globalapps/org.tizen.example.NUITizenGallery/res/images/";
+        public CustomCellListItem(string title)
+        {
+            InitializeComponent();
+
+            Image.SetImage(ResourcePath + "tizen.png");
+            Title.Text = title;
+
+            TextContent.TextColor = Color.Gray;
+            TextContent.MultiLine = true;
+            TextContent.Text = "ABCDEFG\nBVGFGH!!!\nASDASD";
+            
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CustomCellTest/CustomCellTest.cs b/test/NUITizenGallery/Examples/CustomCellTest/CustomCellTest.cs
new file mode 100644 (file)
index 0000000..b3ff764
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class CustomCellTestP: IExample
+    {
+        Window window;
+        CustomCellTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new CustomCellTestPage();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/CustomCellTest/CustomCellTestPage.xaml.cs b/test/NUITizenGallery/Examples/CustomCellTest/CustomCellTestPage.xaml.cs
new file mode 100644 (file)
index 0000000..abd61c9
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class CustomCellTestPage : View
+    {
+        private readonly int ScrollTime = 500;
+        private readonly int TestItems = 20;
+        public CustomCellTestPage()
+        {
+            InitializeComponent();
+
+            //Application Linear Layout
+            LinearLayout layout = new LinearLayout();
+            layout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            layout.LinearAlignment = LinearLayout.Alignment.Center;
+            layout.Padding = new Extents(5, 5, 5, 5);
+            layout.CellPadding = new Size2D(5, 5);
+            this.Layout = layout;
+
+            ListView.BackgroundColor = Color.White;
+            ListView.Size2D = new Size2D(720, 1280);
+
+            //Set linear layout for scrollable widget
+            LinearLayout scrollLayout = new LinearLayout();
+            scrollLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            scrollLayout.LinearAlignment = LinearLayout.Alignment.Center;
+            scrollLayout.CellPadding = new Size2D(5, 5);
+            ListView.Layout = scrollLayout;
+            ListView.ScrollDuration = ScrollTime;
+            this.Add(ListView);
+
+            var items = new CustomCellListItem[TestItems];
+            for (int i = 0; i < TestItems; i++) {
+                items[i] = new CustomCellListItem("item: " + i.ToString());
+                ListView.Add(items[i]);
+            }
+        }
+
+        private void OnScrollBeginClicked(object sender, ClickedEventArgs args)
+        {
+            ListView.ScrollToIndex(0);
+        }
+
+        private void OnScrollEndClicked(object sender, ClickedEventArgs args)
+        {
+            ListView.ScrollToIndex(199);
+        }
+
+        private void OnScrollMiddleClicked(object sender, ClickedEventArgs args)
+        {
+            ListView.ScrollToIndex(100);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/DatePickerTest/DatePickerTest.cs b/test/NUITizenGallery/Examples/DatePickerTest/DatePickerTest.cs
new file mode 100644 (file)
index 0000000..bfc558a
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class DatePickerTest : IExample
+    {
+        private Window window;
+        private DatePickerTestPage page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new DatePickerTestPage();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/DatePickerTest/DatePickerTest.xaml.cs b/test/NUITizenGallery/Examples/DatePickerTest/DatePickerTest.xaml.cs
new file mode 100644 (file)
index 0000000..dbfe46a
--- /dev/null
@@ -0,0 +1,73 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+
+namespace NUITizenGallery
+{
+    public partial class DatePickerTestPage : ContentPage
+    {
+        private DateTime date;
+        private DatePicker datePicker;
+
+        private void dateButtonClicked(object sender, ClickedEventArgs e)
+        {
+            datePicker = new DatePicker()
+            {
+                Size = new Size(600, 339),
+                Date = date,
+            };
+
+            var btn1 = new Button() { Text = "Set", };
+            btn1.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                date = datePicker.Date;
+                text1.Text=datePicker.Date.Year + "/" + datePicker.Date.Month + "/" + datePicker.Date.Day;
+                Navigator?.Pop();
+            };
+
+            var btn2 = new Button() { Text = "Cancel", };
+            btn2.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            View[] actions = {btn1, btn2};
+            var dialogPage = new DialogPage()
+            {
+                Content = new AlertDialog()
+                {
+                    Title = "Set Date",
+                    Content = datePicker,
+                    Actions =  actions,
+                },
+            };
+
+            NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(dialogPage);
+        }
+
+        private void setMinButtonClicked(object sender, ClickedEventArgs e)
+        {
+            text1.Text="1970/1/1";
+            date = new DateTime(1970, 1, 1);
+        }
+
+        private void setMaxButtonClicked(object sender, ClickedEventArgs e)
+        {
+            text1.Text="2100/12/31";
+            date = new DateTime(2100, 12, 31);
+        }
+
+        public DatePickerTestPage()
+        {
+            InitializeComponent();
+            date = DateTime.Now;
+            text1.Text= date.Year + "/" + date.Month + "/" + date.Day;
+            dateButton.Clicked += dateButtonClicked;
+            setMinButton.Clicked += setMinButtonClicked;
+            setMaxButton.Clicked += setMaxButtonClicked;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EditorTest1/EditorTest1.cs b/test/NUITizenGallery/Examples/EditorTest1/EditorTest1.cs
new file mode 100644 (file)
index 0000000..ae4bdf7
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class EditorTest1 : IExample
+    {
+        Window window;
+        Navigator navigator;
+        EditorTest1Page page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new EditorTest1Page();
+            navigator.Push(page);
+
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EditorTest1/EditorTest1.xaml.cs b/test/NUITizenGallery/Examples/EditorTest1/EditorTest1.xaml.cs
new file mode 100644 (file)
index 0000000..aa6545f
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+namespace NUITizenGallery
+{
+    public partial class EditorTest1Page : ContentPage
+    {
+        public Size2D viewFullSize;
+
+        public EditorTest1Page()
+        {
+            InitializeComponent();
+            viewFullSize = new Size2D(0, 0);
+
+            // Text set to TextEditor
+            editor.Text = "This test is for testing Editor with very long text. This software is the confidential and proprietary information of Samsung Electronics, Inc. You shall not disclose such Confidential Information and shall use it only in accordance with the terms of the license agreement you entered into with Samsung.";
+            editor.Margin = new Extents(20, 20, 20, 0);
+
+            // Text set to TextField
+            field.Text = "Please, input any sentence.";
+            field.MaxLength = 999;
+
+            underline.Margin = new Extents(20, 20, 5, 20);
+            underline2.Margin = new Extents(0, 0, 0, 10);
+
+            // Set focus highlight to underline 
+            editor.FocusGained += (s, e) =>
+            {
+                underline.BackgroundColor = Color.Cyan;
+            };
+
+            editor.FocusLost += (s, e) =>
+            {
+                underline.BackgroundColor = Color.Gray;
+            };
+
+            field.FocusGained += (s, e) =>
+            {
+                underline2.BackgroundColor = Color.Cyan;
+            };
+
+            field.FocusLost += (s, e) =>
+            {
+                underline2.BackgroundColor = Color.Gray;
+            };
+
+            // View size adjustment from ime state
+            InputMethodContext imeEditor = editor.GetInputMethodContext();
+            imeEditor.StatusChanged += OnImeStatusChanged;
+            InputMethodContext imeField = field.GetInputMethodContext();
+            imeField.StatusChanged += OnImeStatusChanged;
+        }
+
+        private void OnImeStatusChanged(object sender, InputMethodContext.StatusChangedEventArgs e)
+        {
+            if (e.StatusChanged)
+            {
+                // When the virtual keyboard (IME) is shown, StatusChanged is true
+                var resizedIME = sender as InputMethodContext;
+                Rectangle rectangle = resizedIME.GetInputMethodArea();
+
+                if (rectangle.Height > viewFullSize.Height)
+                {
+                    viewFullSize = (Size2D)mainView.Size2D.Clone();
+                }
+                
+                int width = viewFullSize.Width;
+                int height = viewFullSize.Height - rectangle.Height;
+                mainView.Size2D = new Size2D(width, height);
+            }
+            else
+            {
+                mainView.Size2D = viewFullSize;
+            }
+
+            // Set bounding box for text decoration
+            // This prevents the cursor handle from leaving the valid area.
+            field.DecorationBoundingBox = new Rectangle(mainView.Position2D.X, mainView.Position2D.Y, mainView.Size2D.Width, mainView.Size2D.Height);
+            editor.DecorationBoundingBox = new Rectangle(mainView.Position2D.X, mainView.Position2D.Y, mainView.Size2D.Width, mainView.Size2D.Height);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EditorTest2/EditorTest2.cs b/test/NUITizenGallery/Examples/EditorTest2/EditorTest2.cs
new file mode 100644 (file)
index 0000000..a52f2d0
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class EditorTest2 : IExample
+    {
+        Window window;
+        Navigator navigator;
+        EditorTest2Page page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new EditorTest2Page();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EditorTest2/EditorTest2.xaml.cs b/test/NUITizenGallery/Examples/EditorTest2/EditorTest2.xaml.cs
new file mode 100644 (file)
index 0000000..fbb9eed
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+namespace NUITizenGallery
+{
+    public partial class EditorTest2Page : ContentPage
+    {
+        public Size2D viewFullSize;
+
+        public EditorTest2Page()
+        {
+            InitializeComponent();
+            viewFullSize = new Size2D(0, 0);
+
+            // Text set to TextEditor
+            editor.Text = "Event result";
+            editor.Margin = new Extents(20, 20, 20, 0);
+
+            // Text set to TextEditor
+            editor2.Text = "Input";
+            editor2.Margin = new Extents(20, 20, 20, 0);
+
+            // TextChanged Event
+            editor2.TextChanged += OnTextEditorTextChanged;
+
+            underline.Margin = new Extents(20, 20, 5, 20);
+            underline2.Margin = new Extents(20, 20, 0, 10);
+
+            // Set focus highlight to underline 
+            editor.FocusGained += (s, e) =>
+            {
+                underline.BackgroundColor = Color.Cyan;
+            };
+
+            editor.FocusLost += (s, e) =>
+            {
+                underline.BackgroundColor = Color.Gray;
+            };
+
+            editor2.FocusGained += (s, e) =>
+            {
+                underline2.BackgroundColor = Color.Cyan;
+            };
+
+            editor2.FocusLost += (s, e) =>
+            {
+                underline2.BackgroundColor = Color.Gray;
+                editor.Text = "Editing completed";
+            };
+
+            // View size adjustment from ime state
+            InputMethodContext imeEditor = editor.GetInputMethodContext();
+            imeEditor.StatusChanged += OnImeStatusChanged;
+            InputMethodContext imeEditor2 = editor2.GetInputMethodContext();
+            imeEditor2.StatusChanged += OnImeStatusChanged;
+        }
+
+        private void OnTextEditorTextChanged(object sender, TextEditor.TextChangedEventArgs e)
+        {
+            editor.Text = editor2.Text;
+            editor.VerticalScrollPosition = 9999;
+        }
+
+        private void OnImeStatusChanged(object sender, InputMethodContext.StatusChangedEventArgs e)
+        {
+            if (e.StatusChanged)
+            {
+                // When the virtual keyboard (IME) is shown, StatusChanged is true
+                var resizedIME = sender as InputMethodContext;
+                Rectangle rectangle = resizedIME.GetInputMethodArea();
+
+                if (rectangle.Height > viewFullSize.Height)
+                {
+                    viewFullSize = (Size2D)mainView.Size2D.Clone();
+                }
+                
+                int width = viewFullSize.Width;
+                int height = viewFullSize.Height - rectangle.Height;
+                mainView.Size2D = new Size2D(width, height);
+            }
+            else
+            {
+                mainView.Size2D = viewFullSize;
+            }
+
+            // Set bounding box for text decoration
+            // This prevents the cursor handle from leaving the valid area.
+            editor.DecorationBoundingBox = new Rectangle(mainView.Position2D.X, mainView.Position2D.Y, mainView.Size2D.Width, mainView.Size2D.Height);
+            editor2.DecorationBoundingBox = new Rectangle(mainView.Position2D.X, mainView.Position2D.Y, mainView.Size2D.Width, mainView.Size2D.Height);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EntryTest1/EntryTest1.cs b/test/NUITizenGallery/Examples/EntryTest1/EntryTest1.cs
new file mode 100644 (file)
index 0000000..ca1dc56
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class EntryTest1 : IExample
+    {
+        Window window;
+        EntryTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new EntryTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EntryTest1/EntryTest1Page.xaml.cs b/test/NUITizenGallery/Examples/EntryTest1/EntryTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..34961ab
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class EntryTest1Page : View
+    {
+        public EntryTest1Page()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EntryTest2/EntryTest2.cs b/test/NUITizenGallery/Examples/EntryTest2/EntryTest2.cs
new file mode 100644 (file)
index 0000000..0920bef
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class EntryTest2 : IExample
+    {
+        Window window;
+        EntryTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new EntryTest2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EntryTest2/EntryTest2Page.xaml.cs b/test/NUITizenGallery/Examples/EntryTest2/EntryTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..13e48c8
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class EntryTest2Page : View
+    {
+        public EntryTest2Page()
+        {
+            InitializeComponent();
+        }
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EntryTest4/EntryTest4.cs b/test/NUITizenGallery/Examples/EntryTest4/EntryTest4.cs
new file mode 100644 (file)
index 0000000..d6b944f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class EntryTest4 : IExample
+    {
+        Window window;
+        EntryTest4Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new EntryTest4Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/EntryTest4/EntryTest4Page.xaml.cs b/test/NUITizenGallery/Examples/EntryTest4/EntryTest4Page.xaml.cs
new file mode 100644 (file)
index 0000000..db7666f
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class EntryTest4Page : View
+    {
+        public EntryTest4Page()
+        {
+            InitializeComponent();
+
+            string resourcesUrl = Tizen.Applications.Application.Current.DirectoryInfo.Resource;
+            string iconUrl = resourcesUrl + "images/clock_tabs_ic_stopwatch.png";
+
+            TabButton firstTabButton = new TabButton()
+            {
+                Text = "FirstPage",
+                IconURL = iconUrl,
+            };
+
+            TabButton secondTabButton = new TabButton()
+            {
+                Text = "SecondPage",
+                IconURL = iconUrl,
+            };
+
+            View firstTabContent = CreateFirstContent();
+            View secondTabContent = CreateSecondContent();
+
+            tabView.AddTab(firstTabButton, firstTabContent);
+            tabView.AddTab(secondTabButton, secondTabContent);
+        }
+
+        private View CreateFirstContent()
+        {
+            TextField textField = new TextField()
+            {
+                Text = "Text field"
+            };
+
+            TextLabel label = new TextLabel()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                Text = "Make an entry focused and then press HW backbutton or enterkey on a keyboard.",
+                MultiLine = true,
+                LineWrapMode = LineWrapMode.Word,
+                BackgroundColor = Color.Blue
+            };
+
+            View topView = new View()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    LinearAlignment = LinearLayout.Alignment.Top
+                },
+            };
+
+            topView.Add(textField);
+            topView.Add(label);
+
+            Button button = new Button()
+            {
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                Text = "Start",
+                PointSize = 8,
+            };
+
+            View bottomView = new View()
+            {
+                SizeHeight = 150f,
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                BackgroundColor = Color.White,
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,
+                },
+            };
+
+            bottomView.Add(button);
+
+            View contentView = new View()
+            {
+                HeightResizePolicy = ResizePolicyType.FillToParent,
+                WidthResizePolicy = ResizePolicyType.FillToParent,
+                BackgroundColor = new Color("#FF66FF"),
+                Layout = new LinearLayout()
+                {
+
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    LinearAlignment = LinearLayout.Alignment.Top,
+                    CellPadding = new Size2D(10, 10)
+                },
+            };
+
+            contentView.Add(topView);
+            contentView.Add(bottomView);
+
+            return contentView;
+        }
+
+        private View CreateSecondContent()
+        {
+            Button test1 = new Button
+            {
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                Text = "Second-1",
+                Weight = 0.35f,
+            };
+
+            Button test2 = new Button
+            {
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                Text = "Second-2",
+                Weight = 0.35f,
+            };
+
+            TextLabel label = new TextLabel
+            {
+                Text = "Can you see two buttons and this label?",
+                MultiLine = true,
+                LineWrapMode = LineWrapMode.Word,
+                Weight = 1.0f,
+            };
+
+            View bsView = new View()
+            {
+                BackgroundColor = Color.White,
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                Layout = new LinearLayout()
+                {
+                    CellPadding = new Size2D(6, 6),
+                    LinearOrientation = LinearLayout.Orientation.Horizontal,
+                    LinearAlignment = LinearLayout.Alignment.End
+                },
+            };
+
+            bsView.Add(test1);
+            bsView.Add(test2);
+            bsView.Add(label);
+
+            View contentView = new View()
+            {
+                HeightResizePolicy = ResizePolicyType.FillToParent,
+                WidthResizePolicy = ResizePolicyType.FillToParent,
+                BackgroundColor = Color.Red,
+            };
+
+            contentView.Add(bsView);
+
+            return contentView;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FlexTest1/FlexTest1.cs b/test/NUITizenGallery/Examples/FlexTest1/FlexTest1.cs
new file mode 100644 (file)
index 0000000..8a8c6e1
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class FlexTest1 : IExample
+    {
+        private Window window;
+        private FlexTest1Page page;
+        
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new FlexTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FlexTest1/FlexTest1.xaml.cs b/test/NUITizenGallery/Examples/FlexTest1/FlexTest1.xaml.cs
new file mode 100644 (file)
index 0000000..b01facb
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class FlexTest1Page : View
+    {
+        public FlexTest1Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/FlexTest2/FlexTest2.cs b/test/NUITizenGallery/Examples/FlexTest2/FlexTest2.cs
new file mode 100644 (file)
index 0000000..6be767c
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class FlexTest2 : IExample
+    {
+        private Window window;
+        private FlexTest2Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new FlexTest2Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FlexTest2/FlexTest2.xaml.cs b/test/NUITizenGallery/Examples/FlexTest2/FlexTest2.xaml.cs
new file mode 100644 (file)
index 0000000..b393044
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class FlexTest2Page : View
+    {
+        public FlexTest2Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/FlexTest3/FlexTest3.cs b/test/NUITizenGallery/Examples/FlexTest3/FlexTest3.cs
new file mode 100644 (file)
index 0000000..73f2e57
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class FlexTest3 : IExample
+    {
+        private Window window;
+        private FlexTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new FlexTest3Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FlexTest3/FlexTest3.xaml.cs b/test/NUITizenGallery/Examples/FlexTest3/FlexTest3.xaml.cs
new file mode 100644 (file)
index 0000000..7c71faa
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class FlexTest3Page : View
+    {
+        public FlexTest3Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/FrameLayoutTest1/FrameLayoutTest1.cs b/test/NUITizenGallery/Examples/FrameLayoutTest1/FrameLayoutTest1.cs
new file mode 100644 (file)
index 0000000..23156dc
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class FrameLayoutTest1 : IExample
+    {
+        Window window;
+        FrameLayoutTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new FrameLayoutTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FrameLayoutTest1/FrameLayoutTest1Page.xaml.cs b/test/NUITizenGallery/Examples/FrameLayoutTest1/FrameLayoutTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..9eeed55
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class FrameLayoutTest1Page : View
+    {
+        public FrameLayoutTest1Page()
+        {
+            InitializeComponent();
+            RelativeLayout.SetLeftTarget(button, parentBox);
+            RelativeLayout.SetRightTarget(button, parentBox);
+            RelativeLayout.SetTopTarget(button, parentBox);
+            RelativeLayout.SetBottomTarget(button, parentBox);
+
+        }
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FrameTest1/FrameTest1.cs b/test/NUITizenGallery/Examples/FrameTest1/FrameTest1.cs
new file mode 100644 (file)
index 0000000..8b8eebf
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class FrameTest1 : IExample
+    {
+        Window window;
+        FrameTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new FrameTest1Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/FrameTest1/FrameTest1.xaml.cs b/test/NUITizenGallery/Examples/FrameTest1/FrameTest1.xaml.cs
new file mode 100644 (file)
index 0000000..a7cb61b
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class FrameTest1Page : View
+    {
+        VisualView FrameView;
+        TextVisual FrameText;
+        public FrameTest1Page()
+        {
+            FrameView = new VisualView()
+            {
+                Size = new Size(500, 100),
+                BackgroundColor = Tizen.NUI.Color.White,
+                BoxShadow = new Shadow(10.0f, new Color(0.2f, 0.2f, 0.2f, 1.0f), new Vector2(5, 5)),
+            };
+
+            FrameText = new TextVisual();
+            FrameText.Text = "Frame With Shadow";
+            FrameText.TextColor = Tizen.NUI.Color.Black;
+            FrameText.PointSize = 10;
+            FrameText.HorizontalAlignment = HorizontalAlignment.Center;
+
+            BorderVisual borderVisual = new BorderVisual();
+            borderVisual.BorderSize = 2.0f;
+            borderVisual.Color = Tizen.NUI.Color.Blue;
+            borderVisual.RelativeSize = new RelativeVector2(1.0f, 1.0f);
+
+            FrameView.AddVisual("_borderVisual", borderVisual);
+            FrameView.AddVisual("_textVisual", FrameText);
+
+            InitializeComponent();
+            Add(FrameView);
+
+            ShadowOnBackground.Clicked += OnShadowOnButtonClicked;
+            ShadowOffBackground.Clicked += OnShadowOffButtonClicked;
+        }
+
+        public void OnShadowOffButtonClicked(object sender, ClickedEventArgs args)
+        {
+            FrameView.BoxShadow = null;
+            FrameText.Text = "Frame with no shadow";
+        }
+
+        public void OnShadowOnButtonClicked(object sender, ClickedEventArgs args)
+        {
+            FrameView.BoxShadow = new Shadow(10.0f, new Color(0.2f, 0.2f, 0.2f, 1.0f), new Vector2(5, 5));
+            FrameText.Text = "Frame with shadow";
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/GridTest1/GridTest1.cs b/test/NUITizenGallery/Examples/GridTest1/GridTest1.cs
new file mode 100755 (executable)
index 0000000..02087b9
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class GridTest1 : IExample
+    {
+        private Window window;
+        private GridTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new GridTest1Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/GridTest1/GridTest1.xaml.cs b/test/NUITizenGallery/Examples/GridTest1/GridTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..f72e5ec
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class GridTest1Page : View
+    {
+        public GridTest1Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/GridTest2/GridTest2.cs b/test/NUITizenGallery/Examples/GridTest2/GridTest2.cs
new file mode 100755 (executable)
index 0000000..d602571
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class GridTest2 : IExample
+    {
+        private Window window;
+        private GridTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new GridTest2Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/GridTest2/GridTest2.xaml.cs b/test/NUITizenGallery/Examples/GridTest2/GridTest2.xaml.cs
new file mode 100755 (executable)
index 0000000..b009759
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class GridTest2Page : View
+    {
+        public GridTest2Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/HelloWorld/HelloWorld.cs b/test/NUITizenGallery/Examples/HelloWorld/HelloWorld.cs
new file mode 100644 (file)
index 0000000..d065c51
--- /dev/null
@@ -0,0 +1,26 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class HelloWorld : IExample
+    {
+        private Window window;
+        private HelloWorldPage page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new HelloWorldPage();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/HelloWorld/HelloWorld.xaml.cs b/test/NUITizenGallery/Examples/HelloWorld/HelloWorld.xaml.cs
new file mode 100644 (file)
index 0000000..b24da4d
--- /dev/null
@@ -0,0 +1,13 @@
+
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class HelloWorldPage : View
+    {
+        public HelloWorldPage()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/IconTest/IconTest.cs b/test/NUITizenGallery/Examples/IconTest/IconTest.cs
new file mode 100644 (file)
index 0000000..c3bf69a
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class IconTest : IExample
+    {
+        private Window window;
+        private IconTestPage page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new IconTestPage();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/IconTest/IconTest.xaml.cs b/test/NUITizenGallery/Examples/IconTest/IconTest.xaml.cs
new file mode 100644 (file)
index 0000000..1b27291
--- /dev/null
@@ -0,0 +1,17 @@
+
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class IconTestPage : View
+    {
+        string ImageURL = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "images/";
+        public IconTestPage()
+        {
+            InitializeComponent();
+            image1.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            image2.ResourceUrl = ImageURL + "NUITizenGallery.png";
+            image3.ResourceUrl = ImageURL + "NUITizenGallery.png";
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageButtonTest/ImageButtonTest.cs b/test/NUITizenGallery/Examples/ImageButtonTest/ImageButtonTest.cs
new file mode 100644 (file)
index 0000000..b38c70a
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ImageButtonTest : IExample
+    {
+        private Window window;
+        private ImageButtonTestPage page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ImageButtonTestPage();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ImageButtonTest/ImageButtonTest.xaml.cs b/test/NUITizenGallery/Examples/ImageButtonTest/ImageButtonTest.xaml.cs
new file mode 100644 (file)
index 0000000..96010d0
--- /dev/null
@@ -0,0 +1,25 @@
+
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class ImageButtonTestPage : View
+    {
+        string ImageURL = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "images/";
+        public ImageButtonTestPage()
+        {
+            InitializeComponent();
+            imageview1.ResourceUrl = ImageURL + "NUITizenGallery.png";
+
+            button1.ControlStateChangedEvent += (o, e) =>
+            {
+                if (e.CurrentState == ControlState.Normal) {
+                    text1.Text = "Normal";
+                }
+                if (e.CurrentState == ControlState.Pressed) {
+                    text1.Text = "Pressed";
+                }   
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest1/ImageTest1.cs b/test/NUITizenGallery/Examples/ImageTest1/ImageTest1.cs
new file mode 100755 (executable)
index 0000000..1b724e3
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ImageTest1 : IExample
+    {
+        private Window window;
+        private ImageTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ImageTest1Page();
+            window.Add(page);          
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ImageTest1/ImageTest1.xaml.cs b/test/NUITizenGallery/Examples/ImageTest1/ImageTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..5ef8769
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ImageTest1Page : View
+    {
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        public ImageTest1Page()
+        {
+            InitializeComponent();
+
+            image1Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage(ResourcePath + "Icon.png");
+            };
+
+            image2Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage(ResourcePath + "b.jpg");
+            };
+
+            image3Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage(ResourcePath + "tizen.png");
+            };
+
+            image4Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage(ResourcePath + "4000x2802.jpg");
+            };
+
+            image5Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage(ResourcePath + "8000x10454.jpg");
+            };
+
+            image6Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
+            };
+
+            image7Btn.Clicked += (o, e) =>
+            {
+                imageView.SetImage(ResourcePath + "picture.png");
+            };
+
+            sliderA.ValueChanged += OnValueChanged;
+            sliderR.ValueChanged += OnValueChanged;
+            sliderG.ValueChanged += OnValueChanged;
+            sliderB.ValueChanged += OnValueChanged;
+        }
+
+        private void OnValueChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            float r, g, b, a;
+            a = sliderA.CurrentValue / 255;
+            r = sliderR.CurrentValue / 255;
+            g = sliderG.CurrentValue / 255;
+            b = sliderB.CurrentValue / 255;
+            imageView.BackgroundColor = new Tizen.NUI.Color(r, g, b, a);
+        }
+    }
+} 
diff --git a/test/NUITizenGallery/Examples/ImageTest2/ImageTest2.cs b/test/NUITizenGallery/Examples/ImageTest2/ImageTest2.cs
new file mode 100755 (executable)
index 0000000..3774f4d
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ImageTest2 : IExample
+    {
+        private Window window;
+        private ImageTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ImageTest2Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest2/ImageTest2.xaml.cs b/test/NUITizenGallery/Examples/ImageTest2/ImageTest2.xaml.cs
new file mode 100755 (executable)
index 0000000..9b3f648
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ImageTest2Page : View
+    {
+        private bool colorChanged = false;
+        public ImageTest2Page()
+        {
+
+            InitializeComponent();
+
+            image1Btn.Clicked += (o, e) =>
+            {
+                imageView.WidthResizePolicy = Tizen.NUI.ResizePolicyType.UseNaturalSize;
+                imageView.HeightResizePolicy = Tizen.NUI.ResizePolicyType.UseNaturalSize;
+            };
+
+            image2Btn.Clicked += (o, e) =>
+            {
+                imageView.HeightResizePolicy = Tizen.NUI.ResizePolicyType.FillToParent;
+            };
+
+            image3Btn.Clicked += (o, e) =>
+            {
+                imageView.HeightResizePolicy = Tizen.NUI.ResizePolicyType.FillToParent;
+                imageView.WidthResizePolicy = Tizen.NUI.ResizePolicyType.FillToParent;
+            };
+
+            image4Btn.Clicked += (o, e) =>
+            {
+                if (colorChanged)
+                {
+                    imgView.BackgroundColor = Tizen.NUI.Color.Transparent;
+                }
+                else
+                {
+                    imgView.BackgroundColor = Tizen.NUI.Color.Red;
+                }
+                colorChanged = !colorChanged;
+            };
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ImageTest3/ImageTest3.cs b/test/NUITizenGallery/Examples/ImageTest3/ImageTest3.cs
new file mode 100755 (executable)
index 0000000..d286081
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ImageTest3 : IExample
+    {
+        private Window window;
+        private ImageTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ImageTest3Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest3/ImageTest3.xaml.cs b/test/NUITizenGallery/Examples/ImageTest3/ImageTest3.xaml.cs
new file mode 100755 (executable)
index 0000000..54cc55d
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ImageTest3Page : View
+    {
+        public ImageTest3Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest4/ImageTest4.cs b/test/NUITizenGallery/Examples/ImageTest4/ImageTest4.cs
new file mode 100755 (executable)
index 0000000..c82d886
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ImageTest4 : IExample
+    {
+        private Window window;
+        private ImageTest4Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ImageTest4Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest4/ImageTest4.xaml.cs b/test/NUITizenGallery/Examples/ImageTest4/ImageTest4.xaml.cs
new file mode 100755 (executable)
index 0000000..f6c0ae9
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ImageTest4Page : View
+    {
+        public ImageTest4Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest5/ImageTest5.cs b/test/NUITizenGallery/Examples/ImageTest5/ImageTest5.cs
new file mode 100755 (executable)
index 0000000..49b5245
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ImageTest5 : IExample
+    {
+        private Window window;
+        private ImageTest5Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ImageTest5Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ImageTest5/ImageTest5.xaml.cs b/test/NUITizenGallery/Examples/ImageTest5/ImageTest5.xaml.cs
new file mode 100755 (executable)
index 0000000..9b55fb9
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ImageTest5Page : View
+    {
+
+        private float imgWidth = 0;
+        private float imgHeight = 0;
+
+        private void updateLabel()
+        {
+            imgHeight = imageView.Size2D.Height;
+            imgWidth = imageView.Size2D.Width;
+            desc1.Text = "Mode : AscpectFit / Width : " + (imgWidth > 0 ? imgWidth.ToString() : "-") + ", Height: " + (imgHeight > 0 ? imgHeight.ToString() : "-");
+        }
+
+        public ImageTest5Page()
+        {
+            InitializeComponent();
+            updateLabel();
+
+            image1Btn.Clicked += (o, e) =>
+            {
+                imageView.Size2D = new Size2D(imageView.Size2D.Width + 100, imageView.Size2D.Height + 100);
+                updateLabel();
+            };
+            image2Btn.Clicked += (o, e) =>
+            {
+                imageView.Size2D = new Size2D(imageView.Size2D.Width - 100, imageView.Size2D.Height - 100);
+                updateLabel();
+            };
+            image3Btn.Clicked += (o, e) =>
+            {
+                imageView.Size2D = new Size2D(imageView.Size2D.Width, imageView.Size2D.Height + 100);
+                updateLabel();
+            };
+            image4Btn.Clicked += (o, e) =>
+            {
+                imageView.Size2D = new Size2D(imageView.Size2D.Width, imageView.Size2D.Height - 100);
+                updateLabel();
+            };
+            image5Btn.Clicked += (o, e) =>
+            {
+                updateLabel();
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/IndicatorViewTest1/IndicatorViewTest1.cs b/test/NUITizenGallery/Examples/IndicatorViewTest1/IndicatorViewTest1.cs
new file mode 100644 (file)
index 0000000..824ec48
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class IndicatorViewTest1 : IExample
+    {
+        Window window;
+        IndicatorViewTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new IndicatorViewTest1Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/IndicatorViewTest1/IndicatorViewTest1.xaml.cs b/test/NUITizenGallery/Examples/IndicatorViewTest1/IndicatorViewTest1.xaml.cs
new file mode 100644 (file)
index 0000000..0fbec9a
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright(c) 2021 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.Collections.Generic;
+
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class IndicatorViewTest1Page : View
+    {
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        private readonly int PagesCount = 5;
+        private List<Position> IndicatorPositions;
+
+        public IndicatorViewTest1Page()
+        {
+            InitializeComponent();
+            Scroller.ScrollAnimationEnded += OnScrollAnimationEnded;
+
+            PaginationStyle paginationStyle = new PaginationStyle()
+            {
+                IndicatorSize = new Size(26, 26),
+                IndicatorSpacing = 8,
+            };
+
+            Index.ApplyStyle(paginationStyle);
+            Index.PositionUsesPivotPoint = true;
+            Index.ParentOrigin = new Position(0.5f, 0.05f, 0.5f);
+            Index.IndicatorCount = PagesCount;
+            Index.SelectedIndex = 0;
+
+            IndicatorPositions = new List<Position>();
+            for (int i = 0; i < PagesCount; ++i)
+            {
+                IndicatorPositions.Add(Index.GetIndicatorPosition(i));
+            }
+
+            Index.BackgroundColor = Tizen.NUI.Color.Gray;
+            Index.TouchEvent += OnIndexTouchEvent;
+        }
+
+        private bool OnIndexTouchEvent(object sender, TouchEventArgs args)
+        {
+            if (args.Touch.GetState(0) == Tizen.NUI.PointStateType.Finished)
+            {
+                for (int i = PagesCount -1 ; i >= 0; i--)
+                {
+                    if (args.Touch.GetLocalPosition(0).X >= IndicatorPositions[i].X)
+                    {
+                        Scroller.ScrollToIndex(i);
+                        break;
+                    }
+                }
+            }
+
+            return true;
+        }
+
+        private void OnScrollAnimationEnded(object sender, ScrollEventArgs args)
+        {
+            Index.SelectedIndex = Scroller.CurrentPage;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/IndicatorViewTest4/IndicatorViewTest4.cs b/test/NUITizenGallery/Examples/IndicatorViewTest4/IndicatorViewTest4.cs
new file mode 100644 (file)
index 0000000..c87e55f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class IndicatorViewTest4 : IExample
+    {
+        Window window;
+        IndicatorViewTest4Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new IndicatorViewTest4Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/IndicatorViewTest4/IndicatorViewTest4.xaml.cs b/test/NUITizenGallery/Examples/IndicatorViewTest4/IndicatorViewTest4.xaml.cs
new file mode 100644 (file)
index 0000000..2ad220c
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright(c) 2021 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.Collections.Generic;
+
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class IndicatorViewTest4Page : View
+    {
+        public IndicatorViewTest4Page()
+        {
+            InitializeComponent();
+            List<Pagination> indexers = new List<Pagination>();
+
+            PaginationStyle paginationStyle = new PaginationStyle()
+            {
+                IndicatorSize = new Size(26, 26),
+                IndicatorSpacing = 8,
+            };
+
+            indexers.Add(Index0);
+            indexers.Add(Index1);
+            indexers.Add(Index2);
+            indexers.Add(Index3);
+            indexers.Add(Index4);
+            indexers.Add(Index5);
+
+            for (int i = 0; i < 6; ++i)
+            {
+                indexers[i].ApplyStyle(paginationStyle);
+                indexers[i].PositionUsesPivotPoint = true;
+                indexers[i].BackgroundColor = Tizen.NUI.Color.Gray;
+            }
+
+            indexers[0].IndicatorCount = 3;
+            indexers[1].IndicatorCount = 4;
+            indexers[2].IndicatorCount = 5;
+            indexers[3].IndicatorCount = 3;
+            indexers[4].IndicatorCount = 4;
+            indexers[5].IndicatorCount = 5;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest1/LabelTest1.cs b/test/NUITizenGallery/Examples/LabelTest1/LabelTest1.cs
new file mode 100644 (file)
index 0000000..35651b7
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class LabelTest1 : IExample
+    {
+        private Window window;
+        private LabelTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new LabelTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest1/LabelTest1Page.xaml.cs b/test/NUITizenGallery/Examples/LabelTest1/LabelTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..18869a1
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class LabelTest1Page : View
+    {
+        public LabelTest1Page()
+        {
+            InitializeComponent();
+            AddLabels();
+            this.Padding = new Extents(10, 10, 10, 10);
+        }
+
+        private void AddLabels()
+        {
+            for (int size = 0; size < 20; size++)
+            {
+                layout.Add(CreateLabel(size));
+            }
+        }
+
+        private TextLabel CreateLabel(int i) => new TextLabel
+        {
+            Text = $"#{i} I am label",
+            WidthSpecification = LayoutParamPolicies.MatchParent,
+        };
+
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest2/LabelTest2.cs b/test/NUITizenGallery/Examples/LabelTest2/LabelTest2.cs
new file mode 100644 (file)
index 0000000..e0451d4
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class LabelTest2 : IExample
+    {
+        private Window window;
+        private LabelTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new LabelTest2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest2/LabelTest2Page.xaml.cs b/test/NUITizenGallery/Examples/LabelTest2/LabelTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..0594ff8
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class LabelTest2Page : View
+    {
+        public LabelTest2Page()
+        {
+            InitializeComponent();
+            mainView.Padding = new Extents(20, 20, 20, 20);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest3/LabeTest3Page.xaml.cs b/test/NUITizenGallery/Examples/LabelTest3/LabeTest3Page.xaml.cs
new file mode 100644 (file)
index 0000000..585f404
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class LabelTest3Page : View
+    {
+        public LabelTest3Page()
+        {
+            InitializeComponent();
+            mainView.Padding = new Extents(20, 20, 20, 100);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest3/LabelTest3.cs b/test/NUITizenGallery/Examples/LabelTest3/LabelTest3.cs
new file mode 100644 (file)
index 0000000..6d17eb7
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class LabelTest3 : IExample
+    {
+        private Window window;
+        private LabelTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new LabelTest3Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest5/LabelTest5.cs b/test/NUITizenGallery/Examples/LabelTest5/LabelTest5.cs
new file mode 100644 (file)
index 0000000..10491e5
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class LabelTest5 : IExample
+    {
+        private Window window;
+        private LabelTest5Page page;
+        private Navigator navigator;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new LabelTest5Page();
+            navigator = window.GetDefaultNavigator();
+
+            navigator.Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            navigator.Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/LabelTest5/LabelTest5Page.xaml.cs b/test/NUITizenGallery/Examples/LabelTest5/LabelTest5Page.xaml.cs
new file mode 100644 (file)
index 0000000..96578fc
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class LabelTest5Page : ContentPage
+    {
+        public LabelTest5Page()
+        {
+            InitializeComponent();
+            listItemContent1.Padding = new Extents(10, 0, 0, 0);
+            listItemContent2.Padding = new Extents(10, 0, 0, 0);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ListViewFooterTest1/ListViewFooterTest1.cs b/test/NUITizenGallery/Examples/ListViewFooterTest1/ListViewFooterTest1.cs
new file mode 100644 (file)
index 0000000..f8c1470
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ListViewFooterTest1 : IExample
+    {
+        Window window;
+        ListViewFooterTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new ListViewFooterTest1Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ListViewFooterTest1/ListViewFooterTest1.xaml.cs b/test/NUITizenGallery/Examples/ListViewFooterTest1/ListViewFooterTest1.xaml.cs
new file mode 100644 (file)
index 0000000..b9d395f
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Copyright(c) 2021 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.Collections.Generic;
+
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class ListItemClickedEventArgs : EventArgs
+    {
+        public string ClickedItemText;
+        public int Index;
+        
+        public ListItemClickedEventArgs(string text, int index) 
+        {
+            ClickedItemText = text;
+            Index = index;
+        }
+    }
+
+    public class ListItem : TextLabel
+    {
+        private int Index = -1;
+        public event EventHandler<ListItemClickedEventArgs> Clicked;
+        public ListItem(string text, int index)
+        {
+            Text = text;
+            Index = index;
+            TouchEvent += OnTouchEvent;
+            Size2D = new Tizen.NUI.Size2D(720, 100);
+        }
+
+        private bool OnTouchEvent(object sender, TouchEventArgs args)
+        {
+            if (args.Touch.GetState(0) == Tizen.NUI.PointStateType.Finished)
+            {
+                Clicked.Invoke(this, new ListItemClickedEventArgs(Text, Index));
+            }
+
+            return true;
+        }
+
+        public void ChangeSelectionState(bool selected)
+        {
+            if (selected == true) 
+            {
+                BackgroundColor = Color.Gray;
+            }
+            else
+            {
+                BackgroundColor = Color.White;
+            }
+        }
+    }
+
+    public partial class ListViewFooterTest1Page : View
+    {
+        private readonly int ItemsCount = 20;
+
+        private int SelectedItemIndex = -1;
+        private List<ListItem> items;
+
+        public ListViewFooterTest1Page()
+        {
+            InitializeComponent();
+            items = new List<ListItem>();
+            
+            for (int i = 0; i < ItemsCount; ++i)
+            {
+                items.Add(new ListItem(string.Format("{0}th list item", i), i));
+                items[i].Clicked += OnClicked;
+                ListView.Add(items[i]);
+            }
+        }
+
+        private void OnClicked(object sender, ListItemClickedEventArgs args)
+        {
+            Footer.Text = args.ClickedItemText;
+
+            if (SelectedItemIndex != -1) 
+            {
+                items[SelectedItemIndex].ChangeSelectionState(false);
+            }
+
+            SelectedItemIndex = args.Index;
+            items[SelectedItemIndex].ChangeSelectionState(true);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/MenuTest/MenuTest.cs b/test/NUITizenGallery/Examples/MenuTest/MenuTest.cs
new file mode 100644 (file)
index 0000000..5f77682
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class MenuTest : IExample
+    {
+        Window window;
+        Navigator navigator;
+        MenuTestPage page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new MenuTestPage();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/MenuTest/MenuTestMenu.xaml.cs b/test/NUITizenGallery/Examples/MenuTest/MenuTestMenu.xaml.cs
new file mode 100644 (file)
index 0000000..40a2fd8
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class MenuTestMenu : Menu
+    {
+        public MenuTestMenu()
+        {
+            InitializeComponent();
+
+            // FIXME: For now, menuItem1, 2, 3, 4 handles are not found by FindByName.
+            /*
+            menuItem1.Clicked += MenuItem1Clicked;
+            menuItem2.Clicked += MenuItem2Clicked;
+            menuItem3.Clicked += MenuItem3Clicked;
+            menuItem4.Clicked += MenuItem4Clicked;
+            */
+        }
+
+        private void MenuItem1Clicked(object sender, ClickedEventArgs args)
+        {
+            this.Dismiss();
+        }
+
+        private void MenuItem2Clicked(object sender, ClickedEventArgs args)
+        {
+            this.Dismiss();
+        }
+
+        private void MenuItem3Clicked(object sender, ClickedEventArgs args)
+        {
+            this.Dismiss();
+        }
+
+        private void MenuItem4Clicked(object sender, ClickedEventArgs args)
+        {
+            this.Dismiss();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/MenuTest/MenuTestPage.xaml.cs b/test/NUITizenGallery/Examples/MenuTest/MenuTestPage.xaml.cs
new file mode 100644 (file)
index 0000000..f042bdf
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class MenuTestPage : ContentPage
+    {
+        private MenuTestMenu menu;
+
+        public MenuTestPage()
+        {
+            InitializeComponent();
+
+            // FIXME: Need to write the following positioning in .xaml file.
+            RelativeLayout.SetLeftRelativeOffset(buttonCenterEnd, 0.5f);
+            RelativeLayout.SetRightRelativeOffset(buttonCenterEnd, 0.5f);
+            RelativeLayout.SetHorizontalAlignment(buttonCenterEnd, RelativeLayout.Alignment.Center);
+            RelativeLayout.SetFillHorizontal(buttonCenterEnd, false);
+            RelativeLayout.SetTopRelativeOffset(buttonCenterEnd, 0.0f);
+            RelativeLayout.SetBottomRelativeOffset(buttonCenterEnd, 0.0f);
+            RelativeLayout.SetVerticalAlignment(buttonCenterEnd, RelativeLayout.Alignment.Start);
+            RelativeLayout.SetFillVertical(buttonCenterEnd, false);
+
+            RelativeLayout.SetLeftRelativeOffset(buttonCenterStart, 0.5f);
+            RelativeLayout.SetRightRelativeOffset(buttonCenterStart, 0.5f);
+            RelativeLayout.SetHorizontalAlignment(buttonCenterStart, RelativeLayout.Alignment.Center);
+            RelativeLayout.SetFillHorizontal(buttonCenterStart, false);
+            RelativeLayout.SetTopRelativeOffset(buttonCenterStart, 1.0f);
+            RelativeLayout.SetBottomRelativeOffset(buttonCenterStart, 1.0f);
+            RelativeLayout.SetVerticalAlignment(buttonCenterStart, RelativeLayout.Alignment.End);
+            RelativeLayout.SetFillVertical(buttonCenterStart, false);
+
+            RelativeLayout.SetLeftRelativeOffset(buttonEndCenter, 0.0f);
+            RelativeLayout.SetRightRelativeOffset(buttonEndCenter, 0.0f);
+            RelativeLayout.SetHorizontalAlignment(buttonEndCenter, RelativeLayout.Alignment.Start);
+            RelativeLayout.SetFillHorizontal(buttonEndCenter, false);
+            RelativeLayout.SetTopRelativeOffset(buttonEndCenter, 0.5f);
+            RelativeLayout.SetBottomRelativeOffset(buttonEndCenter, 0.5f);
+            RelativeLayout.SetVerticalAlignment(buttonEndCenter, RelativeLayout.Alignment.Center);
+            RelativeLayout.SetFillVertical(buttonEndCenter, false);
+
+            RelativeLayout.SetLeftRelativeOffset(buttonStartCenter, 1.0f);
+            RelativeLayout.SetRightRelativeOffset(buttonStartCenter, 1.0f);
+            RelativeLayout.SetHorizontalAlignment(buttonStartCenter, RelativeLayout.Alignment.End);
+            RelativeLayout.SetFillHorizontal(buttonStartCenter, false);
+            RelativeLayout.SetTopRelativeOffset(buttonStartCenter, 0.5f);
+            RelativeLayout.SetBottomRelativeOffset(buttonStartCenter, 0.5f);
+            RelativeLayout.SetVerticalAlignment(buttonStartCenter, RelativeLayout.Alignment.Center);
+            RelativeLayout.SetFillVertical(buttonStartCenter, false);
+
+            RelativeLayout.SetLeftRelativeOffset(buttonCenterCenter, 0.5f);
+            RelativeLayout.SetRightRelativeOffset(buttonCenterCenter, 0.5f);
+            RelativeLayout.SetHorizontalAlignment(buttonCenterCenter, RelativeLayout.Alignment.Center);
+            RelativeLayout.SetFillHorizontal(buttonCenterCenter, false);
+            RelativeLayout.SetTopRelativeOffset(buttonCenterCenter, 0.5f);
+            RelativeLayout.SetBottomRelativeOffset(buttonCenterCenter, 0.5f);
+            RelativeLayout.SetVerticalAlignment(buttonCenterCenter, RelativeLayout.Alignment.Center);
+            RelativeLayout.SetFillVertical(buttonCenterCenter, false);
+
+            buttonCenterEnd.Clicked += ButtonCenterEndClicked;
+            buttonCenterStart.Clicked += ButtonCenterStartClicked;
+            buttonEndCenter.Clicked += ButtonEndCenterClicked;
+            buttonStartCenter.Clicked += ButtonStartCenterClicked;
+            buttonCenterCenter.Clicked += ButtonCenterCenterClicked;
+        }
+
+        private void ButtonCenterEndClicked(object sender, ClickedEventArgs args)
+        {
+            Button button = sender as Button;
+
+            menu = new MenuTestMenu();
+            menu.Anchor = button;
+            menu.HorizontalPositionToAnchor = Menu.RelativePosition.Center;
+            menu.VerticalPositionToAnchor = Menu.RelativePosition.End;
+            menu.Post();
+        }
+
+        private void ButtonCenterStartClicked(object sender, ClickedEventArgs args)
+        {
+            Button button = sender as Button;
+
+            menu = new MenuTestMenu();
+            menu.Anchor = button;
+            menu.HorizontalPositionToAnchor = Menu.RelativePosition.Center;
+            menu.VerticalPositionToAnchor = Menu.RelativePosition.Start;
+            menu.Post();
+        }
+
+        private void ButtonEndCenterClicked(object sender, ClickedEventArgs args)
+        {
+            Button button = sender as Button;
+
+            menu = new MenuTestMenu();
+            menu.Anchor = button;
+            menu.HorizontalPositionToAnchor = Menu.RelativePosition.End;
+            menu.VerticalPositionToAnchor = Menu.RelativePosition.Center;
+            menu.Post();
+        }
+
+        private void ButtonStartCenterClicked(object sender, ClickedEventArgs args)
+        {
+            Button button = sender as Button;
+
+            menu = new MenuTestMenu();
+            menu.Anchor = button;
+            menu.HorizontalPositionToAnchor = Menu.RelativePosition.Start;
+            menu.VerticalPositionToAnchor = Menu.RelativePosition.Center;
+            menu.Post();
+        }
+
+        private void ButtonCenterCenterClicked(object sender, ClickedEventArgs args)
+        {
+            Button button = sender as Button;
+
+            menu = new MenuTestMenu();
+            menu.Anchor = button;
+            menu.HorizontalPositionToAnchor = Menu.RelativePosition.Center;
+            menu.VerticalPositionToAnchor = Menu.RelativePosition.Center;
+            menu.Post();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/NavigatorTest1/NavigatorTest1.cs b/test/NUITizenGallery/Examples/NavigatorTest1/NavigatorTest1.cs
new file mode 100644 (file)
index 0000000..e6890c6
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class NavigatorTest1 : IExample
+    {
+        Window window;
+        Navigator navigator;
+        NavigatorTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            page = new NavigatorTest1Page();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > 1; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/NavigatorTest1/NavigatorTest1Page.xaml.cs b/test/NUITizenGallery/Examples/NavigatorTest1/NavigatorTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..6c9da21
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class NavigatorTest1Page : ContentPage
+    {
+        public NavigatorTest1Page()
+        {
+            InitializeComponent();
+        }
+
+        private void SetButtonColor(NavigatorTest1Page page, int type)
+        {
+            Color backgroundColor;
+
+            if (type == 0)
+            {
+                backgroundColor = Color.DarkGreen;
+            }
+            else if (type == 1)
+            {
+                backgroundColor = Color.DarkRed;
+            }
+            else if (type == 2)
+            {
+                backgroundColor = Color.DarkBlue;
+            }
+            else
+            {
+                backgroundColor = Color.SaddleBrown;
+            }
+
+            page.buttonPush.BackgroundColor = backgroundColor;
+            page.buttonPop.BackgroundColor = backgroundColor;
+            page.buttonInsert.BackgroundColor = backgroundColor;
+            page.buttonInsertBefore.BackgroundColor = backgroundColor;
+            page.buttonRemove.BackgroundColor = backgroundColor;
+            page.buttonRemoveAt.BackgroundColor = backgroundColor;
+        }
+
+        private void ButtonPushClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var newPage = new NavigatorTest1Page();
+            SetButtonColor(newPage, Navigator.PageCount % 4);
+            newPage.AppBar.Title = "NavigatorTest1Page" + Navigator.PageCount.ToString();
+            Navigator.Push(newPage);
+            Tizen.Log.Info("NUI", newPage.AppBar.Title + " has been pushed.\n");
+        }
+
+        private void ButtonPopClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var poppedPage = Navigator.Pop() as NavigatorTest1Page;
+            Tizen.Log.Info("NUI", poppedPage.AppBar.Title + " has been popped.\n");
+        }
+
+        private void ButtonInsertClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var newPage = new NavigatorTest1Page();
+            SetButtonColor(newPage, Navigator.PageCount % 4);
+            newPage.AppBar.Title = "NavigatorTest1Page" + Navigator.PageCount.ToString();
+            Navigator.Insert(Navigator.PageCount, newPage);
+            Tizen.Log.Info("NUI", newPage.AppBar.Title + " has been inserted.\n");
+        }
+
+        private void ButtonInsertBeforeClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var newPage = new NavigatorTest1Page();
+            SetButtonColor(newPage, Navigator.PageCount % 4);
+            newPage.AppBar.Title = "NavigatorTest1Page" + Navigator.PageCount.ToString();
+            Navigator.InsertBefore(Navigator.Peek(), newPage);
+            Tizen.Log.Info("NUI", newPage.AppBar.Title + " has been inserted before the peek page.\n");
+        }
+
+        private void ButtonRemoveClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var removedPage = Navigator.Peek() as NavigatorTest1Page;
+            Navigator.Remove(removedPage);
+            Tizen.Log.Info("NUI", removedPage.AppBar.Title + " has been removed.\n");
+        }
+
+        private void ButtonRemoveAtClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "This page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            if (Navigator.PageCount <= 2)
+            {
+                Tizen.Log.Info("NUI", "This test removes the previous page unless the previous page is the main page.\n");
+                return;
+            }
+
+            int removedIndex = Navigator.PageCount - 2;
+            var removedPage = Navigator.GetPage(removedIndex) as NavigatorTest1Page;
+            Navigator.RemoveAt(removedIndex);
+            Tizen.Log.Info("NUI", removedPage.AppBar.Title + " has been removed.\n");
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/NavigatorTest2/NavigatorTest2.cs b/test/NUITizenGallery/Examples/NavigatorTest2/NavigatorTest2.cs
new file mode 100644 (file)
index 0000000..530c26f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class NavigatorTest2 : IExample
+    {
+        Window window;
+        Navigator navigator;
+        NavigatorTest2Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            page = new NavigatorTest2Page();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > 1; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/NavigatorTest2/NavigatorTest2Page.xaml.cs b/test/NUITizenGallery/Examples/NavigatorTest2/NavigatorTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..e3c5843
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class NavigatorTest2Page : ContentPage
+    {
+        public NavigatorTest2Page()
+        {
+            InitializeComponent();
+        }
+
+        private void SetButtonColor(NavigatorTest2Page page, int type)
+        {
+            Color backgroundColor;
+
+            if (type == 0)
+            {
+                backgroundColor = Color.DarkGreen;
+            }
+            else if (type == 1)
+            {
+                backgroundColor = Color.DarkRed;
+            }
+            else if (type == 2)
+            {
+                backgroundColor = Color.DarkBlue;
+            }
+            else
+            {
+                backgroundColor = Color.SaddleBrown;
+            }
+
+            page.buttonPush.BackgroundColor = backgroundColor;
+            page.buttonPop.BackgroundColor = backgroundColor;
+            page.buttonPushAndInsert.BackgroundColor = backgroundColor;
+            page.buttonRemoveAndPop.BackgroundColor = backgroundColor;
+            page.buttonPushAndRemove.BackgroundColor = backgroundColor;
+            page.buttonInsertAndPop.BackgroundColor = backgroundColor;
+            page.buttonPopToRoot.BackgroundColor = backgroundColor;
+        }
+
+        private void ButtonPushClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var newPage = new NavigatorTest2Page();
+            SetButtonColor(newPage, Navigator.PageCount % 4);
+            newPage.AppBar.Title = "NavigatorTest2Page" + Navigator.PageCount.ToString();
+            Navigator.Push(newPage);
+            Tizen.Log.Info("NUI", newPage.AppBar.Title + " has been pushed.\n");
+        }
+
+        private void ButtonPopClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var poppedPage = Navigator.Pop() as NavigatorTest2Page;
+            Tizen.Log.Info("NUI", poppedPage.AppBar.Title + " has been popped.\n");
+        }
+
+        private void InsertWhenAppeared(object sender, PageAppearedEventArgs args)
+        {
+            var page = sender as NavigatorTest2Page;
+            page.Appeared -= InsertWhenAppeared;
+
+            var insertedPage = new NavigatorTest2Page();
+            SetButtonColor(insertedPage, Navigator.PageCount % 4);
+            insertedPage.AppBar.Title = "NavigatorTest2Page" + (Navigator.PageCount - 1).ToString();
+            Navigator.InsertBefore(page, insertedPage);
+            Tizen.Log.Info("NUI", insertedPage.AppBar.Title + " has been inserted before the peek page.\n");
+        }
+
+        private void ButtonPushAndInsertClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var pushedPage = new NavigatorTest2Page();
+            SetButtonColor(pushedPage, Navigator.PageCount % 4);
+            pushedPage.AppBar.Title = "NavigatorTest2Page" + (Navigator.PageCount + 1).ToString();
+            pushedPage.Appeared += InsertWhenAppeared;
+            Navigator.Push(pushedPage);
+            Tizen.Log.Info("NUI", pushedPage.AppBar.Title + " has been pushed.\n");
+        }
+
+        private void ButtonRemoveAndPopClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            if (Navigator.PageCount <= 2)
+            {
+                Tizen.Log.Info("NUI", "This test removes two pages, so at least two pages should be pushed.\n");
+                return;
+            }
+
+            var removedPage = Navigator.GetPage(Navigator.PageCount - 2) as NavigatorTest2Page;
+            Navigator.Remove(removedPage);
+            Tizen.Log.Info("NUI", removedPage.AppBar.Title + " has been removed.\n");
+
+            var poppedPage = Navigator.Pop() as NavigatorTest2Page;
+            Tizen.Log.Info("NUI", poppedPage.AppBar.Title + " has been popped.\n");
+        }
+
+        private void RemoveWhenAppeared(object sender, PageAppearedEventArgs args)
+        {
+            var page = sender as NavigatorTest2Page;
+            page.Appeared -= RemoveWhenAppeared;
+
+            var removedPage = Navigator.GetPage(Navigator.PageCount - 2) as NavigatorTest2Page;
+            Navigator.Remove(removedPage);
+            Tizen.Log.Info("NUI", removedPage.AppBar.Title + " has been removed.\n");
+        }
+
+        private void ButtonPushAndRemoveClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var pushedPage = new NavigatorTest2Page();
+            SetButtonColor(pushedPage, Navigator.PageCount % 4);
+            pushedPage.AppBar.Title = "NavigatorTest2Page" + Navigator.PageCount.ToString();
+            pushedPage.Appeared += RemoveWhenAppeared;
+            Navigator.Push(pushedPage);
+            Tizen.Log.Info("NUI", pushedPage.AppBar.Title + " has been pushed.\n");
+        }
+
+        private void ButtonInsertAndPopClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            var newPage = new NavigatorTest2Page();
+            SetButtonColor(newPage, Navigator.PageCount % 4);
+            newPage.AppBar.Title = "NavigatorTest2Page" + Navigator.PageCount.ToString();
+            Navigator.InsertBefore(Navigator.Peek(), newPage);
+            Tizen.Log.Info("NUI", newPage.AppBar.Title + " has been inserted before the peek page.\n");
+
+            var poppedPage = Navigator.Pop() as NavigatorTest2Page;
+            Tizen.Log.Info("NUI", poppedPage.AppBar.Title + " has been popped.\n");
+        }
+
+        private void ButtonPopToRootClicked(object sender, ClickedEventArgs args)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            for (int i = Navigator.PageCount; i > 2; i--)
+            {
+                var removedPage = Navigator.GetPage(i - 2) as NavigatorTest2Page;
+                Navigator.Remove(removedPage);
+                Tizen.Log.Info("NUI", removedPage.AppBar.Title + " has been removed.\n");
+            }
+
+            var poppedPage = Navigator.Pop() as NavigatorTest2Page;
+            Tizen.Log.Info("NUI", poppedPage.AppBar.Title + " has been popped.\n");
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/OpacityTest1/OpacityTest1.cs b/test/NUITizenGallery/Examples/OpacityTest1/OpacityTest1.cs
new file mode 100644 (file)
index 0000000..868445e
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class OpacityTest1 : IExample
+    {
+        Window window;
+        OpacityTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new OpacityTest1Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/OpacityTest1/OpacityTest1.xaml.cs b/test/NUITizenGallery/Examples/OpacityTest1/OpacityTest1.xaml.cs
new file mode 100644 (file)
index 0000000..c4ea253
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright(c) 2021 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.Collections.Generic;
+
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class OpacityTest1Page : View
+    {
+        public OpacityTest1Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PanGestureTest1/PanGestureTest1.cs b/test/NUITizenGallery/Examples/PanGestureTest1/PanGestureTest1.cs
new file mode 100644 (file)
index 0000000..9c71dfe
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class PanGestureTest1 : IExample
+    {
+        private Window window;
+        private PanGestureTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new PanGestureTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PanGestureTest1/PanGestureTest1.xaml.cs b/test/NUITizenGallery/Examples/PanGestureTest1/PanGestureTest1.xaml.cs
new file mode 100644 (file)
index 0000000..f5ce255
--- /dev/null
@@ -0,0 +1,27 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class PanGestureTest1Page : ContentPage
+    {
+        private PanGestureDetector mPanDetector;
+        public PanGestureTest1Page()
+        {
+            InitializeComponent();
+
+            mPanDetector = new PanGestureDetector();
+            mPanDetector.Attach(imageView);
+
+            mPanDetector.Detected += (obj, e) =>
+            {
+                View view = e.View;
+                if (view != null)
+                {
+                    view.Position += new Position(e.PanGesture.ScreenDisplacement.X, e.PanGesture.ScreenDisplacement.Y, 0);
+                }
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/PerformanceTest1/ListItemTitle.xaml.cs b/test/NUITizenGallery/Examples/PerformanceTest1/ListItemTitle.xaml.cs
new file mode 100644 (file)
index 0000000..f6077da
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class ListItemTitle : View
+    {
+        public ListItemTitle(string title)
+        {
+            InitializeComponent();
+            TextLabelTitle.Text = title;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest1/PerformanceTest1.cs b/test/NUITizenGallery/Examples/PerformanceTest1/PerformanceTest1.cs
new file mode 100644 (file)
index 0000000..ec347dc
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class PerformanceTest1 : IExample
+    {
+        private Window window;
+        private PerformanceTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new PerformanceTest1Page();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest1/PerformanceTest1.xaml.cs b/test/NUITizenGallery/Examples/PerformanceTest1/PerformanceTest1.xaml.cs
new file mode 100644 (file)
index 0000000..e3d96fa
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public class FrameUpdate : FrameUpdateCallbackInterface
+    {
+        private static float frameCnt = 0;
+        private static float avgElapsedTime = 0;
+        private static float avgFPS = 0;
+
+        public void Reset()
+        {
+            frameCnt = 0;
+            avgElapsedTime = 0;
+            avgFPS = 0;
+        }
+        
+        public float GetFPS()
+        {
+            return avgFPS;
+        }
+
+        public override void OnUpdate(float elapsedSeconds)
+        {
+            frameCnt++;
+            var oldWeight = (frameCnt - 1) / frameCnt;
+            var newWeight = 1 / frameCnt;
+            avgElapsedTime = avgElapsedTime * oldWeight + elapsedSeconds * newWeight;
+            avgFPS = avgElapsedTime == 0 ? 0 : 1 / avgElapsedTime;
+        }
+    }
+
+    public partial class PerformanceTest1Page : ContentPage
+    {
+        private int TestItems = 1000;
+        private int ScrollTime = 5000;
+        private Window AppWindow;
+        private FrameUpdate FPSCounter;
+        private bool MeasurementStarted;
+
+        public PerformanceTest1Page()
+        {
+            InitializeComponent();
+
+            FPSCounter = new FrameUpdate();
+
+            AppWindow = NUIApplication.GetDefaultWindow();
+            StartButton.Clicked += OnButtonScrollClicked;
+            Scroller.ScrollDuration = ScrollTime;
+
+            var items = new ListItemTitle[TestItems];
+            for (int i = 0; i < TestItems; i++) {
+                items[i] = new ListItemTitle("item: " + i.ToString());
+                Scroller.Add(items[i]);
+            }
+        }
+
+        private void OnButtonScrollClicked(object sender, ClickedEventArgs args)
+        {
+            if (MeasurementStarted == true) return; 
+
+            MeasurementStarted = true;
+
+            Scroller.ScrollToIndex(999);
+
+            FPSCounter.Reset();
+            AppWindow.RemoveFrameUpdateCallback(FPSCounter);
+            AppWindow.AddFrameUpdateCallback(FPSCounter);
+
+            FPSLabel.Text = "Measuring scrolling FPS...";
+            Scroller.ScrollAnimationEnded += OnScrollAnimaionEnded;
+        }
+
+        private void OnScrollAnimaionEnded(object sender, ScrollEventArgs args)
+        {
+            FPSLabel.Text = "Average FPS: " + FPSCounter.GetFPS();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            AppWindow.RemoveFrameUpdateCallback(FPSCounter);
+
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest2/ListItemTitleSwitch.xaml.cs b/test/NUITizenGallery/Examples/PerformanceTest2/ListItemTitleSwitch.xaml.cs
new file mode 100644 (file)
index 0000000..03debe2
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class ListItemTitleSwitch : View
+    {
+        public ListItemTitleSwitch(string title)
+        {
+            InitializeComponent();
+            TextLabelTitle.Text = title;
+            ListItemSwitch.IsSelected = true;
+
+            LinearLayout itemLayout = new LinearLayout();
+            itemLayout.LinearOrientation = LinearLayout.Orientation.Horizontal;
+            itemLayout.LinearAlignment = LinearLayout.Alignment.Center;            
+            itemLayout.Padding = new Extents(5, 5, 5, 5);
+            itemLayout.CellPadding = new Size2D(100, 10);
+            this.Layout = itemLayout;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest2/PerformanceTest2.cs b/test/NUITizenGallery/Examples/PerformanceTest2/PerformanceTest2.cs
new file mode 100644 (file)
index 0000000..ac3c199
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class PerformanceTest2 : IExample
+    {
+        Window window;
+        PerformanceTest2Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new PerformanceTest2Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest2/PerformanceTest2.xaml.cs b/test/NUITizenGallery/Examples/PerformanceTest2/PerformanceTest2.xaml.cs
new file mode 100644 (file)
index 0000000..8114f1c
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class PerformanceTest2Page : View
+    {
+        private int TestItems = 50;
+        private int ScrollTime = 5000;
+
+        public PerformanceTest2Page()
+        {
+            InitializeComponent();
+
+            //Application Linear Layout
+            LinearLayout layout = new LinearLayout();
+            layout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            layout.LinearAlignment = LinearLayout.Alignment.Center;
+            layout.Padding = new Extents(5, 5, 5, 5);
+            layout.CellPadding = new Size2D(5, 5);
+
+            this.Layout = layout;
+            StartButton.Clicked += OnButtonScrollClicked;
+
+            //Create List for Labels
+            LabelsListView = new ScrollableBase();
+            LabelsListView.BackgroundColor = Color.White;
+            LabelsListView.Size2D = new Size2D(700, 1200);
+
+            //Set linead layout for scrollable widget
+            LinearLayout scrollLayout = new LinearLayout();
+            scrollLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            scrollLayout.LinearAlignment = LinearLayout.Alignment.Center;
+            scrollLayout.CellPadding = new Size2D(5, 5);
+            LabelsListView.Layout = scrollLayout;
+            LabelsListView.ScrollDuration = ScrollTime;
+            this.Add(LabelsListView);
+
+            var items = new ListItemTitleSwitch[TestItems];
+            for (int i = 0; i < TestItems; i++) {
+                items[i] = new ListItemTitleSwitch("item: " + i.ToString());
+                LabelsListView.Add(items[i]);
+            }
+        }
+
+        private void OnButtonScrollClicked(object sender, ClickedEventArgs args)
+        {
+            LabelsListView.ScrollToIndex(49);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest3/ListItemTitleView.xaml.cs b/test/NUITizenGallery/Examples/PerformanceTest3/ListItemTitleView.xaml.cs
new file mode 100644 (file)
index 0000000..1e29daf
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI.BaseComponents;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class ListItemTitleView : View
+    {
+        public ListItemTitleView(string title)
+        {
+            InitializeComponent();
+            TextLabelTitle.Text = title;
+
+            LinearLayout itemLayout = new LinearLayout();
+            itemLayout.LinearOrientation = LinearLayout.Orientation.Horizontal;
+            itemLayout.LinearAlignment = LinearLayout.Alignment.Center;            
+            itemLayout.Padding = new Extents(5, 5, 5, 5);
+            itemLayout.CellPadding = new Size2D(100, 10);
+            this.Layout = itemLayout;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest3/PerformanceTest3.cs b/test/NUITizenGallery/Examples/PerformanceTest3/PerformanceTest3.cs
new file mode 100644 (file)
index 0000000..a544656
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class PerformanceTest3 : IExample
+    {
+        Window window;
+        PerformanceTest3Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new PerformanceTest3Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PerformanceTest3/PerformanceTest3.xaml.cs b/test/NUITizenGallery/Examples/PerformanceTest3/PerformanceTest3.xaml.cs
new file mode 100644 (file)
index 0000000..a31d13a
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class PerformanceTest3Page : View
+    {
+        private int TestItems = 200;
+        private int ScrollTime = 5000;
+
+        public PerformanceTest3Page()
+        {
+            InitializeComponent();
+
+            //Application Linear Layout
+            LinearLayout layout = new LinearLayout();
+            layout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            layout.LinearAlignment = LinearLayout.Alignment.Center;
+            layout.Padding = new Extents(5, 5, 5, 5);
+            layout.CellPadding = new Size2D(5, 5);
+            this.Layout = layout;
+
+            LinearLayout hLayout = new LinearLayout();
+            hLayout.LinearOrientation = LinearLayout.Orientation.Horizontal;
+            hLayout.LinearAlignment = LinearLayout.Alignment.Center;
+            hLayout.Padding = new Extents(5, 5, 5, 5);
+            hLayout.CellPadding = new Size2D(5, 5);
+            ButtonBox.Layout = hLayout;
+
+
+            ScrollBegin.Clicked += OnScrollBeginClicked;
+            ScrollMiddle.Clicked += OnScrollMiddleClicked;
+            ScrollEnd.Clicked += OnScrollEndClicked;
+
+            //Create List for Labels
+            LabelsListView = new ScrollableBase();
+            LabelsListView.BackgroundColor = Color.White;
+            LabelsListView.Size2D = new Size2D(700, 1200);
+
+            //Set linead layout for scrollable widget
+            LinearLayout scrollLayout = new LinearLayout();
+            scrollLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            scrollLayout.LinearAlignment = LinearLayout.Alignment.Center;
+            scrollLayout.CellPadding = new Size2D(5, 5);
+            LabelsListView.Layout = scrollLayout;
+            LabelsListView.ScrollDuration = ScrollTime;
+            this.Add(LabelsListView);
+
+            var items = new ListItemTitleView[TestItems];
+            for (int i = 0; i < TestItems; i++) {
+                items[i] = new ListItemTitleView("item: " + i.ToString());
+                LabelsListView.Add(items[i]);
+            }
+        }
+
+        private void OnScrollBeginClicked(object sender, ClickedEventArgs args)
+        {
+            LabelsListView.ScrollToIndex(0);
+        }
+
+        private void OnScrollEndClicked(object sender, ClickedEventArgs args)
+        {
+            LabelsListView.ScrollToIndex(199);
+        }
+
+        private void OnScrollMiddleClicked(object sender, ClickedEventArgs args)
+        {
+            LabelsListView.ScrollToIndex(100);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PickerTest1/PickerTest1.cs b/test/NUITizenGallery/Examples/PickerTest1/PickerTest1.cs
new file mode 100644 (file)
index 0000000..a1a1e96
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class PickerTest1 : IExample
+    {
+        private Window window;
+        private PickerTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new PickerTest1Page();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PickerTest1/PickerTest1.xaml.cs b/test/NUITizenGallery/Examples/PickerTest1/PickerTest1.xaml.cs
new file mode 100644 (file)
index 0000000..305dec5
--- /dev/null
@@ -0,0 +1,30 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+
+namespace NUITizenGallery
+{
+    public partial class PickerTest1Page : ContentPage
+    {
+        String[] textValue = new string[] { "Black", "Blue", "Green", "Maroon", "Pink", "Teal", "Yellow"};
+        Color[] colorValue = new Color[] {Color.Black, Color.Blue, Color.Green, Color.Maroon, Color.Pink, Color.Teal, Color.Yellow};
+
+        private void onValueChanged(object sender, ValueChangedEventArgs e)
+        {
+            text1.Text = textValue[e.Value];
+            text1.TextColor = colorValue[e.Value];
+            rect1.BackgroundColor = colorValue[e.Value];
+            Console.WriteLine("Value is " + e.Value);
+        }
+
+        public PickerTest1Page()
+        {
+            InitializeComponent();
+            picker1.DisplayedValues = new ReadOnlyCollection<string>(textValue);
+            picker1.ValueChanged += onValueChanged;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PinchGestureTest1/PinchGestureTest1.cs b/test/NUITizenGallery/Examples/PinchGestureTest1/PinchGestureTest1.cs
new file mode 100644 (file)
index 0000000..797f326
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class PinchGestureTest1 : IExample
+    {
+        private Window window;
+        private PinchGestureTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new PinchGestureTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/PinchGestureTest1/PinchGestureTest1.xaml.cs b/test/NUITizenGallery/Examples/PinchGestureTest1/PinchGestureTest1.xaml.cs
new file mode 100644 (file)
index 0000000..395843d
--- /dev/null
@@ -0,0 +1,32 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class PinchGestureTest1Page : ContentPage
+    {
+        private PinchGestureDetector pinchDetector;
+        private Vector3 startingScale;
+        public PinchGestureTest1Page()
+        {
+            InitializeComponent();
+
+            pinchDetector = new PinchGestureDetector();
+            pinchDetector.Attach(imageView);
+
+            pinchDetector.Detected += (obj, e) =>
+            {
+                View view = e.View;
+                if (view != null)
+                {
+                    if(e.PinchGesture.State == Gesture.StateType.Started)
+                    {
+                        startingScale = view.Scale;
+                    }
+                    view.Scale = startingScale * e.PinchGesture.Scale;
+                }
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ProgressbarTest1/ProgressbarTest1.cs b/test/NUITizenGallery/Examples/ProgressbarTest1/ProgressbarTest1.cs
new file mode 100644 (file)
index 0000000..8512b16
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ProgressbarTest1 : IExample
+    {
+        Window window;
+        ProgressbarTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new ProgressbarTest1Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ProgressbarTest1/ProgressbarTest1.xaml.cs b/test/NUITizenGallery/Examples/ProgressbarTest1/ProgressbarTest1.xaml.cs
new file mode 100644 (file)
index 0000000..a2da73c
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Copyright(c) 2021 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.Collections.Generic;
+
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    public partial class ProgressbarTest1Page : View
+    {
+        List<Color> colorlist = new List<Color> { Color.Red, Color.Green, Color.Blue, Color.Yellow, };
+        int colorIndex = 0;
+        Timer AnimationTimer = new Timer(50);
+
+        public ProgressbarTest1Page()
+        {
+            InitializeComponent();
+
+            ChangeColorButton.Clicked += OnChangeColorButtonClicked;
+            AnimateButton.Clicked += OnAnimateButtonClicked;
+
+            TestSlider.ValueChanged += OnValueChanged;
+            TestSlider.CurrentValue = 50.0f;
+            TestProgress.CurrentValue = 50.0f;
+        }
+
+        private void OnChangeColorButtonClicked(object sender, ClickedEventArgs args)
+        {
+            TestProgress.ProgressColor = colorlist[colorIndex++ % 4];
+        }
+
+        private void OnAnimateButtonClicked(object sender, ClickedEventArgs args)
+        {
+            TestProgress.CurrentValue = 0.0f;
+            AnimationTimer.Tick += OnTimerTick;
+            AnimationTimer.Start();
+        }
+
+        private bool OnTimerTick(object sender, Timer.TickEventArgs args)
+        {
+            TestProgress.CurrentValue += 1.0f;
+
+            if (TestProgress.CurrentValue >= 99.9f)
+            {
+                AnimationTimer.Stop();
+                return false;
+            }
+
+            return true;
+        }
+
+        private void OnValueChanged(object sender, SliderValueChangedEventArgs args)
+        {
+            TestProgress.CurrentValue = args.CurrentValue;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            AnimationTimer.Stop();
+            base.Dispose(type);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/RecalculateTest1/RecalculateTest1.cs b/test/NUITizenGallery/Examples/RecalculateTest1/RecalculateTest1.cs
new file mode 100755 (executable)
index 0000000..27d6ce0
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class RecalculateTest1 : IExample
+    {
+        private Window window;
+        private RecalculateTest1Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new RecalculateTest1Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/RecalculateTest1/RecalculateTest1.xaml.cs b/test/NUITizenGallery/Examples/RecalculateTest1/RecalculateTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..7525c6e
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class RecalculateTest1Page : View
+    {
+        public RecalculateTest1Page()
+        {
+            InitializeComponent();
+            btn1.Clicked += (s, e) =>
+            {
+                uint childCount = lblView.ChildCount - 1;
+                int i = 0;
+                if (childCount > 0)
+                {
+                    for (i = (int)childCount; i >= 0; i--)
+                    {
+                        var v = lblView.GetChildAt((uint)i);
+                        lblView.Remove(v);
+                    }
+                }
+            };
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/RefreshViewTest1/RefreshViewTest1.cs b/test/NUITizenGallery/Examples/RefreshViewTest1/RefreshViewTest1.cs
new file mode 100755 (executable)
index 0000000..b677f74
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class RefreshViewTest1 : IExample
+    {
+        private Window window;
+        private RefreshViewTest1Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new RefreshViewTest1Page();
+            window.GetDefaultNavigator().Push(page);
+        }
+
+        public void Deactivate()
+        {
+            window.GetDefaultNavigator().Pop();
+            page = null; ;
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/RefreshViewTest1/RefreshViewTest1.xaml.cs b/test/NUITizenGallery/Examples/RefreshViewTest1/RefreshViewTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..c7ebab7
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class RefreshViewTest1Page : ContentPage
+    {
+        Random rand;
+        bool clicked = false;
+        TextLabel lbl1;
+
+        public RefreshViewTest1Page()
+        {
+            InitializeComponent();
+
+            lbl1 = new TextLabel
+            {
+                Text = "It is Empty!"
+            };
+            Scroller.Add(lbl1);
+
+            btn1.Clicked += (s, e) =>
+            {
+                if (!clicked)
+                {
+                    rand = new Random();
+                    int i = 0;
+                    Scroller.Remove(lbl1);
+                    for (i = 1; i <= 50; i++)
+                    {
+                        var label = new TextLabel(DateTime.UtcNow.AddMinutes(i).ToString("F"));
+                        var r = new decimal(rand.NextDouble());
+                        var g = new decimal(rand.NextDouble());
+                        var b = new decimal(rand.NextDouble());
+                        var boxview = new View
+                        {
+                            Size2D = new Size2D(NUIApplication.GetDefaultWindow().WindowSize.Width, 100),
+                            BackgroundColor = new Tizen.NUI.Color((float)r, (float)g, (float)b, 1.0f)
+                        };
+                        Scroller.Add(label);
+                        Scroller.Add(boxview);
+                    }
+                }
+                else
+                {
+                    View[] a = Scroller.Children.ToArray();
+                    int i = 0;
+                    for (i = 0; i < a.Length; i++)
+                    {
+                        Scroller.Remove(a[i]);
+                    }
+                    lbl1 = new TextLabel
+                    {
+                        Text = "It is Empty!"
+                    };
+                    Scroller.Add(lbl1);
+                }
+                clicked = !clicked;
+            };
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/RotationTest1/RotationTest1.cs b/test/NUITizenGallery/Examples/RotationTest1/RotationTest1.cs
new file mode 100755 (executable)
index 0000000..687aa10
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class RotationTest1 : IExample
+    {
+        private Window window;
+        private RotationTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new RotationTest1Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/RotationTest1/RotationTest1.xaml.cs b/test/NUITizenGallery/Examples/RotationTest1/RotationTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..0f80a78
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class RotationTest1Page : View
+    {
+        private readonly string ResourcePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/";
+        public RotationTest1Page()
+        {
+            InitializeComponent();
+            img.SetImage(ResourcePath + "a.jpg");
+
+            int count = 0;
+            btn.Clicked += (o, e) =>
+            {
+                count++;
+                if (count == 1)
+                {
+                    btn.Orientation = new Rotation(new Radian(new Degree(45.0f)), Vector3.ZAxis);
+                }
+                else if (count == 2)
+                {
+                    btn.Orientation = new Rotation(new Radian(new Degree(-45.0f)), Vector3.ZAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(45.0f)), Vector3.XAxis);
+                }
+                else if (count == 3)
+                {
+                    btn.Orientation = new Rotation(new Radian(new Degree(0.0f)), Vector3.ZAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(-45.0f)), Vector3.XAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(45.0f)), Vector3.YAxis);
+                }
+                else if (count == 4)
+                {
+                    btn.Orientation = new Rotation(new Radian(new Degree(45.0f)), Vector3.ZAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(45.0f)), Vector3.XAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(0.0f)), Vector3.YAxis);
+                }
+                else
+                {
+                    btn.Orientation = new Rotation(new Radian(new Degree(-45.0f)), Vector3.ZAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(-45.0f)), Vector3.XAxis);
+                    btn.Orientation = new Rotation(new Radian(new Degree(-45.0f)), Vector3.YAxis);
+                    count = 0;
+                }
+            };
+            sliderX.ValueChanged += (s, e) =>
+            {
+                btn.Orientation = new Rotation(new Radian(new Degree(sliderX.CurrentValue)), Vector3.XAxis);
+                rect.Orientation = new Rotation(new Radian(new Degree(sliderX.CurrentValue)), Vector3.XAxis);
+                img.Orientation = new Rotation(new Radian(new Degree(sliderX.CurrentValue)), Vector3.XAxis);
+                label.Orientation = new Rotation(new Radian(new Degree(sliderX.CurrentValue)), Vector3.XAxis);
+            };
+            sliderY.ValueChanged += (s, e) =>
+            {
+                btn.Orientation = new Rotation(new Radian(new Degree(sliderY.CurrentValue)), Vector3.YAxis);
+                rect.Orientation = new Rotation(new Radian(new Degree(sliderY.CurrentValue)), Vector3.YAxis);
+                img.Orientation = new Rotation(new Radian(new Degree(sliderY.CurrentValue)), Vector3.YAxis);
+                label.Orientation = new Rotation(new Radian(new Degree(sliderY.CurrentValue)), Vector3.YAxis);
+            };
+            sliderZ.ValueChanged += (s, e) =>
+            {
+                btn.Orientation = new Rotation(new Radian(new Degree(sliderZ.CurrentValue)), Vector3.ZAxis);
+                rect.Orientation = new Rotation(new Radian(new Degree(sliderZ.CurrentValue)), Vector3.ZAxis);
+                img.Orientation = new Rotation(new Radian(new Degree(sliderZ.CurrentValue)), Vector3.ZAxis);
+                label.Orientation = new Rotation(new Radian(new Degree(sliderZ.CurrentValue)), Vector3.ZAxis);
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/ScaleTest1/ScaleTest1.cs b/test/NUITizenGallery/Examples/ScaleTest1/ScaleTest1.cs
new file mode 100644 (file)
index 0000000..437bc52
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ScaleTest1 : IExample
+    {
+        Window window;
+        ScaleTest1Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new ScaleTest1Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScaleTest1/ScaleTest1.xaml.cs b/test/NUITizenGallery/Examples/ScaleTest1/ScaleTest1.xaml.cs
new file mode 100644 (file)
index 0000000..9676264
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScaleTest1Page : View
+    {
+        private Vector3[] Scales = {
+                                    new Vector3(1.0f, 1.0f, 1.0f),
+                                    new Vector3(1.5f, 1.5f, 1.0f),
+                                    new Vector3(2.0f, 2.0f, 1.0f),
+                                    new Vector3(2.5f, 2.5f, 1.0f)
+                                   };
+        private int i = 0;
+
+        public ScaleTest1Page()
+        {
+            InitializeComponent();
+            ScaleButton.Clicked += OnButtonClicked;
+        }
+
+        private void OnButtonClicked(object sender, ClickedEventArgs args)
+        {
+            ScaleButton.Scale = Scales[i++ % 4];
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScaleTest2/ScaleTest2.cs b/test/NUITizenGallery/Examples/ScaleTest2/ScaleTest2.cs
new file mode 100644 (file)
index 0000000..f90ab97
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ScaleTest2 : IExample
+    {
+        Window window;
+        ScaleTest2Page page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new ScaleTest2Page();
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScaleTest2/ScaleTest2.xaml.cs b/test/NUITizenGallery/Examples/ScaleTest2/ScaleTest2.xaml.cs
new file mode 100644 (file)
index 0000000..55ee32b
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScaleTest2Page : View
+    {
+        private Vector3[] Scales = {
+                                    new Vector3(1.0f, 1.0f, 1.0f),
+                                    new Vector3(1.1f, 1.1f, 1.0f),
+                                    new Vector3(1.2f, 1.2f, 1.0f),
+                                    new Vector3(1.3f, 1.3f, 1.0f),
+                                    new Vector3(1.4f, 1.4f, 1.0f),
+                                    new Vector3(1.5f, 1.5f, 1.0f),
+                                    new Vector3(1.6f, 1.6f, 1.0f),
+                                    new Vector3(1.7f, 1.7f, 1.0f),
+                                    new Vector3(1.8f, 1.8f, 1.0f),
+                                    new Vector3(1.9f, 1.9f, 1.0f)
+                                   };
+        private int i = 0;
+
+        public ScaleTest2Page()
+        {
+            InitializeComponent();
+            ScaleChangeButton.Clicked += OnButtonClicked;
+            ScaleButton.Clicked += OnButtonClicked;
+        }
+
+        private void OnButtonClicked(object sender, ClickedEventArgs args)
+        {
+            ScaleButton.Scale = Scales[i++ % 4];
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest1/ScrollViewTest1.cs b/test/NUITizenGallery/Examples/ScrollViewTest1/ScrollViewTest1.cs
new file mode 100755 (executable)
index 0000000..31341e3
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class ScrollViewTest1 : IExample
+    {
+        private Window window;
+        private ScrollViewTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new ScrollViewTest1Page();
+            window.Add(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest1/ScrollViewTest1.xaml.cs b/test/NUITizenGallery/Examples/ScrollViewTest1/ScrollViewTest1.xaml.cs
new file mode 100755 (executable)
index 0000000..a775834
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScrollViewTest1Page : View
+    {
+        public ScrollViewTest1Page()
+        {
+            InitializeComponent();
+
+            for (int i = 0; i <= 60; ++i)
+            {
+                var t = new TextLabel
+                {
+                    Text = String.Format("I am label #{0}", i),
+                    Size2D = new Size2D(720, 70)
+                };
+                Scroller.Add(t);
+            }
+
+            btn.Clicked += (o, e) =>
+            {
+                Scroller.ScrollTo(500, true);
+            };
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest2/ScrollViewTest2.cs b/test/NUITizenGallery/Examples/ScrollViewTest2/ScrollViewTest2.cs
new file mode 100755 (executable)
index 0000000..6560d2d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ScrollViewTest2 : IExample
+    {
+        private Window window;
+        private ScrollViewTest2Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new ScrollViewTest2Page();
+            window.GetDefaultNavigator().Push(page);
+        }
+
+        public void Deactivate()
+        {
+            window.GetDefaultNavigator().Pop();
+            page = null; ;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest2/ScrollViewTest2.xaml.cs b/test/NUITizenGallery/Examples/ScrollViewTest2/ScrollViewTest2.xaml.cs
new file mode 100755 (executable)
index 0000000..7e5fec9
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScrollViewTest2Page : ContentPage
+    {
+        public ScrollViewTest2Page()
+        {
+            InitializeComponent();
+            Button btn = new Button
+            {
+                Size2D = new Size2D(230, NUIApplication.GetDefaultWindow().WindowSize.Height),
+                BackgroundColor = new Color(0.0f, 0.0f, 1.0f, 255),
+                Text = "Test ScrollTo"
+            };
+            Scroller.Add(btn);
+
+            Random rand = new Random();
+            for (int i = 0; i <= 60; ++i)
+            {
+                float r = (float)rand.NextDouble();
+                float g = (float)rand.NextDouble();
+                float b = (float)rand.NextDouble();
+                var t = new View
+                {
+                    Size2D = new Size2D(230, NUIApplication.GetDefaultWindow().WindowSize.Height),
+                    BackgroundColor = new Color(r, g, b, 255),
+                };
+                Scroller.Add(t);
+            }
+            btn.Clicked += (o, e) =>
+            {
+                Scroller.ScrollTo(500, true);
+            };
+        }
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest3/ScrollViewTest3.cs b/test/NUITizenGallery/Examples/ScrollViewTest3/ScrollViewTest3.cs
new file mode 100755 (executable)
index 0000000..74b40b5
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ScrollViewTest3 : IExample
+    {
+        private Window window;
+        private ScrollViewTest3Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new ScrollViewTest3Page();
+            window.GetDefaultNavigator().Push(page);
+        }
+
+        public void Deactivate()
+        {
+            window.GetDefaultNavigator().Pop();
+            page = null; ;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest3/ScrollViewTest3.xaml.cs b/test/NUITizenGallery/Examples/ScrollViewTest3/ScrollViewTest3.xaml.cs
new file mode 100755 (executable)
index 0000000..6eff1e6
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScrollViewTest3Page : ContentPage
+    {
+        public ScrollViewTest3Page()
+        {
+            InitializeComponent();
+
+            LinearLayout l = new LinearLayout
+            {
+                LinearOrientation = LinearLayout.Orientation.Horizontal,
+                LinearAlignment = LinearLayout.Alignment.Begin,
+                CellPadding = new Size(10, 10)
+            };
+
+            var box = new View
+            {
+                Layout = l,
+            };
+
+            Random rand = new Random();
+            for (int i = 0; i <= 60; ++i)
+            {
+                float r = (float)rand.NextDouble();
+                float g = (float)rand.NextDouble();
+                float b = (float)rand.NextDouble();
+                var t = new View
+                {
+                    Size2D = new Size2D(200, 200),
+                    BackgroundColor = new Color(r, g, b, 255),
+                };
+                box.Add(t);
+            }
+            Scroller.Add(box);
+
+            for (int i = 0; i <= 60; ++i)
+            {
+                var t = new TextLabel
+                {
+                    Text = String.Format("I am label #{0}", i),
+                    Size2D = new Size2D(720, 70)
+                };
+                Scroller.Add(t);
+            }
+
+            Scroller.Scrolling += (o, e) =>
+            {
+                scrollInfo.Text = "scroll X:+" + Scroller.ScrollPosition.X.ToString() + ", Y:" + Scroller.ScrollPosition.Y.ToString();
+            };
+
+            btn.Clicked += (o, e) =>
+            {
+                Scroller.ScrollTo(200, true);
+            };
+        }
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest4/ScrollViewTest4.cs b/test/NUITizenGallery/Examples/ScrollViewTest4/ScrollViewTest4.cs
new file mode 100755 (executable)
index 0000000..8d9c8a2
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ScrollViewTest4 : IExample
+    {
+        private Window window;
+        private ScrollViewTest4Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new ScrollViewTest4Page();
+            window.GetDefaultNavigator().Push(page);
+        }
+
+        public void Deactivate()
+        {
+            window.GetDefaultNavigator().Pop();
+            page = null; ;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest4/ScrollViewTest4.xaml.cs b/test/NUITizenGallery/Examples/ScrollViewTest4/ScrollViewTest4.xaml.cs
new file mode 100755 (executable)
index 0000000..cc2423c
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScrollViewTest4Page : ContentPage
+    {
+        private void CreateLabels(View box)
+        {
+            for (int i = 0; i <= 60; ++i)
+            {
+                TextLabel t = new TextLabel
+                {
+                    Text = String.Format("I am label #{0}", i),
+                    Size2D = new Size2D(NUIApplication.GetDefaultWindow().WindowSize.Width, 70),
+                };
+                box.Add(t);
+            }
+            Scroller.Add(box);
+        }
+
+        private void CreateSquares(View box)
+        {
+            Random rand = new Random();
+            for (int i = 0; i <= 60; ++i)
+            {
+                float r = (float)rand.NextDouble();
+                float g = (float)rand.NextDouble();
+                float b = (float)rand.NextDouble();
+                View t = new View
+                {
+                    Size2D = new Size2D(200, 1000),
+                    BackgroundColor = new Color(r, g, b, 255),
+                };
+                box.Add(t);
+            }
+            Scroller.Add(box);
+        }
+
+        public ScrollViewTest4Page()
+        {
+            InitializeComponent();
+
+            LinearLayout l1 = new LinearLayout
+            {
+                LinearOrientation = LinearLayout.Orientation.Horizontal,
+                LinearAlignment = LinearLayout.Alignment.Begin,
+                CellPadding = new Size(10, 10)
+            };
+
+            LinearLayout l2 = new LinearLayout
+            {
+                LinearOrientation = LinearLayout.Orientation.Vertical,
+                LinearAlignment = LinearLayout.Alignment.Begin,
+                CellPadding = new Size(10, 10)
+            };
+
+            View box = new View
+            {
+                Layout = l2,
+            };
+
+            CreateLabels(box);
+
+            Scroller.Scrolling += (o, e) =>
+            {
+                scrollInfo.Text = "scroll X:" + Scroller.ScrollPosition.X.ToString() + ", Y:" + Scroller.ScrollPosition.Y.ToString();
+            };
+
+            btn.Clicked += (o, e) =>
+            {
+                if (Scroller.ScrollingDirection == ScrollableBase.Direction.Horizontal)
+                {
+                    Scroller.ScrollingDirection = ScrollableBase.Direction.Vertical;
+
+                    int maxChild = (int)box.ChildCount;
+                    for (int i = maxChild - 1; i >= 0; --i)
+                    {
+                        View child = box.GetChildAt((uint)i);
+                        if (child == null)
+                        {
+                            continue;
+                        }
+                        box.Remove(child);
+                    }
+                    box.Layout = l2;
+                    CreateLabels(box);
+                }
+                else
+                {
+                    Scroller.ScrollingDirection = ScrollableBase.Direction.Horizontal;
+                    int maxChild = (int)box.ChildCount;
+                    for (int i = maxChild - 1; i >= 0; --i)
+                    {
+                        View child = box.GetChildAt((uint)i);
+                        if (child == null)
+                        {
+                            continue;
+                        }
+                        box.Remove(child);
+                    }
+                    box.Layout = l1;
+                    CreateSquares(box);
+                }
+            };
+        }
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest7/ScrollViewTest7.cs b/test/NUITizenGallery/Examples/ScrollViewTest7/ScrollViewTest7.cs
new file mode 100755 (executable)
index 0000000..96da88e
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ScrollViewTest7 : IExample
+    {
+        private Window window;
+        private ScrollViewTest7Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new ScrollViewTest7Page();
+            window.GetDefaultNavigator().Push(page);
+        }
+
+        public void Deactivate()
+        {
+            window.GetDefaultNavigator().Pop();
+            page = null; ;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ScrollViewTest7/ScrollViewTest7.xaml.cs b/test/NUITizenGallery/Examples/ScrollViewTest7/ScrollViewTest7.xaml.cs
new file mode 100755 (executable)
index 0000000..a624597
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ScrollViewTest7Page : ContentPage
+    {
+        public ScrollViewTest7Page()
+        {
+            InitializeComponent();
+
+            for (int i = 0; i <= 60; ++i)
+            {
+                var t = new TextLabel
+                {
+                    Text = String.Format("I am label #{0}", i),
+                    Size2D = new Size2D(NUIApplication.GetDefaultWindow().WindowSize.Width, 70),
+                };
+                Scroller.Add(t);
+            }
+
+            btn.Clicked += (o, e) =>
+            {
+                Random rand = new Random();
+                float scroll = (float)rand.NextDouble() * 1280;
+                Scroller.ScrollTo(scroll, true);
+            };
+
+            Scroller.Scrolling += (o, e) =>
+            {
+                scrollInfo.Text = "scroll X:+" + Scroller.ScrollPosition.X.ToString() + ", Y:" + Scroller.ScrollPosition.Y.ToString();
+            };
+        }
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SetColorTest/SetColorTest.cs b/test/NUITizenGallery/Examples/SetColorTest/SetColorTest.cs
new file mode 100644 (file)
index 0000000..18f3fda
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class SetColorTest : IExample
+    {
+        Window window;
+        SetColorTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new SetColorTestPage();
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SetColorTest/SetColorTest.xaml.cs b/test/NUITizenGallery/Examples/SetColorTest/SetColorTest.xaml.cs
new file mode 100644 (file)
index 0000000..bfeab79
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+using System;
+
+namespace NUITizenGallery
+{
+    public partial class SetColorTestPage : ContentPage
+    {
+        private Random RandomGenerator = new Random();
+
+        public SetColorTestPage()
+        {
+            InitializeComponent();
+
+            ButtonColorName.Text = GetColorValues(ChangeColorButton.BackgroundColor);
+            CheckBoxColorName.Text = GetColorValues(CheckBox2.BackgroundColor);
+            ProgressBarColorName.Text = GetColorValues(ProgressBar.BackgroundColor);
+
+            ChangeColorButton.Clicked += OnChangeColorClicked;
+        }
+
+        private Color GenerateColor(View component, TextLabel label)
+        {
+            component.BackgroundColor = new Color((float) RandomGenerator.NextDouble(),
+                             (float) RandomGenerator.NextDouble(),
+                             (float) RandomGenerator.NextDouble(),
+                             (float) RandomGenerator.NextDouble());
+
+            label.Text = GetColorValues(component.BackgroundColor);
+            return component.BackgroundColor;
+        }
+
+        private void OnChangeColorClicked(object sender, ClickedEventArgs args)
+        {
+            GenerateColor(ChangeColorButton, ButtonColorName);
+            Color tmp = GenerateColor(CheckBox1, CheckBoxColorName);
+            CheckBox2.BackgroundColor = tmp;
+
+            GenerateColor(ProgressBar, ProgressBarColorName);
+            tmp = GenerateColor(RadioButton1, RadioColorName);
+            RadioButton2.BackgroundColor = tmp;
+        }
+
+        private string GetColorValues(Color c)
+        {
+            return string.Format("R: {0} G: {1} B: {2} A: {3}", c.R, c.G, c.B, c.A);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+
+}
diff --git a/test/NUITizenGallery/Examples/SimpleTest/SimpleTest.cs b/test/NUITizenGallery/Examples/SimpleTest/SimpleTest.cs
new file mode 100644 (file)
index 0000000..25653fc
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class SimpleTest : IExample
+    {
+        Window window;
+        SimpleTestPage page;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+            window = NUIApplication.GetDefaultWindow();
+
+            page = new SimpleTestPage();
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SimpleTest/SimpleTest.xaml.cs b/test/NUITizenGallery/Examples/SimpleTest/SimpleTest.xaml.cs
new file mode 100644 (file)
index 0000000..e2f5e36
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright(c) 2021 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;
+using Tizen.NUI.Binding;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using Tizen.NUI.Components.Extension;
+
+namespace NUITizenGallery
+{
+    public partial class SimpleTestPage : ContentPage
+    {
+        private int ClickedEvents = 0;
+        public SimpleTestPage()
+        {
+            InitializeComponent();
+            CounterButton.Clicked += OnCounterButtonClicked;
+        }
+
+        public void OnCounterButtonClicked(object sender, ClickedEventArgs args)
+        {
+            ClickedEvents += 1;
+            CounterViewer.Text = string.Format("Clicked: {0}", ClickedEvents);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SliderTest1/SliderTest1.cs b/test/NUITizenGallery/Examples/SliderTest1/SliderTest1.cs
new file mode 100644 (file)
index 0000000..9eab23f
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class SliderTest1 : IExample
+    {
+        private Window window;
+        private SliderTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new SliderTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SliderTest1/SliderTest1.xaml.cs b/test/NUITizenGallery/Examples/SliderTest1/SliderTest1.xaml.cs
new file mode 100644 (file)
index 0000000..17cd5d9
--- /dev/null
@@ -0,0 +1,31 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class SliderTest1Page : View
+    {
+        public SliderTest1Page()
+        {
+            InitializeComponent();
+            slider1.ValueChanged += (o, e) =>
+            {
+                text1.Text = "slider value: " + slider1.CurrentValue;
+            };
+
+            button1.Clicked += (o, e) =>
+            {
+                if (slider1.CurrentValue + 10 > slider1.MaxValue) return;
+                slider1.CurrentValue += 10;
+                text1.Text = "slider value: " + slider1.CurrentValue;
+            };
+
+            button2.Clicked += (o, e) =>
+            {
+                if (slider1.CurrentValue - 10 < slider1.MinValue) return;
+                slider1.CurrentValue -= 10;
+                text1.Text = "slider value: " + slider1.CurrentValue;
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/SliderTest2/SliderTest2.cs b/test/NUITizenGallery/Examples/SliderTest2/SliderTest2.cs
new file mode 100644 (file)
index 0000000..40123ac
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class SliderTest2 : IExample
+    {
+        private Window window;
+        private SliderTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new SliderTest2Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SliderTest2/SliderTest2.xaml.cs b/test/NUITizenGallery/Examples/SliderTest2/SliderTest2.xaml.cs
new file mode 100644 (file)
index 0000000..226629b
--- /dev/null
@@ -0,0 +1,35 @@
+using Tizen.NUI;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class SliderTest2Page : View
+    {
+        float saveHeight = 0;
+        public SliderTest2Page()
+        {
+            InitializeComponent();
+            button1.Clicked += (o, e) =>
+            {
+                if (slider1.Direction == Slider.DirectionType.Vertical)
+                {
+                    slider1.Direction = Slider.DirectionType.Horizontal;
+                    slider1.SizeHeight = saveHeight;
+                } 
+                else
+                {
+                    slider1.Direction = Slider.DirectionType.Vertical;
+                    saveHeight = slider1.SizeHeight;
+                    slider1.SizeHeight = 300;
+                }
+
+            };
+
+            slider1.ValueChanged += (o, e) =>
+            {
+                text1.Text = "slider value: " + slider1.CurrentValue;
+            };
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/Examples/StackInGridTest1/StackInGridTest1.cs b/test/NUITizenGallery/Examples/StackInGridTest1/StackInGridTest1.cs
new file mode 100644 (file)
index 0000000..1405644
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class StackInGridTest1 : IExample
+    {
+        private Window window;
+        private StackInGridTest1Page page;
+        private Navigator navigator;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackInGridTest1Page();
+            navigator = window.GetDefaultNavigator();
+
+            navigator.Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            navigator.Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackInGridTest1/StackInGridTest1Page.xaml.cs b/test/NUITizenGallery/Examples/StackInGridTest1/StackInGridTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..67f96af
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class StackInGridTest1Page : ContentPage
+    {
+        public StackInGridTest1Page()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest1/StackLayoutTest1.cs b/test/NUITizenGallery/Examples/StackLayoutTest1/StackLayoutTest1.cs
new file mode 100644 (file)
index 0000000..b659048
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest1 : IExample
+    {
+        private Window window;
+        private StackLayoutTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest1/StackLayoutTest1Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest1/StackLayoutTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..ffd993c
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright(c) 2021 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.Diagnostics;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest1Page : View
+    {
+        public StackLayoutTest1Page()
+        {
+            InitializeComponent();
+            this.Relayout += OnRelayoutChanged;
+        }
+
+        private void OnRelayoutChanged(object sender, EventArgs e)
+        {
+            Debug.WriteLine("{0} LayoutChanged", sender);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                this.Relayout -= OnRelayoutChanged;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest2/StackLayoutTest2.cs b/test/NUITizenGallery/Examples/StackLayoutTest2/StackLayoutTest2.cs
new file mode 100644 (file)
index 0000000..204c614
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest2 : IExample
+    {
+        private Window window;
+        private StackLayoutTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest2/StackLayoutTest2Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest2/StackLayoutTest2Page.xaml.cs
new file mode 100644 (file)
index 0000000..7f59a77
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest2Page : View
+    {
+        public StackLayoutTest2Page()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest3/StackLayoutTest3.cs b/test/NUITizenGallery/Examples/StackLayoutTest3/StackLayoutTest3.cs
new file mode 100644 (file)
index 0000000..683e6ad
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest3 : IExample
+    {
+        private Window window;
+        private StackLayoutTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest3Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest3/StackLayoutTest3Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest3/StackLayoutTest3Page.xaml.cs
new file mode 100644 (file)
index 0000000..fa72f32
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest3Page : View
+    {
+        public StackLayoutTest3Page()
+        {
+            InitializeComponent();
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest4.cs b/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest4.cs
new file mode 100644 (file)
index 0000000..0cd87ef
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest4 : IExample
+    {
+        private Window window;
+        private StackLayoutTest4Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest4Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest4Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest4Page.xaml.cs
new file mode 100644 (file)
index 0000000..5699a76
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest4Page : View
+    {
+        private int i = 0;
+
+        public StackLayoutTest4Page()
+        {
+            InitializeComponent();
+            this.Padding = new Extents(15, 15, 15, 15);
+            addButton.Clicked += OnAddButtonClicked;
+        }
+
+        private void OnAddButtonClicked(object sender, ClickedEventArgs e)
+        {
+            i++;
+            layout.Add(new TextLabel
+            {
+                Text = $"Label #{i}"
+            });
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                addButton.Clicked -= OnAddButtonClicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest5.cs b/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest5.cs
new file mode 100644 (file)
index 0000000..7db87aa
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest5: IExample
+    {
+        private Window window;
+        private StackLayoutTest5Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest5Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest5Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest4/StackLayoutTest5Page.xaml.cs
new file mode 100644 (file)
index 0000000..3006036
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest5Page : View
+    {
+        public StackLayoutTest5Page()
+        {
+            InitializeComponent();
+            this.Padding = new Extents(20, 20, 20, 20);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest6/StackLayoutTest6.cs b/test/NUITizenGallery/Examples/StackLayoutTest6/StackLayoutTest6.cs
new file mode 100644 (file)
index 0000000..e790660
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest6: IExample
+    {
+        private Window window;
+        private StackLayoutTest6Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest6Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest6/StackLayoutTest6Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest6/StackLayoutTest6Page.xaml.cs
new file mode 100644 (file)
index 0000000..b371f39
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest6Page : View
+    {
+        public StackLayoutTest6Page()
+        {
+            InitializeComponent();
+            this.Padding = new Extents(20, 20, 20, 20);
+            paddingSlider.ValueChanged += OnPaddingSilderValueChanged;
+            cellPaddingSlider.ValueChanged += OnCellPaddingilderValueChanged;
+            changeOrientationButton.Clicked += OnOrientationButtonChanged;
+        }
+
+        private void OnOrientationButtonChanged(object sender, ClickedEventArgs e)
+        {
+            LinearLayout linearLayout = (layout.Layout as LinearLayout);
+
+            var linearLayoutOrientation = linearLayout.LinearOrientation = linearLayout.LinearOrientation;
+
+
+            if (linearLayoutOrientation == LinearLayout.Orientation.Vertical)
+            {
+                linearLayout.LinearOrientation = LinearLayout.Orientation.Horizontal;
+                firstLabel.WidthSpecification = LayoutParamPolicies.WrapContent;
+                firstLabel.HeightSpecification = LayoutParamPolicies.MatchParent;
+
+                lastLabel.WidthSpecification = LayoutParamPolicies.WrapContent;
+                lastLabel.HeightSpecification = LayoutParamPolicies.MatchParent;
+
+                blueBox.WidthSpecification = 300;
+                blueBox.HeightSpecification = LayoutParamPolicies.MatchParent;
+
+                switchView.WidthSpecification = LayoutParamPolicies.WrapContent;
+                switchView.HeightSpecification = LayoutParamPolicies.MatchParent;
+            }
+            else if (linearLayoutOrientation == LinearLayout.Orientation.Horizontal)
+            {
+                linearLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+                firstLabel.WidthSpecification = LayoutParamPolicies.MatchParent;
+                firstLabel.HeightSpecification = LayoutParamPolicies.WrapContent;
+
+                lastLabel.WidthSpecification = LayoutParamPolicies.MatchParent;
+                lastLabel.HeightSpecification = LayoutParamPolicies.WrapContent;
+
+                blueBox.HeightSpecification = 300;
+                blueBox.WidthSpecification = LayoutParamPolicies.MatchParent;
+
+                switchView.WidthSpecification = LayoutParamPolicies.MatchParent;
+                switchView.HeightSpecification = LayoutParamPolicies.WrapContent;
+            }
+        }
+
+        private void OnPaddingSilderValueChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            ushort margin = (ushort)e.CurrentValue;
+            layout.Margin = new Extents(margin, margin, margin, margin);
+        }
+
+        private void OnCellPaddingilderValueChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            int cellPadding = (int)e.CurrentValue;
+            (layout.Layout as LinearLayout).CellPadding = new Size2D(cellPadding, cellPadding);
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                paddingSlider.ValueChanged -= OnPaddingSilderValueChanged;
+                cellPaddingSlider.ValueChanged -= OnCellPaddingilderValueChanged;
+                changeOrientationButton.Clicked -= OnOrientationButtonChanged;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest8/StackLayoutTest8.cs b/test/NUITizenGallery/Examples/StackLayoutTest8/StackLayoutTest8.cs
new file mode 100644 (file)
index 0000000..15387be
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class StackLayoutTest8: IExample
+    {
+        private Window window;
+        private StackLayoutTest8Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new StackLayoutTest8Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/StackLayoutTest8/StackLayoutTest8Page.xaml.cs b/test/NUITizenGallery/Examples/StackLayoutTest8/StackLayoutTest8Page.xaml.cs
new file mode 100644 (file)
index 0000000..6166c76
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class StackLayoutTest8Page : View
+    {
+        public StackLayoutTest8Page()
+        {
+            InitializeComponent();
+            this.Padding = new Extents(20, 20, 20, 20);
+            sliderPadding.ValueChanged += OnPaddingSliderChanged;
+            sliderCellPadding.ValueChanged += OnCellPaddingSilderChanged;
+            sliderMargin.ValueChanged += OnMarginSliderChanged;
+            buttonOrientation.Clicked += OnButtonOrientationClicked;
+            buttonReset.Clicked += OnResetButtonClikced;
+
+        }
+
+        private void OnPaddingSliderChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            ushort padding = (ushort)e.CurrentValue;
+            layout.Padding = new Extents(padding, padding, padding, padding);
+        }
+
+        private void OnCellPaddingSilderChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            (layout.Layout as LinearLayout).CellPadding = new Size2D((int)e.CurrentValue, (int)e.CurrentValue);
+        }
+
+        private void OnMarginSliderChanged(object sender, SliderValueChangedEventArgs e)
+        {
+            ushort margin = (ushort)e.CurrentValue;
+            layout.Margin = new Extents(margin, margin, margin, margin);
+        }
+
+        private void OnButtonOrientationClicked(object sender, ClickedEventArgs e)
+        {
+            LinearLayout linearLayout = (layout.Layout as LinearLayout);
+
+            if (linearLayout.LinearOrientation == LinearLayout.Orientation.Horizontal)
+            {
+                linearLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+                redBox.WidthSpecification = LayoutParamPolicies.MatchParent;
+                greenBox.WidthSpecification = LayoutParamPolicies.MatchParent;
+                blueBox.WidthSpecification = LayoutParamPolicies.MatchParent;
+                redBox.HeightSpecification = 80;
+                greenBox.HeightSpecification = 80;
+                blueBox.HeightSpecification = 80;
+            }
+            else
+            {
+                linearLayout.LinearOrientation = LinearLayout.Orientation.Horizontal;
+                redBox.WidthSpecification = 80;
+                greenBox.WidthSpecification = 80;
+                blueBox.WidthSpecification = 80;
+            }
+        }
+
+        private void OnResetButtonClikced(object sender, ClickedEventArgs e)
+        {
+            layout.Padding = new Extents(0, 0, 0, 0);
+            layout.Margin = new Extents(0, 0, 0, 0);
+            (layout.Layout as LinearLayout).CellPadding = new Size2D(0,0);
+
+            sliderPadding.CurrentValue = 0.0f;
+            sliderCellPadding.CurrentValue = 0.0f;
+            sliderMargin.CurrentValue = 0.0f;
+
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                sliderPadding.ValueChanged -= OnPaddingSliderChanged;
+                sliderCellPadding.ValueChanged -= OnCellPaddingSilderChanged;
+                sliderMargin.ValueChanged -= OnMarginSliderChanged;
+                buttonOrientation.Clicked -= OnButtonOrientationClicked;
+                buttonReset.Clicked -= OnResetButtonClikced;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SwipeGestureRecognizerTest/SwipeGestureRecognizerTest.cs b/test/NUITizenGallery/Examples/SwipeGestureRecognizerTest/SwipeGestureRecognizerTest.cs
new file mode 100644 (file)
index 0000000..e971e15
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class SwipeGestureRecognizerTest : IExample
+    {
+        private Window window;
+        private SwipeGestureRecognizerTestPage page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new SwipeGestureRecognizerTestPage();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SwipeGestureRecognizerTest/SwipeGestureRecognizerTest.xaml.cs b/test/NUITizenGallery/Examples/SwipeGestureRecognizerTest/SwipeGestureRecognizerTest.xaml.cs
new file mode 100644 (file)
index 0000000..0605462
--- /dev/null
@@ -0,0 +1,34 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class SwipeGestureRecognizerTestPage : ContentPage
+    {
+        private PanGestureDetector panGestureDetector;
+
+        public SwipeGestureRecognizerTestPage()
+        {
+            InitializeComponent();
+
+            panGestureDetector = new PanGestureDetector();
+
+            panGestureDetector.Attach(areaView);
+            panGestureDetector.Detected += (obj, e) =>
+            {
+                Vector2 velocity = e.PanGesture.Velocity;
+
+                if (velocity.X > 0 )
+                {
+                    text1.Text = "Direction : Right";
+                }
+                else if (velocity.X < 0)
+                {
+                    text1.Text = "Direction : Left";
+                }
+            };
+
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SwipeViewTest1/SwipeViewTest1.cs b/test/NUITizenGallery/Examples/SwipeViewTest1/SwipeViewTest1.cs
new file mode 100644 (file)
index 0000000..b9763df
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class SwipeViewTest1 : IExample
+    {
+        private Window window;
+        private SwipeViewTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new SwipeViewTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SwipeViewTest1/SwipeViewTest1.xaml.cs b/test/NUITizenGallery/Examples/SwipeViewTest1/SwipeViewTest1.xaml.cs
new file mode 100644 (file)
index 0000000..a9b430e
--- /dev/null
@@ -0,0 +1,96 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class SwipeViewTest1Page : ContentPage
+    {
+        private PanGestureDetector panGestureDetector;
+        private Direction swipeDirection = Direction.Vertical;
+        private Position initPosition;
+        private int swipeCount;
+
+        public enum Direction
+        {
+            Horizontal,
+            Vertical
+        }
+
+        public SwipeViewTest1Page()
+        {
+            InitializeComponent();
+
+            swipeCount = 0;
+
+            imageView.Scale = imageView.Scale * new Vector3(1.2f, 1.2f, 1.0f);
+
+            initPosition = imageView.Position;
+
+            ContentView.Padding = new Extents(20, 20, 20, 20);
+
+            panGestureDetector = new PanGestureDetector();
+            panGestureDetector.Attach(imageView);
+            panGestureDetector.Detected += (obj, e) =>
+            {
+                Vector2 velocity = e.PanGesture.Velocity;
+                if (e.PanGesture.State == Gesture.StateType.Started)
+                {
+                    if (velocity.X != 0 )
+                    {
+                        swipeDirection = Direction.Horizontal;
+                        if (velocity.X > 0) {
+                            image1.Size = new Size(100, 100);
+                        }
+                        else
+                        {
+                            image2.Size = new Size(100, 100);
+                        }
+                    }
+                    else if (velocity.Y != 0)
+                    {
+                        swipeDirection = Direction.Vertical;
+
+                        swipeCount++;
+                        if ((swipeCount % 2) > 0)
+                        {
+                            imageView.BorderlineWidth = 5f;
+                            imageView.BorderlineColor = Color.Green;
+                        }
+                        else
+                        {
+                            imageView.BorderlineWidth = 0f;
+                        }
+
+                        text2.Text = "Item";
+                        text3.Text = "Item";
+
+                    }
+                }
+                else if (e.PanGesture.State == Gesture.StateType.Continuing)
+                {
+                    if (swipeDirection == Direction.Vertical && imageView.Position.Y < 70 && imageView.Position.Y > -70)
+                    {
+                        imageView.Position += new Position(0, e.PanGesture.ScreenDisplacement.Y, 0);
+                    }
+                    else if (swipeDirection == Direction.Horizontal && imageView.Position.X < 70 && imageView.Position.X > -70)
+                    {
+                        imageView.Position += new Position(e.PanGesture.ScreenDisplacement.X, 0, 0);
+                    }
+                }
+                else if (e.PanGesture.State == Gesture.StateType.Finished || e.PanGesture.State == Gesture.StateType.Cancelled)
+                {
+                    imageView.Position = initPosition;
+
+                    image1.Size = new Size(0, 0);
+                    image2.Size = new Size(0, 0);
+
+                    text2.Text = "";
+                    text3.Text = "";
+                }
+
+            };
+
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SwipeViewTest2/SwipeViewTest2.cs b/test/NUITizenGallery/Examples/SwipeViewTest2/SwipeViewTest2.cs
new file mode 100644 (file)
index 0000000..8e07e7b
--- /dev/null
@@ -0,0 +1,32 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class SwipeViewTest2 : IExample
+    {
+        private Window window;
+        private SwipeViewTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new SwipeViewTest2Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.GetDefaultNavigator().Push(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/SwipeViewTest2/SwipeViewTest2.xaml.cs b/test/NUITizenGallery/Examples/SwipeViewTest2/SwipeViewTest2.xaml.cs
new file mode 100644 (file)
index 0000000..a7a540c
--- /dev/null
@@ -0,0 +1,71 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class SwipeViewTest2Page : ContentPage
+    {
+        private PanGestureDetector panGestureDetector;
+        private Position init1Position;
+        private Position init2Position;
+
+        public SwipeViewTest2Page()
+        {
+            InitializeComponent();
+
+            panGestureDetector = new PanGestureDetector();
+            panGestureDetector.Attach(text1View);
+            panGestureDetector.Attach(text2View);
+            panGestureDetector.Detected += (obj, e) =>
+            {
+                Vector2 velocity = e.PanGesture.Velocity;
+                View view = e.View;
+                if (view != null)
+                {
+                    if (e.PanGesture.State == Gesture.StateType.Started)
+                    {
+                        init1Position = text1View.Position;
+                        init2Position = text2View.Position;
+                    }
+                    else if (e.PanGesture.State == Gesture.StateType.Finished || e.PanGesture.State == Gesture.StateType.Cancelled)
+                    {
+                        if(view.Position.X < - 110)
+                        {
+                            var button = new Button()
+                            {
+                                Text = "Cancel",
+                            };
+
+                            button.Clicked += (object s, ClickedEventArgs a) =>
+                            {
+                                Navigator?.Pop();
+                            };
+
+                            if (view == text1View)
+                            {
+                                DialogPage.ShowAlertDialog("SwipeView", "SwipeItemView Invoked", button);
+                            }
+                            else if (view == text2View)
+                            {
+                                DialogPage.ShowAlertDialog("SwipeView", "SwipeItemView Command Executed", button);
+                            }
+                        }
+
+                        text1View.Position = init1Position;
+                        text2View.Position = init2Position;
+                    }
+                    else
+                    {
+                        if (velocity.X < 0 && view.Position.X > -140)
+                        {
+                            view.Position += new Position(e.PanGesture.ScreenDisplacement.X, 0, 0);
+                        }
+                    }
+                }
+            };
+
+        }
+
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TabViewTest/TabViewTest.cs b/test/NUITizenGallery/Examples/TabViewTest/TabViewTest.cs
new file mode 100644 (file)
index 0000000..2f16073
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class TabViewTest : IExample
+    {
+        Window window;
+        Navigator navigator;
+        TabViewTestPage page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new TabViewTestPage();
+            navigator.Push(page);
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TabViewTest/TabViewTestPage.xaml.cs b/test/NUITizenGallery/Examples/TabViewTest/TabViewTestPage.xaml.cs
new file mode 100644 (file)
index 0000000..26827f5
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class TabViewTestPage : ContentPage
+    {
+        private int tabCount = 0;
+
+        public TabViewTestPage()
+        {
+            InitializeComponent();
+
+            tabView.AddTab(CreateTabButton(), CreateView());
+            tabCount++;
+
+            tabView.AddTab(CreateTabButton(), CreateView());
+            tabCount++;
+        }
+
+        private TabButton CreateTabButton()
+        {
+            return new TabButton() { Text = "Tab" + (tabCount + 1), };
+        }
+
+        private View CreateView()
+        {
+            Color backgroundColor;
+            Color buttonBackgroundColor;
+
+            if ((tabCount + 1) % 4 == 0)
+            {
+                backgroundColor = Color.DarkGreen;
+                buttonBackgroundColor = Color.Green;
+            }
+            else if ((tabCount + 1) % 4 == 1)
+            {
+                backgroundColor = Color.DarkRed;
+                buttonBackgroundColor = Color.Red;
+            }
+            else if ((tabCount + 1) % 4 == 2)
+            {
+                backgroundColor = Color.DarkBlue;
+                buttonBackgroundColor = Color.Blue;
+            }
+            else
+            {
+                backgroundColor = Color.SaddleBrown;
+                buttonBackgroundColor = Color.Orange;
+            }
+
+            var container = new View()
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    LinearAlignment = LinearLayout.Alignment.Center,
+                    CellPadding = new Size2D(0, 20),
+                },
+                BackgroundColor = backgroundColor,
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+            };
+
+            var buttonAddTab = new Button()
+            {
+                Text = "Add Tab",
+                BackgroundColor = buttonBackgroundColor,
+            };
+            buttonAddTab.Clicked += (object sender, ClickedEventArgs args) =>
+            {
+                if (tabCount < 4)
+                {
+                    tabView.AddTab(CreateTabButton(), CreateView());
+                    tabCount++;
+                }
+            };
+            container.Add(buttonAddTab);
+
+            var buttonRemoveTab = new Button()
+            {
+                Text = "Remove Tab",
+                BackgroundColor = buttonBackgroundColor,
+            };
+            buttonRemoveTab.Clicked += (object sender, ClickedEventArgs args) =>
+            {
+                if (tabCount > 1)
+                {
+                    tabView.RemoveTab(tabCount - 1);
+                    tabCount--;
+                }
+            };
+            container.Add(buttonRemoveTab);
+
+            return container;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest1/TapGestureTest1.cs b/test/NUITizenGallery/Examples/TapGestureTest1/TapGestureTest1.cs
new file mode 100644 (file)
index 0000000..ae3b8e9
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class TapGestureTest1 : IExample
+    {
+        private Window window;
+        private TapGestureTest1Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new TapGestureTest1Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest1/TapGestureTest1.xaml.cs b/test/NUITizenGallery/Examples/TapGestureTest1/TapGestureTest1.xaml.cs
new file mode 100644 (file)
index 0000000..d46fcd2
--- /dev/null
@@ -0,0 +1,115 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class TapGestureTest1Page : ContentPage
+    {
+        private string ImageURL = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "images/";
+        private TapGestureDetector imageTapDetector;
+        private TapGestureDetector frameTapDetector;
+        private int imageTapCount;
+        private int frameTapCount;
+
+        public TapGestureTest1Page()
+        {
+            InitializeComponent();
+            tabView.Padding = new Extents(20, 20, 20, 20);
+
+            CreateImageTab();
+            CreateFrameTab();
+        }
+
+        private void CreateImageTab()
+        {
+          imageTapCount = 0;
+          TabButton button = new TabButton() { Text = "Image", };
+          View view = new View
+          {
+            Layout = new LinearLayout()
+              {
+                  LinearOrientation = LinearLayout.Orientation.Vertical,
+                  LinearAlignment = LinearLayout.Alignment.Center,
+                  CellPadding = new Size2D(30, 30),
+              },
+              WidthSpecification = LayoutParamPolicies.MatchParent,
+              HeightSpecification = LayoutParamPolicies.MatchParent,
+          };
+
+          ImageView image = new ImageView
+          {
+              ResourceUrl = ImageURL + "picture.png",
+              BorderlineWidth = 5f,
+              BorderlineColor = Color.Red,
+          };
+
+          TextLabel label = new TextLabel
+          {
+            Text = "tap the photo!",
+            PointSize = 8,
+          };
+
+          view.Add(image);
+          view.Add(label);
+
+          tabView.AddTab(button, view);
+
+          imageTapDetector = new TapGestureDetector();
+          imageTapDetector.Attach(image);
+          imageTapDetector.Detected += (obj, e) =>
+          {
+              ++imageTapCount;
+              label.Text = imageTapCount + " taps so far!";
+          };
+
+        }
+
+        private void CreateFrameTab()
+        {
+          frameTapCount = 0;
+          TabButton button = new TabButton() { Text = "Frame", };
+
+          View view = new View
+          {
+            Layout = new LinearLayout()
+              {
+                  LinearOrientation = LinearLayout.Orientation.Vertical,
+                  LinearAlignment = LinearLayout.Alignment.Center,
+                  CellPadding = new Size2D(30, 30),
+              },
+              WidthSpecification = LayoutParamPolicies.MatchParent,
+              HeightSpecification = LayoutParamPolicies.MatchParent,
+          };
+
+          View image = new View
+          {
+              BackgroundColor = Color.White,
+              Size = new Size(200, 200),
+
+              BorderlineWidth = 5f,
+              BorderlineColor = Color.Red,
+          };
+
+          TextLabel label = new TextLabel
+          {
+            Text = "tap the frame!",
+            PointSize = 8,
+          };
+
+          view.Add(image);
+          view.Add(label);
+
+          tabView.AddTab(button, view);
+
+          frameTapDetector = new TapGestureDetector();
+          frameTapDetector.Attach(image);
+          frameTapDetector.Detected += (obj, e) =>
+          {
+              ++frameTapCount;
+              label.Text = frameTapCount + " taps so far!";
+          };
+
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest2/TapGestureTest2.cs b/test/NUITizenGallery/Examples/TapGestureTest2/TapGestureTest2.cs
new file mode 100644 (file)
index 0000000..618425d
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class TapGestureTest2 : IExample
+    {
+        private Window window;
+        private TapGestureTest2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new TapGestureTest2Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest2/TapGestureTest2.xaml.cs b/test/NUITizenGallery/Examples/TapGestureTest2/TapGestureTest2.xaml.cs
new file mode 100644 (file)
index 0000000..aa24a66
--- /dev/null
@@ -0,0 +1,48 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class TapGestureTest2Page : ContentPage
+    {
+        private TapGestureDetector tapDetector;
+        private int tapCount;
+        private Vector3 initScale;
+
+        public TapGestureTest2Page()
+        {
+            InitializeComponent();
+            ContentView.Padding = new Extents(20, 20, 20, 20);
+
+            initScale = imageView.Scale;
+
+            text1.Text = "  Tap the image!\n  Onte tap: Rotate 45 degrees\n  Two taps: Increase scale by 0.5\n  Three taps: Reset the image\n";
+
+            tapDetector = new TapGestureDetector();
+            tapDetector.SetMaximumTapsRequired(3);
+
+            tapDetector.Attach(imageView);
+
+            tapDetector.Detected += (obj, e) =>
+            {
+                if (e.TapGesture.NumberOfTaps == 1)
+                {
+                    ++tapCount;
+                    int rotation = tapCount % 8;
+                    imageView.Orientation = new Rotation(new Radian(new Degree(45 * rotation)), new Vector3(0f, 0f, 1f));
+                }
+                else if (e.TapGesture.NumberOfTaps == 2)
+                {
+                    imageView.Scale = imageView.Scale * new Vector3(1.5f, 1.5f, 1.0f);
+                }
+                else if (e.TapGesture.NumberOfTaps == 3)
+                {
+                    imageView.Scale = initScale;
+                    imageView.Orientation = new Rotation(new Radian(new Degree(0)), new Vector3(0f, 0f, 1f));
+                }
+            };
+
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest3/TapGestureTest3.cs b/test/NUITizenGallery/Examples/TapGestureTest3/TapGestureTest3.cs
new file mode 100644 (file)
index 0000000..85d6682
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class TapGestureTest3 : IExample
+    {
+        private Window window;
+        private TapGestureTest3Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new TapGestureTest3Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest3/TapGestureTest3.xaml.cs b/test/NUITizenGallery/Examples/TapGestureTest3/TapGestureTest3.xaml.cs
new file mode 100644 (file)
index 0000000..f9cad78
--- /dev/null
@@ -0,0 +1,62 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class TapGestureTest3Page : ContentPage
+    {
+        private TapGestureDetector tapDetector;
+        private int tapCount;
+        private uint buttonClicked;
+
+        public TapGestureTest3Page()
+        {
+            InitializeComponent();
+            ContentView.Padding = new Extents(20, 20, 20, 20);
+
+            buttonClicked = 0;
+            tapCount = 0;
+
+            tapDetector = new TapGestureDetector();
+            text2.Text = "Number of taps required : "+tapDetector.GetMaximumTapsRequired();
+
+            button1.Clicked += (o, e) =>
+            {
+                ++buttonClicked;
+                buttonClicked = buttonClicked % 2;
+
+                if(buttonClicked == 0)
+                {
+                    tapDetector.SetMinimumTapsRequired(1);
+                    tapDetector.SetMaximumTapsRequired(1);
+                }
+                else
+                {
+                    tapDetector.SetMaximumTapsRequired(2);
+                    tapDetector.SetMinimumTapsRequired(2);
+                }
+
+
+                text2.Text = "Number of taps required : "+tapDetector.GetMaximumTapsRequired();
+            };
+
+            tapDetector.Attach(imageView);
+            tapDetector.Detected += (obj, e) =>
+            {
+                tapCount++;
+                text1.Text = tapCount + " taps so far!";
+
+                if((tapCount%2) > 0)
+                {
+                    imageView.BorderlineWidth = 5f;
+                    imageView.BorderlineColor = Color.Red;
+                }
+                else
+                {
+                    imageView.BorderlineWidth = 0f;
+                }
+            };
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest4/TapGestureTest4.cs b/test/NUITizenGallery/Examples/TapGestureTest4/TapGestureTest4.cs
new file mode 100644 (file)
index 0000000..f6c6102
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class TapGestureTest4 : IExample
+    {
+        private Window window;
+        private TapGestureTest4Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new TapGestureTest4Page();
+            page.PositionUsesPivotPoint = true;
+            page.ParentOrigin = ParentOrigin.Center;
+            page.PivotPoint = PivotPoint.Center;
+            page.HeightResizePolicy = ResizePolicyType.FillToParent;
+            page.WidthResizePolicy = ResizePolicyType.FillToParent;
+            window.Add(page);
+
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TapGestureTest4/TapGestureTest4.xaml.cs b/test/NUITizenGallery/Examples/TapGestureTest4/TapGestureTest4.xaml.cs
new file mode 100644 (file)
index 0000000..1e91609
--- /dev/null
@@ -0,0 +1,49 @@
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class TapGestureTest4Page : ContentPage
+    {
+        private TapGestureDetector imageTapDetector;
+        private TapGestureDetector boxviewTapDetector;
+        private TapGestureDetector labelTapDetector;
+
+        public TapGestureTest4Page()
+        {
+            InitializeComponent();
+            ContentView.Padding = new Extents(20, 20, 20, 20);
+
+            text1.Text = "  Please tap the following widgets. \n : Image / BoxView / Button / Label";
+
+            imageTapDetector = new TapGestureDetector();
+            boxviewTapDetector = new TapGestureDetector();
+            labelTapDetector = new TapGestureDetector();
+
+            imageTapDetector.Attach(imageView);
+            imageTapDetector.Detected += (obj, e) =>
+            {
+                text2.Text = "An image is tapped";
+            };
+
+            boxviewTapDetector.Attach(boxView);
+            boxviewTapDetector.Detected += (obj, e) =>
+            {
+                text2.Text = "A boxview is tapped";
+            };
+
+            button1.Clicked += (obj, e) =>
+            {
+                text2.Text = "A button is tapped";
+            };
+
+            labelTapDetector.Attach(label1);
+            labelTapDetector.Detected += (obj, e) =>
+            {
+                text2.Text = "A label is tapped";
+            };
+
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/Test1/Test1.cs b/test/NUITizenGallery/Examples/Test1/Test1.cs
new file mode 100644 (file)
index 0000000..35286f5
--- /dev/null
@@ -0,0 +1,34 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class Test1 : IExample
+    {
+        private Window window;
+        private Test1Page page;
+        private Animation animation;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new Test1Page();
+
+            window.Add(page);
+
+            animation = new Animation(2000);
+            animation.AnimateTo(page.test1PageText, "Orientation", new Rotation(new Radian(new Degree(180.0f)), PositionAxis.X), 0, 500);
+            animation.AnimateTo(page.test1PageText, "Orientation", new Rotation(new Radian(new Degree(0.0f)), PositionAxis.X), 500, 1000);
+            animation.Looping = true;
+            animation.Play();
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            animation.Clear();
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/Test1/Test1.xaml.cs b/test/NUITizenGallery/Examples/Test1/Test1.xaml.cs
new file mode 100644 (file)
index 0000000..fece500
--- /dev/null
@@ -0,0 +1,13 @@
+
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class Test1Page : View
+    {
+        public Test1Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/Test2/Test2.cs b/test/NUITizenGallery/Examples/Test2/Test2.cs
new file mode 100644 (file)
index 0000000..2fb4207
--- /dev/null
@@ -0,0 +1,26 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class Test2 : IExample
+    {
+        Window window;
+        Test2Page page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new Test2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/Test2/Test2.xaml.cs b/test/NUITizenGallery/Examples/Test2/Test2.xaml.cs
new file mode 100644 (file)
index 0000000..7b9c6f1
--- /dev/null
@@ -0,0 +1,13 @@
+
+using Tizen.NUI.BaseComponents;
+
+namespace NUITizenGallery
+{
+    public partial class Test2Page : View
+    {
+        public Test2Page()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TextAnchorTest/TextAnchorTest.cs b/test/NUITizenGallery/Examples/TextAnchorTest/TextAnchorTest.cs
new file mode 100644 (file)
index 0000000..8c28c07
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class TextAnchorTest : IExample
+    {
+        Window window;
+        Navigator navigator;
+        TextAnchorTestPage page;
+        int pageCount = 0;
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            pageCount = navigator.PageCount;
+
+            page = new TextAnchorTestPage();
+            navigator.Push(page);
+
+        }
+
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+
+            for (int i = navigator.PageCount; i > pageCount; i--)
+            {
+                navigator.RemoveAt(i - 1);
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TextAnchorTest/TextAnchorTest.xaml.cs b/test/NUITizenGallery/Examples/TextAnchorTest/TextAnchorTest.xaml.cs
new file mode 100644 (file)
index 0000000..33a0bd2
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+namespace NUITizenGallery
+{
+    public partial class TextAnchorTestPage : ContentPage
+    {
+        public TextAnchorTestPage()
+        {
+            InitializeComponent();
+
+            anchorLabel.Text = "<a href='www.tizen.org/TextLabel'>Click TextLabel Anchor</a>";
+            anchorLabel.EnableMarkup = true;
+            anchorLabel.AnchorClicked += OnAnchorClicked;
+
+            anchorField.Text = "<a href='www.tizen.org/TextField'>Click TextField Anchor</a>";
+            anchorField.EnableMarkup = true;
+            anchorField.AnchorClicked += OnAnchorClicked;
+
+            anchorEditor.Text = "<a href='www.tizen.org/TextEditor'>Click TextEditor Anchor</a>";
+            anchorEditor.EnableMarkup = true;
+            anchorEditor.AnchorClicked += OnAnchorClicked;
+        }
+
+        public void OnAnchorClicked(object sender, AnchorClickedEventArgs e)
+        {
+            field.Text = e.Href;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TimePickerTest/TimePickerTest.cs b/test/NUITizenGallery/Examples/TimePickerTest/TimePickerTest.cs
new file mode 100644 (file)
index 0000000..73bf02b
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class TimePickerTest : IExample
+    {
+        private Window window;
+        private TimePickerTestPage page;
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            page = new TimePickerTestPage();
+
+            window.GetDefaultNavigator().Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            window.GetDefaultNavigator().Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/TimePickerTest/TimePickerTest.xaml.cs b/test/NUITizenGallery/Examples/TimePickerTest/TimePickerTest.xaml.cs
new file mode 100644 (file)
index 0000000..215ecf1
--- /dev/null
@@ -0,0 +1,80 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+
+namespace NUITizenGallery
+{
+    public partial class TimePickerTestPage : ContentPage
+    {
+        private DateTime time;
+        private TimePicker timePicker;
+        private bool is24hr = false;
+
+        private void timeButtonClicked(object sender, ClickedEventArgs e)
+        {
+            timePicker = new TimePicker()
+            {
+                //Should give a size to picker for content of AlertDialog
+                Size = new Size(600, 339),
+                Time = time,
+            };
+            timePicker.Is24HourView = is24hr;
+            if (is24hr)
+                timePicker.Size = new Size(380, 339);
+
+            var btn1 = new Button() { Text = "Set", };
+            btn1.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                time = timePicker.Time;
+                text1.Text=timePicker.Time.Hour + ":" + timePicker.Time.Minute;
+                Navigator?.Pop();
+            };
+
+            var btn2 = new Button() { Text = "Cancel", };
+            btn2.Clicked += (object s, ClickedEventArgs a) =>
+            {
+                Navigator?.Pop();
+            };
+
+            View[] actions = {btn1, btn2};
+            var dialogPage = new DialogPage()
+            {
+                Content = new AlertDialog()
+                {
+                    Title = "Set Date",
+                    Content = timePicker,
+                    Actions =  actions,
+                },
+            };
+
+            NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(dialogPage);
+        }
+
+        private void setNowButtonClicked(object sender, ClickedEventArgs e)
+        {
+            time = DateTime.Now;
+            text1.Text= time.Hour + ":" + time.Minute;
+        }
+
+        private void changePickerStyleButtonClicked(object sender, ClickedEventArgs e)
+        {
+            if (is24hr== false)
+                is24hr= true;
+            else
+                is24hr= false;
+        }
+
+        public TimePickerTestPage()
+        {
+            InitializeComponent();
+            time = DateTime.Now;
+            text1.Text= time.Hour + ":" + time.Minute;
+            timeButton.Clicked += timeButtonClicked;
+            setNowButton.Clicked += setNowButtonClicked;
+            changePickerStyleButton.Clicked += changePickerStyleButtonClicked;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ToolbarItemTest1/ToolbarItemTest1.cs b/test/NUITizenGallery/Examples/ToolbarItemTest1/ToolbarItemTest1.cs
new file mode 100644 (file)
index 0000000..c5dc1f5
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright(c) 2021 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 Tizen.NUI;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    internal class ToolbarItemTest1 : IExample
+    {
+        private Window window;
+        private ToolbarItemTest1Page page;
+        Navigator navigator;
+
+
+        public void Activate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Activate()");
+
+            window = NUIApplication.GetDefaultWindow();
+            navigator = window.GetDefaultNavigator();
+
+            page = new ToolbarItemTest1Page();
+            navigator.Push(page);
+        }
+        public void Deactivate()
+        {
+            Console.WriteLine($"@@@ this.GetType().Name={this.GetType().Name}, Deactivate()");
+            navigator.Pop();
+            page = null;
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/ToolbarItemTest1/ToolbarItemTest1Page.xaml.cs b/test/NUITizenGallery/Examples/ToolbarItemTest1/ToolbarItemTest1Page.xaml.cs
new file mode 100644 (file)
index 0000000..b4f9a69
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ * Copyright(c) 2021 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.Text.RegularExpressions;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class ToolbarItemTest1Page : ContentPage
+    {
+        public ToolbarItemTest1Page()
+        {
+            InitializeComponent();
+            addPage1Button.Clicked += OnButtonClicked;
+            addPage2Button.Clicked += OnButtonClicked;
+            addPage3Button.Clicked += OnButtonClicked;
+            addPage4Button.Clicked += OnButtonClicked;
+        }
+
+        private void OnButtonClicked(object sender, ClickedEventArgs e)
+        {
+            if (Navigator == null)
+            {
+                Tizen.Log.Error("NUI", "The page should be pushed to a Navigator.\n");
+                return;
+            }
+
+            int pageNumber = int.Parse(Regex.Match((sender as Button).Text, @"\d+").Value);
+            Navigator.Push(CreatePage(pageNumber));
+        }
+
+        private Page CreatePage(int pageNumber)
+        {
+            var page = new ContentPage();
+            page.AppBar = new AppBar
+            {
+                Title = $"Page {pageNumber}"
+            };
+
+            page.Content = new View
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                BackgroundColor = Color.White
+            };
+
+            return page;
+        }
+
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (Disposed)
+            {
+                return;
+            }
+
+            if (type == DisposeTypes.Explicit)
+            {
+                addPage1Button.Clicked -= OnButtonClicked;
+                addPage2Button.Clicked -= OnButtonClicked;
+                addPage3Button.Clicked -= OnButtonClicked;
+                addPage4Button.Clicked -= OnButtonClicked;
+                RemoveAllChildren(true);
+            }
+
+            base.Dispose(type);
+        }
+
+        private void RemoveAllChildren(bool dispose = false)
+        {
+            RecursiveRemoveChildren(this, dispose);
+        }
+
+        private void RecursiveRemoveChildren(View parent, bool dispose)
+        {
+            if (parent == null)
+            {
+                return;
+            }
+
+            int maxChild = (int)parent.ChildCount;
+            for (int i = maxChild - 1; i >= 0; --i)
+            {
+                View child = parent.GetChildAt((uint)i);
+                if (child == null)
+                {
+                    continue;
+                }
+                RecursiveRemoveChildren(child, dispose);
+                parent.Remove(child);
+                if (dispose)
+                {
+                    child.Dispose();
+                }
+            }
+        }
+    }
+}
diff --git a/test/NUITizenGallery/Examples/WebViewTest1/WebViewTest1.cs b/test/NUITizenGallery/Examples/WebViewTest1/WebViewTest1.cs
new file mode 100644 (file)
index 0000000..6752a1c
--- /dev/null
@@ -0,0 +1,24 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class WebViewTest1 : IExample
+    {
+        private Window window;
+        private WebViewTest1Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new WebViewTest1Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/WebViewTest1/WebViewTest1.xaml.cs b/test/NUITizenGallery/Examples/WebViewTest1/WebViewTest1.xaml.cs
new file mode 100644 (file)
index 0000000..8b7549b
--- /dev/null
@@ -0,0 +1,50 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class WebViewTest1Page : ContentPage
+    {
+        public WebViewTest1Page()
+        {
+            InitializeComponent();
+        }
+
+        public void OnTextChanged(object sender, EventArgs e)
+        {
+            if (sender is TextField textField)
+            {
+                GoButton.IsEnabled = !string.IsNullOrWhiteSpace(textField.Text);
+            }
+        }
+
+        public void OnUrlChanged(object sender, WebViewUrlChangedEventArgs e)
+        {
+            if (sender is WebView webView)
+            {
+                InputField.Text = e.NewPageUrl;
+                BackButton.IsEnabled = webView.CanGoBack();
+                NextButton.IsEnabled = webView.CanGoForward();
+            }
+        }
+
+        public void OnGoClicked(object sender, EventArgs e)
+        {
+            InputField.GetInputMethodContext()?.HideInputPanel();
+            TargetWebView.Url = InputField.Text;
+        }
+
+        public void OnBackClicked(object sender, EventArgs e)
+        {
+            TargetWebView.GoBack();
+        }
+
+        public void OnNextClicked(object sender, EventArgs e)
+        {
+            TargetWebView.GoForward();
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/WebViewTest2/WebViewTest2.cs b/test/NUITizenGallery/Examples/WebViewTest2/WebViewTest2.cs
new file mode 100644 (file)
index 0000000..a032f0c
--- /dev/null
@@ -0,0 +1,24 @@
+using System;
+using Tizen.NUI;
+
+namespace NUITizenGallery
+{
+    internal class WebViewTest2 : IExample
+    {
+        private Window window;
+        private WebViewTest2Page page;
+        public void Activate()
+        {
+            window = NUIApplication.GetDefaultWindow();
+            page = new WebViewTest2Page();
+
+            window.Add(page);
+        }
+        public void Deactivate()
+        {
+            page.Unparent();
+            page.Dispose();
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/Examples/WebViewTest2/WebViewTest2.xaml.cs b/test/NUITizenGallery/Examples/WebViewTest2/WebViewTest2.xaml.cs
new file mode 100644 (file)
index 0000000..9ec425b
--- /dev/null
@@ -0,0 +1,44 @@
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Components;
+
+namespace NUITizenGallery
+{
+    public partial class WebViewTest2Page : ContentPage
+    {
+        public WebViewTest2Page()
+        {
+            InitializeComponent();
+
+            string text = @"<div style='background-color:yellow'>
+  <h1>Hello World!</h1>
+</div>";
+            InputField.Text = text;
+            TargetWebView.LoadHTMLString(text);
+        }
+
+        public void OnTextChanged(object sender, EventArgs e)
+        {
+            if (sender is TextField textField)
+            {
+                RunButton.IsEnabled = !string.IsNullOrWhiteSpace(textField.Text);
+            }
+        }
+
+        public void OnUrlChanged(object sender, WebViewUrlChangedEventArgs e)
+        {
+            if (sender is WebView webView)
+            {
+                InputField.Text = e.NewPageUrl;
+            }
+        }
+
+        public void OnRunClicked(object sender, EventArgs e)
+        {
+            InputField.GetInputMethodContext()?.HideInputPanel();
+            TargetWebView.LoadHTMLString(InputField.Text);
+        }
+    }
+}
+
diff --git a/test/NUITizenGallery/IExample.cs b/test/NUITizenGallery/IExample.cs
new file mode 100644 (file)
index 0000000..1fa2ab7
--- /dev/null
@@ -0,0 +1,9 @@
+
+namespace NUITizenGallery
+{
+    interface IExample
+    {
+        void Activate();
+        void Deactivate();
+    }
+}
diff --git a/test/NUITizenGallery/NUITizenGallery.code-workspace b/test/NUITizenGallery/NUITizenGallery.code-workspace
new file mode 100644 (file)
index 0000000..2ff051f
--- /dev/null
@@ -0,0 +1,14 @@
+{
+       "folders": [
+               {
+                       "path": "."
+               },
+               {
+                       "path": "../../src/Tizen.NUI"
+               },
+               {
+                       "path": "../../src/Tizen.NUI.Components"
+               }
+       ],
+       "settings": {}
+}
\ No newline at end of file
diff --git a/test/NUITizenGallery/NUITizenGallery.cs b/test/NUITizenGallery/NUITizenGallery.cs
new file mode 100644 (file)
index 0000000..812ba76
--- /dev/null
@@ -0,0 +1,356 @@
+using System;
+using System.Linq;
+using System.Collections.Generic;
+using Tizen.NUI;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Binding;
+using System.Reflection;
+
+namespace NUITizenGallery
+{
+    public class SearchField : View
+    {
+        public TextField SearchTextField;
+        public Button SearchButton;
+        public SearchField() : base()
+        {
+            Layout = new LinearLayout()
+            {
+                LinearOrientation = LinearLayout.Orientation.Horizontal,
+                LinearAlignment = LinearLayout.Alignment.CenterVertical,
+                CellPadding = new Size2D(40, 0),
+            };
+
+            BackgroundColor = Color.White;
+
+            WidthSpecification = LayoutParamPolicies.MatchParent;
+            HeightSpecification = LayoutParamPolicies.WrapContent;
+            Padding = new Extents(64, 64, 0, 0);
+
+            var searchTextBox = CreateSearchText();
+            SearchTextField = CreateTextField();
+            var underline = CreateUnderline();
+
+            searchTextBox.Add(SearchTextField);
+            searchTextBox.Add(underline);
+
+            SearchButton = CreateSearchButton();
+
+            Add(searchTextBox);
+            Add(SearchButton);
+        }
+
+        private View CreateSearchText()
+        {
+            return new View()
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                    CellPadding = new Size2D(0, 20),
+                },
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.WrapContent,
+            };
+        }
+
+        private TextField CreateTextField()
+        {
+            return new TextField()
+            {
+                PlaceholderText = "Search",
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.WrapContent,
+            };
+        }
+
+        private View CreateUnderline()
+        {
+            return new View()
+            {
+                BackgroundColor = new Color("#0A0E4AFF"),
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = 2,
+            };
+        }
+
+        private Button CreateSearchButton()
+        {
+            return new Button()
+            {
+                Text = "Run",
+                WidthSpecification = 120,
+                HeightSpecification = LayoutParamPolicies.WrapContent,
+            };
+        }
+    }
+
+    public class Gallery
+    {
+        public Gallery(string name, string fullName = null)
+        {
+            Name = name;
+            FullName = fullName;
+        }
+
+        public string Name { get; set; }
+
+        public string ViewLabel
+        {
+            get
+            {
+                return Name;
+            }
+        }
+
+        public bool Selected { get; set; }
+
+        internal string FullName { get; set; }
+    }
+
+    public class GalleryViewModel
+    {
+        public List<Tuple<string, string>> NamePool = new List<Tuple<string, string>>();
+
+        public GalleryViewModel()
+        {
+            //CreateData();
+        }
+
+        public List<Gallery> CreateData()
+        {
+            GetXamlPages();
+
+            List<Gallery> result = new List<Gallery>();
+            foreach (var name in NamePool)
+            {
+                result.Add(new Gallery(name.Item1, name.Item2));
+            }
+            return result;
+        }
+
+        private void GetXamlPages()
+        {
+            Assembly assembly = this.GetType().Assembly;
+            Type exampleType = assembly.GetType("NUITizenGallery.IExample");
+
+            foreach (Type type in assembly.GetTypes())
+            {
+                Console.WriteLine($"@@@ type.Name={type.Name}, type.FullName={type.FullName}");
+                if (exampleType.IsAssignableFrom(type) && type.Name != "SampleMain" && this.GetType() != type && type.IsClass)
+                {
+                    NamePool.Add(new Tuple<string, string>(type.Name, type.FullName));
+                }
+            }
+        }
+    }
+
+    class Program : NUIApplication
+    {
+        private Window window;
+        private Navigator navigator;
+        private CollectionView colView;
+        private ItemSelectionMode selMode;
+        private IExample currentExample = null;
+        private ContentPage page;
+        private SearchField field;
+        private List<Gallery> testSource;
+
+        public void OnKeyEvent(object sender, Window.KeyEventArgs e)
+        {
+            if (e.Key.State == Key.StateType.Up)
+            {
+                if (e.Key.KeyPressedName == "Escape" || e.Key.KeyPressedName == "XF86Back" || e.Key.KeyPressedName == "BackSpace")
+                {
+                    if (null != currentExample)
+                    {
+                        ExitSample();
+                    }
+                    else
+                    {
+                        Exit();
+                    }
+                }
+            }
+        }
+
+        public void OnSelectionChanged(object sender, SelectionChangedEventArgs ev)
+        {
+            Console.WriteLine($"@@@ OnSelectionChanged() {ev.CurrentSelection}");
+            
+            foreach (object item in ev.CurrentSelection)
+            {
+                if (item == null)
+                {
+                    break;
+                }
+
+                var selItem = item as Gallery;
+                Console.WriteLine($"@@@ selItem.Name={selItem.Name}, selItem.FullName={selItem.FullName}");
+                RunSample(selItem?.FullName);
+                colView.SelectedItem = null;
+            }
+
+            /* Use the following code when it is actually required.
+            foreach (object item in ev.PreviousSelection)
+            {
+                if (item == null)
+                {
+                    break;
+                }
+
+                var unselItem = item as Gallery;
+            }
+
+            foreach (object item in ev.CurrentSelection)
+            {
+                if (item == null)
+                {
+                    break;
+                }
+
+                var selItem = item as Gallery;
+            }
+            */
+        }
+
+        protected override void OnCreate()
+        {
+            base.OnCreate();
+            Initialize();
+            SetMainPage();
+        }
+        private void Initialize()
+        {
+            window = GetDefaultWindow();
+            window.Title = "NUITizenGallery";
+            window.KeyEvent += OnKeyEvent;
+
+            navigator = window.GetDefaultNavigator();
+        }
+
+        void OnSearchBtnClicked(object sender, ClickedEventArgs e)
+        {
+            var filteredSource = from filter in testSource
+                                 where filter.Name.ToLower().Contains(field.SearchTextField?.Text?.ToLower())
+                                 select filter;
+
+            colView.Header = new DefaultTitleItem()
+            {
+                Text = "result",
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+            };
+            colView.ItemsSource = filteredSource;
+        }
+
+        private void SetMainPage()
+        {
+            var appBar = new AppBar()
+            {
+                Title = "NUI Tizen Gallery",
+                AutoNavigationContent = false,
+            };
+
+            var appBarStyle = ThemeManager.GetStyle("Tizen.NUI.Components.AppBar");
+            var moreButton = new Button(((AppBarStyle)appBarStyle).BackButton);
+            moreButton.Icon.ResourceUrl = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "menu.png";
+            appBar.NavigationContent = moreButton;
+
+
+            var pageContent = new View()
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                },
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+            };
+
+            field = new SearchField()
+            {
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+            };
+            field.SearchButton.Clicked += OnSearchBtnClicked;
+
+            testSource = new GalleryViewModel().CreateData();
+            selMode = ItemSelectionMode.SingleAlways;
+            var myTitle = new DefaultTitleItem()
+            {
+                Text = "TestCase",
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+            };
+
+            colView = new CollectionView()
+            {
+                ItemsSource = testSource,
+                ItemsLayouter = new LinearLayouter(),
+                ItemTemplate = new DataTemplate(() =>
+                {
+                    DefaultLinearItem item = new DefaultLinearItem()
+                    {
+                        WidthSpecification = LayoutParamPolicies.MatchParent,
+                    };
+                    item.Label.SetBinding(TextLabel.TextProperty, "ViewLabel");
+                    item.Label.HorizontalAlignment = HorizontalAlignment.Begin;
+                    return item;
+                }),
+                Header = myTitle,
+                ScrollingDirection = ScrollableBase.Direction.Vertical,
+                WidthSpecification = LayoutParamPolicies.MatchParent,
+                HeightSpecification = LayoutParamPolicies.MatchParent,
+                SelectionMode = selMode,
+            };
+            colView.SelectionChanged += OnSelectionChanged;
+
+            pageContent.Add(field);
+            pageContent.Add(colView);
+
+            page = new ContentPage()
+            {
+                AppBar = appBar,
+                Content = pageContent,
+            };
+            navigator.Push(page);
+        }
+
+        private void RunSample(string name)
+        {
+            IExample example = typeof(Program).Assembly?.CreateInstance(name) as IExample;
+
+            Console.WriteLine($"@@@ typeof(Program).Assembly={typeof(Program).Assembly}, name={name}");
+
+            if (example != null)
+            {
+                example.Activate();
+            }
+            else
+            {
+                Console.WriteLine($"@@@ examle is null!");
+            }
+            currentExample = example;
+        }
+
+        private void ExitSample()
+        {
+            currentExample?.Deactivate();
+            currentExample = null;
+
+            FullGC();
+        }
+
+        private void FullGC()
+        {
+            global::System.GC.Collect();
+            global::System.GC.WaitForPendingFinalizers();
+            global::System.GC.Collect();
+        }
+
+        static void Main(string[] args)
+        {
+            var app = new Program();
+            app.Run(args);
+        }
+    }
+}
diff --git a/test/NUITizenGallery/NUITizenGallery.csproj b/test/NUITizenGallery/NUITizenGallery.csproj
new file mode 100755 (executable)
index 0000000..255a4d0
--- /dev/null
@@ -0,0 +1,427 @@
+<Project Sdk="Microsoft.NET.Sdk">
+    <PropertyGroup>
+        <OutputType>Exe</OutputType>
+        <TargetFramework>netcoreapp3.1</TargetFramework>
+    </PropertyGroup>
+    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+        <DebugType>portable</DebugType>
+    </PropertyGroup>
+    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+        <DebugType>None</DebugType>
+    </PropertyGroup>
+    <ItemGroup>
+        <None Remove="res\layout\BoxViewTest\BoxViewTest1.xaml" />
+        <None Remove="res\layout\BoxViewTest\BoxViewTest2.xaml" />
+        <None Remove="res\layout\BoxViewTest\BoxViewTest3.xaml" />
+        <None Remove="res\layout\BoxViewTest\BoxViewTest4.xaml" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="res\layout\BoxViewTest\BoxViewTest4.xaml">
+            <SubType>Designer</SubType>
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BoxViewTest\BoxViewTest3.xaml">
+            <SubType>Designer</SubType>
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BoxViewTest\BoxViewTest1.xaml">
+            <SubType>Designer</SubType>
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BoxViewTest\BoxViewTest2.xaml">
+            <SubType>Designer</SubType>
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\FrameLayoutTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest8Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest6Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\LabelTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BindingTest1.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BindingTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackLayoutTest5Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\Test1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\EditorTest1.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\EditorTest2.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TextAnchorTest.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\EntryTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\EntryTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\EntryTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\Test2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CustomCellListItem.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CustomCellTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BrushImageTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BrushBorderTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BrushViewerTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BrushComponentsTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BrushBackgroundTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BackgroundTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ActivityIndicatorPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\AbsoluteLayoutPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ListItemTitleView.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\PerformanceTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ListItemTitleSwitch.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\PerformanceTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ListItemTitle.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\PerformanceTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ProgressbarTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\OpacityTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\IndicatorViewTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\IndicatorViewTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ButtonTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\FrameTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ListViewFooterTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SliderTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SliderTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\PickerTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\DatePickerTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TimePickerTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewFocusTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewItem.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CarouselPageTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CarouselViewTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CarouselViewTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CarouselViewTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ButtonTest7Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ButtonTest5Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ButtonTest6Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ImageButtonTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\HelloWorldPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\IconTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\LabelTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\AnimationTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\AnimationTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ImageTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ImageTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\FlexTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\FlexTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\FlexTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScaleTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScaleTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BackgroundColorTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ImageTest5Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ImageTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BackgroundColorTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BackgroundColorTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BackgroundColorTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\BackgroundColorTest5Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ImageTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\LabelTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScrollViewTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\AnimationTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ButtonTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest1.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest2.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest3.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest4.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest5.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest6.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest7.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest8.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest9.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CollectionViewTest/CollectionViewTest10.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ContentPageTestPage1.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ContentPageTestPage2.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\GridTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\GridTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\CheckBoxTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\AlertDialogTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\NavigatorTest\NavigatorTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\NavigatorTest\NavigatorTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\RotationTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TabViewTest\TabViewTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\MenuTest\MenuTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\MenuTest\MenuTestMenu.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\PinchGestureTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\PanGestureTest1.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\RecalculateTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TapGestureTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TapGestureTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TapGestureTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\TapGestureTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SimpleTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ToolbarItemTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SwipeGestureRecognizerTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SwipeViewTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SwipeViewTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\WebViewTest1.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\WebViewTest2.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\SetColorTestPage.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\LabelTest5Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\StackInGridTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScrollViewTest2Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScrollViewTest3Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScrollViewTest4Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\ScrollViewTest7Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+        <EmbeddedResource Include="res\layout\RefreshViewTest1Page.xaml">
+            <Generator>MSBuild:Compile</Generator>
+        </EmbeddedResource>
+    </ItemGroup>
+    <ItemGroup>
+        <Folder Include="lib\" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <PackageReference Include="Tizen.NUI.XamlBuild" Version="1.0.11" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <ProjectReference Include="../../src/Tizen.NUI.Components/Tizen.NUI.Components.csproj" />
+        <ProjectReference Include="../../src/Tizen.NUI/Tizen.NUI.csproj" />
+    </ItemGroup>
+
+    <PropertyGroup>
+        <NeedInjection>True</NeedInjection>
+    </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/test/NUITizenGallery/NuGet.config b/test/NUITizenGallery/NuGet.config
new file mode 100644 (file)
index 0000000..a88b2a8
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <add key="tizen-myget" value="https://tizen.myget.org/F/dotnet/api/v3/index.json" protocolVersion="3" />
+  </packageSources>
+  <disabledPackageSources />
+</configuration>
diff --git a/test/NUITizenGallery/README.md b/test/NUITizenGallery/README.md
new file mode 100755 (executable)
index 0000000..a64ba76
--- /dev/null
@@ -0,0 +1,22 @@
+# NUITizenGallery project for Ubuntu build and debug
+- **Dali** Ubuntu build and **tizenfx-stub** Ubuntu build should be done(be set up) before running this project.
+- Please check this references first : [NUI Ubuntu guide](https://code.sec.samsung.net/confluence/display/GFX/NUI+running+on+Ubuntu+backend), [DALi Ubuntu guide](https://code.sec.samsung.net/confluence/display/GFX/DALi+Getting+Started+Guide)
+
+### nuget.config
+- Please check the ~/.nuget/NuGet/NuGet.Config file to set nuget package sources.
+- At least, these 2 sources should be included : https://tizen.myget.org/F/dotnet/api/v3/index.json, https://api.nuget.org/v3/index.json
+![](./.pic/NugetConfig.png)
+
+### VS Code related setting
+- Please change the paths shown blow as for your environment.
+- .vscode/launch.json
+![](./.pic/launch.png)
+
+### csproj file
+- Set the target framework installed in your environment.
+- NUITizenGallery.csproj
+![](./.pic/csproj-file.png)
+
+### Start debugging
+- Do run and debug by clicking "play button" as shown below
+![](./.pic/run.png)
diff --git a/test/NUITizenGallery/res/images/Boston.png b/test/NUITizenGallery/res/images/Boston.png
new file mode 100644 (file)
index 0000000..47f0079
Binary files /dev/null and b/test/NUITizenGallery/res/images/Boston.png differ
diff --git a/test/NUITizenGallery/res/images/Image.png b/test/NUITizenGallery/res/images/Image.png
new file mode 100644 (file)
index 0000000..3300464
Binary files /dev/null and b/test/NUITizenGallery/res/images/Image.png differ
diff --git a/test/NUITizenGallery/res/images/NUITizenGallery.png b/test/NUITizenGallery/res/images/NUITizenGallery.png
new file mode 100644 (file)
index 0000000..9f3cb98
Binary files /dev/null and b/test/NUITizenGallery/res/images/NUITizenGallery.png differ
diff --git a/test/NUITizenGallery/res/images/a.jpg b/test/NUITizenGallery/res/images/a.jpg
new file mode 100755 (executable)
index 0000000..4d16594
Binary files /dev/null and b/test/NUITizenGallery/res/images/a.jpg differ
diff --git a/test/NUITizenGallery/res/images/bg_0.png b/test/NUITizenGallery/res/images/bg_0.png
new file mode 100644 (file)
index 0000000..5d74b04
Binary files /dev/null and b/test/NUITizenGallery/res/images/bg_0.png differ
diff --git a/test/NUITizenGallery/res/images/bg_1.png b/test/NUITizenGallery/res/images/bg_1.png
new file mode 100644 (file)
index 0000000..54ac4ba
Binary files /dev/null and b/test/NUITizenGallery/res/images/bg_1.png differ
diff --git a/test/NUITizenGallery/res/images/clock_tabs_ic_stopwatch.png b/test/NUITizenGallery/res/images/clock_tabs_ic_stopwatch.png
new file mode 100644 (file)
index 0000000..1804f57
Binary files /dev/null and b/test/NUITizenGallery/res/images/clock_tabs_ic_stopwatch.png differ
diff --git a/test/NUITizenGallery/res/images/controller_btn_check_off.png b/test/NUITizenGallery/res/images/controller_btn_check_off.png
new file mode 100755 (executable)
index 0000000..91c9dc6
Binary files /dev/null and b/test/NUITizenGallery/res/images/controller_btn_check_off.png differ
diff --git a/test/NUITizenGallery/res/images/controller_btn_check_on.png b/test/NUITizenGallery/res/images/controller_btn_check_on.png
new file mode 100755 (executable)
index 0000000..97f2978
Binary files /dev/null and b/test/NUITizenGallery/res/images/controller_btn_check_on.png differ
diff --git a/test/NUITizenGallery/res/images/pagination_ic_nor.png b/test/NUITizenGallery/res/images/pagination_ic_nor.png
new file mode 100644 (file)
index 0000000..f7eda28
Binary files /dev/null and b/test/NUITizenGallery/res/images/pagination_ic_nor.png differ
diff --git a/test/NUITizenGallery/res/images/pagination_ic_sel.png b/test/NUITizenGallery/res/images/pagination_ic_sel.png
new file mode 100644 (file)
index 0000000..d5dc8ac
Binary files /dev/null and b/test/NUITizenGallery/res/images/pagination_ic_sel.png differ
diff --git a/test/NUITizenGallery/res/images/picture.png b/test/NUITizenGallery/res/images/picture.png
new file mode 100755 (executable)
index 0000000..7522362
Binary files /dev/null and b/test/NUITizenGallery/res/images/picture.png differ
diff --git a/test/NUITizenGallery/res/images/posters/01 Jaws.jpg b/test/NUITizenGallery/res/images/posters/01 Jaws.jpg
new file mode 100644 (file)
index 0000000..4e63da9
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/01 Jaws.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/02 Raiders of the Lost Ark.jpg b/test/NUITizenGallery/res/images/posters/02 Raiders of the Lost Ark.jpg
new file mode 100644 (file)
index 0000000..ec99914
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/02 Raiders of the Lost Ark.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/03 star wars.jpg b/test/NUITizenGallery/res/images/posters/03 star wars.jpg
new file mode 100644 (file)
index 0000000..ba61f06
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/03 star wars.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/04 E.T. 2.jpeg b/test/NUITizenGallery/res/images/posters/04 E.T. 2.jpeg
new file mode 100644 (file)
index 0000000..be8830f
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/04 E.T. 2.jpeg differ
diff --git a/test/NUITizenGallery/res/images/posters/05 Vertigo.jpg b/test/NUITizenGallery/res/images/posters/05 Vertigo.jpg
new file mode 100644 (file)
index 0000000..093d9d3
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/05 Vertigo.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/06 Alien.jpg b/test/NUITizenGallery/res/images/posters/06 Alien.jpg
new file mode 100644 (file)
index 0000000..8a6eee6
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/06 Alien.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/07 Jurassic Park.jpg b/test/NUITizenGallery/res/images/posters/07 Jurassic Park.jpg
new file mode 100644 (file)
index 0000000..d00c9a4
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/07 Jurassic Park.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/08 The Silence of the Lambs.jpg b/test/NUITizenGallery/res/images/posters/08 The Silence of the Lambs.jpg
new file mode 100644 (file)
index 0000000..1087ef0
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/08 The Silence of the Lambs.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/09 American Beauty.jpg b/test/NUITizenGallery/res/images/posters/09 American Beauty.jpg
new file mode 100644 (file)
index 0000000..153d46f
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/09 American Beauty.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/10 Back to the Future.jpg b/test/NUITizenGallery/res/images/posters/10 Back to the Future.jpg
new file mode 100644 (file)
index 0000000..90df117
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/10 Back to the Future.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/11 Chinatown.jpg b/test/NUITizenGallery/res/images/posters/11 Chinatown.jpg
new file mode 100644 (file)
index 0000000..861ec8d
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/11 Chinatown.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/12 The Godfather.jpg b/test/NUITizenGallery/res/images/posters/12 The Godfather.jpg
new file mode 100644 (file)
index 0000000..c882535
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/12 The Godfather.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/13 Airplane.jpg b/test/NUITizenGallery/res/images/posters/13 Airplane.jpg
new file mode 100644 (file)
index 0000000..8a72a6d
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/13 Airplane.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/14 Pulp Fiction.jpg b/test/NUITizenGallery/res/images/posters/14 Pulp Fiction.jpg
new file mode 100644 (file)
index 0000000..9145fcd
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/14 Pulp Fiction.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/15 Ghostbusters.jpg b/test/NUITizenGallery/res/images/posters/15 Ghostbusters.jpg
new file mode 100644 (file)
index 0000000..f90fca0
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/15 Ghostbusters.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/16 The Usual Suspects.jpg b/test/NUITizenGallery/res/images/posters/16 The Usual Suspects.jpg
new file mode 100644 (file)
index 0000000..17c24ef
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/16 The Usual Suspects.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/17 the people vs larry flynt.jpg b/test/NUITizenGallery/res/images/posters/17 the people vs larry flynt.jpg
new file mode 100644 (file)
index 0000000..66e3652
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/17 the people vs larry flynt.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/18 Trainspotting.jpg b/test/NUITizenGallery/res/images/posters/18 Trainspotting.jpg
new file mode 100644 (file)
index 0000000..163835c
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/18 Trainspotting.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/19 Goodfellas.jpg b/test/NUITizenGallery/res/images/posters/19 Goodfellas.jpg
new file mode 100644 (file)
index 0000000..324ebbb
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/19 Goodfellas.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/20 the truman show.jpg b/test/NUITizenGallery/res/images/posters/20 the truman show.jpg
new file mode 100644 (file)
index 0000000..c57aeda
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/20 the truman show.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/21 Blade Runner.jpg b/test/NUITizenGallery/res/images/posters/21 Blade Runner.jpg
new file mode 100644 (file)
index 0000000..bda8915
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/21 Blade Runner.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/22 Full Metal Jacket.jpg b/test/NUITizenGallery/res/images/posters/22 Full Metal Jacket.jpg
new file mode 100644 (file)
index 0000000..b399c67
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/22 Full Metal Jacket.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/23 Attack of the 50ft Woman.jpg b/test/NUITizenGallery/res/images/posters/23 Attack of the 50ft Woman.jpg
new file mode 100644 (file)
index 0000000..0fcfcd8
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/23 Attack of the 50ft Woman.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/24 Batman.jpg b/test/NUITizenGallery/res/images/posters/24 Batman.jpg
new file mode 100644 (file)
index 0000000..d218de0
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/24 Batman.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/25 nymph.jpg b/test/NUITizenGallery/res/images/posters/25 nymph.jpg
new file mode 100644 (file)
index 0000000..93d0342
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/25 nymph.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/26 the driver.jpeg b/test/NUITizenGallery/res/images/posters/26 the driver.jpeg
new file mode 100644 (file)
index 0000000..811f829
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/26 the driver.jpeg differ
diff --git a/test/NUITizenGallery/res/images/posters/27 The Phantom Menace.jpg b/test/NUITizenGallery/res/images/posters/27 The Phantom Menace.jpg
new file mode 100644 (file)
index 0000000..f003fe5
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/27 The Phantom Menace.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/28 Platoon.jpg b/test/NUITizenGallery/res/images/posters/28 Platoon.jpg
new file mode 100644 (file)
index 0000000..fc130f5
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/28 Platoon.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/29 Gone with the Wind.jpg b/test/NUITizenGallery/res/images/posters/29 Gone with the Wind.jpg
new file mode 100644 (file)
index 0000000..e13c588
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/29 Gone with the Wind.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/30 Forbidden Planet.jpg b/test/NUITizenGallery/res/images/posters/30 Forbidden Planet.jpg
new file mode 100644 (file)
index 0000000..16682dc
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/30 Forbidden Planet.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/31 The Exorcist.jpg b/test/NUITizenGallery/res/images/posters/31 The Exorcist.jpg
new file mode 100644 (file)
index 0000000..6534f11
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/31 The Exorcist.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/32 Anatomy of a Murder.jpg b/test/NUITizenGallery/res/images/posters/32 Anatomy of a Murder.jpg
new file mode 100644 (file)
index 0000000..ecb58da
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/32 Anatomy of a Murder.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/33 Metropolis.jpg b/test/NUITizenGallery/res/images/posters/33 Metropolis.jpg
new file mode 100644 (file)
index 0000000..23a73d3
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/33 Metropolis.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/34 Clockwork Orange.jpg b/test/NUITizenGallery/res/images/posters/34 Clockwork Orange.jpg
new file mode 100644 (file)
index 0000000..246b039
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/34 Clockwork Orange.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/35 Halloween.jpg b/test/NUITizenGallery/res/images/posters/35 Halloween.jpg
new file mode 100644 (file)
index 0000000..3a3ee66
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/35 Halloween.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/36 Apocalypse Now.jpg b/test/NUITizenGallery/res/images/posters/36 Apocalypse Now.jpg
new file mode 100644 (file)
index 0000000..02cf4ab
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/36 Apocalypse Now.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/37 Rocketeer.jpg b/test/NUITizenGallery/res/images/posters/37 Rocketeer.jpg
new file mode 100644 (file)
index 0000000..b4f631a
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/37 Rocketeer.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/38 Rosemary's Baby.jpg b/test/NUITizenGallery/res/images/posters/38 Rosemary's Baby.jpg
new file mode 100644 (file)
index 0000000..edb01d7
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/38 Rosemary's Baby.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/39 Moon.jpg b/test/NUITizenGallery/res/images/posters/39 Moon.jpg
new file mode 100644 (file)
index 0000000..5e37297
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/39 Moon.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/40 Scream.jpg b/test/NUITizenGallery/res/images/posters/40 Scream.jpg
new file mode 100644 (file)
index 0000000..5eb15ac
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/40 Scream.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/41 Breakfast at Tiffany's.jpg b/test/NUITizenGallery/res/images/posters/41 Breakfast at Tiffany's.jpg
new file mode 100644 (file)
index 0000000..89c8c44
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/41 Breakfast at Tiffany's.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/42 The Social Network.jpg b/test/NUITizenGallery/res/images/posters/42 The Social Network.jpg
new file mode 100644 (file)
index 0000000..83c4017
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/42 The Social Network.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/43 The Thing.jpg b/test/NUITizenGallery/res/images/posters/43 The Thing.jpg
new file mode 100644 (file)
index 0000000..d7c1742
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/43 The Thing.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/44 Fear and Loathing in Las Vegas.jpg b/test/NUITizenGallery/res/images/posters/44 Fear and Loathing in Las Vegas.jpg
new file mode 100644 (file)
index 0000000..c9e7a9a
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/44 Fear and Loathing in Las Vegas.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/45 Love In The Afternoon.jpeg b/test/NUITizenGallery/res/images/posters/45 Love In The Afternoon.jpeg
new file mode 100644 (file)
index 0000000..5496e32
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/45 Love In The Afternoon.jpeg differ
diff --git a/test/NUITizenGallery/res/images/posters/46 Manhattan.jpeg b/test/NUITizenGallery/res/images/posters/46 Manhattan.jpeg
new file mode 100644 (file)
index 0000000..a4787a5
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/46 Manhattan.jpeg differ
diff --git a/test/NUITizenGallery/res/images/posters/47 Lord of War.jpg b/test/NUITizenGallery/res/images/posters/47 Lord of War.jpg
new file mode 100644 (file)
index 0000000..7356ce1
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/47 Lord of War.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/48 Mean Streets.jpg b/test/NUITizenGallery/res/images/posters/48 Mean Streets.jpg
new file mode 100644 (file)
index 0000000..49d4694
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/48 Mean Streets.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/49 The Graduate.jpg b/test/NUITizenGallery/res/images/posters/49 The Graduate.jpg
new file mode 100644 (file)
index 0000000..6e6ce13
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/49 The Graduate.jpg differ
diff --git a/test/NUITizenGallery/res/images/posters/50 little miss sunshine.jpg b/test/NUITizenGallery/res/images/posters/50 little miss sunshine.jpg
new file mode 100644 (file)
index 0000000..7776452
Binary files /dev/null and b/test/NUITizenGallery/res/images/posters/50 little miss sunshine.jpg differ
diff --git a/test/NUITizenGallery/res/images/progress_0.png b/test/NUITizenGallery/res/images/progress_0.png
new file mode 100644 (file)
index 0000000..6fedd6a
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_0.png differ
diff --git a/test/NUITizenGallery/res/images/progress_1.png b/test/NUITizenGallery/res/images/progress_1.png
new file mode 100644 (file)
index 0000000..3f7bc69
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_1.png differ
diff --git a/test/NUITizenGallery/res/images/progress_10.png b/test/NUITizenGallery/res/images/progress_10.png
new file mode 100644 (file)
index 0000000..5ee45bb
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_10.png differ
diff --git a/test/NUITizenGallery/res/images/progress_11.png b/test/NUITizenGallery/res/images/progress_11.png
new file mode 100644 (file)
index 0000000..3f7bc69
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_11.png differ
diff --git a/test/NUITizenGallery/res/images/progress_12.png b/test/NUITizenGallery/res/images/progress_12.png
new file mode 100644 (file)
index 0000000..6fedd6a
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_12.png differ
diff --git a/test/NUITizenGallery/res/images/progress_2.png b/test/NUITizenGallery/res/images/progress_2.png
new file mode 100644 (file)
index 0000000..5ee45bb
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_2.png differ
diff --git a/test/NUITizenGallery/res/images/progress_3.png b/test/NUITizenGallery/res/images/progress_3.png
new file mode 100644 (file)
index 0000000..ddc01b1
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_3.png differ
diff --git a/test/NUITizenGallery/res/images/progress_4.png b/test/NUITizenGallery/res/images/progress_4.png
new file mode 100644 (file)
index 0000000..c80ca8e
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_4.png differ
diff --git a/test/NUITizenGallery/res/images/progress_5.png b/test/NUITizenGallery/res/images/progress_5.png
new file mode 100644 (file)
index 0000000..b3da0a4
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_5.png differ
diff --git a/test/NUITizenGallery/res/images/progress_6.png b/test/NUITizenGallery/res/images/progress_6.png
new file mode 100644 (file)
index 0000000..4296461
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_6.png differ
diff --git a/test/NUITizenGallery/res/images/progress_7.png b/test/NUITizenGallery/res/images/progress_7.png
new file mode 100644 (file)
index 0000000..b3da0a4
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_7.png differ
diff --git a/test/NUITizenGallery/res/images/progress_8.png b/test/NUITizenGallery/res/images/progress_8.png
new file mode 100644 (file)
index 0000000..c80ca8e
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_8.png differ
diff --git a/test/NUITizenGallery/res/images/progress_9.png b/test/NUITizenGallery/res/images/progress_9.png
new file mode 100644 (file)
index 0000000..ddc01b1
Binary files /dev/null and b/test/NUITizenGallery/res/images/progress_9.png differ
diff --git a/test/NUITizenGallery/res/images/tizen.png b/test/NUITizenGallery/res/images/tizen.png
new file mode 100644 (file)
index 0000000..c07f9e7
Binary files /dev/null and b/test/NUITizenGallery/res/images/tizen.png differ
diff --git a/test/NUITizenGallery/res/images/xamarin_logo.png b/test/NUITizenGallery/res/images/xamarin_logo.png
new file mode 100644 (file)
index 0000000..7d5007d
Binary files /dev/null and b/test/NUITizenGallery/res/images/xamarin_logo.png differ
diff --git a/test/NUITizenGallery/res/layout/AbsoluteLayoutPage.xaml b/test/NUITizenGallery/res/layout/AbsoluteLayoutPage.xaml
new file mode 100644 (file)
index 0000000..a4d6d06
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.AbsoluteLayoutPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <b:TextLabel Text="Stylish Header" PointSize="12" Position2D="73,130"/>
+    <b:View BackgroundColor="#FF0000" Position2D="32,108" Size2D="400,5"/>
+    <b:View BackgroundColor="#00FF00" Position2D="32,120" Size2D="400,5"/>
+    <b:View BackgroundColor="#0000FF" Position2D="42,100" Size2D="5,100"/>
+    <b:View BackgroundColor="#FF00FF" Position2D="54,100" Size2D="5,100"/>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/ActivityIndicatorPage.xaml b/test/NUITizenGallery/res/layout/ActivityIndicatorPage.xaml
new file mode 100644 (file)
index 0000000..2e3c67f
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ActivityIndicatorPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <comp:Loading x:Name="Spinner" Size2D="100, 100" Position2D="10, 10"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/AlertDialogTestPage.xaml b/test/NUITizenGallery/res/layout/AlertDialogTestPage.xaml
new file mode 100644 (file)
index 0000000..d04fe78
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.AlertDialogTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:nui="clr-namespace:Tizen.NUI;assembly=Tizen.NUI"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <ContentPage.AppBar>
+        <AppBar x:Name="appBar"
+                    Title="AlertDialogTestPage"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        <View x:Name="content"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" CellPadding="0,20"/>
+            </View.Layout>
+
+            <Button x:Name="buttonOneAction"
+                        Text="Show AlertDialog with one button"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+
+            <Button x:Name="buttonTwoActions"
+                        Text="Show AlertDialog with two buttons"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+
+            <Button x:Name="buttonNoTitle"
+                        Text="Show AlertDialog without title"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+
+            <Button x:Name="buttonNoMessage"
+                        Text="Show AlertDialog without message"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+        </View>
+    </ContentPage.Content>
+
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/AnimationTest1Page.xaml b/test/NUITizenGallery/res/layout/AnimationTest1Page.xaml
new file mode 100755 (executable)
index 0000000..5917293
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.AnimationTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </base:View.Layout>
+
+    <base:View x:Name="imgView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.3">
+        <base:View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10"/>
+        </base:View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/a.jpg" />
+    </base:View>
+
+    <base:View x:Name="btnView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.7">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10" />
+        </View.Layout>
+        <comp:Button x:Name="image1Btn" Text="Start Animation" Size2D="680,100"/>
+        <comp:Button x:Name="image2Btn" Text="Stop Animation"  Size2D="680,100"/>
+        <base:TextLabel x:Name="desc1"  Text="" PointSize="15" TextColor="Black"/>
+    </base:View>
+
+
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/AnimationTest2Page.xaml b/test/NUITizenGallery/res/layout/AnimationTest2Page.xaml
new file mode 100755 (executable)
index 0000000..533989c
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.AnimationTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </base:View.Layout>
+
+    <base:View x:Name="imgView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.3">
+        <base:View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10"/>
+        </base:View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/a.jpg" />
+    </base:View>
+
+    <base:View x:Name="btnView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.7">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10" />
+        </View.Layout>
+        <comp:Button x:Name="image1Btn" Text="Start Animation" Size2D="680,100"/>
+        <comp:Button x:Name="image2Btn" Text="Stop Animation"  Size2D="680,100"/>
+        <base:TextLabel x:Name="desc1"  Text="" PointSize="15" TextColor="Black"/>
+    </base:View>
+
+
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/AnimationTest3Page.xaml b/test/NUITizenGallery/res/layout/AnimationTest3Page.xaml
new file mode 100755 (executable)
index 0000000..d191df9
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.AnimationTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </base:View.Layout>
+
+    <base:View x:Name="imgView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.3">
+        <base:View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10"/>
+        </base:View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/a.jpg" />
+    </base:View>
+
+    <base:View x:Name="btnView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.7">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10" />
+        </View.Layout>
+        <comp:Button x:Name="image1Btn" Text="Start Animation" Size2D="680,100"/>
+        <comp:Button x:Name="image2Btn" Text="Stop Animation"  Size2D="680,100"/>
+        <base:TextLabel x:Name="desc1"  Text="" PointSize="15" TextColor="Black"/>
+    </base:View>
+
+
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/BackgroundColorTest1Page.xaml b/test/NUITizenGallery/res/layout/BackgroundColorTest1Page.xaml
new file mode 100644 (file)
index 0000000..c687174
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BackgroundColorTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent" 
+  WidthResizePolicy="FillToParent" 
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center"/>
+    </View.Layout>
+
+    <View x:Name="mainView"
+          WidthResizePolicy="FillToParent"
+          HeightResizePolicy="FillToParent"
+          BackgroundColor="#00ffff"
+          Opacity="0.9"
+          Weight="1.0">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10"/>
+        </View.Layout>
+        
+        <nui:Button x:Name="button1"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    PointSize="8"
+                    Text="Change BackgroundColor"
+                    TextColor="White"
+                    BackgroundColor="Black"/>
+
+        <nui:Button x:Name="button2"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    PointSize="8"
+                    Text="Button1 (Red)"
+                    TextColor="White"
+                    BackgroundColor="Red"/>
+
+        <nui:Button x:Name="button3"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    PointSize="8"
+                    Text="Button2 (Blue/0.5)"
+                    TextColor="White"
+                    BackgroundColor = "Blue"
+                    Opacity="0.5"/>
+
+        <nui:Button x:Name="button4"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    PointSize="8"
+                    Text="Button3 (0,0,1,.5)"
+                    TextColor="White"
+                    BackgroundColor="0,0,1,.5"
+                    Opacity="0.4"/>
+
+        <TextLabel WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="8"
+                   Text="Label1 (Silver)"
+                   BackgroundColor="#C0C0C0"/>
+
+        <TextLabel WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="8"
+                   Text="Label2 (Pink/0.5)"
+                   BackgroundColor="#FF66FF"
+                   Opacity="0.4"/>
+
+        <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="8"
+                   Text="This is a Entry with very looooooooooooong looooooooooooooong text,  (Background color : Color.Lime)"
+                   BackgroundColor="#00FF00" 
+                   Weight="1.0"/>
+
+        <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="8"
+                   Text="Formatted entry (Background color : Color.Maroon)"
+                   BackgroundColor="#800000" 
+                   Weight="1.0"/>
+
+        <Progress WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  MinValue="0.0"
+                  MaxValue="1.0"
+                  BufferColor="#FF66FF"
+                  CurrentValue="0.5"
+                  Weight="1.0"/>
+
+        <Slider WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                MinValue="0"
+                MaxValue="1.0"
+                BgTrackColor="#800080" 
+                Weight="1.0"/>
+        
+    </View>
+
+    <View x:Name="loadingView"
+          BackgroundColor="Blue"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <Loading x:Name="loading"
+                 PositionUsesPivotPoint="True"
+                 ParentOrigin="Center"
+                 PivotPoint="Center"
+                 Size2D="50,50"/>
+
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BackgroundColorTest2Page.xaml b/test/NUITizenGallery/res/layout/BackgroundColorTest2Page.xaml
new file mode 100644 (file)
index 0000000..5c78fd0
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BackgroundColorTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="Yellow"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10,0"/>
+    </View.Layout>
+
+    <View x:Name="layout1"
+           WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+           BackgroundColor="Red"
+           Weight="1.0"
+           Opacity="0.5">
+
+        <Button x:Name="button1"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="6"
+                Text="Change Layout 1 Background Color"
+                TextColor="White"
+                BackgroundColor="Black"/>
+
+    </View>
+
+    <View x:Name="layout2"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          BackgroundColor="Green"
+          Weight="1.0"
+          Opacity="0.5">
+
+        <Button x:Name="button2"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="6"
+                Text="Change Layout 2 Background Color &amp; Opacity"
+                TextColor="White"
+                BackgroundColor="#800000"/>
+
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BackgroundColorTest3Page.xaml b/test/NUITizenGallery/res/layout/BackgroundColorTest3Page.xaml
new file mode 100644 (file)
index 0000000..f4d533a
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BackgroundColorTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true">
+    
+    <Button x:Name="button1"
+            BackgroundColor="Black"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            PointSize="6"
+            Text="Change Page Background Color"
+            TextColor="White"/>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BackgroundColorTest4Page.xaml b/test/NUITizenGallery/res/layout/BackgroundColorTest4Page.xaml
new file mode 100644 (file)
index 0000000..6612868
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BackgroundColorTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10"/>
+    </View.Layout>
+
+    <View HeightResizePolicy="FillToParent"
+          WidthResizePolicy="FillToParent"
+          BackgroundColor="Green"
+          Weight="0.9"/>
+
+
+    <View x:Name="mainView"
+          HeightResizePolicy="FillToParent" 
+          WidthResizePolicy="FillToParent"
+          BackgroundColor="White"
+          Weight="0.05">
+        
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10"/>
+        </View.Layout>
+
+        <TextLabel x:Name="label"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="6"
+                   Text="This is a sample label"
+                   VerticalAlignment="Center"/>
+
+        <Button x:Name="btnRedLabel"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="6"
+                Text="Set label background color to red"
+                TextColor="White" />
+
+        <Button x:Name="btnDefaultLabel"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    PointSize="6"
+                    Text="Set label background color to default"
+                    TextColor="White"/>
+
+        <Button x:Name="button"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="6"
+                Text="This is a sample button"
+                TextColor="White"/>
+
+        <Button x:Name="btnBlueButton"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="6"
+                Text="Set button background color to blue"
+                TextColor="White"/>
+
+        <Button x:Name="btnDefaultButton"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="6"
+                Text="Set button background color to default"
+                TextColor="White"/>
+        
+    </View>
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BackgroundColorTest5Page.xaml b/test/NUITizenGallery/res/layout/BackgroundColorTest5Page.xaml
new file mode 100644 (file)
index 0000000..c6fa929
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BackgroundColorTest5Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true">
+    
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center"/>
+    </View.Layout>
+
+    <View x:Name="mainView"
+          WidthResizePolicy="FillToParent"
+          BackgroundColor="#00ffff"
+          Opacity="0.9"
+          Weight="1.0">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10"/>
+        </View.Layout>
+
+        <Button x:Name="button1"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                PointSize="8"
+                Text="Change BackgroundColor"/>
+
+        <TextLabel x:Name="label"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="8"
+                   Text="This is label"/>
+
+        <TextField x:Name="textField"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   PointSize="8"
+                   Text="This is Entry"/>
+
+        <Progress x:Name="progress"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  MinValue="0.0"
+                  MaxValue="1.0"
+                  CurrentValue="0.5"
+                  BufferColor="#FF66FF"
+                  Weight="1.0"/>
+
+        <Slider x:Name="slider"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                MinValue="0"
+                MaxValue="1.0"
+                BgTrackColor="#800080"
+                Weight="1.0"/>
+
+    </View>
+
+    <View x:Name="loadingView"
+          BackgroundColor="Yellow"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <Loading x:Name="loading"
+                 PositionUsesPivotPoint="True"
+                 ParentOrigin="Center"
+                 PivotPoint="Center"
+                 Size2D="50,50"/>
+
+    </View>
+    
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BackgroundTestPage.xaml b/test/NUITizenGallery/res/layout/BackgroundTestPage.xaml
new file mode 100644 (file)
index 0000000..4024e45
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BackgroundTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF"
+    x:Name="BackgroundView">
+
+    <comp:Button Text="Change Background" x:Name="ChangeBackgroundButton" WidthResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/BindingTest1.xaml b/test/NUITizenGallery/res/layout/BindingTest1.xaml
new file mode 100644 (file)
index 0000000..333a446
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BindingTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:vm="clr-namespace:NUITizenGallery.ViewModels"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:behaviors="clr-namespace:NUITizenGallery.Behaviors"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+    
+    <View.BindingContext>
+        <vm:BindingTest1ViewModel x:Name="context"/>
+    </View.BindingContext>
+    
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+    </View.Layout>
+
+    <View BindingContext="{Binding Source={x:Reference context}}"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="150"
+          BackgroundColor="Red"
+          behaviors:VisibilitySetter.IsVisible="{Binding IsBoxVisible}"/>
+
+    <View BindingContext="{Binding Source={x:Reference context}}"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="150"
+          BackgroundColor="Blue"
+          behaviors:VisibilitySetter.IsVisible="{Binding IsBoxVisible}"/>
+
+    <Button BindingContext="{Binding Source={x:Reference context}}"
+            Command="{Binding ChangeVisibility}"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            Text="Visibility"/>
+
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/BindingTest2Page.xaml b/test/NUITizenGallery/res/layout/BindingTest2Page.xaml
new file mode 100644 (file)
index 0000000..5481e38
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BindingTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:vm="clr-namespace:NUITizenGallery.ViewModels"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+    
+    <View.BindingContext>
+        <vm:BindingTest2ViewModel x:Name="context"/>
+    </View.BindingContext>
+    
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="CenterHorizontal"/>
+    </View.Layout>
+
+    <TextLabel BindingContext="{Binding Source={x:Reference context}"
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               HorizontalAlignment="Center"
+               MultiLine="True"
+               Text="{Binding BoxSizeText}"/>
+
+    <Slider BindingContext="{Binding Source={x:Reference context}}"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            MinValue="0"
+            MaxValue="300"
+            CurrentValue="{Binding BoxSize}"/>
+    
+    <View BindingContext="{Binding Source={x:Reference context}}"
+          BackgroundColor="Red"
+          SizeWidth="{Binding BoxSize}"
+          SizeHeight="{Binding BoxSize}"/>
+
+    <View BindingContext="{Binding Source={x:Reference context}}"
+          BackgroundColor="Blue"
+          SizeWidth="{Binding BoxSize}"
+          SizeHeight="{Binding BoxSize}"/>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest1.xaml b/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest1.xaml
new file mode 100644 (file)
index 0000000..2875b1c
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BoxViewTest1"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent" 
+  WidthResizePolicy="FillToParent" 
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+    </View.Layout>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          SizeHeight="80"
+          BackgroundColor="1,0,0,1"
+          />
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          SizeHeight="80"
+          BackgroundColor="0,1,0,1"
+          />
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          SizeHeight="80"
+          BackgroundColor="0,0,1,1"
+          />
+    
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest2.xaml b/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest2.xaml
new file mode 100644 (file)
index 0000000..e0d8890
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BoxViewTest2"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent" 
+  WidthResizePolicy="FillToParent" 
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top"/>
+    </View.Layout>
+
+    <View WidthResizePolicy="FillToParent">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10"/>
+        </View.Layout>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              SizeHeight="80"
+              BackgroundColor="1,0,0,1"/>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              SizeHeight="80"
+              BackgroundColor="0,1,0,1"/>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              SizeHeight="80"
+              BackgroundColor="0,0,1,1"/>
+
+    </View>
+
+    <View Weight="1.0">
+        
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Bottom" CellPadding="10,10" />
+        </View.Layout>
+
+        <View HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              SizeHeight="800"
+              SizeWidth="80"
+              BackgroundColor="1,0,0,1"/>
+
+        <View HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              SizeHeight="800"
+              SizeWidth="80"
+              BackgroundColor="0,1,0,1"/>
+
+        <View HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              SizeHeight="800"
+              SizeWidth="80"
+              BackgroundColor="0,0,1,1"/>
+
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest3.xaml b/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest3.xaml
new file mode 100644 (file)
index 0000000..277720c
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BoxViewTest3"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  HeightResizePolicy="FillToParent" 
+  WidthResizePolicy="FillToParent" 
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10"/>
+    </View.Layout>
+
+    <TextLabel Text="Normal colors"/>
+
+    <View x:Name="colorBox"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          SizeHeight="80"/>
+
+    <TextLabel Text="Pre-multiplied alpha colors" />
+
+    <View x:Name="preColorBox"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          SizeHeight="80"/>
+
+    <TextLabel Text="R"/>
+
+    <nui:Slider x:Name="red"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                CurrentValue="176.0"
+                MinValue="0.0"
+                MaxValue="255.0"/>
+
+    <TextLabel Text="G"/>
+
+    <nui:Slider x:Name="green"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                CurrentValue="255.0"
+                MinValue="0.0"
+                MaxValue="255.0"/>
+
+    <TextLabel Text="B"/>
+
+    <nui:Slider x:Name="blue"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                CurrentValue="35.0"
+                MinValue="0.0"
+                MaxValue="255.0"/>
+
+    <TextLabel Text="A"/>
+
+    <nui:Slider x:Name="alpha"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                CurrentValue="255.0"
+                MinValue="0.0"
+                MaxValue="255.0"/>
+
+    <TextLabel x:Name="output"/>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest4.xaml b/test/NUITizenGallery/res/layout/BoxViewTest/BoxViewTest4.xaml
new file mode 100644 (file)
index 0000000..a6e658a
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.BoxViewTest4"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  HeightResizePolicy="FillToParent" 
+  WidthResizePolicy="FillToParent" 
+  ParentOrigin="Center" 
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="#808080">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterVertical" CellPadding="10,10" />
+    </View.Layout>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+        
+        <View.Layout>
+            <LinearLayout LinearAlignment="Center"/>
+        </View.Layout>
+
+        <View x:Name="box"
+          BackgroundColor="1,0,0,1"
+          Size2D="200,200"/>
+        
+    </View>
+
+    <TextLabel x:Name="label" 
+               Text="+++ Scale : "/>
+
+    <nui:Button x:Name="button1"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                Text="Box Scale++"/>
+
+    <nui:Button x:Name="button2"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                Text="Box Scale--"/>
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/BrushBackgroundTestPage.xaml b/test/NUITizenGallery/res/layout/BrushBackgroundTestPage.xaml
new file mode 100644 (file)
index 0000000..273c5a6
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BrushBackgroundTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center"
+    PivotPoint="Center" WidthResizePolicy="FillToParent"
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF"
+    x:Name="MainView">
+
+    <View.Layout>
+      <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+    </View.Layout>
+
+    <comp:Button x:Name="ButtonSolid" Text="Set solid color" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientLinear" Text="Set linear gradient" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientRadial" Text="Set radial gradient" WidthResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/BrushBorderTestPage.xaml b/test/NUITizenGallery/res/layout/BrushBorderTestPage.xaml
new file mode 100644 (file)
index 0000000..608f07f
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BrushBorderTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF"
+    x:Name="MainView">
+
+    LinearLayout pageLayout = new LinearLayout();
+            pageLayout.LinearOrientation = LinearLayout.Orientation.Vertical;
+            pageLayout.CellPadding = new Size2D(10, 10);
+            pageLayout.Padding = new Extents(10, 10, 10, 10);
+            this.Layout = pageLayout;
+
+    <View.Layout>
+      <LinearLayout LinearOrientation="Vertical" CellPadding="0,10" LinearAlignment="Center"/>
+    </View.Layout>
+
+    <comp:Button x:Name="ButtonSolid" Text="Set solid color" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientLinear" Text="Set linear gradient" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientRadial" Text="Set radial gradient" WidthResizePolicy="FillToParent"/>
+
+    <base:VisualView x:Name="ViewTest1" Size2D="500,120" BackgroundColor="#0000FF"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/BrushComponentsTestPage.xaml b/test/NUITizenGallery/res/layout/BrushComponentsTestPage.xaml
new file mode 100644 (file)
index 0000000..101782c
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BrushComponentsTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF"
+    x:Name="MainView">
+
+    <comp:Button x:Name="ButtonSolid" Text="Set solid color" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientLinear" Text="Set linear gradient" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientRadial" Text="Set radial gradient" WidthResizePolicy="FillToParent"/>
+
+    <base:View x:Name="ViewTest1" Size2D="500,120" WidthResizePolicy="FillToParent"/>
+    <base:View x:Name="ViewTest2" Size2D="500,120" WidthResizePolicy="FillToParent"/>
+    <base:View x:Name="ViewTest3" Size2D="500,120" WidthResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/BrushImageTestPage.xaml b/test/NUITizenGallery/res/layout/BrushImageTestPage.xaml
new file mode 100644 (file)
index 0000000..b975941
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.BrushImageTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+  
+  <comp:ContentPage.AppBar>
+    <comp:AppBar x:Name="appBar"
+                 Title="BrushImageTest"/>
+  </comp:ContentPage.AppBar>
+
+  <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+
+            <comp:Button x:Name="ButtonSolid" Text="Set solid color" WidthResizePolicy="FillToParent"/>
+            <comp:Button x:Name="ButtonGradientLinear" Text="Set linear gradient" WidthResizePolicy="FillToParent"/>
+            <comp:Button x:Name="ButtonGradientRadial" Text="Set radial gradient" WidthResizePolicy="FillToParent"/>
+
+            <base:ImageView x:Name="Image1" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}"/>
+            <base:ImageView x:Name="Image2" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}"/>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/BrushViewerTestPage.xaml b/test/NUITizenGallery/res/layout/BrushViewerTestPage.xaml
new file mode 100644 (file)
index 0000000..62e7a17
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.BrushViewerTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF"
+    x:Name="MainView">
+
+    <comp:Button x:Name="ButtonSolid" Text="Set solid color" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientLinear" Text="Set linear gradient" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ButtonGradientRadial" Text="Set radial gradient" WidthResizePolicy="FillToParent"/>
+    <base:VisualView x:Name="BrushViewer" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ButtonTest1Page.xaml b/test/NUITizenGallery/res/layout/ButtonTest1Page.xaml
new file mode 100644 (file)
index 0000000..fa9a76b
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.ButtonTest1Page"
+xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor ="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="50,50"/>
+        </View.Layout>
+
+        <nui:Button x:Name="button1"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    Text="Text Button"
+                    TextColor="#ffffff"
+                    Weight="0.12"/>
+
+        <nui:Button x:Name="button2"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    TextColor="#ffffff"
+                    Weight="0.12"> 
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview1" SizeHeight="60" SizeWidth="60" />
+            </nui:Button.Icon>            
+        </nui:Button>
+
+        <nui:Button x:Name="button3"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    Text="Image and Text Button"
+                    TextColor="#ffffff"
+                    Weight="0.12">
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview2" SizeHeight="60" SizeWidth="60" />
+            </nui:Button.Icon>      
+        </nui:Button>
+
+        <nui:Button x:Name="button4"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#ffffff"
+                    PointSize="10"
+                    Text="Color Change"
+                    TextColor="#52c7d9"
+                    Weight="0.12">
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview3" SizeHeight="60" SizeWidth="60" />
+            </nui:Button.Icon>      
+        </nui:Button>
+
+        <nui:Button x:Name="button5"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    Text="Text Toggle"
+                    TextColor="#ffffff"
+                    Weight="0.12">
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview4" SizeHeight="60" SizeWidth="60" />
+            </nui:Button.Icon>      
+        </nui:Button>
+
+        <nui:Button x:Name="button6"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    Text="Image Toggle"
+                    TextColor="#ffffff"
+                    Weight="0.12">
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview5" SizeHeight="60" SizeWidth="60" />
+            </nui:Button.Icon>      
+        </nui:Button>
+
+        <nui:Button x:Name="button7"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    IsEnabled="False"
+                    Text="Disabled button"
+                    TextColor="#ffffff"
+                    Weight="0.12"/>
+
+        <nui:Button x:Name="button8"
+
+                    WidthResizePolicy="FillToParent"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    Text="Disabled toggle"
+                    TextColor="#ffffff"
+                    Weight="0.12"/>
+    </b:View>
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/ButtonTest2Page.xaml b/test/NUITizenGallery/res/layout/ButtonTest2Page.xaml
new file mode 100644 (file)
index 0000000..7b89435
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.ButtonTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="White">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="30,30"/>
+        </View.Layout>
+
+        <nui:Button x:Name="coloredButton"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    BackgroundColor="Transparent"
+                    Text="Color change"
+                    TextColor="Color.Blue"
+                    Opacity="0.5"
+                    PointSize="8">
+
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview1" SizeHeight="60" SizeWidth="60" />
+            </nui:Button.Icon>
+
+        </nui:Button>
+
+        <nui:Button x:Name="button2"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    IsEnabled="False"
+                    PointSize="8"
+                    Text="Disabled button"/>
+
+        <nui:Button x:Name="button3"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    PointSize="8"
+                    Text="Disabled toggle"/>
+
+
+    </b:View>
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/ButtonTest5Page.xaml b/test/NUITizenGallery/res/layout/ButtonTest5Page.xaml
new file mode 100644 (file)
index 0000000..52daaf3
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.ButtonTest5Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+<b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="30,30"/>
+        </View.Layout>
+
+       
+        <b:TextLabel x:Name="text1"
+                     WidthResizePolicy="FillToParent"
+                     HeightResizePolicy="UseNaturalSize"
+                     PointSize="8"
+                     Text="Button Size: 70"
+                     />
+
+        <nui:Slider x:Name="slider1"
+                    MinValue="0"
+                    MaxValue="200"
+                    CurrentValue="70"
+                    WidthResizePolicy="FillToParent"
+                    TrackThickness="5"
+                    BgTrackColor="#b1b1b1"
+                    SlidedTrackColor="#3db9cc"
+                    />
+
+        <b:TextLabel x:Name="text2"
+                     WidthResizePolicy="FillToParent"
+                     HeightResizePolicy="UseNaturalSize"
+                     PointSize="8"
+                     Text="Button Font Size: 5"
+                     />
+
+        <nui:Slider x:Name="slider2"
+                    MinValue="0"
+                    MaxValue="30"
+                    CurrentValue="5"
+                    WidthResizePolicy="FillToParent"
+                    TrackThickness="5"
+                    BgTrackColor="#b1b1b1"
+                    SlidedTrackColor="#3db9cc"
+                    />
+
+        <b:TextLabel x:Name="text3"
+                     WidthResizePolicy="FillToParent"
+                     HeightResizePolicy="UseNaturalSize"
+                     PointSize="8"
+                     Text="Button Opaticy: 1.0"
+                     />
+
+        <nui:Slider x:Name="slider3"
+                    MinValue="0"
+                    MaxValue="1"
+                    CurrentValue="1"
+                    WidthResizePolicy="FillToParent"
+                    TrackThickness="5"
+                    BgTrackColor="#b1b1b1"
+                    SlidedTrackColor="#3db9cc"
+                    />
+
+        <nui:Button x:Name="button1"
+                    WidthResizePolicy="FillToParent"
+                    SizeHeight="70"
+                    BackgroundColor="#0000ff"
+                    Text="Button1"
+                    PointSize="5"
+                    Opacity="1"/>
+
+        <nui:Button x:Name="button2"
+                    WidthResizePolicy="FillToParent"
+                    SizeHeight="70"
+                    BackgroundColor="#0000ff"
+                    PointSize="5"
+                    Opacity="1"
+                    Text="Button2"/>
+
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/ButtonTest6Page.xaml b/test/NUITizenGallery/res/layout/ButtonTest6Page.xaml
new file mode 100644 (file)
index 0000000..88fd2a9
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.ButtonTest6Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="ButtonTest6"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="60,60"/>
+        </View.Layout>
+
+        <View WidthResizePolicy="FillToParent">
+
+            <comp:Button x:Name="button1"
+                            WidthResizePolicy="FillToParent"
+                            SizeHeight="70"
+                            BackgroundColor="#3db9cc"
+                            PointSize="5"
+                            Opacity="1"
+                            Text="BackgroundColor"/>
+
+        </View>
+
+        <View Weight="1.0">
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="30,30"/>
+            </View.Layout>
+
+            <TextLabel x:Name="redText"
+                        HorizontalAlignment="Center"
+                        SizeWidth="100"
+                        SizeHeight="180"
+                        PointSize="8"
+                        BackgroundColor="Red"
+                        Text="RED"
+                        />
+            <TextLabel x:Name="greenText"
+                        HorizontalAlignment="Center"
+                        SizeWidth="100"
+                        SizeHeight="180"
+                        PointSize="8"
+                        BackgroundColor="Green"
+                        Text="GREEN"
+                        />
+
+            <TextLabel x:Name="grayText"
+                        HorizontalAlignment="Center"
+                        SizeWidth="100"
+                        SizeHeight="180"
+                        PointSize="8"
+                        BackgroundColor="#8C8C8C"
+                        Text="GRAY"
+                        />
+        </View>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/ButtonTest7Page.xaml b/test/NUITizenGallery/res/layout/ButtonTest7Page.xaml
new file mode 100644 (file)
index 0000000..84c7a75
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.ButtonTest7Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="30,30"/>
+        </View.Layout>
+
+
+        <b:TextLabel x:Name="text1"
+                     WidthResizePolicy="FillToParent"
+                     HeightResizePolicy="UseNaturalSize"
+                     PointSize="8"
+                     Text="Button Press and release event trigger test"
+                     />
+
+        <nui:Button x:Name="button1"
+                    WidthResizePolicy="FillToParent"
+                    SizeHeight="70"
+                    BackgroundColor="#3db9cc"
+                    PointSize="5"
+                    Opacity="1"
+                    Text="Click me"/>
+
+        <b:TextLabel x:Name="text2"
+                     WidthResizePolicy="FillToParent"
+                     HeightResizePolicy="UseNaturalSize"
+                     PointSize="8"
+                     Text=""
+                     />
+
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/CarouselPageTest1Page.xaml b/test/NUITizenGallery/res/layout/CarouselPageTest1Page.xaml
new file mode 100644 (file)
index 0000000..983d59d
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CarouselPageTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center"
+    PivotPoint="Center" WidthResizePolicy="FillToParent"
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CarouselPageTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,10" />
+            </View.Layout>
+
+            <comp:ScrollableBase x:Name="Scroller" SnapToPage="true" ScrollingDirection="Horizontal" BackgroundColor="Yellow" SizeWidth="600">
+              <ScrollableBase.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Top" CellPadding="5,5" />
+              </ScrollableBase.Layout>
+
+              <base:View x:Name="Page1" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="500">
+                <View.Layout>
+                  <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="5,5" />
+                </View.Layout> -->
+
+                <base:TextLabel Text="Page 0" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" HorizontalAlignment="Center"/>
+                <base:View Size2D="400,400" BackgroundColor="Red"/>
+              </base:View>
+              <base:View x:Name="Page2" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="500">
+                <View.Layout>
+                  <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="5,5" />
+                </View.Layout> -->
+
+                <base:TextLabel Text="Page 0" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" HorizontalAlignment="Center"/>
+                <base:View Size2D="400,400" BackgroundColor="Green"/>
+              </base:View>
+              <base:View x:Name="Page3" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="500">
+                <View.Layout>
+                  <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="5,5" />
+                </View.Layout> -->
+
+                <base:TextLabel Text="Page 0"  WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" HorizontalAlignment="Center"/>
+                <base:View Size2D="400,400" BackgroundColor="Blue"/>
+              </base:View>
+            </comp:ScrollableBase>
+
+            <comp:Pagination x:Name="Index" Size2D="250,50"/>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CarouselViewTest1Page.xaml b/test/NUITizenGallery/res/layout/CarouselViewTest1Page.xaml
new file mode 100644 (file)
index 0000000..bd97e71
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CarouselViewTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+    <comp:AppBar x:Name="appBar"
+                Title="CarouselViewTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+
+            <base:View x:Name="VerticalBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="80">
+
+              <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Top" CellPadding="5,5" />
+              </View.Layout>
+
+              <comp:Button x:Name="Default" Text="Default" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="190"/>
+              <comp:Button x:Name="Always" Text="Always" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="190"/>
+              <comp:Button x:Name="Never" Text="Never" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="190"/>
+              <base:TextLabel x:Name="ScrollStatus" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="150"/>
+            </base:View>
+
+            <base:TextLabel MultiLine="True" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80"
+                        Text="Horizontal Scrollbar Visibility Test"/>
+
+            <comp:ScrollableBase x:Name="Scroller" SnapToPage="true" ScrollingDirection="Horizontal"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+              <ScrollableBase.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Top" CellPadding="5,5" />
+              </ScrollableBase.Layout>
+              <base:View x:Name="Page1" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#ff0000"/>
+              <base:View x:Name="Page2" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#00ff00"/>
+              <base:View x:Name="Page3" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#0000ff"/>
+            </comp:ScrollableBase>
+        
+            <comp:Pagination x:Name="Index" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="50"/>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CarouselViewTest2Page.xaml b/test/NUITizenGallery/res/layout/CarouselViewTest2Page.xaml
new file mode 100644 (file)
index 0000000..450429f
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CarouselViewTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CarouselViewTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+
+            <base:View x:Name="VerticalBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="80">
+
+              <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Top" CellPadding="5,5" />
+              </View.Layout>
+
+              <comp:Button x:Name="Default" Text="Default" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="190"/>
+              <comp:Button x:Name="Always" Text="Always" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="190"/>
+              <comp:Button x:Name="Never" Text="Never" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="190"/>
+              <base:TextLabel x:Name="ScrollStatus" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  WidthSpecification="150"/>
+            </base:View>
+
+            <base:TextLabel MultiLine="True" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80"
+                        Text="Vertical Scrollbar Visibility Test"/>
+
+            <comp:ScrollableBase x:Name="Scroller" SnapToPage="true" ScrollingDirection="Vertical" 
+                                 WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+              <ScrollableBase.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="5,5" />
+              </ScrollableBase.Layout>
+
+              <base:View x:Name="Page1" Size2D="720, 900" BackgroundColor="#ff0000"/>
+              <base:View x:Name="Page2" Size2D="720, 900" BackgroundColor="#00ff00"/>
+              <base:View x:Name="Page3" Size2D="720, 900" BackgroundColor="#0000ff"/>
+            </comp:ScrollableBase>
+        
+            <comp:Pagination x:Name="Index" Size2D="720,50" WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CarouselViewTest4Page.xaml b/test/NUITizenGallery/res/layout/CarouselViewTest4Page.xaml
new file mode 100644 (file)
index 0000000..360b87b
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CarouselViewTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CarouselViewTest4"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+
+            <base:View>
+              <base:View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Center"/>
+              </base:View.Layout>
+              <comp:Button x:Name="SetPage0Button" Text="0" Size2D="50, 50"/>
+              <comp:Button x:Name="SetPage1Button" Text="1" Size2D="50, 50"/>
+              <comp:Button x:Name="SetPage2Button" Text="2" Size2D="50, 50"/>
+              <comp:Button x:Name="SetPage3Button" Text="3" Size2D="50, 50"/>
+              <comp:Button x:Name="SetPage4Button" Text="4" Size2D="50, 50"/>
+              <comp:Button x:Name="SetPage5Button" Text="5" Size2D="50, 50"/>
+            </base:View>
+
+            <comp:ScrollableBase x:Name="Scroller" SnapToPage="true" ScrollingDirection="Horizontal" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+              <comp:ScrollableBase.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center"/>
+              </comp:ScrollableBase.Layout>
+
+              <base:View x:Name="Page0" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#ff0000">
+                <base:TextLabel Text="Page 0" MultiLine="True" Size2D="720, 100"/>
+              </base:View>
+              <base:View x:Name="Page1" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#00ff00">
+                <base:TextLabel Text="Page 1" MultiLine="True" Size2D="720, 100"/>
+              </base:View>
+              <base:View x:Name="Page2" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#0000ff">
+                <base:TextLabel Text="Page 2" MultiLine="True" Size2D="720, 100"/>
+              </base:View>
+              <base:View x:Name="Page3" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#ff0000">
+                <base:TextLabel Text="Page 3" MultiLine="True" Size2D="720, 100"/>
+              </base:View>
+              <base:View x:Name="Page4" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#00ff00">
+                <base:TextLabel Text="Page 4" MultiLine="True" Size2D="720, 100"/>
+              </base:View>
+              <base:View x:Name="Page5" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="#0000ff">
+                <base:TextLabel Text="Page 5" MultiLine="True" Size2D="720, 100"/>
+              </base:View>
+            </comp:ScrollableBase>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CheckBoxTestPage.xaml b/test/NUITizenGallery/res/layout/CheckBoxTestPage.xaml
new file mode 100755 (executable)
index 0000000..a70715c
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.CheckBoxTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </base:View.Layout>
+
+    <base:View x:Name="btnView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" >
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" CellPadding="100,100" LinearAlignment="CenterVertical" />
+        </View.Layout>
+        <comp:CheckBox x:Name="checkBox1" Text="False"/>
+        <comp:CheckBox x:Name="checkBox2" Text="Colored CheckBox" IsSelected="true" />
+    </base:View>
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/CollectionViewFocusTestPage.xaml b/test/NUITizenGallery/res/layout/CollectionViewFocusTestPage.xaml
new file mode 100644 (file)
index 0000000..4b53156
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.CollectionViewFocusTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <!-- <base:View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="40,0" LinearAlignment="Center"/>
+    </base:View.Layout> -->
+
+    <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Horizontal" Size2D="720, 900">
+      <comp:ScrollableBase.Layout>
+        <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="120,0"/>
+      </comp:ScrollableBase.Layout>
+    </comp:ScrollableBase>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewItem.xaml b/test/NUITizenGallery/res/layout/CollectionViewItem.xaml
new file mode 100644 (file)
index 0000000..8dc6560
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.CollectionViewItem"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" Size2D="340, 900">
+
+  <base:View x:Name="ItemBackground" BackgroundColor="#ff0000" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" Size2D="300, 700">
+    <base:View.Layout>
+      <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center"/>
+    </base:View.Layout>
+
+    <base:ImageView x:Name="ItemPoster" Size2D="300, 438"/>
+    <base:TextLabel x:Name="ItemTitle"  Size2D="300, 50" BackgroundColor="#5c5c5c" Opacity="0.7" TextColor="#ffffff"/>
+    <base:TextLabel x:Name="ItemDescription" Size2D="300, 150" BackgroundColor="#5c5c5c" Opacity="0.7"/>
+  </base:View>
+
+</base:View>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest1.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest1.xaml
new file mode 100644 (file)
index 0000000..e9630ab
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest1"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:View x:Name="TopBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="100"
+              BackgroundColor="#D3D3D3">
+                <base:View.Layout>
+                    <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,10" />
+                </base:View.Layout>
+                <base:TextLabel x:Name="Title"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  PixelSize="30"
+                  HorizontalAlignment="Begin"
+                  Text="ScrollBar"/>
+                <base:View x:Name="RadioBox"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  HeightSpecification="60">
+                    <base:View.Layout>
+                        <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="10,10" />
+                    </base:View.Layout>
+                    <comp:RadioButton x:Name="ShowBar" Text="Show" SelectedChanged="OnShowBarRadioChanged"/>
+                    <comp:RadioButton x:Name="HideBar" Text="Hide" IsSelected="true"/>
+                </base:View>
+            </base:View>
+
+            <comp:CollectionView x:Name="ColView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              ScrollingDirection="Horizontal"
+              ItemsSource="{Binding TestSource}"
+              SelectionMode="None">
+                <comp:CollectionView.ItemsLayouter>
+                      <comp:LinearLayouter />
+                </comp:CollectionView.ItemsLayouter>
+            </comp:CollectionView>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest10.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest10.xaml
new file mode 100644 (file)
index 0000000..8b14dfc
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest10"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest10"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:View x:Name="TopBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="100"
+              BackgroundColor="#D3D3D3">
+                <base:View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="30,10" />
+                </base:View.Layout>
+                <comp:Button x:Name="AddItem" Text="Add" WidthSpecification="200" HeightSpecification="80" Clicked="AddItemClicked"/>
+                <comp:Button x:Name="RemoveItem" Text="Remove" WidthSpecification="200" HeightSpecification="80"  Clicked="RemoveItemClicked"/>
+                <comp:Button x:Name="RemoveAllItems" Text="Remove All" WidthSpecification="300" HeightSpecification="80"  Clicked="RemoveAllClicked"/>
+            </base:View>
+
+            <comp:CollectionView x:Name="ColView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              ScrollingDirection="Vertical"
+              SelectionMode="Single">
+                <comp:CollectionView.ItemsLayouter>
+                      <comp:LinearLayouter />
+                </comp:CollectionView.ItemsLayouter>
+            </comp:CollectionView>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest2.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest2.xaml
new file mode 100644 (file)
index 0000000..eec52e8
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest2"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest2"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:View x:Name="TopBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="100"
+              BackgroundColor="#D3D3D3">
+                <base:View.Layout>
+                    <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,10" />
+                </base:View.Layout>
+                <base:TextLabel x:Name="Title"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  PixelSize="30"
+                  HorizontalAlignment="Begin"
+                  Text="ScrollBar"/>
+                <base:View x:Name="RadioBox"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  HeightSpecification="60">
+                    <base:View.Layout>
+                        <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="10,10" />
+                    </base:View.Layout>
+                    <comp:RadioButton x:Name="ShowBar" Text="Show" SelectedChanged="OnShowBarRadioChanged"/>
+                    <comp:RadioButton x:Name="HideBar" Text="Hide" IsSelected="true"/>
+                </base:View>
+            </base:View>
+
+            <comp:CollectionView x:Name="ColView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              ScrollingDirection="Vertical"
+              ItemsSource="{Binding TestSource}"
+              SelectionMode="None">
+                <comp:CollectionView.ItemsLayouter>
+                      <comp:LinearLayouter />
+                </comp:CollectionView.ItemsLayouter>
+            </comp:CollectionView>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest3.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest3.xaml
new file mode 100644 (file)
index 0000000..537dd20
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest3"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest3"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <comp:CollectionView x:Name="ColView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          ScrollingDirection="Vertical"
+          ItemsSource="{Binding TestSource}"
+          SelectionMode="None">
+            <comp:CollectionView.ItemsLayouter>
+                  <comp:GridLayouter />
+            </comp:CollectionView.ItemsLayouter>
+        </comp:CollectionView>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest4.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest4.xaml
new file mode 100644 (file)
index 0000000..35f3890
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest4"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest4"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:View x:Name="TopBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="100"
+              BackgroundColor="#D3D3D3">
+                <base:View.Layout>
+                    <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,10" />
+                </base:View.Layout>
+                <base:TextLabel x:Name="Title"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  PixelSize="30"
+                  HorizontalAlignment="Begin"
+                  Text="ScrollBar"/>
+                <base:View x:Name="RadioBox"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  HeightSpecification="60">
+                    <base:View.Layout>
+                        <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="10,10" />
+                    </base:View.Layout>
+                    <comp:RadioButton x:Name="Linear" Text="Linear" IsSelected="true"/>
+                    <comp:RadioButton x:Name="Grid" Text="Grid"  SelectedChanged="OnGridLayouterRadioChanged"/>
+                </base:View>
+            </base:View>
+
+            <comp:CollectionView x:Name="ColView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              ScrollingDirection="Vertical"
+              ItemsSource="{Binding TestSource}"
+              SelectionMode="None">
+                <comp:CollectionView.ItemsLayouter>
+                      <comp:LinearLayouter />
+                </comp:CollectionView.ItemsLayouter>
+            </comp:CollectionView>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest5.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest5.xaml
new file mode 100644 (file)
index 0000000..29f00a6
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest5"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest5"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:View x:Name="TopBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="120"
+              BackgroundColor="#D3D3D3">
+                <base:View.Layout>
+                    <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,10" />
+                </base:View.Layout>
+                <base:TextLabel x:Name="Title"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  PixelSize="20"
+                  HorizontalAlignment="Begin"
+                  Text="Selection"/>
+                <comp:Button x:Name="SelectButton" HeightSpecification="60" Text="Select 10" Clicked="OnSelect10Clicked"/>
+            </base:View>
+
+            <comp:CollectionView x:Name="ColView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              ScrollingDirection="Horizontal"
+              SelectionMode="SingleAlways"
+              SelectionChanged="OnSelectionChanged">
+                <comp:CollectionView.ItemsLayouter>
+                      <comp:LinearLayouter />
+                </comp:CollectionView.ItemsLayouter>
+            </comp:CollectionView>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest6.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest6.xaml
new file mode 100644 (file)
index 0000000..ba32789
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest6"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest6"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:View x:Name="TopBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="90"
+              BackgroundColor="#D3D3D3">
+                <base:View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="10,10" />
+                </base:View.Layout>
+                <comp:Button x:Name="HeaderBtn" WidthSpecification="100" HeightSpecification="60" Text="H" Clicked="HeaderBtnClicked"/>
+                <comp:Button x:Name="FooterBtn" WidthSpecification="100" HeightSpecification="60" Text="F" Clicked="FooterBtnClicked"/>
+                <comp:Button x:Name="LayouterBtn" WidthSpecification="300" HeightSpecification="60" Text="Layouter" Clicked="LayouterBtnClicked"/>
+                <comp:Button x:Name="SourceBtn" WidthSpecification="150" HeightSpecification="60" Text="Src" Clicked="SrcBtnClicked"/>
+            </base:View>
+
+            <base:View x:Name="Content"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              BackgroundColor="White">
+                <base:View.Layout>
+                    <AbsoluteLayout />
+                </base:View.Layout>
+                <base:TextLabel x:Name="EmptyContent"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  Text="No items found"
+                  HorizontalAlignment="Center"
+                  VerticalAlignment="Center" />
+                <comp:CollectionView x:Name="ColView"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  ScrollingDirection="Vertical"
+                  SelectionMode="None">
+                    <comp:CollectionView.ItemsLayouter>
+                        <comp:LinearLayouter />
+                    </comp:CollectionView.ItemsLayouter>
+                </comp:CollectionView>
+            </base:View>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest7.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest7.xaml
new file mode 100644 (file)
index 0000000..b56bdc4
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest7"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest7"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+            <base:TextLabel x:Name="Title"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="90"
+              Text="Infinite scroll"
+              PixelSize="20"
+              HorizontalAlignment="Begin"
+              VerticalAlignment="Center"
+              BackgroundColor="White"/>
+            <comp:CollectionView x:Name="ColView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              ScrollingDirection="Vertical"
+              HideScrollbar="false"
+              ItemsSource="{Binding TestSource}"
+              SelectionMode="None">
+                <comp:CollectionView.ItemsLayouter>
+                    <comp:LinearLayouter />
+                </comp:CollectionView.ItemsLayouter>
+            </comp:CollectionView>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest8.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest8.xaml
new file mode 100644 (file)
index 0000000..5c8c8d8
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest8"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest8"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+          <View.Layout>
+              <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+          </View.Layout>
+          <base:TextLabel x:Name="Title"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            HeightSpecification="90"
+            Text="Style Control State Test"
+            PixelSize="20"
+            HorizontalAlignment="Begin"
+            VerticalAlignment="Center"
+            BackgroundColor="White"/>
+          <comp:CollectionView x:Name="ColView"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            ScrollingDirection="Horizontal"
+            ItemsSource="{Binding TestSource}"
+            SelectionMode="Multiple">
+              <comp:CollectionView.ItemsLayouter>
+                  <comp:LinearLayouter />
+              </comp:CollectionView.ItemsLayouter>
+          </comp:CollectionView>
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest9.xaml b/test/NUITizenGallery/res/layout/CollectionViewTest/CollectionViewTest9.xaml
new file mode 100644 (file)
index 0000000..82d396a
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.CollectionViewTest9"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="CollectionViewTest9"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <comp:CollectionView x:Name="ColView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          ScrollingDirection="Vertical"
+          SelectionMode="Multiple"
+          SelectionChanged="OnSelectionChanged"
+          ItemsSource="{Binding TestSource}"
+          IsGrouped="true">
+            <comp:CollectionView.ItemsLayouter>
+                  <comp:LinearLayouter />
+            </comp:CollectionView.ItemsLayouter>
+        </comp:CollectionView>
+        </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/ContentPageTestPage1.xaml b/test/NUITizenGallery/res/layout/ContentPageTestPage1.xaml
new file mode 100644 (file)
index 0000000..974ac3a
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<nui:ContentPage x:Class="NUITizenGallery.ContentPageTestPage1"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <nui:ContentPage.AppBar>
+        <nui:AppBar x:Name="appBar"
+                    Title="ContentPageTestPage1"/>
+    </nui:ContentPage.AppBar>
+
+    <nui:ContentPage.Content>
+        <nui:Button x:Name="button"
+                    Text="ONE"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    HeightSpecification="{Static LayoutParamPolicies.MatchParent}" />
+    </nui:ContentPage.Content>
+
+</nui:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/ContentPageTestPage2.xaml b/test/NUITizenGallery/res/layout/ContentPageTestPage2.xaml
new file mode 100644 (file)
index 0000000..90d6b7c
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<nui:ContentPage x:Class="NUITizenGallery.ContentPageTestPage2"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <nui:ContentPage.AppBar>
+        <nui:AppBar x:Name="appBar"
+                    Title="ContentPageTestPage2"/>
+    </nui:ContentPage.AppBar>
+
+    <nui:ContentPage.Content>
+        <nui:Button x:Name="button"
+                    Text="TWO"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    HeightSpecification="{Static LayoutParamPolicies.MatchParent}" />
+    </nui:ContentPage.Content>
+
+</nui:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/CustomCellListItem.xaml b/test/NUITizenGallery/res/layout/CustomCellListItem.xaml
new file mode 100644 (file)
index 0000000..5d07463
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.CustomCellListItem"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" Size2D="720, 250">
+
+    <base:ImageView x:Name="Image" Size2D="50,50" Position2D="25,50"/>
+    <base:TextLabel x:Name="Title" Text="Not set" PointSize="14" Size2D="550, 70" Position2D="100,0"/>
+    <base:TextLabel x:Name="TextContent" Text="Not set" PointSize="10" Size2D="550, 180" Position2D="100, 70"/>
+    <comp:CheckBox x:Name="Check" Position2D="640, 50"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/CustomCellTestPage.xaml b/test/NUITizenGallery/res/layout/CustomCellTestPage.xaml
new file mode 100644 (file)
index 0000000..b97f90c
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.CustomCellTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" BackgroundColor="#ffffff">
+
+  <comp:ScrollableBase x:Name="ListView"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/DatePickerTestPage.xaml b/test/NUITizenGallery/res/layout/DatePickerTestPage.xaml
new file mode 100644 (file)
index 0000000..b1cf5ea
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.DatePickerTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="DatePickerTestPage"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+              <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="30,30"/>
+            </View.Layout>
+              <base:TextLabel x:Name="text1"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="100"
+                              HorizontalAlignment="Center"
+                              VerticalAlignment="Center"
+                              PointSize="20"
+                              />
+              <comp:Button x:Name="dateButton"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="80"
+                              Text="Date Picker"
+                              PointSize="20"
+                              />
+              <comp:Button x:Name="setMinButton"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="80"
+                              Text="Set Min Date"
+                              PointSize="20"
+                              />
+              <comp:Button x:Name="setMaxButton"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="80"
+                              Text="Set Max Date"
+                              PointSize="20"
+                              />
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/EditorTest1.xaml b/test/NUITizenGallery/res/layout/EditorTest1.xaml
new file mode 100644 (file)
index 0000000..1967ee7
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.EditorTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+  <ContentPage.AppBar>
+      <AppBar x:Name="appBar"
+              Title="EditorTest1Page"/>
+  </ContentPage.AppBar>
+
+  <ContentPage.Content>
+      <View x:Name="mainView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+          <LinearLayout LinearOrientation="Vertical" />
+        </View.Layout>
+
+        <View x:Name="topView" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+          <TextLabel Text="Editor Test 1 : " WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" />
+        </View>
+
+        <TextEditor x:Name="editor" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  />
+
+        <View x:Name="bottomView" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+          <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" />
+          </View.Layout>
+
+          <View x:Name="underline" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="2" BackgroundColor="#999999" />
+
+          <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+            <View.Layout>
+              <LinearLayout LinearOrientation="Horizontal" />
+            </View.Layout>
+
+            <TextLabel Text="Editor Test 2 : " WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" />
+            
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+              <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" />
+              </View.Layout>
+
+              <TextField x:Name="field" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  VerticalAlignment="Center" />
+              <View x:Name="underline2" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="2" BackgroundColor="#999999" />
+
+            </View>
+          </View>
+        </View>
+      </View>
+  </ContentPage.Content>
+
+</ContentPage>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/EditorTest2.xaml b/test/NUITizenGallery/res/layout/EditorTest2.xaml
new file mode 100644 (file)
index 0000000..f64432c
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.EditorTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+  <ContentPage.AppBar>
+      <AppBar x:Name="appBar"
+              Title="EditorTest2Page"/>
+  </ContentPage.AppBar>
+
+  <ContentPage.Content>
+      <View x:Name="mainView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+          <LinearLayout LinearOrientation="Vertical" />
+        </View.Layout>
+
+        <View x:Name="topView" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+          <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" />
+          </View.Layout>
+
+          <TextLabel Text="Editor's Event : " WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}" />
+          <TextEditor x:Name="editor" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80" />
+          <View x:Name="underline" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="2" BackgroundColor="#999999" />
+          <TextLabel Text="Editor's Text : " WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" />
+        </View>
+        <TextEditor x:Name="editor2" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  />
+        <View x:Name="underline2" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="2" BackgroundColor="#999999" />
+      </View>
+              
+  </ContentPage.Content>
+</ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/EntryTest1Page.xaml b/test/NUITizenGallery/res/layout/EntryTest1Page.xaml
new file mode 100644 (file)
index 0000000..3bf6ed7
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.EntryTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  PositionUsesPivotPoint="True"
+  ParentOrigin="Center"
+  PivotPoint="Center" 
+  WidthResizePolicy="FillToParent"
+  HeightResizePolicy="FillToParent"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top"/>
+    </View.Layout>
+
+    <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               BackgroundColor="#FF66FF"
+               Text=" "/>
+
+    <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Text="This is a TextField with very looooooooooooong looooooooooooooong text"
+               Weight="1.0"/>
+
+    <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Text="Formated TextField"
+               Weight="1.0"/>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Top"/>
+        </View.Layout>
+
+        <TextLabel Text="Name: "/>
+
+        <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+
+    </View>
+
+    <View WidthResizePolicy="FillToParent">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin"/>
+        </View.Layout>
+
+        <TextLabel Text="Passoword: "/>
+
+        <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+
+    </View>
+
+    <View WidthResizePolicy="FillToParent">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top"/>
+        </View.Layout>
+
+        <TextField PlaceholderTextColor="1,0,0,1"
+                   PlaceholderText="Placeholder Color - Red"/>
+
+        <TextField PlaceholderTextColor="0,1,0,1"
+                   PlaceholderText="Placeholder Color - Gren" />
+
+        <TextField PlaceholderTextColor="0,0,1,1"
+                   PlaceholderText="Placeholder Color - Blue" />
+
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/EntryTest2Page.xaml b/test/NUITizenGallery/res/layout/EntryTest2Page.xaml
new file mode 100644 (file)
index 0000000..babbcad
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.EntryTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  PositionUsesPivotPoint="True"
+  ParentOrigin="Center"
+  PivotPoint="Center" 
+  WidthResizePolicy="FillToParent"
+  HeightResizePolicy="FillToParent"
+  BackgroundColor="White">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="5,0"/>
+    </View.Layout>
+
+    <TextLabel WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Text="This is label"/>
+
+    <TextField WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Weight="1.0"
+               Text="This is Entry"/>
+
+    <Button Text="This is button"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" />
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/EntryTest4Page.xaml b/test/NUITizenGallery/res/layout/EntryTest4Page.xaml
new file mode 100644 (file)
index 0000000..4579061
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.EntryTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <TabView x:Name="tabView"
+             WidthResizePolicy="FillToParent"
+             HeightResizePolicy="FillToParent"
+             BackgroundColor="Green"/>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/FlexTest1Page.xaml b/test/NUITizenGallery/res/layout/FlexTest1Page.xaml
new file mode 100644 (file)
index 0000000..f4ea02a
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.FlexTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <FlexLayout Direction="Column" Justification="FlexStart" Alignment="FlexStart"/>
+            
+        </View.Layout>
+
+
+        <b:TextLabel x:Name="text1"
+                     SizeWidth="720"
+                     SizeHeight="120"
+                     PointSize="8"
+                     Text="label1"
+                     BackgroundColor="#ff0000"
+                     />
+
+        <b:TextLabel x:Name="text2"
+                     SizeWidth="720"
+                     SizeHeight="100"
+                     PointSize="8"
+                     Text="label2"
+                     BackgroundColor="#aaaaaa"
+                     />
+
+        <b:TextLabel x:Name="text3"
+                     SizeWidth="720"
+                     SizeHeight="80"
+                     PointSize="8"
+                     Text="label3"
+                     BackgroundColor="#ffff00"
+                     />
+
+        <b:TextLabel x:Name="text4"
+                     SizeWidth="720"
+                     SizeHeight="60"
+                     PointSize="8"
+                     Text="label4"
+                     BackgroundColor="#00aaff"
+                     />
+
+        <b:TextLabel x:Name="text5"
+                     SizeWidth="720"
+                     SizeHeight="40"
+                     PointSize="8"
+                     Text="label5"
+                     BackgroundColor="#00ffff"
+                     />
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/FlexTest2Page.xaml b/test/NUITizenGallery/res/layout/FlexTest2Page.xaml
new file mode 100644 (file)
index 0000000..7a8f27b
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.FlexTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <FlexLayout Direction="Row" Justification="FlexStart" Alignment="FlexStart"/>
+
+        </View.Layout>
+
+
+        <b:TextLabel x:Name="text1"
+                     SizeWidth="160"
+                     HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     PointSize="8"
+                     Text="label1"
+                     BackgroundColor="#ff0000"
+                     />
+
+        <b:TextLabel x:Name="text2"
+                     SizeWidth="100"
+                     HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     PointSize="8"
+                     Text="label2"
+                     BackgroundColor="#aaaaaa"
+                     />
+
+        <b:TextLabel x:Name="text3"
+                     SizeWidth="60"
+                     HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     PointSize="8"
+                     Text="label3"
+                     BackgroundColor="#ffff00"
+                     />
+
+        <b:TextLabel x:Name="text4"
+                     SizeWidth="40"
+                     HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     PointSize="8"
+                     Text="label4"
+                     BackgroundColor="#00aaff"
+                     />
+
+        <b:TextLabel x:Name="text5"
+                     SizeWidth="400"
+                     HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     PointSize="8"
+                     Text="label5"
+                     BackgroundColor="#00ffff"
+                     />
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/FlexTest3Page.xaml b/test/NUITizenGallery/res/layout/FlexTest3Page.xaml
new file mode 100644 (file)
index 0000000..a744208
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.FlexTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <FlexLayout Direction="ColumnReverse" Justification="FlexStart" Alignment="FlexEnd"/>
+
+        </View.Layout>
+
+
+        <b:TextLabel x:Name="text1"
+                     SizeWidth="300"
+                     SizeHeight="40"
+                     PointSize="8"
+                     Text="label1"
+                     BackgroundColor="#ff0000"
+                     />
+
+        <b:TextLabel x:Name="text2"
+                     SizeWidth="300"
+                     SizeHeight="60"
+                     PointSize="8"
+                     Text="label2"
+                     BackgroundColor="#aaaaaa"
+                     />
+
+        <b:TextLabel x:Name="text3"
+                     SizeWidth="300"
+                     SizeHeight="40"
+                     PointSize="8"
+                     Text="label3"
+                     BackgroundColor="#ffff00"
+                     />
+
+        <b:TextLabel x:Name="text4"
+                     SizeWidth="300"
+                     SizeHeight="80"
+                     PointSize="8"
+                     Text="label4"
+                     BackgroundColor="#00aaff"
+                     />
+
+        <b:TextLabel x:Name="text5"
+                     SizeWidth="300"
+                     SizeHeight="40"
+                     PointSize="8"
+                     Text="label5"
+                     BackgroundColor="#00ffff"
+                     />
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/FrameLayoutTest1Page.xaml b/test/NUITizenGallery/res/layout/FrameLayoutTest1Page.xaml
new file mode 100644 (file)
index 0000000..173ac49
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.FrameLayoutTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <View.Layout>
+        <RelativeLayout />
+    </View.Layout>
+
+    <View x:Name="topLeft"
+          BackgroundColor="#FF66FF"
+          RelativeLayout.RightRelativeOffset="0.5"
+          RelativeLayout.BottomRelativeOffset="0.5"
+          RelativeLayout.FillHorizontal="True"
+          RelativeLayout.FillVertical="True"/>
+
+    <View x:Name="topRight"
+          BackgroundColor="Blue"
+          RelativeLayout.LeftRelativeOffset="0.5"
+          RelativeLayout.RightRelativeOffset="1.0"
+          RelativeLayout.BottomRelativeOffset="0.5"
+          RelativeLayout.FillHorizontal="True"
+          RelativeLayout.FillVertical="True"/>
+
+    <View x:Name="bottomRight"
+          BackgroundColor="Red"
+          RelativeLayout.RightRelativeOffset="0.5"
+          RelativeLayout.BottomRelativeOffset="1.0"
+          RelativeLayout.TopRelativeOffset="0.5"
+          RelativeLayout.FillHorizontal="True"
+          RelativeLayout.FillVertical="True"/>
+
+    <View x:Name="bottomLeft"
+          BackgroundColor="Yellow"
+          RelativeLayout.LeftRelativeOffset="0.5"
+          RelativeLayout.RightRelativeOffset="1.0"
+          RelativeLayout.BottomRelativeOffset="1.0"
+          RelativeLayout.TopRelativeOffset="0.5"
+          RelativeLayout.FillHorizontal="True"
+          RelativeLayout.FillVertical="True"/>
+
+    <View x:Name="parentBox"
+          BackgroundColor="1.0, 0.3, 0.4, 0.3"
+          RelativeLayout.LeftRelativeOffset="0.25"
+          RelativeLayout.RightRelativeOffset="0.75"
+          RelativeLayout.TopRelativeOffset="0.25"
+          RelativeLayout.BottomRelativeOffset="0.75"
+          RelativeLayout.FillHorizontal="True"
+          RelativeLayout.FillVertical="True"/>
+
+    <TextLabel x:Name="label"
+               Text="I'm button &amp; Center Label"
+               MultiLine="True"
+               LineWrapMode="Word"
+               HorizontalAlignment="Center"
+               RelativeLayout.LeftRelativeOffset="0.25"
+               RelativeLayout.RightRelativeOffset="0.75"
+               RelativeLayout.TopRelativeOffset="0.9"
+               RelativeLayout.BottomRelativeOffset="1.0"
+               RelativeLayout.FillHorizontal="True"
+               RelativeLayout.FillVertical="True"/>
+
+    <Button x:Name="button"
+            RelativeLayout.LeftRelativeOffset="0.033"
+            RelativeLayout.RightRelativeOffset="0.967"
+            RelativeLayout.TopRelativeOffset="0.25"
+            RelativeLayout.BottomRelativeOffset="0.75"
+            RelativeLayout.FillHorizontal="True"
+            RelativeLayout.FillVertical="True"
+            Text="I'm centered Button"
+            TextAlignment="Center"
+            PointSize="8"/>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/FrameTest1Page.xaml b/test/NUITizenGallery/res/layout/FrameTest1Page.xaml
new file mode 100644 (file)
index 0000000..8b5b6ec
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.FrameTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+      <LinearLayout LinearOrientation="Vertical" CellPadding="0,10" LinearAlignment="Center"/>
+    </base:View.Layout>
+
+    <comp:Button Text="Shadow On" x:Name="ShadowOnBackground" WidthResizePolicy="FillToParent"/>
+    <comp:Button Text="Shadow Off" x:Name="ShadowOffBackground" WidthResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/GridTest1Page.xaml b/test/NUITizenGallery/res/layout/GridTest1Page.xaml
new file mode 100755 (executable)
index 0000000..927a46b
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.GridTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True" 
+           ParentOrigin="Center"
+           PivotPoint="Center"          
+           WidthResizePolicy="FillToParent"
+           HeightResizePolicy="FillToParent">
+
+    <base:View x:Name="rootView" HeightResizePolicy="FillToParent" >
+
+        <base:View.Layout >
+            <GridLayout Columns="3" Rows="4" GridOrientation="Horizontal" ColumnSpacing="2" RowSpacing="2" />
+        </base:View.Layout>
+
+        <comp:Button Text="Button 1" GridLayout.Column="0" GridLayout.Row="0" GridLayout.ColumnSpan="3" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 2" GridLayout.Column="0" GridLayout.Row="1" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 3" GridLayout.Column="1" GridLayout.Row="1" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 4" GridLayout.Column="0" GridLayout.Row="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 5" GridLayout.Column="1" GridLayout.Row="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 6" GridLayout.Column="2" GridLayout.Row="1" GridLayout.RowSpan="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 7" GridLayout.Column="0" GridLayout.Row="3" GridLayout.ColumnSpan="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+        <comp:Button Text="Button 8" GridLayout.Column="2" GridLayout.Row="3" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+    </base:View>
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/GridTest2Page.xaml b/test/NUITizenGallery/res/layout/GridTest2Page.xaml
new file mode 100755 (executable)
index 0000000..35cfc3a
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.GridTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True" 
+           ParentOrigin="Center"
+           PivotPoint="Center"          
+           WidthResizePolicy="FillToParent"
+           HeightResizePolicy="FillToParent">
+
+    <base:View x:Name="rootView" HeightResizePolicy="FillToParent" >
+
+        <base:View.Layout >
+            <GridLayout Columns="3" Rows="3" GridOrientation="Horizontal" ColumnSpacing="2" RowSpacing="2" />
+        </base:View.Layout>
+
+        <comp:Button Text="Button 1" GridLayout.Column="0" GridLayout.Row="0" GridLayout.ColumnSpan="3" GridLayout.HorizontalStretch="ExpandAndFill" />
+        <comp:Button Text="Button 2" GridLayout.Column="0" GridLayout.Row="1" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill" BackgroundColor="Blue"/>
+        <comp:Button Text="Button 3" GridLayout.Column="1" GridLayout.Row="1" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill" BackgroundColor="Yellow"/>
+        <comp:Button Text="Button 4" GridLayout.Column="0" GridLayout.Row="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill" />
+        <comp:Button Text="Button 5" GridLayout.Column="1" GridLayout.Row="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill" BackgroundColor="Magenta"/>
+        <comp:Button Text="Button 6" GridLayout.Column="2" GridLayout.Row="1" GridLayout.RowSpan="2" GridLayout.VerticalStretch="ExpandAndFill" GridLayout.HorizontalStretch="ExpandAndFill"/>
+    </base:View>
+
+</base:View>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/HelloWorldPage.xaml b/test/NUITizenGallery/res/layout/HelloWorldPage.xaml
new file mode 100644 (file)
index 0000000..52f82dc
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.HelloWorldPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Color="#ffffff">
+
+    <b:TextLabel x:Name="test1PageText"  Text="Hello NUI XAML !" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" 
+                 WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" HorizontalAlignment="Center" VerticalAlignment="Center"
+                 PointSize="15" TextColor="Blue"/>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/IconTestPage.xaml b/test/NUITizenGallery/res/layout/IconTestPage.xaml
new file mode 100644 (file)
index 0000000..7b33510
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.IconTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" />
+        </View.Layout>
+
+        <b:ImageView x:Name="image1"
+                     SizeWidth="200"
+                     SizeHeight="200"/>
+        <b:ImageView x:Name="image2"
+                     SizeWidth="200"
+                     SizeHeight="200"/>
+        <b:ImageView x:Name="image3"
+                     SizeWidth="200"
+                     SizeHeight="200"/>
+
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/ImageButtonTestPage.xaml b/test/NUITizenGallery/res/layout/ImageButtonTestPage.xaml
new file mode 100644 (file)
index 0000000..c7f3e3f
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.ImageButtonTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" />
+        </View.Layout>
+
+        <nui:Button x:Name="button1"
+                    HeightResizePolicy="UseNaturalSize"
+                    WidthResizePolicy="UseNaturalSize"
+                    BackgroundColor="#52c7d9"
+                    PointSize="10"
+                    TextColor="#ffffff"> 
+            <nui:Button.Icon>
+                <b:ImageView x:Name="imageview1" SizeHeight="300" SizeWidth="300" />
+            </nui:Button.Icon>            
+        </nui:Button>
+
+        <b:TextLabel x:Name="text1"
+                     WidthResizePolicy="FillToParent"
+                     PointSize="10"
+                     Text="ImageButton Status" />
+
+
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/ImageTest1Page.xaml b/test/NUITizenGallery/res/layout/ImageTest1Page.xaml
new file mode 100755 (executable)
index 0000000..286dd14
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ImageTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+    ParentOrigin="Center" 
+    PivotPoint="Center" 
+    WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+    BackgroundColor="#FFFFFF">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </View.Layout>
+
+    <View WidthResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Center"/>
+        </View.Layout>
+        <comp:Button x:Name="image1Btn" Text="Image 1" WidthResizePolicy="FillToParent" Weight="0.3"/>
+        <comp:Button x:Name="image2Btn" Text="Image 2" WidthResizePolicy="FillToParent" Weight="0.3"/>
+        <comp:Button x:Name="image3Btn" Text="Image 3" WidthResizePolicy="FillToParent" Weight="0.3"/>
+    </View>
+
+    <View WidthResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Center"/>
+        </View.Layout>
+        <comp:Button x:Name="image4Btn" Text="Load 4000x2802" WidthResizePolicy="FillToParent" Weight="0.5"/>
+        <comp:Button x:Name="image5Btn" Text="Load 8000x10454" WidthResizePolicy="FillToParent" Weight="0.5"/>
+    </View>
+
+    <View WidthResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Center"/>
+        </View.Layout>
+        <comp:Button x:Name="image6Btn" Text="URI" WidthResizePolicy="FillToParent" Weight="0.5" />
+        <comp:Button x:Name="image7Btn" Text="Stream" WidthResizePolicy="FillToParent" Weight="0.5" />
+    </View>
+
+    <View WidthResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Center"/>
+        </View.Layout>
+        <TextLabel x:Name="labelA" Text="Alpha:" Weight="0.15"/>
+        <comp:Slider x:Name="sliderA" MinValue="0" MaxValue="255" Weight="0.85"/>
+    </View>    
+
+    <View WidthResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Center"/>
+        </View.Layout>
+        <TextLabel x:Name="labelR" Text="R:" Weight="0.03" />
+        <comp:Slider x:Name="sliderR" MinValue="0" MaxValue="255" Weight="0.3"/>
+        <TextLabel x:Name="labelG" Text="G:" Weight="0.03" />
+        <comp:Slider x:Name="sliderG" MinValue="0" MaxValue="255" Weight="0.3"/>
+        <TextLabel x:Name="labelB" Text="B:" Weight="0.03" />
+        <comp:Slider x:Name="sliderB" MinValue="0" MaxValue="255" Weight="0.3"/>
+    </View>
+
+    <View x:Name="imgView" BackgroundColor="#ffffff" Position2D="0, 450" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" >
+        <ImageView x:Name="imageView" Position2D="0, 10" Size2D="720, 720"/>
+    </View>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ImageTest2Page.xaml b/test/NUITizenGallery/res/layout/ImageTest2Page.xaml
new file mode 100755 (executable)
index 0000000..fe0d5ce
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ImageTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </View.Layout>
+
+    <View WidthResizePolicy="FillToParent" Position2D="0, 0" Size2D="720, 450">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" CellPadding="10,5" LinearAlignment="Center"/>
+        </View.Layout>
+        <comp:Button x:Name="image1Btn" Text="AspectFit" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image2Btn" Text="AspectFill" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image3Btn" Text="Fill" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image4Btn" Text="BackgroundColor (Default - Red)" WidthResizePolicy="FillToParent"/>
+    </View>
+
+    <View x:Name="imgView" BackgroundColor="#ffffff" Position2D="0, 450" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal"/>
+        </View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/picture.png" />
+    </View>
+
+</base:View>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/ImageTest3Page.xaml b/test/NUITizenGallery/res/layout/ImageTest3Page.xaml
new file mode 100755 (executable)
index 0000000..268886a
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ImageTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <View x:Name="imgView" BackgroundColor="#ffffff" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="CenterHorizontal"/>
+        </View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg"/>
+    </View>
+
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/ImageTest4Page.xaml b/test/NUITizenGallery/res/layout/ImageTest4Page.xaml
new file mode 100755 (executable)
index 0000000..12ea20e
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ImageTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <View x:Name="imgView" BackgroundColor="#ffffff" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="CenterHorizontal"/>
+        </View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/picture.png" />
+    </View>
+
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/ImageTest5Page.xaml b/test/NUITizenGallery/res/layout/ImageTest5Page.xaml
new file mode 100755 (executable)
index 0000000..50cb309
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ImageTest5Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" 
+       ParentOrigin="Center" 
+    PivotPoint="Center" 
+       WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" 
+       BackgroundColor="#FFFFFF">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="Top"/>
+    </View.Layout>
+
+    <View x:Name="imgView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.5">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10,10"/>
+        </View.Layout>
+        <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/a.jpg" />
+    </View>
+
+    <View x:Name="btnView" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" Weight="0.5">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,10" />
+        </View.Layout>
+        <base:TextLabel x:Name="desc1"  Text="" PointSize="5" TextColor="Black"/>
+        <comp:Button x:Name="image1Btn" Text="size + 100" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image2Btn" Text="size - 100" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image3Btn" Text="height + 100" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image4Btn" Text="height - 100" WidthResizePolicy="FillToParent" />
+        <comp:Button x:Name="image5Btn" Text="change mode" WidthResizePolicy="FillToParent"/>
+    </View>
+    
+    
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/IndicatorViewTest1Page.xaml b/test/NUITizenGallery/res/layout/IndicatorViewTest1Page.xaml
new file mode 100644 (file)
index 0000000..e5c8094
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.IndicatorViewTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center"
+    PivotPoint="Center" WidthResizePolicy="FillToParent"
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <comp:ScrollableBase x:Name="Scroller" SnapToPage="true" ScrollingDirection="Horizontal" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+      <comp:ScrollableBase.Layout>
+        <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center"/>
+      </comp:ScrollableBase.Layout>
+
+      <base:View x:Name="Page0" Size="{Binding Source={x:Static Window.Instance}, Path=WindowSize }" BackgroundColor="#ff0000">
+        <base:TextLabel Text="Page 0" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center"/>
+      </base:View>
+      <base:View x:Name="Page1" Size="{Binding Source={x:Static Window.Instance}, Path=WindowSize }" BackgroundColor="#00ff00">
+        <base:TextLabel Text="Page 1" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center"/>
+      </base:View>
+      <base:View x:Name="Page2" Size="{Binding Source={x:Static Window.Instance}, Path=WindowSize }" BackgroundColor="#0000ff">
+        <base:TextLabel Text="Page 2" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center"/>
+      </base:View>
+      <base:View x:Name="Page3" Size="{Binding Source={x:Static Window.Instance}, Path=WindowSize }" BackgroundColor="#ff00ff">
+        <base:TextLabel Text="Page 3" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center"/>
+      </base:View>
+      <base:View x:Name="Page4" Size="{Binding Source={x:Static Window.Instance}, Path=WindowSize }" BackgroundColor="#00ff00">
+        <base:TextLabel Text="Page 4" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center"/>
+      </base:View>
+    </comp:ScrollableBase>
+
+    <comp:Pagination x:Name="Index" Size2D="186,50"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/IndicatorViewTest4Page.xaml b/test/NUITizenGallery/res/layout/IndicatorViewTest4Page.xaml
new file mode 100644 (file)
index 0000000..7c24abd
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.IndicatorViewTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+      <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10, 10"/>
+    </base:View.Layout>
+
+    <comp:Pagination x:Name="Index0" Size2D="90,50"/>
+    <comp:Pagination x:Name="Index1" Size2D="186,50"/>
+    <comp:Pagination x:Name="Index2" Size2D="220,50"/>
+    <comp:Pagination x:Name="Index3" Size2D="186,50"/>
+    <comp:Pagination x:Name="Index4" Size2D="186,50"/>
+    <comp:Pagination x:Name="Index5" Size2D="186,50"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/LabelTest1Page.xaml b/test/NUITizenGallery/res/layout/LabelTest1Page.xaml
new file mode 100644 (file)
index 0000000..bd7b86d
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.LabelTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <View x:Name="layout"
+          HeightResizePolicy="FillToParent"
+          WidthResizePolicy="FillToParent">
+
+        <View.Layout>
+                <LinearLayout LinearOrientation="Vertical"/>
+        </View.Layout>
+            
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/LabelTest2Page.xaml b/test/NUITizenGallery/res/layout/LabelTest2Page.xaml
new file mode 100644 (file)
index 0000000..e7229d1
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.LabelTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+    
+    <View.XamlResources>
+        <ResourceDictionary>
+            <x:String x:Key="label2Text">
+                &lt;color value='blue'&gt;This should be Blue&lt;/color&gt;
+            </x:String>
+            <x:String x:Key="label3Text">
+                None&lt;font weight='bold' &gt;Bold&lt;/font&gt;&lt;font slant='italic' &gt;Italic&lt;/font&gt;&lt;font slant='italic' weight='bold' &gt;Both&lt;/font&gt;
+            </x:String>
+            <x:String x:Key="label6Text">
+                &lt;color value='blue'&gt;&lt;font slant='italic' &gt;This should be Italic Blue on Red&lt;/font&gt;&lt;/color&gt;
+            </x:String>
+            <x:String x:Key="label8Text">
+                &lt;Html&gt;this is HTML&lt;/Html&gt;
+            </x:String>
+        </ResourceDictionary>
+    </View.XamlResources>
+    
+    <View x:Name="mainView"
+          HeightResizePolicy="FillToParent"
+          WidthResizePolicy="FillToParent">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+        </View.Layout>
+
+        <TextLabel Text="NormalTextLabel"/>
+
+        <TextLabel BackgroundColor="Red"
+                   EnableMarkup="True"
+                   Text="{StaticResource label2Text}"/>
+                                                        
+        <TextLabel EnableMarkup="True"
+                   Text="{StaticResource label3Text}"/>
+
+        <TextLabel Text="This should be Blue"
+                   BackgroundColor="Red"
+                   TextColor="Blue"/>
+
+        <TextLabel Text="This should be Red"
+                   TextColor="Red"/>
+
+        <TextLabel EnableMarkup="True"
+                   Text="{StaticResource label6Text}"
+                   BackgroundColor="Red"/>
+        
+
+        <TextLabel WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   Text="This is reeeeeeeeeeeeeeeeeeeeealy looooooooooooooooooooooong and looooooooooooooooooong text"
+                   MultiLine="True"
+                   LineWrapMode="Character"/>
+
+        <TextLabel Text="{StaticResource label8Text}"/>
+        
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/LabelTest3Page.xaml b/test/NUITizenGallery/res/layout/LabelTest3Page.xaml
new file mode 100644 (file)
index 0000000..ac4a8f4
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.LabelTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <View x:Name="mainView"
+          HeightResizePolicy="FillToParent"
+          WidthResizePolicy="FillToParent"
+          BackgroundColor="Yellow">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+        </View.Layout>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin"/>
+            </View.Layout>
+
+            <TextLabel Text="LeftAligned"
+                       CellHorizontalAlignment="Left"
+                       BackgroundColor="#00ffff"/>
+            
+        </View>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center"/>
+            </View.Layout>
+
+            <TextLabel Text="CenterAligned"
+                       CellHorizontalAlignment="Center"
+                       BackgroundColor="#00ffff"/>
+            
+        </View>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="End"/>
+            </View.Layout>
+
+            <TextLabel Text="RightAligned"
+                       CellHorizontalAlignment="Right"
+                       BackgroundColor="#00ffff"/>
+            
+        </View>
+
+        <TextLabel WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   Text="Fill"
+                   BackgroundColor="#00ffff"/>
+        
+    </View>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/LabelTest5Page.xaml b/test/NUITizenGallery/res/layout/LabelTest5Page.xaml
new file mode 100644 (file)
index 0000000..e65951d
--- /dev/null
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.LabelTest5Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  BackgroundColor="White">
+
+    <ContentPage.AppBar>
+        <AppBar Title="LabelTest5"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+            </View.Layout>
+
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+                <View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10"/>
+                </View.Layout>
+
+                <ImageView Size2D="88,88"
+                       ResourceUrl="*Resource*/images/tizen.png"/>
+
+                <View x:Name="listItemContent1">
+
+                    <View.Layout>
+                        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+                    </View.Layout>
+
+                    <TextLabel Text="Anuj Bhatia"
+                        PointSize="8"/>
+
+                    <TextLabel Text="Customer Success Engineer"
+                        PointSize="8"/>
+
+                </View>
+
+            </View>
+
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+                <View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10"/>
+                </View.Layout>
+
+                <ImageView Size2D="88,88"
+                       ResourceUrl="*Resource*/images/tizen.png"/>
+
+                <View x:Name="listItemContent2"
+                    WidthSpecification="{Static LayoutParamPolicies.WrapContent}"
+                    HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+
+                    <View.Layout>
+                        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+                    </View.Layout>
+
+                    <TextLabel Text="Jo Ann Buckner"
+                        PointSize="8"/>
+
+                    <TextLabel Text="Marketing"
+                        PointSize="8"/>
+
+                </View>
+
+            </View>
+
+        </View>
+        
+    </ContentPage.Content>
+
+</ContentPage>
diff --git a/test/NUITizenGallery/res/layout/ListItemTitle.xaml b/test/NUITizenGallery/res/layout/ListItemTitle.xaml
new file mode 100644 (file)
index 0000000..f1523a9
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ListItemTitle"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" BackgroundColor="#ff0000" Size2D="680, 50">
+
+  <base:TextLabel x:Name="TextLabelTitle" Text="Not set"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ListItemTitleSwitch.xaml b/test/NUITizenGallery/res/layout/ListItemTitleSwitch.xaml
new file mode 100644 (file)
index 0000000..5aee33b
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ListItemTitleSwitch"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+  <base:TextLabel x:Name="TextLabelTitle" Text="Not set"/>
+  <comp:Switch x:Name="ListItemSwitch"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ListItemTitleView.xaml b/test/NUITizenGallery/res/layout/ListItemTitleView.xaml
new file mode 100644 (file)
index 0000000..68ff856
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ListItemTitleView"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+  <base:TextLabel x:Name="TextLabelTitle" Text="Not set"/>
+  <base:View x:Name="ListItemView" BackgroundColor="#ff0000" Position2D="400, 0" Size2D="40, 40"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ListViewFooterTest1Page.xaml b/test/NUITizenGallery/res/layout/ListViewFooterTest1Page.xaml
new file mode 100644 (file)
index 0000000..7f7df5f
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ListViewFooterTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" 
+  PivotPoint="Center" WidthResizePolicy="FillToParent" 
+  HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+  <base:View.Layout>
+    <LinearLayout LinearOrientation="Vertical" CellPadding="0,10" LinearAlignment="Center"/>
+  </base:View.Layout>
+
+  <base:TextLabel x:Name="Footer" Text="No selected item" Size2D="720, 50" BackgroundColor="#6c6c6c"/>
+
+  <comp:ScrollableBase x:Name="ListView" Size2D="720, 1180">
+    <comp:ScrollableBase.Layout>
+      <LinearLayout LinearOrientation="Vertical" CellPadding="0,10" LinearAlignment="Center"/>
+    </comp:ScrollableBase.Layout>
+  </comp:ScrollableBase>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/MenuTest/MenuTestMenu.xaml b/test/NUITizenGallery/res/layout/MenuTest/MenuTestMenu.xaml
new file mode 100644 (file)
index 0000000..f0bd99e
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<Menu x:Class="NUITizenGallery.MenuTestMenu"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <Menu.Items>
+        <Array Type="{x:Type MenuItem}">
+
+                <MenuItem x:Name="menuItem1"
+                        Text="Item1"/>
+
+                <MenuItem x:Name="menuItem2"
+                        Text="Item2"/>
+
+                <MenuItem x:Name="menuItem3"
+                        Text="Item3"/>
+
+                <MenuItem x:Name="menuItem4"
+                        Text="Item4"/>
+
+        </Array>
+    </Menu.Items>
+
+</Menu>
diff --git a/test/NUITizenGallery/res/layout/MenuTest/MenuTestPage.xaml b/test/NUITizenGallery/res/layout/MenuTest/MenuTestPage.xaml
new file mode 100644 (file)
index 0000000..befbd36
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.MenuTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <ContentPage.AppBar>
+        <AppBar x:Name="appBar"
+                Title="MenuTestPage"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        <View x:Name="content"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <RelativeLayout/>
+            </View.Layout>
+
+            <Button x:Name="buttonCenterEnd"
+                    Text="Bottom Menu"/>
+
+            <Button x:Name="buttonCenterStart"
+                    Text="Top Menu"/>
+
+            <Button x:Name="buttonEndCenter"
+                    Text="Right Menu"/>
+
+            <Button x:Name="buttonStartCenter"
+                    Text="Left Menu"/>
+
+            <Button x:Name="buttonCenterCenter"
+                    Text="Center Menu"/>
+
+        </View>
+    </ContentPage.Content>
+
+</ContentPage>
diff --git a/test/NUITizenGallery/res/layout/NavigatorTest/NavigatorTest1Page.xaml b/test/NUITizenGallery/res/layout/NavigatorTest/NavigatorTest1Page.xaml
new file mode 100644 (file)
index 0000000..a8a2c20
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.NavigatorTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:nui="clr-namespace:Tizen.NUI;assembly=Tizen.NUI"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <ContentPage.AppBar>
+        <AppBar x:Name="appBar"
+                Title="NavigatorTest1Page1"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        <View x:Name="content"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical"
+                                CellPadding="0, 10"/>
+            </View.Layout>
+
+            <Button x:Name="buttonPush"
+                        Text="Push"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPushClicked"/>
+
+            <Button x:Name="buttonPop"
+                        Text="Pop"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPopClicked"/>
+
+            <Button x:Name="buttonInsert"
+                        Text="Insert"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonInsertClicked"/>
+
+            <Button x:Name="buttonInsertBefore"
+                        Text="InsertBefore"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonInsertBeforeClicked"/>
+
+            <Button x:Name="buttonRemove"
+                        Text="Remove"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonRemoveClicked"/>
+
+            <Button x:Name="buttonRemoveAt"
+                        Text="RemoveAt"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonRemoveAtClicked"/>
+        </View>
+    </ContentPage.Content>
+
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/NavigatorTest/NavigatorTest2Page.xaml b/test/NUITizenGallery/res/layout/NavigatorTest/NavigatorTest2Page.xaml
new file mode 100644 (file)
index 0000000..bf3e199
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.NavigatorTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:nui="clr-namespace:Tizen.NUI;assembly=Tizen.NUI"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <ContentPage.AppBar>
+        <AppBar x:Name="appBar"
+                Title="NavigatorTest2Page1"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        <View x:Name="content"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical"
+                                CellPadding="0, 10"/>
+            </View.Layout>
+
+            <Button x:Name="buttonPush"
+                        Text="Push"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPushClicked"/>
+
+            <Button x:Name="buttonPop"
+                        Text="Pop"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPopClicked"/>
+
+            <Button x:Name="buttonPushAndInsert"
+                        Text="Push 2 Pages"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPushAndInsertClicked"/>
+
+            <Button x:Name="buttonRemoveAndPop"
+                        Text="Pop 2 Pages"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonRemoveAndPopClicked"/>
+
+            <Button x:Name="buttonPushAndRemove"
+                        Text="Push and Remove"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPushAndRemoveClicked"/>
+
+            <Button x:Name="buttonInsertAndPop"
+                        Text="Insert and Pop"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonInsertAndPopClicked"/>
+
+            <Button x:Name="buttonPopToRoot"
+                        Text="Pop to Root"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        Clicked="ButtonPopToRootClicked"/>
+        </View>
+    </ContentPage.Content>
+
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/OpacityTest1Page.xaml b/test/NUITizenGallery/res/layout/OpacityTest1Page.xaml
new file mode 100644 (file)
index 0000000..8fbd777
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.OpacityTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" 
+    BackgroundColor="#FFFFFF">
+
+    <comp:Button Text="Opacity 0.4" Opacity="0.4" Position2D="80,100"/>
+    <comp:Button Text="Opacity 0.2" Opacity="0.2" Position2D="340,100"/>
+    <comp:Button Text="Opacity 0.9" Opacity="0.9" Position2D="200,200"/>
+
+    <base:View Position2D="270,300">
+      <base:View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10, 10"/>
+      </base:View.Layout>
+
+      <base:TextLabel Text="Opacity 0.2" Opacity="0.2"/>
+      <base:TextLabel Text="Opacity 0.4" Opacity="0.4"/>
+      <base:TextLabel Text="Opacity 0.6" Opacity="0.6"/>
+    </base:View>
+
+    <comp:Button Text="Opacity 1.0" Opacity="1.0" Position2D="200,520"/>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/PanGestureTest1.xaml b/test/NUITizenGallery/res/layout/PanGestureTest1.xaml
new file mode 100644 (file)
index 0000000..8de2c95
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.PanGestureTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="PanGestureTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="60,60"/>
+        </View.Layout>
+
+        <View x:Name="imgView" BackgroundColor="#ffffff">
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+            <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/picture.png" />
+        </View>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/PerformanceTest1Page.xaml b/test/NUITizenGallery/res/layout/PerformanceTest1Page.xaml
new file mode 100644 (file)
index 0000000..c07b07e
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.PerformanceTest1Page"
+                  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+                  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+                  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+                  WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                  ParentOrigin="Center" PivotPoint="Center"
+                  PositionUsesPivotPoint="true" BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar" Title="PerformanceTest1Page"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="10,10" />
+            </View.Layout>
+
+            <comp:Button x:Name="StartButton" Text="Scroll to 999" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80"/>
+
+            <base:TextLabel x:Name="FPSLabel" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="60" PointSize="8"
+                         Text="Click scroll button to measure FPS"/>
+
+            <comp:ScrollableBase x:Name="Scroller" SnapToPage="true" ScrollingDirection="Vertical" 
+                                 WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}"  BackgroundColor="Blue">
+              <comp:ScrollableBase.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="5,5"/>
+              </comp:ScrollableBase.Layout>
+            </comp:ScrollableBase>
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/PerformanceTest2Page.xaml b/test/NUITizenGallery/res/layout/PerformanceTest2Page.xaml
new file mode 100644 (file)
index 0000000..19b9863
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.PerformanceTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+  <comp:Button x:Name="StartButton" Text="Scroll to 49" Size2D="700,70"/>
+  <comp:ScrollableBase x:Name="LabelsListView"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/PerformanceTest3Page.xaml b/test/NUITizenGallery/res/layout/PerformanceTest3Page.xaml
new file mode 100644 (file)
index 0000000..38b2b31
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.PerformanceTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+  <base:View x:Name="ButtonBox">
+    <comp:Button x:Name="ScrollBegin" Text="Scroll to 0" Size2D="220,70"/>
+    <comp:Button x:Name="ScrollMiddle" Text="Scroll to 100" Size2D="220,70"/>
+    <comp:Button x:Name="ScrollEnd" Text="Scroll to 199" Size2D="220,70"/>
+  </base:View>
+  
+  <comp:ScrollableBase x:Name="LabelsListView"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/PickerTest1Page.xaml b/test/NUITizenGallery/res/layout/PickerTest1Page.xaml
new file mode 100644 (file)
index 0000000..c047864
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.PickerTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="PickerTest1Page"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+          <View.Layout>
+              <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="30,30"/>
+          </View.Layout>
+
+          <base:TextLabel x:Name="text1"
+                          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                          HeightSpecification="100"
+                          HorizontalAlignment="Center"
+                          VerticalAlignment="Center"
+                          PointSize="20"
+                          Text="Black"
+                          />
+          <base:View x:Name="rect1"
+                          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                          HeightSpecification="80"
+                          BackgroundColor="#000000"
+                          />
+          <comp:Picker x:Name="picker1"
+                          WidthSpecification="300"
+                          MinValue="0"
+                          MaxValue="6"
+                          />
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/PinchGestureTest1Page.xaml b/test/NUITizenGallery/res/layout/PinchGestureTest1Page.xaml
new file mode 100644 (file)
index 0000000..32480cd
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.PinchGestureTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="PinchGestureTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="60,60"/>
+        </View.Layout>
+
+        <View x:Name="imgView" BackgroundColor="#ffffff">
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+            <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/picture.png" />
+        </View>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/ProgressbarTest1Page.xaml b/test/NUITizenGallery/res/layout/ProgressbarTest1Page.xaml
new file mode 100644 (file)
index 0000000..520e16b
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ProgressbarTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent"
+    BackgroundColor="#FFFFFF">
+
+    <base:View.Layout>
+      <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10,20"/>
+    </base:View.Layout>
+
+    <comp:Progress x:Name="TestProgress" WidthResizePolicy="FillToParent"/>
+    <comp:Slider x:Name="TestSlider" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="AnimateButton" Text="Animate"/>
+    <comp:Button x:Name="ChangeColorButton" Text="ChangeColor"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/RecalculateTest1Page.xaml b/test/NUITizenGallery/res/layout/RecalculateTest1Page.xaml
new file mode 100755 (executable)
index 0000000..28bbb43
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.RecalculateTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True" 
+           ParentOrigin="Center"
+           PivotPoint="Center"          
+           WidthResizePolicy="FillToParent"
+           HeightResizePolicy="FillToParent">
+
+    <base:View x:Name="rootView" HeightResizePolicy="FillToParent" >
+        <base:View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10, 10"/>
+        </base:View.Layout>
+        <base:View x:Name="lblView">
+            <base:View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="10, 10"/>
+            </base:View.Layout>
+            <base:TextLabel Text="abc1" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc2" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc3" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc4" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc5" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc6" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc7" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc8" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc9" CellHorizontalAlignment="Center"/>
+            <base:TextLabel Text="abc0" CellHorizontalAlignment="Center"/>
+        </base:View>
+        <comp:Button x:Name="btn1" Text="clear" SizeWidth="720" CellHorizontalAlignment="Center"/>
+    </base:View>
+</base:View>
+
diff --git a/test/NUITizenGallery/res/layout/RefreshViewTest1Page.xaml b/test/NUITizenGallery/res/layout/RefreshViewTest1Page.xaml
new file mode 100755 (executable)
index 0000000..d2f92f4
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.RefreshViewTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           WidthSpecification="-1"
+           HeightSpecification="-1"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True"
+           ParentOrigin="Center"
+           PivotPoint="Center">
+
+       <comp:ContentPage.AppBar>
+               <comp:AppBar x:Name="appBar" Title="RefreshViewTest1"/>
+       </comp:ContentPage.AppBar>
+
+       <comp:ContentPage.Content>
+               <base:View x:Name="rootView" WidthSpecification="-1" HeightSpecification="-1">
+
+                       <base:View.Layout>
+                               <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+                       </base:View.Layout>
+
+                       <comp:Button x:Name="btn1" Text="Change" WidthSpecification="-1" HeightSpecification="100" CellHorizontalAlignment="Left"/>
+                       <base:View x:Name="lblView">
+                               <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Vertical" HideScrollbar="false" >
+                                       <comp:ScrollableBase.Layout>
+                                               <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+                                       </comp:ScrollableBase.Layout>
+                               </comp:ScrollableBase>
+                       </base:View>
+               </base:View>
+       </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/RotationTest1Page.xaml b/test/NUITizenGallery/res/layout/RotationTest1Page.xaml
new file mode 100755 (executable)
index 0000000..8e118c5
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.RotationTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True" 
+           ParentOrigin="Center"
+           PivotPoint="Center"          
+           WidthResizePolicy="FillToParent"
+           HeightResizePolicy="FillToParent">
+
+    <base:View x:Name="rootView" HeightResizePolicy="FillToParent" WidthResizePolicy="FillToParent" >
+
+        <base:View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="10, 10"/>
+        </base:View.Layout>
+
+        <comp:Button x:Name="btn" Size2D="600, 100" Text="WOW!!" CellHorizontalAlignment="Center" CellVerticalAlignment="Center"/>
+        <base:View x:Name="rect" Size2D="600, 100" BackgroundColor="Blue" CellHorizontalAlignment="Center" CellVerticalAlignment="Center" />
+        <ImageView x:Name="img" CellHorizontalAlignment="Center" CellVerticalAlignment="Center"/>
+        <TextLabel x:Name="label" Text="Rotation" CellHorizontalAlignment="Center" CellVerticalAlignment="Center"/>
+        <TextLabel Text="X:"/>
+        <comp:Slider x:Name="sliderX" Size2D="600, 50" MinValue="0" MaxValue="180" BgTrackColor="#b1b1b1" SlidedTrackColor="#3db9cc" TrackThickness="5" />
+        <TextLabel Text="Y:"/>
+        <comp:Slider x:Name="sliderY" Size2D="600, 50" MinValue="0" MaxValue="180" BgTrackColor="#b1b1b1" SlidedTrackColor="#3db9cc" TrackThickness="5"/>
+        <TextLabel Text="Z:"/>
+        <comp:Slider x:Name="sliderZ" Size2D="600, 50" MinValue="0" MaxValue="180" BgTrackColor="#b1b1b1" SlidedTrackColor="#3db9cc" TrackThickness="5"/>
+
+    </base:View>
+
+</base:View>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/ScaleTest1Page.xaml b/test/NUITizenGallery/res/layout/ScaleTest1Page.xaml
new file mode 100644 (file)
index 0000000..dddf29c
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ScaleTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center"
+    PivotPoint="Center" WidthResizePolicy="FillToParent"
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <View.Layout>
+      <LinearLayout LinearOrientation="Vertical"/>
+    </View.Layout>
+
+    <comp:Button x:Name="ScaleButton" Text="Wow!!!" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ScaleTest2Page.xaml b/test/NUITizenGallery/res/layout/ScaleTest2Page.xaml
new file mode 100644 (file)
index 0000000..173eed8
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ScaleTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center"
+    PivotPoint="Center" WidthResizePolicy="FillToParent"
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <View.Layout>
+      <LinearLayout LinearOrientation="Vertical" CellPadding="0,10"/>
+    </View.Layout>
+
+    <comp:Button x:Name="ScaleChangeButton" Text="Scale the bottom button" Size2D="0,50" WidthResizePolicy="FillToParent"/>
+    <comp:Button x:Name="ScaleButton" Text="Scale me" Size2D="0,50" WidthResizePolicy="FillToParent"/>
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ScrollViewTest1Page.xaml b/test/NUITizenGallery/res/layout/ScrollViewTest1Page.xaml
new file mode 100755 (executable)
index 0000000..f2d9cfd
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.ScrollViewTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True" 
+           ParentOrigin="Center"
+           PivotPoint="Center"          
+           WidthResizePolicy="FillToParent"
+           HeightResizePolicy="FillToParent">
+
+    <base:View x:Name="rootView" HeightResizePolicy="FillToParent" >
+
+        <base:View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+        </base:View.Layout>
+
+        <base:View x:Name="lblView">
+            <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Vertical" HideScrollbar="false" >
+                <comp:ScrollableBase.Layout>
+                    <LinearLayout LinearOrientation="Vertical" CellPadding="10, 10" LinearAlignment="CenterHorizontal"/>
+                </comp:ScrollableBase.Layout>
+                <comp:Button x:Name="btn" Text="Test ScrollTo" Size2D="700,100" />
+            </comp:ScrollableBase>
+        </base:View>
+    </base:View>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/ScrollViewTest2Page.xaml b/test/NUITizenGallery/res/layout/ScrollViewTest2Page.xaml
new file mode 100755 (executable)
index 0000000..7cabbaf
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.ScrollViewTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           WidthSpecification="-1"
+           HeightSpecification="-1"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True"
+           ParentOrigin="Center"
+           PivotPoint="Center">
+
+       <comp:ContentPage.AppBar>
+               <comp:AppBar x:Name="appBar" Title="ScrollViewTest2"/>
+       </comp:ContentPage.AppBar>
+
+       <comp:ContentPage.Content>
+               <base:View x:Name="rootView" WidthSpecification="-1" HeightSpecification="-1">
+
+                       <base:View.Layout>
+                               <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+                       </base:View.Layout>
+
+                       <base:View x:Name="lblView">
+                               <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Horizontal" HideScrollbar="false" >
+                                       <comp:ScrollableBase.Layout>
+                                               <LinearLayout LinearOrientation="Horizontal" CellPadding="10, 10"/>
+                                       </comp:ScrollableBase.Layout>
+                               </comp:ScrollableBase>
+                       </base:View>
+               </base:View>
+       </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/ScrollViewTest3Page.xaml b/test/NUITizenGallery/res/layout/ScrollViewTest3Page.xaml
new file mode 100755 (executable)
index 0000000..5291f25
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.ScrollViewTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           WidthSpecification="-1"
+           HeightSpecification="-1"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True"
+           ParentOrigin="Center"
+           PivotPoint="Center">
+
+       <comp:ContentPage.AppBar>
+               <comp:AppBar x:Name="appBar" Title="ScrollViewTest3"/>
+       </comp:ContentPage.AppBar>
+
+       <comp:ContentPage.Content>
+               <base:View x:Name="rootView" WidthSpecification="-1" HeightSpecification="-1">
+
+                       <base:View.Layout>
+                               <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+                       </base:View.Layout>
+                       <base:TextLabel x:Name="scrollInfo" Text="scroll X:0, Y:0" Size2D="700,70" />
+                       <base:View x:Name="lblView">
+                               <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Vertical" HideScrollbar="false" >
+                                       <comp:Button x:Name="btn" Text="Test ScrollTo" Size2D="240,100" />
+                                       <comp:ScrollableBase.Layout>
+                                               <LinearLayout LinearOrientation="Vertical" CellPadding="10, 10"/>
+                                       </comp:ScrollableBase.Layout>
+                               </comp:ScrollableBase>
+                       </base:View>
+               </base:View>
+
+       </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/ScrollViewTest4Page.xaml b/test/NUITizenGallery/res/layout/ScrollViewTest4Page.xaml
new file mode 100755 (executable)
index 0000000..c295163
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.ScrollViewTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           WidthSpecification="-1"
+           HeightSpecification="-1"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True"
+           ParentOrigin="Center"
+           PivotPoint="Center">
+
+       <comp:ContentPage.AppBar>
+               <comp:AppBar x:Name="appBar" Title="ScrollViewTest4"/>
+       </comp:ContentPage.AppBar>
+
+       <comp:ContentPage.Content>
+               <base:View x:Name="rootView" WidthSpecification="-1" HeightSpecification="-1">
+
+                       <base:View.Layout>
+                               <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+                       </base:View.Layout>
+                       <base:TextLabel x:Name="scrollInfo" Text="scroll X:0, Y:0" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="70" />
+                       <comp:Button x:Name="btn" Text="change" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="100" />
+                       <base:View x:Name="lblView">
+                               <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Vertical" HideScrollbar="false" >
+                                       <comp:ScrollableBase.Layout>
+                                               <LinearLayout LinearOrientation="Vertical" CellPadding="10, 10"/>
+                                       </comp:ScrollableBase.Layout>
+                               </comp:ScrollableBase>
+                       </base:View>
+               </base:View>
+       </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/ScrollViewTest7Page.xaml b/test/NUITizenGallery/res/layout/ScrollViewTest7Page.xaml
new file mode 100755 (executable)
index 0000000..7f9705a
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.ScrollViewTest7Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+           WidthSpecification="-1"
+           HeightSpecification="-1"
+           BackgroundColor="White"
+           PositionUsesPivotPoint="True"
+           ParentOrigin="Center"
+           PivotPoint="Center">
+
+       <comp:ContentPage.AppBar>
+               <comp:AppBar x:Name="appBar" Title="ScrollViewTest7"/>
+       </comp:ContentPage.AppBar>
+
+       <comp:ContentPage.Content>
+               <base:View x:Name="rootView" WidthSpecification="-1" HeightSpecification="-1">
+                       <base:View.Layout>
+                               <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10, 10"/>
+                       </base:View.Layout>
+                       <base:TextLabel x:Name="scrollInfo" Text="scroll X:0, Y:0" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="70" />
+                       <comp:Button x:Name="btn" Text="Random vertical scroll" Size2D="{Binding Source={x:Static Window.Instance}, Path=Size }" HeightSpecification="100" />
+                       <base:View x:Name="lblView">
+                               <comp:ScrollableBase x:Name="Scroller" ScrollingDirection="Vertical" HideScrollbar="false" WidthSpecification="-1" HeightSpecification="-1">
+                                       <comp:ScrollableBase.Layout>
+                                               <LinearLayout LinearOrientation="Vertical" CellPadding="10, 10"/>
+                                       </comp:ScrollableBase.Layout>
+                               </comp:ScrollableBase>
+                       </base:View>
+               </base:View>
+       </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/SetColorTestPage.xaml b/test/NUITizenGallery/res/layout/SetColorTestPage.xaml
new file mode 100644 (file)
index 0000000..5b434e6
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.SetColorTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" 
+    PivotPoint="Center" WidthResizePolicy="FillToParent" 
+    HeightResizePolicy="FillToParent" BackgroundColor="#FFFFFF">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar" Title="CarouselPageTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+          <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="5,5" />
+        </View.Layout>
+    
+        <comp:Button x:Name="ChangeColorButton" Text="ChangeColor" 
+                     WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     HeightSpecification="{Static LayoutParamPolicies.WrapContent}"/>
+
+        <base:TextLabel x:Name="ButtonColorName" Text="" WidthSpecification="{Static LayoutParamPolicies.WrapContent}"
+                        HeightSpecification="{Static LayoutParamPolicies.WrapContent}" MultiLine="true"/>
+    
+        <base:View WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+          <View.Layout> 
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="50,0"/>
+          </View.Layout>
+
+          <comp:CheckBox x:Name="CheckBox1" Size2D="30,30" IsSelected="false"/>
+          <comp:CheckBox x:Name="CheckBox2" Size2D="30,30" IsSelected="true"/>
+        </base:View>
+
+        <base:TextLabel x:Name="CheckBoxColorName" Text="" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" 
+                        HeightSpecification="{Static LayoutParamPolicies.WrapContent}" MultiLine="true"/>
+
+        <comp:Progress x:Name="ProgressBar" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}" CurrentValue="50.0"/>
+        <base:TextLabel x:Name="ProgressBarColorName" Text="" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}" MultiLine="true"/>
+
+        <base:View WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+          <View.Layout> 
+            <LinearLayout LinearOrientation="Horizontal" CellPadding="50,0"/>
+          </View.Layout>
+
+          <comp:RadioButton x:Name="RadioButton1" Size2D="30,30" IsSelected="false"/>
+          <comp:RadioButton x:Name="RadioButton2" Size2D="30,30" IsSelected="true"/>
+        </base:View>
+
+        <base:TextLabel x:Name="RadioColorName" Text="" Size2D="0,120" WidthResizePolicy="FillToParent" MultiLine="true"/>
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/SimpleTestPage.xaml b/test/NUITizenGallery/res/layout/SimpleTestPage.xaml
new file mode 100644 (file)
index 0000000..97e42b2
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.SimpleTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="SimpleTest"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+          <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="10,10" />
+        </View.Layout>
+
+         <base:TextLabel Text="aaaaaaaaaa aaaaaa aaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaa" x:Name="CounterViewer" Size2D="320, 100" MultiLine="true"/>
+        <comp:Button Text="Click Me!" x:Name="CounterButton" WidthSpecification="{Static LayoutParamPolicies.WrapContent}" HeightSpecification="{Static LayoutParamPolicies.WrapContent}"/>
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/SliderTest1Page.xaml b/test/NUITizenGallery/res/layout/SliderTest1Page.xaml
new file mode 100644 (file)
index 0000000..de778a9
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.SliderTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+<b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="30,30"/>
+        </View.Layout>
+
+       
+        <b:TextLabel x:Name="text1"
+                     WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     HorizontalAlignment="Center"
+                     VerticalAlignment="Center"
+                     PointSize="8"
+                     Text="slider value: 50.0"
+                     />
+
+        <nui:Slider x:Name="slider1"
+                    MinValue="0"
+                    MaxValue="100"
+                    CurrentValue="50"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    TrackThickness="5"
+                    BgTrackColor="#b1b1b1"
+                    SlidedTrackColor="#3db9cc"
+                    />
+        <b:View x:Name="innerView"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+                <View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Center" CellPadding="20,20"/>
+                </View.Layout>
+
+                <nui:Button x:Name="button1"
+                      SizeHeight="100"
+                      BackgroundColor="#3db9cc"
+                      PointSize="6"
+                      Text="increment"
+                      Weight="0.5" />
+                <nui:Button x:Name="button2"
+                      SizeHeight="100"
+                      BackgroundColor="#3db9cc"
+                      PointSize="6"
+                      Text="decrement"
+                      Weight="0.5" />
+        </b:View>
+
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/SliderTest2Page.xaml b/test/NUITizenGallery/res/layout/SliderTest2Page.xaml
new file mode 100644 (file)
index 0000000..aaad3fc
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.SliderTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+<b:View x:Name="rootView"
+            HeightResizePolicy="FillToParent"
+            WidthResizePolicy="FillToParent"
+            BackgroundColor="#ffffff">
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="30,30"/>
+        </View.Layout>
+
+       
+        <b:TextLabel x:Name="text1"
+                     WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                     HorizontalAlignment="Center"
+                     VerticalAlignment="Center"
+                     PointSize="8"
+                     Text="slider value: 50.0"
+                     />
+
+        <nui:Slider x:Name="slider1"
+                    MinValue="0"
+                    MaxValue="100"
+                    CurrentValue="50"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    TrackThickness="5"
+                    BgTrackColor="#b1b1b1"
+                    SlidedTrackColor="#3db9cc"
+                    Direction="Horizontal"
+                    />
+        <nui:Button x:Name="button1"
+            SizeHeight="100"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            BackgroundColor="#3db9cc"
+            PointSize="6"
+            Text="Change orientation" />
+
+
+    </b:View>
+</b:View>
+
diff --git a/test/NUITizenGallery/res/layout/StackInGridTest1Page.xaml b/test/NUITizenGallery/res/layout/StackInGridTest1Page.xaml
new file mode 100644 (file)
index 0000000..47b58fd
--- /dev/null
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.StackInGridTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <ContentPage.AppBar>
+        <AppBar Title="StackInGridTest1"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" CellPadding="10,10" LinearAlignment="Begin"/>
+            </View.Layout>
+
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="700"
+                Weight="0.25">
+
+                <View.Layout>
+                    <GridLayout GridOrientation="Horizontal" Rows="4" Columns="3" RowSpacing="5" ColumnSpacing="5"/>
+                </View.Layout>
+
+                <View BackgroundColor="Red"
+                    GridLayout.Row="0"
+                    GridLayout.Column="0"
+                    GridLayout.ColumnSpan="3"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Green"
+                    GridLayout.Row="1"
+                    GridLayout.Column="0"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Blue"
+                    GridLayout.Row="1"
+                    GridLayout.Column="1"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Yellow"
+                    GridLayout.Row="2"
+                    GridLayout.Column="0"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Cyan"
+                    GridLayout.Row="2"
+                    GridLayout.Column="1"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Red"
+                    GridLayout.Row="1"
+                    GridLayout.Column="2"
+                    GridLayout.RowSpan="2"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Blue"
+                    GridLayout.Row="3"
+                    GridLayout.Column="0"
+                    GridLayout.ColumnSpan="2"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Green"
+                    GridLayout.Row="3"
+                    GridLayout.Column="2"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+            </View>
+
+
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="700"
+                Weight="0.25">
+
+                <View.Layout>
+                    <GridLayout GridOrientation="Horizontal" Rows="4" Columns="3" RowSpacing="5" ColumnSpacing="5"/>
+                </View.Layout>
+
+                <View BackgroundColor="Red"
+                    GridLayout.Row="0"
+                    GridLayout.Column="0"
+                    GridLayout.ColumnSpan="3"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Green"
+                    GridLayout.Row="1"
+                    GridLayout.Column="0"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Blue"
+                    GridLayout.Row="1"
+                    GridLayout.Column="1"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Yellow"
+                    GridLayout.Row="2"
+                    GridLayout.Column="0"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Cyan"
+                    GridLayout.Row="2"
+                    GridLayout.Column="1"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Red"
+                    GridLayout.Row="1"
+                    GridLayout.Column="2"
+                    GridLayout.RowSpan="2"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Blue"
+                    GridLayout.Row="3"
+                    GridLayout.Column="0"
+                    GridLayout.ColumnSpan="2"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+                <View BackgroundColor="Green"
+                    GridLayout.Row="3"
+                    GridLayout.Column="2"
+                    GridLayout.VerticalStretch="ExpandAndFill"
+                    GridLayout.HorizontalStretch="ExpandAndFill"/>
+
+            </View>
+
+            <TextLabel Weight="0.25"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                Text="Third Row - I'm on left"
+                MultiLine="True"/>
+
+            <TextLabel Weight="0.25"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                Text="Fourth Row - I'm on right"
+                MultiLine="True"/>
+
+        </View>
+
+    </ContentPage.Content>
+
+</ContentPage>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest1Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest1Page.xaml
new file mode 100644 (file)
index 0000000..db7065a
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" CellPadding="10,10"/>
+    </View.Layout>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin"/>
+        </View.Layout>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  Weight="0.5">
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+
+            <TextLabel Text="1 Row - 1 Label"
+                       PointSize="8"/>
+
+
+        </View>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  Weight="0.5">
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+
+            <TextLabel Text="1 Row - 2 Label"
+                       PointSize="8"/>
+
+        </View>
+
+    </View>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin"/>
+        </View.Layout>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  Weight="0.5">
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+
+            <TextLabel Text="2 Row - 1 Label"
+                           PointSize="8"/>
+
+        </View>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  Weight="0.5">
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+
+            <TextLabel Text="2 Row - 2 Label"
+                           PointSize="8"/>
+
+        </View>
+
+    </View>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin"/>
+        </View.Layout>
+
+        <TextLabel Text="Third Row - I'm on left"
+                       PointSize="8"/>
+
+    </View>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="End"/>
+        </View.Layout>
+
+        <TextLabel Text="Fourth Row - I'm on right"
+                       PointSize="8"/>
+
+    </View>
+
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest2Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest2Page.xaml
new file mode 100644 (file)
index 0000000..75ba4ae
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical"/>
+    </View.Layout>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin"/>
+        </View.Layout>
+
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Horizontal"/>
+            </View.Layout>
+
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  Weight="0.5">
+
+                <View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin"/>
+                </View.Layout>
+
+                <Button Text="button1"/>
+
+            </View>
+
+            <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  Weight="0.5">
+
+                <View.Layout>
+                    <LinearLayout LinearOrientation="Horizontal" LinearAlignment="End"/>
+                </View.Layout>
+
+                <Button Text="button2"/>
+
+            </View>
+
+        </View>
+
+    </View>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest3Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest3Page.xaml
new file mode 100644 (file)
index 0000000..bc2fa13
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="10,10"/>
+    </View.Layout>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+        
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin" CellPadding="10,10"/>
+        </View.Layout>
+
+        <View Size2D="100,100"
+              BackgroundColor="1,0,0,1"/>
+
+        <View Size2D="100,100"
+              BackgroundColor="0,1,0,1"/>
+
+        <View Size2D="100,100"
+              BackgroundColor="0,0,1,1"/>
+
+    </View>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin" CellPadding="20,20"/>
+        </View.Layout>
+
+        <View Size2D="100,100"
+              BackgroundColor="1,0,0,1"/>
+
+        <View Size2D="100,100"
+              BackgroundColor="0,1,0,1"/>
+
+        <View Size2D="100,100"
+              BackgroundColor="0,0,1,1"/>
+
+    </View>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin" CellPadding="30,30"/>
+        </View.Layout>
+
+        <View Size2D="100,100"
+              BackgroundColor="1,0,0,1"/>
+
+        <View Size2D="100,100"
+              BackgroundColor="0,1,0,1"/>
+
+        <View Size2D="100,100"
+              BackgroundColor="0,0,1,1"/>
+
+    </View>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest4Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest4Page.xaml
new file mode 100644 (file)
index 0000000..6e23047
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical"/>
+    </View.Layout>
+
+    <View x:Name="layout"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical"/>
+        </View.Layout>
+
+        <Button x:Name="addButton"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                Text="Add label"/>
+
+    </View>
+
+    <TextLabel Text="End"/>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest5Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest5Page.xaml
new file mode 100644 (file)
index 0000000..c804c33
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest5Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  BackgroundColor="White"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Horizontal" CellPadding="20,20"/>
+    </View.Layout>
+
+    <TextLabel Text="abcde"
+               PointSize="6"
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Weight="0.2"/>
+
+    <TextLabel Text="12345"
+               PointSize="6"
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Weight="0.2"/>
+
+    <TextLabel Text="This is rather looooooonoooooooooooog and looooooooong text"
+               PointSize="6"
+               MultiLine="True"
+               LineWrapMode="Character"
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Weight="0.2"/>
+
+    <TextLabel Text="This is blue text"
+               TextColor="0,0,1,1"
+               PointSize="6"
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               Weight="0.2"/>
+
+
+    <View BackgroundColor="0,1,0,1"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          Weight="0.2"/>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest6Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest6Page.xaml
new file mode 100644 (file)
index 0000000..e784df1
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest6Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:vm="clr-namespace:NUITizenGallery"
+  BackgroundColor="White"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="20,20"/>
+    </View.Layout>
+
+    <Button x:Name="changeOrientationButton"
+            Text="Change orientation"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}"/>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Horizontal" LinearAlignment="Begin" CellPadding="20,20"/>
+        </View.Layout>
+
+        <TextLabel Text="Padding"/>
+
+        <Slider x:Name="paddingSlider"
+                Weight="1.0"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                MinValue="0.0"
+                MaxValue="100.0"/>
+
+    </View>
+
+    <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+
+        <View.Layout>
+            <LinearLayout LinearAlignment="Begin" CellPadding="20,20"/>
+        </View.Layout>
+
+        <TextLabel Text="CellPadding"/>
+
+        <Slider x:Name="cellPaddingSlider"
+                Weight="1.0"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                MinValue="0.0"
+                MaxValue="100.0"/>
+
+    </View>
+
+    <View BackgroundColor="Black"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="20"/>
+
+    <View x:Name="layout"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin"/>
+        </View.Layout>
+
+        <TextLabel x:Name="firstLabel"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   Text="this is first label with loooooooong and loooooooong and loooooooongand loooooooongand loooooooong text"
+                   MultiLine="True"
+                   PointSize="6"/>
+
+        <View x:Name="switchView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearAlignment="Center" />
+            </View.Layout>
+
+            <Switch IsSelectable="True"
+                    IsSelected="False"/>
+
+        </View>
+
+        <View x:Name="blueBox"
+              BackgroundColor="Blue"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="300"/>
+
+        <TextLabel x:Name="lastLabel"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                   Text="this is first label with loooooooong and loooooooong and loooooooongand loooooooongand loooooooong text"
+                   MultiLine="True"
+                   PointSize="6"/>
+
+    </View>
+
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/StackLayoutTest8Page.xaml b/test/NUITizenGallery/res/layout/StackLayoutTest8Page.xaml
new file mode 100644 (file)
index 0000000..97056cc
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.StackLayoutTest8Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:vm="clr-namespace:NUITizenGallery"
+  BackgroundColor="#EEFFEE"
+  WidthResizePolicy="FillToParent"
+  HeightResizePolicy="FillToParent">
+
+    <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" LinearAlignment="Begin" CellPadding="20,20"/>
+    </View.Layout>
+
+    <TextLabel Text="Padding"
+               TextColor="Black"/>
+
+    <Slider x:Name="sliderPadding"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            CurrentValue="0.0"
+            MinValue="0.0"
+            MaxValue="50.0"/>
+
+    <TextLabel Text="CellPadding"
+               TextColor="Black"/>
+
+    <Slider x:Name="sliderCellPadding"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            CurrentValue="0.0"
+            MinValue="0.0"
+            MaxValue="50.0"/>
+
+    <TextLabel Text="Margin"
+               TextColor="Black"/>
+
+    <Slider x:Name="sliderMargin"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            CurrentValue="0.0"
+            MinValue="0.0"
+            MaxValue="50.0"/>
+
+    <Button x:Name="buttonOrientation"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            Text="Toggle Orientation"/>
+    
+    <Button x:Name="buttonReset"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            Text="Reset"/>
+
+    <View x:Name="layout"
+          BackgroundColor="#BBFFBB"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical"/>
+        </View.Layout>
+
+        <View x:Name="redBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              BackgroundColor="Red"
+              HeightSpecification="80"/>
+
+        <View x:Name="greenBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              BackgroundColor="Green"
+              HeightSpecification="80"/>
+
+        <View x:Name="blueBox"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              BackgroundColor="Blue"
+              HeightSpecification="80"/>
+
+    </View>
+    
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/SwipeGestureRecognizerTestPage.xaml b/test/NUITizenGallery/res/layout/SwipeGestureRecognizerTestPage.xaml
new file mode 100644 (file)
index 0000000..56f566f
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.SwipeGestureRecognizerTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="SwipeGestureRecognizerTest"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Top" CellPadding="20,20"/>
+        </View.Layout>
+
+        <TextLabel x:Name="text1"
+                    PointSize="8"
+                    Text="SwipeGestureRecognizer" />
+
+        <TextLabel x:Name="text2"
+                    PointSize="8"
+                    Text="Swipe across the red area" />
+
+        <View x:Name="areaView"
+               BackgroundColor="Red"
+               HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  />
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/SwipeViewTest1Page.xaml b/test/NUITizenGallery/res/layout/SwipeViewTest1Page.xaml
new file mode 100644 (file)
index 0000000..37e46ab
--- /dev/null
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.SwipeViewTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="SwipeViewTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="30,30"/>
+        </View.Layout>
+
+        <View x:Name="table" >
+            <base:View.Layout >
+                <GridLayout Columns="3" Rows="4" GridOrientation="Horizontal" ColumnSpacing="2" RowSpacing="2" />
+            </base:View.Layout>
+
+            <TextLabel x:Name="text1"
+                        GridLayout.Column="1" GridLayout.Row="0"
+                        HorizontalAlignment="Center"
+                        PointSize="8"
+                        SizeHeight="70"
+                        Text="SwipeGestureRecognizer" />
+
+            <TextLabel x:Name="text2"
+                    GridLayout.Column="1" GridLayout.Row="1"
+                    WidthSpecification="200"
+                    HorizontalAlignment="Center"
+                    VerticalAlignment="Center"
+                    PointSize="8"/>
+
+            <TextLabel x:Name="text3"
+                    GridLayout.Column="1" GridLayout.Row="3"
+                    WidthSpecification="200"
+                    HorizontalAlignment="Center"
+                    VerticalAlignment="Center"
+                    PointSize="8"/>
+
+            <View x:Name="img1View" GridLayout.Column="0" GridLayout.Row="2" SizeWidth="100" SizeHeight="100">
+              <ImageView x:Name="image1"
+                      SizeWidth="1" SizeHeight="1"
+                      ResourceUrl="*Resource*/images/tizen.png" />
+            </View>
+
+            <View x:Name="img2View" GridLayout.Column="2" GridLayout.Row="2" SizeWidth="100" SizeHeight="100">
+              <ImageView x:Name="image2"
+                      SizeWidth="1" SizeHeight="1"
+                      ResourceUrl="*Resource*/images/tizen.png" />
+            </View>
+
+            <View x:Name="imgView" BackgroundColor="#ffffff" GridLayout.Column="1" GridLayout.Row="2">
+              <View.Layout>
+                  <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal"/>
+              </View.Layout>
+
+              <ImageView x:Name="imageView"
+                        SizeWidth="200"
+                        SizeHeight="200"
+                        ResourceUrl="*Resource*/images/Boston.png" />
+
+            </View>
+
+        </View>
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/SwipeViewTest2Page.xaml b/test/NUITizenGallery/res/layout/SwipeViewTest2Page.xaml
new file mode 100644 (file)
index 0000000..5ba6f2e
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.SwipeViewTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="SwipeViewTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="30,30"/>
+        </View.Layout>
+
+        <View x:Name="test1" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  >
+          <View x:Name="text1BackView" BackgroundColor="#FF8224"  WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  >
+              <base:View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="End" CellPadding="10,10"/>
+              </base:View.Layout>
+              <ImageView x:Name="image1Back"
+                      SizeWidth="70" SizeHeight="70"
+                      ResourceUrl="*Resource*/images/tizen.png" />
+          </View>
+
+          <View x:Name="text1View" BackgroundColor="#AE48A0" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  >
+            <TextLabel x:Name="text1"
+                        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                        HorizontalAlignment="Center"
+                        VerticalAlignment="Center"
+                        SizeHeight="70"
+                        PointSize="8"
+                        Text="Swipe Left to be invoked" />
+          </View>
+        </View>
+
+        <View x:Name="test2" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  >
+          <View x:Name="text2BackView" BackgroundColor="#FF8224"  WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  >
+              <TextLabel x:Name="text2Back"
+                      WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                      HorizontalAlignment="End"
+                      VerticalAlignment="Center"
+                      SizeHeight="70"
+                      PointSize="8"
+                      Text="Tizen" />
+          </View>
+          <View x:Name="text2View" BackgroundColor="#AE48A0" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  >
+            <TextLabel x:Name="text2"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    HorizontalAlignment="Center"
+                    VerticalAlignment="Center"
+                    SizeHeight="70"
+                    PointSize="8"
+                    Text="Swipe Left to be execute command" />
+          </View>
+        </View>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/TabViewTest/TabViewTestPage.xaml b/test/NUITizenGallery/res/layout/TabViewTest/TabViewTestPage.xaml
new file mode 100644 (file)
index 0000000..b9710c2
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.TabViewTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <ContentPage.AppBar>
+        <AppBar x:Name="appBar"
+                Title="TabViewTestPage1"/>
+    </ContentPage.AppBar>
+
+    <ContentPage.Content>
+        <TabView x:Name="tabView"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+        </TabView>
+    </ContentPage.Content>
+
+</ContentPage>
diff --git a/test/NUITizenGallery/res/layout/TapGestureTest1Page.xaml b/test/NUITizenGallery/res/layout/TapGestureTest1Page.xaml
new file mode 100644 (file)
index 0000000..8094e7a
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.TapGestureTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="TapGestureTest1"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <TabView x:Name="tabView"
+                WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+        </TabView>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/TapGestureTest2Page.xaml b/test/NUITizenGallery/res/layout/TapGestureTest2Page.xaml
new file mode 100644 (file)
index 0000000..faf8cc9
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.TapGestureTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="TapGestureTest2"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="30,30"/>
+        </View.Layout>
+
+        <TextLabel x:Name="text1"
+                    PointSize="8"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    MultiLine="True"
+                        />
+
+        <View x:Name="imgView" BackgroundColor="#ffffff">
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+            <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/picture.png" />
+        </View>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/TapGestureTest3Page.xaml b/test/NUITizenGallery/res/layout/TapGestureTest3Page.xaml
new file mode 100644 (file)
index 0000000..1139411
--- /dev/null
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.TapGestureTest3Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="TapGestureTest3"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="30,30"/>
+        </View.Layout>
+
+
+        <View x:Name="imgView" BackgroundColor="#ffffff">
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+            <ImageView x:Name="imageView" ResourceUrl="*Resource*/images/picture.png" />
+        </View>
+
+        <TextLabel x:Name="text1"
+                    PointSize="8"
+                    Text="Tap the photo!" />
+
+        <comp:Button x:Name="button1"
+            SizeHeight="70"
+            BackgroundColor="#3db9cc"
+            PointSize="8"
+            Text="Change the number of taps required"/>
+
+        <TextLabel x:Name="text2"
+                    PointSize="8"/>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/TapGestureTest4Page.xaml b/test/NUITizenGallery/res/layout/TapGestureTest4Page.xaml
new file mode 100644 (file)
index 0000000..4cdf370
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.TapGestureTest4Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  HeightResizePolicy="FillToParent"
+  WidthResizePolicy="FillToParent"
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="TapGestureTest4"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+      <base:View x:Name="ContentView"
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+            <LinearLayout LinearOrientation="Vertical" LinearAlignment="Center" CellPadding="20,20"/>
+        </View.Layout>
+
+        <TextLabel x:Name="text1"
+                    PointSize="8"
+                    MultiLine="True" />
+
+        <TextLabel x:Name="text2"
+                    PointSize="8"
+                    TextColor="Red" />
+
+
+        <ImageView x:Name="imageView"
+                   ResourceUrl="*Resource*/images/Image.png"
+                   SizeHeight="70"
+                   WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  />
+
+        <View x:Name="boxView"
+               BackgroundColor="Green"
+               SizeHeight="70"
+               WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  />
+
+
+        <comp:Button x:Name="button1"
+            SizeHeight="70"
+           WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            BackgroundColor="#3db9cc"
+            PointSize="8"
+            Text="It's a Button"/>
+
+        <TextLabel x:Name="label1"
+                    VerticalAlignment="Center"
+                    HorizontalAlignment="Center"
+                    WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                    SizeHeight="70"
+                    BackgroundColor="Yellow"
+                    PointSize="8"
+                    Text="It's a Label"/>
+
+      </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/Test1Page.xaml b/test/NUITizenGallery/res/layout/Test1Page.xaml
new file mode 100644 (file)
index 0000000..9e0a519
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<base:View x:Class="NUITizenGallery.Test1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+    PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent">
+
+    <base:TextLabel x:Name="test1PageText"  Text="Hello NUI XAML !" PositionUsesPivotPoint="True" ParentOrigin="Center" PivotPoint="Center" 
+                 WidthResizePolicy="FillToParent" HeightResizePolicy="FillToParent" HorizontalAlignment="Center" VerticalAlignment="Center"
+                 PointSize="15" TextColor="Cyan"/>
+
+</base:View>
diff --git a/test/NUITizenGallery/res/layout/Test2Page.xaml b/test/NUITizenGallery/res/layout/Test2Page.xaml
new file mode 100644 (file)
index 0000000..0b998a6
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<b:View x:Class="NUITizenGallery.Test2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
+
+    <b:TextLabel x:Name="test2PageText"  Text="Test2Page" Size2D="500,300" Position2D="50,50" PointSize="20" TextColor="Blue"/>
+
+</b:View>
diff --git a/test/NUITizenGallery/res/layout/TextAnchorTest.xaml b/test/NUITizenGallery/res/layout/TextAnchorTest.xaml
new file mode 100644 (file)
index 0000000..6093c70
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<ContentPage x:Class="NUITizenGallery.TextAnchorTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:b="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+  <ContentPage.AppBar>
+      <AppBar x:Name="appBar"
+              Title="TextAnchorTestPage"/>
+  </ContentPage.AppBar>
+
+  <ContentPage.Content>
+      <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+        <View.Layout>
+          <LinearLayout LinearOrientation="Vertical" />
+        </View.Layout>
+
+        <TextField x:Name="field" Text="Text Anchor Test" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80" />
+        <TextLabel x:Name="anchorLabel" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80" />
+        <TextField x:Name="anchorField" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80" />
+        <TextEditor x:Name="anchorEditor" WidthSpecification="{Static LayoutParamPolicies.MatchParent}"  HeightSpecification="80" />
+
+      </View>
+  </ContentPage.Content>
+
+</ContentPage>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/TimePickerTestPage.xaml b/test/NUITizenGallery/res/layout/TimePickerTestPage.xaml
new file mode 100644 (file)
index 0000000..0842288
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.TimePickerTestPage"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                    Title="TimePickerTestPage"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <base:View x:Name="ContentView"
+          WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+            <View.Layout>
+              <LinearLayout LinearOrientation="Vertical" LinearAlignment="CenterHorizontal" CellPadding="30,30"/>
+            </View.Layout>
+              <base:TextLabel x:Name="text1"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="100"
+                              HorizontalAlignment="Center"
+                              VerticalAlignment="Center"
+                              PointSize="20"
+                              />
+              <comp:Button x:Name="timeButton"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="80"
+                              Text="Time Picker"
+                              PointSize="20"
+                              />
+              <comp:Button x:Name="setNowButton"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="80"
+                              Text="Set Now Time"
+                              PointSize="20"
+                              />
+              <comp:Button x:Name="changePickerStyleButton"
+                              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+                              HeightSpecification="80"
+                              Text="Change TimePicker Style"
+                              PointSize="20"
+                              />
+        </base:View>
+    </comp:ContentPage.Content>
+</comp:ContentPage>
\ No newline at end of file
diff --git a/test/NUITizenGallery/res/layout/ToolbarItemTest1Page.xaml b/test/NUITizenGallery/res/layout/ToolbarItemTest1Page.xaml
new file mode 100644 (file)
index 0000000..220f31f
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<comp:ContentPage x:Class="NUITizenGallery.ToolbarItemTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:comp="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  BackgroundColor="White"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+    <comp:ContentPage.AppBar>
+        <comp:AppBar x:Name="appBar"
+                     Title="ToolbarItemTest1Page"/>
+    </comp:ContentPage.AppBar>
+
+    <comp:ContentPage.Content>
+        <View WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+
+            <View.Layout>
+                <LinearLayout LinearOrientation="Vertical" CellPadding="10,10" LinearAlignment="CenterHorizontal"/>
+            </View.Layout>
+
+            <TextLabel Text="ToolbarItemTest" />
+
+            <Button x:Name="addPage1Button"
+                Text="Add Page 1"/>
+
+            <Button x:Name="addPage2Button"
+                Text="Add Page 2"/>
+
+            <Button x:Name="addPage3Button"
+                Text="Add Page 3"/>
+
+            <Button x:Name="addPage4Button"
+                Text="Add Page 4"/>
+
+        </View>
+
+    </comp:ContentPage.Content>
+
+
+</comp:ContentPage>
diff --git a/test/NUITizenGallery/res/layout/WebViewTest1.xaml b/test/NUITizenGallery/res/layout/WebViewTest1.xaml
new file mode 100644 (file)
index 0000000..f545758
--- /dev/null
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<c:ContentPage x:Class="NUITizenGallery.WebViewTest1Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:c="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+  <c:ContentPage.AppBar>
+    <c:AppBar x:Name="appBar" Title="WebViewTest1"/>
+  </c:ContentPage.AppBar>
+
+  <c:ContentPage.Content>
+    <View
+      WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+      HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+      <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" />
+      </View.Layout>
+
+      <View
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="80"
+        Padding="20,0,0,0">
+        <View.Layout>
+          <LinearLayout
+            LinearOrientation="Horizontal"
+            LinearAlignment="CenterVertical" />
+        </View.Layout>
+
+        <TextField
+            x:Name="InputField"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            VerticalAlignment="Center"
+            Text="https://m.naver.com/"
+            TextChanged="OnTextChanged" />
+
+        <c:Button
+          x:Name="GoButton"
+          WidthSpecification="120"
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          Text="Go"
+          Clicked="OnGoClicked"/>
+      </View>
+
+      <View
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="2"
+        BackgroundColor="#0A0E4A"
+        Margin="20,120,0,0"/>
+
+      <WebView x:Name="TargetWebView"
+              Url="https://m.naver.com/"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              UrlChanged="OnUrlChanged"/>
+
+      <View
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="{Static LayoutParamPolicies.WrapContent}">
+
+        <View.Layout>
+          <LinearLayout
+            LinearOrientation="Horizontal"
+            LinearAlignment="Center"
+            CellPadding="20, 20" />
+        </View.Layout>
+
+        <c:Button
+          x:Name="BackButton"
+          Weight="0.5"
+          HeightSpecification="80"
+          IsEnabled="False"
+          Text="Back"
+          Clicked="OnBackClicked"/>
+        
+        <c:Button
+          x:Name="NextButton"
+          Weight="0.5"
+          HeightSpecification="80"
+          IsEnabled="False"
+          Text="Next"
+          Clicked="OnNextClicked"/>
+      </View>
+    </View>
+  </c:ContentPage.Content>
+</c:ContentPage>
+
diff --git a/test/NUITizenGallery/res/layout/WebViewTest2.xaml b/test/NUITizenGallery/res/layout/WebViewTest2.xaml
new file mode 100644 (file)
index 0000000..90d9147
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<c:ContentPage x:Class="NUITizenGallery.WebViewTest2Page"
+  xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+  xmlns:c="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+  WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+  ParentOrigin="Center"
+  PivotPoint="Center"
+  PositionUsesPivotPoint="true"
+  BackgroundColor="White">
+
+  <c:ContentPage.AppBar>
+    <c:AppBar x:Name="appBar" Title="WebViewTest2"/>
+  </c:ContentPage.AppBar>
+
+  <c:ContentPage.Content>
+    <View
+      WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+      HeightSpecification="{Static LayoutParamPolicies.MatchParent}" >
+      <View.Layout>
+        <LinearLayout LinearOrientation="Vertical" />
+      </View.Layout>
+
+      <View
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="200"
+        Padding="20,0,0,0">
+        <View.Layout>
+          <LinearLayout
+            LinearOrientation="Horizontal"
+            LinearAlignment="CenterVertical" />
+        </View.Layout>
+
+        <TextEditor
+            x:Name="InputField"
+            WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+            TextChanged="OnTextChanged" />
+
+        <c:Button
+          x:Name="RunButton"
+          WidthSpecification="120"
+          HeightSpecification="{Static LayoutParamPolicies.MatchParent}" 
+          Text="Run"
+          Clicked="OnRunClicked"/>
+      </View>
+
+      <View
+        WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+        HeightSpecification="2"
+        BackgroundColor="#0A0E4A"
+        Margin="20,120,0,0"/>
+
+      <WebView x:Name="TargetWebView"
+              WidthSpecification="{Static LayoutParamPolicies.MatchParent}" 
+              HeightSpecification="{Static LayoutParamPolicies.MatchParent}" />
+    </View>
+  </c:ContentPage.Content>
+</c:ContentPage>
+
diff --git a/test/NUITizenGallery/res/menu.png b/test/NUITizenGallery/res/menu.png
new file mode 100644 (file)
index 0000000..69d89d5
Binary files /dev/null and b/test/NUITizenGallery/res/menu.png differ
diff --git a/test/NUITizenGallery/shared/res/NUITizenGallery.png b/test/NUITizenGallery/shared/res/NUITizenGallery.png
new file mode 100644 (file)
index 0000000..9f3cb98
Binary files /dev/null and b/test/NUITizenGallery/shared/res/NUITizenGallery.png differ
diff --git a/test/NUITizenGallery/tizen-manifest.xml b/test/NUITizenGallery/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..836219f
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="6" package="org.tizen.example.NUITizenGallery" version="1.0.0">
+  <profile name="common" />
+  <ui-application appid="org.tizen.example.NUITizenGallery"
+                                       exec="NUITizenGallery.dll"
+                                       type="dotnet-nui"
+                                       multiple="false"
+                                       taskmanage="true"
+                                       nodisplay="false"
+                                       launch_mode="single"
+          >
+    <label>NUITizenGallery</label>
+    <icon>NUITizenGallery.png</icon>
+    <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
+  </ui-application>
+  <privileges>
+    <privilege>http://tizen.org/privilege/internet</privilege>
+  </privileges>
+</manifest>
old mode 100755 (executable)
new mode 100644 (file)
index b06d104..d83d507
@@ -60,9 +60,9 @@ namespace Tizen.NUI.Samples
                 log.Debug(tag, $"sender is Capture \n");
                 PixelBuffer pixelBuffer = capture.GetCapturedBuffer();
                 PixelData pixelData = PixelBuffer.Convert(pixelBuffer);
-                var url = pixelData.Url;//capture.GetNativeImageSource().Url;
-                capturedImage = new ImageView(url);
-                log.Debug(tag, $"url={url} \n");
+                var imageUrl = pixelData.GenerateUrl();//capture.GetNativeImageSource().Url;
+                capturedImage = new ImageView(imageUrl.ToString());
+                log.Debug(tag, $"url={imageUrl.ToString()} \n");
 
                 capturedImage.Size = new Size(510, 510);
                 capturedImage.Position = new Position(10, 10);
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSActivatedSignalType.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSActivatedSignalType.cs
new file mode 100755 (executable)
index 0000000..d7fb941
--- /dev/null
@@ -0,0 +1,187 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/ActivatedSignalType")]
+    public class InternalActivatedSignalTypeTest
+    {
+        private const string tag = "NUITEST";
+        private delegate bool dummyCallback(IntPtr signal);
+        private bool OnDummyCallback(IntPtr data)
+        {
+            return false;
+        }
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ActivatedSignalType constructor.")]
+        [Property("SPEC", "Tizen.NUI.ActivatedSignalType.ActivatedSignalType C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void ActivatedSignalTypeConstructor()
+        {
+            tlog.Debug(tag, $"ActivatedSignalTypeConstructor START");
+
+            using (View view = new View())
+            {
+                var testingTarget = new ActivatedSignalType(view.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<ActivatedSignalType>(testingTarget, "Should be an Instance of ActivatedSignalType!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"ActivatedSignalTypeConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ActivatedSignalType Empty.")]
+        [Property("SPEC", "Tizen.NUI.ActivatedSignalType.Empty M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void ActivatedSignalTypeEmpty()
+        {
+            tlog.Debug(tag, $"ActivatedSignalTypeEmpty START");
+
+            var testingTarget = new ActivatedSignalType();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<ActivatedSignalType>(testingTarget, "Should be an Instance of ActivatedSignalType!");
+
+            try
+            {
+                testingTarget.Empty();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception: Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"ActivatedSignalTypeEmpty END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ActivatedSignalType GetConnectionCount.")]
+        [Property("SPEC", "Tizen.NUI.ActivatedSignalType.GetConnectionCount M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void ActivatedSignalTypeGetConnectionCount()
+        {
+            tlog.Debug(tag, $"ActivatedSignalTypeGetConnectionCount START");
+
+            var testingTarget = new ActivatedSignalType();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<ActivatedSignalType>(testingTarget, "Should be an Instance of ActivatedSignalType!");
+
+            try
+            {
+                testingTarget.GetConnectionCount();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception: Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"ActivatedSignalTypeGetConnectionCount END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ActivatedSignalType Connect.")]
+        [Property("SPEC", "Tizen.NUI.ActivatedSignalType.Connect M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void ActivatedSignalTypeConnect()
+        {
+            tlog.Debug(tag, $"ActivatedSignalTypeConnect START");
+
+            var testingTarget = new ActivatedSignalType();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<ActivatedSignalType>(testingTarget, "Should be an Instance of ActivatedSignalType!");
+
+            try
+            {
+                dummyCallback callback = OnDummyCallback;
+                testingTarget.Connect(callback);
+                testingTarget.Disconnect(callback);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception: Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"ActivatedSignalTypeConnect END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ActivatedSignalType Emit.")]
+        [Property("SPEC", "Tizen.NUI.ActivatedSignalType.Emit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void ActivatedSignalTypeEmit()
+        {
+            tlog.Debug(tag, $"ActivatedSignalTypeEmit START");
+            var currentPid = global::System.Diagnostics.Process.GetCurrentProcess().Id;
+            var currentTid = global::System.Threading.Thread.CurrentThread.ManagedThreadId;
+
+            tlog.Debug(tag, $"thread check! main pid={App.mainPid}, current pid={currentPid}, main tid={App.mainTid}, current tid={currentTid}");
+
+            using (InputMethodContext context = new InputMethodContext())
+            {
+                var testingTarget = new ActivatedSignalType();
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<ActivatedSignalType>(testingTarget, "Should be an Instance of ActivatedSignalType!");
+
+                try
+                {
+                    testingTarget.Emit(context);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception: Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"ActivatedSignalTypeEmit END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSBackKeyManager.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSBackKeyManager.cs
new file mode 100755 (executable)
index 0000000..e1fcd34
--- /dev/null
@@ -0,0 +1,68 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/BackKeyManager")]
+    public class InternalBackKeyManagerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BackKeyManager Instance.")]
+        [Property("SPEC", "Tizen.NUI.BackKeyManager.Instance A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void BackKeyManagerInstance()
+        {
+            tlog.Debug(tag, $"BackKeyManagerInstance START");
+
+            var testingTarget = BackKeyManager.Instance;
+            Assert.IsNotNull(testingTarget, "should not be null.");
+            Assert.IsInstanceOf<BackKeyManager>(testingTarget, "should be an instance of BackKeyManager class!");
+
+            tlog.Debug(tag, $"BackKeyManagerInstance END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BackKeyManager Subscriber.")]
+        [Property("SPEC", "Tizen.NUI.BackKeyManager.Subscriber A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void BackKeyManagerSubscriber()
+        {
+            tlog.Debug(tag, $"BackKeyManagerSubscriber START");
+
+            var testingTarget = BackKeyManager.Instance;
+            Assert.IsNotNull(testingTarget, "should not be null.");
+            Assert.IsInstanceOf<BackKeyManager>(testingTarget, "should be an instance of BackKeyManager class!");
+
+            var result = testingTarget.Subscriber;
+            tlog.Debug(tag, "Subscriber : " + result);
+
+            tlog.Debug(tag, $"BackKeyManagerSubscriber END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSBaseObject.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSBaseObject.cs
new file mode 100755 (executable)
index 0000000..c2ac275
--- /dev/null
@@ -0,0 +1,52 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/BaseObject")]
+    public class InternalBaseObjectTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BaseObject constructor.")]
+        [Property("SPEC", "Tizen.NUI.BaseObject.BaseObject C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void BaseObjectConstructor()
+        {
+            tlog.Debug(tag, $"BaseObjectConstructor START");
+
+            using (ImageView view = new ImageView())
+            {
+                var testingTarget = new BaseObject(view.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "should not be null.");
+                Assert.IsInstanceOf<BaseObject>(testingTarget, "should be an instance of BaseObject class!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"BaseObjectConstructor END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSChildPropertyRegistration.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSChildPropertyRegistration.cs
new file mode 100755 (executable)
index 0000000..6b7f46e
--- /dev/null
@@ -0,0 +1,53 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/ChildPropertyRegistration")]
+    public class InternalChildPropertyRegistrationTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ChildPropertyRegistration constructor.")]
+        [Property("SPEC", "Tizen.NUI.ChildPropertyRegistration.ChildPropertyRegistration C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void ChildPropertyRegistrationcConstructor()
+        {
+            tlog.Debug(tag, $"ChildPropertyRegistrationcConstructor START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var registered = new TypeRegistration((global::System.IntPtr)ani.SwigCPtr, false);
+                var testingTarget = new ChildPropertyRegistration(registered, "Animatable", 45000000, PropertyType.Boolean);
+                Assert.IsNotNull(testingTarget, "should not be null.");
+                Assert.IsInstanceOf<ChildPropertyRegistration>(testingTarget, "should be an instance of ChildPropertyRegistration class!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"ChildPropertyRegistrationcConstructor END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSCustomActorImpl.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSCustomActorImpl.cs
new file mode 100755 (executable)
index 0000000..c8db7b7
--- /dev/null
@@ -0,0 +1,52 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/CustomActorImpl")]
+    public class InternalCustomActorImplTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CustomActorImpl constructor.")]
+        [Property("SPEC", "Tizen.NUI.CustomActorImpl.CustomActorImpl C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void CustomActorImplConstructor()
+        {
+            tlog.Debug(tag, $"CustomActorImplConstructor START");
+
+            using (ImageView view = new ImageView())
+            {
+                var testingTarget = new CustomActorImpl(view.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<CustomActorImpl>(testingTarget, "Should be an Instance of CustomActorImpl!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"CustomActorImplConstructor END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDaliException.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDaliException.cs
new file mode 100755 (executable)
index 0000000..c934229
--- /dev/null
@@ -0,0 +1,92 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/DaliException")]
+    public class TSDaliException
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DaliException constructor.")]
+        [Property("SPEC", "Tizen.NUI.DaliException.DaliException C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DaliExceptionConstructor()
+        {
+            tlog.Debug(tag, $"DaliExceptionConstructor START");
+
+            var testingTarget = new DaliException("China", "Chinese speaking!");
+            Assert.IsNotNull(testingTarget, "Can't create success object DaliException.");
+            Assert.IsInstanceOf<DaliException>(testingTarget, "Should return DaliException instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DaliExceptionConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DaliException location.")]
+        [Property("SPEC", "Tizen.NUI.DaliException.location A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DaliExceptionLocation()
+        {
+            tlog.Debug(tag, $"DaliExceptionLocation START");
+
+            var testingTarget = new DaliException("China", "Chinese speaking!");
+            Assert.IsNotNull(testingTarget, "Can't create success object DaliException.");
+            Assert.IsInstanceOf<DaliException>(testingTarget, "Should return DaliException instance.");
+
+            testingTarget.location = "Korea";
+            tlog.Debug(tag, "location : " + testingTarget.location);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DaliExceptionLocation END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DaliException condition.")]
+        [Property("SPEC", "Tizen.NUI.DaliException.DaliException A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DaliExceptionCondition()
+        {
+            tlog.Debug(tag, $"DaliExceptionCondition START");
+
+            var testingTarget = new DaliException("China", "Chinese speaking!");
+            Assert.IsNotNull(testingTarget, "Can't create success object DaliException.");
+            Assert.IsInstanceOf<DaliException>(testingTarget, "Should return DaliException instance.");
+
+            testingTarget.condition= "Korea speaking!";
+            tlog.Debug(tag, "condition : " + testingTarget.condition);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DaliExceptionCondition END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDefaultRuler.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDefaultRuler.cs
new file mode 100755 (executable)
index 0000000..2176f79
--- /dev/null
@@ -0,0 +1,168 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/DefaultRuler")]
+    public class InternalDefaultRulerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultRuler constructor.")]
+        [Property("SPEC", "Tizen.NUI.DefaultRuler.DefaultRuler C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultRulerConstructor()
+        {
+            tlog.Debug(tag, $"DefaultRulerConstructor START");
+
+            var testingTarget = new DefaultRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object DefaultRuler.");
+            Assert.IsInstanceOf<DefaultRuler>(testingTarget, "Should return DefaultRuler instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DefaultRulerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultRuler Snap.")]
+        [Property("SPEC", "Tizen.NUI.DefaultRuler.Snap M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultRulerSnap()
+        {
+            tlog.Debug(tag, $"DefaultRulerSnap START");
+
+            var testingTarget = new DefaultRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object DefaultRuler.");
+            Assert.IsInstanceOf<DefaultRuler>(testingTarget, "Should return DefaultRuler instance.");
+
+            try
+            {
+                var result = testingTarget.Snap(0.3f, 0.1f);
+                tlog.Debug(tag, "Snap :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DefaultRulerSnap END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultRuler GetPositionFromPage.")]
+        [Property("SPEC", "Tizen.NUI.DefaultRuler.GetPositionFromPage M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultRulerGetPositionFromPage()
+        {
+            tlog.Debug(tag, $"DefaultRulerGetPositionFromPage START");
+
+            var testingTarget = new DefaultRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object DefaultRuler.");
+            Assert.IsInstanceOf<DefaultRuler>(testingTarget, "Should return DefaultRuler instance.");
+
+            try
+            {
+                var result = testingTarget.GetPositionFromPage(1, out uint vloume, true);
+                tlog.Debug(tag, "GetPositionFromPage :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DefaultRulerGetPositionFromPage END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultRuler GetPageFromPosition.")]
+        [Property("SPEC", "Tizen.NUI.DefaultRuler.GetPageFromPosition M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultRulerGetPageFromPosition()
+        {
+            tlog.Debug(tag, $"DefaultRulerGetPageFromPosition START");
+
+            var testingTarget = new DefaultRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object DefaultRuler.");
+            Assert.IsInstanceOf<DefaultRuler>(testingTarget, "Should return DefaultRuler instance.");
+
+            try
+            {
+                var result = testingTarget.GetPageFromPosition(0.3f, true);
+                tlog.Debug(tag, "GetPageFromPosition :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DefaultRulerGetPageFromPosition END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultRuler GetTotalPages.")]
+        [Property("SPEC", "Tizen.NUI.DefaultRuler.GetTotalPages M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultRulerGetTotalPages()
+        {
+            tlog.Debug(tag, $"DefaultRulerGetTotalPages START");
+
+            var testingTarget = new DefaultRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object DefaultRuler.");
+            Assert.IsInstanceOf<DefaultRuler>(testingTarget, "Should return DefaultRuler instance.");
+
+            try
+            {
+                var result = testingTarget.GetTotalPages();
+                tlog.Debug(tag, "GetTotalPages :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DefaultRulerGetTotalPages END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDoublep.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSDoublep.cs
new file mode 100755 (executable)
index 0000000..5ca47dc
--- /dev/null
@@ -0,0 +1,144 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/doublep")]
+    public class InternalDoublepTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("doublep constructor.")]
+        [Property("SPEC", "Tizen.NUI.doublep.doublep C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void doublepConstructor()
+        {
+            tlog.Debug(tag, $"doublepConstructor START");
+
+            var testingTarget = new doublep();
+            Assert.IsNotNull(testingTarget, "Can't create success object doublep.");
+            Assert.IsInstanceOf<doublep>(testingTarget, "Should return doublep instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"doublepConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("doublep assign.")]
+        [Property("SPEC", "Tizen.NUI.doublep.assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void doublepAssign()
+        {
+            tlog.Debug(tag, $"doublepAssign START");
+
+            var testingTarget = new doublep();
+            Assert.IsNotNull(testingTarget, "Can't create success object doublep.");
+            Assert.IsInstanceOf<doublep>(testingTarget, "Should return doublep instance.");
+
+            try
+            {
+                testingTarget.assign(6.92);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception :  Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"doublepAssign END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("doublep value.")]
+        [Property("SPEC", "Tizen.NUI.doublep.value M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void doublepValue()
+        {
+            tlog.Debug(tag, $"doublepValue START");
+
+            var testingTarget = new doublep();
+            Assert.IsNotNull(testingTarget, "Can't create success object doublep.");
+            Assert.IsInstanceOf<doublep>(testingTarget, "Should return doublep instance.");
+
+            var result = testingTarget.value();
+            tlog.Debug(tag, "value : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"doublepValue END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("doublep cast.")]
+        [Property("SPEC", "Tizen.NUI.doublep.cast M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void doublepCast()
+        {
+            tlog.Debug(tag, $"doublepCast START");
+
+            var testingTarget = new doublep();
+            Assert.IsNotNull(testingTarget, "Can't create success object doublep.");
+            Assert.IsInstanceOf<doublep>(testingTarget, "Should return doublep instance.");
+
+            var result = testingTarget.cast();
+            tlog.Debug(tag, "cast : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"doublepCast END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("doublep frompointer.")]
+        [Property("SPEC", "Tizen.NUI.doublep.frompointer M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void doublepFrompointer()
+        {
+            tlog.Debug(tag, $"doublepFrompointer START");
+
+            var testingTarget = new doublep();
+            Assert.IsNotNull(testingTarget, "Can't create success object doublep.");
+            Assert.IsInstanceOf<doublep>(testingTarget, "Should return doublep instance.");
+
+            var result = doublep.frompointer(new SWIGTYPE_p_double(testingTarget.SwigCPtr.Handle));
+            tlog.Debug(tag, "cast : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"doublepFrompointer END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFixedRuler.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFixedRuler.cs
new file mode 100755 (executable)
index 0000000..cbb0f10
--- /dev/null
@@ -0,0 +1,187 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/FixedRuler")]
+    public class InternalFixedRulerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FixedRuler constructor.")]
+        [Property("SPEC", "Tizen.NUI.FixedRuler.FixedRuler C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FixedRulerConstructor()
+        {
+            tlog.Debug(tag, $"FixedRulerConstructor START");
+
+            var testingTarget = new FixedRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object FixedRuler.");
+            Assert.IsInstanceOf<FixedRuler>(testingTarget, "Should return FixedRuler instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FixedRulerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FixedRuler constructor. With spacing.")]
+        [Property("SPEC", "Tizen.NUI.FixedRuler.FixedRuler C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FixedRulerConstructorWithSpacing()
+        {
+            tlog.Debug(tag, $"FixedRulerConstructorWithSpacing START");
+
+            var testingTarget = new FixedRuler(0.3f);
+            Assert.IsNotNull(testingTarget, "Can't create success object FixedRuler.");
+            Assert.IsInstanceOf<FixedRuler>(testingTarget, "Should return FixedRuler instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FixedRulerConstructorWithSpacing END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FixedRuler Snap.")]
+        [Property("SPEC", "Tizen.NUI.FixedRuler.Snap M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FixedRulerSnap()
+        {
+            tlog.Debug(tag, $"FixedRulerSnap START");
+
+            var testingTarget = new FixedRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object FixedRuler.");
+            Assert.IsInstanceOf<FixedRuler>(testingTarget, "Should return FixedRuler instance.");
+
+            try
+            {
+                var result = testingTarget.Snap(0.3f, 0.1f);
+                tlog.Debug(tag, "Snap :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FixedRulerSnap END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FixedRuler GetPositionFromPage.")]
+        [Property("SPEC", "Tizen.NUI.FixedRuler.GetPositionFromPage M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FixedRulerGetPositionFromPage()
+        {
+            tlog.Debug(tag, $"FixedRulerGetPositionFromPage START");
+
+            var testingTarget = new FixedRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object FixedRuler.");
+            Assert.IsInstanceOf<FixedRuler>(testingTarget, "Should return FixedRuler instance.");
+
+            try
+            {
+                var result = testingTarget.GetPositionFromPage(1, out uint vloume, true);
+                tlog.Debug(tag, "GetPositionFromPage :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FixedRulerGetPositionFromPage END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FixedRuler GetPageFromPosition.")]
+        [Property("SPEC", "Tizen.NUI.FixedRuler.GetPageFromPosition M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FixedRulerGetPageFromPosition()
+        {
+            tlog.Debug(tag, $"FixedRulerGetPageFromPosition START");
+
+            var testingTarget = new FixedRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object FixedRuler.");
+            Assert.IsInstanceOf<FixedRuler>(testingTarget, "Should return FixedRuler instance.");
+
+            try
+            {
+                var result = testingTarget.GetPageFromPosition(0.3f, true);
+                tlog.Debug(tag, "GetPageFromPosition :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FixedRulerGetPageFromPosition END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FixedRuler GetTotalPages.")]
+        [Property("SPEC", "Tizen.NUI.FixedRuler.GetTotalPages M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FixedRulerGetTotalPages()
+        {
+            tlog.Debug(tag, $"FixedRulerGetTotalPages START");
+
+            var testingTarget = new FixedRuler();
+            Assert.IsNotNull(testingTarget, "Can't create success object FixedRuler.");
+            Assert.IsInstanceOf<FixedRuler>(testingTarget, "Should return FixedRuler instance.");
+
+            try
+            {
+                var result = testingTarget.GetTotalPages();
+                tlog.Debug(tag, "GetTotalPages :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FixedRulerGetTotalPages END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFloatp.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFloatp.cs
new file mode 100755 (executable)
index 0000000..4b20b87
--- /dev/null
@@ -0,0 +1,167 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/floatp")]
+    public class InternalFloatpTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("floatp constructor.")]
+        [Property("SPEC", "Tizen.NUI.floatp.floatp C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FloatpConstructor()
+        {
+            tlog.Debug(tag, $"FloatpConstructor START");
+
+            var testingTarget = new floatp();
+            Assert.IsNotNull(testingTarget, "Can't create success object floatp.");
+            Assert.IsInstanceOf<floatp>(testingTarget, "Should return floatp instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FloatpConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("floatp Assign.")]
+        [Property("SPEC", "Tizen.NUI.floatp.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FloatpAssign()
+        {
+            tlog.Debug(tag, $"FloatpConstructor START");
+
+            var testingTarget = new floatp();
+            Assert.IsNotNull(testingTarget, "Can't create success object floatp.");
+            Assert.IsInstanceOf<floatp>(testingTarget, "Should return floatp instance.");
+
+            try
+            {
+                testingTarget.assign(0.3f);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FloatpConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("floatp value.")]
+        [Property("SPEC", "Tizen.NUI.floatp.value M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FloatpValue()
+        {
+            tlog.Debug(tag, $"FloatpValue START");
+
+            var testingTarget = new floatp();
+            Assert.IsNotNull(testingTarget, "Can't create success object floatp.");
+            Assert.IsInstanceOf<floatp>(testingTarget, "Should return floatp instance.");
+
+            try
+            {
+                var result = testingTarget.value();
+                tlog.Debug(tag, "value : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FloatpValue END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("floatp cast.")]
+        [Property("SPEC", "Tizen.NUI.floatp.cast M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FloatpCast()
+        {
+            tlog.Debug(tag, $"FloatpCast START");
+
+            var testingTarget = new floatp();
+            Assert.IsNotNull(testingTarget, "Can't create success object floatp.");
+            Assert.IsInstanceOf<floatp>(testingTarget, "Should return floatp instance.");
+
+            try
+            {
+                var result = testingTarget.cast();
+                tlog.Debug(tag, "cast : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FloatpCast END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("floatp frompointer.")]
+        [Property("SPEC", "Tizen.NUI.floatp.frompointer M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FloatpFrompointer()
+        {
+            tlog.Debug(tag, $"FloatpFrompointer START");
+
+            var testingTarget = new floatp();
+            Assert.IsNotNull(testingTarget, "Can't create success object floatp.");
+            Assert.IsInstanceOf<floatp>(testingTarget, "Should return floatp instance.");
+
+            try
+            {
+                var result = floatp.frompointer(testingTarget.cast());
+                tlog.Debug(tag, "frompointer : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FloatpFrompointer END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFontDescription.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFontDescription.cs
new file mode 100755 (executable)
index 0000000..8b6f570
--- /dev/null
@@ -0,0 +1,159 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/FontDescription")]
+    public class InternalFontDescriptionTest
+    {
+        private const string tag = "NUITEST";
+        private string path = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontDescription constructor.")]
+        [Property("SPEC", "Tizen.NUI.FontDescription.FontDescription C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontDescriptionConstructor()
+        {
+            tlog.Debug(tag, $"FontDescriptionConstructor START");
+
+            var testingTarget = new FontDescription();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontDescription.");
+            Assert.IsInstanceOf<FontDescription>(testingTarget, "Should return FontDescription instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontDescriptionConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontDescription Path.")]
+        [Property("SPEC", "Tizen.NUI.FontDescription.Path A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontDescriptionPath()
+        {
+            tlog.Debug(tag, $"FontDescriptionPath START");
+
+            var testingTarget = new FontDescription();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontDescription.");
+            Assert.IsInstanceOf<FontDescription>(testingTarget, "Should return FontDescription instance.");
+
+            testingTarget.Path = path;
+            Assert.AreEqual(path, testingTarget.Path, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontDescriptionPath END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontDescription Family.")]
+        [Property("SPEC", "Tizen.NUI.FontDescription.Family A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontDescriptionFamily()
+        {
+            tlog.Debug(tag, $"FontDescriptionFamily START");
+
+            var testingTarget = new FontDescription();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontDescription.");
+            Assert.IsInstanceOf<FontDescription>(testingTarget, "Should return FontDescription instance.");
+
+            testingTarget.Family = "BreezeSans";
+            Assert.AreEqual("BreezeSans", testingTarget.Family, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontDescriptionFamily END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontDescription Width.")]
+        [Property("SPEC", "Tizen.NUI.FontDescription.Width A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontDescriptionWidth()
+        {
+            tlog.Debug(tag, $"FontDescriptionWidth START");
+
+            var testingTarget = new FontDescription();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontDescription.");
+            Assert.IsInstanceOf<FontDescription>(testingTarget, "Should return FontDescription instance.");
+
+            testingTarget.Width = FontWidthType.SemiExpanded;
+            Assert.AreEqual(FontWidthType.SemiExpanded, testingTarget.Width, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontDescriptionWidth END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontDescription Weight.")]
+        [Property("SPEC", "Tizen.NUI.FontDescription.Weight A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontDescriptionWeight()
+        {
+            tlog.Debug(tag, $"FontDescriptionWeight START");
+
+            var testingTarget = new FontDescription();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontDescription.");
+            Assert.IsInstanceOf<FontDescription>(testingTarget, "Should return FontDescription instance.");
+
+            testingTarget.Weight = FontWeightType.Bold;
+            Assert.AreEqual(FontWeightType.Bold, testingTarget.Weight, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontDescriptionWeight END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontDescription Slant.")]
+        [Property("SPEC", "Tizen.NUI.FontDescription.Slant A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontDescriptionSlant()
+        {
+            tlog.Debug(tag, $"FontDescriptionSlant START");
+
+            var testingTarget = new FontDescription();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontDescription.");
+            Assert.IsInstanceOf<FontDescription>(testingTarget, "Should return FontDescription instance.");
+
+            testingTarget.Slant = FontSlantType.Italic;
+            Assert.AreEqual(FontSlantType.Italic, testingTarget.Slant, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontDescriptionSlant END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFontMetrics.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFontMetrics.cs
new file mode 100755 (executable)
index 0000000..f089c53
--- /dev/null
@@ -0,0 +1,158 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/FontMetrics")]
+    public class InternalFontMetricsTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontMetrics constructor.")]
+        [Property("SPEC", "Tizen.NUI.FontMetrics.FontMetrics C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontMetricsConstructor()
+        {
+            tlog.Debug(tag, $"FontMetricsConstructor START");
+
+            var testingTarget = new FontMetrics();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontMetrics.");
+            Assert.IsInstanceOf<FontMetrics>(testingTarget, "Should return FontMetrics instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontMetricsConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontMetrics Ascender.")]
+        [Property("SPEC", "Tizen.NUI.FontMetrics.Ascender A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontMetricsAscender()
+        {
+            tlog.Debug(tag, $"FontMetricsAscender START");
+
+            var testingTarget = new FontMetrics();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontMetrics.");
+            Assert.IsInstanceOf<FontMetrics>(testingTarget, "Should return FontMetrics instance.");
+
+            testingTarget.Ascender = 0.3f;
+            Assert.AreEqual(0.3f, testingTarget.Ascender, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontMetricsAscender END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontMetrics Descender.")]
+        [Property("SPEC", "Tizen.NUI.FontMetrics.Descender A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontMetricsDescender()
+        {
+            tlog.Debug(tag, $"FontMetricsDescender START");
+
+            var testingTarget = new FontMetrics();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontMetrics.");
+            Assert.IsInstanceOf<FontMetrics>(testingTarget, "Should return FontMetrics instance.");
+
+            testingTarget.Descender = 0.3f;
+            Assert.AreEqual(0.3f, testingTarget.Descender, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontMetricsDescender END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontMetrics Height.")]
+        [Property("SPEC", "Tizen.NUI.FontMetrics.Height A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontMetricsHeight()
+        {
+            tlog.Debug(tag, $"FontMetricsHeight START");
+
+            var testingTarget = new FontMetrics();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontMetrics.");
+            Assert.IsInstanceOf<FontMetrics>(testingTarget, "Should return FontMetrics instance.");
+
+            testingTarget.Height = 0.3f;
+            Assert.AreEqual(0.3f, testingTarget.Height, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontMetricsHeight END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontMetrics UnderlinePosition.")]
+        [Property("SPEC", "Tizen.NUI.FontMetrics.UnderlinePosition A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontMetricsUnderlinePosition()
+        {
+            tlog.Debug(tag, $"FontMetricsUnderlinePosition START");
+
+            var testingTarget = new FontMetrics();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontMetrics.");
+            Assert.IsInstanceOf<FontMetrics>(testingTarget, "Should return FontMetrics instance.");
+
+            testingTarget.UnderlinePosition = 0.3f;
+            Assert.AreEqual(0.3f, testingTarget.UnderlinePosition, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontMetricsUnderlinePosition END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FontMetrics UnderlineThickness.")]
+        [Property("SPEC", "Tizen.NUI.FontMetrics.UnderlineThickness A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FontMetricsUnderlineThickness()
+        {
+            tlog.Debug(tag, $"FontMetricsUnderlineThickness START");
+
+            var testingTarget = new FontMetrics();
+            Assert.IsNotNull(testingTarget, "Can't create success object FontMetrics.");
+            Assert.IsInstanceOf<FontMetrics>(testingTarget, "Should return FontMetrics instance.");
+
+            testingTarget.UnderlinePosition = 0.1f;
+            Assert.AreEqual(0.1f, testingTarget.UnderlinePosition, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FontMetricsUnderlineThickness END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFrameBuffer.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSFrameBuffer.cs
new file mode 100755 (executable)
index 0000000..85c58d9
--- /dev/null
@@ -0,0 +1,146 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/FrameBuffer")]
+    public class InternalFrameBufferTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameBuffer constructor.")]
+        [Property("SPEC", "Tizen.NUI.FrameBuffer.FrameBuffer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameBufferConstructor()
+        {
+            tlog.Debug(tag, $"FrameBufferConstructor START");
+
+            var testingTarget = new FrameBuffer(10, 20, 3);
+            Assert.IsNotNull(testingTarget, "Can't create success object FrameBuffer.");
+            Assert.IsInstanceOf<FrameBuffer>(testingTarget, "Should return FrameBuffer instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FrameBufferConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameBuffer AttachColorTexture.")]
+        [Property("SPEC", "Tizen.NUI.FrameBuffer.AttachColorTexture M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameBufferAttachColorTexture()
+        {
+            tlog.Debug(tag, $"FrameBufferAttachColorTexture START");
+
+            var testingTarget = new FrameBuffer(10, 20, 3);
+            Assert.IsNotNull(testingTarget, "Can't create success object FrameBuffer.");
+            Assert.IsInstanceOf<FrameBuffer>(testingTarget, "Should return FrameBuffer instance.");
+
+            using (Texture texture = new Texture(TextureType.TEXTURE_2D, PixelFormat.BGR8888, 100, 80))
+            {
+                try
+                {
+                    testingTarget.AttachColorTexture(texture);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FrameBufferAttachColorTexture END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameBuffer AttachColorTexture. With uint.")]
+        [Property("SPEC", "Tizen.NUI.FrameBuffer.AttachColorTexture M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameBufferAttachColorTextureWithUInt()
+        {
+            tlog.Debug(tag, $"FrameBufferAttachColorTextureWithUInt START");
+
+            var testingTarget = new FrameBuffer(10, 20, 3);
+            Assert.IsNotNull(testingTarget, "Can't create success object FrameBuffer.");
+            Assert.IsInstanceOf<FrameBuffer>(testingTarget, "Should return FrameBuffer instance.");
+
+            using (Texture texture = new Texture(TextureType.TEXTURE_2D, PixelFormat.BGR8888, 100, 80))
+            {
+                try
+                {
+                    testingTarget.AttachColorTexture(texture, 2, 1);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FrameBufferAttachColorTextureWithUInt END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameBuffer GetColorTexture.")]
+        [Property("SPEC", "Tizen.NUI.FrameBuffer.GetColorTexture M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameBufferGetColorTexture()
+        {
+            tlog.Debug(tag, $"FrameBufferGetColorTexture START");
+
+            var testingTarget = new FrameBuffer(10, 20, 3);
+            Assert.IsNotNull(testingTarget, "Can't create success object FrameBuffer.");
+            Assert.IsInstanceOf<FrameBuffer>(testingTarget, "Should return FrameBuffer instance.");
+
+            using (Texture texture = new Texture(TextureType.TEXTURE_2D, PixelFormat.BGR8888, 100, 80))
+            {
+                testingTarget.AttachColorTexture(texture);
+
+                try
+                {
+                    testingTarget.GetColorTexture();
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"FrameBufferGetColorTexture END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSGlyphInfo.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSGlyphInfo.cs
new file mode 100755 (executable)
index 0000000..bc18c74
--- /dev/null
@@ -0,0 +1,243 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/GlyphInfo")]
+    public class InternalGlyphInfoTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo constructor.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.GlyphInfo C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoConstructor()
+        {
+            tlog.Debug(tag, $"GlyphInfoConstructor START");
+
+            var testingTarget = new GlyphInfo();
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo constructor. With parameters.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.GlyphInfo C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoConstructorWithParameters()
+        {
+            tlog.Debug(tag, $"GlyphInfoConstructorWithParameters START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoConstructorWithParameters END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo FontId.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.FontId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoFontId()
+        {
+            tlog.Debug(tag, $"GlyphInfoFontId START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.FontId = 3;
+            tlog.Debug(tag, "FontId :" + testingTarget.FontId);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoFontId END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo Index.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.Index A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoIndex()
+        {
+            tlog.Debug(tag, $"GlyphInfoIndex START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.Index = 3;
+            tlog.Debug(tag, "Index :" + testingTarget.FontId);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoIndex END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo Width.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.Width A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoWidth()
+        {
+            tlog.Debug(tag, $"GlyphInfoWidth START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.Width = 30.0f;
+            tlog.Debug(tag, "Width :" + testingTarget.Width);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoWidth END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo Height.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.Height A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoHeight()
+        {
+            tlog.Debug(tag, $"GlyphInfoHeight START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.Height = 30.0f;
+            tlog.Debug(tag, "Height :" + testingTarget.Height);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoHeight END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo XBearing.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.XBearing A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoXBearing()
+        {
+            tlog.Debug(tag, $"GlyphInfoXBearing START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.XBearing = 20.0f;
+            tlog.Debug(tag, "XBearing :" + testingTarget.XBearing);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoXBearing END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo YBearing.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.YBearing A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoYBearing()
+        {
+            tlog.Debug(tag, $"GlyphInfoYBearing START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.YBearing = 20.0f;
+            tlog.Debug(tag, "YBearing :" + testingTarget.YBearing);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoYBearing END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo Advance.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.Advance A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoAdvance()
+        {
+            tlog.Debug(tag, $"GlyphInfoAdvance START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.Advance = 20.0f;
+            tlog.Debug(tag, "Advance :" + testingTarget.Advance);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoAdvance END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("GlyphInfo ScaleFactor.")]
+        [Property("SPEC", "Tizen.NUI.GlyphInfo.ScaleFactor A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void GlyphInfoScaleFactor()
+        {
+            tlog.Debug(tag, $"GlyphInfoScaleFactor START");
+
+            var testingTarget = new GlyphInfo(1, 2);
+            Assert.IsNotNull(testingTarget, "Can't create success object GlyphInfo.");
+            Assert.IsInstanceOf<GlyphInfo>(testingTarget, "Should return GlyphInfo instance.");
+
+            testingTarget.ScaleFactor = 0.3f;
+            tlog.Debug(tag, "ScaleFactor :" + testingTarget.ScaleFactor);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"GlyphInfoScaleFactor END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSMatrix.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSMatrix.cs
new file mode 100755 (executable)
index 0000000..814592b
--- /dev/null
@@ -0,0 +1,815 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/Matrix")]
+    public class InternalMatrixTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix constructor.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Matrix C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixConstructor()
+        {
+            tlog.Debug(tag, $"MatrixConstructor START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix constructor. With boolean.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Matrix C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixConstructorWithBoolean()
+        {
+            tlog.Debug(tag, $"MatrixConstructorWithBoolean START");
+
+            var testingTarget = new Matrix(true);
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixConstructorWithBoolean END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix constructor. With float array.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Matrix C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixConstructorWithFloatArray()
+        {
+            tlog.Debug(tag, $"MatrixConstructorWithFloatArray START");
+
+            float[] arr = new float[3] { 0.1f, 0.4f, 0.2f };
+
+            var testingTarget = new Matrix(arr);
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixConstructorWithFloatArray END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix constructor. With Rotation.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Matrix C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixConstructorWithRotation()
+        {
+            tlog.Debug(tag, $"MatrixConstructorWithRotation START");
+
+            using (Rotation rotation = new Rotation())
+            {
+                var testingTarget = new Matrix(rotation);
+                Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+                Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"MatrixConstructorWithRotation END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix constructor. With Matrix.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Matrix C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixConstructorWithMatrix()
+        {
+            tlog.Debug(tag, $"MatrixConstructorWithMatrix START");
+
+            using (Matrix martrix = new Matrix(true))
+            {
+                var testingTarget = new Matrix(martrix);
+                Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+                Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"MatrixConstructorWithMatrix END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix Assign.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixAssign()
+        {
+            tlog.Debug(tag, $"MatrixAssign START");
+
+            using (Matrix martrix = new Matrix(true))
+            {
+                var testingTarget = martrix.Assign(martrix);
+                Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+                Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"MatrixAssign END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix IDENTITY.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.IDENTITY A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixIDENTITY()
+        {
+            tlog.Debug(tag, $"MatrixIDENTITY START");
+
+            try
+            {
+                var result = Matrix.IDENTITY;
+                tlog.Debug(tag, "IDENTITY : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixIDENTITY END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetIdentity.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetIdentity M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetIdentity()
+        {
+            tlog.Debug(tag, $"MatrixSetIdentity START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            try
+            {
+                testingTarget.SetIdentity();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixSetIdentity END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetIdentityAndScale.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetIdentityAndScale M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetIdentityAndScale()
+        {
+            tlog.Debug(tag, $"MatrixSetIdentityAndScale START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            try
+            {
+                using (Vector3 vector = new Vector3(1.0f, 2.0f, 3.0f))
+                {
+                    testingTarget.SetIdentityAndScale(vector);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixSetIdentityAndScale END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix Invert.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Invert M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixInvert()
+        {
+            tlog.Debug(tag, $"MatrixInvert START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            try
+            {
+                var result = testingTarget.Invert();
+                tlog.Debug(tag, "Invert : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixInvert END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix Transpose.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Transpose M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixTranspose()
+        {
+            tlog.Debug(tag, $"MatrixTranspose START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            try
+            {
+                testingTarget.Transpose();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixTranspose END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetXAxis.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetXAxis M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetXAxis()
+        {
+            tlog.Debug(tag, $"MatrixSetXAxis START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+
+            using (Vector3 vector = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                testingTarget.SetXAxis(vector);
+
+                var result = testingTarget.GetXAxis();
+                Assert.AreEqual(1.0f, result.X, "Should be equal!");
+                Assert.AreEqual(2.0f, result.Y, "Should be equal!");
+                Assert.AreEqual(3.0f, result.Z, "Should be equal!");
+            }
+
+            tlog.Debug(tag, $"MatrixSetXAxis END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetYAxis.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetYAxis M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetYAxis()
+        {
+            tlog.Debug(tag, $"MatrixSetYAxis START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+
+            using (Vector3 vector = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                testingTarget.SetYAxis(vector);
+
+                var result = testingTarget.GetYAxis();
+                Assert.AreEqual(1.0f, result.X, "Should be equal!");
+                Assert.AreEqual(2.0f, result.Y, "Should be equal!");
+                Assert.AreEqual(3.0f, result.Z, "Should be equal!");
+            }
+
+            tlog.Debug(tag, $"MatrixSetYAxis END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetZAxis.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetZAxis M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetZAxis()
+        {
+            tlog.Debug(tag, $"MatrixSetZAxis START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+
+            using (Vector3 vector = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                testingTarget.SetZAxis(vector);
+
+                var result = testingTarget.GetZAxis();
+                Assert.AreEqual(1.0f, result.X, "Should be equal!");
+                Assert.AreEqual(2.0f, result.Y, "Should be equal!");
+                Assert.AreEqual(3.0f, result.Z, "Should be equal!");
+            }
+
+            tlog.Debug(tag, $"MatrixSetZAxis END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetTranslation.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetTranslation M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixGetTranslation()
+        {
+            tlog.Debug(tag, $"MatrixGetTranslation START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector4 vector = new Vector4(1.0f, 2.0f, 3.0f, 4.0f))
+            {
+                testingTarget.SetTranslation(vector);
+
+                var result = testingTarget.GetTranslation();
+                Assert.AreEqual(1.0f, result.X, "Should be equal!");
+                Assert.AreEqual(2.0f, result.Y, "Should be equal!");
+                Assert.AreEqual(3.0f, result.Z, "Should be equal!");
+                Assert.AreEqual(4.0f, result.W, "Should be equal!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixGetTranslation END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetTranslation. With Vector3.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetTranslation M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetTranslationWithVector3()
+        {
+            tlog.Debug(tag, $"MatrixSetTranslationWithVector3 START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector3 vector = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                testingTarget.SetTranslation(vector);
+
+                var result = testingTarget.GetTranslation3();
+                Assert.AreEqual(1.0f, result.X, "Should be equal!");
+                Assert.AreEqual(2.0f, result.Y, "Should be equal!");
+                Assert.AreEqual(3.0f, result.Z, "Should be equal!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixSetTranslationWithVector3 END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix OrthoNormalize.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.OrthoNormalize M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixOrthoNormalize()
+        {
+            tlog.Debug(tag, $"MatrixOrthoNormalize START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            try
+            {
+                testingTarget.OrthoNormalize();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixOrthoNormalize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix AsFloat.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.AsFloat M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixAsFloat()
+        {
+            tlog.Debug(tag, $"MatrixAsFloat START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            try
+            {
+                testingTarget.AsFloat();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"MatrixAsFloat END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix Multiply.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Multiply M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixMultiply()
+        {
+            tlog.Debug(tag, $"MatrixMultiply START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Matrix lhs = new Matrix(true))
+            {
+                using (Matrix rhs = new Matrix(false))
+                {
+                    try
+                    {
+                        Matrix.Multiply(testingTarget, lhs, rhs);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception : Failed!");
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixMultiply END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix Multiply. With Rotation.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Multiply M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixMultiplyWithRotation()
+        {
+            tlog.Debug(tag, $"MatrixMultiplyWithRotation START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Matrix lhs = new Matrix(true))
+            {
+                using (Rotation rhs = new Rotation())
+                {
+                    try
+                    {
+                        Matrix.Multiply(testingTarget, lhs, rhs);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception : Failed!");
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixMultiplyWithRotation END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix Multiply. With Vector4.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.Multiply M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixMultiplyWithVector4()
+        {
+            tlog.Debug(tag, $"MatrixMultiplyWithVector4 START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector4 vector = new Vector4(1.0f, 2.0f, 3.0f, 4.0f))
+            {
+                try
+                {
+                    testingTarget.Multiply(vector);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixMultiplyWithVector4 END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix EqualTo.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.EqualTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixEqualTo()
+        {
+            tlog.Debug(tag, $"MatrixEqualTo START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Matrix matrix = new Matrix(true))
+            {
+                var result = testingTarget.EqualTo(matrix);
+                tlog.Debug(tag, "EqualTo : " + result);
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixEqualTo END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix NotEqualTo.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.NotEqualTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixNotEqualTo()
+        {
+            tlog.Debug(tag, $"MatrixNotEqualTo START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Matrix matrix = new Matrix(true))
+            {
+                var result = testingTarget.NotEqualTo(matrix);
+                tlog.Debug(tag, "NotEqualTo : " + result);
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixNotEqualTo END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetTransformComponents.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetTransformComponents M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetTransformComponents()
+        {
+            tlog.Debug(tag, $"MatrixSetTransformComponents START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector3 scale = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                {
+                    using (Rotation rotation = new Rotation())
+                    {
+                        using (Vector3 translation = new Vector3(3.0f, 2.0f, 1.0f))
+                        {
+                            try
+                            {
+                                testingTarget.SetTransformComponents(scale, rotation, translation);
+                            }
+                            catch (Exception e)
+                            {
+                                tlog.Debug(tag, e.Message.ToString());
+                                Assert.Fail("Caught Exception : Failed!");
+                            }
+                        }
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixSetTransformComponents END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetInverseTransformComponents.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetInverseTransformComponents M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetInverseTransformComponents()
+        {
+            tlog.Debug(tag, $"MatrixSetInverseTransformComponents START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector3 scale = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                {
+                    using (Rotation rotation = new Rotation())
+                    {
+                        using (Vector3 translation = new Vector3(3.0f, 2.0f, 1.0f))
+                        {
+                            try
+                            {
+                                testingTarget.SetInverseTransformComponents(scale, rotation, translation);
+                            }
+                            catch (Exception e)
+                            {
+                                tlog.Debug(tag, e.Message.ToString());
+                                Assert.Fail("Caught Exception : Failed!");
+                            }
+                        }
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixSetInverseTransformComponents END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix SetInverseTransformComponents.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.SetInverseTransformComponents M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixSetInverseTransformComponentsWithVector3()
+        {
+            tlog.Debug(tag, $"MatrixSetInverseTransformComponentsWithVector3 START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector3 xAxis = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                {
+                    using (Vector3 yAxis = new Vector3(3.0f, 4.0f, 5.0f))
+                    {
+                        using (Vector3 zAxis = new Vector3(5.0f, 6.0f, 7.0f))
+                        {
+                            using (Vector3 translation = new Vector3(7.0f, 8.0f, 9.0f))
+                            {
+                                try
+                                {
+                                    testingTarget.SetInverseTransformComponents(xAxis, yAxis, zAxis, translation);
+                                }
+                                catch (Exception e)
+                                {
+                                    tlog.Debug(tag, e.Message.ToString());
+                                    Assert.Fail("Caught Exception : Failed!");
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixSetInverseTransformComponentsWithVector3 END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix GetTransformComponents.")]
+        [Property("SPEC", "Tizen.NUI.Matrix.GetTransformComponents M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void MatrixGetTransformComponents()
+        {
+            tlog.Debug(tag, $"MatrixGetTransformComponents START");
+
+            var testingTarget = new Matrix();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix>(testingTarget, "Should return Matrix instance.");
+
+            using (Vector3 position = new Vector3(1.0f, 2.0f, 3.0f))
+            {
+                {
+                    using (Rotation rotation = new Rotation())
+                    {
+                        using (Vector3 scale = new Vector3(3.0f, 2.0f, 1.0f))
+                        {
+                            try
+                            {
+                                testingTarget.GetTransformComponents(position, rotation, scale);
+                            }
+                            catch (Exception e)
+                            {
+                                tlog.Debug(tag, e.Message.ToString());
+                                Assert.Fail("Caught Exception : Failed!");
+                            }
+                        }
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixGetTransformComponents END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSMatrix3.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSMatrix3.cs
new file mode 100755 (executable)
index 0000000..2aecced
--- /dev/null
@@ -0,0 +1,428 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/Matrix3")]
+    public class InternalMatrix3Test
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 constructor.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Matrix3 C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Constructor()
+        {
+            tlog.Debug(tag, $"Matrix3Constructor START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3Constructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 constructor. With Martrix")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Matrix3 C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3ConstructorWithMartrix()
+        {
+            tlog.Debug(tag, $"Matrix3ConstructorWithMartrix START");
+
+            using (Matrix matrix = new Matrix())
+            {
+                var testingTarget = new Matrix3(matrix);
+                Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+                Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"Matrix3ConstructorWithMartrix END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 constructor. With Martrix3")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Matrix3 C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3ConstructorWithMartrix3()
+        {
+            tlog.Debug(tag, $"Matrix3ConstructorWithMartrix3 START");
+
+            using (Matrix3 matrix = new Matrix3(0.0f, 0.1f, 0.2f, 1.0f, 1.1f, 1.2f, 2.0f, 2.1f, 2.2f))
+            {
+                var testingTarget = new Matrix3(matrix);
+                Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+                Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"Matrix3ConstructorWithMartrix3 END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 IDENTITY.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.IDENTITY A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3IDENTITY()
+        {
+            tlog.Debug(tag, $"Matrix3IDENTITY START");
+
+            try
+            {
+                var result = Matrix3.IDENTITY;
+                tlog.Debug(tag, "IDENTITY : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"Matrix3IDENTITY END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Assign.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Assign()
+        {
+            tlog.Debug(tag, $"Matrix3Assign START");
+
+            using (Matrix3 matrix = new Matrix3(0.0f, 0.1f, 0.2f, 1.0f, 1.1f, 1.2f, 2.0f, 2.1f, 2.2f))
+            {
+                var testingTarget = matrix.Assign(matrix);
+                Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+                Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"Matrix3Assign END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Assign. With Matrix.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3AssignWithMatrix()
+        {
+            tlog.Debug(tag, $"Matrix3AssignWithMatrix START");
+
+            using (Matrix3 matrix3 = new Matrix3(0.0f, 0.1f, 0.2f, 1.0f, 1.1f, 1.2f, 2.0f, 2.1f, 2.2f))
+            {
+                using (Matrix matrix = new Matrix(true))
+                {
+                    var testingTarget = matrix3.Assign(matrix);
+                    Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+                    Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+                    testingTarget.Dispose();
+                }
+            }
+
+            tlog.Debug(tag, $"Matrix3AssignWithMatrix END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 EqualTo.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.EqualTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3EqualTo()
+        {
+            tlog.Debug(tag, $"Matrix3EqualTo START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix instance.");
+
+            using (Matrix3 matrix3 = new Matrix3(0.0f, 0.1f, 0.2f, 1.0f, 1.1f, 1.2f, 2.0f, 2.1f, 2.2f))
+            {
+                var result = testingTarget.EqualTo(matrix3);
+                tlog.Debug(tag, "EqualTo : " + result);
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"MatrixEqualTo END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 NotEqualTo.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.NotEqualTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3NotEqualTo()
+        {
+            tlog.Debug(tag, $"Matrix3NotEqualTo START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            using (Matrix3 matrix3 = new Matrix3(0.0f, 0.1f, 0.2f, 1.0f, 1.1f, 1.2f, 2.0f, 2.1f, 2.2f))
+            {
+                var result = testingTarget.NotEqualTo(matrix3);
+                tlog.Debug(tag, "NotEqualTo : " + result);
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3NotEqualTo END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 SetIdentity.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.SetIdentity M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3SetIdentity()
+        {
+            tlog.Debug(tag, $"Matrix3SetIdentity START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            try
+            {
+                testingTarget.SetIdentity();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3SetIdentity END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 AsFloat.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.AsFloat M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3AsFloat()
+        {
+            tlog.Debug(tag, $"Matrix3AsFloat START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            try
+            {
+                testingTarget.AsFloat();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3AsFloat END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Invert.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Invert M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Invert()
+        {
+            tlog.Debug(tag, $"Matrix3Invert START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            var result = testingTarget.Invert();
+            tlog.Debug(tag, "Invert :" + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3Invert END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Transpose.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Transpose M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Transpose()
+        {
+            tlog.Debug(tag, $"Matrix3Transpose START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            var result = testingTarget.Transpose();
+            tlog.Debug(tag, "Transpose : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3Transpose END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Scale.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Scale M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Scale()
+        {
+            tlog.Debug(tag, $"Matrix3Scale START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            try
+            {
+                testingTarget.Scale(0.3f);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3Scale END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Magnitude.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Magnitude M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Magnitude()
+        {
+            tlog.Debug(tag, $"Matrix3Magnitude START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            var result = testingTarget.Magnitude();
+            tlog.Debug(tag, "Magnitude : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3Magnitude END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 ScaledInverseTranspose.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.ScaledInverseTranspose M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3ScaledInverseTranspose()
+        {
+            tlog.Debug(tag, $"Matrix3ScaledInverseTranspose START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            var result = testingTarget.ScaledInverseTranspose();
+            tlog.Debug(tag, "ScaledInverseTranspose : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3ScaledInverseTranspose END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Matrix3 Multiply.")]
+        [Property("SPEC", "Tizen.NUI.Matrix3.Multiply M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void Matrix3Multiply()
+        {
+            tlog.Debug(tag, $"Matrix3Multiply START");
+
+            var testingTarget = new Matrix3();
+            Assert.IsNotNull(testingTarget, "Can't create success object Matrix3.");
+            Assert.IsInstanceOf<Matrix3>(testingTarget, "Should return Matrix3 instance.");
+
+            using (Matrix3 lhs = new Matrix3())
+            {
+                using (Matrix3 rhs = new Matrix3(0.0f, 0.1f, 0.2f, 1.0f, 1.1f, 1.2f, 2.0f, 2.1f, 2.2f))
+                {
+                    try
+                    {
+                        Matrix3.Multiply(testingTarget, lhs, rhs);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception : Failed!");
+                    }
+                }
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"Matrix3Multiply END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSNativeImageInterface.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSNativeImageInterface.cs
new file mode 100755 (executable)
index 0000000..ae338f9
--- /dev/null
@@ -0,0 +1,52 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/NativeImageInterface")]
+    public class InternalNativeImageInterfaceTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NativeImageInterface constructor.")]
+        [Property("SPEC", "Tizen.NUI.NativeImageInterface.NativeImageInterface C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void NativeImageInterfaceConstructor()
+        {
+            tlog.Debug(tag, $"NativeImageInterfaceConstructor START");
+
+            using (ImageView view = new ImageView())
+            {
+                var testingTarget = new NativeImageInterface(view.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<NativeImageInterface>(testingTarget, "Should be an Instance of NativeImageInterface!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"NativeImageInterfaceConstructor END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPathConstrainer.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPathConstrainer.cs
new file mode 100755 (executable)
index 0000000..baf39be
--- /dev/null
@@ -0,0 +1,191 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/PathConstrainer")]
+    public class InternalPathConstrainerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer constructor.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.PathConstrainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerConstructor()
+        {
+            tlog.Debug(tag, $"PathConstrainerConstructor START");
+
+            var testingTarget = new PathConstrainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"PathConstrainerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer constructor. With PathConstrainer.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.PathConstrainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerConstructorWithPathConstrainer()
+        {
+            tlog.Debug(tag, $"PathConstrainerConstructorWithPathConstrainer START");
+
+            using (PathConstrainer constrainer = new PathConstrainer())
+            {
+                var testingTarget = new PathConstrainer(constrainer);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"PathConstrainerConstructorWithPathConstrainer END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer DownCast.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.DownCast M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerDownCast()
+        {
+            tlog.Debug(tag, $"PathConstrainerDownCast START");
+
+            using (PathConstrainer constrainer = new PathConstrainer())
+            {
+                var testingTarget = PathConstrainer.DownCast(constrainer);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"PathConstrainerDownCast END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer Assign.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerAssign()
+        {
+            tlog.Debug(tag, $"PathConstrainerAssign START");
+
+            using (PathConstrainer constrainer = new PathConstrainer())
+            {
+                var testingTarget = constrainer.Assign(constrainer);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"PathConstrainerAssign END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer Forward.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.Forward A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerForward()
+        {
+            tlog.Debug(tag, $"PathConstrainerForward START");
+
+            var testingTarget = new PathConstrainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+            using (Vector3 vector = new Vector3(0.1f, 0.2f, 0.3f))
+            {
+                testingTarget.Forward = vector;
+                tlog.Debug(tag, "ForwardX : " + testingTarget.Forward.X);
+            }
+                
+            tlog.Debug(tag, $"PathConstrainerForward END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer Points.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.Points A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerPoints()
+        {
+            tlog.Debug(tag, $"PathConstrainerPoints START");
+
+            var testingTarget = new PathConstrainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+            using (PropertyArray array = new PropertyArray())
+            {
+                array.PushBack(new PropertyValue(0.3f));
+                testingTarget.Points = array;
+                tlog.Debug(tag, "Points : " + testingTarget.Points);
+            }
+
+            tlog.Debug(tag, $"PathConstrainerPoints END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PathConstrainer ControlPoints.")]
+        [Property("SPEC", "Tizen.NUI.PathConstrainer.ControlPoints A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PathConstrainerControlPoints()
+        {
+            tlog.Debug(tag, $"PathConstrainerControlPoints START");
+
+            var testingTarget = new PathConstrainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<PathConstrainer>(testingTarget, "Should be an Instance of PathConstrainer!");
+
+            using (PropertyArray array = new PropertyArray())
+            {
+                array.PushBack(new PropertyValue(0.3f));
+                testingTarget.ControlPoints = array;
+                tlog.Debug(tag, "ControlPoints : " + testingTarget.ControlPoints);
+            }
+
+            tlog.Debug(tag, $"PathConstrainerControlPoints END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPropertyHelper.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPropertyHelper.cs
new file mode 100755 (executable)
index 0000000..fcb491e
--- /dev/null
@@ -0,0 +1,171 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/PropertyHelper")]
+    public class InternalPropertyHelperTest
+    {
+        private const string tag = "NUITEST";
+        private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyHelper GetPropertyFromString.")]
+        [Property("SPEC", "Tizen.NUI.PropertyHelper.GetPropertyFromString M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyHelperGetPropertyFromString()
+        {
+            tlog.Debug(tag, $"PropertyHelperGetPropertyFromString START");
+
+            using (ImageView imageView = new ImageView())
+            {
+                imageView.SetProperty(ImageView.Property.IMAGE, new PropertyValue(url));
+
+                var testingTarget = PropertyHelper.GetPropertyFromString(imageView, "image");
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<Property>(testingTarget, "Should be an Instance of Property!");
+
+                testingTarget.Dispose();
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"PropertyHelperGetPropertyFromString END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyHelper Search.")]
+        [Property("SPEC", "Tizen.NUI.PropertyHelper.Search M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyHelperSearch()
+        {
+            tlog.Debug(tag, $"PropertyHelperSearch START");
+
+            using (ImageView imageView = new ImageView())
+            {
+                imageView.Opacity = 0.3f;
+                imageView.SetProperty(ImageView.Property.IMAGE, new PropertyValue(url));
+
+                var testingTarget = PropertyHelper.Search(imageView, "image");
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<PropertyHelper.SearchResult>(testingTarget, "Should be an Instance of SearchResult!");
+
+                // view.GetPropertyType(property.propertyIndex).Equals(PropertyType.Float)
+                var testingTarget2 = PropertyHelper.Search(imageView, "opacity");
+                Assert.IsNotNull(testingTarget2, "Should be not null!");
+                Assert.IsInstanceOf<PropertyHelper.SearchResult>(testingTarget2, "Should be an Instance of SearchResult!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"PropertyHelperSearch END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyHelper SearchVisualProperty.")]
+        [Property("SPEC", "Tizen.NUI.PropertyHelper.SearchVisualProperty M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyHelperSearchVisualProperty()
+        {
+            tlog.Debug(tag, $"PropertyHelperSearchVisualProperty START");
+
+            using (ImageView ani = new ImageView())
+            {
+                ani.BackgroundColor = Color.Cyan;
+
+                var testingTarget = PropertyHelper.Search(ani, "backgroundColor");
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<PropertyHelper.SearchResult>(testingTarget, "Should be an Instance of SearchResult!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"PropertyHelperSearchVisualProperty END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyHelper.SearchResult RefineValue.")]
+        [Property("SPEC", "Tizen.NUI.PropertyHelper.SearchResult.RefineValue M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyHelperSearchResultRefineValue()
+        {
+            tlog.Debug(tag, $"PropertyHelperSearchResultRefineValue START");
+
+            using (ImageView imageView = new ImageView())
+            {
+                imageView.SetProperty(ImageView.Property.IMAGE, new PropertyValue(new Position(0, 0)));
+                PropertyHelper.SearchResult result = PropertyHelper.Search(imageView, "position");
+
+                try
+                {
+                    var testingTarget = result.RefineValue(new Position(100, 150));
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"PropertyHelperSearchResultRefineValue END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyHelper.SearchResult RefineKeyFrames.")]
+        [Property("SPEC", "Tizen.NUI.PropertyHelper.SearchResult.RefineKeyFrames M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyHelperSearchResultRefineKeyFrames()
+        {
+            tlog.Debug(tag, $"PropertyHelperSearchResultRefineKeyFrames START");
+
+            using (ImageView imageView = new ImageView())
+            {
+                imageView.SetProperty(ImageView.Property.IMAGE, new PropertyValue(new Position(0, 0)));
+                PropertyHelper.SearchResult result = PropertyHelper.Search(imageView, "position");
+
+                try
+                {
+                    var testingTarget = result.RefineKeyFrames(new KeyFrames());
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"PropertyHelperSearchResultRefineKeyFrames END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPropertyRangeManager.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSPropertyRangeManager.cs
new file mode 100755 (executable)
index 0000000..212bff1
--- /dev/null
@@ -0,0 +1,99 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/PropertyRangeManager")]
+    public class InternalPropertyRangeManagerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyRangeManager constructor.")]
+        [Property("SPEC", "Tizen.NUI.PropertyRangeManager.PropertyRangeManager C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyRangeManagerConstructor()
+        {
+            tlog.Debug(tag, $"PropertyRangeManagerConstructor START");
+
+            var testingTarget = new PropertyRangeManager();
+            Assert.IsNotNull(testingTarget, "Can't create success object PropertyRangeManager.");
+            Assert.IsInstanceOf<PropertyRangeManager>(testingTarget, "Should return PropertyRangeManager instance.");
+
+            tlog.Debug(tag, $"PropertyRangeManagerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PropertyRangeManager GetPropertyIndex.")]
+        [Property("SPEC", "Tizen.NUI.PropertyRangeManager.GetPropertyIndex M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyRangeManagerGetPropertyIndex()
+        {
+            tlog.Debug(tag, $"PropertyRangeManagerGetPropertyIndex START");
+
+            var testingTarget = new PropertyRangeManager();
+            Assert.IsNotNull(testingTarget, "Can't create success object PropertyRangeManager.");
+            Assert.IsInstanceOf<PropertyRangeManager>(testingTarget, "Should return PropertyRangeManager instance.");
+
+            using (Spin spin = new Spin())
+            {
+                spin.Name = "spin";
+
+                var result = testingTarget.GetPropertyIndex(spin.Name, typeof(Spin), ScriptableProperty.ScriptableType.Default);
+                tlog.Debug(tag, "PropertyIndex : " + result);
+            }
+
+            tlog.Debug(tag, $"PropertyRangeManagerGetPropertyIndex END (OK)");
+        }
+
+        [Test]
+        [Category("P1 ")]
+        [Description("PropertyRangeManager GetPropertyIndex. ScriptableType is not Default.")]
+        [Property("SPEC", "Tizen.NUI.PropertyRangeManager.GetPropertyIndex M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void PropertyRangeManagerGetPropertyIndexScriptableTypeNotDefault()
+        {
+            tlog.Debug(tag, $"PropertyRangeManagerGetPropertyIndexScriptableTypeNotDefault START");
+
+            var testingTarget = new PropertyRangeManager();
+            Assert.IsNotNull(testingTarget, "Can't create success object PropertyRangeManager.");
+            Assert.IsInstanceOf<PropertyRangeManager>(testingTarget, "Should return PropertyRangeManager instance.");
+
+            using (Spin spin = new Spin())
+            {
+                spin.Name = "spin";
+
+                var result = testingTarget.GetPropertyIndex(spin.Name, typeof(Spin), (ScriptableProperty.ScriptableType)1);
+                tlog.Debug(tag, "PropertyIndex : " + result);
+            }
+
+            tlog.Debug(tag, $"PropertyRangeManagerGetPropertyIndexScriptableTypeNotDefault END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRenderTask.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRenderTask.cs
new file mode 100755 (executable)
index 0000000..47670f3
--- /dev/null
@@ -0,0 +1,1142 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/RenderTask")]
+    public class InternalRenderTaskTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask constructor.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.RenderTask C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskConstructor()
+        {
+            tlog.Debug(tag, $"RenderTaskConstructor START");
+
+            var testingTarget = new RenderTask();
+            Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+            Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RenderTaskConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask constructor. With RenderTask;")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.RenderTask C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskConstructorWithRenderTask()
+        {
+            tlog.Debug(tag, $"RenderTaskConstructorWithRenderTask START");
+
+            using (Animatable ani = new Animatable())
+            {
+                using (RenderTask task = new RenderTask(ani.SwigCPtr.Handle, false)) 
+                {
+                    try
+                    {
+                        var testingTarget = new RenderTask(task);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception : Failed!");
+                    }
+                }
+            }
+
+            tlog.Debug(tag, $"RenderTaskConstructorWithRenderTask END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask GetRenderTaskFromPtr.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.GetRenderTaskFromPtr M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskGetRenderTaskFromPtr()
+        {
+            tlog.Debug(tag, $"RenderTaskGetRenderTaskFromPtr START");
+
+            using (Animatable ani = new Animatable())
+            {
+                using (RenderTask task = new RenderTask(ani.SwigCPtr.Handle, false))
+                {
+                    try
+                    {
+                        var testingTarget = RenderTask.GetRenderTaskFromPtr(task.SwigCPtr.Handle);
+                        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception : Failed!");
+                    }
+                }
+            }
+
+            tlog.Debug(tag, $"RenderTaskGetRenderTaskFromPtr END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_SCREEN_TO_FRAMEBUFFER_FUNCTION.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_SCREEN_TO_FRAMEBUFFER_FUNCTION A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultScreenToFrameBufferFunction()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultScreenToFrameBufferFunction START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_SCREEN_TO_FRAMEBUFFER_FUNCTION;
+                tlog.Debug(tag, "DEFAULT_SCREEN_TO_FRAMEBUFFER_FUNCTION : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultScreenToFrameBufferFunction END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask FULLSCREEN_FRAMEBUFFER_FUNCTION.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.FULLSCREEN_FRAMEBUFFER_FUNCTION A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskFullScreenFrameBufferFunction()
+        {
+            tlog.Debug(tag, $"RenderTaskFullScreenFrameBufferFunction START");
+
+            try
+            {
+                var result = RenderTask.FULLSCREEN_FRAMEBUFFER_FUNCTION;
+                tlog.Debug(tag, "FULLSCREEN_FRAMEBUFFER_FUNCTION : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskFullScreenFrameBufferFunction END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_EXCLUSIVE.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_EXCLUSIVE A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultExclusive()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultExclusive START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_EXCLUSIVE;
+                tlog.Debug(tag, "DEFAULT_EXCLUSIVE : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultExclusive END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_INPUT_ENABLED.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_INPUT_ENABLED A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultInputEnabled()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultExclusive START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_INPUT_ENABLED;
+                tlog.Debug(tag, "DEFAULT_INPUT_ENABLED : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultInputEnabled END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_CLEAR_COLOR.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_CLEAR_COLOR A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultClearColor()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultClearColor START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_CLEAR_COLOR;
+                tlog.Debug(tag, "DEFAULT_CLEAR_COLOR : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultClearColor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_CLEAR_ENABLED.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_CLEAR_ENABLED A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultClearEnabled()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultClearEnabled START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_CLEAR_ENABLED;
+                tlog.Debug(tag, "DEFAULT_CLEAR_ENABLED : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultClearEnabled END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_CULL_MODE.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_CULL_MODE A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultCullMode()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultCullMode START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_CULL_MODE;
+                tlog.Debug(tag, "DEFAULT_CULL_MODE : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultCullMode END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DEFAULT_REFRESH_RATE.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DEFAULT_REFRESH_RATE A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDefaultRefreshRate()
+        {
+            tlog.Debug(tag, $"RenderTaskDefaultRefreshRate START");
+
+            try
+            {
+                var result = RenderTask.DEFAULT_REFRESH_RATE;
+                tlog.Debug(tag, "DEFAULT_REFRESH_RATE : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"RenderTaskDefaultRefreshRate END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask DownCast.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DownCast M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDownCast()
+        {
+            tlog.Debug(tag, $"RenderTaskDownCast START");
+
+            using (Animatable ani = new Animatable())
+            {
+                try
+                {
+                    RenderTask.DownCast(ani);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"RenderTaskDownCast END (OK)");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("RenderTask DownCast. With null handle.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.DownCast M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskDownCastWithNullHandle()
+        {
+            tlog.Debug(tag, $"RenderTaskDownCastWithNullHandle START");
+
+            try
+            {
+                RenderTask.DownCast(null);
+            }
+            catch (ArgumentNullException e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"RenderTaskDownCastWithNullHandle END (OK)");
+                Assert.Pass("Caught ArgumentNullException :  Passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask Assign.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskAssign()
+        {
+            tlog.Debug(tag, $"RenderTaskAssign START");
+
+            using (Animatable ani = new Animatable())
+            {
+                using (RenderTask task = new RenderTask(ani.SwigCPtr.Handle, false))
+                {
+                    var testingTarget = task.Assign(task);
+                    Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                    Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                    testingTarget.Dispose();
+                }
+            }
+
+            tlog.Debug(tag, $"RenderTaskAssign END (OK)");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetSourceView.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetSourceView M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetSourceView()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetSourceView START");
+
+        //    using (View view = new View())
+        //    {
+        //        using (Animatable ani = new Animatable())
+        //        {
+        //            var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //            Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //            Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //            try
+        //            {
+        //                testingTarget.SetSourceView(view);
+
+        //                var result = testingTarget.GetSourceView();
+        //                tlog.Debug(tag, "SourceView : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+
+        //            testingTarget.Dispose();
+        //        }
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetSourceView END (OK)");
+        //}
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetExclusive.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetExclusive M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetExclusive()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetExclusive START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        try
+        //        {
+        //            testingTarget.SetExclusive(true);
+
+        //            var result = testingTarget.IsExclusive();
+        //            tlog.Debug(tag, "IsExclusive : " + result);
+        //        }
+        //        catch (Exception e)
+        //        {
+        //            tlog.Debug(tag, e.Message.ToString());
+        //            Assert.Fail("Caught Exception :  Failed!");
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetExclusive END (OK)");
+        //}
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask SetInputEnabled.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.SetInputEnabled M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskSetInputEnabled()
+        {
+            tlog.Debug(tag, $"RenderTaskSetInputEnabled START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                try
+                {
+                    testingTarget.SetInputEnabled(true);
+
+                    var result = testingTarget.GetInputEnabled();
+                    tlog.Debug(tag, "InputEnabled : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception :  Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskSetInputEnabled END (OK)");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetCamera.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetCamera M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetCamera()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetCamera START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (Camera camera = new Camera())
+        //        {
+        //            try
+        //            {
+        //                testingTarget.SetCamera(camera);
+
+        //                var result = testingTarget.GetCamera();
+        //                tlog.Debug(tag, "Camera : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetCamera END (OK)");
+        //}
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetFrameBuffer.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetFrameBuffer M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetFrameBuffer()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetFrameBuffer START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (FrameBuffer buffer = new FrameBuffer(1, 2, 3))
+        //        {
+        //            try
+        //            {
+        //                testingTarget.SetFrameBuffer(buffer);
+
+        //                var result = testingTarget.GetFrameBuffer();
+        //                tlog.Debug(tag, "FrameBuffer : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetFrameBuffer END (OK)");
+        //}
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask SetScreenToFrameBufferFunction.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.SetScreenToFrameBufferFunction M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskSetScreenToFrameBufferFunction()
+        {
+            tlog.Debug(tag, $"RenderTaskSetScreenToFrameBufferFunction START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (FrameBuffer buffer = new FrameBuffer(1, 2, 3))
+                {
+                    try
+                    {
+                        testingTarget.SetScreenToFrameBufferFunction(new SWIGTYPE_p_f_r_Dali__Vector2__bool(buffer.SwigCPtr.Handle));
+
+                        var result = testingTarget.GetScreenToFrameBufferFunction();
+                        tlog.Debug(tag, "ScreenToFrameBufferFunction : " + result);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception :  Failed!");
+                    }
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskSetScreenToFrameBufferFunction END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask SetScreenToFrameBufferMappingView.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.SetScreenToFrameBufferMappingView M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RenderTaskSetScreenToFrameBufferMappingView()
+        {
+            tlog.Debug(tag, $"RenderTaskSetScreenToFrameBufferMappingView START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (View view = new View())
+                {
+                    try
+                    {
+                        testingTarget.SetScreenToFrameBufferMappingView(view);
+
+                        var result = testingTarget.GetScreenToFrameBufferMappingView();
+                        tlog.Debug(tag, "ScreenToFrameBufferMappingView : " + result);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception :  Failed!");
+                    }
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskSetScreenToFrameBufferMappingView END (OK)");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetViewportPosition.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetViewportPosition M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetViewportPosition()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetViewportPosition START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (Vector2 position = new Vector2(0.3f, 0.5f))
+        //        {
+        //            try
+        //            {
+        //                testingTarget.SetViewportPosition(position);
+
+        //                var result = testingTarget.GetCurrentViewportPosition();
+        //                tlog.Debug(tag, "ViewportPosition : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetViewportPosition END (OK)");
+        //}
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetViewportSize.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetViewportSize M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetViewportSize()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetViewportSize START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (Vector2 size = new Vector2(0.3f, 0.5f))
+        //        {
+        //            try
+        //            {
+        //                testingTarget.SetViewportSize(size);
+
+        //                var result = testingTarget.GetCurrentViewportSize();
+        //                tlog.Debug(tag, "CurrentViewportSize : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetViewportSize END (OK)");
+        //}
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetViewport.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetViewport M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void RenderTaskSetViewport()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetViewport START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (Rectangle viewport = new Rectangle(3, 5, 4, 6))
+        //        {
+        //            try
+        //            {
+        //                testingTarget.SetViewport(viewport);
+
+        //                var result = testingTarget.GetViewport();
+        //                tlog.Debug(tag, "Viewport : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetViewport END (OK)");
+        //}
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask SetClearColor.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.SetClearColor M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //[Obsolete]
+        //public void RenderTaskSetClearColor()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskSetClearColor START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (Vector4 color = new Vector4(0.3f, 0.5f, 0.4f, 0.6f))
+        //        {
+        //            try
+        //            {
+        //                testingTarget.SetClearColor(color);
+
+        //                var result = testingTarget.GetClearColor();
+        //                tlog.Debug(tag, "ClearColor : " + result);
+        //            }
+        //            catch (Exception e)
+        //            {
+        //                tlog.Debug(tag, e.Message.ToString());
+        //                Assert.Fail("Caught Exception :  Failed!");
+        //            }
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskSetClearColor END (OK)");
+        //}
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask SetClearEnabled.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.SetClearEnabled M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskSetClearEnabled()
+        {
+            tlog.Debug(tag, $"RenderTaskSetClearEnabled START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (Vector4 color = new Vector4(0.3f, 0.5f, 0.4f, 0.6f))
+                {
+                    try
+                    {
+                        testingTarget.SetClearEnabled(true);
+
+                        var result = testingTarget.GetClearEnabled();
+                        tlog.Debug(tag, "ClearEnabled : " + result);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception :  Failed!");
+                    }
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskSetClearEnabled END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask SetCullMode.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.SetCullMode M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskSetCullMode()
+        {
+            tlog.Debug(tag, $"RenderTaskSetCullMode START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (Vector4 color = new Vector4(0.3f, 0.5f, 0.4f, 0.6f))
+                {
+                    try
+                    {
+                        testingTarget.SetCullMode(true);
+
+                        var result = testingTarget.GetCullMode();
+                        tlog.Debug(tag, "CullMode : " + result);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception :  Failed!");
+                    }
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskSetCullMode END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask SetRefreshRate.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.SetRefreshRate M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskSetRefreshRate()
+        {
+            tlog.Debug(tag, $"RenderTaskSetRefreshRate START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (Vector4 color = new Vector4(0.3f, 0.5f, 0.4f, 0.6f))
+                {
+                    try
+                    {
+                        testingTarget.SetRefreshRate(100);
+
+                        var result = testingTarget.GetRefreshRate();
+                        tlog.Debug(tag, "RefreshRate : " + result);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception :  Failed!");
+                    }
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskSetRefreshRate END (OK)");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("RenderTask WorldToViewport.")]
+        //[Property("SPEC", "Tizen.NUI.RenderTask.WorldToViewport M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //[Obsolete]
+        //public void RenderTaskWorldToViewport()
+        //{
+        //    tlog.Debug(tag, $"RenderTaskWorldToViewport START");
+
+        //    using (Animatable ani = new Animatable())
+        //    {
+        //        var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+        //        Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+        //        using (Vector3 position = new Vector3(0.3f, 0.5f, 0.0f))
+        //        {
+        //            var result = testingTarget.WorldToViewport(position, out float viewportX, out float viewportY);
+        //            tlog.Debug(tag, "WorldToViewport : " + result);
+        //        }
+
+        //        testingTarget.Dispose();
+        //    }
+
+        //    tlog.Debug(tag, $"RenderTaskWorldToViewport END (OK)");
+        //}
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask ViewportToLocal.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.ViewportToLocal M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskViewportToLocal()
+        {
+            tlog.Debug(tag, $"RenderTaskViewportToLocal START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (View view = new View())
+                {
+                    var result = testingTarget.ViewportToLocal(view, 0.3f, 0.5f, out float localX, out float localY);
+                    tlog.Debug(tag, "WorldToViewport : " + result);
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskViewportToLocal END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask FinishedSignal.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.FinishedSignal M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskFinishedSignal()
+        {
+            tlog.Debug(tag, $"RenderTaskFinishedSignal START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                try
+                {
+                    testingTarget.FinishedSignal();
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+                
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskFinishedSignal END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask ViewportPosition.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.ViewportPosition A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskViewportPosition()
+        {
+            tlog.Debug(tag, $"RenderTaskViewportPosition START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (Vector2 position = new Vector2(100, 150))
+                {
+                    testingTarget.ViewportPosition = position;
+                    tlog.Debug(tag, "ViewportPosition :" + testingTarget.ViewportPosition);
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskViewportPosition END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask ViewportSize.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.ViewportSize A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskViewportSize()
+        {
+            tlog.Debug(tag, $"RenderTaskViewportSize START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (Vector2 size = new Vector2(100, 150))
+                {
+                    testingTarget.ViewportSize = size;
+                    tlog.Debug(tag, "ViewportSize :" + testingTarget.ViewportSize);
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskViewportSize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask ClearColor.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.ClearColor A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskClearColor()
+        {
+            tlog.Debug(tag, $"RenderTaskClearColor START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                using (Vector4 color = new Vector4(0.3f, 0.5f, 0.8f, 1.0f))
+                {
+                    testingTarget.ClearColor = color;
+                    tlog.Debug(tag, "ClearColor :" + testingTarget.ClearColor);
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskClearColor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RenderTask RequiresSync.")]
+        [Property("SPEC", "Tizen.NUI.RenderTask.RequiresSync A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        [Obsolete]
+        public void RenderTaskRequiresSync()
+        {
+            tlog.Debug(tag, $"RenderTaskRequiresSync START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var testingTarget = new RenderTask(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object RenderTask.");
+                Assert.IsInstanceOf<RenderTask>(testingTarget, "Should return RenderTask instance.");
+
+                testingTarget.RequiresSync = true;
+                tlog.Debug(tag, "RequiresSync :" + testingTarget.RequiresSync);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RenderTaskRequiresSync END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRuler.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRuler.cs
new file mode 100755 (executable)
index 0000000..ba3d712
--- /dev/null
@@ -0,0 +1,672 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/Ruler")]
+    public class InternalRulerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler constructor.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Ruler C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerConstructor()
+        {
+            tlog.Debug(tag, $"RulerConstructor START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Snap. With bias.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Snap M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnapWithBias()
+        {
+            tlog.Debug(tag, $"RulerSnapWithBias START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.Snap(15.0f, 2.0f);
+                    tlog.Debug(tag, "Snap : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSnapWithBias END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Snap.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Snap M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnap()
+        {
+            tlog.Debug(tag, $"RulerSnap START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                var result = testingTarget.Snap(15.0f);
+                tlog.Debug(tag, "Snap : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSnap END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler GetPositionFromPage.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.GetPositionFromPage M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerGetPositionFromPage()
+        {
+            tlog.Debug(tag, $"RulerGetPositionFromPage START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                var result = testingTarget.GetPositionFromPage(1, out uint vloume, true);
+                tlog.Debug(tag, "Position : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerGetPositionFromPage END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler GetPageFromPosition.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.GetPageFromPosition M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerGetPageFromPosition()
+        {
+            tlog.Debug(tag, $"RulerGetPageFromPosition START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                var result = testingTarget.GetPageFromPosition(15.0f, true);
+                tlog.Debug(tag, "Position : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerGetPageFromPosition END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler GetTotalPages.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.GetTotalPages M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerGetTotalPages()
+        {
+            tlog.Debug(tag, $"RulerGetTotalPages START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                var result = testingTarget.GetTotalPages();
+                tlog.Debug(tag, "Position : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerGetTotalPages END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler GetType.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.GetType M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerGetType()
+        {
+            tlog.Debug(tag, $"RulerGetType START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                var result = testingTarget.GetType();
+                tlog.Debug(tag, "Type : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerGetType END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler IsEnabled.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.IsEnabled M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerIsEnabled()
+        {
+            tlog.Debug(tag, $"RulerIsEnabled START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                var result = testingTarget.IsEnabled();
+                tlog.Debug(tag, "Type : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerIsEnabled END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Enable.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Enable M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerEnable()
+        {
+            tlog.Debug(tag, $"RulerEnable START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    testingTarget.Enable();
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerEnable END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Disable.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Disable M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDisable()
+        {
+            tlog.Debug(tag, $"RulerDisable START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    testingTarget.Disable();
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerDisable END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler SetDomain.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.SetDomain M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSetDomain()
+        {
+            tlog.Debug(tag, $"RulerSetDomain START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    using (RulerDomain domain = new RulerDomain(0, 100, true))
+                    {
+                        testingTarget.SetDomain(domain);
+                        var result = testingTarget.GetDomain();
+                        tlog.Debug(tag, "Domain : " + result);
+                    }
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSetDomain END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler DisableDomain.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.DisableDomain M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDisableDomain()
+        {
+            tlog.Debug(tag, $"RulerDisableDomain START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    testingTarget.DisableDomain();
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerDisableDomain END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Clamp.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerClamp()
+        {
+            tlog.Debug(tag, $"RulerClamp START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.Clamp(10.0f);
+                    tlog.Debug(tag, "Clamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerClamp END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Clamp. With length.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerClampWithLenght()
+        {
+            tlog.Debug(tag, $"RulerClampWithLenght START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.Clamp(10.0f, 50.0f);
+                    tlog.Debug(tag, "Clamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerClampWithLenght END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Clamp. With scale.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerClampWithScale()
+        {
+            tlog.Debug(tag, $"RulerClampWithScale START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.Clamp(10.0f, 50.0f, 40.0f);
+                    tlog.Debug(tag, "Clamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerClampWithScale END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler Clamp. With ClampState.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerClampWithClampState()
+        {
+            tlog.Debug(tag, $"RulerClampWithClampState START");
+
+            DefaultRuler ruler = new DefaultRuler();
+            var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+            Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+            Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+            var result = testingTarget.Clamp(10.0f, 50.0f, 40.0f, new SWIGTYPE_p_Dali__Toolkit__ClampState(ruler.SwigCPtr.Handle));
+            tlog.Debug(tag, "Clamp : " + result);
+
+            ruler.Disable();
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerClampWithClampState END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler SnapAndClamp.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.SnapAndClamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnapAndClamp()
+        {
+            tlog.Debug(tag, $"RulerSnapAndClamp START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.SnapAndClamp(10.0f);
+                    tlog.Debug(tag, "SnapAndClamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSnapAndClamp END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler SnapAndClamp. With bias.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.SnapAndClamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnapAndClampWithBias()
+        {
+            tlog.Debug(tag, $"RulerSnapAndClampWithBias START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.SnapAndClamp(10.0f, 50.0f);
+                    tlog.Debug(tag, "SnapAndClamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSnapAndClampWithBias END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler SnapAndClamp. With length.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.SnapAndClamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnapAndClampWithLength()
+        {
+            tlog.Debug(tag, $"RulerSnapAndClampWithLength START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.SnapAndClamp(10.0f, 50.0f, 100.0f);
+                    tlog.Debug(tag, "SnapAndClamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSnapAndClampWithLength END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler SnapAndClamp. With scale.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.SnapAndClamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnapAndClampWithScale()
+        {
+            tlog.Debug(tag, $"RulerSnapAndClampWithScale START");
+
+            using (DefaultRuler ruler = new DefaultRuler())
+            {
+                var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+                Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+                try
+                {
+                    var result = testingTarget.SnapAndClamp(10.0f, 50.0f, 100.0f, 200.0f);
+                    tlog.Debug(tag, "SnapAndClamp : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"RulerSnapAndClampWithScale END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Ruler SnapAndClamp. With ClampState.")]
+        [Property("SPEC", "Tizen.NUI.Ruler.SnapAndClamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerSnapAndClampWithClampState()
+        {
+            tlog.Debug(tag, $"RulerSnapAndClampWithClampState START");
+
+            DefaultRuler ruler = new DefaultRuler();
+            var testingTarget = new Ruler(ruler.SwigCPtr.Handle, false);
+            Assert.IsNotNull(testingTarget, "Can't create success object Ruler.");
+            Assert.IsInstanceOf<Ruler>(testingTarget, "Should return Ruler instance.");
+
+            try
+            {
+                var result = testingTarget.SnapAndClamp(10.0f, 50.0f, 100.0f, 200.0f, new SWIGTYPE_p_Dali__Toolkit__ClampState(ruler.SwigCPtr.Handle));
+                tlog.Debug(tag, "SnapAndClamp : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            ruler.Disable();
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerSnapAndClampWithClampState END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRulerDomain.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSRulerDomain.cs
new file mode 100755 (executable)
index 0000000..1415c24
--- /dev/null
@@ -0,0 +1,224 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/RulerDomain")]
+    public class InternalRulerDomainTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain constructor.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.RulerDomain C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainConstructor()
+        {
+            tlog.Debug(tag, $"RulerDomainConstructor START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain min.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.min A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainMinimize()
+        {
+            tlog.Debug(tag, $"RulerDomainMinimize START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            testingTarget.min = 10.0f;
+            Assert.AreEqual(10.0f, testingTarget.min, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainMinimize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain max.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.max A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainMaximize()
+        {
+            tlog.Debug(tag, $"RulerDomainMaximize START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            testingTarget.max = 110.0f;
+            Assert.AreEqual(110.0f, testingTarget.max, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainMaximize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain enabled.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.enabled A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainEnabled()
+        {
+            tlog.Debug(tag, $"RulerDomainEnabled START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            testingTarget.enabled = true;
+            Assert.AreEqual(true, testingTarget.enabled, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainEnabled END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain Clamp.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainClamp()
+        {
+            tlog.Debug(tag, $"RulerDomainClamp START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            var result = testingTarget.Clamp(10.0f);
+            tlog.Debug(tag, "Clamp : " + result);
+            
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainClamp END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain Clamp. With length.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainClampWithLength()
+        {
+            tlog.Debug(tag, $"RulerDomainClampWithLength START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            var result = testingTarget.Clamp(10.0f, 50.0f);
+            tlog.Debug(tag, "Clamp : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainClampWithLength END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain Clamp. With scale.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainClampWithScale()
+        {
+            tlog.Debug(tag, $"RulerDomainClampWithScale START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            var result = testingTarget.Clamp(10.0f, 50.0f, 100.0f);
+            tlog.Debug(tag, "Clamp : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainClampWithScale END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain Clamp. With ClampState.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.Clamp M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainClampWithClampState()
+        {
+            tlog.Debug(tag, $"RulerDomainClampWithClampState START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            var result = testingTarget.Clamp(10.0f, 50.0f, 100.0f, new SWIGTYPE_p_Dali__Toolkit__ClampState(testingTarget.SwigCPtr.Handle));
+            tlog.Debug(tag, "Clamp : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainClampWithClampState END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("RulerDomain GetSize.")]
+        [Property("SPEC", "Tizen.NUI.RulerDomain.GetSize M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void RulerDomainGetSize()
+        {
+            tlog.Debug(tag, $"RulerDomainGetSize START");
+
+            var testingTarget = new RulerDomain(0.0f, 100.0f);
+            Assert.IsNotNull(testingTarget, "Can't create success object RulerDomain.");
+            Assert.IsInstanceOf<RulerDomain>(testingTarget, "Should return RulerDomain instance.");
+
+            var result = testingTarget.GetSize();
+            tlog.Debug(tag, "Size : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"RulerDomainGetSize END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSStringValuePair.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSStringValuePair.cs
new file mode 100755 (executable)
index 0000000..9467403
--- /dev/null
@@ -0,0 +1,145 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/StringValuePair")]
+    public class InternalStringValuePairTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StringValuePair constructor.")]
+        [Property("SPEC", "Tizen.NUI.StringValuePair.StringValuePair C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void StringValuePairConstructor()
+        {
+            tlog.Debug(tag, $"StringValuePairConstructor START");
+
+            var testingTarget = new StringValuePair();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<StringValuePair>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"StringValuePairConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StringValuePair constructor. With String.")]
+        [Property("SPEC", "Tizen.NUI.StringValuePair.StringValuePair C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void StringValuePairConstructorWithString()
+        {
+            tlog.Debug(tag, $"StringValuePairConstructorWithString START");
+
+            var testingTarget = new StringValuePair("opacity", new PropertyValue(0.3f));
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<StringValuePair>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"StringValuePairConstructorWithString END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StringValuePair constructor. With StringValuePair.")]
+        [Property("SPEC", "Tizen.NUI.StringValuePair.StringValuePair C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void StringValuePairConstructorWithStringValuePair()
+        {
+            tlog.Debug(tag, $"StringValuePairConstructorWithStringValuePair START");
+
+            using (StringValuePair pair = new StringValuePair("opacity", new PropertyValue(0.3f)))
+            {
+                var testingTarget = new StringValuePair(pair);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<StringValuePair>(testingTarget, "Should be an Instance of TouchPoint!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"StringValuePairConstructorWithStringValuePair END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StringValuePair constructor. first.")]
+        [Property("SPEC", "Tizen.NUI.StringValuePair.first A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void StringValuePairConstructorFirst()
+        {
+            tlog.Debug(tag, $"StringValuePairConstructorFirst START");
+
+            using (StringValuePair pair = new StringValuePair("opacity", new PropertyValue(0.3f)))
+            {
+                var testingTarget = new StringValuePair(pair);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<StringValuePair>(testingTarget, "Should be an Instance of TouchPoint!");
+
+                testingTarget.first = "direction";
+                Assert.AreEqual("direction", testingTarget.first, "Should be equal!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"StringValuePairConstructorFirst END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StringValuePair constructor. second.")]
+        [Property("SPEC", "Tizen.NUI.StringValuePair.second A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void StringValuePairConstructorSecond()
+        {
+            tlog.Debug(tag, $"StringValuePairConstructorSecond START");
+
+            using (StringValuePair pair = new StringValuePair("opacity", new PropertyValue(0.3f)))
+            {
+                var testingTarget = new StringValuePair(pair);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<StringValuePair>(testingTarget, "Should be an Instance of TouchPoint!");
+
+                testingTarget.second = new PropertyValue("vertical");
+                PropertyValue value = testingTarget.second;
+                string result = "";
+                value.Get(out result);
+                Assert.AreEqual("vertical", result, "Should be equal!");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"StringValuePairConstructorSecond END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTimePeriod.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTimePeriod.cs
new file mode 100755 (executable)
index 0000000..e3a7171
--- /dev/null
@@ -0,0 +1,111 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/TimePeriod")]
+    public class InternalTimePeriodTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TimePeriod constructor.")]
+        [Property("SPEC", "Tizen.NUI.TimePeriod.TimePeriod C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TimePeriodConstructor()
+        {
+            tlog.Debug(tag, $"TimePeriodConstructor START");
+
+            var testingTarget = new TimePeriod(300);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TimePeriod>(testingTarget, "Should be an Instance of TimePeriod!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TimePeriodConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TimePeriod constructor. With delayMilliSeconds.")]
+        [Property("SPEC", "Tizen.NUI.TimePeriod.TimePeriod C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TimePeriodConstructorWithDelayMilliSeconds()
+        {
+            tlog.Debug(tag, $"TimePeriodConstructorWithDelayMilliSeconds START");
+
+            var testingTarget = new TimePeriod(0.3f, 1.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TimePeriod>(testingTarget, "Should be an Instance of TimePeriod!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TimePeriodConstructorWithDelayMilliSeconds END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TimePeriod DelayMilliseconds.")]
+        [Property("SPEC", "Tizen.NUI.TimePeriod.DelayMilliseconds A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TimePeriodConstructorDelayMilliseconds()
+        {
+            tlog.Debug(tag, $"TimePeriodConstructorDelayMilliseconds START");
+
+            var testingTarget = new TimePeriod(0.3f, 1.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TimePeriod>(testingTarget, "Should be an Instance of TimePeriod!");
+
+            testingTarget.DelayMilliseconds = 20;
+            Assert.AreEqual(20, testingTarget.DelayMilliseconds, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TimePeriodConstructorDelayMilliseconds END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TimePeriod DurationMilliseconds.")]
+        [Property("SPEC", "Tizen.NUI.TimePeriod.DurationMilliseconds A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TimePeriodConstructorDurationMilliseconds()
+        {
+            tlog.Debug(tag, $"TimePeriodConstructorDurationMilliseconds START");
+
+            var testingTarget = new TimePeriod(0.3f, 1.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TimePeriod>(testingTarget, "Should be an Instance of TimePeriod!");
+
+            testingTarget.DurationMilliseconds = 150;
+            Assert.AreEqual(150, testingTarget.DurationMilliseconds, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TimePeriodConstructorDurationMilliseconds END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTouchPoint.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTouchPoint.cs
new file mode 100755 (executable)
index 0000000..2ff7a5e
--- /dev/null
@@ -0,0 +1,188 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/TouchPoint")]
+    public class InternalTouchPointTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint constructor.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.TouchPoint C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructor()
+        {
+            tlog.Debug(tag, $"TouchPointConstructor START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint constructor.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.TouchPoint C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructorWithLocalValue()
+        {
+            tlog.Debug(tag, $"TouchPointConstructorWithLocalValue START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f, 1.0f, 2.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructorWithLocalValue END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint DeviceId.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.DeviceId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructorDeviceId()
+        {
+            tlog.Debug(tag, $"TouchPointConstructorDeviceId START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f, 1.0f, 2.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            testingTarget.DeviceId = 1;
+            Assert.AreEqual(1, testingTarget.DeviceId, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructorDeviceId END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint State.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.State A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructorState()
+        {
+            tlog.Debug(tag, $"TouchPointConstructorState START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f, 1.0f, 2.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            testingTarget.State = TouchPoint.StateType.Last;
+            Assert.AreEqual(TouchPoint.StateType.Last, testingTarget.State, "Should be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructorState END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint HitView.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.HitView A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructorHitView()
+        {
+            tlog.Debug(tag, $"TouchPointConstructorHitView START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f, 1.0f, 2.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            using (View view = new View())
+            {
+                testingTarget.HitView = view;
+                Assert.AreEqual(view, testingTarget.HitView, "Should be equal!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructorHitView END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint Local.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.Local A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructorLocal()
+        {
+            tlog.Debug(tag, $"TouchPointConstructorLocal START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f, 1.0f, 2.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            using (Vector2 vector = new Vector2(0.0f, 0.0f))
+            {
+                testingTarget.Local = vector;
+                Assert.AreEqual(0.0f, testingTarget.Local.X, "Should be equal!");
+                Assert.AreEqual(0.0f, testingTarget.Local.Y, "Should be equal!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructorLocal END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPoint Screen.")]
+        [Property("SPEC", "Tizen.NUI.TouchPoint.Screen A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointConstructorScreen()
+        {
+            tlog.Debug(tag, $"TouchPointConstructorScreen START");
+
+            var testingTarget = new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f, 1.0f, 2.0f);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPoint>(testingTarget, "Should be an Instance of TouchPoint!");
+
+            using (Vector2 vector = new Vector2(1.0f, 2.0f))
+            {
+                testingTarget.Screen = vector;
+                Assert.AreEqual(1.0f, testingTarget.Screen.X, "Should be equal!");
+                Assert.AreEqual(2.0f, testingTarget.Screen.Y, "Should be equal!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointConstructorScreen END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTouchPointContainer.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTouchPointContainer.cs
new file mode 100755 (executable)
index 0000000..8c65d8b
--- /dev/null
@@ -0,0 +1,801 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using System.Collections;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/TouchPointContainer")]
+    public class InternalTouchPointContainerTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer constructor.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerConstructor()
+        {
+            tlog.Debug(tag, $"TouchPointContainerConstructor START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer constructor. With ICollection.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerConstructorWithICollection()
+        {
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithICollection START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            try
+            {
+                var testingTarget = new TouchPointContainer(c);
+                tlog.Debug(tag, "Count : " + testingTarget.Count);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithICollection END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer constructor. With TouchPointContainer.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerConstructorWithTouchPointContainer()
+        {
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithTouchPointContainer START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            using (TouchPointContainer container = new TouchPointContainer(c))
+            {
+                var testingTarget = new TouchPointContainer(container);
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithTouchPointContainer END (OK)");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("TouchPointContainer constructor. With null ICollection.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerConstructorWithNullICollection()
+        {
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithNullICollection START");
+
+            ICollection c = null;
+
+            try
+            {
+                var testingTarget = new TouchPointContainer(c);
+            }
+            catch (ArgumentNullException e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"TouchPointContainerConstructorWithNullICollection END (OK)");
+                Assert.Pass("Caught ArgumentNullException : Passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer constructor. With capacity.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainer C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerConstructorWithCapacity()
+        {
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithCapacity START");
+
+            var testingTarget = new TouchPointContainer(10);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerConstructorWithCapacity END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer AddRange.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.AddRange M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerAddRange()
+        {
+            tlog.Debug(tag, $"TouchPointContainerAddRange START");
+
+            using (TouchPointContainer container = new TouchPointContainer())
+            {
+                using (TouchPointContainer values = new TouchPointContainer(10))
+                {
+                    try
+                    {
+                        container.AddRange(values);
+                    }
+                    catch (Exception e)
+                    {
+                        tlog.Debug(tag, e.Message.ToString());
+                        Assert.Fail("Caught Exception : Failed!");
+                    }
+                }
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerAddRange END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer GetRange.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.GetRange M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerGetRange()
+        {
+            tlog.Debug(tag, $"TouchPointContainerGetRange START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            var testingTarget = new TouchPointContainer(c);
+
+            try
+            {
+                testingTarget.GetRange(0, 1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerAddRange END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer IsFixedSize.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.IsFixedSize A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerIsFixedSize()
+        {
+            tlog.Debug(tag, $"TouchPointContainerIsFixedSize START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            var result = testingTarget.IsFixedSize;
+            tlog.Debug(tag, "IsFixedSize : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerIsFixedSize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer IsReadOnly.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.IsReadOnly A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerIsReadOnly()
+        {
+            tlog.Debug(tag, $"TouchPointContainerIsFixedSize START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            var result = testingTarget.IsReadOnly;
+            tlog.Debug(tag, "IsReadOnly : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerIsReadOnly END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer IsSynchronized.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.IsSynchronized A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerIsSynchronized()
+        {
+            tlog.Debug(tag, $"TouchPointContainerIsSynchronized START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            var result = testingTarget.IsSynchronized;
+            tlog.Debug(tag, "IsSynchronized : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerIsSynchronized END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer Capacity.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.Capacity A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerCapacity()
+        {
+            tlog.Debug(tag, $"TouchPointContainerCapacity START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            testingTarget.Capacity = 100;
+            var result = testingTarget.Capacity;
+            tlog.Debug(tag, "Capacity : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerCapacity END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer CopyTo.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.CopyTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerCopyTo()
+        {
+            tlog.Debug(tag, $"TouchPointContainerCopyTo START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+
+            testingTarget.CopyTo(arr);
+            var result = testingTarget.Capacity;
+            tlog.Debug(tag, "Capacity : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerCopyTo END (OK)");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("TouchPointContainer CopyTo. Array is null.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.CopyTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerCopyToWithNullArray()
+        {
+            tlog.Debug(tag, $"TouchPointContainerCopyToWithNullArray START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            TouchPoint[] arr = null ;
+
+            try
+            {
+                testingTarget.CopyTo(arr);
+            }
+            catch (ArgumentNullException e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                testingTarget.Dispose();
+                tlog.Debug(tag, $"TouchPointContainerCopyToWithNullArray END (OK)");
+                Assert.Pass("Caught ArgumentNullException :  Passed!");
+            }
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("TouchPointContainer CopyTo. ArrayIndex less than 0.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.CopyTo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerCopyToWithArrayIndexLessThan0()
+        {
+            tlog.Debug(tag, $"TouchPointContainerCopyToWithArrayIndexLessThan0 START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+
+            try
+            {
+                testingTarget.CopyTo(arr, -2);
+            }
+            catch (ArgumentOutOfRangeException e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                testingTarget.Dispose();
+                tlog.Debug(tag, $"TouchPointContainerCopyToWithArrayIndexLessThan0 END (OK)");
+                Assert.Pass("Caught ArgumentOutOfRangeException :  Passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer GetEnumerator.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.GetEnumerator M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerGetEnumerator()
+        {
+            tlog.Debug(tag, $"TouchPointContainerGetEnumerator START");
+
+            var testingTarget = new TouchPointContainer();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+
+            testingTarget.CopyTo(arr);
+            var result = testingTarget.GetEnumerator();
+            tlog.Debug(tag, "Enumerator : " + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"TouchPointContainerGetEnumerator END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer Reverse.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.Reverse M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerReverse()
+        {
+            tlog.Debug(tag, $"TouchPointContainerReverse START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            var testingTarget = new TouchPointContainer(c);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            try
+            {
+                
+                testingTarget.Reverse();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerReverse END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer Reverse. With parameters.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.Reverse M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerReverseWithParameters()
+        {
+            tlog.Debug(tag, $"TouchPointContainerReverseWithParameters START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            var testingTarget = new TouchPointContainer(c);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            try
+            {
+
+                testingTarget.Reverse(0, 2);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerReverseWithParameters END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer SetRange.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.SetRange M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerSetRange()
+        {
+            tlog.Debug(tag, $"TouchPointContainerSetRange START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            var testingTarget = new TouchPointContainer(c);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            try
+            {
+                using (TouchPointContainer container = new TouchPointContainer(30))
+                {
+                    testingTarget.SetRange(0, container);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerSetRange END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer RemoveAt.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.RemoveAt M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerRemoveAt()
+        {
+            tlog.Debug(tag, $"TouchPointContainerRemoveAt START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            var testingTarget = new TouchPointContainer(c);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            try
+            {
+                testingTarget.RemoveAt(0);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerRemoveAt END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer RemoveRange.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.RemoveRange M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerRemoveRange()
+        {
+            tlog.Debug(tag, $"TouchPointContainerRemoveRange START");
+
+            TouchPoint[] arr = new TouchPoint[] { new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), new TouchPoint(2, TouchPoint.StateType.Last, 100.0f, 100.0f) };
+            global::System.Collections.ICollection c = arr;
+
+            var testingTarget = new TouchPointContainer(c);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            try
+            {
+                testingTarget.RemoveRange(0, 1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerRemoveRange END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer Repeat.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.Repeat M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerRepeat()
+        {
+            tlog.Debug(tag, $"TouchPointContainerRepeat START");
+
+            try
+            {
+                TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerRepeat END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer Insert.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.Insert M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerInsert()
+        {
+            tlog.Debug(tag, $"TouchPointContainerInsert START");
+
+            var testingTarget =  TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            testingTarget.Capacity = 5;
+
+            try
+            {
+                testingTarget.Insert(2, new TouchPoint(1, TouchPoint.StateType.Down, 30.0f, 0.0f));
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerInsert END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer InsertRange.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.InsertRange M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerInsertRange()
+        {
+            tlog.Debug(tag, $"TouchPointContainerInsertRange START");
+
+            var testingTarget = TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            testingTarget.Capacity = 5;
+
+            try
+            {
+                testingTarget.InsertRange(2, new TouchPointContainer(1));
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerInsert END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainer Clear.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.Clear M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerClear()
+        {
+            tlog.Debug(tag, $"TouchPointContainerClear START");
+
+            var testingTarget = TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2);
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<TouchPointContainer>(testingTarget, "Should be an Instance of TouchPointContainer!");
+
+            testingTarget.Capacity = 5;
+
+            try
+            {
+                testingTarget.Clear();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerClear END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainerEnumerator Current.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainerEnumerator.Current A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerEnumeratorCurrent()
+        {
+            tlog.Debug(tag, $"TouchPointContainerEnumeratorCurrent START");
+
+            using (TouchPointContainer container = TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2))
+            {
+                var testingTarget = container.GetEnumerator();
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<TouchPointContainer.TouchPointContainerEnumerator>(testingTarget, "Should be an Instance of TouchPointContainerEnumerator!");
+
+                try
+                {
+                    var result = testingTarget.Current;
+                }
+                catch (InvalidOperationException e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    testingTarget.Dispose();
+                    tlog.Debug(tag, $"TouchPointContainerEnumeratorCurrent END (OK)");
+                    Assert.Pass("Caught InvalidOperationException : Passed!");
+                }  
+            }      
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("TouchPointContainerEnumerator Current. With null currentObject.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainerEnumerator.Current A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerEnumeratorCurrentWithNullCurrentObject()
+        {
+            tlog.Debug(tag, $"TouchPointContainerEnumeratorCurrentWithNullCurrentObject START");
+
+            using (TouchPointContainer container = TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2))
+            {
+                var testingTarget = container.GetEnumerator();
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<TouchPointContainer.TouchPointContainerEnumerator>(testingTarget, "Should be an Instance of TouchPointContainerEnumerator!");
+
+                try
+                {
+                    testingTarget.MoveNext();
+                    testingTarget.MoveNext();
+                    testingTarget.MoveNext();
+                    var result = testingTarget.Current;
+                }
+                catch (InvalidOperationException e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    testingTarget.Dispose();
+                    tlog.Debug(tag, $"TouchPointContainerEnumeratorCurrentWithNullCurrentObject END (OK)");
+                    Assert.Pass("Caught InvalidOperationException : Passed!");
+                }
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainerEnumerator MoveNext.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainerEnumerator.MoveNext A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerEnumeratorMoveNext()
+        {
+            tlog.Debug(tag, $"TouchPointContainerEnumeratorMoveNext START");
+
+            using (TouchPointContainer container = TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2))
+            {
+                var testingTarget = container.GetEnumerator();
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<TouchPointContainer.TouchPointContainerEnumerator>(testingTarget, "Should be an Instance of TouchPointContainerEnumerator!");
+
+                var result = testingTarget.MoveNext();
+                tlog.Debug(tag, "Current : " + result);
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerEnumeratorMoveNext END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TouchPointContainerEnumerator Reset.")]
+        [Property("SPEC", "Tizen.NUI.TouchPointContainer.TouchPointContainerEnumerator.Reset A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TouchPointContainerEnumeratorReset()
+        {
+            tlog.Debug(tag, $"TouchPointContainerEnumeratorReset START");
+
+            using (TouchPointContainer container = TouchPointContainer.Repeat(new TouchPoint(1, TouchPoint.StateType.Started, 0.0f, 0.0f), 2))
+            {
+                var testingTarget = container.GetEnumerator();
+                Assert.IsNotNull(testingTarget, "Should be not null!");
+                Assert.IsInstanceOf<TouchPointContainer.TouchPointContainerEnumerator>(testingTarget, "Should be an Instance of TouchPointContainerEnumerator!");
+
+                try
+                {
+                    testingTarget.Reset();
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"TouchPointContainerEnumeratorReset END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTypeAction.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSTypeAction.cs
new file mode 100755 (executable)
index 0000000..e95c7ae
--- /dev/null
@@ -0,0 +1,63 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/TypeAction")]
+    public class InternalTypeActionTest
+    {
+        private const string tag = "NUITEST";
+
+        private delegate void dummyCallback();
+        private void OnDummyCallback()
+        { }
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TypeAction construcotr.")]
+        [Property("SPEC", "Tizen.NUI.TypeAction.TypeAction C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void TypeActionConstrucotr()
+        {
+            tlog.Debug(tag, $"TypeActionConstrucotr START");
+
+            using (Animatable ani = new Animatable())
+            {
+                var registered = new TypeRegistration((global::System.IntPtr)ani.SwigCPtr, false);
+
+                using (PropertyMap map = new PropertyMap())
+                {
+                    var f = new SWIGTYPE_p_f_p_Dali__BaseObject_r_q_const__std__string_r_q_const__Dali__Property__Map__bool(map.SwigCPtr.Handle);
+
+                    var testingTarget = new TypeAction(registered, "ani", f);
+                    Assert.IsNotNull(testingTarget, "Can't create success object TypeAction.");
+                    Assert.IsInstanceOf<TypeAction>(testingTarget, "Should return TypeAction instance.");
+
+                    testingTarget.Dispose();
+                }
+            }
+
+            tlog.Debug(tag, $"TypeActionConstrucotr END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorBlob.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorBlob.cs
new file mode 100755 (executable)
index 0000000..e8af7de
--- /dev/null
@@ -0,0 +1,136 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/VectorBlob")]
+    public class InternalVectorBlobTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorBlob constructor.")]
+        [Property("SPEC", "Tizen.NUI.VectorBlob.VectorBlob C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorBlobConstructor()
+        {
+            tlog.Debug(tag, $"VectorBlobConstructor START");
+
+            var testingTarget = new VectorBlob();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<VectorBlob>(testingTarget, "Should be an Instance of VectorBlob!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorBlobConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorBlob R.")]
+        [Property("SPEC", "Tizen.NUI.VectorBlob.R A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorBlobR()
+        {
+            tlog.Debug(tag, $"VectorBlobR START");
+
+            var testingTarget = new VectorBlob();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<VectorBlob>(testingTarget, "Should be an Instance of VectorBlob!");
+
+            testingTarget.R = 111;
+            Assert.AreEqual(111, testingTarget.R, "Shoule be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorBlobR END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorBlob G.")]
+        [Property("SPEC", "Tizen.NUI.VectorBlob.R A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorBlobG()
+        {
+            tlog.Debug(tag, $"VectorBlobG START");
+
+            var testingTarget = new VectorBlob();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<VectorBlob>(testingTarget, "Should be an Instance of VectorBlob!");
+
+            testingTarget.G = 111;
+            Assert.AreEqual(111, testingTarget.G, "Shoule be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorBlobG END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorBlob B.")]
+        [Property("SPEC", "Tizen.NUI.VectorBlob.VectorBlob A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorBlobB()
+        {
+            tlog.Debug(tag, $"VectorBlobB START");
+
+            var testingTarget = new VectorBlob();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<VectorBlob>(testingTarget, "Should be an Instance of VectorBlob!");
+
+            testingTarget.B = 111;
+            Assert.AreEqual(111, testingTarget.B, "Shoule be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorBlobB END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorBlob A.")]
+        [Property("SPEC", "Tizen.NUI.VectorBlob.A A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorBlobA()
+        {
+            tlog.Debug(tag, $"VectorBlobA START");
+
+            var testingTarget = new VectorBlob();
+            Assert.IsNotNull(testingTarget, "Should be not null!");
+            Assert.IsInstanceOf<VectorBlob>(testingTarget, "Should be an Instance of VectorBlob!");
+
+            testingTarget.A = 111;
+            Assert.AreEqual(111, testingTarget.A, "Shoule be equal!");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorBlobA END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorUint16Pair.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorUint16Pair.cs
new file mode 100755 (executable)
index 0000000..a4853b7
--- /dev/null
@@ -0,0 +1,463 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/VectorUint16Pair")]
+    public class InternalVectorUint16PairTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair contructor.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.VectorUint16Pair C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16PairContructor()
+        {
+            tlog.Debug(tag, $"VectorUint16PairContructor START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16PairContructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair contructor. With VectorUint16Pair.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.VectorUint16Pair C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16PairContructorWithVectorUint16Pair()
+        {
+            tlog.Debug(tag, $"VectorUint16PairContructorWithVectorUint16Pair START");
+
+            using (VectorUint16Pair vector = new VectorUint16Pair())
+            {
+                var testingTarget = new VectorUint16Pair(vector);
+                Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+                Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"VectorUint16PairContructorWithVectorUint16Pair END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Assign.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16PairAssign()
+        {
+            tlog.Debug(tag, $"VectorUint16PairAssign START");
+
+            using (VectorUint16Pair vector = new VectorUint16Pair())
+            {
+                var testingTarget = vector.Assign(vector);
+                Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+                Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"VectorUint16PairAssign END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Begin.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Begin M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16PairBegin()
+        {
+            tlog.Debug(tag, $"VectorUint16PairBegin START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            var result = testingTarget.Begin();
+            tlog.Debug(tag, "Begin :" + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16PairBegin END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair End.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.End M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16PairEnd()
+        {
+            tlog.Debug(tag, $"VectorUint16PairEnd START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            var result = testingTarget.End();
+            tlog.Debug(tag, "End :" + result);
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16PairEnd END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair PushBack.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.PushBack M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16PushBack()
+        {
+            tlog.Debug(tag, $"VectorUint16PairPushBack START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.PushBack(new Uint16Pair());
+                var result = testingTarget.ValueOfIndex(0);
+                tlog.Debug(tag, "ValueOfIndex :" + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16PairPushBack END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Insert.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Insert M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16Insert()
+        {
+            tlog.Debug(tag, $"VectorUint16Insert START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Insert(testingTarget.Begin(), new Uint16Pair(30, 40));
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16Insert END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Insert. 3 parameters.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Insert M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16InsertWith3Parameters()
+        {
+            tlog.Debug(tag, $"VectorUint16InsertWith3Parameters START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Insert(new Uint16Pair(0, 0), testingTarget.Begin(), testingTarget.End());
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16InsertWith3Parameters END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Reserve.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Reserve M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16Reserve()
+        {
+            tlog.Debug(tag, $"VectorUint16Reverse START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Reserve(1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16Reserve END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Resize.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Resize M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16Resize()
+        {
+            tlog.Debug(tag, $"VectorUint16Resize START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Resize(1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16Resize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Resize. With Uint16Pair.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Resize M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16ResizeWithUint16Pair()
+        {
+            tlog.Debug(tag, $"VectorUint16ResizeWithUint16Pair START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Resize(1, new Uint16Pair());
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16ResizeWithUint16Pair END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Erase.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Erase M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16Erase()
+        {
+            tlog.Debug(tag, $"VectorUint16Erase START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Erase(new Uint16Pair());
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16Erase END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Erase. With 2 Uint16Pair.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Erase M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16EraseWith2Uint16Pair()
+        {
+            tlog.Debug(tag, $"VectorUint16EraseWith2Uint16Pair START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                testingTarget.Erase(new Uint16Pair(), new Uint16Pair());
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16EraseWith2Uint16Pair END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Remove.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Remove M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16Remove()
+        {
+            tlog.Debug(tag, $"VectorUint16Remove START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                using (Uint16Pair pair = new Uint16Pair(30, 40))
+                {
+                    testingTarget.PushBack(pair);
+                    testingTarget.Remove(pair);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUint16Remove END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair Swap.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.Swap M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16Swap()
+        {
+            tlog.Debug(tag, $"VectorUint16Swap START");
+
+            var testingTarget = new VectorUint16Pair();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUint16Pair.");
+            Assert.IsInstanceOf<VectorUint16Pair>(testingTarget, "Should return VectorUint16Pair instance.");
+
+            try
+            {
+                using (VectorUint16Pair vector = new VectorUint16Pair())
+                {
+                    testingTarget.Swap(vector);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Clear();
+            testingTarget.Release();
+            tlog.Debug(tag, $"VectorUint16Swap END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUint16Pair BaseType.")]
+        [Property("SPEC", "Tizen.NUI.VectorUint16Pair.BaseType A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUint16BaseType()
+        {
+            tlog.Debug(tag, $"VectorUint16BaseType START");
+
+            try
+            {
+                var result = VectorUint16Pair.BaseType;
+                tlog.Debug(tag, "BaseType : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"VectorUint16BaseType END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorUnsignedChar.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVectorUnsignedChar.cs
new file mode 100755 (executable)
index 0000000..d5ff59f
--- /dev/null
@@ -0,0 +1,370 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/VectorUnsignedChar")]
+    public class InternalVectorUnsignedCharTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar contructor.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.VectorUnsignedChar C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharContructor()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharContructor START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharContructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar contructor. With VectorUnsignedChar.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.VectorUnsignedChar C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharContructorWithVectorUnsignedChar()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharContructorWithVectorUnsignedChar START");
+
+            using (VectorUnsignedChar vector = new VectorUnsignedChar())
+            {
+                var testingTarget = new VectorUnsignedChar(vector);
+                Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+                Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"VectorUnsignedCharContructorWithVectorUnsignedChar END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Assign.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Assign M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharAssign()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharAssign START");
+
+            using (VectorUnsignedChar vector = new VectorUnsignedChar())
+            {
+                var testingTarget = vector.Assign(vector);
+                Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+                Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"VectorUnsignedCharAssign END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Begin.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Begin M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharBegin()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharBegin START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.Begin();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharBegin END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar End.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.End M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharEnd()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharEnd START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.End();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharEnd END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar PushBack.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.PushBack M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharPushBack()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharPushBack START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.PushBack(255);
+                var result = testingTarget.ValueOfIndex(0);
+                tlog.Debug(tag, "ValueOfIndex(0) : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharPushBack END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Reserve.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Reserve M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharReserve()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharReserve START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.PushBack(255);
+                testingTarget.Reserve(1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharReserve END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Resize.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Resize M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharResize()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharResize START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.PushBack(255);
+                /** 1 parameter : uint count */
+                testingTarget.Resize(1);
+                /** 2 parameters : uint count, byte item */
+                testingTarget.Resize(1, 111);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharResize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Erase.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Erase M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharErase()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharErase START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.PushBack(255);
+                byte[] arr = new byte[4];
+
+                /** 1 parameter : byte[] iterator */
+                testingTarget.Erase(arr);
+                /** 2 parameters : byte[] first, SWIGTYPE_p_unsigned_char last */
+                testingTarget.Erase(arr, testingTarget.End());
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharErase END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Remove.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Remove M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharRemove()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharRemove START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                testingTarget.PushBack(255);
+                byte[] arr = new byte[4];
+                testingTarget.Remove(arr);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"VectorUnsignedCharRemove END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar Swap.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.Swap M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharSwap()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharSwap START");
+
+            var testingTarget = new VectorUnsignedChar();
+            Assert.IsNotNull(testingTarget, "Can't create success object VectorUnsignedChar.");
+            Assert.IsInstanceOf<VectorUnsignedChar>(testingTarget, "Should return VectorUnsignedChar instance.");
+
+            try
+            {
+                using (VectorUnsignedChar vector = new VectorUnsignedChar())
+                {
+                    testingTarget.Swap(vector);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Clear();
+            testingTarget.Release();
+            tlog.Debug(tag, $"VectorUnsignedCharSwap END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VectorUnsignedChar BaseType.")]
+        [Property("SPEC", "Tizen.NUI.VectorUnsignedChar.BaseType A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VectorUnsignedCharBaseType()
+        {
+            tlog.Debug(tag, $"VectorUnsignedCharBaseType START");
+
+            try
+            {
+                var result = VectorUnsignedChar.BaseType;
+                tlog.Debug(tag, "BaseType : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            tlog.Debug(tag, $"VectorUnsignedCharBaseType END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVersionCheck.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Common/TSVersionCheck.cs
new file mode 100755 (executable)
index 0000000..b621ab0
--- /dev/null
@@ -0,0 +1,79 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Common/VersionCheck")]
+    public class InternalVersionCheckTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VersionCheck DaliVersionMatchWithNUI.")]
+        [Property("SPEC", "Tizen.NUI.VersionCheck.DaliVersionMatchWithNUI M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VersionCheckDaliVersionMatchWithNUI()
+        {
+            tlog.Debug(tag, $"VersionCheckDaliVersionMatchWithNUI START");
+
+            try
+            {
+                var result = Tizen.NUI.Version.DaliVersionMatchWithNUI();
+                tlog.Debug(tag, "DaliVersionMatchWithNUI : " + result);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"VersionCheckDaliVersionMatchWithNUI END (OK)");
+                Assert.Pass();
+            }
+
+            tlog.Debug(tag, $"VersionCheckDaliVersionMatchWithNUI END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("VersionCheck PrintDaliNativeVersion.")]
+        [Property("SPEC", "Tizen.NUI.VersionCheck.PrintDaliNativeVersion M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void VersionPrintDaliNativeVersion()
+        {
+            tlog.Debug(tag, $"VersionPrintDaliNativeVersion START");
+
+            try
+            {
+                Tizen.NUI.Version.PrintDaliNativeVersion();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception: Failed!");
+            }
+
+            tlog.Debug(tag, $"VersionPrintDaliNativeVersion END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSDefaultFrameBroker.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSDefaultFrameBroker.cs
new file mode 100755 (executable)
index 0000000..8ac50f5
--- /dev/null
@@ -0,0 +1,343 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using System.Collections.Generic;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/FrameBroker/DefaultFrameBroker")]
+    class InternalDefaultFrameBrokerTest
+    {
+        private const string tag = "NUITEST";
+        private const string MyAppId = "org.tizen.SampleServiceApp.Tizen";
+        private string path = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+
+        internal class MyDefaultFrameBroker : DefaultFrameBroker
+        {
+            public MyDefaultFrameBroker(Window win) : base(win)
+            { }
+
+            public void MyOnFrameCreated()
+            {
+                base.OnFrameCreated();
+            }
+
+            public void MyOnFrameResumed(FrameData frame)
+            {
+                base.OnFrameResumed(frame);
+            }
+
+            public void MyOnFrameUpdated(FrameData frame)
+            {
+                base.OnFrameUpdated(frame);
+            }
+
+            public void MyOnFramePaused()
+            {
+                base.OnFramePaused();
+            }
+
+            public void MyOnFrameDestroyed()
+            {
+                base.OnFrameDestroyed();
+            }
+
+            public void MyOnFrameErred(FrameError error)
+            {
+                base.OnFrameErred(error);
+            }
+        }
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker constructor.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.DefaultFrameBroker C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerConstructor()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerConstructor START");
+
+            using (Window window = new Window(new Rectangle(0, 0, 1920, 1080), false))
+            {
+                var testingTarget = new DefaultFrameBroker(window);
+                Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+                Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+                testingTarget.Dispose();
+            }
+
+            tlog.Debug(tag, $"DefaultFrameBrokerConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("DefaultFrameBroker constructor. With null window.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.DefaultFrameBroker M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerConstructorWindowIsNull()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerConstructorWindowIsNull START");
+
+            using (Window window = null)
+            {
+                try
+                {
+                    var testingTarget = new DefaultFrameBroker(window);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    tlog.Debug(tag, $"DefaultFrameBrokerConstructorWindowIsNull END (OK)");
+                    Assert.Pass("Caught Exception : Passed!");
+                }
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker ForwardAnimation.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.ForwardAnimation A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerForwardAnimation()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerForwardAnimation START");
+
+            var testingTarget = new DefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                var result = testingTarget.ForwardAnimation;
+                tlog.Debug(tag, "ForwardAnimation.ForwardAnimation : " + result);
+
+                using (TransitionAnimation forwardAni = new TransitionAnimation(300))
+                {
+                    testingTarget.ForwardAnimation = forwardAni;
+                    tlog.Debug(tag, "ForwardAnimation.ForwardAnimation : " + testingTarget.ForwardAnimation);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+            tlog.Debug(tag, $"DefaultFrameBrokerForwardAnimation END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker BackwardAnimation.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.BackwardAnimation A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerBackwardAnimation()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerBackwardAnimation START");
+
+            var testingTarget = new DefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                var result = testingTarget.BackwardAnimation;
+                tlog.Debug(tag, "ForwardAnimation.BackwardAnimation : " + result);
+
+                using (TransitionAnimation backAni = new TransitionAnimation(300))
+                {
+                    testingTarget.BackwardAnimation = backAni;
+                    tlog.Debug(tag, "ForwardAnimation.BackwardAnimation : " + testingTarget.BackwardAnimation);
+                }
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"DefaultFrameBrokerBackwardAnimation END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker OnFrameCreated.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.OnFrameCreated M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerOnFrameCreated()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFrameCreated START");
+
+            var testingTarget = new MyDefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                testingTarget.MyOnFrameCreated();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFrameCreated END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker OnFramePaused.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.OnFramePaused M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerOnFramePaused()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFramePaused START");
+
+            var testingTarget = new MyDefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                testingTarget.MyOnFramePaused();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFramePaused END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker OnFrameDestroyed.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.OnFrameDestroyed M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerOnFrameDestroyed()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFrameDestroyed START");
+
+            var testingTarget = new MyDefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                testingTarget.MyOnFrameDestroyed();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFrameDestroyed END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker OnFrameErred.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.OnFrameErred M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerOnFrameErred()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFrameErred START");
+
+            var testingTarget = new MyDefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                testingTarget.MyOnFrameErred(FrameError.Disqualified);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"DefaultFrameBrokerOnFrameErred END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DefaultFrameBroker SendLaunchRequest.")]
+        [Property("SPEC", "Tizen.NUI.DefaultFrameBroker.SendLaunchRequest M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void DefaultFrameBrokerSendLaunchRequest()
+        {
+            tlog.Debug(tag, $"DefaultFrameBrokerSendLaunchRequest START");
+
+            var testingTarget = new DefaultFrameBroker(Window.Instance);
+            Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+            Assert.IsInstanceOf<DefaultFrameBroker>(testingTarget, "Should be an instance of DefaultFrameBroker type.");
+
+            try
+            {
+                Tizen.Applications.AppControl appControl = new Tizen.Applications.AppControl();
+                appControl.Operation = Tizen.Applications.AppControlOperations.Call;
+                appControl.ApplicationId = MyAppId;
+                testingTarget.SendLaunchRequest(appControl, true);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                Assert.Fail("Caught Exception : Failed!");
+            }
+
+            testingTarget.Dispose();
+
+            tlog.Debug(tag, $"DefaultFrameBrokerSendLaunchRequest END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSFrameData.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSFrameData.cs
new file mode 100755 (executable)
index 0000000..dd7374b
--- /dev/null
@@ -0,0 +1,395 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using System.Collections.Generic;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/FrameBroker/FrameData")]
+    public class InternalFrameDataTest
+    {
+        private const string tag = "NUITEST";
+        private string path = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "picture.png";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData constructor.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.FrameData M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataConstructor()
+        {
+            tlog.Debug(tag, $"FrameDataConstructor START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+                
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+            }
+
+            tlog.Debug(tag, $"FrameDataConstructor END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData DirectionForward.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.DirectionForward A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataDirectionForward()
+        {
+            tlog.Debug(tag, $"FrameDataDirectionForward START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+                
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.DirectionForward;
+                    tlog.Debug(tag, "DirectionForward : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }                  
+            }
+
+            tlog.Debug(tag, $"FrameDataDirectionForward END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData TbmSurface.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.TbmSurface A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataTbmSurface()
+        {
+            tlog.Debug(tag, $"FrameDataTbmSurface START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.TbmSurface;
+                    tlog.Debug(tag, "TbmSurface : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataTbmSurface END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData Fd.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.Fd A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataFd()
+        {
+            tlog.Debug(tag, $"FrameDataFd START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.Fd;
+                    tlog.Debug(tag, "Fd : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataFd END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData Size.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.Size A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataSize()
+        {
+            tlog.Debug(tag, $"FrameDataSize START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.Size;
+                    tlog.Debug(tag, "Size : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataSize END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData FilePath.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.FilePath A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataFilePath()
+        {
+            tlog.Debug(tag, $"FrameDataFilePath START");
+
+            using (ImageView image = new ImageView())
+            {
+                image.ResourceUrl = path;
+
+                var testingTarget = new FrameData(image.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.FilePath;
+                    tlog.Debug(tag, "FilePath : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataFilePath END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData FileGroup.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.FileGroup A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataFileGroup()
+        {
+            tlog.Debug(tag, $"FrameDataFileGroup START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.FileGroup;
+                    tlog.Debug(tag, "FileGroup : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataFileGroup END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData Type.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.Type A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataType()
+        {
+            tlog.Debug(tag, $"FrameDataType START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.Type;
+                    tlog.Debug(tag, "Type : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataType END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData PositionX.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.PositionX A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataPositionX()
+        {
+            tlog.Debug(tag, $"FrameDataPositionX START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.PositionX;
+                    tlog.Debug(tag, "PositionX : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataPositionX END (OK)");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FrameData PositionY.")]
+        [Property("SPEC", "Tizen.NUI.FrameData.PositionY A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void FrameDataPositionY()
+        {
+            tlog.Debug(tag, $"FrameDataPositionY START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new FrameData(ani.SwigCPtr.Handle);
+                Assert.IsNotNull(testingTarget, "Can't create success object FrameData");
+                Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+                try
+                {
+                    var result = testingTarget.PositionY;
+                    tlog.Debug(tag, "PositionY : " + result);
+                }
+                catch (Exception e)
+                {
+                    tlog.Debug(tag, e.Message.ToString());
+                    Assert.Fail("Caught Exception : Failed!");
+                }
+            }
+
+            tlog.Debug(tag, $"FrameDataPositionY END (OK)");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("FrameData Extra.")]
+        //[Property("SPEC", "Tizen.NUI.FrameData.Extra A")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "PRO")]
+        //[Property("AUTHOR", "guowei.wang@samsung.com")]
+        //public void FrameDataExtra()
+        //{
+        //    tlog.Debug(tag, $"FrameDataExtra START");
+
+        //    using (ImageView image = new ImageView())
+        //    {
+        //        image.ResourceUrl = path;
+        //        image.backgroundExtraData = new BackgroundExtraData();
+
+        //        var testingTarget = new FrameData(image.SwigCPtr.Handle);
+        //        Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+        //        Assert.IsInstanceOf<FrameData>(testingTarget, "Should be an instance of FrameData type.");
+
+        //        try
+        //        {
+        //            var result = testingTarget.Extra;
+        //            tlog.Debug(tag, "Extra : " + result);
+        //        }
+        //        catch (Exception e)
+        //        {
+        //            tlog.Debug(tag, e.Message.ToString());
+        //            Assert.Fail("Caught Exception : Failed!");
+        //        }
+        //    }
+
+        //    tlog.Debug(tag, $"FrameDataExtra END (OK)");
+        //}
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSSafeFrameBrokerHandle.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/FrameBroker/TSSafeFrameBrokerHandle.cs
new file mode 100755 (executable)
index 0000000..3d174f2
--- /dev/null
@@ -0,0 +1,53 @@
+using global::System;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.NUI.Components;
+using Tizen.NUI.BaseComponents;
+using System.Collections.Generic;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/FrameBroker/SafeFrameBrokerHandle")]
+    public class InternalSafeFrameBrokerHandleTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("SafeFrameBrokerHandle constructor.")]
+        [Property("SPEC", "Tizen.NUI.SafeFrameBrokerHandle.SafeFrameBrokerHandle M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "guowei.wang@samsung.com")]
+        public void SafeFrameBrokerHandleConstructor()
+        {
+            tlog.Debug(tag, $"SafeFrameBrokerHandleConstructor START");
+
+            using (Animation ani = new Animation(300))
+            {
+                ani.SetDefaultAlphaFunction(new AlphaFunction(AlphaFunction.BuiltinFunctions.EaseInSquare));
+
+                var testingTarget = new SafeFrameBrokerHandle(ani.SwigCPtr.Handle, false);
+                Assert.IsNotNull(testingTarget, "Can't create success object CustomView");
+                Assert.IsInstanceOf<SafeFrameBrokerHandle>(testingTarget, "Should be an instance of SafeFrameBrokerHandle type.");
+            }
+
+            tlog.Debug(tag, $"SafeFrameBrokerHandleConstructor END (OK)");
+        }
+    }
+}
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSApplyPropertiesVisitor.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSApplyPropertiesVisitor.cs
new file mode 100755 (executable)
index 0000000..d3c30ac
--- /dev/null
@@ -0,0 +1,445 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/ApplyPropertiesVisitor")]
+    internal class PublicApplyPropertiesVisitorTest
+    {
+        private const string tag = "NUITEST";
+        private static ApplyPropertiesVisitor a1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            HydrationContext context = new HydrationContext();
+            a1 = new ApplyPropertiesVisitor(context, false);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            a1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor ApplyPropertiesVisitor")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.ApplyPropertiesVisitor C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void ApplyPropertiesVisitorConstructor()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorConstructor START");
+
+            HydrationContext context = new HydrationContext();
+
+            ApplyPropertiesVisitor applyPropertiesVisitor = new ApplyPropertiesVisitor(context, false);
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorConstructor END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor VisitingMode")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.VisitingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ApplyPropertiesVisitorVisitingMode()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorVisitingMode START");
+
+            try
+            {
+                TreeVisitingMode t1 = a1.VisitingMode;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorVisitingMode END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorVisitingMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor StopOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.StopOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ApplyPropertiesVisitorStopOnDataTemplate()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorStopOnDataTemplate START");
+
+            try
+            {
+                bool b1 = a1.StopOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorStopOnDataTemplate END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorStopOnDataTemplate");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor StopOnResourceDictionary ")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.StopOnResourceDictionary A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ApplyPropertiesVisitorStopOnResourceDictionary()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorStopOnResourceDictionary START");
+
+            try
+            {
+                bool b1 = a1.StopOnResourceDictionary;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorStopOnResourceDictionary END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorStopOnResourceDictionary");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor VisitNodeOnDataTemplate ")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.VisitNodeOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ApplyPropertiesVisitorVisitNodeOnDataTemplate()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                bool b1 = a1.VisitNodeOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorVisitNodeOnDataTemplate END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorVisitNodeOnDataTemplate");
+        }
+
+        public class INodeImplement : INode
+        {
+            public global::System.Collections.Generic.List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public global::System.Xml.IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor SkipChildren")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.SkipChildren M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorSkipChildren()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorSkipChildren START");
+
+            try
+            {
+                INodeImplement n1 = new INodeImplement();
+                INodeImplement n2 = new INodeImplement();
+                bool b1 = a1.SkipChildren(n1, n2);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorSkipChildren END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorSkipChildren");
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor IsResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.IsResourceDictionary M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorIsResourceDictionary()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorIsResourceDictionary START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+                bool b1 = a1.IsResourceDictionary(n1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ApplyPropertiesVisitorIsResourceDictionary END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorVisit1()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorVisit START");
+
+            try
+            {
+                object o1 = new object();
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ValueNode valueNode = new ValueNode(o1, i1);
+
+                INodeImplement nodeImplement = new INodeImplement();
+                a1.Visit(valueNode, nodeImplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ApplyPropertiesVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorVisit2()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorVisit START");
+
+            try
+            {
+                INodeImplement nodeImplement = new INodeImplement();
+
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement ix1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", ix1);
+
+                a1.Visit(n1, nodeImplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ApplyPropertiesVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor TryGetPropertyName")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.TryGetPropertyName M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorTryGetPropertyName()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorTryGetPropertyName START");
+
+            try
+            {
+                INodeImplement n1 = new INodeImplement();
+                INodeImplement n2 = new INodeImplement();
+                XmlName xmlName = new XmlName();
+                ApplyPropertiesVisitor.TryGetPropertyName(n1, n2, out xmlName);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorTryGetPropertyName END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorTryGetPropertyName");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor IsCollectionItem")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.IsCollectionItem M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorIsCollectionItem()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorIsCollectionItem START");
+
+            try
+            {
+                INodeImplement n1 = new INodeImplement();
+                INodeImplement n2 = new INodeImplement();
+
+                ApplyPropertiesVisitor.IsCollectionItem(n1, n2);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplyPropertiesVisitorIsCollectionItem END (OK)");
+            Assert.Pass("ApplyPropertiesVisitorIsCollectionItem");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("ApplyPropertiesVisitor GetContentPropertyName")]
+        //[Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.GetContentPropertyName M")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "MR")]
+        //public void ApplyPropertiesVisitorGetContentPropertyName()
+        //{
+        //    tlog.Debug(tag, $"ApplyPropertiesVisitorGetContentPropertyName START");
+
+        //    try
+        //    {
+        //        System.Reflection.TypeInfo typeInfo = new System.Reflection.TypeInfo();
+        //        ApplyPropertiesVisitor.GetContentPropertyName(typeInfo);
+        //    }
+        //    catch (Exception e)
+        //    {
+        //        Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+        //        Assert.Fail("Caught Exception" + e.ToString());
+        //    }
+
+        //    tlog.Debug(tag, $"ApplyPropertiesVisitorGetContentPropertyName END (OK)");
+        //    Assert.Pass("ApplyPropertiesVisitorGetContentPropertyName");
+        //}
+
+        public class IXmlLineInfoImplement : IXmlLineInfo
+        {
+            public int LineNumber => throw new NotImplementedException();
+
+            public int LinePosition => throw new NotImplementedException();
+
+            public bool HasLineInfo()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor SetPropertyValue")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.SetPropertyValue M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorProvideValue()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorSetPropertyValue START");
+
+            try
+            {
+                object o1 = new object();
+                XmlName xmlName = new XmlName();
+                object value = new object();
+                object rootElement = new object();
+                INodeImplement nodeImplement = new INodeImplement();
+                HydrationContext context = new HydrationContext();
+                IXmlLineInfoImplement xmlLineInfoImplement = new IXmlLineInfoImplement();
+
+                ApplyPropertiesVisitor.SetPropertyValue(o1, xmlName, value, rootElement, nodeImplement, context, xmlLineInfoImplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ApplyPropertiesVisitorSetPropertyValue END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplyPropertiesVisitor GetPropertyValue")]
+        [Property("SPEC", "Tizen.NUI.ApplyPropertiesVisitor.GetPropertyValue M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplyPropertiesVisitorGetPropertyValue()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorGetPropertyValue START");
+
+            try
+            {
+                object o1 = new object();
+                XmlName xmlName = new XmlName();
+                object value = new object();
+                INodeImplement nodeImplement = new INodeImplement();
+                HydrationContext context = new HydrationContext();
+                IXmlLineInfoImplement xmlLineInfoImplement = new IXmlLineInfoImplement();
+
+                ApplyPropertiesVisitor.GetPropertyValue(o1, xmlName, context, xmlLineInfoImplement, out value);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ApplyPropertiesVisitorGetPropertyValue END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSCreateValuesVisitor.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSCreateValuesVisitor.cs
new file mode 100755 (executable)
index 0000000..87f94eb
--- /dev/null
@@ -0,0 +1,438 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using Tizen.NUI.Binding.Internals;
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/CreateValuesVisitor")]
+    internal class PublicCreateValuesVisitorTest
+    {
+        private const string tag = "NUITEST";
+        private static CreateValuesVisitor c1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            HydrationContext context = new HydrationContext();
+            c1 = new CreateValuesVisitor(context);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            c1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor CreateValuesVisitor")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.CreateValuesVisitor C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void CreateValuesVisitorConstructor()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorConstructor START");
+
+            HydrationContext context = new HydrationContext();
+
+            CreateValuesVisitor createValuesVisitor = new CreateValuesVisitor(context);
+
+            tlog.Debug(tag, $"CreateValuesVisitorConstructor END (OK)");
+            Assert.Pass("CreateValuesVisitorConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor VisitingMode")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.VisitingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void CreateValuesVisitorVisitingMode()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorVisitingMode START");
+
+            try
+            {
+                TreeVisitingMode t1 = c1.VisitingMode;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorVisitingMode END (OK)");
+            Assert.Pass("CreateValuesVisitorVisitingMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor StopOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.StopOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void CreateValuesVisitorStopOnDataTemplate()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorStopOnDataTemplate START");
+
+            try
+            {
+                bool b1 = c1.StopOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorStopOnDataTemplate END (OK)");
+            Assert.Pass("CreateValuesVisitorStopOnDataTemplate");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor StopOnResourceDictionary ")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.StopOnResourceDictionary  A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void CreateValuesVisitorStopOnResourceDictionary()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorStopOnResourceDictionary START");
+
+            try
+            {
+                bool b1 = c1.StopOnResourceDictionary;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorStopOnResourceDictionary END (OK)");
+            Assert.Pass("CreateValuesVisitorStopOnResourceDictionary");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor VisitNodeOnDataTemplate  ")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.VisitNodeOnDataTemplate   A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void CreateValuesVisitorVisitNodeOnDataTemplate()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                bool b1 = c1.VisitNodeOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorVisitNodeOnDataTemplate END (OK)");
+            Assert.Pass("CreateValuesVisitorVisitNodeOnDataTemplate");
+        }
+
+        public class INodeImplement : INode
+        {
+            public global::System.Collections.Generic.List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public global::System.Xml.IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor SkipChildren")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.SkipChildren M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorSkipChildren()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorSkipChildren START");
+
+            try
+            {
+                INodeImplement node = new INodeImplement();
+                INodeImplement nodeParent = new INodeImplement();
+                bool b1 = c1.SkipChildren(node, nodeParent);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorSkipChildren END (OK)");
+            Assert.Pass("CreateValuesVisitorSkipChildren");
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor IsResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.IsResourceDictionary M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorIsResourceDictionary()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorIsResourceDictionary START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                bool b1 = c1.IsResourceDictionary(n1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"CreateValuesVisitorIsResourceDictionary END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        public class RootNodeImplement : RootNode
+        {
+            public RootNodeImplement(XmlType xmlType, IXmlNamespaceResolver nsResolver) : base(xmlType, nsResolver)
+            {
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorVisit1()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorVisit START");
+
+            try
+            {
+                object o1 = new object();
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ValueNode node = new ValueNode(o1, i1);
+                INodeImplement parentNode = new INodeImplement();
+                c1.Visit(node, parentNode);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorVisit END (OK)");
+            Assert.Pass("CreateValuesVisitorVisit");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorVisit2()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorVisit START");
+
+            try
+            {
+                INodeImplement parentNode = new INodeImplement();
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                c1.Visit(n1, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"CreateValuesVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorVisit3()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorVisit START");
+
+            try
+            {
+                INodeImplement parentNode = new INodeImplement();
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+                RootNodeImplement rootNode = new RootNodeImplement(xmlType, i1);
+                c1.Visit(rootNode, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"CreateValuesVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        public class IElementNodeImplement : IElementNode
+        {
+            public Dictionary<XmlName, INode> Properties => throw new NotImplementedException();
+
+            public List<XmlName> SkipProperties => throw new NotImplementedException();
+
+            public INameScope Namescope => throw new NotImplementedException();
+
+            public XmlType XmlType => throw new NotImplementedException();
+
+            public string NamespaceURI => throw new NotImplementedException();
+
+            public List<INode> CollectionItems => throw new NotImplementedException();
+
+            public List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor CreateFromParameterizedConstructor")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.CreateFromParameterizedConstructor M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorCreateFromParameterizedConstructor()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorCreateFromParameterizedConstructor START");
+
+            try
+            {
+                Type type = typeof(string);
+                IElementNodeImplement i1 = new IElementNodeImplement();
+                c1.CreateFromParameterizedConstructor(type, i1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"CreateValuesVisitorCreateFromParameterizedConstructor END (OK)");
+            Assert.Pass("CreateValuesVisitorCreateFromParameterizedConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor CreateFromFactory")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.CreateFromFactory M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorCreateFromFactory()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorCreateFromFactory START");
+
+            try
+            {
+                Type type = typeof(string);
+                IElementNodeImplement i1 = new IElementNodeImplement();
+                c1.CreateFromFactory(type, i1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"CreateValuesVisitorCreateFromFactory END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("CreateValuesVisitor CreateArgumentsArray")]
+        [Property("SPEC", "Tizen.NUI.CreateValuesVisitor.CreateArgumentsArray M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void CreateValuesVisitorCreateArgumentsArray()
+        {
+            tlog.Debug(tag, $"CreateValuesVisitorCreateArgumentsArray START");
+
+            try
+            {
+                IElementNodeImplement i1 = new IElementNodeImplement();
+                c1.CreateArgumentsArray(i1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"CreateValuesVisitorCreateArgumentsArray END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSDesignMode.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSDesignMode.cs
new file mode 100755 (executable)
index 0000000..b95ce56
--- /dev/null
@@ -0,0 +1,52 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/DesignMode")]
+    internal class PublicDesignModeTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DesignMode IsDesignModeEnabled")]
+        [Property("SPEC", "Tizen.NUI.DesignMode.IsDesignModeEnabled A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void DesignModeIsDesignModeEnabled()
+        {
+            tlog.Debug(tag, $"DesignModeIsDesignModeEnabled START");
+
+            try
+            {
+                bool b1 = DesignMode.IsDesignModeEnabled;
+                DesignMode.IsDesignModeEnabled = b1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"DesignModeIsDesignModeEnabled END (OK)");
+            Assert.Pass("DesignModeIsDesignModeEnabled");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSExpandMarkupsVisitor.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSExpandMarkupsVisitor.cs
new file mode 100755 (executable)
index 0000000..1c42de7
--- /dev/null
@@ -0,0 +1,327 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Tizen.NUI.Xaml;
+using static Tizen.NUI.Xaml.ExpandMarkupsVisitor;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/ExpandMarkupsVisitor")]
+    internal class PublicExpandMarkupsVisitorTest
+    {
+        private const string tag = "NUITEST";
+        private static ExpandMarkupsVisitor e1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            HydrationContext context = new HydrationContext();
+
+            e1 = new ExpandMarkupsVisitor(context);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            e1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor ExpandMarkupsVisitor")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.ExpandMarkupsVisitor C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void ExpandMarkupsVisitorConstructor()
+        {
+            tlog.Debug(tag, $"ApplyPropertiesVisitorConstructor START");
+
+            HydrationContext context = new HydrationContext();
+
+            ExpandMarkupsVisitor expandMarkupsVisitor = new ExpandMarkupsVisitor(context);
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorConstructor END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor Skips")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.Skips A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ExpandMarkupsVisitorSkips()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorSkips START");
+
+            try
+            {
+                IList<XmlName> l1 = ExpandMarkupsVisitor.Skips;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorSkips END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorSkips");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor VisitingMode")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.VisitingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ExpandMarkupsVisitorVisitingMode()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorVisitingMode START");
+
+            try
+            {
+                TreeVisitingMode t1 = e1.VisitingMode;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorVisitingMode END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorVisitingMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor StopOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.StopOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ExpandMarkupsVisitorStopOnDataTemplate()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorStopOnDataTemplate START");
+
+            try
+            {
+                bool b1 = e1.StopOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorStopOnDataTemplate END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorStopOnDataTemplate");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor StopOnResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.StopOnResourceDictionary A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ExpandMarkupsVisitorStopOnResourceDictionary()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorStopOnResourceDictionary START");
+
+            try
+            {
+                bool b1 = e1.StopOnResourceDictionary;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorStopOnResourceDictionary END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorStopOnResourceDictionary");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor VisitNodeOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.VisitNodeOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ExpandMarkupsVisitorVisitNodeOnDataTemplate()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                bool b1 = e1.VisitNodeOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorVisitNodeOnDataTemplate END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorVisitNodeOnDataTemplate");
+        }
+
+        public class INodeImplement : INode
+        {
+            public global::System.Collections.Generic.List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public global::System.Xml.IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor SkipChildren")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.SkipChildren M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ExpandMarkupsVisitorSkipChildren()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorSkipChildren START");
+
+            try
+            {
+                INodeImplement node = new INodeImplement();
+                INodeImplement nodeParent = new INodeImplement();
+                bool b1 = e1.SkipChildren(node, nodeParent);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorSkipChildren END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorSkipChildren");
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor IsResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.IsResourceDictionary M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ExpandMarkupsVisitorIsResourceDictionary()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorIsResourceDictionary START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                bool b1 = e1.IsResourceDictionary(n1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorIsResourceDictionary END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorIsResourceDictionary");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ExpandMarkupsVisitorVisit()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorVisit START");
+
+            try
+            {
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                MarkupNode markupnode = new MarkupNode("markup", i1);
+                INodeImplement parentNode = new INodeImplement();
+                e1.Visit(markupnode, parentNode);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ExpandMarkupsVisitorVisit END (OK)");
+            Assert.Pass("ExpandMarkupsVisitorVisit");
+        }
+
+        public class IServiceProviderImplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ExpandMarkupsVisitor Parse")]
+        [Property("SPEC", "Tizen.NUI.ExpandMarkupsVisitor.MarkupExpansionParser.Parse M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ExpandMarkupsVisitorParse()
+        {
+            tlog.Debug(tag, $"ExpandMarkupsVisitorParse START");
+
+            try
+            {
+                MarkupExpansionParser markupExpansionParser = new MarkupExpansionParser();
+                IServiceProviderImplement serviceProviderImplement = new IServiceProviderImplement();
+
+                string s1 = new string('a', 4);
+                markupExpansionParser.Parse("matchString", ref s1, serviceProviderImplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ExpandMarkupsVisitorParse END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSFillResourceDictionariesVisitor.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSFillResourceDictionariesVisitor.cs
new file mode 100755 (executable)
index 0000000..145041b
--- /dev/null
@@ -0,0 +1,299 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/FillResourceDictionariesVisitor")]
+    internal class PublicFillResourceDictionariesVisitorTest
+    {
+        private const string tag = "NUITEST";
+        private static FillResourceDictionariesVisitor f1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            HydrationContext context = new HydrationContext();
+            f1 = new FillResourceDictionariesVisitor(context);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor FillResourceDictionariesVisitor")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.FillResourceDictionariesVisitor C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void FillResourceDictionariesVisitorConstructor()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorConstructor START");
+
+            HydrationContext context = new HydrationContext();
+
+            FillResourceDictionariesVisitor fillResourceDictionariesVisitor = new FillResourceDictionariesVisitor(context);
+
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorConstructor END (OK)");
+            Assert.Pass("FillResourceDictionariesVisitorConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor VisitingMode")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.VisitingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void FillResourceDictionariesVisitorVisitingMode()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorVisitingMode START");
+
+            try
+            {
+                TreeVisitingMode t1 = f1.VisitingMode;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorVisitingMode END (OK)");
+            Assert.Pass("FillResourceDictionariesVisitorVisitingMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor StopOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.StopOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void FillResourceDictionariesVisitorStopOnDataTemplate()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorStopOnDataTemplate START");
+
+            try
+            {
+                bool b1 = f1.StopOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorStopOnDataTemplate END (OK)");
+            Assert.Pass("FillResourceDictionariesVisitorStopOnDataTemplate");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor StopOnResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.StopOnResourceDictionary A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void FillResourceDictionariesVisitorStopOnResourceDictionary()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorStopOnResourceDictionary START");
+
+            try
+            {
+                bool b1 = f1.StopOnResourceDictionary;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorStopOnResourceDictionary END (OK)");
+            Assert.Pass("FillResourceDictionariesVisitorStopOnResourceDictionary");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor VisitNodeOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.VisitNodeOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void FillResourceDictionariesVisitorVisitNodeOnDataTemplate()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                bool b1 = f1.VisitNodeOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"FillResourceDictionariesVisitorVisitNodeOnDataTemplate END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor IsResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.IsResourceDictionary M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void FillResourceDictionariesVisitorIsResourceDictionary()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                bool b1 = f1.IsResourceDictionary(n1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"FillResourceDictionariesVisitorVisitNodeOnDataTemplate END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        public class INodeImplement : INode
+        {
+            public List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void FillResourceDictionariesVisitorVisit1()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorVisit START");
+
+            try
+            {
+                object o1 = new object();
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ValueNode node = new ValueNode(o1, i1);
+
+                INodeImplement parentNode = new INodeImplement();
+
+                f1.Visit(node, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"FillResourceDictionariesVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void FillResourceDictionariesVisitorVisit2()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorVisit START");
+
+            try
+            {
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+
+                INodeImplement parentNode = new INodeImplement();
+
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                f1.Visit(n1, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"FillResourceDictionariesVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("FillResourceDictionariesVisitor SkipChildren")]
+        [Property("SPEC", "Tizen.NUI.FillResourceDictionariesVisitor.SkipChildren M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void FillResourceDictionariesVisitorSkipChildren()
+        {
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorSkipChildren START");
+
+            try
+            {
+                INodeImplement nodeImplement = new INodeImplement();
+                INodeImplement parentNode = new INodeImplement();
+
+                f1.SkipChildren(nodeImplement, parentNode);
+
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"FillResourceDictionariesVisitorSkipChildren END (OK)");
+            Assert.Pass("FillResourceDictionariesVisitorSkipChildren");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSHydrationContext.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSHydrationContext.cs
new file mode 100755 (executable)
index 0000000..e573b80
--- /dev/null
@@ -0,0 +1,128 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/HydrationContext")]
+    internal class PublicHydrationContextTest
+    {
+        private const string tag = "NUITEST";
+        private static HydrationContext h1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            h1 = new HydrationContext();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("HydrationContext Values")]
+        [Property("SPEC", "Tizen.NUI.HydrationContext.Values A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void HydrationContextValues()
+        {
+            tlog.Debug(tag, $"HydrationContextValues START");
+
+            try
+            {
+                Dictionary<INode, object> d1 = h1.Values;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"HydrationContextValues END (OK)");
+            Assert.Pass("HydrationContextValues");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("HydrationContext Types")]
+        [Property("SPEC", "Tizen.NUI.HydrationContext.Types A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void HydrationContextTypes()
+        {
+            tlog.Debug(tag, $"HydrationContextTypes START");
+
+            try
+            {
+                Dictionary<IElementNode, Type> d1 = h1.Types;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"HydrationContextTypes END (OK)");
+            Assert.Pass("HydrationContextTypes");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("HydrationContext ParentContext")]
+        [Property("SPEC", "Tizen.NUI.HydrationContext.ParentContext A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void HydrationContextParentContext()
+        {
+            tlog.Debug(tag, $"HydrationContextParentContext START");
+
+            try
+            {
+                HydrationContext hy1 = h1.ParentContext;
+                h1.ParentContext = hy1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"HydrationContextParentContext END (OK)");
+            Assert.Pass("HydrationContextParentContext");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("HydrationContext ExceptionHandler")]
+        [Property("SPEC", "Tizen.NUI.HydrationContext.ExceptionHandler A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void HydrationContextExceptionHandler()
+        {
+            tlog.Debug(tag, $"HydrationContextExceptionHandler START");
+
+            try
+            {
+                Action<Exception> a1 = h1.ExceptionHandler;
+                h1.ExceptionHandler = a1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"HydrationContextExceptionHandler END (OK)");
+            Assert.Pass("HydrationContextExceptionHandler");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSIDictionaryExtensions.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSIDictionaryExtensions.cs
new file mode 100755 (executable)
index 0000000..7f18ef1
--- /dev/null
@@ -0,0 +1,51 @@
+using NUnit.Framework;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/IDictionaryExtensions")]
+    internal class PublicIDictionaryExtensionsTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        //[Test]
+        //[Category("P1")]
+        //[Description("HydrationContext Values")]
+        //[Property("SPEC", "Tizen.NUI.HydrationContext.Values A")]
+        //[Property("SPEC_URL", "-")]
+        //[Property("CRITERIA", "PRW")]
+        //public void IDictionaryExtensionsAddRange()
+        //{
+        //    tlog.Debug(tag, $"HydrationContextValues START");
+
+        //    try
+        //    {
+        //        IDictionary<string, string> dic = new Dictionary<string, string>();
+        //        IEnumerable<KeyValuePair<string, string>> keyValuePairs = new IEnumerable<KeyValuePair<string, string>>();
+        //        IDictionaryExtensions.AddRange<string, string>(dic, keyValuePairs);
+        //    }
+        //    catch (Exception e)
+        //    {
+        //        Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+        //        Assert.Fail("Caught Exception" + e.ToString());
+        //    }
+
+        //    tlog.Debug(tag, $"HydrationContextValues END (OK)");
+        //    Assert.Pass("HydrationContextValues");
+        //}
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSMarkupExpressionParser.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSMarkupExpressionParser.cs
new file mode 100755 (executable)
index 0000000..09ef78e
--- /dev/null
@@ -0,0 +1,157 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/MarkupExpressionParser")]
+    internal class PublicMarkupExpressionParserTest
+    {
+        private const string tag = "NUITEST";
+        private static MarkupExpressionParserImplement m1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            m1 = new MarkupExpressionParserImplement();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            m1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        private class MarkupExpressionParserImplement : MarkupExpressionParser
+        {
+            protected override void SetPropertyValue(string prop, string strValue, object value, IServiceProvider serviceProvider)
+            {
+                return;
+            }
+
+            public void CallHandleProperty()
+            {
+                IServiceProviderImplement serviceProviderImplement = new IServiceProviderImplement();
+                string s1 = new string('a', 1);
+                HandleProperty("length", serviceProviderImplement, ref s1, true);
+            }
+
+            public void CallGetNextPiece()
+            {
+                string s1 = new string('a', 4);
+
+                GetNextPiece(ref s1, out char next);
+            }
+        }
+
+        public class IServiceProviderImplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MarkupExpressionParser ParseExpression")]
+        [Property("SPEC", "Tizen.NUI.MarkupExpressionParser.ParseExpression M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void MarkupExpressionParserParseExpression()
+        {
+            tlog.Debug(tag, $"MarkupExpressionParserParseExpression START");
+
+            try
+            {
+                string s1 = new string('a', 4);
+
+                IServiceProviderImplement serviceProviderImplement = new IServiceProviderImplement();
+                m1.ParseExpression(ref s1, serviceProviderImplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"MarkupExpressionParserParseExpression END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MarkupExpressionParser MatchMarkup")]
+        [Property("SPEC", "Tizen.NUI.MarkupExpressionParser.MatchMarkup M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void MarkupExpressionParserMatchMarkup()
+        {
+            tlog.Debug(tag, $"MarkupExpressionParserMatchMarkup START");
+
+            try
+            {
+                string s1 = new string('a', 1);
+                MarkupExpressionParser.MatchMarkup(out s1, "a+b", out int i1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"MarkupExpressionParserMatchMarkup END (OK)");
+            Assert.Pass("MarkupExpressionParserMatchMarkup");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MarkupExpressionParser HandleProperty")]
+        [Property("SPEC", "Tizen.NUI.MarkupExpressionParser.HandleProperty M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void MarkupExpressionParserHandleProperty()
+        {
+            tlog.Debug(tag, $"MarkupExpressionParserHandleProperty START");
+
+            try
+            {
+                m1.CallHandleProperty();
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"MarkupExpressionParserHandleProperty END (OK)");
+            Assert.Pass("MarkupExpressionParserHandleProperty");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MarkupExpressionParser GetNextPiece")]
+        [Property("SPEC", "Tizen.NUI.MarkupExpressionParser.GetNextPiece M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void MarkupExpressionParserGetNextPiece()
+        {
+            tlog.Debug(tag, $"MarkupExpressionParserGetNextPiece START");
+
+            try
+            {
+                m1.CallGetNextPiece();
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"MarkupExpressionParserGetNextPiece END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSMarkupExtensionParser.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSMarkupExtensionParser.cs
new file mode 100755 (executable)
index 0000000..04243cc
--- /dev/null
@@ -0,0 +1,63 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/MarkupExtensionParser")]
+    internal class PublicMarkupExtensionParserTest
+    {
+        private const string tag = "NUITEST";
+        private static MarkupExtensionParser m1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            m1 = new MarkupExtensionParser();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            m1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        private class IServiceProviderImplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("MarkupExtensionParser Parse")]
+        [Property("SPEC", "Tizen.NUI.MarkupExtensionParser.Parse M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void MarkupExtensionParserParse()
+        {
+            tlog.Debug(tag, $"MarkupExtensionParserParse START");
+
+            try
+            {
+                string s1 = new string('a', 4);
+                IServiceProviderImplement serviceProviderImplement = new IServiceProviderImplement();
+                m1.Parse("myMatch", ref s1, serviceProviderImplement);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"MarkupExtensionParserParse END (OK)");
+            Assert.Pass("MarkupExtensionParserParse");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSNamescopingVisitor.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSNamescopingVisitor.cs
new file mode 100755 (executable)
index 0000000..f02f9fd
--- /dev/null
@@ -0,0 +1,382 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/NamescopingVisitor")]
+    internal class PublicNamescopingVisitorTest
+    {
+        private const string tag = "NUITEST";
+        private static NamescopingVisitor n1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            HydrationContext context = new HydrationContext();
+            NamescopingVisitor n1 = new NamescopingVisitor(context);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            n1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor NamescopingVisitor")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.NamescopingVisitor C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void NamescopingVisitorConstructor()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorConstructor START");
+
+            HydrationContext context = new HydrationContext();
+
+            NamescopingVisitor namescoping = new NamescopingVisitor(context);
+
+            tlog.Debug(tag, $"NamescopingVisitorConstructor END (OK)");
+            Assert.Pass("NamescopingVisitorConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor VisitingMode")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.VisitingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorVisitingMode()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisitingMode START");
+
+            try
+            {
+                TreeVisitingMode t1 = n1.VisitingMode;
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisitingMode END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor StopOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.StopOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorStopOnDataTemplate()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorStopOnDataTemplate START");
+
+            try
+            {
+                bool b1 = n1.StopOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorStopOnDataTemplate END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor StopOnResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.StopOnResourceDictionary A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorStopOnResourceDictionary()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorStopOnResourceDictionary START");
+
+            try
+            {
+                bool b1 = n1.StopOnResourceDictionary;
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorStopOnResourceDictionary END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor VisitNodeOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.VisitNodeOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorVisitNodeOnDataTemplate()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                bool b1 = n1.VisitNodeOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisitNodeOnDataTemplate END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        public class INodeImplement : INode
+        {
+            public List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor SkipChildren")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.SkipChildren M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorSkipChildren()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorSkipChildren START");
+
+            try
+            {
+                INodeImplement nodeImplement = new INodeImplement();
+                INodeImplement parentNode = new INodeImplement();
+
+                n1.SkipChildren(nodeImplement, parentNode);
+
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorSkipChildren END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                return null;
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                return "mynamespaceName";
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                return "myPrefix";
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor IsResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.IsResourceDictionary M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorIsResourceDictionary()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorIsResourceDictionary START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode e1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                bool b1 = n1.IsResourceDictionary(e1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorIsResourceDictionary END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        public class RootNodeImplement : RootNode
+        {
+            public RootNodeImplement(XmlType xmlType, IXmlNamespaceResolver nsResolver) : base(xmlType, nsResolver)
+            {
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit1()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                object o1 = new object();
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ValueNode node = new ValueNode(o1, i1);
+
+                INodeImplement parentNode = new INodeImplement();
+                n1.Visit(node, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit2()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                INodeImplement parentNode = new INodeImplement();
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                MarkupNode markupnode = new MarkupNode("markup", i1);
+                n1.Visit(markupnode, parentNode);
+
+
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit3()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                INodeImplement parentNode = new INodeImplement();
+
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                ElementNode e1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                n1.Visit(e1, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit4()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+
+                INodeImplement parentNode = new INodeImplement();
+
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+                RootNodeImplement rootNode = new RootNodeImplement(xmlType, i1);
+                n1.Visit(rootNode, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit5()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                INodeImplement parentNode = new INodeImplement();
+
+                IList<INode> nodes = null;
+                ListNode li = new ListNode(nodes, i1);
+                n1.Visit(li, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSPruneIgnoredNodesVisitor.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSPruneIgnoredNodesVisitor.cs
new file mode 100755 (executable)
index 0000000..e921072
--- /dev/null
@@ -0,0 +1,314 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/PruneIgnoredNodesVisitor")]
+    internal class PublicPruneIgnoredNodesVisitorTest
+    {
+        private const string tag = "NUITEST";
+        private static PruneIgnoredNodesVisitor p1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            p1 = new PruneIgnoredNodesVisitor();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            p1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("PruneIgnoredNodesVisitor VisitingMode")]
+        [Property("SPEC", "Tizen.NUI.PruneIgnoredNodesVisitor.VisitingMode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void PruneIgnoredNodesVisitorVisitingMode()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisitingMode START");
+
+            try
+            {
+                TreeVisitingMode t1 = p1.VisitingMode;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"PruneIgnoredNodesVisitorVisitingMode END (OK)");
+            Assert.Pass("PruneIgnoredNodesVisitorVisitingMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor StopOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.StopOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorStopOnDataTemplate()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorStopOnDataTemplate START");
+
+            try
+            {
+                bool b1 = p1.StopOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NamescopingVisitorStopOnDataTemplate END (OK)");
+            Assert.Pass("NamescopingVisitorStopOnDataTemplate");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor StopOnResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.StopOnResourceDictionary A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorStopOnResourceDictionary()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorStopOnResourceDictionary START");
+
+            try
+            {
+                bool b1 = p1.StopOnResourceDictionary;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NamescopingVisitorStopOnResourceDictionary END (OK)");
+            Assert.Pass("NamescopingVisitorStopOnResourceDictionary");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor VisitNodeOnDataTemplate")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.VisitNodeOnDataTemplate A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NamescopingVisitorVisitNodeOnDataTemplate()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisitNodeOnDataTemplate START");
+
+            try
+            {
+                bool b1 = p1.VisitNodeOnDataTemplate;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NamescopingVisitorVisitNodeOnDataTemplate END (OK)");
+            Assert.Pass("NamescopingVisitorVisitNodeOnDataTemplate");
+        }
+
+        public class INodeImplement : INode
+        {
+            public global::System.Collections.Generic.List<string> IgnorablePrefixes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public global::System.Xml.IXmlNamespaceResolver NamespaceResolver => throw new NotImplementedException();
+
+            public INode Parent { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+                throw new NotImplementedException();
+            }
+
+            public INode Clone()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor SkipChildren")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.SkipChildren M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorSkipChildren()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorSkipChildren START");
+
+            try
+            {
+                INodeImplement node = new INodeImplement();
+                INodeImplement nodeParent = new INodeImplement();
+                bool b1 = p1.SkipChildren(node, nodeParent);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NamescopingVisitorSkipChildren END (OK)");
+            Assert.Pass("NamescopingVisitorSkipChildren");
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                throw new NotImplementedException();
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor IsResourceDictionary")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.IsResourceDictionary M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorIsResourceDictionary()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorIsResourceDictionary START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                bool b1 = p1.IsResourceDictionary(n1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NamescopingVisitorIsResourceDictionary END (OK)");
+            Assert.Pass("NamescopingVisitorIsResourceDictionary");
+        }
+
+        public class RootNodeImplement : RootNode
+        {
+            public RootNodeImplement(XmlType xmlType, IXmlNamespaceResolver nsResolver) : base(xmlType, nsResolver)
+            {
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit1()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+                ElementNode n1 = new ElementNode(xmlType, "myNameSpace", i1);
+
+                INodeImplement parentNode = new INodeImplement();
+                p1.Visit(n1, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit2()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                IList<XmlType> list = null;
+                XmlType xmlType = new XmlType("myNameSpace", "myName", list);
+
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+
+                INodeImplement parentNode = new INodeImplement();
+
+                RootNodeImplement rootNode = new RootNodeImplement(xmlType, i1);
+                p1.Visit(rootNode, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NamescopingVisitor Visit")]
+        [Property("SPEC", "Tizen.NUI.NamescopingVisitor.Visit M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void NamescopingVisitorVisit3()
+        {
+            tlog.Debug(tag, $"NamescopingVisitorVisit START");
+
+            try
+            {
+                IXmlNamespaceResolverImplement i1 = new IXmlNamespaceResolverImplement();
+
+                INodeImplement parentNode = new INodeImplement();
+                IList<INode> nodes = null;
+                ListNode li = new ListNode(nodes, i1);
+                p1.Visit(li, parentNode);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"NamescopingVisitorVisit END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSReflectionExtensions.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/internal/Xaml/TSReflectionExtensions.cs
new file mode 100755 (executable)
index 0000000..bf17783
--- /dev/null
@@ -0,0 +1,333 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Binding.Internals;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("internal/Xaml/ReflectionExtensions")]
+    internal class PublicReflectionExtensionsTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        private class TypeImplement : Type
+        {
+            public override global::System.Reflection.Assembly Assembly => throw new NotImplementedException();
+
+            public override string AssemblyQualifiedName => throw new NotImplementedException();
+
+            public override Type BaseType => throw new NotImplementedException();
+
+            public override string FullName => throw new NotImplementedException();
+
+            public override Guid GUID => throw new NotImplementedException();
+
+            public override global::System.Reflection.Module Module => throw new NotImplementedException();
+
+            public override string Namespace => throw new NotImplementedException();
+
+            public override Type UnderlyingSystemType => throw new NotImplementedException();
+
+            public override string Name => throw new NotImplementedException();
+
+            public override global::System.Reflection.ConstructorInfo[] GetConstructors(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override object[] GetCustomAttributes(bool inherit)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override object[] GetCustomAttributes(Type attributeType, bool inherit)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override Type GetElementType()
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.EventInfo GetEvent(string name, global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.EventInfo[] GetEvents(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.FieldInfo GetField(string name, global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.FieldInfo[] GetFields(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override Type GetInterface(string name, bool ignoreCase)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override Type[] GetInterfaces()
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.MemberInfo[] GetMembers(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.MethodInfo[] GetMethods(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override Type GetNestedType(string name, global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override Type[] GetNestedTypes(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override global::System.Reflection.PropertyInfo[] GetProperties(global::System.Reflection.BindingFlags bindingAttr)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override object InvokeMember(string name, global::System.Reflection.BindingFlags invokeAttr, global::System.Reflection.Binder binder, object target, object[] args, global::System.Reflection.ParameterModifier[] modifiers, global::System.Globalization.CultureInfo culture, string[] namedParameters)
+            {
+                throw new NotImplementedException();
+            }
+
+            public override bool IsDefined(Type attributeType, bool inherit)
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override global::System.Reflection.TypeAttributes GetAttributeFlagsImpl()
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override global::System.Reflection.ConstructorInfo GetConstructorImpl(global::System.Reflection.BindingFlags bindingAttr, global::System.Reflection.Binder binder, global::System.Reflection.CallingConventions callConvention, Type[] types, global::System.Reflection.ParameterModifier[] modifiers)
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override global::System.Reflection.MethodInfo GetMethodImpl(string name, global::System.Reflection.BindingFlags bindingAttr, global::System.Reflection.Binder binder, global::System.Reflection.CallingConventions callConvention, Type[] types, global::System.Reflection.ParameterModifier[] modifiers)
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override global::System.Reflection.PropertyInfo GetPropertyImpl(string name, global::System.Reflection.BindingFlags bindingAttr, global::System.Reflection.Binder binder, Type returnType, Type[] types, global::System.Reflection.ParameterModifier[] modifiers)
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override bool HasElementTypeImpl()
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override bool IsArrayImpl()
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override bool IsByRefImpl()
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override bool IsCOMObjectImpl()
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override bool IsPointerImpl()
+            {
+                throw new NotImplementedException();
+            }
+
+            protected override bool IsPrimitiveImpl()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReflectionExtensions GetField")]
+        [Property("SPEC", "Tizen.NUI.ReflectionExtensions.GetField M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ReflectionExtensionsGetField()
+        {
+            tlog.Debug(tag, $"ReflectionExtensionsGetField START");
+
+            try
+            {
+                TypeImplement type = new TypeImplement();
+
+                ReflectionExtensions.GetField(type, "myName");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ReflectionExtensionsGetField END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReflectionExtensions GetFields")]
+        [Property("SPEC", "Tizen.NUI.ReflectionExtensions.GetFields M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ReflectionExtensionsGetFields()
+        {
+            tlog.Debug(tag, $"ReflectionExtensionsGetFields START");
+
+            try
+            {
+                TypeImplement type = new TypeImplement();
+
+                ReflectionExtensions.GetFields(type);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ReflectionExtensionsGetFields END (OK)");
+            Assert.Pass("ReflectionExtensionsGetFields");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReflectionExtensions GetProperties")]
+        [Property("SPEC", "Tizen.NUI.ReflectionExtensions.GetProperties M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ReflectionExtensionsGetProperties()
+        {
+            tlog.Debug(tag, $"ReflectionExtensionsGetProperties START");
+
+            try
+            {
+                TypeImplement type = new TypeImplement();
+
+                ReflectionExtensions.GetProperties(type);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ReflectionExtensionsGetProperties END (OK)");
+            Assert.Pass("ReflectionExtensionsGetProperties");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReflectionExtensions GetProperty")]
+        [Property("SPEC", "Tizen.NUI.ReflectionExtensions.GetProperty M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ReflectionExtensionsGetProperty()
+        {
+            tlog.Debug(tag, $"ReflectionExtensionsGetProperty START");
+
+            try
+            {
+                TypeImplement type = new TypeImplement();
+
+                ReflectionExtensions.GetProperty(type, "myName");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ReflectionExtensionsGetProperty END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReflectionExtensions IsAssignableFrom")]
+        [Property("SPEC", "Tizen.NUI.ReflectionExtensions.IsAssignableFrom M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ReflectionExtensionsIsAssignableFrom()
+        {
+            tlog.Debug(tag, $"ReflectionExtensionsIsAssignableFrom START");
+
+            try
+            {
+                TypeImplement type = new TypeImplement();
+                TypeImplement c = new TypeImplement();
+
+                ReflectionExtensions.IsAssignableFrom(type, c);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ReflectionExtensionsIsAssignableFrom END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReflectionExtensions IsInstanceOfType")]
+        [Property("SPEC", "Tizen.NUI.ReflectionExtensions.IsInstanceOfType M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ReflectionExtensionsIsInstanceOfType()
+        {
+            tlog.Debug(tag, $"ReflectionExtensionsIsInstanceOfType START");
+
+            try
+            {
+                TypeImplement type = new TypeImplement();
+                object o1 = new object();
+
+                ReflectionExtensions.IsInstanceOfType(type, o1);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ReflectionExtensionsIsInstanceOfType END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
index ccdce73..03fc4cc 100755 (executable)
@@ -11,7 +11,7 @@ namespace Tizen.NUI.Devel.Tests
     using tlog = Tizen.Log;
 
     [TestFixture]
-    [Description("public/Common/ImageLoading")]
+    [Description("public/Images/ImageLoading")]
     public class PublicImageLoadingTest
     {
         private const string tag = "NUITEST";
index 0f01b21..3cd9df7 100755 (executable)
@@ -11,7 +11,7 @@ namespace Tizen.NUI.Devel.Tests
     using tlog = Tizen.Log;
 
     [TestFixture]
-    [Description("public/Common/NativeImageSource")]
+    [Description("public/Images/NativeImageSource")]
     public class PublicNativeImageSourceTest
     {
         private const string tag = "NUITEST";
@@ -49,24 +49,24 @@ namespace Tizen.NUI.Devel.Tests
 
         [Test]
         [Category("P1")]
-        [Description("NativeImageSource Url.")]
-        [Property("SPEC", "Tizen.NUI.NativeImageSource.Url A")]
+        [Description("NativeImageSource GenerateUrl.")]
+        [Property("SPEC", "Tizen.NUI.NativeImageSource.GenerateUrl M")]
         [Property("SPEC_URL", "-")]
         [Property("CRITERIA", "PRW")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
-        public void NativeImageSourceUrl()
+        public void NativeImageSourceGenerateUrl()
         {
-            tlog.Debug(tag, $"NativeImageSourceUrl START");
+            tlog.Debug(tag, $"NativeImageSourceGenerateUrl START");
 
             var testingTarget = new NativeImageSource(100, 50, NativeImageSource.ColorDepth.Bits16);
             Assert.IsNotNull(testingTarget, "Can't create success object NativeImageSource");
             Assert.IsInstanceOf<NativeImageSource>(testingTarget, "Should be an instance of NativeImageSource type.");
 
-            var result = testingTarget.Url;
+            var result = testingTarget.GenerateUrl();
             Assert.IsNotNull(result);
 
             testingTarget.Dispose();
-            tlog.Debug(tag, $"NativeImageSourceUrl END (OK)");
+            tlog.Debug(tag, $"NativeImageSourceGenerateUrl END (OK)");
         }
 
         [Test]
index 39f68f0..3c4b2d5 100755 (executable)
@@ -11,7 +11,7 @@ namespace Tizen.NUI.Devel.Tests
     using tlog = Tizen.Log;
 
     [TestFixture]
-    [Description("public/Common/PixelBuffer")]
+    [Description("public/Images/PixelBuffer")]
     public class PublicPixelBufferTest
     {
         private const string tag = "NUITEST";
index 0fe77b4..5ce7d54 100755 (executable)
@@ -11,7 +11,7 @@ namespace Tizen.NUI.Devel.Tests
     using tlog = Tizen.Log;
 
     [TestFixture]
-    [Description("public/Common/PixelData")]
+    [Description("public/Images/PixelData")]
     public class PublicPixelDataTest
     {
         private const string tag = "NUITEST";
@@ -78,14 +78,14 @@ namespace Tizen.NUI.Devel.Tests
 
         [Test]
         [Category("P1")]
-        [Description("PixelData Url.")]
-        [Property("SPEC", "Tizen.NUI.PixelData.Url A")]
+        [Description("PixelData GenerateUrl.")]
+        [Property("SPEC", "Tizen.NUI.PixelData.GenerateUrl M")]
         [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRW")]
+        [Property("CRITERIA", "MR")]
         [Property("AUTHOR", "guowei.wang@samsung.com")]
         public void PixelDataUrl()
         {
-            tlog.Debug(tag, $"PixelDataUrl START");
+            tlog.Debug(tag, $"PixelDataGenerateUrl START");
 
             byte[] buffer = new byte[1024];
 
@@ -93,12 +93,12 @@ namespace Tizen.NUI.Devel.Tests
             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
             Assert.IsInstanceOf<PixelData>(testingTarget, "Should be an instance of PixelData type.");
 
-            var result = testingTarget.Url;
+            var result = testingTarget.GenerateUrl();
             Assert.IsNotNull(result);
 
             buffer = null;
             testingTarget.Dispose();
-            tlog.Debug(tag, $"PixelDataUrl END (OK)");
+            tlog.Debug(tag, $"PixelDataGenerateUrl END (OK)");
         }
 
         [Test]
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSApplicationResourcePathExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSApplicationResourcePathExtension.cs
new file mode 100755 (executable)
index 0000000..4bc812f
--- /dev/null
@@ -0,0 +1,106 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/ApplicationResourcePathExtension ")]
+    internal class PublicApplicationResourcePathExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private ApplicationResourcePathExtension a1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            a1 = new ApplicationResourcePathExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            a1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplicationResourcePathExtension ApplicationResourcePathExtension")]
+        [Property("SPEC", "Tizen.NUI.ApplicationResourcePathExtension.ApplicationResourcePathExtension C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void ApplicationResourcePathExtensionConstructor()
+        {
+            tlog.Debug(tag, $"ApplicationResourcePathExtensionConstructor START");
+
+            ApplicationResourcePathExtension applicationResourcePathExtension = new ApplicationResourcePathExtension();
+
+            tlog.Debug(tag, $"ApplicationResourcePathExtensionConstructor END (OK)");
+            Assert.Pass("ApplicationResourcePathExtensionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplicationResourcePathExtension FilePath ")]
+        [Property("SPEC", "Tizen.NUI.ApplicationResourcePathExtension.FilePath A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ApplicationResourcePathExtensionFilePath()
+        {
+            tlog.Debug(tag, $"ApplicationResourcePathExtensionFilePath START");
+
+            try
+            {
+                string s1 = a1.FilePath;
+                a1.FilePath = s1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplicationResourcePathExtensionFilePath END (OK)");
+            Assert.Pass("ApplicationResourcePathExtensionFilePath");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ApplicationResourcePathExtension ProvideValue ")]
+        [Property("SPEC", "Tizen.NUI.ApplicationResourcePathExtension.ProvideValue M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ApplicationResourcePathExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"ApplicationResourcePathExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                a1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ApplicationResourcePathExtensionProvideValue END (OK)");
+            Assert.Pass("ApplicationResourcePathExtensionProvideValue");
+        }
+
+
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSArrayExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSArrayExtension.cs
new file mode 100755 (executable)
index 0000000..5b2690a
--- /dev/null
@@ -0,0 +1,130 @@
+using NUnit.Framework;
+using System;
+using System.Collections;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/ArrayExtension")]
+    internal class PublicArrayExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static ArrayExtension a1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            a1 = new ArrayExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            a1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ArrayExtension ArrayExtension")]
+        [Property("SPEC", "Tizen.NUI.ArrayExtension.ArrayExtension C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void ArrayExtensionConstructor()
+        {
+            tlog.Debug(tag, $"ArrayExtensionConstructor START");
+
+            ArrayExtension arrayExtension = new ArrayExtension();
+
+            tlog.Debug(tag, $"ArrayExtensionConstructor END (OK)");
+            Assert.Pass("ArrayExtensionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ArrayExtension Items")]
+        [Property("SPEC", "Tizen.NUI.ArrayExtension.Items A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ArrayExtensionItems()
+        {
+            tlog.Debug(tag, $"ArrayExtensionItems START");
+
+            try
+            {
+                IList i1 = a1.Items;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ArrayExtensionItems END (OK)");
+            Assert.Pass("ArrayExtensionItems");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ArrayExtension Type")]
+        [Property("SPEC", "Tizen.NUI.ArrayExtension.Type A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ArrayExtensionType()
+        {
+            tlog.Debug(tag, $"ArrayExtensionType START");
+
+            try
+            {
+                Type t1 = a1.Type;
+                a1.Type = t1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ArrayExtensionType END (OK)");
+            Assert.Pass("ArrayExtensionType");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ArrayExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.ArrayExtension.ProvideValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ArrayExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"ArrayExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                a1.Type = typeof(string);
+
+                a1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ArrayExtensionProvideValue END (OK)");
+            Assert.Pass("ArrayExtensionProvideValue");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSBindingExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSBindingExtension.cs
new file mode 100755 (executable)
index 0000000..fe73517
--- /dev/null
@@ -0,0 +1,298 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Binding;
+using Tizen.NUI.Binding.Internals;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/BindingExtension")]
+    internal class PublicBindingExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private BindingExtension b1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            b1 = new BindingExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            b1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension BindingExtension")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.BindingExtension C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void BindingExtensionConstructor()
+        {
+            tlog.Debug(tag, $"BindingExtensionConstructor START");
+
+            BindingExtension binding = new BindingExtension();
+
+            tlog.Debug(tag, $"BindingExtensionConstructor END (OK)");
+            Assert.Pass("BindingExtensionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension Path")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.Path A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionPath()
+        {
+            tlog.Debug(tag, $"BindingExtensionPath START");
+
+            try
+            {
+                string s1 = b1.Path;
+                b1.Path = s1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionPath END (OK)");
+            Assert.Pass("BindingExtensionPath");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension Mode")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.Mode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionMode()
+        {
+            tlog.Debug(tag, $"BindingExtensionMode START");
+
+            try
+            {
+                BindingMode tmp = b1.Mode;
+                b1.Mode = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionMode END (OK)");
+            Assert.Pass("BindingExtensionMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension Converter")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.Converter A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionConverter()
+        {
+            tlog.Debug(tag, $"BindingExtensionConverter START");
+
+            try
+            {
+                IValueConverter tmp = b1.Converter;
+                b1.Converter = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionConverter END (OK)");
+            Assert.Pass("BindingExtensionConverter");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension ConverterParameter")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.ConverterParameter A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionConverterParameter()
+        {
+            tlog.Debug(tag, $"BindingExtensionConverterParameter START");
+
+            try
+            {
+                object tmp = b1.ConverterParameter;
+                b1.ConverterParameter = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionConverterParameter END (OK)");
+            Assert.Pass("BindingExtensionConverterParameter");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension StringFormat")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.StringFormat A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionStringFormat()
+        {
+            tlog.Debug(tag, $"BindingExtensionStringFormat START");
+
+            try
+            {
+                string tmp = b1.StringFormat;
+                b1.StringFormat = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionStringFormat END (OK)");
+            Assert.Pass("BindingExtensionStringFormat");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension Source")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.Source A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionSource()
+        {
+            tlog.Debug(tag, $"BindingExtensionSource START");
+
+            try
+            {
+                object tmp = b1.Source;
+                b1.Source = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionSource END (OK)");
+            Assert.Pass("BindingExtensionSource");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension UpdateSourceEventName")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.UpdateSourceEventName A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionUpdateSourceEventName()
+        {
+            tlog.Debug(tag, $"BindingExtensionUpdateSourceEventName START");
+
+            try
+            {
+                string tmp = b1.UpdateSourceEventName;
+                b1.UpdateSourceEventName = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionUpdateSourceEventName END (OK)");
+            Assert.Pass("BindingExtensionUpdateSourceEventName");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension TargetNullValue")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.TargetNullValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionTargetNullValue()
+        {
+            tlog.Debug(tag, $"BindingExtensionTargetNullValue START");
+
+            try
+            {
+                object tmp = b1.TargetNullValue;
+                b1.TargetNullValue = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionTargetNullValue END (OK)");
+            Assert.Pass("BindingExtensionTargetNullValue");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension FallbackValue")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.FallbackValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionFallbackValue()
+        {
+            tlog.Debug(tag, $"BindingExtensionFallbackValue START");
+
+            try
+            {
+                object tmp = b1.FallbackValue;
+                b1.FallbackValue = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionFallbackValue END (OK)");
+            Assert.Pass("BindingExtensionFallbackValue");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("BindingExtension TypedBinding")]
+        [Property("SPEC", "Tizen.NUI.BindingExtension.TypedBinding A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void BindingExtensionTypedBinding()
+        {
+            tlog.Debug(tag, $"BindingExtensionTypedBinding START");
+
+            try
+            {
+                TypedBindingBase tmp = b1.TypedBinding;
+                b1.TypedBinding = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"BindingExtensionTypedBinding END (OK)");
+            Assert.Pass("BindingExtensionTypedBinding");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSDynamicResourceExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSDynamicResourceExtension.cs
new file mode 100755 (executable)
index 0000000..6c93f57
--- /dev/null
@@ -0,0 +1,88 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/DynamicResourceExtension")]
+    internal class PublicDynamicResourceExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static DynamicResourceExtension d1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            d1 = new DynamicResourceExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            d1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DynamicResourceExtension Key")]
+        [Property("SPEC", "Tizen.NUI.DynamicResourceExtension.Key A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void DynamicResourceExtensionKey()
+        {
+            tlog.Debug(tag, $"DynamicResourceExtensionKey START");
+
+            try
+            {
+                string tmp = d1.Key;
+                d1.Key = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"DynamicResourceExtensionKey END (OK)");
+            Assert.Pass("DynamicResourceExtensionKey");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("DynamicResourceExtension Key")]
+        [Property("SPEC", "Tizen.NUI.DynamicResourceExtension.Key A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void DynamicResourceExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"DynamicResourceExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                d1.Key = "myKey";
+                d1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"DynamicResourceExtensionProvideValue END (OK)");
+            Assert.Pass("DynamicResourceExtensionProvideValue");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSNUIResourcePathExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSNUIResourcePathExtension.cs
new file mode 100755 (executable)
index 0000000..509b956
--- /dev/null
@@ -0,0 +1,104 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/NUIResourcePathExtension")]
+    internal class PublicNUIResourcePathExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static NUIResourcePathExtension n1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            n1 = new NUIResourcePathExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            n1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NUIResourcePathExtension NUIResourcePathExtension")]
+        [Property("SPEC", "Tizen.NUI.NUIResourcePathExtension.NUIResourcePathExtension C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void NUIResourcePathExtensionConstructor()
+        {
+            tlog.Debug(tag, $"NUIResourcePathExtensionConstructor START");
+
+            NUIResourcePathExtension nUIResourcePathExtension = new NUIResourcePathExtension();
+
+            tlog.Debug(tag, $"NUIResourcePathExtensionConstructor END (OK)");
+            Assert.Pass("NUIResourcePathExtensionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NUIResourcePathExtension FilePath")]
+        [Property("SPEC", "Tizen.NUI.NUIResourcePathExtension.FilePath A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NUIResourcePathExtensionFilePath()
+        {
+            tlog.Debug(tag, $"NUIResourcePathExtensionFilePath START");
+
+            try
+            {
+                string tmp = n1.FilePath;
+                n1.FilePath = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NUIResourcePathExtensionFilePath END (OK)");
+            Assert.Pass("NUIResourcePathExtensionFilePath");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NUIResourcePathExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.NUIResourcePathExtension.ProvideValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NUIResourcePathExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"NUIResourcePathExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                n1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NUIResourcePathExtensionProvideValue END (OK)");
+            Assert.Pass("NUIResourcePathExtensionProvideValue");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSNullExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSNullExtension.cs
new file mode 100755 (executable)
index 0000000..db7b410
--- /dev/null
@@ -0,0 +1,64 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/NullExtension")]
+    internal class PublicNullExtensionTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("NullExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.NullExtension.ProvideValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void NullExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"NullExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                NullExtension n1 = new NullExtension();
+
+                n1.ProvideValue(serviceProviderimplement);
+
+                n1 = null;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"NullExtensionProvideValue END (OK)");
+            Assert.Pass("NullExtensionProvideValue");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSReferenceExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSReferenceExtension.cs
new file mode 100755 (executable)
index 0000000..881d92d
--- /dev/null
@@ -0,0 +1,86 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/ReferenceExtension")]
+    internal class PublicReferenceExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static ReferenceExtension r1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            r1 = new ReferenceExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            r1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReferenceExtension Name")]
+        [Property("SPEC", "Tizen.NUI.ReferenceExtension.Name A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ReferenceExtensionName()
+        {
+            tlog.Debug(tag, $"ReferenceExtensionName START");
+
+            try
+            {
+                string tmp = r1.Name;
+                r1.Name = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"ReferenceExtensionName END (OK)");
+            Assert.Pass("ReferenceExtensionName");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ReferenceExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.ReferenceExtension.ProvideValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ReferenceExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"ReferenceExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                r1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ReferenceExtensionProvideValue END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSStaticExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSStaticExtension.cs
new file mode 100755 (executable)
index 0000000..344d012
--- /dev/null
@@ -0,0 +1,86 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/StaticExtension")]
+    internal class PublicStaticExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static StaticExtension s1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            s1 = new StaticExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            s1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StaticExtension Member")]
+        [Property("SPEC", "Tizen.NUI.StaticExtension.Member A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void StaticExtensionMember()
+        {
+            tlog.Debug(tag, $"StaticExtensionMember START");
+
+            try
+            {
+                string tmp = s1.Member;
+                s1.Member = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"StaticExtensionMember END (OK)");
+            Assert.Pass("StaticExtensionMember");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StaticExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.StaticExtension.ProvideValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void StaticExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"StaticExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                s1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"StaticExtensionProvideValue END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSTemplateBindingExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSTemplateBindingExtension.cs
new file mode 100755 (executable)
index 0000000..3f9147a
--- /dev/null
@@ -0,0 +1,172 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Binding;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/TemplateBindingExtension")]
+    internal class PublicTemplateBindingExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static TemplateBindingExtension t1;
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            t1 = new TemplateBindingExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            t1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TemplateBindingExtension TemplateBindingExtension")]
+        [Property("SPEC", "Tizen.NUI.TemplateBindingExtension.TemplateBindingExtension C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void TemplateBindingExtensionConstructor()
+        {
+            tlog.Debug(tag, $"TemplateBindingExtensionConstructor START");
+
+            TemplateBindingExtension templateBindingExtension = new TemplateBindingExtension();
+
+            tlog.Debug(tag, $"TemplateBindingExtensionConstructor END (OK)");
+            Assert.Pass("TemplateBindingExtensionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TemplateBindingExtension Path")]
+        [Property("SPEC", "Tizen.NUI.TemplateBindingExtension.Path A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TemplateBindingExtensionPath()
+        {
+            tlog.Debug(tag, $"TemplateBindingExtensionPath START");
+
+            try
+            {
+                string tmp = t1.Path;
+                t1.Path = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"TemplateBindingExtensionPath END (OK)");
+            Assert.Pass("TemplateBindingExtensionPath");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TemplateBindingExtension Mode")]
+        [Property("SPEC", "Tizen.NUI.TemplateBindingExtension.Mode A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TemplateBindingExtensionMode()
+        {
+            tlog.Debug(tag, $"TemplateBindingExtensionMode START");
+
+            try
+            {
+                BindingMode tmp = t1.Mode;
+                t1.Mode = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"TemplateBindingExtensionMode END (OK)");
+            Assert.Pass("TemplateBindingExtensionMode");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TemplateBindingExtension Converter")]
+        [Property("SPEC", "Tizen.NUI.TemplateBindingExtension.Converter A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TemplateBindingExtensionConverter()
+        {
+            tlog.Debug(tag, $"TemplateBindingExtensionConverter START");
+
+            try
+            {
+                IValueConverter tmp = t1.Converter;
+                t1.Converter = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"TemplateBindingExtensionConverter END (OK)");
+            Assert.Pass("TemplateBindingExtensionConverter");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TemplateBindingExtension ConverterParameter")]
+        [Property("SPEC", "Tizen.NUI.TemplateBindingExtension.ConverterParameter A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TemplateBindingExtensionConverterParameter()
+        {
+            tlog.Debug(tag, $"TemplateBindingExtensionConverterParameter START");
+
+            try
+            {
+                object tmp = t1.ConverterParameter;
+                t1.ConverterParameter = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"TemplateBindingExtensionConverterParameter END (OK)");
+            Assert.Pass("TemplateBindingExtensionConverterParameter");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TemplateBindingExtension StringFormat")]
+        [Property("SPEC", "Tizen.NUI.TemplateBindingExtension.StringFormat A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TemplateBindingExtensionStringFormat()
+        {
+            tlog.Debug(tag, $"TemplateBindingExtensionStringFormat START");
+
+            try
+            {
+                string tmp = t1.StringFormat;
+                t1.StringFormat = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"TemplateBindingExtensionStringFormat END (OK)");
+            Assert.Pass("TemplateBindingExtensionStringFormat");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSTypeExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/MarkupExtensions/TSTypeExtension.cs
new file mode 100755 (executable)
index 0000000..a99b902
--- /dev/null
@@ -0,0 +1,85 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/MarkupExtensions/TypeExtension")]
+    internal class PublicTypeExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static TypeExtension t1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            t1 = new TypeExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TypeExtension TypeName")]
+        [Property("SPEC", "Tizen.NUI.TypeExtension.TypeName A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TypeExtensionTypeName()
+        {
+            tlog.Debug(tag, $"TypeExtensionTypeName START");
+
+            try
+            {
+                string tmp = t1.TypeName;
+                t1.TypeName = tmp;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"TypeExtensionTypeName END (OK)");
+            Assert.Pass("TypeExtensionTypeName");
+        }
+
+        private class IServiceProviderimplement : IServiceProvider
+        {
+            public object GetService(Type serviceType)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TypeExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.TypeExtension.ProvideValue A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TypeExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"TypeExtensionProvideValue START");
+
+            try
+            {
+                IServiceProviderimplement serviceProviderimplement = new IServiceProviderimplement();
+                t1.TypeName = "myTypeName";
+                t1.ProvideValue(serviceProviderimplement);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"TypeExtensionProvideValue END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSProvideCompiledAttribute.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSProvideCompiledAttribute.cs
new file mode 100755 (executable)
index 0000000..43b6023
--- /dev/null
@@ -0,0 +1,68 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/ProvideCompiledAttribute")]
+    internal class PublicProvideCompiledAttributeTest
+    {
+        private const string tag = "NUITEST";
+        private static ProvideCompiledAttribute p1;
+
+        [SetUp]
+        public void Init()
+        {
+            p1 = new ProvideCompiledAttribute("mytestAttribute");
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            p1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ProvideCompiledAttribute ProvideCompiledAttribute")]
+        [Property("SPEC", "Tizen.NUI.ProvideCompiledAttribute.ProvideCompiledAttribute C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void ProvideCompiledAttributeConstructor()
+        {
+            tlog.Debug(tag, $"ProvideCompiledAttributeConstructor START");
+            ProvideCompiledAttribute p2 = new ProvideCompiledAttribute("testAttribute");
+
+            p2 = null;
+            tlog.Debug(tag, $"ProvideCompiledAttributeConstructor END (OK)");
+            Assert.Pass("ProvideCompiledAttributeConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("ProvideCompiledAttribute CompiledVersion")]
+        [Property("SPEC", "Tizen.NUI.ProvideCompiledAttribute.CompiledVersion A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void ProvideCompiledAttributeCompiledVersion()
+        {
+            tlog.Debug(tag, $"ProvideCompiledAttributeCompiledVersion START");
+            try
+            {
+                string attribute = p1.CompiledVersion;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"ProvideCompiledAttributeCompiledVersion END (OK)");
+            Assert.Pass("ProvideCompiledAttributeCompiledVersion");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSStaticResourceExtension.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSStaticResourceExtension.cs
new file mode 100755 (executable)
index 0000000..fe0e806
--- /dev/null
@@ -0,0 +1,122 @@
+using NUnit.Framework;
+using System;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/StaticResourceExtension")]
+    internal class PublicStaticResourceExtensionTest
+    {
+        private const string tag = "NUITEST";
+        private static StaticResourceExtension s1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            s1 = new StaticResourceExtension();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            s1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StaticResourceExtension Key")]
+        [Property("SPEC", "Tizen.NUI.StaticResourceExtension.Key A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void StaticResourceExtensionKey()
+        {
+            tlog.Debug(tag, $"StaticResourceExtensionKey START");
+            try
+            {
+                string key = s1.Key;
+                s1.Key = key;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"StaticResourceExtensionKey END (OK)");
+            Assert.Pass("StaticResourceExtensionKey");
+        }
+
+        private class ServiceProviderImplementer : IServiceProvider
+        {
+            private static readonly object service = new object();
+
+            public object GetService(Type type)
+            {
+                return service;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StaticResourceExtension ProvideValue")]
+        [Property("SPEC", "Tizen.NUI.StaticResourceExtension.ProvideValue M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void StaticResourceExtensionProvideValue()
+        {
+            tlog.Debug(tag, $"StaticResourceExtensionProvideValue START");
+            try
+            {
+                ServiceProviderImplementer ss = new ServiceProviderImplementer();
+
+                s1.Key = "myKey";
+                s1.ProvideValue(ss);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"StaticResourceExtensionProvideValue END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        private class XmlLineInfoImplent : IXmlLineInfo
+        {
+            public int LineNumber => 16;
+
+            public int LinePosition => 8;
+
+            public bool HasLineInfo()
+            {
+                return true;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("StaticResourceExtension GetApplicationLevelResource")]
+        [Property("SPEC", "Tizen.NUI.StaticResourceExtension.GetApplicationLevelResource M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void StaticResourceExtensionGetApplicationLevelResource()
+        {
+            tlog.Debug(tag, $"StaticResourceExtensionGetApplicationLevelResource START");
+            try
+            {
+                XmlLineInfoImplent xx = new XmlLineInfoImplent();
+                s1.GetApplicationLevelResource("mykey", xx);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"StaticResourceExtensionGetApplicationLevelResource END (OK)");
+            Assert.Pass("StaticResourceExtensionGetApplicationLevelResource");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSTypeConversionAttribute.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSTypeConversionAttribute.cs
new file mode 100755 (executable)
index 0000000..8edca40
--- /dev/null
@@ -0,0 +1,67 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/TypeConversionAttribute")]
+    internal class PublicTypeConversionAttributeTest
+    {
+        private const string tag = "NUITEST";
+        private static TypeConversionAttribute t1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            Type type = typeof(string);
+            TypeConversionAttribute t1 = new TypeConversionAttribute(type);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            t1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TypeConversionAttribute TypeConversionAttribute")]
+        [Property("SPEC", "Tizen.NUI.TypeConversionAttribute.TypeConversionAttribute C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void TypeConversionAttributeConstructor()
+        {
+            tlog.Debug(tag, $"TypeConversionAttributeConstructor START");
+            Type type = typeof(string);
+            TypeConversionAttribute t2 = new TypeConversionAttribute(type);
+
+            tlog.Debug(tag, $"TypeConversionAttributeConstructor END (OK)");
+            Assert.Pass("TypeConversionAttributeConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("TypeConversionAttribute TargetType")]
+        [Property("SPEC", "Tizen.NUI.TypeConversionAttribute.TargetType A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void TypeConversionAttributeTargetType()
+        {
+            tlog.Debug(tag, $"TypeConversionAttributeTargetType START");
+            try
+            {
+                Type type = t1.TargetType;
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"TypeConversionAttributeTargetType END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSViewExtensions.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSViewExtensions.cs
new file mode 100755 (executable)
index 0000000..1fbd156
--- /dev/null
@@ -0,0 +1,116 @@
+using NUnit.Framework;
+using System;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/ViewExtensions")]
+    internal class PublicViewExtensionsTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Extensions LoadFromXaml")]
+        [Property("SPEC", "Tizen.NUI.Extensions.LoadFromXaml M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("COVPARAM", "string,Type")]
+        public void ExtensionsLoadFromXaml1()
+        {
+            tlog.Debug(tag, $"ExtensionsLoadFromXaml START");
+            try
+            {
+                Tizen.NUI.Xaml.Extensions.LoadFromXaml<string>("mystring", typeof(string));
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"ExtensionsLoadFromXaml END (OK)");
+            Assert.Pass("ExtensionsLoadFromXaml");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Extensions LoadFromXaml")]
+        [Property("SPEC", "Tizen.NUI.Extensions.LoadFromXaml M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("COVPARAM", "string,string")]
+        public void ExtensionsLoadFromXaml2()
+        {
+            tlog.Debug(tag, $"ExtensionsLoadFromXaml START");
+            try
+            {
+                Tizen.NUI.Xaml.Extensions.LoadFromXaml<string>("mystring", "/home/owner/apps_rw/Tizen.NUI.Devel.Tests/tizen-manifest.xml");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ExtensionsLoadFromXaml END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Extensions LoadObject")]
+        [Property("SPEC", "Tizen.NUI.Extensions.LoadObject M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ExtensionsLoadObject()
+        {
+            tlog.Debug(tag, $"ExtensionsLoadObject START");
+            try
+            {
+                Tizen.NUI.Xaml.Extensions.LoadObject<string>("mypath");
+
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"ExtensionsLoadObject END (OK)");
+            Assert.Pass("ExtensionsLoadObject");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Extensions LoadFromXamlFile")]
+        [Property("SPEC", "Tizen.NUI.Extensions.LoadFromXamlFile M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void ExtensionsLoadFromXamlFile()
+        {
+            tlog.Debug(tag, $"ExtensionsLoadFromXamlFile START");
+            try
+            {
+                Tizen.NUI.Xaml.Extensions.LoadFromXamlFile<string>("myview", "/home/owner/apps_rw/Tizen.NUI.Devel.Tests/tizen-manifest.xml");
+
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"ExtensionsLoadFromXamlFile END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlCompilationAttribute.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlCompilationAttribute.cs
new file mode 100755 (executable)
index 0000000..e137956
--- /dev/null
@@ -0,0 +1,95 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/XamlCompilationAttribute")]
+    internal class PublicXamlCompilationAttributeTest
+    {
+        private const string tag = "NUITEST";
+        private static XamlCompilationAttribute x1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            XamlCompilationOptions xamlCompilationOptions = new XamlCompilationOptions();
+
+            x1 = new XamlCompilationAttribute(xamlCompilationOptions);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            x1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlCompilationAttribute XamlCompilationAttribute")]
+        [Property("SPEC", "Tizen.NUI.XamlCompilationAttribute.XamlCompilationAttribute C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlCompilationAttributeConstructor()
+        {
+            tlog.Debug(tag, $"XamlCompilationAttributeConstructor START");
+
+            XamlCompilationOptions xamlCompilationOptions = new XamlCompilationOptions();
+
+            XamlCompilationAttribute x2 = new XamlCompilationAttribute(xamlCompilationOptions);
+
+            x2 = null;
+            tlog.Debug(tag, $"XamlCompilationAttributeConstructor END (OK)");
+            Assert.Pass("XamlCompilationAttributeConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlCompilationAttribute XamlCompilationOptions ")]
+        [Property("SPEC", "Tizen.NUI.XamlCompilationAttribute.XamlCompilationOptions  A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlCompilationAttributeXamlCompilationOptions()
+        {
+            tlog.Debug(tag, $"XamlCompilationAttributeXamlCompilationOptions START");
+            try
+            {
+                XamlCompilationOptions option = x1.XamlCompilationOptions;
+                x1.XamlCompilationOptions = option;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"XamlCompilationAttributeXamlCompilationOptions END (OK)");
+            Assert.Pass("XamlCompilationAttributeXamlCompilationOptions");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlCExtensions IsCompiled ")]
+        [Property("SPEC", "Tizen.NUI.XamlCExtensions.IsCompiled M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlCompilationAttributeIsCompiled()
+        {
+            tlog.Debug(tag, $"XamlCExtensionsIsCompiled START");
+            try
+            {
+                Tizen.NUI.Xaml.XamlCExtensions.IsCompiled(typeof(string));
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"XamlCExtensionsIsCompiled END (OK)");
+            Assert.Pass("XamlCExtensionsIsCompiled");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlFilePathAttribute.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlFilePathAttribute.cs
new file mode 100755 (executable)
index 0000000..d6c2414
--- /dev/null
@@ -0,0 +1,42 @@
+using NUnit.Framework;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/XamlFilePathAttribute")]
+    internal class PublicXamlFilePathAttributeTest
+    {
+        private const string tag = "NUITEST";
+
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlFilePathAttribute XamlFilePathAttribute")]
+        [Property("SPEC", "Tizen.NUI.XamlFilePathAttribute.XamlFilePathAttribute C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlFilePathAttributeConstructor()
+        {
+            tlog.Debug(tag, $"XamlFilePathAttributeConstructor START");
+
+            XamlFilePathAttribute x1 = new XamlFilePathAttribute("myPath");
+
+            tlog.Debug(tag, $"XamlFilePathAttributeConstructor END (OK)");
+            Assert.Pass("XamlFilePathAttributeConstructor");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlParseException.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlParseException.cs
new file mode 100755 (executable)
index 0000000..b7e0d25
--- /dev/null
@@ -0,0 +1,160 @@
+using NUnit.Framework;
+using System;
+using System.Xml;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/XamlParseException ")]
+    internal class PublicXamlParseExceptionTest
+    {
+        private const string tag = "NUITEST";
+        private XamlParseException xamlParseException;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            xamlParseException = new XamlParseException("myMessage");
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            xamlParseException = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        private class XmlLineInfoImplent : IXmlLineInfo
+        {
+            public int LineNumber => throw new NotImplementedException();
+
+            public int LinePosition => throw new NotImplementedException();
+
+            public bool HasLineInfo()
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlParseException XamlParseException")]
+        [Property("SPEC", "Tizen.NUI.XamlParseException.XamlParseException C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlParseExceptionConstructor1()
+        {
+            tlog.Debug(tag, $"XamlParseExceptionConstructor START");
+
+            XamlParseException x1 = new XamlParseException("myMessage");
+
+            x1 = null;
+
+            tlog.Debug(tag, $"XamlParseExceptionConstructor END (OK)");
+            Assert.Pass("XamlParseExceptionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlParseException XamlParseException")]
+        [Property("SPEC", "Tizen.NUI.XamlParseException.XamlParseException C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlParseExceptionConstructor2()
+        {
+            tlog.Debug(tag, $"XamlParseExceptionConstructor START");
+
+            XamlParseException x2 = new XamlParseException();
+
+            x2 = null;
+
+            tlog.Debug(tag, $"XamlParseExceptionConstructor END (OK)");
+            Assert.Pass("XamlParseExceptionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlParseException XamlParseException")]
+        [Property("SPEC", "Tizen.NUI.XamlParseException.XamlParseException C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlParseExceptionConstructor3()
+        {
+            tlog.Debug(tag, $"XamlParseExceptionConstructor START");
+
+            Exception e1 = new Exception();
+            XamlParseException x3 = new XamlParseException("myMessage", e1);
+
+            x3 = null;
+            tlog.Debug(tag, $"XamlParseExceptionConstructor END (OK)");
+            Assert.Pass("XamlParseExceptionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlParseException XamlParseException")]
+        [Property("SPEC", "Tizen.NUI.XamlParseException.XamlParseException C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlParseExceptionConstructor4()
+        {
+            tlog.Debug(tag, $"XamlParseExceptionConstructor START");
+
+            Exception e1 = new Exception();
+            XmlLineInfoImplent xmlLineInfoImplent = new XmlLineInfoImplent();
+            XamlParseException x4 = new XamlParseException("myMessage", xmlLineInfoImplent, e1);
+
+            x4 = null;
+
+            tlog.Debug(tag, $"XamlParseExceptionConstructor END (OK)");
+            Assert.Pass("XamlParseExceptionConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlParseException XmlInfo ")]
+        [Property("SPEC", "Tizen.NUI.XamlParseException.XmlInfo A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlParseExceptionXmlInfo()
+        {
+            tlog.Debug(tag, $"XamlParseExceptionXmlInfo START");
+            try
+            {
+                XmlLineInfoImplent xml1 = (XmlLineInfoImplent)xamlParseException.XmlInfo;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"XamlParseExceptionXmlInfo END (OK)");
+            Assert.Pass("XamlParseExceptionXmlInfo");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlParseException UnformattedMessage ")]
+        [Property("SPEC", "Tizen.NUI.XamlParseException.UnformattedMessage A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlParseExceptionUnformattedMessage()
+        {
+            tlog.Debug(tag, $"XamlParseExceptionUnformattedMessage START");
+            try
+            {
+                string s1 = xamlParseException.UnformattedMessage;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+            tlog.Debug(tag, $"XamlParseExceptionUnformattedMessage END (OK)");
+            Assert.Pass("XamlParseExceptionUnformattedMessage");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlResourceIdAttribute.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlResourceIdAttribute.cs
new file mode 100755 (executable)
index 0000000..d0b6326
--- /dev/null
@@ -0,0 +1,246 @@
+using NUnit.Framework;
+using System;
+using System.Reflection;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/XamlResourceIdAttribute ")]
+    internal class PublicXamlResourceIdAttributeTest
+    {
+        private const string tag = "NUITEST";
+        private static XamlResourceIdAttribute resourceIdAttribute;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            resourceIdAttribute = new XamlResourceIdAttribute("myId", "myPath", typeof(string));
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            resourceIdAttribute = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute XamlResourceIdAttribute")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.XamlResourceIdAttribute C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlResourceIdAttributeConstructor()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeConstructor START");
+
+            XamlResourceIdAttribute x1 = new XamlResourceIdAttribute("myId", "myPath", typeof(string));
+
+            tlog.Debug(tag, $"XamlResourceIdAttributeConstructor END (OK)");
+            Assert.Pass("XamlResourceIdAttributeConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute ResourceId")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.ResourceId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlResourceIdAttributeResourceId()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeResourceId START");
+
+            try
+            {
+                string s1 = resourceIdAttribute.ResourceId;
+                resourceIdAttribute.ResourceId = s1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlResourceIdAttributeResourceId END (OK)");
+            Assert.Pass("XamlResourceIdAttributeResourceId");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute Path")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.Path A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlResourceIdAttributePath()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributePath START");
+
+            try
+            {
+                string s1 = resourceIdAttribute.Path;
+                resourceIdAttribute.Path = s1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlResourceIdAttributePath END (OK)");
+            Assert.Pass("XamlResourceIdAttributePath");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute Type")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.Type A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlResourceIdAttributeType()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeType START");
+
+            try
+            {
+                Type t1 = resourceIdAttribute.Type;
+                resourceIdAttribute.Type = t1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlResourceIdAttributeType END (OK)");
+            Assert.Pass("XamlResourceIdAttributeType");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute GetResourceIdForType")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.GetResourceIdForType M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlResourceIdAttributeGetResourceIdForType()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetResourceIdForType START");
+
+            try
+            {
+                XamlResourceIdAttribute.GetResourceIdForType(typeof(string));
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetResourceIdForType END (OK)");
+            Assert.Pass("XamlResourceIdAttributeGetResourceIdForType");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute GetPathForType")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.GetPathForType M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlResourceIdAttributeGetPathForType()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetPathForType START");
+
+            try
+            {
+                XamlResourceIdAttribute.GetPathForType(typeof(string));
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetPathForType END (OK)");
+            Assert.Pass("XamlResourceIdAttributeGetPathForType");
+        }
+
+        private class AssemblyImplent : Assembly
+        {
+            public override object[] GetCustomAttributes(bool inherit)
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute GetTypeForResourceId")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.GetTypeForResourceId M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlResourceIdAttributeGetTypeForResourceId()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetTypeForResourceId START");
+
+            try
+            {
+                AssemblyImplent assembly = new AssemblyImplent();
+                XamlResourceIdAttribute.GetTypeForResourceId(assembly, "myResourceId");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"XamlResourceIdAttributeGetTypeForResourceId END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute GetResourceIdForPath")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.GetResourceIdForPath M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlResourceIdAttributeGetResourceIdForPath()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetResourceIdForPath START");
+
+            try
+            {
+                AssemblyImplent assembly = new AssemblyImplent();
+                XamlResourceIdAttribute.GetResourceIdForPath(assembly, "myPath");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"XamlResourceIdAttributeGetResourceIdForPath END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlResourceIdAttribute GetTypeForPath")]
+        [Property("SPEC", "Tizen.NUI.XamlResourceIdAttribute.GetTypeForPath M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlResourceIdAttributeGetTypeForPath()
+        {
+            tlog.Debug(tag, $"XamlResourceIdAttributeGetTypeForPath START");
+
+            try
+            {
+                AssemblyImplent assembly = new AssemblyImplent();
+                XamlResourceIdAttribute.GetTypeForPath(assembly, "myPath");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"XamlResourceIdAttributeGetTypeForPath END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlServiceProvider.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXamlServiceProvider.cs
new file mode 100755 (executable)
index 0000000..e785ec5
--- /dev/null
@@ -0,0 +1,778 @@
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Xml;
+using Tizen.NUI.Binding.Internals;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/XamlServiceProvider ")]
+    internal class PublicXamlServiceProviderTest
+    {
+        private const string tag = "NUITEST";
+        public XamlServiceProvider x1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            x1 = new XamlServiceProvider();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            x1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        private class INodeImplement : INode
+        {
+            public List<string> IgnorablePrefixes { get; set; }
+            public IXmlNamespaceResolver NamespaceResolver { get; }
+            public INode Parent { get; set; }
+
+            public void Accept(IXamlNodeVisitor visitor, INode parentNode)
+            {
+
+            }
+            public INode Clone()
+            {
+                return null;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider XamlServiceProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.XamlServiceProvider C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlServiceProviderConstructor1()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderConstructor START");
+
+            XamlServiceProvider xamlServiceProvider1 = new XamlServiceProvider();
+
+            tlog.Debug(tag, $"XamlServiceProviderConstructor END (OK)");
+            Assert.Pass("XamlServiceProviderConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider XamlServiceProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.XamlServiceProvider C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XamlServiceProviderConstructor2()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderConstructor START");
+
+            HydrationContext hydrationContext = new HydrationContext();
+            INodeImplement nodeImplement = new INodeImplement();
+            XamlServiceProvider xamlServiceProvider2 = new XamlServiceProvider(nodeImplement, hydrationContext);
+
+            tlog.Debug(tag, $"XamlServiceProviderConstructor END (OK)");
+            Assert.Pass("XamlServiceProviderConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider IProvideValueTarget")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.IProvideValueTarget A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderIProvideValueTarget()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderIProvideValueTarget START");
+
+            try
+            {
+                IProvideValueTarget i1 = x1.IProvideValueTarget;
+                x1.IProvideValueTarget = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderIProvideValueTarget END (OK)");
+            Assert.Pass("XamlServiceProviderIProvideValueTarget");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider IXamlTypeResolver")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.IXamlTypeResolver A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderIXamlTypeResolver()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderIXamlTypeResolver START");
+
+            try
+            {
+                IXamlTypeResolver i1 = x1.IXamlTypeResolver;
+                x1.IXamlTypeResolver = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderIXamlTypeResolver END (OK)");
+            Assert.Pass("XamlServiceProviderIXamlTypeResolver");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider IRootObjectProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.IRootObjectProvider A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderIRootObjectProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderIRootObjectProvider START");
+
+            try
+            {
+                IRootObjectProvider i1 = x1.IRootObjectProvider;
+                x1.IRootObjectProvider = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderIRootObjectProvider END (OK)");
+            Assert.Pass("XamlServiceProviderIRootObjectProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider IXmlLineInfoProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.IXmlLineInfoProvider A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderIXmlLineInfoProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderIXmlLineInfoProvider START");
+
+            try
+            {
+                IXmlLineInfoProvider i1 = x1.IXmlLineInfoProvider;
+                x1.IXmlLineInfoProvider = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderIXmlLineInfoProvider END (OK)");
+            Assert.Pass("XamlServiceProviderIXmlLineInfoProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider INameScopeProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.INameScopeProvider A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderINameScopeProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderINameScopeProvider START");
+
+            try
+            {
+                INameScopeProvider i1 = x1.INameScopeProvider;
+                x1.INameScopeProvider = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderINameScopeProvider END (OK)");
+            Assert.Pass("XamlServiceProviderINameScopeProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider IValueConverterProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.IValueConverterProvider A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderIValueConverterProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderIValueConverterProvider START");
+
+            try
+            {
+                IValueConverterProvider i1 = x1.IValueConverterProvider;
+                x1.IValueConverterProvider = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderIValueConverterProvider END (OK)");
+            Assert.Pass("XamlServiceProviderIValueConverterProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider GetService")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.GetService M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderGetService()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderGetService START");
+
+            try
+            {
+                x1.GetService(typeof(string));
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderGetService END (OK)");
+            Assert.Pass("XamlServiceProviderGetService");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider Add")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.Add M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderAdd()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderAdd START");
+
+            try
+            {
+                object o1 = new object();
+                x1.Add(typeof(string), o1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderAdd END (OK)");
+            Assert.Pass("XamlServiceProviderAdd");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider XamlValueTargetProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.XamlValueTargetProvider M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderXamlValueTargetProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderXamlValueTargetProvider START");
+
+            try
+            {
+                object o1 = new object();
+                INodeImplement node = new INodeImplement();
+                HydrationContext hydrationContext = new HydrationContext();
+                object o2 = new object();
+
+                XamlValueTargetProvider xamlValueTargetProvider = new XamlValueTargetProvider(o1, node, hydrationContext, o2);
+
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderXamlValueTargetProvider END (OK)");
+            Assert.Pass("XamlServiceProviderXamlValueTargetProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider TargetObject")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.TargetObject A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderTargetObject()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderTargetObject START");
+
+            try
+            {
+                object o1 = new object();
+                INodeImplement node = new INodeImplement();
+                HydrationContext hydrationContext = new HydrationContext();
+                object o2 = new object();
+
+                XamlValueTargetProvider xamlValueTargetProvider = new XamlValueTargetProvider(o1, node, hydrationContext, o2);
+                object object1 = xamlValueTargetProvider.TargetObject;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderTargetObject END (OK)");
+            Assert.Pass("XamlServiceProviderTargetObject");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider TargetProperty")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.TargetProperty A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderTargetProperty()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderTargetProperty START");
+
+            try
+            {
+                object o1 = new object();
+                INodeImplement node = new INodeImplement();
+                HydrationContext hydrationContext = new HydrationContext();
+                object o2 = new object();
+
+                XamlValueTargetProvider xamlValueTargetProvider = new XamlValueTargetProvider(o1, node, hydrationContext, o2);
+                object object1 = xamlValueTargetProvider.TargetProperty;
+                xamlValueTargetProvider.TargetProperty = object1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderTargetProperty END (OK)");
+            Assert.Pass("XamlServiceProviderTargetProperty");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider SimpleValueTargetProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.SimpleValueTargetProvider M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderSimpleValueTargetProvider1()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderTargetProperty START");
+
+            try
+            {
+                object o11 = new object();
+                object o12 = new object();
+                object[] o1 = { o11, o12, };
+                SimpleValueTargetProvider simpleValueTargetProvider1 = new SimpleValueTargetProvider(o1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderTargetProperty END (OK)");
+            Assert.Pass("XamlServiceProviderTargetProperty");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider SimpleValueTargetProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.SimpleValueTargetProvider M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderSimpleValueTargetProvider2()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderTargetProperty START");
+
+            try
+            {
+                object o11 = new object();
+                object o12 = new object();
+                object[] o1 = { o11, o12, };
+
+                object targetObject = new object();
+                SimpleValueTargetProvider simpleValueTargetProvider2 = new SimpleValueTargetProvider(o1, targetObject);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderTargetProperty END (OK)");
+            Assert.Pass("XamlServiceProviderTargetProperty");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider FindByName")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.FindByName M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderFindByName()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderFindByName START");
+
+            try
+            {
+                object o11 = new object();
+                object o12 = new object();
+                object[] o1 = { o11, o12, };
+
+                object targetObject = new object();
+                SimpleValueTargetProvider simpleValueTargetProvider = new SimpleValueTargetProvider(o1, targetObject);
+                simpleValueTargetProvider.FindByName("mystring");
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderFindByName END (OK)");
+            Assert.Pass("XamlServiceProviderFindByName");
+        }
+
+        public class IXmlNamespaceResolverImplement : IXmlNamespaceResolver
+        {
+            public IDictionary<string, string> GetNamespacesInScope(XmlNamespaceScope scope)
+            {
+                return null;
+            }
+
+            public string LookupNamespace(string prefix)
+            {
+                return "mySpace";
+            }
+
+            public string LookupPrefix(string namespaceName)
+            {
+                return "myPrefix";
+            }
+        }
+
+        public class AssemblyImplement : Assembly
+        {
+
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider XamlTypeResolver")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.XamlTypeResolver M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderXamlTypeResolver()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderXamlTypeResolver START");
+
+            try
+            {
+                IXmlNamespaceResolverImplement xmlNamespaceResolverImplement = new IXmlNamespaceResolverImplement();
+                AssemblyImplement currentAssembly = new AssemblyImplement();
+                XamlTypeResolver xamlTypeResolver = new XamlTypeResolver(xmlNamespaceResolverImplement, currentAssembly);
+
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderXamlTypeResolver END (OK)");
+            Assert.Pass("XamlServiceProviderXamlTypeResolver");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider RootObject")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.RootObject A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderRootObject()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderRootObject START");
+
+            try
+            {
+                object o1 = new object();
+                XamlRootObjectProvider x1 = new XamlRootObjectProvider(o1);
+                object o2 = x1.RootObject;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderRootObject END (OK)");
+            Assert.Pass("XamlServiceProviderRootObject");
+        }
+
+        public class IXmlLineInfoImplement : IXmlLineInfo
+        {
+            public int LineNumber
+            {
+                get => 1;
+                set { }
+            }
+
+
+            public int LinePosition => throw new NotImplementedException();
+
+            public bool HasLineInfo()
+            {
+                return true;
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider XmlLineInfoProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.XmlLineInfoProvider M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderXmlLineInfoProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderXmlLineInfoProvider START");
+
+            try
+            {
+                IXmlLineInfoImplement xmlLineInfo = new IXmlLineInfoImplement();
+                XmlLineInfoProvider x1 = new XmlLineInfoProvider(xmlLineInfo);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderXmlLineInfoProvider END (OK)");
+            Assert.Pass("XamlServiceProviderXmlLineInfoProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider XmlLineInfo")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.XmlLineInfo A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderXmlLineInfo()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderXmlLineInfo START");
+
+            try
+            {
+                IXmlLineInfoImplement xmlLineInfo = new IXmlLineInfoImplement();
+                XmlLineInfoProvider x1 = new XmlLineInfoProvider(xmlLineInfo);
+
+                IXmlLineInfo i1 = x1.XmlLineInfo;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderXmlLineInfo END (OK)");
+            Assert.Pass("XamlServiceProviderXmlLineInfo");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider ReferenceProvider")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.ReferenceProvider A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderReferenceProvider()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderReferenceProvider START");
+
+            try
+            {
+                INodeImplement i1 = new INodeImplement();
+                ReferenceProvider referenceProvider = new ReferenceProvider(i1);
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderReferenceProvider END (OK)");
+            Assert.Pass("XamlServiceProviderReferenceProvider");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider FindByName")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.FindByName M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderReferenceProviderFindByName()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderReferenceProviderFindByName START");
+
+            try
+            {
+                INodeImplement i1 = new INodeImplement();
+                ReferenceProvider referenceProvider = new ReferenceProvider(i1);
+                referenceProvider.FindByName("myName");
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderReferenceProviderFindByName END (OK)");
+            Assert.Pass("XamlServiceProviderReferenceProviderFindByName");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider NameScope")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.NameScope A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XamlServiceProviderNameScope()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderNameScope START");
+
+            try
+            {
+                NameScopeProvider n1 = new NameScopeProvider();
+                INameScope i1 = n1.NameScope;
+                n1.NameScope = i1;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderNameScope END (OK)");
+            Assert.Pass("XamlServiceProviderNameScope");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider GetNamespacesInScope")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.GetNamespacesInScope M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderGetNamespacesInScope()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderGetNamespacesInScope START");
+
+            try
+            {
+                XmlNamespaceResolver xmlNamespaceResolver = new XmlNamespaceResolver();
+                XmlNamespaceScope xmlNamespaceScope = new XmlNamespaceScope();
+                xmlNamespaceResolver.GetNamespacesInScope(xmlNamespaceScope);
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"XamlServiceProviderGetNamespacesInScope END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider LookupNamespace")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.LookupNamespace M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderLookupNamespace()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderLookupNamespace START");
+
+            try
+            {
+                XmlNamespaceResolver xmlNamespaceResolver = new XmlNamespaceResolver();
+                xmlNamespaceResolver.LookupNamespace("myPrefix");
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderLookupNamespace END (OK)");
+            Assert.Pass("XamlServiceProviderLookupNamespace");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider LookupPrefix")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.LookupPrefix M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderLookupPrefix()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderLookupPrefix START");
+
+            try
+            {
+                XmlNamespaceResolver xmlNamespaceResolver = new XmlNamespaceResolver();
+                xmlNamespaceResolver.LookupPrefix("mynameSpaceName");
+            }
+            catch (Exception e)
+            {
+                tlog.Debug(tag, e.Message.ToString());
+                tlog.Debug(tag, $"XamlServiceProviderLookupPrefix END (OK)");
+                Assert.Pass("Caught Exception : passed!");
+            }
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XamlServiceProvider Add")]
+        [Property("SPEC", "Tizen.NUI.XamlServiceProvider.Add M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XamlServiceProviderXmlNamespaceResolverAdd()
+        {
+            tlog.Debug(tag, $"XamlServiceProviderXmlNamespaceResolverAdd START");
+
+            try
+            {
+                XmlNamespaceResolver xmlNamespaceResolver = new XmlNamespaceResolver();
+                xmlNamespaceResolver.Add("myPrefix", "myNs");
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XamlServiceProviderXmlNamespaceResolverAdd END (OK)");
+            Assert.Pass("XamlServiceProviderXmlNamespaceResolverAdd");
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXmlLineInfo.cs b/test/Tizen.NUI.Tests/Tizen.NUI.Devel.Tests/testcase/public/Xaml/TSXmlLineInfo.cs
new file mode 100755 (executable)
index 0000000..9e6114c
--- /dev/null
@@ -0,0 +1,133 @@
+using NUnit.Framework;
+using System;
+using Tizen.NUI.Xaml;
+
+namespace Tizen.NUI.Devel.Tests
+{
+    using tlog = Tizen.Log;
+
+    [TestFixture]
+    [Description("public/xaml/XmlLineInfo ")]
+    internal class PublicXmlLineInfoTest
+    {
+        private const string tag = "NUITEST";
+        private XmlLineInfo x1;
+        [SetUp]
+        public void Init()
+        {
+            tlog.Info(tag, "Init() is called!");
+            x1 = new XmlLineInfo();
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            x1 = null;
+            tlog.Info(tag, "Destroy() is called!");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XmlLineInfo XmlLineInfo")]
+        [Property("SPEC", "Tizen.NUI.XmlLineInfo.XmlLineInfo C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XmlLineInfoConstructor1()
+        {
+            tlog.Debug(tag, $"XmlLineInfoConstructor START");
+
+            XmlLineInfo xmlLineInfo1 = new XmlLineInfo();
+
+            tlog.Debug(tag, $"XmlLineInfoConstructor END (OK)");
+            Assert.Pass("XmlLineInfoConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XmlLineInfo XmlLineInfo")]
+        [Property("SPEC", "Tizen.NUI.XmlLineInfo.XmlLineInfo C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        public void XmlLineInfoConstructor2()
+        {
+            tlog.Debug(tag, $"XmlLineInfoConstructor START");
+
+            XmlLineInfo xmlLineInfo2 = new XmlLineInfo(10, 5);
+
+            tlog.Debug(tag, $"XmlLineInfoConstructor END (OK)");
+            Assert.Pass("XmlLineInfoConstructor");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XmlLineInfo HasLineInfo")]
+        [Property("SPEC", "Tizen.NUI.XmlLineInfo.HasLineInfo M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        public void XmlLineInfoHasLineInfo()
+        {
+            tlog.Debug(tag, $"XmlLineInfoHasLineInfo START");
+
+            try
+            {
+                x1.HasLineInfo();
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XmlLineInfoHasLineInfo END (OK)");
+            Assert.Pass("XmlLineInfoHasLineInfo");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XmlLineInfo LineNumber ")]
+        [Property("SPEC", "Tizen.NUI.XmlLineInfo.LineNumber  A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XmlLineInfoLineNumber()
+        {
+            tlog.Debug(tag, $"XmlLineInfoLineNumber START");
+
+            try
+            {
+                int i = x1.LineNumber;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XmlLineInfoLineNumber END (OK)");
+            Assert.Pass("XmlLineInfoLineNumber");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("XmlLineInfo LinePosition ")]
+        [Property("SPEC", "Tizen.NUI.XmlLineInfo.LinePosition  A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRW")]
+        public void XmlLineInfoLinePosition()
+        {
+            tlog.Debug(tag, $"XmlLineInfoLinePosition START");
+
+            try
+            {
+                int i = x1.LinePosition;
+            }
+            catch (Exception e)
+            {
+                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
+                Assert.Fail("Caught Exception" + e.ToString());
+            }
+
+            tlog.Debug(tag, $"XmlLineInfoLinePosition END (OK)");
+            Assert.Pass("XmlLineInfoLinePosition");
+        }
+    }
+}
\ No newline at end of file
index 7bbbb8c..93aa38d 100755 (executable)
  */
 using System;
 using Tizen.NUI.BaseComponents;
-using Tizen.NUI.Components;
 
 namespace Tizen.NUI.WebViewTest
 {
+    internal class MenuView : View
+    {
+        private WebContextMenu contextMenu;
+        private TextLabel[] texts;
+
+        internal MenuView(WebContextMenu menu)
+        {
+            contextMenu = menu;
+
+            Layout = new LinearLayout()
+            {
+                LinearOrientation = LinearLayout.Orientation.Vertical,
+                LinearAlignment = LinearLayout.Alignment.Center
+            };
+
+            texts = new TextLabel[menu.ItemList.ItemCount];
+
+            for (uint i = 0; i < menu.ItemList.ItemCount; i++)
+            {
+                WebContextMenuItem item = menu.ItemList.GetItemAtIndex(i);
+                texts[i] = new TextLabel()
+                {
+                    Size = new Size(200, 80),
+                    PointSize = 30.0f,
+                    TextColor = Color.Black,
+                    Text = item.Title,
+                };
+                Add(texts[i]);
+            }
+        }
+
+        internal void HideMenu()
+        {
+            contextMenu.Hide();
+        }
+    }
+
     public class SimpleWebViewApplication : NUIApplication
     {
-        private WebView simpleWebView = null;
+        private BaseComponents.WebView simpleWebView = null;
         private TextField addressBar = null;
 
         private int index = 0;
@@ -46,6 +82,9 @@ namespace Tizen.NUI.WebViewTest
         private const int WEBVIEW_WIDTH = SCREEN_WIDTH;
         private const int WEBVIEW_HEIGHT = SCREEN_HEIGHT - ADDRESSBAR_HEIGHT;
 
+        private Vector2 menuPosition;
+        private MenuView menuView;
+
         private int blueKeyPressedCount = 0;
         private int yellowKeyPressedCount = 0;
         private int greenKeyPressedCount = 0;
@@ -84,7 +123,7 @@ namespace Tizen.NUI.WebViewTest
                 Log.Info("WebView", $"arg {i} is {runtimeArgs[i]}");
             }
 
-            simpleWebView = new WebView(runtimeArgs)
+            simpleWebView = new BaseComponents.WebView(runtimeArgs)
             {
                 Position = new Position(0, ADDRESSBAR_HEIGHT),
                 Size = new Size(WEBVIEW_WIDTH, WEBVIEW_HEIGHT),
@@ -102,12 +141,12 @@ namespace Tizen.NUI.WebViewTest
             simpleWebView.PageLoading += OnPageLoading;
             simpleWebView.PageLoadFinished += OnPageLoadFinished;
             simpleWebView.PageLoadError += OnPageLoadError;
-            simpleWebView.ContextMenuCustomized += OnContextMenuCustomized;
+            simpleWebView.ContextMenuShown += OnContextMenuShown;
+            simpleWebView.ContextMenuHidden += OnContextMenuHidden;
             simpleWebView.ScrollEdgeReached += OnScrollEdgeReached;
             simpleWebView.UrlChanged += OnUrlChanged;
             simpleWebView.FormRepostPolicyDecided += OnFormRepostPolicyDecided;
             //simpleWebView.FrameRendered += OnFrameRendered;
-            simpleWebView.ContextMenuItemSelected += OnContextMenuItemSelected;
             simpleWebView.ConsoleMessageReceived += OnConsoleMessageReceived;
             simpleWebView.CertificateConfirmed += OnCertificateConfirmed;
             simpleWebView.ResponsePolicyDecided += OnResponsePolicyDecided;
@@ -124,6 +163,11 @@ namespace Tizen.NUI.WebViewTest
 
         protected override void OnTerminate()
         {
+            if (menuView != null)
+            {
+                GetDefaultWindow().Remove(menuView);
+            }
+
             GetDefaultWindow().Remove(simpleWebView);
             GetDefaultWindow().Remove(addressBar);
 
@@ -152,6 +196,22 @@ namespace Tizen.NUI.WebViewTest
             {
                 FocusManager.Instance.SetCurrentFocusView(simpleWebView);
             }
+
+            if (args.Touch.GetState(0) == PointStateType.Up)
+            {
+                if (menuView == null && menuPosition == null)
+                {
+                    menuPosition = args.Touch.GetScreenPosition(0);
+                }
+
+                if (menuView != null)
+                {
+                    menuView.HideMenu();
+                    GetDefaultWindow().Remove(menuView);
+                    menuView = null;
+                    menuPosition = null;
+                }
+            }
             return false;
         }
 
@@ -221,56 +281,55 @@ namespace Tizen.NUI.WebViewTest
 
         private void OnFrameRendered(object sender, EventArgs e)
         {
-            for (int i = 0; i < 10; i++)
-            {
-                Log.Info("WebView", $"------------frame rendered-------");
-            }
+            Log.Info("WebView", $"------------frame rendered-------");
         }
 
-        private void OnContextMenuCustomized(object sender, WebViewContextMenuCustomizedEventArgs e)
+        private void OnContextMenuShown(object sender, WebViewContextMenuShownEventArgs e)
         {
-            Log.Info("WebView", $"------------context menu customized, ItemCount: {e.ContextMenu.ItemCount}-------");
-            Log.Info("WebView", $"------------context menu customized, ItemList ItemCount: {e.ContextMenu.ItemList.ItemCount}-------");
+            Log.Info("WebView", $"------------context menu is shown, -------");
+
+            if (menuPosition != null)
+            {
+                menuView = new MenuView(e.ContextMenu)
+                {
+                    BackgroundColor = Color.Cyan,
+                    Position = new Position(menuPosition),
+                    Size = new Size(200, e.ContextMenu.ItemCount * 80),
+                };
+                GetDefaultWindow().Add(menuView);
+            }
+
+            Log.Info("WebView", $"------------context menu shown, ItemList ItemCount: {e.ContextMenu.ItemList.ItemCount}-------");
             if (e.ContextMenu.ItemList.ItemCount > 0)
             {
                 WebContextMenuItem item = e.ContextMenu.ItemList.GetItemAtIndex(0);
-                Log.Info("WebView", $"------------context menu customized, Item Tag: {item.Tag}-------");
-                Log.Info("WebView", $"------------context menu customized, Item Type: {item.Type}-------");
-                Log.Info("WebView", $"------------context menu customized, Item IsEnabled: {item.IsEnabled}-------");
-                Log.Info("WebView", $"------------context menu customized, Item LinkUrl: {item.LinkUrl}-------");
-                Log.Info("WebView", $"------------context menu customized, Item ImageUrl: {item.ImageUrl}-------");
-                Log.Info("WebView", $"------------context menu customized, Item Title: {item.Title}-------");
+                Log.Info("WebView", $"------------context menu shown, Item Tag: {item.Tag}-------");
+                Log.Info("WebView", $"------------context menu shown, Item Type: {item.Type}-------");
+                Log.Info("WebView", $"------------context menu shown, Item IsEnabled: {item.IsEnabled}-------");
+                Log.Info("WebView", $"------------context menu shown, Item LinkUrl: {item.LinkUrl}-------");
+                Log.Info("WebView", $"------------context menu shown, Item ImageUrl: {item.ImageUrl}-------");
+                Log.Info("WebView", $"------------context menu shown, Item Title: {item.Title}-------");
                 if (item.ParentMenu != null)
                 {
-                    Log.Info("WebView", $"------------context menu customized, Item ParentMenu: {item.ParentMenu.ItemCount}-------");
+                    Log.Info("WebView", $"------------context menu shown, ParentMenu item count: {item.ParentMenu.ItemCount}-------");
                 }
             }
-            Log.Info("WebView", $"------------context menu customized, ItemCount: {e.ContextMenu.ItemCount}-------");
-            Log.Info("WebView", $"------------context menu customized, Position: {e.ContextMenu.Position}-------");
+            Log.Info("WebView", $"------------context menu shown, ItemCount: {e.ContextMenu.ItemCount}-------");
+            //Log.Info("WebView", $"------------context menu shown, Position: {e.ContextMenu.Position}-------");
             e.ContextMenu.AppendItem(WebContextMenuItem.ItemTag.NoAction, "test1", true);
             e.ContextMenu.AppendItem(WebContextMenuItem.ItemTag.NoAction, "test2", "", true);
-            e.ContextMenu.Hide();
+            //e.ContextMenu.Hide();
             if (e.ContextMenu.ItemCount > 0)
             {
-                WebContextMenuItem item = e.ContextMenu.GetItemAtIndex(0);
-                e.ContextMenu.SelectItem(item);
-                e.ContextMenu.RemoveItem(item);
+                //WebContextMenuItem item = e.ContextMenu.GetItemAtIndex(0);
+                //e.ContextMenu.SelectItem(item);
+                //e.ContextMenu.RemoveItem(item);
             }
         }
 
-        private void OnContextMenuItemSelected(object sender, WebViewContextMenuItemSelectedEventArgs e)
+        private void OnContextMenuHidden(object sender, WebViewContextMenuHiddenEventArgs e)
         {
-            Log.Info("WebView", $"------------context menu item selected, -------");
-            Log.Info("WebView", $"------------context menu customized, Item Tag: {e.ContextMenuItem.Tag}-------");
-            Log.Info("WebView", $"------------context menu customized, Item Type: {e.ContextMenuItem.Type}-------");
-            Log.Info("WebView", $"------------context menu customized, Item IsEnabled: {e.ContextMenuItem.IsEnabled}-------");
-            Log.Info("WebView", $"------------context menu customized, Item LinkUrl: {e.ContextMenuItem.LinkUrl}-------");
-            Log.Info("WebView", $"------------context menu customized, Item ImageUrl: {e.ContextMenuItem.ImageUrl}-------");
-            Log.Info("WebView", $"------------context menu customized, Item Title: {e.ContextMenuItem.Title}-------");
-            if (e.ContextMenuItem.ParentMenu != null)
-            {
-                Log.Info("WebView", $"------------context menu customized, Item ParentMenu: {e.ContextMenuItem.ParentMenu.ItemCount}-------");
-            }
+            Log.Info("WebView", $"------------context menu is hidden, -------");
         }
 
         private void OnConsoleMessageReceived(object sender, WebViewConsoleMessageReceivedEventArgs e)
@@ -325,6 +384,25 @@ namespace Tizen.NUI.WebViewTest
         private void OnHitTestFinished(WebHitTestResult test)
         {
             Log.Info("WebView", $"------------hit test finished-------");
+            Log.Info("WebView", $"WebHitTestResult, TestResultContext: {test.TestResultContext}");
+            Log.Info("WebView", $"WebHitTestResult, LinkUrl: {test.LinkUrl}");
+            Log.Info("WebView", $"WebHitTestResult, LinkTitle: {test.LinkTitle}");
+            Log.Info("WebView", $"WebHitTestResult, LinkLabel: {test.LinkLabel}");
+            Log.Info("WebView", $"WebHitTestResult, ImageUrl: {test.ImageUrl}");
+            Log.Info("WebView", $"WebHitTestResult, MediaUrl: {test.MediaUrl}");
+            Log.Info("WebView", $"WebHitTestResult, TagName: {test.TagName}");
+            Log.Info("WebView", $"WebHitTestResult, NodeValue: {test.NodeValue}");
+            if (test.Attributes != null)
+            {
+                Log.Info("WebView", $"WebHitTestResult, Attributes: {test.Attributes}");
+            }
+            Log.Info("WebView", $"WebHitTestResult, ImageFileNameExtension: {test.ImageFileNameExtension}");
+            ImageView imageView = test.Image;
+            if (imageView != null)
+            {
+                imageView.Position = new Position(500, 500);
+                GetDefaultWindow().Add(imageView);
+            }
         }
 
         private void OnJavaScriptAlert(string message)
@@ -354,7 +432,7 @@ namespace Tizen.NUI.WebViewTest
         {
             Log.Info("WebView", $"------------password data list, count: {list.ItemCount}-------");
             string[] passwords = new string[list.ItemCount];
-            for(uint i=0; i< list.ItemCount; i++)
+            for (uint i = 0; i < list.ItemCount; i++)
             {
                 WebPasswordData data = list.GetItemAtIndex(i);
                 passwords[i] = data.Url;
@@ -550,7 +628,7 @@ namespace Tizen.NUI.WebViewTest
                         Log.Info("WebView", $"web view, here");
                         simpleWebView.GoForward();
                         Log.Info("WebView", $"web view, here");
-                        simpleWebView.HighlightText("test", WebView.FindOption.CaseInsensitive, 2);
+                        simpleWebView.HighlightText("test", BaseComponents.WebView.FindOption.CaseInsensitive, 2);
                         Log.Info("WebView", $"web view, here");
                         WebHitTestResult test = null;//simpleWebView.HitTest(100, 100, WebView.HitTestMode.Default);
                         if (test != null)
@@ -576,7 +654,7 @@ namespace Tizen.NUI.WebViewTest
                             }
                         }
 
-                        succeeded = simpleWebView.HitTestAsynchronously(100, 100, WebView.HitTestMode.Default, OnHitTestFinished);
+                        succeeded = simpleWebView.HitTestAsynchronously(100, 100, BaseComponents.WebView.HitTestMode.Default, OnHitTestFinished);
                         Log.Info("WebView", $"HitTestAsynchronously, {succeeded}");
                         simpleWebView.RegisterGeolocationPermissionCallback(OnGeolocationPermission);
                         Log.Info("WebView", $"web view, here");
index b96f378..64894e1 100755 (executable)
@@ -1,12 +1,18 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest package="Tizen.NUI.WebViewTest" version="1.0.0" api-version="4" xmlns="http://tizen.org/ns/packages">
-    <profile name="common" />
-    <ui-application appid="Tizen.NUI.WebViewTest" exec="Tizen.NUI.WebViewTest.dll" multiple="false" nodisplay="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
-        <label>WebViewTest</label>
-        <icon>Tizen.NUI.WebViewTest.png</icon>
-        <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
-        <splash-screens />
-    </ui-application>
-    <shortcut-list />
-    <provides-appdefined-privileges />
+  <profile name="tv" />
+  <ui-application appid="Tizen.NUI.WebViewTest" exec="Tizen.NUI.WebViewTest.dll" multiple="false" nodisplay="false" taskmanage="true"
+                  splash-screen-display="true"
+                  type="dotnet-inhouse-apitest"
+                  launch_mode="single">
+    <label>WebViewTest</label>
+    <icon>Tizen.NUI.WebViewTest.png</icon>
+    <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
+    <splash-screens />
+  </ui-application>
+  <shortcut-list />
+  <privileges>
+    <privilege>http://tizen.org/privilege/internet</privilege>
+  </privileges>
+  <feature> http://tizen.org/feature/opengles.surfaceless_context </feature>
 </manifest>