Add Label Slide Effect for Extension 97/125897/13
authordarkleem <cdark.lim@samsung.com>
Wed, 19 Apr 2017 08:42:03 +0000 (17:42 +0900)
committerdarkleem <cdark.lim@samsung.com>
Thu, 27 Apr 2017 02:26:45 +0000 (11:26 +0900)
- RFC 29 (way2)
http://suprem.sec.samsung.net/confluence/display/SPTDTLC/%5BFormsTizen%5D+RFC+29+-+Label-Slide

Change-Id: Iab5e47acfb6749f94a7cc583538d7d4513bd58d9
Signed-off-by: darkleem <cdark.lim@samsung.com>
Tizen.Xamarin.Forms.Extension.Renderer/Effects/LabelSlideEffect.cs [new file with mode: 0644]
Tizen.Xamarin.Forms.Extension.Renderer/Extensions/SlideModeExtension.cs [new file with mode: 0644]
Tizen.Xamarin.Forms.Extension.Renderer/Extensions/SlideStyleExtension.cs [new file with mode: 0644]
Tizen.Xamarin.Forms.Extension.Renderer/Tizen.Xamarin.Forms.Extension.Renderer.csproj
Tizen.Xamarin.Forms.Extension/Effects/SlideEffect.cs [new file with mode: 0644]
Tizen.Xamarin.Forms.Extension/Tizen.Xamarin.Forms.Extension.csproj

