sync ElmSharp source code latest
authorKangho Hur <kangho.hur@samsung.com>
Mon, 21 Aug 2017 01:41:24 +0000 (10:41 +0900)
committerKangho Hur <kangho.hur@samsung.com>
Mon, 21 Aug 2017 01:41:24 +0000 (10:41 +0900)
- platform/core/csapi/elm-sharp is no longer used.
- This patch is from 020305fffb52c4d273d9d8c3c457dc2c88e8a04e

Change-Id: I4550ac8c55e056a55d8335aefda91b0ce030ca1c

30 files changed:
src/ElmSharp.Wearable/ElmSharp.Wearable.sln [changed mode: 0755->0644]
src/ElmSharp.Wearable/ElmSharp.Wearable/MoreOption.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/MoreOptionItem.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/MoreOptionItemEventArgs.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/MoreOptionList.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/PointerEventArgs.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/RotarySelector.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/RotarySelectorItem.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/RotarySelectorItemEventArgs.cs
src/ElmSharp.Wearable/ElmSharp.Wearable/RotarySelectorList.cs
src/ElmSharp/ElmSharp/AnimatorMotionMapper.cs [new file with mode: 0644]
src/ElmSharp/ElmSharp/Calendar.cs
src/ElmSharp/ElmSharp/EcoreTimelineAnimator.cs [new file with mode: 0644]
src/ElmSharp/ElmSharp/Panes.cs
src/ElmSharp/Interop/Interop.Ecore.cs
src/ElmSharp/Interop/Interop.Elementary.DateTimePicker.cs
src/ElmSharp/Interop/Interop.Elementary.ProgressBar.cs
test/ElmSharp.Test/ElmSharp.Test.csproj
test/ElmSharp.Test/ElmSharp.Test.project.json [deleted file]
test/ElmSharp.Test/Properties/AssemblyInfo.cs [deleted file]
test/ElmSharp.Test/TC/EcoreTimelineAnimatorTest1.cs [new file with mode: 0644]
test/ElmSharp.Test/TC/GenListTest11.cs [new file with mode: 0755]
test/ElmSharp.Test/TC/ImageTest1.cs
test/ElmSharp.Test/TC/ScrollerTest4.cs [new file with mode: 0644]
test/ElmSharp.Test/TC/Wearable/EcoreTimelineAnimatorTest1.cs [new file with mode: 0644]
test/ElmSharp.Test/TC/Wearable/ImageTest1.cs [changed mode: 0755->0644]
test/ElmSharp.Test/tizen-manifest.xml
test/ElmSharp.Wearable.Test/ElmSharp.Wearable.Test.csproj
test/ElmSharp.Wearable.Test/ElmSharp.Wearable.Test.project.json [deleted file]
test/ElmSharp.Wearable.Test/Properties/AssemblyInfo.cs [deleted file]

