diff --git a/MaterialDesignControls.nuspec b/MaterialDesignControls.nuspec
index 36782ffa..59de8e71 100755
--- a/MaterialDesignControls.nuspec
+++ b/MaterialDesignControls.nuspec
@@ -13,7 +13,7 @@
MaterialDesignControls Plugin for Xamarin Forms is a collection of Xamarin.Forms controls that apply the Material Design Guidelines
Material Design Controls for Xamarin Forms
- xamarin, ios, android, forms, xamarin.forms, plugin, materialdesigncontrols, materialdesign, materialcontrols, horus
+ xamarin, ios, android, tizen, forms, xamarin.forms, plugin, materialdesigncontrols, materialdesign, materialcontrols, horus
@@ -24,6 +24,9 @@
+
+
+
@@ -44,4 +47,12 @@
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 561c3a75..3208c56c 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@ MaterialDesignControls Plugin for Xamarin Forms is a collection of Xamarin.Forms
| ------------------- | :------------------: |
|Xamarin.iOS|iOS 8+|
|Xamarin.Android|API 16+|
+|Tizen |API 4+|
|Xamarin.Forms|>= 4.4.0.991864|
## API Usage
@@ -29,6 +30,12 @@ or if you're using **Android**:
```C#
Plugin.MaterialDesignControls.Android.Renderer.Init();
```
+
+or if you're using **Tizen**:
+```C#
+Plugin.MaterialDesignControls.Tizen.Renderer.Init();
+```
+
You must add this namespace to your xaml files:
```XML
diff --git a/example/ExampleMaterialDesignControls.Tizen/CustomPageRenderer.cs b/example/ExampleMaterialDesignControls.Tizen/CustomPageRenderer.cs
new file mode 100644
index 00000000..a47721eb
--- /dev/null
+++ b/example/ExampleMaterialDesignControls.Tizen/CustomPageRenderer.cs
@@ -0,0 +1,18 @@
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using EColor = ElmSharp.Color;
+
+[assembly: ExportRenderer(typeof(Page), typeof(CustomPageRenderer))]
+namespace Xamarin.Forms.Platform.Tizen
+{
+ public class CustomPageRenderer : PageRenderer
+ {
+ static readonly EColor s_DefaultBackgroundColor = new EColor(250,250,250);
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ base.OnElementChanged(e);
+ NativeView.Color = s_DefaultBackgroundColor;
+ }
+ }
+}
diff --git a/example/ExampleMaterialDesignControls.Tizen/ExampleMaterialDesignControls.Tizen.cs b/example/ExampleMaterialDesignControls.Tizen/ExampleMaterialDesignControls.Tizen.cs
new file mode 100644
index 00000000..66314576
--- /dev/null
+++ b/example/ExampleMaterialDesignControls.Tizen/ExampleMaterialDesignControls.Tizen.cs
@@ -0,0 +1,21 @@
+using Xamarin.Forms;
+
+namespace ExampleMaterialDesignControls.Tizen
+{
+ class Program : global::Xamarin.Forms.Platform.Tizen.FormsApplication
+ {
+ protected override void OnCreate()
+ {
+ base.OnCreate();
+ LoadApplication(new App());
+ }
+
+ static void Main(string[] args)
+ {
+ var app = new Program();
+ Forms.Init(app, true);
+ Plugin.MaterialDesignControls.Tizen.Renderer.Init();
+ app.Run(args);
+ }
+ }
+}
diff --git a/example/ExampleMaterialDesignControls.Tizen/ExampleMaterialDesignControls.Tizen.csproj b/example/ExampleMaterialDesignControls.Tizen/ExampleMaterialDesignControls.Tizen.csproj
new file mode 100644
index 00000000..30a43dc1
--- /dev/null
+++ b/example/ExampleMaterialDesignControls.Tizen/ExampleMaterialDesignControls.Tizen.csproj
@@ -0,0 +1,31 @@
+
+
+
+ Exe
+ tizen40
+ true
+
+
+
+ portable
+
+
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/arrow_drop_down.png b/example/ExampleMaterialDesignControls.Tizen/res/arrow_drop_down.png
new file mode 100644
index 00000000..21386c66
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/arrow_drop_down.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/calendar.png b/example/ExampleMaterialDesignControls.Tizen/res/calendar.png
new file mode 100644
index 00000000..1351caac
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/calendar.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/cancel.png b/example/ExampleMaterialDesignControls.Tizen/res/cancel.png
new file mode 100644
index 00000000..7e5ee740
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/cancel.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/color.png b/example/ExampleMaterialDesignControls.Tizen/res/color.png
new file mode 100644
index 00000000..c3f7b770
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/color.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/delete.png b/example/ExampleMaterialDesignControls.Tizen/res/delete.png
new file mode 100644
index 00000000..e1e367f7
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/delete.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/email.png b/example/ExampleMaterialDesignControls.Tizen/res/email.png
new file mode 100644
index 00000000..fb57102c
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/email.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/save.png b/example/ExampleMaterialDesignControls.Tizen/res/save.png
new file mode 100644
index 00000000..a5d16d11
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/save.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/res/showPassword.png b/example/ExampleMaterialDesignControls.Tizen/res/showPassword.png
new file mode 100644
index 00000000..4551ed12
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/res/showPassword.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/shared/res/ExampleMaterialDesignControls.Tizen.png b/example/ExampleMaterialDesignControls.Tizen/shared/res/ExampleMaterialDesignControls.Tizen.png
new file mode 100644
index 00000000..9f3cb986
Binary files /dev/null and b/example/ExampleMaterialDesignControls.Tizen/shared/res/ExampleMaterialDesignControls.Tizen.png differ
diff --git a/example/ExampleMaterialDesignControls.Tizen/tizen-manifest.xml b/example/ExampleMaterialDesignControls.Tizen/tizen-manifest.xml
new file mode 100644
index 00000000..8eea35ea
--- /dev/null
+++ b/example/ExampleMaterialDesignControls.Tizen/tizen-manifest.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ ExampleMaterialDesignControls.Tizen.png
+
+
+
diff --git a/example/ExampleMaterialDesignControls.sln b/example/ExampleMaterialDesignControls.sln
index d31d6040..0245ea1c 100644
--- a/example/ExampleMaterialDesignControls.sln
+++ b/example/ExampleMaterialDesignControls.sln
@@ -1,125 +1,238 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30114.105
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleMaterialDesignControls.Android", "ExampleMaterialDesignControls.Android\ExampleMaterialDesignControls.Android.csproj", "{1E4E88F1-A058-44F5-A441-EAD9F534EF91}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleMaterialDesignControls.iOS", "ExampleMaterialDesignControls.iOS\ExampleMaterialDesignControls.iOS.csproj", "{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleMaterialDesignControls", "ExampleMaterialDesignControls\ExampleMaterialDesignControls.csproj", "{439F7D85-7EF9-404C-AA78-98A755644B6A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExampleMaterialDesignControls", "ExampleMaterialDesignControls\ExampleMaterialDesignControls.csproj", "{439F7D85-7EF9-404C-AA78-98A755644B6A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls", "..\src\MaterialDesignControls\MaterialDesignControls.csproj", "{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaterialDesignControls", "..\src\MaterialDesignControls\MaterialDesignControls.csproj", "{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls.Android", "..\src\MaterialDesignControls.Android\MaterialDesignControls.Android.csproj", "{771F5490-1C4C-4BFF-A829-E532336552F8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls.iOS", "..\src\MaterialDesignControls.iOS\MaterialDesignControls.iOS.csproj", "{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaterialDesignControls.Tizen", "..\src\MaterialDesignControls.Tizen\MaterialDesignControls.Tizen.csproj", "{94AEDF04-D979-433E-8393-4D4351BCD98E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExampleMaterialDesignControls.Tizen", "ExampleMaterialDesignControls.Tizen\ExampleMaterialDesignControls.Tizen.csproj", "{D548FFA7-8261-4ACF-B386-0F986D1CCFA5}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
+ Ad-Hoc|iPhone = Ad-Hoc|iPhone
+ Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
+ AppStore|Any CPU = AppStore|Any CPU
+ AppStore|iPhone = AppStore|iPhone
+ AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Release|iPhoneSimulator = Release|iPhoneSimulator
Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
- Ad-Hoc|iPhone = Ad-Hoc|iPhone
- AppStore|iPhone = AppStore|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
{1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|Any CPU.Build.0 = Release|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|Any CPU.Build.0 = Release|Any CPU
{1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|iPhone.ActiveCfg = Release|Any CPU
{1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|iPhone.Build.0 = Release|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {1E4E88F1-A058-44F5-A441-EAD9F534EF91}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|Any CPU.ActiveCfg = AppStore|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|iPhone.Build.0 = AppStore|iPhone
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|iPhone.ActiveCfg = Debug|iPhone
{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|iPhone.Build.0 = Debug|iPhone
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|iPhone.ActiveCfg = Release|iPhone
{14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|iPhone.Build.0 = Release|iPhone
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
- {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.AppStore|iPhone.Build.0 = AppStore|iPhone
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+ {14A1BA06-3AD2-4FB2-B14D-BFC5D66DB869}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|Any CPU.Build.0 = Release|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|Any CPU.Build.0 = Release|Any CPU
{439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|iPhone.ActiveCfg = Release|Any CPU
{439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|iPhone.Build.0 = Release|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {439F7D85-7EF9-404C-AA78-98A755644B6A}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {439F7D85-7EF9-404C-AA78-98A755644B6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|Any CPU.Build.0 = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|Any CPU.Build.0 = Release|Any CPU
{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|iPhone.ActiveCfg = Release|Any CPU
{2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|iPhone.Build.0 = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {2DD667DD-DC54-4CA6-B167-B0B4C1CE72D2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.Build.0 = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.Build.0 = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhone.ActiveCfg = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhone.Build.0 = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.Build.0 = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhone.ActiveCfg = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhone.Build.0 = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Release|iPhone.Build.0 = Release|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {94AEDF04-D979-433E-8393-4D4351BCD98E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Release|iPhone.Build.0 = Release|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {D548FFA7-8261-4ACF-B386-0F986D1CCFA5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D2CC6DD3-28F2-4F63-8B81-A0CFCF0BE92C}
EndGlobalSection
EndGlobal
diff --git a/example/ExampleMaterialDesignControls/ViewModels/MaterialChipViewModel.cs b/example/ExampleMaterialDesignControls/ViewModels/MaterialChipViewModel.cs
index 8381e373..a35522b4 100644
--- a/example/ExampleMaterialDesignControls/ViewModels/MaterialChipViewModel.cs
+++ b/example/ExampleMaterialDesignControls/ViewModels/MaterialChipViewModel.cs
@@ -49,7 +49,7 @@ public string Error
private void OnIconTapCommand(string obj)
{
- this.DisplayAlert("Chip icon command", obj, "Ok");
+ this.DisplayAlert("Chip icon command", obj??"", "Ok");
}
public MaterialChipViewModel()
diff --git a/src/MaterialDesignControls.Tizen/Effects.cs b/src/MaterialDesignControls.Tizen/Effects.cs
new file mode 100644
index 00000000..26a10003
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Effects.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Xamarin.Forms.Internals;
+using Xamarin.Forms.Platform.Tizen;
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ [Preserve(AllMembers = true)]
+ public static class Effects
+ {
+ private static List _allEffects = new List();
+
+ public static void Init()
+ {
+ _allEffects = new List(typeof(Effects).Assembly.GetTypes()
+ .Where(t => typeof(PlatformEffect).IsAssignableFrom(t))
+ .Select(t => (PlatformEffect)Activator.CreateInstance(t)));
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Effects/TouchAndPressEffect.cs b/src/MaterialDesignControls.Tizen/Effects/TouchAndPressEffect.cs
new file mode 100644
index 00000000..e29f20ab
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Effects/TouchAndPressEffect.cs
@@ -0,0 +1,66 @@
+using ElmSharp;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using TouchAndPressEffect = Plugin.MaterialDesignControls.Tizen.TouchAndPressEffect;
+
+[assembly: ResolutionGroupName(Plugin.MaterialDesignControls.TouchAndPressEffect.EffectIdPrefix)]
+[assembly: ExportEffect(typeof(TouchAndPressEffect), nameof(TouchAndPressEffect))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class TouchAndPressEffect : PlatformEffect
+ {
+ private TouchAndPressGestureLayer _touchAndPressGestureLayer;
+
+ protected override void OnAttached()
+ {
+ if (Element is ITouchAndPressEffectConsumer touchAndPressEffectConsumer)
+ {
+ _touchAndPressGestureLayer = new TouchAndPressGestureLayer(Control, touchAndPressEffectConsumer);
+ _touchAndPressGestureLayer.Attach(Control);
+ }
+ }
+
+ protected override void OnDetached()
+ {
+ if (_touchAndPressGestureLayer != null)
+ {
+ _touchAndPressGestureLayer.ClearCallbacks();
+ _touchAndPressGestureLayer.Unrealize();
+ _touchAndPressGestureLayer = null;
+ }
+ }
+
+ private class TouchAndPressGestureLayer : GestureLayer
+ {
+ private readonly ITouchAndPressEffectConsumer _touchAndPressEffectConsumer;
+
+ internal TouchAndPressGestureLayer(EvasObject parent) : base (parent)
+ {
+ SetTapCallback(GestureType.LongTap, GestureLayer.GestureState.Start, (data) => { TapStarted(); });
+ SetTapCallback(GestureType.LongTap, GestureLayer.GestureState.End, (data) => { TapEnded(); });
+ SetTapCallback(GestureType.LongTap, GestureLayer.GestureState.Abort, (data) => { TapAborted(); });
+ }
+
+ public TouchAndPressGestureLayer(EvasObject parent, ITouchAndPressEffectConsumer touchAndPressEffectConsumer) : this(parent)
+ {
+ _touchAndPressEffectConsumer = touchAndPressEffectConsumer;
+ }
+
+ private void TapStarted()
+ {
+ _touchAndPressEffectConsumer.ConsumeEvent(EventType.Pressing);
+ }
+
+ private void TapEnded()
+ {
+ _touchAndPressEffectConsumer.ConsumeEvent(EventType.Released);
+ }
+
+ private void TapAborted()
+ {
+ _touchAndPressEffectConsumer.ConsumeEvent(EventType.Cancelled);
+ }
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/MaterialDesignControls.Tizen.csproj b/src/MaterialDesignControls.Tizen/MaterialDesignControls.Tizen.csproj
new file mode 100644
index 00000000..7e8d19d7
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/MaterialDesignControls.Tizen.csproj
@@ -0,0 +1,16 @@
+
+
+
+ tizen40
+ Tizen
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/MaterialDesignControls.Tizen/Renderers.cs b/src/MaterialDesignControls.Tizen/Renderers.cs
new file mode 100644
index 00000000..b870b10f
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers.cs
@@ -0,0 +1,17 @@
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public static class Renderer
+ {
+ public static void Init()
+ {
+ Effects.Init();
+ MaterialDatePickerRenderer.Init();
+ MaterialEntryRenderer.Init();
+ MaterialPickerRenderer.Init();
+ MaterialDoublePickerRenderer.Init();
+ MaterialTimePickerRenderer.Init();
+ MaterialEditorRenderer.Init();
+ MaterialLabelRenderer.Init();
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/CustomFrameRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/CustomFrameRenderer.cs
new file mode 100644
index 00000000..a7b56138
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/CustomFrameRenderer.cs
@@ -0,0 +1,114 @@
+using ElmSharp;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using Xamarin.Forms.Platform.Tizen.Native;
+using EColor = ElmSharp.Color;
+
+[assembly: ExportRenderer(typeof(Frame), typeof(CustomFrameRenderer))]
+namespace Xamarin.Forms.Platform.Tizen
+{
+ public class CustomFrameRenderer : LayoutRenderer
+ {
+ static readonly EColor s_DefaultColor = new EColor(255, 255, 255, 0);
+
+ Frame FrameElement => (Element as Frame);
+
+ RoundRectangle _frame = null;
+ RoundRectangle _frameBorder = null;
+
+ public CustomFrameRenderer()
+ {
+ RegisterPropertyHandler(Frame.BorderColorProperty, UpdateBorderColor);
+ RegisterPropertyHandler(Frame.CornerRadiusProperty, UpdateCornerRadius);
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ if (Control == null)
+ {
+ SetNativeControl(new Canvas(Forms.NativeParent));
+ _frameBorder = new RoundRectangle(NativeView);
+ _frameBorder.Show();
+ _frame = new RoundRectangle(NativeView);
+ _frame.Show();
+ Control.Children.Add(_frameBorder);
+ Control.Children.Add(_frame);
+ Control.LayoutUpdated += OnLayoutUpdated;
+ }
+ base.OnElementChanged(e);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (Control != null)
+ {
+ Control.LayoutUpdated -= OnLayoutUpdated;
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ protected override void UpdateBackgroundColor(bool initialize)
+ {
+ if (initialize && Element.BackgroundColor == Color.Default)
+ return;
+
+ UpdateAllColors();
+ }
+
+ void UpdateBorderColor(bool initialize)
+ {
+ if (initialize && FrameElement.BorderColor == Color.Default)
+ return;
+
+ UpdateAllColors();
+ }
+
+ void UpdateAllColors()
+ {
+ var bgColor = FrameElement.BackgroundColor.ToNative();
+ var borderColor = FrameElement.BorderColor.ToNative();
+
+ if (bgColor == EColor.Default || bgColor == s_DefaultColor)
+ {
+ if (borderColor != EColor.Default && borderColor != s_DefaultColor)
+ {
+ // Set Frame.BackgroundColor to White, if the Frmae.BackgroundColor is the Default/Transparent and there is a Frame.BorderColor.
+ _frameBorder.Color = borderColor;
+ _frame.Color = EColor.White;
+ return;
+ }
+ }
+ _frameBorder.Color = borderColor;
+ _frame.Color = bgColor;
+ }
+
+ void UpdateCornerRadius(bool initialize)
+ {
+ if (initialize && FrameElement.CornerRadius == -1f)
+ return;
+
+ int radius = 0;
+ if (FrameElement.CornerRadius != -1f)
+ {
+ radius = Forms.ConvertToScaledPixel(FrameElement.CornerRadius);
+ }
+ _frameBorder.SetRadius(radius);
+ _frame.SetRadius(radius);
+ }
+
+ void OnLayoutUpdated(object sender, Native.LayoutEventArgs e)
+ {
+ UpdateGeometry();
+ }
+
+ void UpdateGeometry()
+ {
+ var geometry = NativeView.Geometry;
+ _frameBorder.Draw(geometry);
+ _frame.Draw(new Rect(geometry.X + 1, geometry.Y + 1, geometry.Width - 2, geometry.Height - 2));
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialDatePickerRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialDatePickerRenderer.cs
new file mode 100644
index 00000000..9d79d27e
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialDatePickerRenderer.cs
@@ -0,0 +1,177 @@
+using System;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using Xamarin.Forms.Platform.Tizen.Native;
+using Xamarin.Forms.Platform.Tizen.Native.Watch;
+using Plugin.MaterialDesignControls.Implementations;
+using Plugin.MaterialDesignControls.Tizen;
+using Plugin.MaterialDesignControls.Tizen.Utils;
+using NLabel = Xamarin.Forms.Platform.Tizen.Native.Label;
+using NDateChangedEventArgs = Xamarin.Forms.Platform.Tizen.Native.DateChangedEventArgs;
+
+[assembly: ExportRenderer(typeof(CustomDatePicker), typeof(MaterialDatePickerRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialDatePickerRenderer : ViewRenderer
+ {
+ const string DialogTitle = "Choose Date";
+ Lazy _lazyDialog;
+ bool _isDialogOpened;
+ bool _isDialogClosed;
+
+ CustomDatePicker CustomDatePickerElement => Element as CustomDatePicker;
+
+ public static void Init() { }
+
+ public MaterialDatePickerRenderer()
+ {
+ RegisterPropertyHandler(DatePicker.DateProperty, UpdateDate);
+ RegisterPropertyHandler(DatePicker.FormatProperty, UpdateDate);
+ RegisterPropertyHandler(DatePicker.TextColorProperty, UpdateDate);
+ RegisterPropertyHandler(DatePicker.FontAttributesProperty, UpdateFontAttributes);
+ RegisterPropertyHandler(DatePicker.FontFamilyProperty, UpdateFontFamily);
+ RegisterPropertyHandler(DatePicker.FontSizeProperty, UpdateFontSize);
+ }
+
+ protected virtual IDateTimeDialog CreateDialog()
+ {
+ if (Device.Idiom == TargetIdiom.Watch)
+ {
+ return new WatchDateTimePickerDialog(Forms.NativeParent);
+ }
+ else
+ {
+ return new DateTimePickerDialog(Forms.NativeParent);
+ }
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ if (Control == null)
+ {
+ var label = CreateNativeControl();
+ label.SetVerticalTextAlignment("elm.text", 0.5);
+ label.HorizontalTextAlignment = TextAlignmentHelper.Convert(CustomDatePickerElement.HorizontalTextAlignment);
+ SetNativeControl(label);
+
+ _lazyDialog = new Lazy(() =>
+ {
+ var dialog = CreateDialog();
+ dialog.Title = DialogTitle;
+ dialog.DateTimeChanged += OnDateTimeChanged;
+ dialog.PickerOpened += OnPickerOpened;
+ dialog.PickerClosed += OnPickerClosed;
+ return dialog;
+ });
+ }
+ base.OnElementChanged(e);
+ }
+
+ protected virtual NLabel CreateNativeControl()
+ {
+ var control = new NLabel(Forms.NativeParent);
+ control.AllowFocus(true);
+ return control;
+ }
+
+ protected override void OnFocused(object sender, EventArgs e)
+ {
+ base.OnFocused(sender, e);
+ if (Element.IsEnabled && CustomDatePickerElement.IsFocused && ((!_isDialogOpened & !_isDialogClosed) || (_isDialogOpened & _isDialogClosed)))
+ {
+ var dialog = _lazyDialog.Value;
+ dialog.DateTime = Element.Date;
+ dialog.MaximumDateTime = Element.MaximumDate;
+ dialog.MinimumDateTime = Element.MinimumDate;
+ // You need to call Show() after ui thread occupation because of EFL problem.
+ // Otherwise, the content of the popup will not receive focus.
+ Device.BeginInvokeOnMainThread(() => dialog.Show());
+ }
+ }
+
+ protected override void OnUnfocused(object sender, EventArgs e)
+ {
+ base.OnUnfocused(sender, e);
+ if (_isDialogOpened && _isDialogClosed)
+ {
+ _isDialogClosed = false;
+ _isDialogOpened = false;
+ }
+ }
+
+ protected override Size MinimumSize()
+ {
+ if (Control is IMeasurable im)
+ {
+ return im.Measure(Control.MinimumWidth, Control.MinimumHeight).ToDP();
+ }
+ else
+ {
+ return base.MinimumSize();
+ }
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (_lazyDialog.IsValueCreated)
+ {
+ _lazyDialog.Value.DateTimeChanged -= OnDateTimeChanged;
+ _lazyDialog.Value.PickerOpened -= OnPickerOpened;
+ _lazyDialog.Value.PickerClosed -= OnPickerClosed;
+ _lazyDialog.Value.Unrealize();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ protected virtual void OnDateTimeChanged(object sender, NDateChangedEventArgs dcea)
+ {
+ CustomDatePickerElement.Date = dcea.NewDate;
+ UpdateDate();
+ }
+
+ protected virtual void UpdateDate()
+ {
+ if (!CustomDatePickerElement.Date.HasValue && !string.IsNullOrEmpty(CustomDatePickerElement.Placeholder))
+ {
+ Control.Text = CustomDatePickerElement.Placeholder;
+ Control.TextColor = CustomDatePickerElement.PlaceholderColor.ToNative();
+ }
+ else
+ {
+ Control.Text = Element.Date.ToString(Element.Format);
+ Control.TextColor = Element.TextColor.ToNative();
+ }
+ }
+
+ protected virtual void OnPickerOpened(object sender, EventArgs args)
+ {
+ _isDialogOpened = true;
+ Control.SetFocus(true);
+ }
+
+ protected virtual void OnPickerClosed(object sender, EventArgs args)
+ {
+ _isDialogClosed = true;
+ Control.SetFocus(false);
+ }
+
+ void UpdateFontSize()
+ {
+ Control.FontSize = Element.FontSize;
+ }
+
+ void UpdateFontFamily()
+ {
+ Control.FontFamily = Element.FontFamily;
+ }
+
+ void UpdateFontAttributes()
+ {
+ Control.FontAttributes = Element.FontAttributes;
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialDoublePickerRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialDoublePickerRenderer.cs
new file mode 100644
index 00000000..1f095251
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialDoublePickerRenderer.cs
@@ -0,0 +1,295 @@
+using System;
+using System.Collections.Generic;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using Xamarin.Forms.Platform.Tizen.Native;
+using Xamarin.Forms.Platform.Tizen.Native.Watch;
+using Plugin.MaterialDesignControls.Implementations;
+using Plugin.MaterialDesignControls.Tizen;
+using Plugin.MaterialDesignControls.Tizen.Utils;
+using ElmSharp;
+using EBox = ElmSharp.Box;
+using XSize = Xamarin.Forms.Size;
+using NLabel = Xamarin.Forms.Platform.Tizen.Native.Label;
+
+[assembly: ExportRenderer(typeof(DoublePicker), typeof(MaterialDoublePickerRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialDoublePickerRenderer : ViewRenderer
+ {
+ List _list;
+ List _secondaryList;
+ Dialog _dialog;
+ bool _isDialogOpened;
+ bool _isDialogClosed;
+ bool _isItemSelected;
+ bool _isSecondaryItemSelected;
+ Dictionary _itemToItemNumber = new Dictionary();
+ Dictionary _secondaryItemToItemNumber = new Dictionary();
+
+ DoublePicker DoublePickerElement => Element as DoublePicker;
+
+ public static void Init() { }
+
+ public MaterialDoublePickerRenderer()
+ {
+ RegisterPropertyHandler(Picker.TextColorProperty, UpdateTextColor);
+ RegisterPropertyHandler(Picker.FontSizeProperty, UpdateFontSize);
+ RegisterPropertyHandler(Picker.FontFamilyProperty, UpdateFontFamily);
+ RegisterPropertyHandler(Picker.FontAttributesProperty, UpdateFontAttributes);
+ RegisterPropertyHandler(DoublePicker.SelectedIndexesProperty, UpdateSelectedIndex);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (Control != null)
+ {
+ CleanView();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ if (Control == null)
+ {
+ var label = CreateNativeControl();
+ label.SetVerticalTextAlignment("elm.text", 0.5);
+ label.HorizontalTextAlignment = TextAlignmentHelper.Convert(DoublePickerElement.HorizontalTextAlignment);
+ SetNativeControl(label);
+ }
+ base.OnElementChanged(e);
+ }
+
+ protected virtual Dialog CreateDialog()
+ {
+ if (Device.Idiom == TargetIdiom.Watch)
+ {
+ return new WatchDialog(Forms.NativeParent, false);
+ }
+ else
+ {
+ return new Dialog(Forms.NativeParent);
+ }
+ }
+
+ protected override void OnFocused(object sender, EventArgs e)
+ {
+ base.OnFocused(sender, e);
+ if (Element.IsEnabled && ((!_isDialogOpened & !_isDialogClosed) || (_isDialogOpened & _isDialogClosed)))
+ {
+ int i = 0;
+ _dialog = CreateDialog();
+ _dialog.AlignmentX = -1;
+ _dialog.AlignmentY = -1;
+ _dialog.Dismissed += OnDialogDismissed;
+ _dialog.ShowAnimationFinished += (s1, e1) =>
+ {
+ _isDialogOpened = true;
+ Control.SetFocus(true);
+ };
+ _dialog.BackButtonPressed += (s2, e2) =>
+ {
+ _dialog.Dismiss();
+ };
+ _dialog.Title = Element.Title;
+ _dialog.TitleColor = Element.TitleColor.ToNative();
+
+ _list = new List(_dialog)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = .5,
+ WeightY = 1
+ };
+
+ foreach (var s in Element.Items)
+ {
+ ListItem item = _list.Append(s);
+ _itemToItemNumber[item] = i;
+ i++;
+ }
+ _list.ItemSelected += OnItemSelected;
+
+ i = 0;
+ _secondaryList = new List(_dialog)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = .5,
+ WeightY = 1
+ };
+
+ foreach (var s in DoublePickerElement.SecondaryItems)
+ {
+ ListItem item = _secondaryList.Append(s);
+ _secondaryItemToItemNumber[item] = i;
+ i++;
+ }
+ _secondaryList.ItemSelected += OnSecondaryItemSelected;
+
+ var box = new EBox(_dialog)
+ {
+ AlignmentX = -1,
+ AlignmentY = -1,
+ WeightX = 1,
+ WeightY = 1,
+ IsHorizontal = true
+ };
+ box.Show();
+ box.PackEnd(_list);
+ box.PackEnd(_secondaryList);
+
+ _dialog.Content = box;
+
+ // You need to call Show() after ui thread occupation because of EFL problem.
+ // Otherwise, the content of the popup will not receive focus.
+ Device.BeginInvokeOnMainThread(() =>
+ {
+ _dialog?.Show();
+ _list?.Show();
+ _secondaryList?.Show();
+ });
+ }
+ }
+
+ protected override void OnUnfocused(object sender, EventArgs e)
+ {
+ base.OnUnfocused(sender, e);
+ if (_isDialogOpened && _isDialogClosed)
+ {
+ _isDialogClosed = false;
+ _isDialogOpened = false;
+ }
+ }
+
+ protected override XSize MinimumSize()
+ {
+ if (Control is IMeasurable im)
+ {
+ return im.Measure(Control.MinimumWidth, Control.MinimumHeight).ToDP();
+ }
+ else
+ {
+ return base.MinimumSize();
+ }
+ }
+
+ protected virtual NLabel CreateNativeControl()
+ {
+ var control = new NLabel(Forms.NativeParent);
+ control.AllowFocus(true);
+ return control;
+ }
+
+ protected virtual void UpdateSelectedIndex()
+ {
+ if ((Element.SelectedIndex == -1 || Element.Items == null))
+ {
+ if (!string.IsNullOrEmpty(DoublePickerElement.Placeholder))
+ {
+ Control.Text = DoublePickerElement.Placeholder;
+ Control.TextColor = DoublePickerElement.PlaceholderColor.ToNative();
+ }
+ else
+ {
+ Control.Text = "";
+ }
+ }
+ else
+ {
+ string text = "";
+ var selectedIndexes = new int[] { _itemToItemNumber[_list?.SelectedItem], _secondaryItemToItemNumber[_secondaryList?.SelectedItem] };
+
+ if (Element.Items.Count > 0 && selectedIndexes[0] >= 0)
+ text = Element.Items[selectedIndexes[0]];
+
+ if (DoublePickerElement.SecondaryItems.Count > 0 && selectedIndexes[1] >= 0)
+ text = $"{text}{DoublePickerElement.Separator}{DoublePickerElement.SecondaryItems[selectedIndexes[1]]}".Trim();
+
+ Control.Text = text;
+ Control.TextColor = Element.TextColor.ToNative();
+ }
+ }
+
+ protected virtual void UpdateTextColor()
+ {
+ Control.TextColor = Element.TextColor.ToNative();
+ }
+
+ void UpdateFontSize()
+ {
+ Control.FontSize = Element.FontSize;
+ }
+
+ void UpdateFontFamily()
+ {
+ Control.FontFamily = Element.FontFamily;
+ }
+
+ void UpdateFontAttributes()
+ {
+ Control.FontAttributes = Element.FontAttributes;
+ }
+
+ void OnItemSelected(object senderObject, EventArgs ev)
+ {
+ _isItemSelected = true;
+ Element.SetValueFromRenderer(Picker.SelectedIndexProperty, _itemToItemNumber[(senderObject as List)?.SelectedItem]);
+
+ if (_isSecondaryItemSelected)
+ {
+ var selectedIndexes = new int[] { _itemToItemNumber[_list?.SelectedItem], _secondaryItemToItemNumber[_secondaryList?.SelectedItem] };
+ Element.SetValueFromRenderer(DoublePicker.SelectedIndexesProperty, selectedIndexes);
+ DoublePickerElement.RaiseSelectedIndexesChanged(selectedIndexes);
+ _dialog.Dismiss();
+ }
+ }
+
+ void OnSecondaryItemSelected(object senderObject, EventArgs ev)
+ {
+ _isSecondaryItemSelected = true;
+ if (_isItemSelected)
+ {
+ var selectedIndexes = new int[] { _itemToItemNumber[_list?.SelectedItem], _secondaryItemToItemNumber[_secondaryList?.SelectedItem] };
+ Element.SetValueFromRenderer(DoublePicker.SelectedIndexesProperty, selectedIndexes);
+ DoublePickerElement.RaiseSelectedIndexesChanged(selectedIndexes);
+ _dialog.Dismiss();
+ }
+ }
+
+ void OnDialogDismissed(object sender, EventArgs e)
+ {
+ _isDialogClosed = true;
+ _isItemSelected = false;
+ _isSecondaryItemSelected = false;
+ Control.SetFocus(false);
+ CleanView();
+ }
+
+ void CleanView()
+ {
+ if (null != _list)
+ {
+ _list.Unrealize();
+ _itemToItemNumber.Clear();
+ _list = null;
+ }
+ if (null != _secondaryList)
+ {
+ _secondaryList.Unrealize();
+ _secondaryItemToItemNumber.Clear();
+ _secondaryList = null;
+ }
+ if (null != _dialog)
+ {
+ _dialog.Unrealize();
+ _dialog = null;
+ }
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialEditorRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialEditorRenderer.cs
new file mode 100644
index 00000000..9b05aca2
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialEditorRenderer.cs
@@ -0,0 +1,15 @@
+using Plugin.MaterialDesignControls.Implementations;
+using Plugin.MaterialDesignControls.Tizen;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+
+
+[assembly: ExportRenderer(typeof(CustomEditor), typeof(MaterialEditorRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialEditorRenderer : EditorRenderer
+ {
+ public static void Init() { }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialEntryRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialEntryRenderer.cs
new file mode 100644
index 00000000..449a59f6
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialEntryRenderer.cs
@@ -0,0 +1,37 @@
+using Plugin.MaterialDesignControls.Implementations;
+using Plugin.MaterialDesignControls.Tizen;
+using System.ComponentModel;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using Xamarin.Forms.Platform.Tizen.Native;
+using EEntry = ElmSharp.Entry;
+using XEntry = Xamarin.Forms.Entry;
+using EColor = ElmSharp.Color;
+
+[assembly: ExportRenderer(typeof(CustomEntry), typeof(MaterialEntryRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialEntryRenderer : EntryRenderer
+ {
+ public static void Init() { }
+
+ protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ base.OnElementPropertyChanged(sender, e);
+ if (e.PropertyName == nameof(Element.IsPassword))
+ {
+ Control.SetPartText("elm.guide", "" + Element.Placeholder + "");
+ }
+ }
+
+ string ToHex(EColor c)
+ {
+ if (c.IsDefault)
+ {
+ Log.Warn("Trying to convert the default color to hexagonal notation, it does not works as expected.");
+ }
+ return string.Format("#{0:X2}{1:X2}{2:X2}{3:X2}", c.R, c.G, c.B, c.A);
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialLabelRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialLabelRenderer.cs
new file mode 100644
index 00000000..7e532435
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialLabelRenderer.cs
@@ -0,0 +1,14 @@
+using Plugin.MaterialDesignControls;
+using Plugin.MaterialDesignControls.Tizen;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+
+[assembly: ExportRenderer(typeof(MaterialLabel), typeof(MaterialLabelRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialLabelRenderer : LabelRenderer
+ {
+ public static void Init() { }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialPickerRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialPickerRenderer.cs
new file mode 100644
index 00000000..aab1a687
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialPickerRenderer.cs
@@ -0,0 +1,215 @@
+using System;
+using System.Collections.Generic;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using Xamarin.Forms.Platform.Tizen.Native;
+using Xamarin.Forms.Platform.Tizen.Native.Watch;
+using Plugin.MaterialDesignControls.Implementations;
+using Plugin.MaterialDesignControls.Tizen;
+using Plugin.MaterialDesignControls.Tizen.Utils;
+using NLabel = Xamarin.Forms.Platform.Tizen.Native.Label;
+using ElmSharp;
+using Size = Xamarin.Forms.Size;
+
+[assembly: ExportRenderer(typeof(CustomPicker), typeof(MaterialPickerRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialPickerRenderer : ViewRenderer
+ {
+ List _list;
+ Dialog _dialog;
+ bool _isDialogOpened;
+ bool _isDialogClosed;
+ Dictionary _itemToItemNumber = new Dictionary();
+
+ CustomPicker CustomPickerElement => Element as CustomPicker;
+
+ public static void Init() { }
+
+ public MaterialPickerRenderer()
+ {
+ RegisterPropertyHandler(Picker.SelectedIndexProperty, UpdateSelectedIndex);
+ RegisterPropertyHandler(Picker.TextColorProperty, UpdateTextColor);
+ RegisterPropertyHandler(Picker.FontSizeProperty, UpdateFontSize);
+ RegisterPropertyHandler(Picker.FontFamilyProperty, UpdateFontFamily);
+ RegisterPropertyHandler(Picker.FontAttributesProperty, UpdateFontAttributes);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (Control != null)
+ {
+ CleanView();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ if (Control == null)
+ {
+ var label = CreateNativeControl();
+ label.SetVerticalTextAlignment("elm.text", 0.5);
+ label.HorizontalTextAlignment = TextAlignmentHelper.Convert(CustomPickerElement.HorizontalTextAlignment);
+ SetNativeControl(label);
+ }
+ base.OnElementChanged(e);
+ }
+
+ protected virtual Dialog CreateDialog()
+ {
+ if (Device.Idiom == TargetIdiom.Watch)
+ {
+ return new WatchDialog(Forms.NativeParent, false);
+ }
+ else
+ {
+ return new Dialog(Forms.NativeParent);
+ }
+ }
+
+ protected override void OnFocused(object sender, EventArgs e)
+ {
+ base.OnFocused(sender, e);
+ if (Element.IsEnabled && ((!_isDialogOpened & !_isDialogClosed) || (_isDialogOpened & _isDialogClosed)))
+ {
+ int i = 0;
+ _dialog = CreateDialog();
+ _dialog.AlignmentX = -1;
+ _dialog.AlignmentY = -1;
+ _dialog.Dismissed += OnDialogDismissed;
+ _dialog.ShowAnimationFinished += (s1, e1) =>
+ {
+ _isDialogOpened = true;
+ Control.SetFocus(true);
+ };
+ _dialog.BackButtonPressed += (s2, e2) =>
+ {
+ _dialog.Dismiss();
+ };
+ _dialog.Title = Element.Title;
+ _dialog.TitleColor = Element.TitleColor.ToNative();
+
+ _list = new List(_dialog);
+ foreach (var s in Element.Items)
+ {
+ ListItem item = _list.Append(s);
+ _itemToItemNumber[item] = i;
+ i++;
+ }
+ _list.ItemSelected += OnItemSelected;
+ _dialog.Content = _list;
+
+ // You need to call Show() after ui thread occupation because of EFL problem.
+ // Otherwise, the content of the popup will not receive focus.
+ Device.BeginInvokeOnMainThread(() =>
+ {
+ _dialog?.Show();
+ _list?.Show();
+ });
+ }
+ }
+
+ protected override void OnUnfocused(object sender, EventArgs e)
+ {
+ base.OnUnfocused(sender, e);
+ if (_isDialogOpened && _isDialogClosed)
+ {
+ _isDialogClosed = false;
+ _isDialogOpened = false;
+ }
+ }
+
+ protected override Size MinimumSize()
+ {
+ if (Control is IMeasurable im)
+ {
+ return im.Measure(Control.MinimumWidth, Control.MinimumHeight).ToDP();
+ }
+ else
+ {
+ return base.MinimumSize();
+ }
+ }
+
+ protected virtual NLabel CreateNativeControl()
+ {
+ var control = new NLabel(Forms.NativeParent);
+ control.AllowFocus(true);
+ return control;
+ }
+
+ protected virtual void UpdateSelectedIndex()
+ {
+ if ((Element.SelectedIndex == -1 || Element.Items == null))
+ {
+ if (!string.IsNullOrEmpty(CustomPickerElement.Placeholder))
+ {
+ Control.Text = CustomPickerElement.Placeholder;
+ Control.TextColor = CustomPickerElement.PlaceholderColor.ToNative();
+ }
+ else
+ {
+ Control.Text = "";
+ }
+ }
+ else
+ {
+ Control.Text = Element.Items[Element.SelectedIndex];
+ Control.TextColor = Element.TextColor.ToNative();
+ }
+ }
+
+ protected virtual void UpdateTextColor()
+ {
+ Control.TextColor = Element.TextColor.ToNative();
+ }
+
+ void UpdateFontSize()
+ {
+ Control.FontSize = Element.FontSize;
+ }
+
+ void UpdateFontFamily()
+ {
+ Control.FontFamily = Element.FontFamily;
+ }
+
+ void UpdateFontAttributes()
+ {
+ Control.FontAttributes = Element.FontAttributes;
+ }
+
+ void OnItemSelected(object senderObject, EventArgs ev)
+ {
+ Element.SetValueFromRenderer(Picker.SelectedIndexProperty, _itemToItemNumber[(senderObject as List)?.SelectedItem]);
+ _dialog.Dismiss();
+ }
+
+ void OnDialogDismissed(object sender, EventArgs e)
+ {
+ _isDialogClosed = true;
+ Control.SetFocus(false);
+ CleanView();
+ }
+
+ void CleanView()
+ {
+ if (null != _list)
+ {
+ _list.Unrealize();
+ _itemToItemNumber.Clear();
+ _list = null;
+ }
+ if (null != _dialog)
+ {
+ _dialog.Unrealize();
+ _dialog = null;
+ }
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Renderers/MaterialTimePickerRenderer.cs b/src/MaterialDesignControls.Tizen/Renderers/MaterialTimePickerRenderer.cs
new file mode 100644
index 00000000..4e81462e
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Renderers/MaterialTimePickerRenderer.cs
@@ -0,0 +1,187 @@
+using System;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Tizen;
+using Xamarin.Forms.Platform.Tizen.Native;
+using Xamarin.Forms.Platform.Tizen.Native.Watch;
+using Plugin.MaterialDesignControls.Implementations;
+using Plugin.MaterialDesignControls.Tizen;
+using Plugin.MaterialDesignControls.Tizen.Utils;
+using NLabel = Xamarin.Forms.Platform.Tizen.Native.Label;
+using NDateChangedEventArgs = Xamarin.Forms.Platform.Tizen.Native.DateChangedEventArgs;
+
+[assembly: ExportRenderer(typeof(CustomTimePicker), typeof(MaterialTimePickerRenderer))]
+
+namespace Plugin.MaterialDesignControls.Tizen
+{
+ public class MaterialTimePickerRenderer : ViewRenderer
+ {
+ const string DialogTitle = "Choose Time";
+ static readonly string s_defaultFormat = "h:mm tt";
+
+ Lazy _lazyDialog;
+ bool _isDialogOpened;
+ bool _isDialogClosed;
+
+ CustomTimePicker CustomTimePickerElement => Element as CustomTimePicker;
+
+ public static void Init() { }
+
+ protected TimeSpan Time = DateTime.Now.TimeOfDay;
+
+ public MaterialTimePickerRenderer()
+ {
+ RegisterPropertyHandler(TimePicker.TimeProperty, UpdateTime);
+ RegisterPropertyHandler(TimePicker.FormatProperty, UpdateTime);
+ RegisterPropertyHandler(TimePicker.TextColorProperty, UpdateTime);
+ RegisterPropertyHandler(TimePicker.FontAttributesProperty, UpdateFontAttributes);
+ RegisterPropertyHandler(TimePicker.FontFamilyProperty, UpdateFontFamily);
+ RegisterPropertyHandler(TimePicker.FontSizeProperty, UpdateFontSize);
+ }
+
+ protected virtual IDateTimeDialog CreateDialog()
+ {
+ if (Device.Idiom == TargetIdiom.Watch)
+ {
+ return new WatchDateTimePickerDialog(Forms.NativeParent);
+ }
+ else
+ {
+ return new DateTimePickerDialog(Forms.NativeParent);
+ }
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ if (Control == null)
+ {
+ var label = CreateNativeControl();
+ label.SetVerticalTextAlignment("elm.text", 0.5);
+ label.HorizontalTextAlignment = TextAlignmentHelper.Convert(CustomTimePickerElement.HorizontalTextAlignment);
+ SetNativeControl(label);
+
+ _lazyDialog = new Lazy(() =>
+ {
+ var dialog = CreateDialog();
+ dialog.Mode = DateTimePickerMode.Time;
+ dialog.Title = DialogTitle;
+ dialog.DateTimeChanged += OnDateTimeChanged;
+ dialog.PickerOpened += OnPickerOpened;
+ dialog.PickerClosed += OnPickerClosed;
+ return dialog;
+ });
+ }
+ base.OnElementChanged(e);
+ }
+
+ protected virtual NLabel CreateNativeControl()
+ {
+ var control = new NLabel(Forms.NativeParent);
+ control.AllowFocus(true);
+ return control;
+ }
+
+ protected override void OnFocused(object sender, EventArgs e)
+ {
+ base.OnFocused(sender, e);
+ if (Element.IsEnabled && ((!_isDialogOpened & !_isDialogClosed) || (_isDialogOpened & _isDialogClosed)))
+ {
+ var dialog = _lazyDialog.Value;
+ dialog.DateTime -= dialog.DateTime.TimeOfDay;
+ dialog.DateTime += Element.Time;
+
+ // You need to call Show() after ui thread occupation because of EFL problem.
+ // Otherwise, the content of the popup will not receive focus.
+ Device.BeginInvokeOnMainThread(() => dialog.Show());
+ }
+ }
+
+ protected override void OnUnfocused(object sender, EventArgs e)
+ {
+ base.OnUnfocused(sender, e);
+ if (_isDialogOpened && _isDialogClosed)
+ {
+ _isDialogClosed = false;
+ _isDialogOpened = false;
+ }
+ }
+
+ protected override Size MinimumSize()
+ {
+ if (Control is IMeasurable im)
+ {
+ return im.Measure(Control.MinimumWidth, Control.MinimumHeight).ToDP();
+ }
+ else
+ {
+ return base.MinimumSize();
+ }
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (_lazyDialog.IsValueCreated)
+ {
+ _lazyDialog.Value.DateTimeChanged -= OnDateTimeChanged;
+ _lazyDialog.Value.PickerOpened -= OnPickerOpened;
+ _lazyDialog.Value.PickerClosed -= OnPickerClosed;
+ _lazyDialog.Value.Unrealize();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ protected virtual void OnDateTimeChanged(object sender, NDateChangedEventArgs dcea)
+ {
+ Element.SetValueFromRenderer(TimePicker.TimeProperty, dcea.NewDate.TimeOfDay);
+ UpdateTime();
+ }
+
+ protected virtual void UpdateTime()
+ {
+ if (!CustomTimePickerElement.Time.HasValue && !string.IsNullOrEmpty(CustomTimePickerElement.Placeholder))
+ {
+ Control.Text = CustomTimePickerElement.Placeholder;
+ Control.TextColor = CustomTimePickerElement.PlaceholderColor.ToNative();
+ }
+ else
+ {
+ Time = Element.Time;
+ var format = s_defaultFormat;
+ if (!string.IsNullOrEmpty(CustomTimePickerElement.Format) && CustomTimePickerElement.Format != "t")
+ format = CustomTimePickerElement.Format;
+
+ Control.Text = new DateTime(Time.Ticks).ToString(format);
+ Control.TextColor = Element.TextColor.ToNative();
+ }
+ }
+
+ protected virtual void OnPickerOpened(object sender, EventArgs args)
+ {
+ _isDialogOpened = true;
+ Control.SetFocus(true);
+ }
+
+ protected virtual void OnPickerClosed(object sender, EventArgs args)
+ {
+ _isDialogClosed = true;
+ Control.SetFocus(false);
+ }
+
+ void UpdateFontSize()
+ {
+ Control.FontSize = Element.FontSize;
+ }
+
+ void UpdateFontFamily()
+ {
+ Control.FontFamily = Element.FontFamily;
+ }
+
+ void UpdateFontAttributes()
+ {
+ Control.FontAttributes = Element.FontAttributes;
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.Tizen/Utils/TextAlignmentHelper.cs b/src/MaterialDesignControls.Tizen/Utils/TextAlignmentHelper.cs
new file mode 100644
index 00000000..cf9a8d6d
--- /dev/null
+++ b/src/MaterialDesignControls.Tizen/Utils/TextAlignmentHelper.cs
@@ -0,0 +1,23 @@
+using Xamarin.Forms;
+using NTextAlignment = Xamarin.Forms.Platform.Tizen.Native.TextAlignment;
+
+namespace Plugin.MaterialDesignControls.Tizen.Utils
+{
+ public static class TextAlignmentHelper
+ {
+ public static NTextAlignment Convert(TextAlignment textAlignment)
+ {
+ switch (textAlignment)
+ {
+ case TextAlignment.Start:
+ return NTextAlignment.Start;
+ case TextAlignment.Center:
+ return NTextAlignment.Center;
+ case TextAlignment.End:
+ return NTextAlignment.End;
+ default:
+ return NTextAlignment.None;
+ }
+ }
+ }
+}
diff --git a/src/MaterialDesignControls.sln b/src/MaterialDesignControls.sln
index ced19450..c361975d 100644
--- a/src/MaterialDesignControls.sln
+++ b/src/MaterialDesignControls.sln
@@ -1,9 +1,9 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27703.2035
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30114.105
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls", "MaterialDesignControls\MaterialDesignControls.csproj", "{6828B960-D79F-4B88-B54E-D15728EE8E2D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaterialDesignControls", "MaterialDesignControls\MaterialDesignControls.csproj", "{6828B960-D79F-4B88-B54E-D15728EE8E2D}"
EndProject
Project("{5DD5E4FA-CB73-4610-85AB-557B54E96AA9}") = "MaterialDesignControls.NuGet", "MaterialDesignControls.NuGet\MaterialDesignControls.NuGet.nuproj", "{182D6E78-8F89-40DF-BBA1-1A30F8734373}"
EndProject
@@ -11,64 +11,78 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls.iOS"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls.Android", "MaterialDesignControls.Android\MaterialDesignControls.Android.csproj", "{771F5490-1C4C-4BFF-A829-E532336552F8}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaterialDesignControls.Tizen", "MaterialDesignControls.Tizen\MaterialDesignControls.Tizen.csproj", "{7895C453-76F3-44A5-886E-7676619EC941}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Release|iPhoneSimulator = Release|iPhoneSimulator
Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|Any CPU.Build.0 = Release|Any CPU
- {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|Any CPU.Build.0 = Release|Any CPU
{6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|iPhone.ActiveCfg = Release|Any CPU
{6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|iPhone.Build.0 = Release|Any CPU
+ {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {6828B960-D79F-4B88-B54E-D15728EE8E2D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|Any CPU.Build.0 = Release|Any CPU
- {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|Any CPU.Build.0 = Release|Any CPU
{182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|iPhone.ActiveCfg = Release|Any CPU
{182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|iPhone.Build.0 = Release|Any CPU
+ {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {182D6E78-8F89-40DF-BBA1-1A30F8734373}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|Any CPU.Build.0 = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhone.ActiveCfg = Release|Any CPU
{2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhone.Build.0 = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {2BFC48FE-5BE1-4482-8469-77DDA82D13C8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.Build.0 = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|Any CPU.Build.0 = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhone.ActiveCfg = Release|Any CPU
{771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhone.Build.0 = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {771F5490-1C4C-4BFF-A829-E532336552F8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Release|iPhone.Build.0 = Release|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {7895C453-76F3-44A5-886E-7676619EC941}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/MaterialDesignControls/Controls/MaterialButton.cs b/src/MaterialDesignControls/Controls/MaterialButton.cs
index 5a2aa88a..daaaeb63 100644
--- a/src/MaterialDesignControls/Controls/MaterialButton.cs
+++ b/src/MaterialDesignControls/Controls/MaterialButton.cs
@@ -351,6 +351,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
this.frmLayout.BorderColor = this.IsEnabled ? this.BorderColor : this.DisabledBorderColor;
}
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialChips.xaml.cs b/src/MaterialDesignControls/Controls/MaterialChips.xaml.cs
index f0c71e54..82bf2cf8 100644
--- a/src/MaterialDesignControls/Controls/MaterialChips.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialChips.xaml.cs
@@ -349,6 +349,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.BorderColor):
this.frmContainer.BorderColor = this.BorderColor;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialChipsGroup.xaml.cs b/src/MaterialDesignControls/Controls/MaterialChipsGroup.xaml.cs
index 1104cd9d..e0bbc538 100644
--- a/src/MaterialDesignControls/Controls/MaterialChipsGroup.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialChipsGroup.xaml.cs
@@ -364,7 +364,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.AssistiveSize):
this.lblAssistive.FontSize = this.AssistiveSize;
break;
-
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialDatePicker.xaml.cs b/src/MaterialDesignControls/Controls/MaterialDatePicker.xaml.cs
index 8626b41d..660952fc 100644
--- a/src/MaterialDesignControls/Controls/MaterialDatePicker.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialDatePicker.xaml.cs
@@ -452,6 +452,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialDoublePicker.xaml.cs b/src/MaterialDesignControls/Controls/MaterialDoublePicker.xaml.cs
index 9754f0dc..7b99c064 100644
--- a/src/MaterialDesignControls/Controls/MaterialDoublePicker.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialDoublePicker.xaml.cs
@@ -580,6 +580,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialEditor.xaml.cs b/src/MaterialDesignControls/Controls/MaterialEditor.xaml.cs
index e36161ad..e676cb95 100644
--- a/src/MaterialDesignControls/Controls/MaterialEditor.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialEditor.xaml.cs
@@ -481,6 +481,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialEntry.xaml.cs b/src/MaterialDesignControls/Controls/MaterialEntry.xaml.cs
index 2cbc3b0e..a8094f0b 100644
--- a/src/MaterialDesignControls/Controls/MaterialEntry.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialEntry.xaml.cs
@@ -553,6 +553,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialField.cs b/src/MaterialDesignControls/Controls/MaterialField.cs
index 768bfacd..7737d135 100644
--- a/src/MaterialDesignControls/Controls/MaterialField.cs
+++ b/src/MaterialDesignControls/Controls/MaterialField.cs
@@ -299,6 +299,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
}
this.imgTrailingIcon.IsVisible = this.TrailingIconIsVisible;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialPicker.xaml.cs b/src/MaterialDesignControls/Controls/MaterialPicker.xaml.cs
index 4f6e993b..28e66b6b 100644
--- a/src/MaterialDesignControls/Controls/MaterialPicker.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialPicker.xaml.cs
@@ -540,6 +540,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialSelection.xaml.cs b/src/MaterialDesignControls/Controls/MaterialSelection.xaml.cs
index 93eae048..620acaa9 100644
--- a/src/MaterialDesignControls/Controls/MaterialSelection.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialSelection.xaml.cs
@@ -409,6 +409,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}
diff --git a/src/MaterialDesignControls/Controls/MaterialTimePicker.xaml.cs b/src/MaterialDesignControls/Controls/MaterialTimePicker.xaml.cs
index b373d469..223cc73e 100644
--- a/src/MaterialDesignControls/Controls/MaterialTimePicker.xaml.cs
+++ b/src/MaterialDesignControls/Controls/MaterialTimePicker.xaml.cs
@@ -428,6 +428,9 @@ protected override void OnPropertyChanged([CallerMemberName] string propertyName
case nameof(this.FieldHeightRequest):
this.frmContainer.HeightRequest = this.FieldHeightRequest;
break;
+ default:
+ base.OnPropertyChanged(propertyName);
+ break;
}
}