diff --git a/Tizen.Xamarin.Forms.Extension.Renderer/Effects/LabelSlideEffect.cs b/Tizen.Xamarin.Forms.Extension.Renderer/Effects/LabelSlideEffect.cs
new file mode 100644 (file)
index 0000000..02c3088
--- /dev/null
@@ -0,0 +1,77 @@
+using System;
+using System.ComponentModel;
+using Tizen.Xamarin.Forms.Extension.Renderer;
+using Tizen.Xamarin.Forms.Extension.Renderer.Extensions;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using ELabel = ElmSharp.Label;
+
+[assembly: ResolutionGroupName("Tizen")]
+[assembly: ExportEffect(typeof(LabelSlideEffect), "SlideEffect")]
+
+namespace Tizen.Xamarin.Forms.Extension.Renderer
+{
+    internal class LabelSlideEffect : PlatformEffect
+    {
+        protected override void OnAttached()
+        {
+            try
+            {
+                UpdateSlide();
+            }
+            catch (Exception e)
+            {
+                Log.Error("Cannot set property on attached control. Error: ", e.Message);
+            }
+        }
+
+        protected override void OnDetached()
+        {
+            var label = Control as ELabel;
+            if (label == null)
+            {
+                return;
+            }
+            label.Style = "default";
+            label.SlideMode = ElmSharp.LabelSlideMode.None;
+        }
+
+        protected override void OnElementPropertyChanged(PropertyChangedEventArgs args)
+        {
+            base.OnElementPropertyChanged(args);
+
+            try
+            {
+                if(args.PropertyName == SlideEffect.SlideStyleProperty.PropertyName
+                    || args.PropertyName == SlideEffect.SlideModeProperty.PropertyName
+                    || args.PropertyName == SlideEffect.SlideDurationProperty.PropertyName)
+                {
+                    UpdateSlide();
+                }
+            }
+            catch (Exception e)
+            {
+                Log.Error("Cannot set property on attached control. Error : ", e.Message);
+            }
+        }
+
+        void UpdateSlide()
+        {
+            var label = Control as ELabel;
+            if (label == null)
+                return;
+
+            double duration = (int)Element.GetValue(SlideEffect.SlideDurationProperty) / 1000.0;
+            if (duration <= 0)
+                return;
+
+            var style = (SlideStyle)Element.GetValue(SlideEffect.SlideStyleProperty);
+            var mode = (SlideMode)Element.GetValue(SlideEffect.SlideModeProperty);
+
+            label.Style = style.ToNative();
+            label.SlideDuration = duration;
+            label.SlideMode = mode.ToNative();
+            label.PlaySlide();
+        }
+    }
+}
\ No newline at end of file
diff --git a/Tizen.Xamarin.Forms.Extension.Renderer/Extensions/SlideModeExtension.cs b/Tizen.Xamarin.Forms.Extension.Renderer/Extensions/SlideModeExtension.cs
new file mode 100644 (file)
index 0000000..e024a6c
--- /dev/null
@@ -0,0 +1,23 @@
+using ESlideMode = ElmSharp.LabelSlideMode;
+
+namespace Tizen.Xamarin.Forms.Extension.Renderer.Extensions
+{
+    public static class SlideModeExtension
+    {
+        public static ESlideMode ToNative(this SlideMode mode)
+        {
+            switch (mode)
+            {
+                case SlideMode.Auto:
+                    return ESlideMode.Auto;
+
+                case SlideMode.Always:
+                    return ESlideMode.Always;
+
+                default:
+                    Log.Warn("Warning: unrecognized LabelSlideMode value {0}. Expected: {Auto|Always|None}.", mode.ToString());
+                    return ESlideMode.None;
+            }
+        }
+    }
+}
diff --git a/Tizen.Xamarin.Forms.Extension.Renderer/Extensions/SlideStyleExtension.cs b/Tizen.Xamarin.Forms.Extension.Renderer/Extensions/SlideStyleExtension.cs
new file mode 100644 (file)
index 0000000..5aea2a8
--- /dev/null
@@ -0,0 +1,26 @@
+namespace Tizen.Xamarin.Forms.Extension.Renderer.Extensions
+{
+    public static class SlideStyleExtension
+    {
+        public static string ToNative(this SlideStyle style)
+        {
+            string result = "default";
+            switch (style)
+            {
+                case SlideStyle.Short:
+                    result = "slide_short";
+                    break;
+                case SlideStyle.Long:
+                    result = "slide_long";
+                    break;
+                case SlideStyle.Bounce:
+                    result = "slide_bounce";
+                    break;
+                default:
+                    Log.Warn("Warning: unrecognized LabelSlideStyle value {0}. Expected: {Short|Long|Bounce|Default}.", style.ToString());
+                    break;
+            }
+            return result;
+        }
+    }
+}
\ No newline at end of file
index 8a95fbb..3a78c0a 100755 (executable)
@@ -1,89 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <PropertyGroup>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
-    <ProjectGuid>{062E2DDE-F5D8-4385-858E-E895DD5D5D76}</ProjectGuid>\r
-    <OutputType>Library</OutputType>\r
-    <AppDesignerFolder>Properties</AppDesignerFolder>\r
-    <RootNamespace>Tizen.Xamarin.Forms.Extension.Renderer</RootNamespace>\r
-    <AssemblyName>Tizen.Xamarin.Forms.Extension.Renderer</AssemblyName>\r
-    <FileAlignment>512</FileAlignment>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>\r
-    <TargetFrameworkVersion>v1.6</TargetFrameworkVersion>\r
-    <NuGetTargetMoniker>.NETStandard,Version=v1.6</NuGetTargetMoniker>\r
-    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>\r
-    <NoStdLib>true</NoStdLib>\r
-    <NoWarn>$(NoWarn);1701;1702</NoWarn>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-  </PropertyGroup>\r
-  <ItemGroup>\r
-    <Compile Include="ColorSelectorRenderer.cs" />\r
-    <Compile Include="MediaViewRenderer.cs" />\r
-    <Compile Include="DropdownListRenderer.cs" />\r
-    <Compile Include="ContextPopupImplementation.cs" />\r
-    <Compile Include="BackgroundRenderer.cs" />\r
-    <Compile Include="CalendarViewRenderer.cs" />\r
-    <Compile Include="Cells\DoubleLabelCellRenderer.cs" />\r
-    <Compile Include="Cells\GridViewCellRenderer.cs" />\r
-    <Compile Include="Cells\GridViewTypeCellRenderer.cs" />\r
-    <Compile Include="Cells\MultilineCellRenderer.cs" />\r
-    <Compile Include="Cells\TypeCellRenderer.cs" />\r
-    <Compile Include="DialogImplementation.cs" />\r
-    <Compile Include="LongTapGestureHandler.cs" />\r
-    <Compile Include="FloatingButtonImplementation.cs" />\r
-    <Compile Include="DateTimeViewRenderer.cs" />\r
-    <Compile Include="RadioButtonRenderer.cs" />\r
-    <Compile Include="GridViewRenderer.cs" />\r
-    <Compile Include="TizenExtension.cs" />\r
-    <Compile Include="Properties\AssemblyInfo.cs" />\r
-    <Compile Include="ToastImplementation.cs" />\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="Tizen.Xamarin.Forms.Extension.Renderer.project.json" />\r
-  </ItemGroup>\r
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.\r
-    Other similar extension points exist, see Microsoft.Common.targets.\r
-  <Target Name="BeforeBuild">\r
-  </Target>\r
-  <Target Name="AfterBuild">\r
-  </Target>\r
-  -->\r
-  <ItemGroup>\r
-    <ProjectReference Include="..\Tizen.Xamarin.Forms.Extension\Tizen.Xamarin.Forms.Extension.csproj">\r
-      <Project>{62531FB2-271B-4669-804E-7287A744CFD0}</Project>\r
-      <Name>Tizen.Xamarin.Forms.Extension</Name>\r
-    </ProjectReference>\r
-  </ItemGroup>\r
-  <PropertyGroup>\r
-    <!-- https://github.com/dotnet/corefxlab/tree/master/samples/NetCoreSample and\r
-       https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild\r
-    -->\r
-    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two\r
-       properties to any folder that exists to skip the GetReferenceAssemblyPaths task (not target) and\r
-       to prevent it from outputting a warning (MSB3644).\r
-    -->\r
-    <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory)</_TargetFrameworkDirectories>\r
-    <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory)</_FullFrameworkReferenceAssemblyPaths>\r
-    <AutoUnifyAssemblyReferences>true</AutoUnifyAssemblyReferences>\r
-  </PropertyGroup>\r
-</Project>\r
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{062E2DDE-F5D8-4385-858E-E895DD5D5D76}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Tizen.Xamarin.Forms.Extension.Renderer</RootNamespace>
+    <AssemblyName>Tizen.Xamarin.Forms.Extension.Renderer</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup>
+    <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion>v1.6</TargetFrameworkVersion>
+    <NuGetTargetMoniker>.NETStandard,Version=v1.6</NuGetTargetMoniker>
+    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+    <NoStdLib>true</NoStdLib>
+    <NoWarn>$(NoWarn);1701;1702</NoWarn>
+  </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>
+  </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>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="ColorSelectorRenderer.cs" />
+    <Compile Include="Extensions\SlideModeExtension.cs" />
+    <Compile Include="Extensions\SlideStyleExtension.cs" />
+    <Compile Include="Effects\LabelSlideEffect.cs" />
+    <Compile Include="MediaViewRenderer.cs" />
+    <Compile Include="DropdownListRenderer.cs" />
+    <Compile Include="ContextPopupImplementation.cs" />
+    <Compile Include="BackgroundRenderer.cs" />
+    <Compile Include="CalendarViewRenderer.cs" />
+    <Compile Include="Cells\DoubleLabelCellRenderer.cs" />
+    <Compile Include="Cells\GridViewCellRenderer.cs" />
+    <Compile Include="Cells\GridViewTypeCellRenderer.cs" />
+    <Compile Include="Cells\MultilineCellRenderer.cs" />
+    <Compile Include="Cells\TypeCellRenderer.cs" />
+    <Compile Include="DialogImplementation.cs" />
+    <Compile Include="LongTapGestureHandler.cs" />
+    <Compile Include="FloatingButtonImplementation.cs" />
+    <Compile Include="DateTimeViewRenderer.cs" />
+    <Compile Include="RadioButtonRenderer.cs" />
+    <Compile Include="GridViewRenderer.cs" />
+    <Compile Include="TizenExtension.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ToastImplementation.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Tizen.Xamarin.Forms.Extension.Renderer.project.json" />
+  </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">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <ItemGroup>
+    <ProjectReference Include="..\Tizen.Xamarin.Forms.Extension\Tizen.Xamarin.Forms.Extension.csproj">
+      <Project>{62531FB2-271B-4669-804E-7287A744CFD0}</Project>
+      <Name>Tizen.Xamarin.Forms.Extension</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <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>
+</Project>
\ No newline at end of file
diff --git a/Tizen.Xamarin.Forms.Extension/Effects/SlideEffect.cs b/Tizen.Xamarin.Forms.Extension/Effects/SlideEffect.cs
new file mode 100644 (file)
index 0000000..2b7b116
--- /dev/null
@@ -0,0 +1,149 @@
+using System.Linq;
+using Xamarin.Forms;
+
+namespace Tizen.Xamarin.Forms.Extension
+{
+    public enum SlideMode
+    {
+        /// <summary>
+        /// slide only if the view area is bigger than the text width length
+        /// </summary>
+        Auto = 1,
+
+        /// <summary>
+        /// slide always
+        /// </summary>
+        Always
+    }
+
+    public enum SlideStyle
+    {
+        /// <summary>
+        /// The text appears in the left of the view and slides to the right to show the overflow. When all of the text has been shown the position is reset.
+        /// </summary>
+        Short = 1,
+
+        /// <summary>
+        /// The entire text appears from the right of the screen and slides until it disappears in the left of the screen(reappearing on the right again).
+        /// </summary>
+        Long,
+
+        /// <summary>
+        /// The text appears in the left of the view and slides to the right to show the overflow. When all of the text has been shown the animation reverses, moving the text to the left.
+        /// </summary>
+        Bounce
+    }
+
+    public static class SlideEffect
+    {
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the style about how the text slides.
+        /// </summary>
+        public static readonly BindableProperty SlideStyleProperty = BindableProperty.CreateAttached("SlideStyle", typeof(SlideStyle), typeof(SlideEffect), SlideStyle.Long);
+
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the slide mode.
+        /// </summary>
+        public static readonly BindableProperty SlideModeProperty = BindableProperty.CreateAttached("SlideMode", typeof(SlideMode), typeof(SlideEffect), SlideMode.Always);
+
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the slide duration.
+        /// </summary>
+        public static readonly BindableProperty SlideDurationProperty = BindableProperty.CreateAttached("SlideDuration", typeof(int), typeof(SlideEffect), 3000);
+
+        /// <summary>
+        /// BindableProperty. Implements the attached property that represents the style when the text slides.
+        /// </summary>
+        public static readonly BindableProperty HasSlideProperty = BindableProperty.CreateAttached("HasSlide", typeof(bool), typeof(SlideEffect), false, propertyChanged: OnHasSlideChanged);
+
+        /// <summary>
+        /// Gets the SlideStyle of the bindable element.
+        /// </summary>
+        public static SlideStyle GetSlideStyle(BindableObject view)
+        {
+            return (SlideStyle)view.GetValue(SlideStyleProperty);
+        }
+
+        /// <summary>
+        /// Sets the SlideStyle of the bindable element.
+        /// </summary>
+        public static void SetSlideStyle(BindableObject view, SlideStyle value)
+        {
+            view.SetValue(SlideStyleProperty, value);
+        }
+
+        /// <summary>
+        /// Gets the SlideMode of the bindable element.
+        /// </summary>
+        public static SlideMode GetSlideMode(BindableObject view)
+        {
+            return (SlideMode)view.GetValue(SlideModeProperty);
+        }
+
+        /// <summary>
+        /// Sets the SlideMode of the bindable element.
+        /// </summary>
+        public static void SetSlideMode(BindableObject view, SlideMode value)
+        {
+            view.SetValue(SlideModeProperty, value);
+        }
+
+        /// <summary>
+        /// Gets the SlideDuration of the bindable element.
+        /// </summary>
+        public static int GetSlideDuration(BindableObject view)
+        {
+            return (int)view.GetValue(SlideDurationProperty);
+        }
+
+        /// <summary>
+        /// Sets the slide duration(in milliseconds) of the bindable element.
+        /// </summary>
+        public static void SetSlideDuration(BindableObject view, int value)
+        {
+            view.SetValue(SlideDurationProperty, value);
+        }
+
+        /// <summary>
+        /// Gets the sliding status of the bindable element.
+        /// </summary>
+        public static bool GetHasSlide(BindableObject view)
+        {
+            return (bool)view.GetValue(HasSlideProperty);
+        }
+
+        /// <summary>
+        /// Sets the sliding status of the bindable element.
+        /// </summary>
+        public static void SetHasSlide(BindableObject view, bool value)
+        {
+            view.SetValue(HasSlideProperty, value);
+        }
+
+        static void OnHasSlideChanged(BindableObject bindable, object oldValue, object newValue)
+        {
+            var label = bindable as Label;
+            if (label == null)
+                return;
+
+            bool hasSlide = (bool)newValue;
+            if (hasSlide)
+            {
+                label.Effects.Add(new LabelSlideEffect());
+            }
+            else
+            {
+                var toRemove = label.Effects.FirstOrDefault(e => e is LabelSlideEffect);
+                if (toRemove != null)
+                    label.Effects.Remove(toRemove);
+            }
+        }
+
+        class LabelSlideEffect : RoutingEffect
+        {
+            public LabelSlideEffect() : base("Tizen.SlideEffect")
+            {
+            }
+        }
+    }
+}
\ No newline at end of file
index e0ec22e..d4e6d3a 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />\r
-  <PropertyGroup>\r
-    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
-    <ProjectGuid>{62531FB2-271B-4669-804E-7287A744CFD0}</ProjectGuid>\r
-    <OutputType>Library</OutputType>\r
-    <AppDesignerFolder>Properties</AppDesignerFolder>\r
-    <RootNamespace>Tizen.Xamarin.Forms.Extension</RootNamespace>\r
-    <AssemblyName>Tizen.Xamarin.Forms.Extension</AssemblyName>\r
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>\r
-    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>\r
-    <FileAlignment>512</FileAlignment>\r
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>\r
-    <NuGetPackageImportStamp>\r
-    </NuGetPackageImportStamp>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>\r
-    <NoWarn>\r
-    </NoWarn>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>\r
-    <NoWarn>\r
-    </NoWarn>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Turkey|AnyCPU'">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <OutputPath>bin\Turkey\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
-    <DebugType>full</DebugType>\r
-    <PlatformTarget>AnyCPU</PlatformTarget>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>\r
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>\r
-    <NoWarn>\r
-    </NoWarn>\r
-  </PropertyGroup>\r
-  <ItemGroup>\r
-    <Compile Include="GridViewScrollBarVisiblePolicy.cs" />\r
-    <Compile Include="ColorChangedEventArgs.cs" />\r
-    <Compile Include="ColorSelector.cs" />\r
-    <Compile Include="IMediaViewController.cs" />\r
-    <Compile Include="LongTapGestureRecognizer.cs" />\r
-    <Compile Include="LongTapUpdatedEventArgs.cs" />\r
-    <Compile Include="MediaView.cs" />\r
-    <Compile Include="Background.cs" />\r
-    <Compile Include="BackgroundOptions.cs" />\r
-    <Compile Include="CalendarView.cs" />\r
-    <Compile Include="Cells\GridViewCell.cs" />\r
-    <Compile Include="Cells\Type1Cell.cs" />\r
-    <Compile Include="Cells\DoubleLabelCell.cs" />\r
-    <Compile Include="Cells\Type2Cell.cs" />\r
-    <Compile Include="Cells\BaseTypeCell.cs" />\r
-    <Compile Include="Cells\MultilineCell.cs" />\r
-    <Compile Include="DateTimeView.cs" />\r
-    <Compile Include="Dialog.cs" />\r
-    <Compile Include="ContextPopupItem.cs" />\r
-    <Compile Include="ContextPopupDirectionPriorities.cs" />\r
-    <Compile Include="ContextPopupDirection.cs" />\r
-    <Compile Include="ContextPopupOrientation.cs" />\r
-    <Compile Include="ContextPopup.cs" />\r
-    <Compile Include="EnumerableExtensions.cs" />\r
-    <Compile Include="FloatingButtonItem.cs" />\r
-    <Compile Include="FloatingButtonMovablePosition.cs" />\r
-    <Compile Include="IFloatingButton.cs" />\r
-    <Compile Include="FloatingButton.cs" />\r
-    <Compile Include="FloatingButtonPosition.cs" />\r
-    <Compile Include="GridView.cs" />\r
-    <Compile Include="GridViewEnums.cs" />\r
-    <Compile Include="GridViewEventArgs.cs" />\r
-    <Compile Include="IDialog.cs" />\r
-    <Compile Include="ILongTapGestureController.cs" />\r
-    <Compile Include="IContextPopup.cs" />\r
-    <Compile Include="ItemsView.cs" />\r
-    <Compile Include="IToast.cs" />\r
-    <Compile Include="ListProxy.cs" />\r
-    <Compile Include="Properties\AssemblyInfo.cs" />\r
-    <Compile Include="DropdownList.cs" />\r
-    <Compile Include="RadioButton.cs" />\r
-    <Compile Include="SelectedEventArgs.cs" />\r
-    <Compile Include="ReadOnlyListAdapter.cs" />\r
-    <Compile Include="TemplatedItemsList.cs" />\r
-    <Compile Include="Toast.cs" />\r
-    <Compile Include="ToastProxy.cs" />\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">\r
-      <HintPath>..\packages\Xamarin.Forms.2.3.5.233-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Core.dll</HintPath>\r
-      <Private>True</Private>\r
-    </Reference>\r
-    <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">\r
-      <HintPath>..\packages\Xamarin.Forms.2.3.5.233-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Platform.dll</HintPath>\r
-      <Private>True</Private>\r
-    </Reference>\r
-    <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">\r
-      <HintPath>..\packages\Xamarin.Forms.2.3.5.233-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Xaml.dll</HintPath>\r
-      <Private>True</Private>\r
-    </Reference>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="packages.config" />\r
-  </ItemGroup>\r
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />\r
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">\r
-    <PropertyGroup>\r
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>\r
-    </PropertyGroup>\r
-    <Error Condition="!Exists('..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets'))" />\r
-  </Target>\r
-  <Import Project="..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" />\r
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.\r
-       Other similar extension points exist, see Microsoft.Common.targets.\r
-  <Target Name="BeforeBuild">\r
-  </Target>\r
-  <Target Name="AfterBuild">\r
-  </Target>\r
-  -->\r
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{62531FB2-271B-4669-804E-7287A744CFD0}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Tizen.Xamarin.Forms.Extension</RootNamespace>
+    <AssemblyName>Tizen.Xamarin.Forms.Extension</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+    <NoWarn>
+    </NoWarn>
+  </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>
+    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+    <NoWarn>
+    </NoWarn>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Turkey|AnyCPU'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\Turkey\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+    <NoWarn>
+    </NoWarn>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="GridViewScrollBarVisiblePolicy.cs" />
+    <Compile Include="ColorChangedEventArgs.cs" />
+    <Compile Include="ColorSelector.cs" />
+    <Compile Include="Effects\SlideEffect.cs" />
+    <Compile Include="IMediaViewController.cs" />
+    <Compile Include="LongTapGestureRecognizer.cs" />
+    <Compile Include="LongTapUpdatedEventArgs.cs" />
+    <Compile Include="MediaView.cs" />
+    <Compile Include="Background.cs" />
+    <Compile Include="BackgroundOptions.cs" />
+    <Compile Include="CalendarView.cs" />
+    <Compile Include="Cells\GridViewCell.cs" />
+    <Compile Include="Cells\Type1Cell.cs" />
+    <Compile Include="Cells\DoubleLabelCell.cs" />
+    <Compile Include="Cells\Type2Cell.cs" />
+    <Compile Include="Cells\BaseTypeCell.cs" />
+    <Compile Include="Cells\MultilineCell.cs" />
+    <Compile Include="DateTimeView.cs" />
+    <Compile Include="Dialog.cs" />
+    <Compile Include="ContextPopupItem.cs" />
+    <Compile Include="ContextPopupDirectionPriorities.cs" />
+    <Compile Include="ContextPopupDirection.cs" />
+    <Compile Include="ContextPopupOrientation.cs" />
+    <Compile Include="ContextPopup.cs" />
+    <Compile Include="EnumerableExtensions.cs" />
+    <Compile Include="FloatingButtonItem.cs" />
+    <Compile Include="FloatingButtonMovablePosition.cs" />
+    <Compile Include="IFloatingButton.cs" />
+    <Compile Include="FloatingButton.cs" />
+    <Compile Include="FloatingButtonPosition.cs" />
+    <Compile Include="GridView.cs" />
+    <Compile Include="GridViewEnums.cs" />
+    <Compile Include="GridViewEventArgs.cs" />
+    <Compile Include="IDialog.cs" />
+    <Compile Include="ILongTapGestureController.cs" />
+    <Compile Include="IContextPopup.cs" />
+    <Compile Include="ItemsView.cs" />
+    <Compile Include="IToast.cs" />
+    <Compile Include="ListProxy.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="DropdownList.cs" />
+    <Compile Include="RadioButton.cs" />
+    <Compile Include="SelectedEventArgs.cs" />
+    <Compile Include="ReadOnlyListAdapter.cs" />
+    <Compile Include="TemplatedItemsList.cs" />
+    <Compile Include="Toast.cs" />
+    <Compile Include="ToastProxy.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Xamarin.Forms.2.3.5.233-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Xamarin.Forms.2.3.5.233-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Platform.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Xamarin.Forms.2.3.5.233-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.Xaml.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets'))" />
+  </Target>
+  <Import Project="..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.2.3.5.233-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.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">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
 </Project>
\ No newline at end of file