old mode 100755 (executable)
new mode 100644 (file)
index 5079bfe..dbf2ebd
@@ -1,12 +1,16 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 15
-VisualStudioVersion = 15.0.26430.12
+VisualStudioVersion = 15.0.26730.8
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp.Wearable", "ElmSharp.Wearable.csproj", "{01AE2E3A-C08E-431C-97B3-A18D536FCD52}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp", "..\ElmSharp\ElmSharp.csproj", "{393A27E0-A1FF-4BC7-9B44-2B2803080AC2}"
 EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp.Test", "..\..\test\ElmSharp.Test\ElmSharp.Test.csproj", "{7FD75973-F5CE-4D17-81CB-A5905A62D138}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElmSharp.Wearable.Test", "..\..\test\ElmSharp.Wearable.Test\ElmSharp.Wearable.Test.csproj", "{DC7126DF-8ED8-448A-B7D8-15C7441B6929}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -21,8 +25,19 @@ Global
                {393A27E0-A1FF-4BC7-9B44-2B2803080AC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {393A27E0-A1FF-4BC7-9B44-2B2803080AC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {393A27E0-A1FF-4BC7-9B44-2B2803080AC2}.Release|Any CPU.Build.0 = Release|Any CPU
+               {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {7FD75973-F5CE-4D17-81CB-A5905A62D138}.Release|Any CPU.Build.0 = Release|Any CPU
+               {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {DC7126DF-8ED8-448A-B7D8-15C7441B6929}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
        EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+               SolutionGuid = {DCFCB5BF-47F2-4C3E-AB44-B126B259C9AA}
+       EndGlobalSection
 EndGlobal
index 7f75cc1..002a7a6 100644 (file)
@@ -5,14 +5,32 @@ using System.Linq;
 
 namespace ElmSharp.Wearable
 {
+    /// <summary>
+    /// The MoreOption is a widget composed of the toggle(cue button) and more option view, and MoreOption can change a visibility through the toggle.
+    /// Inherits Layout
+    /// </summary>
     public class MoreOption : Layout
     {
-
+        /// <summary>
+        /// Sets or gets the list of more option item
+        /// </summary>
         public IList<MoreOptionItem> Items { get; private set; }
 
+        /// <summary>
+        /// Selected will be triggered when the user selects an item.
+        /// </summary>
         public event EventHandler<MoreOptionItemEventArgs> Selected;
+        /// <summary>
+        /// Clicked will be triggered when the user selects the already selected item again or selects a selector.
+        /// </summary>
         public event EventHandler<MoreOptionItemEventArgs> Clicked;
+        /// <summary>
+        /// Opened will be triggered when more option view is shown.
+        /// </summary>
         public event EventHandler Opened;
+        /// <summary>
+        /// Closed will be triggered when more option view is hidden.
+        /// </summary>
         public event EventHandler Closed;
 
         SmartEvent<PointerEventArgs> _selectedEvent;
@@ -20,6 +38,10 @@ namespace ElmSharp.Wearable
         SmartEvent _openedEvent;
         SmartEvent _closedEvent;
 
+        /// <summary>
+        /// Creates and initializes a new instance of MoreOption class.
+        /// </summary>
+        /// <param name="parent">The parent is a given container which will be attached by MoreOption as a child. It's <see cref="EvasObject"/> type.</param>
         public MoreOption(EvasObject parent) : base(parent)
         {
             Items = new MoreOptionList(this);
@@ -51,6 +73,9 @@ namespace ElmSharp.Wearable
             return Interop.Eext.eext_more_option_add(parent);
         }
 
+        /// <summary>
+        /// Sets or gets the direction of more option.
+        /// </summary>
         public MoreOptionDirection Direction
         {
             get
@@ -65,6 +90,9 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Sets or gets the visibility of more option view.
+        /// </summary>
         public bool IsOpened
         {
             get
@@ -79,6 +107,9 @@ namespace ElmSharp.Wearable
         }
     }
 
+    /// <summary>
+    /// Enumeration for More Option Direction type.
+    /// </summary>
     public enum MoreOptionDirection
     {
         Top,
index ad5bf58..85ad356 100644 (file)
@@ -4,6 +4,9 @@ using System.Text;
 
 namespace ElmSharp.Wearable
 {
+    /// <summary>
+    /// The MoreOptionItem is a item of MoreOption widget.
+    /// </summary>
     public class MoreOptionItem
     {
         const string MainTextPartName = "selector,main_text";
@@ -15,6 +18,9 @@ namespace ElmSharp.Wearable
         Image _icon;
         IntPtr _handle;
 
+        /// <summary>
+        /// Sets or gets the more option item handle.
+        /// </summary>
         public IntPtr Handle
         {
             get
@@ -34,11 +40,17 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Set the icon to null
+        /// </summary>
         public MoreOptionItem()
         {
             _icon = null;
         }
 
+        /// <summary>
+        /// Sets or gets the main text of a more option object.
+        /// </summary>
         public string MainText
         {
             set
@@ -57,6 +69,9 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Sets or gets the sub text of a more option object.
+        /// </summary>
         public string SubText
         {
             set
@@ -75,6 +90,9 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Sets or gets the icon image
+        /// </summary>
         public Image Icon
         {
             set
index 7bc9723..c1781e4 100644 (file)
@@ -3,8 +3,15 @@ using System;
 
 namespace ElmSharp.Wearable
 {
+    /// <summary>
+    /// The MoreOptionItemEventArgs is a event args class for MoreOptionItem.
+    /// Inherits EventArgs
+    /// </summary>
     public class MoreOptionItemEventArgs : EventArgs
     {
+        /// <summary>
+        /// Sets or gets the more option item
+        /// </summary>
         public MoreOptionItem Item { get; set; }
     }
 }
index 577bc8e..95510d0 100644 (file)
@@ -11,10 +11,21 @@ namespace ElmSharp.Wearable
 
         List<MoreOptionItem> Items { get; set; }
 
+        /// <summary>
+        /// Sets or gets the count of Items
+        /// </summary>
         public int Count => Items.Count;
 
+        /// <summary>
+        /// Sets or gets whether it is read only
+        /// </summary>
         public bool IsReadOnly => false;
 
+        /// <summary>
+        /// Sets or gets the item with the index
+        /// </summary>
+        /// <param name="index">the position of item in items</param>
+        /// <returns></returns>
         public MoreOptionItem this[int index]
         {
             get
@@ -28,34 +39,60 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Creates and initializes a new instance of MoreOptionList class.
+        /// </summary>
+        /// <param name="owner">the object of more option</param>
         public MoreOptionList(MoreOption owner)
         {
             Owner = owner;
             Items = new List<MoreOptionItem>();
         }
 
+        /// <summary>
+        /// Append a new item to a more option.
+        /// </summary>
+        /// <param name="item">The more option item</param>
         public void Add(MoreOptionItem item)
         {
             item.Handle = Interop.Eext.eext_more_option_item_append(Owner);
             Items.Add(item);
         }
 
+        /// <summary>
+        /// add a new item to a more option at the first.
+        /// </summary>
+        /// <param name="item">The more option item</param>
         public void AddFirst(MoreOptionItem item)
         {
             item.Handle = Interop.Eext.eext_more_option_item_prepend(Owner);
             Items.Insert(0, item);
         }
 
+        /// <summary>
+        /// add a new item to a more option at the last.
+        /// </summary>
+        /// <param name="item">The more option item</param>
         public void AddLast(MoreOptionItem item)
         {
             Add(item);
         }
 
+        /// <summary>
+        /// Get the index of item
+        /// </summary>
+        /// <param name="item">The more option item</param>
+        /// <returns>the index of item</returns>
         public int IndexOf(MoreOptionItem item)
         {
             return Items.IndexOf(item);
         }
 
+        /// <summary>
+        /// Insert a new item into the more option after more option item with the index.
+        /// </summary>
+        /// <param name="index">the index of item which is insert after</param>
+        /// <param name="item">The more option item</param>
         public void Insert(int index, MoreOptionItem item)
         {
             if (Items.Count < index + 1 || index < 0)
@@ -66,6 +103,10 @@ namespace ElmSharp.Wearable
             Items.Insert(index, item);
         }
 
+        /// <summary>
+        /// Delete an item which is the given item index
+        /// </summary>
+        /// <param name="index">the item index which will be deleted</param>
         public void RemoveAt(int index)
         {
             if (Items.Count < index + 1 || index < 0)
@@ -77,6 +118,9 @@ namespace ElmSharp.Wearable
             Items.RemoveAt(index);
         }
 
+        /// <summary>
+        /// Remove all items from a given more option list object.
+        /// </summary>
         public void Clear()
         {
             Interop.Eext.eext_more_option_items_clear(Owner);
@@ -87,16 +131,31 @@ namespace ElmSharp.Wearable
             Items.Clear();
         }
 
+        /// <summary>
+        /// Check the item whether is contained
+        /// </summary>
+        /// <param name="item">The more option item</param>
+        /// <returns>If contain return true, otherwise false</returns>
         public bool Contains(MoreOptionItem item)
         {
             return Items.Contains(item);
         }
 
+        /// <summary>
+        /// Copy Items
+        /// </summary>
+        /// <param name="array">the target array</param>
+        /// <param name="arrayIndex">which index the item will copy to</param>
         public void CopyTo(MoreOptionItem[] array, int arrayIndex)
         {
             Items.CopyTo(array, arrayIndex);
         }
 
+        /// <summary>
+        /// Remove a item
+        /// </summary>
+        /// <param name="item">the item will be removed</param>
+        /// <returns>if remove success return true, otherwise false</returns>
         public bool Remove(MoreOptionItem item)
         {
             if (Items.Contains(item))
@@ -108,6 +167,10 @@ namespace ElmSharp.Wearable
             return false;
         }
 
+        /// <summary>
+        /// Return an enumerator that iterates through IEnumerator<MoreOptionItem>
+        /// </summary>
+        /// <returns></returns>
         public IEnumerator<MoreOptionItem> GetEnumerator()
         {
             return Items.GetEnumerator();
index d746824..e0bf3c7 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.Text;
index eb0181c..48a2c80 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.Linq;
@@ -5,6 +21,11 @@ using System.Text;
 
 namespace ElmSharp.Wearable
 {
+    /// <summary>
+    /// The Rotary Selector is a widget to display a selector and multiple items surrounding the selector.
+    /// And an item can be selected by rotary event or user item click.
+    /// Inherits <see cref="Layout"/>.
+    /// </summary>
     public class RotarySelector : Layout
     {
         const string IconPartName = "selector,icon";
@@ -14,15 +35,29 @@ namespace ElmSharp.Wearable
         const string ItemSelectedEventName = "item,selected";
         const string ItemClickedEventName = "item,clicked";
 
+        /// <summary>
+        /// Selected will be triggered when selected an item.
+        /// </summary>
         public event EventHandler<RotarySelectorItemEventArgs> Selected;
+
+        /// <summary>
+        /// Clicked will be triggered when selecting again the alredy selected item or selecting a selector.
+        /// </summary>
         public event EventHandler<RotarySelectorItemEventArgs> Clicked;
 
         SmartEvent<PointerEventArgs> _selectedEvent;
         SmartEvent<PointerEventArgs> _clickedEvent;
         Image _normalBgImage;
 
+        /// <summary>
+        /// Gets the rotary selector item list of a rotary selector object.
+        /// </summary>
         public IList<RotarySelectorItem> Items { get; private set; }
 
+        /// <summary>
+        /// Creates and initializes a new instance of the Rotary Selector class.
+        /// </summary>
+        /// <param name="parent">The parent of new Rotary Selector instance</param>
         public RotarySelector(EvasObject parent) : base(parent)
         {
             Items = new RotarySelectorList(this);
@@ -42,6 +77,9 @@ namespace ElmSharp.Wearable
             };
         }
 
+        /// <summary>
+        /// Sets or gets the selected item of a rotary selector object.
+        /// </summary>
         public RotarySelectorItem SelectedItem
         {
             get
@@ -77,6 +115,9 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Sets or gets the background image of a rotary selector object.
+        /// </summary>
         public Image BackgroundImage { set => setPart(ref _normalBgImage, BgPartName, State.Normal, value); get => _normalBgImage; }
 
         protected override IntPtr CreateHandle(EvasObject parent)
index d6abba8..38e46cb 100644 (file)
@@ -1,9 +1,28 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.Text;
 
 namespace ElmSharp.Wearable
 {
+    /// <summary>
+    /// A instance to the Rotary Selector Item added. And an item can be selected by rotary event or user item click.
+    /// </summary>
     public class RotarySelectorItem
     {
         const string MainTextPartName = "selector,main_text";
@@ -37,6 +56,9 @@ namespace ElmSharp.Wearable
 
         IntPtr _handle;
 
+        /// <summary>
+        /// Sets or gets the handle of a rotary selector item object.
+        /// </summary>
         public IntPtr Handle
         {
             set
@@ -128,28 +150,89 @@ namespace ElmSharp.Wearable
             }
         }
 
+        /// <summary>
+        /// Sets or gets the main text of a rotary selector item object.
+        /// </summary>
         public string MainText { set => setPart(ref _mainText, MainTextPartName, value); get => _mainText; }
+
+        /// <summary>
+        /// Sets or gets the sub text of a rotary selector item object.
+        /// </summary>
         public string SubText { set => setPart(ref _subText, SubTextPartName, value); get => _subText; }
 
+        /// <summary>
+        /// Sets or gets the sub text color of a rotary selector item object.
+        /// </summary>
         public Color MainTextColor { set => setPart(ref _mainTextColor, MainTextPartName, ItemState.Normal, value); get => _mainTextColor; }
-        public Color SubextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
 
+        /// <summary>
+        /// Sets or gets the sub text color of a rotary selector item object.
+        /// </summary>
+        public Color SubTextColor { set => setPart(ref _subTextColor, SubTextPartName, ItemState.Normal, value); get => _subTextColor; }
+
+        /// <summary>
+        /// Sets or gets the normal icon image of a rotary selector item object.
+        /// </summary>
         public Image NormalIconImage { set => setPart(ref _normalIconImage, IconPartName, ItemState.Normal, value); get => _normalIconImage; }
+
+        /// <summary>
+        /// Sets or gets the press icon image of a rotary selector item object.
+        /// </summary>
         public Image PressedIconImage { set => setPart(ref _pressedIconImage, IconPartName, ItemState.Pressed, value); get => _pressedIconImage; }
+
+        /// <summary>
+        /// Sets or gets the disable icon image of a rotary selector item object.
+        /// </summary>
         public Image DisabledIconImage { set => setPart(ref _disabledIconImage, IconPartName, ItemState.Disabled, value); get => _disabledIconImage; }
-        public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
 
+        /// <summary>
+        /// Sets or gets the selected icon image of a rotary selector item object.
+        /// </summary>
+        public Image SelectedIconImage { set => setPart(ref _selectedIconImage, IconPartName, ItemState.Selected, value); get => _selectedIconImage; }
 
+        /// <summary>
+        /// Sets or gets the normal background image of a rotary selector item object.
+        /// </summary>
         public Image NormalBackgroundImage { set => setPart(ref _normalBgImage, BgPartName, ItemState.Normal, value); get => _normalBgImage; }
+
+        /// <summary>
+        /// Sets or gets the pressed background image of a rotary selector item object.
+        /// </summary>
         public Image PressedBackgroundImage { set => setPart(ref _pressedBgImage, BgPartName, ItemState.Pressed, value); get => _pressedBgImage; }
+
+        /// <summary>
+        /// Sets or gets the disabled background image of a rotary selector item object.
+        /// </summary>
         public Image DisabledBackgroundImage { set => setPart(ref _disabledBgImage, BgPartName, ItemState.Disabled, value); get => _disabledBgImage; }
+
+        /// <summary>
+        /// Sets or gets the selected background image of a rotary selector item object.
+        /// </summary>
         public Image SelectedBackgroundImage { set => setPart(ref _selectedBgImage, BgPartName, ItemState.Selected, value); get => _selectedBgImage; }
 
+        /// <summary>
+        /// Sets or gets the normal background color of a rotary selector item object.
+        /// </summary>
         public Color NormalBackgroundColor { set => setPart(ref _normalBgColor, BgPartName, ItemState.Normal, value); get => _normalBgColor; }
+
+        /// <summary>
+        /// Sets or gets the pressed background color of a rotary selector item object.
+        /// </summary>
         public Color PressedBackgroundColor { set => setPart(ref _pressedBgColor, BgPartName, ItemState.Pressed, value); get => _pressedBgColor; }
+
+        /// <summary>
+        /// Sets or gets the disabled background color of a rotary selector item object.
+        /// </summary>
         public Color DisabledBackgroundColor { set => setPart(ref _disabledBgColor, BgPartName, ItemState.Disabled, value); get => _disabledBgColor; }
+
+        /// <summary>
+        /// Sets or gets the selected background color of a rotary selector item object.
+        /// </summary>
         public Color SelectedBackgroundColor { set => setPart(ref _selectedBgColor, BgPartName, ItemState.Selected, value); get => _selectedBgColor; }
 
+        /// <summary>
+        /// Sets or gets the selector icon image of a rotary selector item object.
+        /// </summary>
         public Image SelectorIconImage { set => setPart(ref _selectorIconImage, SelectorIconPartName, ItemState.Normal, value); get => _selectorIconImage; }
 
         internal enum ItemState
index 401be2f..b6494d1 100644 (file)
@@ -1,9 +1,29 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.Text;
 
 namespace ElmSharp.Wearable
 {
+    /// <summary>
+    /// <see cref="RotarySelector.Selected"> and <see cref="RotarySelector.Clicked"> events of RotarySelector contain RotarySelectorItemEventArgs as a parameter.
+    /// Inherits <see cref="EventArgs"/>.
+    /// </summary>
     public class RotarySelectorItemEventArgs : EventArgs
     {
         public RotarySelectorItem Item { get; set; }
index 2f73984..39866b8 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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;
 using System.Collections.Generic;
diff --git a/src/ElmSharp/ElmSharp/AnimatorMotionMapper.cs b/src/ElmSharp/ElmSharp/AnimatorMotionMapper.cs
new file mode 100644 (file)
index 0000000..defc7af
--- /dev/null
@@ -0,0 +1,119 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ElmSharp
+{
+    public interface AnimatorMotionMapper
+    {
+        double Caculate(double position);
+    }
+
+    public class LinearMotionMapper : AnimatorMotionMapper
+    {
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Linear, 0, 0);
+        }
+    }
+
+    public class AccelerateMotionMapper : AnimatorMotionMapper
+    {
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Accelerate, 0, 0);
+        }
+    }
+
+    public class DecelerateMotionMapper : AnimatorMotionMapper
+    {
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Decelerate, 0, 0);
+        }
+    }
+
+    public class SinusoidalMotionMapper : AnimatorMotionMapper
+    {
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Sinusoidal, 0, 0);
+        }
+    }
+
+    public class AccelerateFactorMotionMapper : AnimatorMotionMapper
+    {
+        public double PowerFactor { get; set; } = 0;
+
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.AccelerateFactor, PowerFactor, 0);
+        }
+    }
+
+    public class DecelerateFactorMotionMapper : AnimatorMotionMapper
+    {
+        public double PowerFactor { get; set; } = 0;
+
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.DecelerateFactor, PowerFactor, 0);
+        }
+    }
+
+    public class SinusoidalFactorMotionMapper : AnimatorMotionMapper
+    {
+        public double PowerFactor { get; set; } = 0;
+
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.SinusoidalFactor, PowerFactor, 0);
+        }
+    }
+
+    public class DivisorInterpolatedMotionMapper : AnimatorMotionMapper
+    {
+        public double Divisor { get; set; } = 0;
+        public double Power { get; set; } = 0;
+
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.DivisorInterp, Divisor, Power);
+        }
+    }
+
+    public class BounceMotionMapper : AnimatorMotionMapper
+    {
+        public int Bounces { get; set; } = 0;
+        public double DecayFactor { get; set; } = 0;
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Bounce, DecayFactor, Bounces);
+        }
+    }
+
+    public class SpringMotionMapper : AnimatorMotionMapper
+    {
+        public int Wobbles { get; set; } = 0;
+        public double DecayFactor { get; set; } = 0;
+
+        public double Caculate(double position)
+        {
+            return Interop.Ecore.ecore_animator_pos_map(position, Interop.Ecore.PositionMap.Bounce, DecayFactor, Wobbles);
+        }
+    }
+
+    public class CubicBezierMotionMapper : AnimatorMotionMapper
+    {
+        public double X1 { get; set; } = 0;
+        public double Y1 { get; set; } = 0;
+        public double X2 { get; set; } = 0;
+        public double Y2 { get; set; } = 0;
+
+        public double Caculate(double position)
+        {
+            double[] values = { X1, Y1, X2, Y2 };
+            return Interop.Ecore.ecore_animator_pos_map_n(position, Interop.Ecore.PositionMap.Bounce, values.Length, values);
+        }
+    }
+}
index ef87281..01a6c76 100755 (executable)
@@ -387,8 +387,6 @@ namespace ElmSharp
 
         /// <summary>
         /// Gets or sets date format the string that will be used to display month and year.
-        /// By default it uses strftime with "%B %Y" format string.
-        /// It should allocate the memory that will be used by the string, that will be freed by the widget after usage.A pointer to the string and a pointer to the time struct will be provided.
         /// </summary>
         public DateFormatDelegate DateFormat
         {
diff --git a/src/ElmSharp/ElmSharp/EcoreTimelineAnimator.cs b/src/ElmSharp/ElmSharp/EcoreTimelineAnimator.cs
new file mode 100644 (file)
index 0000000..8bc0a39
--- /dev/null
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ElmSharp
+{
+    public class EcoreTimelineAnimator
+    {
+        double _runtime;
+        IntPtr _animator;
+        Action _timelineCallback;
+        Interop.Ecore.EcoreTimelineCallback _nativeCallback;
+        double _position;
+
+        public event EventHandler Finished;
+
+
+        public EcoreTimelineAnimator(double runtime, Action timelineCallback)
+        {
+            _runtime = runtime;
+            _nativeCallback = NativeCallback;
+            _timelineCallback = timelineCallback;
+            _position = 0;
+        }
+
+        public bool IsRunning { get; private set; }
+        public double Position => _position;
+
+        public void Start()
+        {
+            IsRunning = true;
+            _animator = Interop.Ecore.ecore_animator_timeline_add(_runtime, _nativeCallback, IntPtr.Zero);
+        }
+
+        public void Stop()
+        {
+            IsRunning = false;
+            _animator = IntPtr.Zero;
+        }
+
+        public void Freeze()
+        {
+            Interop.Ecore.ecore_animator_freeze(_animator);
+        }
+
+        public void Thaw()
+        {
+            Interop.Ecore.ecore_animator_thaw(_animator);
+        }
+
+        protected void OnTimeline()
+        {
+            _timelineCallback();
+        }
+
+        bool NativeCallback(IntPtr data, double pos)
+        {
+            _position = pos;
+            if (!IsRunning) return false;
+            OnTimeline();
+            if (pos == 1.0)
+            {
+                IsRunning = false;
+                _animator = IntPtr.Zero;
+                Finished?.Invoke(this, EventArgs.Empty);
+            }
+            return true;
+        }
+    }
+}
index d99b5b6..4871d68 100755 (executable)
@@ -94,8 +94,9 @@ namespace ElmSharp
         /// Sets or gets the orientation of a given Panes widget.
         /// </summary>
         /// <remarks>
-        /// Uses this function to change how your panes are to be disposed: vertically or horizontally.
-        /// By default it's displayed horizontally.
+        /// Use this function to change how your panes is to be disposed: vertically or horizontally.
+        /// Horizontal panes have "top" and "bottom" contents, vertical panes have "left" and "right" contents.
+        /// By default panes is in a vertical mode.
         /// </remarks>
         public bool IsHorizontal
         {
index 99b9ee1..10e72d3 100644 (file)
@@ -21,9 +21,25 @@ internal static partial class Interop
 {
     internal static partial class Ecore
     {
+        internal enum PositionMap
+        {
+            Linear,
+            Accelerate,
+            Decelerate,
+            Sinusoidal,
+            AccelerateFactor,
+            DecelerateFactor,
+            SinusoidalFactor,
+            DivisorInterp,
+            Bounce,
+            Spring,
+            CubicBezier
+        }
+
         internal delegate void EcoreCallback(IntPtr data);
         internal delegate bool EcoreTaskCallback(IntPtr data);
         internal delegate void EcoreEventCallback(IntPtr data, int type, IntPtr evt);
+        internal delegate bool EcoreTimelineCallback(IntPtr data, double pos);
 
         [DllImport(Libraries.Ecore)]
         internal static extern int ecore_init();
@@ -72,5 +88,26 @@ internal static partial class Interop
 
         [DllImport(Libraries.Ecore)]
         internal static extern IntPtr ecore_event_handler_del(IntPtr handler);
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern IntPtr ecore_animator_timeline_add(double runtime, EcoreTimelineCallback func, IntPtr data);
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern void ecore_animator_freeze(IntPtr animator);
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern void ecore_animator_thaw(IntPtr animator);
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern void ecore_animator_frametime_set(double frametime);
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern void ecore_animator_frametime_get();
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern double ecore_animator_pos_map(double pos, PositionMap map, double v1, double v2);
+
+        [DllImport(Libraries.Ecore)]
+        internal static extern double ecore_animator_pos_map_n(double pos, PositionMap map, int v_size, double[] v);
     }
 }
index e65b9ef..a8bf333 100644 (file)
@@ -33,7 +33,7 @@ internal static partial class Interop
         [DllImport(Libraries.Elementary)]
         internal static extern bool elm_datetime_format_set(IntPtr obj, string format);
 
-        [DllImport(Libraries.Elementary)]
+        [DllImport(Libraries.Elementary, EntryPoint = "elm_datetime_format_get")]
         internal static extern IntPtr _elm_datetime_format_get(IntPtr obj);
 
         internal static string elm_datetime_format_get(IntPtr obj)
index 259b53f..4e35680 100644 (file)
@@ -66,7 +66,7 @@ internal static partial class Interop
         [DllImport(Libraries.Elementary)]
         internal static extern void elm_progressbar_unit_format_set(IntPtr obj, string format);
 
-        [DllImport(Libraries.Elementary)]
+        [DllImport(Libraries.Elementary, EntryPoint = "elm_progressbar_unit_format_get")]
         internal static extern IntPtr _elm_progressbar_unit_format_get(IntPtr obj);
 
         internal static string elm_progressbar_unit_format_get(IntPtr obj)
index 7de2ba7..580f5c5 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project>
+  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+  <!-- Setting Tizen Extension Path -->
+  <PropertyGroup Label="Globals">
+    <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+  </PropertyGroup>
+
+  <!-- Import Tizen property in Tizen.NET SDK -->
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" />
+
+  <!-- Property Group for .NET Core Project -->
   <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{E901BB06-632D-489E-86AC-66AD2EF85BCC}</ProjectGuid>
     <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ElmSharp.Test</RootNamespace>
-    <AssemblyName>ElmSharp.Test</AssemblyName>
-    <FileAlignment>512</FileAlignment>
+    <TargetFramework>netcoreapp1.1</TargetFramework>
   </PropertyGroup>
+
+  <!-- Property Group for Tizen Project -->
   <PropertyGroup>
-    <TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
-    <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
-    <NoStdLib>true</NoStdLib>
-    <NoWarn>$(NoWarn);1701;1702</NoWarn>
+    <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+wp80+win81+wpa81</PackageTargetFallback>
   </PropertyGroup>
+
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>portable</DebugType>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>None</DebugType>
   </PropertyGroup>
+
   <ItemGroup>
-    <Compile Include="Log.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="TC\AccessibilityRelationTest.cs" />
-    <Compile Include="TC\AccessibilityRoleTest.cs" />
-    <Compile Include="TC\AccessibilityTest.cs" />
-    <Compile Include="TC\BackgroundTest1.cs" />
-    <Compile Include="TC\BackgroundTest2.cs" />
-    <Compile Include="TC\BackgroundTest3.cs" />
-    <Compile Include="TC\FocusAutoScrollModeTest.cs" />
-    <Compile Include="TC\KeyEventTest1.cs" />
-    <Compile Include="TC\GestureLayerTest1.cs" />
-    <Compile Include="TC\ProgressBarTest2.cs" />
-    <Compile Include="TC\ScrollerTest3.cs" />
-    <Compile Include="TC\Wearable\CircleTool.cs" />
-    <Compile Include="TC\TransitTest.cs" />
-    <Compile Include="TC\EcoreTimerTest1.cs" />
-    <Compile Include="TC\EntryTest3.cs" />
-    <Compile Include="TC\EvasMapTest2.cs" />
-    <Compile Include="TC\GenListTest10.cs" />
-    <Compile Include="TC\ImageTest4.cs" />
-    <Compile Include="TC\LabelTest4.cs" />
-    <Compile Include="TC\LabelTest5.cs" />
-    <Compile Include="TC\MultibuttonEntryTest1.cs" />
-    <Compile Include="TC\DateTimeSelectorTest2.cs" />
-    <Compile Include="TC\EntryTest2.cs" />
-    <Compile Include="TC\FlipSelectorTest.cs" />
-    <Compile Include="TC\FloatingButtonTest.cs" />
-    <Compile Include="TC\GenListTest9.cs" />
-    <Compile Include="TC\FocusTest1.cs" />
-    <Compile Include="TC\HoverselTest1.cs" />
-    <Compile Include="TC\MultibuttonEntryTest2.cs" />
-    <Compile Include="TC\NaviframeTest3.cs" />
-    <Compile Include="TC\ScreenInformationTest.cs" />
-    <Compile Include="TC\BoxLayoutTest1.cs" />
-    <Compile Include="TC\BoxTest1.cs" />
-    <Compile Include="TC\BackgroundColorTest1.cs" />
-    <Compile Include="TC\ButtonTest1.cs" />
-    <Compile Include="TC\CalendarTest1.cs" />
-    <Compile Include="TC\CheckTest1.cs" />
-    <Compile Include="TC\ClipperTest1.cs" />
-    <Compile Include="TC\ColorSelectorTest1.cs" />
-    <Compile Include="TC\ContextPopupTest1.cs" />
-    <Compile Include="TC\DateTimeSelectorTest1.cs" />
-    <Compile Include="TC\EvasMapTest1.cs" />
-    <Compile Include="TC\EntryTest1.cs" />
-    <Compile Include="TC\GenGridTest1.cs" />
-    <Compile Include="TC\GenGridTest2.cs" />
-    <Compile Include="TC\GenListTest7.cs" />
-    <Compile Include="TC\GenListTest1.cs" />
-    <Compile Include="TC\GenListTest2.cs" />
-    <Compile Include="TC\GenListTest3.cs" />
-    <Compile Include="TC\GenListTest4.cs" />
-    <Compile Include="TC\GenListTest6.cs" />
-    <Compile Include="TC\LabelTest3.cs" />
-    <Compile Include="TC\ImageTest3.cs" />
-    <Compile Include="TC\ImageTest2.cs" />
-    <Compile Include="TC\LabelTest2.cs" />
-    <Compile Include="TC\TableTest1.cs" />
-    <Compile Include="TC\GenListTest8.cs" />
-    <Compile Include="TC\PerformanceTest.cs" />
-    <Compile Include="TC\GenListTest5.cs" />
-    <Compile Include="TC\IconTest1.cs" />
-    <Compile Include="TC\ImageTest1.cs" />
-    <Compile Include="TC\IndexTest1.cs" />
-    <Compile Include="TC\IndexTest2.cs" />
-    <Compile Include="TC\LabelTest1.cs" />
-    <Compile Include="TC\LabelValignTest1.cs" />
-    <Compile Include="TC\ListTest1.cs" />
-    <Compile Include="TC\NaviframeTest1.cs" />
-    <Compile Include="TC\NaviframeTest2.cs" />
-    <Compile Include="TC\PanelTest1.cs" />
-    <Compile Include="TC\PanelTest2.cs" />
-    <Compile Include="TC\PanesTest1.cs" />
-    <Compile Include="TC\PolygonTest1.cs" />
-    <Compile Include="TC\PopupTest1.cs" />
-    <Compile Include="TC\ProgressBarTest1.cs" />
-    <Compile Include="TC\RadioTest1.cs" />
-    <Compile Include="TC\RectangleTest1.cs" />
-    <Compile Include="TC\ScrollerTest1.cs" />
-    <Compile Include="TC\ScrollerTest2.cs" />
-    <Compile Include="TC\SliderTest1.cs" />
-    <Compile Include="TC\SliderTest2.cs" />
-    <Compile Include="TC\SpinnerTest1.cs" />
-    <Compile Include="TC\ToolbarTest1.cs" />
-    <Compile Include="TC\ToolbarTest2.cs" />
-    <Compile Include="TC\ToolbarTest3.cs" />
-    <Compile Include="TC\ToolbarTest4.cs" />
-    <Compile Include="TC\Wearable\BackgroundColorTest1.cs" />
-    <Compile Include="TC\Wearable\BackgroundTest1.cs" />
-    <Compile Include="TC\Wearable\BackgroundTest2.cs" />
-    <Compile Include="TC\Wearable\BoxLayoutTest1.cs" />
-    <Compile Include="TC\Wearable\ButtonTest1.cs" />
-    <Compile Include="TC\Wearable\ButtonTest2.cs" />
-    <Compile Include="TC\Wearable\CheckTest1.cs" />
-    <Compile Include="TC\Wearable\ClipperTest1.cs" />
-    <Compile Include="TC\Wearable\ContextPopupTest1.cs" />
-    <Compile Include="TC\Wearable\DateTimeSelectorTest1.cs" />
-    <Compile Include="TC\Wearable\DateTimeSelectorTest2.cs" />
-    <Compile Include="TC\Wearable\EcoreTimerTest1.cs" />
-    <Compile Include="TC\Wearable\EntryTest1.cs" />
-    <Compile Include="TC\Wearable\EntryTest2.cs" />
-    <Compile Include="TC\Wearable\EntryTest3.cs" />
-    <Compile Include="TC\Wearable\EntryTest4.cs" />
-    <Compile Include="TC\Wearable\EvasMapTest1.cs" />
-    <Compile Include="TC\Wearable\EvasMapTest2.cs" />
-    <Compile Include="TC\Wearable\FocusTest1.cs" />
-    <Compile Include="TC\Wearable\GenGridTest1.cs" />
-    <Compile Include="TC\Wearable\GenGridTest2.cs" />
-    <Compile Include="TC\Wearable\GenListTest1.cs" />
-    <Compile Include="TC\Wearable\GenListTest10.cs" />
-    <Compile Include="TC\Wearable\GenListTest9.cs" />
-    <Compile Include="TC\Wearable\GenListTest2.cs" />
-    <Compile Include="TC\Wearable\GenListTest3.cs" />
-    <Compile Include="TC\Wearable\GenListTest4.cs" />
-    <Compile Include="TC\Wearable\GenListTest5.cs" />
-    <Compile Include="TC\Wearable\GenListTest6.cs" />
-    <Compile Include="TC\Wearable\GenListTest7.cs" />
-    <Compile Include="TC\Wearable\GenListTest8.cs" />
-    <Compile Include="TC\Wearable\GestureLayerTest1.cs" />
-    <Compile Include="TC\Wearable\IconTest1.cs" />
-    <Compile Include="TC\Wearable\ImageTest1.cs" />
-    <Compile Include="TC\Wearable\ImageTest2.cs" />
-    <Compile Include="TC\Wearable\ImageTest3.cs" />
-    <Compile Include="TC\Wearable\ImageTest4.cs" />
-    <Compile Include="TC\Wearable\IndexTest1.cs" />
-    <Compile Include="TC\Wearable\IndexTest2.cs" />
-    <Compile Include="TC\LabelTest6.cs" />
-    <Compile Include="TC\Wearable\ListTest1.cs" />
-    <Compile Include="TC\Wearable\NaviframeTest1.cs" />
-    <Compile Include="TC\Wearable\NaviframeTest2.cs" />
-    <Compile Include="TC\Wearable\NaviframeTest3.cs" />
-    <Compile Include="TC\Wearable\PanelTest1.cs" />
-    <Compile Include="TC\Wearable\PanelTest2.cs" />
-    <Compile Include="TC\Wearable\PanesTest1.cs" />
-    <Compile Include="TC\Wearable\PerformanceTest.cs" />
-    <Compile Include="TC\Wearable\PolygonTest1.cs" />
-    <Compile Include="TC\Wearable\PopupTest1.cs" />
-    <Compile Include="TC\Wearable\ProgressBarTest1.cs" />
-    <Compile Include="TC\Wearable\ProgressBarTest2.cs" />
-    <Compile Include="TC\Wearable\RadioTest1.cs" />
-    <Compile Include="TC\Wearable\RectangleTest1.cs" />
-    <Compile Include="TC\Wearable\ScreenInformationTest.cs" />
-    <Compile Include="TC\Wearable\ScrollerTest1.cs" />
-    <Compile Include="TC\Wearable\ScrollerTest2.cs" />
-    <Compile Include="TC\Wearable\ScrollerTest3.cs" />
-    <Compile Include="TC\Wearable\SliderTest1.cs" />
-    <Compile Include="TC\Wearable\SliderTest2.cs" />
-    <Compile Include="TC\Wearable\SpinnerTest1.cs" />
-    <Compile Include="TC\Wearable\TransitTest.cs" />
-    <Compile Include="TC\Wearable\WindowInternalTest.cs" />
-    <Compile Include="TC\Wearable\LabelTest1.cs" />
-    <Compile Include="TC\Wearable\LabelTest2.cs" />
-    <Compile Include="TC\Wearable\LabelTest3.cs" />
-    <Compile Include="TC\Wearable\LabelTest4.cs" />
-    <Compile Include="TC\Wearable\LabelTest5.cs" />
-    <Compile Include="TC\Wearable\LabelValignTest1.cs" />
-    <Compile Include="TC\Wearable\TableTest1.cs" />
-    <Compile Include="TC\WindowInternalTest.cs" />
-    <Compile Include="TestCaseBase.cs" />
-    <Compile Include="TestRunner.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ElmSharp.Test.project.json" />
-    <None Include="test.sh" />
+    <Folder Include="shared\" />
+    <Folder Include="res\" />
   </ItemGroup>
+
+  <!-- Include Nuget Package for Tizen Project building -->
   <ItemGroup>
-    <Content Include="res\btn_delete.png" />
-    <Content Include="res\picture.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\app_icn_ted.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\a.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\b.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\c.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\d.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\e.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\f.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\large\g.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\a.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\b.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\c.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\d.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\e.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\f.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="res\TED\thumbnail\g.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="shared\res\ElmSharp.Test.png" />
-    <Content Include="tizen-manifest.xml" />
+    <PackageReference Include="Tizen.NET" Version="3.0.0" />
+    <PackageReference Include="Tizen.NET.Sdk" Version="0.9.16-pre1" />
   </ItemGroup>
   <ItemGroup>
-    <Reference Include="ElmSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=3836ec6cd2c91e8b, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\ElmSharp\bin\Debug\netstandard1.3\ElmSharp.dll</HintPath>
-    </Reference>
+    <ProjectReference Include="..\..\src\ElmSharp\ElmSharp.csproj" />
   </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
+
+  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+  <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+  <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
   </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-  <PropertyGroup>
-    <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
-       https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
-    -->
-    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
-       properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
-       to prevent it from outputting a warning (MSB3644).
-    -->
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
-  </PropertyGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/test/ElmSharp.Test/ElmSharp.Test.project.json b/test/ElmSharp.Test/ElmSharp.Test.project.json
deleted file mode 100755 (executable)
index 4bd5e6c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "dependencies": {
-    "Microsoft.NETCore.App": "1.0.0",
-    "Tizen.Applications.Common": "1.5.8",
-    "Tizen.Applications.UI": "1.5.8"
-  },
-  "frameworks": {
-    "netcoreapp1.0": {}
-  },
-  "runtimes": {
-    "win": {}
-  }
-}
\ No newline at end of file
diff --git a/test/ElmSharp.Test/Properties/AssemblyInfo.cs b/test/ElmSharp.Test/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index fa3b23e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ElmSharp.Test")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("ElmSharp.Test")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("2e1a161a-baa9-40ef-a8b4-082ce7c813b8")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers 
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/test/ElmSharp.Test/TC/EcoreTimelineAnimatorTest1.cs b/test/ElmSharp.Test/TC/EcoreTimelineAnimatorTest1.cs
new file mode 100644 (file)
index 0000000..e112cbb
--- /dev/null
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ElmSharp;
+
+namespace ElmSharp.Test
+{
+    class EcoreTimelineAnimatorTest1 : TestCaseBase
+
+    {
+        public override string TestName => "Timeline Animator Test1";
+
+        public override string TestDescription => "Ecore Timeline Animator Test1";
+
+        EcoreTimelineAnimator timelineAnimator;
+
+        int X1, Y1, X2, Y2;
+
+        Tuple<string, AnimatorMotionMapper>[] mappers =
+        {
+            new Tuple<string, AnimatorMotionMapper>("Linear", new LinearMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Accelerate", new AccelerateMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Decelerate", new DecelerateMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Sinusoida", new SinusoidalMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Bounce", new BounceMotionMapper{ Bounces = 3, DecayFactor = 1.8 }),
+            new Tuple<string, AnimatorMotionMapper>("Spring", new SpringMotionMapper{ Wobbles = 3, DecayFactor = 1.8 }),
+            new Tuple<string, AnimatorMotionMapper>("AccelerateFactor", new AccelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+            new Tuple<string, AnimatorMotionMapper>("DecelerateFactor", new DecelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+            new Tuple<string, AnimatorMotionMapper>("SinusoidaFactor", new SinusoidalFactorMotionMapper{ PowerFactor = 1.5 }),
+            new Tuple<string, AnimatorMotionMapper>("DivisorInterpolate", new DivisorInterpolatedMotionMapper{ Divisor = 1.0, Power = 2.0 }),
+            new Tuple<string, AnimatorMotionMapper>("CubicBezier", new CubicBezierMotionMapper{ X1 = 0, X2 = 1, Y1 = 0, Y2 = 1})
+        };
+
+        int map_index = 0;
+
+        Rectangle square;
+
+        public override void Run(Window window)
+        {
+            Rect rect = new Rect(0, 0, window.ScreenSize.Width, window.ScreenSize.Height);
+
+            X1 = rect.X;
+            Y1 = rect.Y;
+            X2 = rect.X + rect.Width - rect.Width / 10;
+            Y2 = rect.Y;
+
+            square = new Rectangle(window)
+            {
+                Geometry = new Rect(X1, Y1, rect.Width / 10, rect.Height / 6),
+                Color = Color.Red
+            };
+            square.Show();
+
+            Button btn = new Button(window)
+            {
+                Geometry = new Rect(rect.X, rect.Y + rect.Height - rect.Height / 4, rect.Width, rect.Height / 4),
+                Text = mappers[map_index].Item1
+            };
+            btn.Show();
+
+            timelineAnimator = new EcoreTimelineAnimator(1.0, OnTimeline);
+
+            btn.Clicked += Btn_Clicked;
+            timelineAnimator.Finished += (s, e) =>
+            {
+                map_index = (map_index + 1) % mappers.Length;
+                btn.IsEnabled = true;
+            };
+        }
+
+        private void Btn_Clicked(object sender, EventArgs e)
+        {
+            timelineAnimator.Start();
+            ((Button)sender).IsEnabled = false;
+            Log.Debug(mappers[map_index].Item1);
+        }
+
+        void OnTimeline()
+        {
+            double o = mappers[map_index].Item2.Caculate(timelineAnimator.Position);
+            int x = (int)((X2 * o) + (X1 * (1.0 - o)));
+            int y = (int)((Y2 * o) + (Y1 * (1.0 - o)));
+
+            square.Move(x, y);
+        }
+    }
+}
diff --git a/test/ElmSharp.Test/TC/GenListTest11.cs b/test/ElmSharp.Test/TC/GenListTest11.cs
new file mode 100755 (executable)
index 0000000..731a9fc
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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 ElmSharp;
+using System.Collections.Generic;
+
+namespace ElmSharp.Test
+{
+    class GenListTest11 : TestCaseBase
+    {
+        public override string TestName => "GenListTest11";
+        public override string TestDescription => "To test InsertSorted operation of GenList";
+
+        public int myCompare(object t1, object t2)
+        {
+            int c1 = Convert.ToInt32((string)t1);
+            int c2 = Convert.ToInt32((string)t2);
+
+            return c1 - c2;
+        }
+
+        public override void Run(Window window)
+        {
+            Conformant conformant = new Conformant(window);
+            conformant.Show();
+            Box box = new Box(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1,
+            };
+            box.Show();
+            conformant.SetContent(box);
+
+            GenList list = new GenList(window)
+            {
+                Homogeneous = true,
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1
+            };
+
+            GenItemClass defaultClass = new GenItemClass("default")
+            {
+                GetTextHandler = (obj, part) =>
+                {
+                    return string.Format("{0} - {1}", (string)obj, part);
+                }
+            };
+
+            List<GenListItem> items = new List<GenListItem>();
+            int idx = 20;
+            for (int t = 1; t < 10; t++)
+            {
+                items.Add(list.InsertSorted(defaultClass, idx.ToString(), myCompare, GenListItemType.Normal, null));
+                idx--;
+            }
+            list.Show();
+            list.ItemSelected += List_ItemSelected;
+
+            box.PackEnd(list);
+            Button first = new Button(window)
+            {
+                Text = "Check first and last item",
+                AlignmentX = -1,
+                WeightX = 1,
+            };
+
+            Button Add = new Button(window)
+            {
+                Text = "Add",
+                AlignmentX = -1,
+                WeightX = 1,
+            };
+            Add.Clicked += (s, e) =>
+            {
+                items.Add(list.InsertSorted(defaultClass, idx.ToString(), myCompare, GenListItemType.Normal, null));
+                idx--;
+            };
+
+            first.Clicked += (s, e) =>
+            {
+                Console.WriteLine("Last Item's Data : " + list.LastItem.Data);
+                Console.WriteLine("First date of Items " + items[0].Data);
+                Console.WriteLine("Result for comparinson " + (bool)(list.LastItem == list.LastItem));
+            };
+
+            first.Show();
+            Add.Show();
+            box.PackEnd(first);
+            box.PackEnd(Add);
+        }
+
+        private void List_ItemSelected(object sender, GenListItemEventArgs e)
+        {
+            Console.WriteLine("{0} Item was selected", (string)(e.Item.Data));
+        }
+    }
+}
index 0a6793d..d013a4c 100644 (file)
@@ -169,16 +169,24 @@ namespace ElmSharp.Test
                 Console.WriteLine("Image has been clicked. (IsFixedAspect = {0}", image.IsFixedAspect);
                 image.IsFixedAspect = image.IsFixedAspect == true ? false : true;
             };
+            image.LoadingCompleted += (s, e) =>
+            {
+                Console.WriteLine("Image has been loaded successfully.");
+            };
+            image.LoadingFailed += (s, e) =>
+            {
+                Console.WriteLine("Image loading has been failed.");
+            };
 
             btnFile1.Clicked += (s, e) => LoadFile("TED/large/a.jpg");
             btnFile2.Clicked += (s, e) => LoadFile("TED/large/b.jpg");
             btnUri1.Clicked += (s, e) => LoadUri("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
-            btnStream1.Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open));
+            btnStream1.Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open, FileAccess.Read));
 
             btnFileAsync1.Clicked += (s, e) => LoadFileAsync("TED/large/d.jpg");
             btnFileAsync2.Clicked += (s, e) => LoadFileAsync("TED/large/e.jpg");
             btnUriAsync1.Clicked += (s, e) => LoadUriAsync("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
-            btnStreamAsync1.Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open));
+            btnStreamAsync1.Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open, FileAccess.Read));
             box.PackEnd(buttonBox1);
             box.PackEnd(buttonBox2);
             box.PackEnd(lbInfo);
diff --git a/test/ElmSharp.Test/TC/ScrollerTest4.cs b/test/ElmSharp.Test/TC/ScrollerTest4.cs
new file mode 100644 (file)
index 0000000..235594c
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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 ElmSharp;
+
+namespace ElmSharp.Test
+{
+    public class ScrollerTest4 : TestCaseBase
+    {
+        public override string TestName => "ScrollerTest4";
+        public override string TestDescription => "To test basic operation of Scroller";
+
+        public override void Run(Window window)
+        {
+            //Conformant conformant = new Conformant(window);
+            //conformant.Show();
+            Box outterBox = new Box(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1,
+                IsHorizontal = false,
+            };
+            outterBox.Show();
+
+            var button = new Button(window)
+            {
+                Text = "Button1",
+                Color = Color.White,
+            };
+            button.Show();
+            button.Resize(200, 100);
+            button.Move(300, 100);
+
+            var button2 = new Button(window)
+            {
+                Text = "Button2",
+                Color = Color.White,
+            };
+            button2.Show();
+            button2.Resize(200, 100);
+            button2.Move(300, 300);
+
+            var button3 = new Button(window)
+            {
+                Text = "Button3",
+                Color = Color.White,
+            };
+            button3.Show();
+            button3.Resize(200, 100);
+            button3.Move(300, 500);
+
+            Scroller scroller = new Scroller(window);
+            scroller.Show();
+            scroller.Resize(200, 400);
+            scroller.Move(100, 600);
+
+            Box box = new Box(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = -1,
+                WeightX = 1,
+                WeightY = 1
+            };
+            box.Show();
+            scroller.SetContent(box);
+
+            var rnd = new Random();
+            for (int i = 0; i < 20; i++)
+            {
+                int r = rnd.Next(255);
+                int g = rnd.Next(255);
+                int b = rnd.Next(255);
+                Color color = Color.FromRgb(r, g, b);
+                var colorBox1 = new Label(window)
+                {
+                    Text = "Label" + i.ToString(),
+                    BackgroundColor = color,
+                    MinimumHeight = 40,
+                };
+                colorBox1.Show();
+                box.PackEnd(colorBox1);
+            }
+
+            Scroller scroller2 = new Scroller(window);
+            scroller2.Show();
+            scroller2.Resize(200, 400);
+            scroller2.Move(700, 600);
+
+            Box box2 = new Box(window)
+            {
+                MinimumWidth = 400,
+                MinimumHeight = 200,
+            };
+            box2.BackgroundColor = Color.White;
+            box2.Show();
+            scroller2.SetContent(box2);
+
+            rnd = new Random();
+            for (int i = 0; i < 20; i++)
+            {
+                int r = rnd.Next(255);
+                int g = rnd.Next(255);
+                int b = rnd.Next(255);
+                Color color = Color.FromRgb(r, g, b);
+                var colorBox2 = new Label(scroller2)
+                {
+                    BackgroundColor = color,
+                    MinimumHeight = 40,
+                    Text = "GOGOGO"
+                };
+                colorBox2.Show();
+                box2.PackEnd(colorBox2);
+            }
+
+            //conformant.SetContent(outterBox);
+            //outterBox.PackEnd(button);
+            //outterBox.PackEnd(button2);
+            //outterBox.PackEnd(button3);
+            //outterBox.PackEnd(scroller);
+            //outterBox.PackEnd(scroller2);
+
+            //outterBox.SetLayoutCallback(() =>
+            //{
+            //    scroller.Move(100, 800);
+            //    button.Move(300, 100);
+            //    button2.Move(300, 300);
+            //    button3.Move(300, 500);
+            //    scroller2.Move(700, 800);
+            //});
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/ElmSharp.Test/TC/Wearable/EcoreTimelineAnimatorTest1.cs b/test/ElmSharp.Test/TC/Wearable/EcoreTimelineAnimatorTest1.cs
new file mode 100644 (file)
index 0000000..16e023f
--- /dev/null
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ElmSharp;
+
+namespace ElmSharp.Test.Wearable
+{
+    class EcoreTimelineAnimatorTest1 : WearableTestCase
+
+    {
+        public override string TestName => "Timeline Animator Test1";
+
+        public override string TestDescription => "Ecore Timeline Animator Test1";
+
+        EcoreTimelineAnimator timelineAnimator;
+
+        int X1, Y1, X2, Y2;
+
+        Tuple<string, AnimatorMotionMapper>[] mappers =
+        {
+            new Tuple<string, AnimatorMotionMapper>("Linear", new LinearMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Accelerate", new AccelerateMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Decelerate", new DecelerateMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Sinusoida", new SinusoidalMotionMapper()),
+            new Tuple<string, AnimatorMotionMapper>("Bounce", new BounceMotionMapper{ Bounces = 3, DecayFactor = 1.8 }),
+            new Tuple<string, AnimatorMotionMapper>("Spring", new SpringMotionMapper{ Wobbles = 3, DecayFactor = 1.8 }),
+            new Tuple<string, AnimatorMotionMapper>("AccelerateFactor", new AccelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+            new Tuple<string, AnimatorMotionMapper>("DecelerateFactor", new DecelerateFactorMotionMapper{ PowerFactor = 1.5 }),
+            new Tuple<string, AnimatorMotionMapper>("SinusoidaFactor", new SinusoidalFactorMotionMapper{ PowerFactor = 1.5 }),
+            new Tuple<string, AnimatorMotionMapper>("DivisorInterpolate", new DivisorInterpolatedMotionMapper{ Divisor = 1.0, Power = 2.0 }),
+            new Tuple<string, AnimatorMotionMapper>("CubicBezier", new CubicBezierMotionMapper{ X1 = 0, X2 = 1, Y1 = 0, Y2 = 1})
+        };
+
+        int map_index = 0;
+
+        Rectangle square;
+
+        public override void Run(Window window)
+        {
+            Rect rect = window.GetInnerSquare();
+
+            X1 = rect.X;
+            Y1 = rect.Y;
+            X2 = rect.X + rect.Width - rect.Width / 10;
+            Y2 = rect.Y;
+
+            square = new Rectangle(window)
+            {
+                Geometry = new Rect(X1, Y1, rect.Width / 10, rect.Height / 6),
+                Color = Color.Red
+            };
+            square.Show();
+
+            Button btn = new Button(window)
+            {
+                Geometry = new Rect(rect.X, rect.Y + rect.Height - rect.Height / 4, rect.Width, rect.Height / 4),
+                Text = mappers[map_index].Item1
+            };
+            btn.Show();
+
+            timelineAnimator = new EcoreTimelineAnimator(1.0, OnTimeline);
+
+            btn.Clicked += Btn_Clicked;
+            timelineAnimator.Finished += (s, e) =>
+            {
+                map_index = (map_index + 1) % mappers.Length;
+                btn.IsEnabled = true;
+            };
+        }
+
+        private void Btn_Clicked(object sender, EventArgs e)
+        {
+            timelineAnimator.Start();
+            ((Button)sender).IsEnabled = false;
+            Log.Debug(mappers[map_index].Item1);
+        }
+
+        void OnTimeline()
+        {
+            double o = mappers[map_index].Item2.Caculate(timelineAnimator.Position);
+            int x = (int)((X2 * o) + (X1 * (1.0 - o)));
+            int y = (int)((Y2 * o) + (Y1 * (1.0 - o)));
+
+            square.Move(x, y);
+        }
+    }
+}
old mode 100755 (executable)
new mode 100644 (file)
index b7c7c5a..ddb003f
@@ -77,12 +77,12 @@ namespace ElmSharp.Test.Wearable
             btns[0].Clicked += (s, e) => LoadFile("TED/large/a.jpg");
             btns[1].Clicked += (s, e) => LoadFile("TED/large/b.jpg");
             btns[2].Clicked += (s, e) => LoadUri("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
-            btns[3].Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open));
+            btns[3].Clicked += (s, e) => LoadStream(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/c.jpg"), FileMode.Open, FileAccess.Read));
 
             btns[4].Clicked += (s, e) => LoadFileAsync("TED/large/d.jpg");
             btns[5].Clicked += (s, e) => LoadFileAsync("TED/large/e.jpg");
             btns[6].Clicked += (s, e) => LoadUriAsync("http://pe.tedcdn.com/images/ted/2e306b9655267cee35e45688ace775590b820510_615x461.jpg");
-            btns[7].Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open));
+            btns[7].Clicked += (s, e) => LoadStreamAsync(new FileStream(Path.Combine(TestRunner.ResourceDir, "TED/large/f.jpg"), FileMode.Open, FileAccess.Read));
         }
 
         void LoadFile(string file)
index 5067a8f..d2eacea 100644 (file)
@@ -1,13 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="ElmSharpTest" version="1.0.0">
-       <profile name="common" />
-       <ui-application appid="org.tizen.ElmSharp.Test"
-                                       exec="ElmSharp.Test.exe"
-                                       type="dotnet"
-                                       multiple="false"
-                                       taskmanage="true"
-                                       launch_mode="single">
-       <icon>ElmSharp.Test.png</icon>
-       <label>ElmSharp.Test</label>
-       </ui-application>
+<manifest package="ElmSharpTest" version="1.0.0" api-version="3.0" xmlns="http://tizen.org/ns/packages">
+  <profile name="common" />
+  <ui-application appid="org.tizen.ElmSharp.Test" exec="ElmSharp.Test.dll" multiple="false" taskmanage="true" splash-screen-display="true" type="dotnet" launch_mode="single">
+    <icon>ElmSharp.Test.png</icon>
+    <label>ElmSharp.Test</label>
+  </ui-application>
+  <shortcut-list />
 </manifest>
index 419f133..7686cc4 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project>
+  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
+
+  <!-- Setting Tizen Extension Path -->
+  <PropertyGroup Label="Globals">
+    <TizenProjectExtensionsPath>$(MSBuildExtensionsPath)\Tizen\VisualStudio\</TizenProjectExtensionsPath>
+  </PropertyGroup>
+
+  <!-- Import Tizen property in Tizen.NET SDK -->
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" />
+
+  <!-- Property Group for .NET Core Project -->
   <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectTypeGuids>{2F98DAC9-6F16-457B-AED7-D43CAC379341};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ProjectGuid>{C6E111B7-21E2-4CD6-93BF-2CD5ED255749}</ProjectGuid>
     <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ElmSharp.Wearable.Test</RootNamespace>
-    <AssemblyName>ElmSharp.Wearable.Test</AssemblyName>
-    <FileAlignment>512</FileAlignment>
+    <TargetFramework>netcoreapp1.1</TargetFramework>
   </PropertyGroup>
+
+  <!-- Property Group for Tizen Project -->
   <PropertyGroup>
-    <TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
-    <NuGetTargetMoniker>.NETCoreApp,Version=v1.0</NuGetTargetMoniker>
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
-    <NoStdLib>true</NoStdLib>
-    <NoWarn>$(NoWarn);1701;1702</NoWarn>
+    <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+wp80+win81+wpa81</PackageTargetFallback>
   </PropertyGroup>
+
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>portable</DebugType>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <DebugType>None</DebugType>
   </PropertyGroup>
+
   <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="TC\CircleDateTimeSelectorTest1.cs" />
-    <Compile Include="TC\CircleDateTimeSelectorTest2.cs" />
-    <Compile Include="TC\CircleDateTimeSelectorTest3.cs" />
-    <Compile Include="TC\CircleDateTimeSelectorTest4.cs" />
-    <Compile Include="TC\CircleGenListTest1.cs" />
-    <Compile Include="TC\CircleGenListTest2.cs" />
-    <Compile Include="TC\CircleGenListTest3.cs" />
-    <Compile Include="TC\CircleGenListTest4.cs" />
-    <Compile Include="TC\CircleScrollerTest1.cs" />
-    <Compile Include="TC\CircleScrollerTest2.cs" />
-    <Compile Include="TC\CircleScrollerTest3.cs" />
-    <Compile Include="TC\CircleScrollerTest4.cs" />
-    <Compile Include="TC\CircleSliderTest1.cs" />
-    <Compile Include="TC\CircleSliderTest2.cs" />
-    <Compile Include="TC\CircleProgressBarTest1.cs" />
-    <Compile Include="TC\CircleProgressBarTest2.cs" />
-    <Compile Include="TC\CircleProgressBarTest3.cs" />
-    <Compile Include="TC\CircleProgressBarTest4.cs" />
-    <Compile Include="TC\CircleSpinnerTest1.cs" />
-    <Compile Include="TC\CircleSpinnerTest2.cs" />
-    <Compile Include="TC\Log.cs" />
-    <Compile Include="TC\MoreOptionTest.cs" />
-    <Compile Include="TC\RotarySelectorTest.cs" />
-    <Compile Include="TestCaseBase.cs" />
-    <Compile Include="TestRunner.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ElmSharp.Wearable.Test.project.json" />
+    <Folder Include="shared\" />
+    <Folder Include="res\" />
   </ItemGroup>
+
+  <!-- Include Nuget Package for Tizen Project building -->
   <ItemGroup>
-    <Content Include="res\icons\bg_black.png" />
-    <Content Include="res\icons\bg_red.png" />
-    <Content Include="res\icons\bg_white.png" />
-    <Content Include="res\icons\icon_aquamarine_260_me.png" />
-    <Content Include="res\icons\icon_auamarine_260_me.png" />
-    <Content Include="res\icons\icon_azure_215_me.png" />
-    <Content Include="res\icons\icon_beige_330_me.png" />
-    <Content Include="res\icons\icon_blue_45_me.png" />
-    <Content Include="res\icons\icon_brown_90_me.png" />
-    <Content Include="res\icons\icon_cyan_230_me.png" />
-    <Content Include="res\icons\icon_firebrick_95_me.png" />
-    <Content Include="res\icons\icon_gold_75_me.png" />
-    <Content Include="res\icons\icon_green_60_me.png" />
-    <Content Include="res\icons\icon_honeydew_285_me.png" />
-    <Content Include="res\icons\icon_ivory_315_me.png" />
-    <Content Include="res\icons\icon_khaki_360_me.png" />
-    <Content Include="res\icons\icon_lime_300_me.png" />
-    <Content Include="res\icons\icon_maroon_120_me.png" />
-    <Content Include="res\icons\icon_me.png" />
-    <Content Include="res\icons\icon_orchid_160_me.png" />
-    <Content Include="res\icons\icon_pink_145_me.png" />
-    <Content Include="res\icons\icon_purple_200_me.png" />
-    <Content Include="res\icons\icon_red_30_me.png" />
-    <Content Include="res\icons\icon_snow_75_me.png" />
-    <Content Include="res\icons\icon_snow_80_me.png" />
-    <Content Include="res\icons\icon_teal_245_me.png" />
-    <Content Include="res\icons\icon_violet_180_me.png" />
-    <Content Include="res\icons\icon_yellow_345_me.png" />
-    <Content Include="res\icons\pressed.png" />
-    <Content Include="res\icons\round_bg_green.png" />
-    <Content Include="res\icons\round_bg_white.png" />
-    <Content Include="res\icons\round_bg_yellow.png" />
-    <Content Include="res\icons\round_content_black.png" />
-    <Content Include="res\icons\round_content_blue.png" />
-    <Content Include="res\icons\round_content_red.png" />
-    <Content Include="shared\res\ElmSharp.Test.png" />
-    <Content Include="tizen-manifest.xml" />
+    <PackageReference Include="Tizen.NET" Version="3.0.0" />
+    <PackageReference Include="Tizen.NET.Sdk" Version="0.9.16-pre1" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\ElmSharp.Wearable\ElmSharp.Wearable.csproj">
-      <Project>{9a1c45ac-93e3-4b09-b896-769df60cf1b2}</Project>
-      <Name>ElmSharp.Wearable</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\ElmSharp\ElmSharp.csproj">
-      <Project>{d00c29dd-4b2e-41c0-a323-bad1a74c69bf}</Project>
-      <Name>ElmSharp</Name>
-    </ProjectReference>
+    <ProjectReference Include="..\..\src\ElmSharp\ElmSharp.csproj" />
+    <ProjectReference Include="..\..\src\ElmSharp.Wearable\ElmSharp.Wearable.csproj" />
   </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
+
+  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
+  <Import Project="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets" Condition="Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" />
+
+  <!-- Install Check 'Visual Studio for Tizen' for developing on Visual Studio -->
+  <Target Name="TizenVsixInstallCheck" BeforeTargets="CompileDesignTime">
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.props is not exist.&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
+    <Warning Condition="!Exists('$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets')" Text="$(TizenProjectExtensionsPath)Tizen.NET.ProjectType.targets is not exist.\&#xA; you need to check if 'Visual Studio for Tizen' is installed" />
   </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-  <PropertyGroup>
-    <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and
-       https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild
-    -->
-    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two
-       properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and
-       to prevent it from outputting a warning (MSB3644).
-    -->
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>
-  </PropertyGroup>
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Debug|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-      <FlavorProperties GUID="{2F98DAC9-6F16-457B-AED7-D43CAC379341}" Configuration="Release|Any CPU">
-        <ProjectCommonFlavorCfg />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/test/ElmSharp.Wearable.Test/ElmSharp.Wearable.Test.project.json b/test/ElmSharp.Wearable.Test/ElmSharp.Wearable.Test.project.json
deleted file mode 100644 (file)
index 4bd5e6c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "dependencies": {
-    "Microsoft.NETCore.App": "1.0.0",
-    "Tizen.Applications.Common": "1.5.8",
-    "Tizen.Applications.UI": "1.5.8"
-  },
-  "frameworks": {
-    "netcoreapp1.0": {}
-  },
-  "runtimes": {
-    "win": {}
-  }
-}
\ No newline at end of file
diff --git a/test/ElmSharp.Wearable.Test/Properties/AssemblyInfo.cs b/test/ElmSharp.Wearable.Test/Properties/AssemblyInfo.cs
deleted file mode 100644 (file)
index c419e2d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ElmSharp.Wearable.Test")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("ElmSharp.Wearable.Test")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components.  If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("2e1a161a-baa9-40ef-a8b4-082ce7c813b8")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]