├── .gitignore
├── LICENSE
├── NuGet
└── Xam.Plugin.MultiGestureView.nuspec
├── README.md
├── Sample
├── MultiGestureViewSample.sln
└── MultiGestureViewSample
│ ├── MultiGestureViewSample.Android
│ ├── Assets
│ │ └── AboutAssets.txt
│ ├── MainActivity.cs
│ ├── MultiGestureViewSample.Android.csproj
│ ├── Properties
│ │ ├── AndroidManifest.xml
│ │ └── AssemblyInfo.cs
│ └── Resources
│ │ ├── AboutResources.txt
│ │ ├── Resource.designer.cs
│ │ ├── drawable-hdpi
│ │ └── icon.png
│ │ ├── drawable-xhdpi
│ │ └── icon.png
│ │ ├── drawable-xxhdpi
│ │ └── icon.png
│ │ ├── drawable
│ │ └── icon.png
│ │ ├── layout
│ │ ├── Main.axml
│ │ ├── Tabbar.axml
│ │ └── Toolbar.axml
│ │ ├── mipmap-hdpi
│ │ └── Icon.png
│ │ ├── mipmap-mdpi
│ │ └── Icon.png
│ │ ├── mipmap-xhdpi
│ │ └── Icon.png
│ │ ├── mipmap-xxhdpi
│ │ └── Icon.png
│ │ ├── mipmap-xxxhdpi
│ │ └── Icon.png
│ │ └── values
│ │ ├── Strings.xml
│ │ └── styles.xml
│ ├── MultiGestureViewSample.UWP
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-100.png
│ │ ├── LockScreenLogo.scale-125.png
│ │ ├── LockScreenLogo.scale-150.png
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── LockScreenLogo.scale-400.png
│ │ ├── SplashScreen.scale-100.png
│ │ ├── SplashScreen.scale-125.png
│ │ ├── SplashScreen.scale-150.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── SplashScreen.scale-400.png
│ │ ├── Square150x150Logo.scale-100.png
│ │ ├── Square150x150Logo.scale-125.png
│ │ ├── Square150x150Logo.scale-150.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square150x150Logo.scale-400.png
│ │ ├── Square44x44Logo.scale-100.png
│ │ ├── Square44x44Logo.scale-125.png
│ │ ├── Square44x44Logo.scale-150.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-400.png
│ │ ├── Square44x44Logo.targetsize-16_altform-unplated.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── Square44x44Logo.targetsize-256_altform-unplated.png
│ │ ├── Square44x44Logo.targetsize-32_altform-unplated.png
│ │ ├── Square44x44Logo.targetsize-48_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ ├── Wide310x150Logo.scale-100.png
│ │ ├── Wide310x150Logo.scale-125.png
│ │ ├── Wide310x150Logo.scale-150.png
│ │ ├── Wide310x150Logo.scale-200.png
│ │ └── Wide310x150Logo.scale-400.png
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── MultiGestureViewSample.UWP.csproj
│ ├── Package.appxmanifest
│ └── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Default.rd.xml
│ ├── MultiGestureViewSample.iOS
│ ├── AppDelegate.cs
│ ├── Entitlements.plist
│ ├── Info.plist
│ ├── Main.cs
│ ├── MultiGestureViewSample.iOS.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── Resources
│ │ ├── Default-568h@2x.png
│ │ ├── Default-Portrait.png
│ │ ├── Default-Portrait@2x.png
│ │ ├── Default.png
│ │ ├── Default@2x.png
│ │ ├── Icon-60@2x.png
│ │ ├── Icon-60@3x.png
│ │ ├── Icon-76.png
│ │ ├── Icon-76@2x.png
│ │ ├── Icon-Small-40.png
│ │ ├── Icon-Small-40@2x.png
│ │ ├── Icon-Small-40@3x.png
│ │ ├── Icon-Small.png
│ │ ├── Icon-Small@2x.png
│ │ ├── Icon-Small@3x.png
│ │ └── LaunchScreen.storyboard
│ └── MultiGestureViewSample
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── MultiGestureViewSample.csproj
│ ├── Pages
│ ├── TestPage.xaml
│ └── TestPage.xaml.cs
│ └── ViewModels
│ ├── ObservableBase.cs
│ └── TestPageViewModel.cs
└── Source
├── MultiGestureViewPlugin.Portable
├── IVibrator.cs
├── MultiGestureView.cs
├── MultiGestureViewPlugin.Portable.csproj
├── Properties
│ └── AssemblyInfo.cs
└── packages.config
├── MultiGestureViewPlugin.sln
└── MultiGestureViewPlugin
├── MultiGestureViewPlugin.Android
├── MultiGestureViewPlugin.Android.csproj
├── MultiGestureViewRenderer.cs
├── Properties
│ ├── AndroidManifest.xml
│ └── AssemblyInfo.cs
├── Resources
│ └── Resource.designer.cs
└── Vibrator.cs
├── MultiGestureViewPlugin.UWP
├── MainPage.cs
├── MultiGestureViewPlugin.UWP.csproj
├── MultiGestureViewRenderer.cs
├── Package.appxmanifest
├── Properties
│ ├── AssemblyInfo.cs
│ └── Default.rd.xml
└── Vibrator.cs
├── MultiGestureViewPlugin.iOS
├── Info.plist
├── Main.cs
├── MultiGestureViewPlugin.iOS.csproj
├── MultiGestureViewRenderer.cs
├── Properties
│ └── AssemblyInfo.cs
└── Vibrator.cs
└── MultiGestureViewPlugin
├── IVibrator.cs
├── MultiGestureView.cs
└── MultiGestureViewPlugin.csproj
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | [Dd]ebug/
17 | [Dd]ebugPublic/
18 | [Rr]elease/
19 | [Rr]eleases/
20 | x64/
21 | x86/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 | [Ll]og/
26 |
27 | # Visual Studio 2015/2017 cache/options directory
28 | .vs/
29 | # Uncomment if you have tasks that create the project's static files in wwwroot
30 | #wwwroot/
31 |
32 | # Visual Studio 2017 auto generated files
33 | Generated\ Files/
34 |
35 | # MSTest test Results
36 | [Tt]est[Rr]esult*/
37 | [Bb]uild[Ll]og.*
38 |
39 | # NUNIT
40 | *.VisualState.xml
41 | TestResult.xml
42 |
43 | # Build Results of an ATL Project
44 | [Dd]ebugPS/
45 | [Rr]eleasePS/
46 | dlldata.c
47 |
48 | # Benchmark Results
49 | BenchmarkDotNet.Artifacts/
50 |
51 | # .NET Core
52 | project.lock.json
53 | project.fragment.lock.json
54 | artifacts/
55 | **/Properties/launchSettings.json
56 |
57 | # StyleCop
58 | StyleCopReport.xml
59 |
60 | # Files built by Visual Studio
61 | *_i.c
62 | *_p.c
63 | *_i.h
64 | *.ilk
65 | *.meta
66 | *.obj
67 | *.iobj
68 | *.pch
69 | *.pdb
70 | *.ipdb
71 | *.pgc
72 | *.pgd
73 | *.rsp
74 | *.sbr
75 | *.tlb
76 | *.tli
77 | *.tlh
78 | *.tmp
79 | *.tmp_proj
80 | *.log
81 | *.vspscc
82 | *.vssscc
83 | .builds
84 | *.pidb
85 | *.svclog
86 | *.scc
87 |
88 | # Chutzpah Test files
89 | _Chutzpah*
90 |
91 | # Visual C++ cache files
92 | ipch/
93 | *.aps
94 | *.ncb
95 | *.opendb
96 | *.opensdf
97 | *.sdf
98 | *.cachefile
99 | *.VC.db
100 | *.VC.VC.opendb
101 |
102 | # Visual Studio profiler
103 | *.psess
104 | *.vsp
105 | *.vspx
106 | *.sap
107 |
108 | # Visual Studio Trace Files
109 | *.e2e
110 |
111 | # TFS 2012 Local Workspace
112 | $tf/
113 |
114 | # Guidance Automation Toolkit
115 | *.gpState
116 |
117 | # ReSharper is a .NET coding add-in
118 | _ReSharper*/
119 | *.[Rr]e[Ss]harper
120 | *.DotSettings.user
121 |
122 | # JustCode is a .NET coding add-in
123 | .JustCode
124 |
125 | # TeamCity is a build add-in
126 | _TeamCity*
127 |
128 | # DotCover is a Code Coverage Tool
129 | *.dotCover
130 |
131 | # AxoCover is a Code Coverage Tool
132 | .axoCover/*
133 | !.axoCover/settings.json
134 |
135 | # Visual Studio code coverage results
136 | *.coverage
137 | *.coveragexml
138 |
139 | # NCrunch
140 | _NCrunch_*
141 | .*crunch*.local.xml
142 | nCrunchTemp_*
143 |
144 | # MightyMoose
145 | *.mm.*
146 | AutoTest.Net/
147 |
148 | # Web workbench (sass)
149 | .sass-cache/
150 |
151 | # Installshield output folder
152 | [Ee]xpress/
153 |
154 | # DocProject is a documentation generator add-in
155 | DocProject/buildhelp/
156 | DocProject/Help/*.HxT
157 | DocProject/Help/*.HxC
158 | DocProject/Help/*.hhc
159 | DocProject/Help/*.hhk
160 | DocProject/Help/*.hhp
161 | DocProject/Help/Html2
162 | DocProject/Help/html
163 |
164 | # Click-Once directory
165 | publish/
166 |
167 | # Publish Web Output
168 | *.[Pp]ublish.xml
169 | *.azurePubxml
170 | # Note: Comment the next line if you want to checkin your web deploy settings,
171 | # but database connection strings (with potential passwords) will be unencrypted
172 | *.pubxml
173 | *.publishproj
174 |
175 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
176 | # checkin your Azure Web App publish settings, but sensitive information contained
177 | # in these scripts will be unencrypted
178 | PublishScripts/
179 |
180 | # NuGet Packages
181 | *.nupkg
182 | # The packages folder can be ignored because of Package Restore
183 | **/[Pp]ackages/*
184 | # except build/, which is used as an MSBuild target.
185 | !**/[Pp]ackages/build/
186 | # Uncomment if necessary however generally it will be regenerated when needed
187 | #!**/[Pp]ackages/repositories.config
188 | # NuGet v3's project.json files produces more ignorable files
189 | *.nuget.props
190 | *.nuget.targets
191 |
192 | # Microsoft Azure Build Output
193 | csx/
194 | *.build.csdef
195 |
196 | # Microsoft Azure Emulator
197 | ecf/
198 | rcf/
199 |
200 | # Windows Store app package directories and files
201 | AppPackages/
202 | BundleArtifacts/
203 | Package.StoreAssociation.xml
204 | _pkginfo.txt
205 | *.appx
206 |
207 | # Visual Studio cache files
208 | # files ending in .cache can be ignored
209 | *.[Cc]ache
210 | # but keep track of directories ending in .cache
211 | !*.[Cc]ache/
212 |
213 | # Others
214 | ClientBin/
215 | ~$*
216 | *~
217 | *.dbmdl
218 | *.dbproj.schemaview
219 | *.jfm
220 | *.pfx
221 | *.publishsettings
222 | orleans.codegen.cs
223 |
224 | # Including strong name files can present a security risk
225 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
226 | #*.snk
227 |
228 | # Since there are multiple workflows, uncomment next line to ignore bower_components
229 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
230 | #bower_components/
231 |
232 | # RIA/Silverlight projects
233 | Generated_Code/
234 |
235 | # Backup & report files from converting an old project file
236 | # to a newer Visual Studio version. Backup files are not needed,
237 | # because we have git ;-)
238 | _UpgradeReport_Files/
239 | Backup*/
240 | UpgradeLog*.XML
241 | UpgradeLog*.htm
242 | ServiceFabricBackup/
243 | *.rptproj.bak
244 |
245 | # SQL Server files
246 | *.mdf
247 | *.ldf
248 | *.ndf
249 |
250 | # Business Intelligence projects
251 | *.rdl.data
252 | *.bim.layout
253 | *.bim_*.settings
254 | *.rptproj.rsuser
255 |
256 | # Microsoft Fakes
257 | FakesAssemblies/
258 |
259 | # GhostDoc plugin setting file
260 | *.GhostDoc.xml
261 |
262 | # Node.js Tools for Visual Studio
263 | .ntvs_analysis.dat
264 | node_modules/
265 |
266 | # Visual Studio 6 build log
267 | *.plg
268 |
269 | # Visual Studio 6 workspace options file
270 | *.opt
271 |
272 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
273 | *.vbw
274 |
275 | # Visual Studio LightSwitch build output
276 | **/*.HTMLClient/GeneratedArtifacts
277 | **/*.DesktopClient/GeneratedArtifacts
278 | **/*.DesktopClient/ModelManifest.xml
279 | **/*.Server/GeneratedArtifacts
280 | **/*.Server/ModelManifest.xml
281 | _Pvt_Extensions
282 |
283 | # Paket dependency manager
284 | .paket/paket.exe
285 | paket-files/
286 |
287 | # FAKE - F# Make
288 | .fake/
289 |
290 | # JetBrains Rider
291 | .idea/
292 | *.sln.iml
293 |
294 | # CodeRush
295 | .cr/
296 |
297 | # Python Tools for Visual Studio (PTVS)
298 | __pycache__/
299 | *.pyc
300 |
301 | # Cake - Uncomment if you are using it
302 | # tools/**
303 | # !tools/packages.config
304 |
305 | # Tabs Studio
306 | *.tss
307 |
308 | # Telerik's JustMock configuration file
309 | *.jmconfig
310 |
311 | # BizTalk build output
312 | *.btp.cs
313 | *.btm.cs
314 | *.odx.cs
315 | *.xsd.cs
316 |
317 | # OpenCover UI analysis results
318 | OpenCover/
319 |
320 | # Azure Stream Analytics local run output
321 | ASALocalRun/
322 |
323 | # MSBuild Binary and Structured Log
324 | *.binlog
325 |
326 | # NVidia Nsight GPU debugger configuration file
327 | *.nvuser
328 |
329 | # MFractors (Xamarin productivity tool) working folder
330 | .mfractor/
331 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Sagar Dahal
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/NuGet/Xam.Plugin.MultiGestureView.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Xam.Plugin.MultiGestureView
5 | 1.0.5
6 | MultiGesture View for Xamarin Forms
7 | Sagar Dahal
8 | Sagar Dahal
9 | false
10 | false
11 | https://github.com/chaosifier/MultiGestureView/blob/master/LICENSE
12 | https://github.com/chaosifier/MultiGestureView
13 | https://sagardahal.info.np/images/sd.png
14 | Extended ContentView that Supports gestures like Long Press, Tap and Right Click. Also supports vibration on gesture detection.
15 | Tap, Long press and right click gesture recognizer container view for xamarin with vibration support.
16 | Added static reference option for renderer not loading issue.
17 | en-US
18 | xamarin.forms, xamarin, forms, long, press, tap, longpress, gesture, right, click, vibrate, vibration, chaosifier
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MultiGestureView
2 | Extended ContentView with Events for gestures like Tap, Long Press and Right Click. Also supports Vibration and Vibration duration for haptic feedback.
3 |
4 | #### Setup :
5 | * Available on NuGet: https://www.nuget.org/packages/Xam.Plugin.MultiGestureView/ [](https://www.nuget.org/packages/Xam.Plugin.MultiGestureView/)
6 | * Install in your PCL/.Net Standard 2.0 and client projects.
7 |
8 | * Call Init() method of custom renderers in each platform.
9 | ```
10 | MultiGestureViewRenderer.Init();
11 | ```
12 |
13 | The library needs Vibration permission in Android for vibration to work. The permission should automatically be added if installed from NuGet. If the vibration still doesn't work, try adding the Vibration permission explicitly.
14 |
15 | #### Gesture Support :
16 |
17 | |Platform|Long Press|Tap|Right Click|
18 | | ------------------- | :-----------: | :-----------: | :------------------: |
19 | |Xamarin.iOS Unified|Yes|Yes|No|
20 | |Xamarin.Android|Yes|Yes|No|
21 | |UWP|No|Yes|Yes|
22 |
23 |
24 | #### Basic Usage :
25 |
26 | * Code behind
27 | ```
28 | var gestureView = new MultiGestureView()
29 | {
30 | VibrateOnTap = true,
31 | TapVibrationDuration = 150,
32 | VibrateOnLongPress = true,
33 | LongPressVibrationDuration = 300,
34 | HeightRequest = 300,
35 | WidthRequest = 300,
36 | BackgroundColor = Color.Salmon,
37 | HorizontalOptions = LayoutOptions.Center,
38 | VerticalOptions = LayoutOptions.Center,
39 | Content = new Label() { Text = "Hello World!", HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }
40 | };
41 |
42 | gestureView.Tapped += (s, e) =>
43 | {
44 | DisplayAlert("Tapped", "Tap gesture detected.", "Ok");
45 | };
46 |
47 | gestureView.LongPressed += (s, e) =>
48 | {
49 | DisplayAlert("Long Pressed", "Long press gesture detected.", "Ok");
50 | };
51 |
52 | gestureView.RightClicked += (s, e) =>
53 | {
54 | DisplayAlert("Right Click", "Right click detected.", "Ok");
55 | };
56 | ```
57 |
58 | * XAML
59 | ```
60 |
74 |
80 |
81 | ```
82 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30717.126
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewSample.Android", "MultiGestureViewSample\MultiGestureViewSample.Android\MultiGestureViewSample.Android.csproj", "{361C5045-5A11-4AA1-9072-C1D41CBD6234}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewSample.iOS", "MultiGestureViewSample\MultiGestureViewSample.iOS\MultiGestureViewSample.iOS.csproj", "{6595886E-38EB-44E6-80A3-D8E61348C3F3}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewSample.UWP", "MultiGestureViewSample\MultiGestureViewSample.UWP\MultiGestureViewSample.UWP.csproj", "{47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}"
11 | EndProject
12 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MultiGestureViewSample", "MultiGestureViewSample\MultiGestureViewSample\MultiGestureViewSample.csproj", "{1F3C8176-9EB2-408E-B031-6B2A52C75418}"
13 | EndProject
14 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{79B5A8FB-4CA1-406E-B2CC-59772190C76B}"
15 | EndProject
16 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MultiGestureViewPlugin", "..\Source\MultiGestureViewPlugin\MultiGestureViewPlugin\MultiGestureViewPlugin.csproj", "{23A44E4B-32B8-4D30-8791-93C343789357}"
17 | EndProject
18 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.Android", "..\Source\MultiGestureViewPlugin\MultiGestureViewPlugin.Android\MultiGestureViewPlugin.Android.csproj", "{8FC2A856-C2A6-434C-8C3E-19FBDCA01803}"
19 | EndProject
20 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.iOS", "..\Source\MultiGestureViewPlugin\MultiGestureViewPlugin.iOS\MultiGestureViewPlugin.iOS.csproj", "{87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}"
21 | EndProject
22 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.UWP", "..\Source\MultiGestureViewPlugin\MultiGestureViewPlugin.UWP\MultiGestureViewPlugin.UWP.csproj", "{DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}"
23 | EndProject
24 | Global
25 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
26 | Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
27 | Ad-Hoc|ARM = Ad-Hoc|ARM
28 | Ad-Hoc|iPhone = Ad-Hoc|iPhone
29 | Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
30 | Ad-Hoc|x64 = Ad-Hoc|x64
31 | Ad-Hoc|x86 = Ad-Hoc|x86
32 | AppStore|Any CPU = AppStore|Any CPU
33 | AppStore|ARM = AppStore|ARM
34 | AppStore|iPhone = AppStore|iPhone
35 | AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
36 | AppStore|x64 = AppStore|x64
37 | AppStore|x86 = AppStore|x86
38 | Debug|Any CPU = Debug|Any CPU
39 | Debug|ARM = Debug|ARM
40 | Debug|iPhone = Debug|iPhone
41 | Debug|iPhoneSimulator = Debug|iPhoneSimulator
42 | Debug|x64 = Debug|x64
43 | Debug|x86 = Debug|x86
44 | Release|Any CPU = Release|Any CPU
45 | Release|ARM = Release|ARM
46 | Release|iPhone = Release|iPhone
47 | Release|iPhoneSimulator = Release|iPhoneSimulator
48 | Release|x64 = Release|x64
49 | Release|x86 = Release|x86
50 | EndGlobalSection
51 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
52 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
53 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
54 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
55 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
56 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
57 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
58 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
59 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
60 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
61 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
62 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
63 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
64 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
65 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|x64.Build.0 = Release|Any CPU
66 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
67 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
68 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|x86.Build.0 = Release|Any CPU
69 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
70 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
71 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|Any CPU.Build.0 = Release|Any CPU
72 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
73 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|ARM.ActiveCfg = Release|Any CPU
74 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|ARM.Build.0 = Release|Any CPU
75 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|ARM.Deploy.0 = Release|Any CPU
76 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|iPhone.ActiveCfg = Release|Any CPU
77 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|iPhone.Build.0 = Release|Any CPU
78 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|iPhone.Deploy.0 = Release|Any CPU
79 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
80 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
81 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
82 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|x64.ActiveCfg = Release|Any CPU
83 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|x64.Build.0 = Release|Any CPU
84 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|x64.Deploy.0 = Release|Any CPU
85 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|x86.ActiveCfg = Release|Any CPU
86 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|x86.Build.0 = Release|Any CPU
87 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.AppStore|x86.Deploy.0 = Release|Any CPU
88 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
89 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|Any CPU.Build.0 = Debug|Any CPU
90 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
91 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|ARM.ActiveCfg = Debug|Any CPU
92 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|ARM.Build.0 = Debug|Any CPU
93 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|ARM.Deploy.0 = Debug|Any CPU
94 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|iPhone.ActiveCfg = Debug|Any CPU
95 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|iPhone.Build.0 = Debug|Any CPU
96 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|iPhone.Deploy.0 = Debug|Any CPU
97 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
98 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
99 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
100 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|x64.ActiveCfg = Debug|Any CPU
101 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|x64.Build.0 = Debug|Any CPU
102 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|x64.Deploy.0 = Debug|Any CPU
103 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|x86.ActiveCfg = Debug|Any CPU
104 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|x86.Build.0 = Debug|Any CPU
105 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Debug|x86.Deploy.0 = Debug|Any CPU
106 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|Any CPU.ActiveCfg = Release|Any CPU
107 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|Any CPU.Build.0 = Release|Any CPU
108 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|Any CPU.Deploy.0 = Release|Any CPU
109 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|ARM.ActiveCfg = Release|Any CPU
110 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|ARM.Build.0 = Release|Any CPU
111 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|ARM.Deploy.0 = Release|Any CPU
112 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|iPhone.ActiveCfg = Release|Any CPU
113 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|iPhone.Build.0 = Release|Any CPU
114 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|iPhone.Deploy.0 = Release|Any CPU
115 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
116 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
117 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
118 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|x64.ActiveCfg = Release|Any CPU
119 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|x64.Build.0 = Release|Any CPU
120 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|x64.Deploy.0 = Release|Any CPU
121 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|x86.ActiveCfg = Release|Any CPU
122 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|x86.Build.0 = Release|Any CPU
123 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}.Release|x86.Deploy.0 = Release|Any CPU
124 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
125 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
126 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
127 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
128 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
129 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
130 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
131 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
132 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
133 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|ARM.ActiveCfg = AppStore|iPhone
134 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
135 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|iPhone.Build.0 = AppStore|iPhone
136 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
137 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
138 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|x64.ActiveCfg = AppStore|iPhone
139 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.AppStore|x86.ActiveCfg = AppStore|iPhone
140 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|Any CPU.ActiveCfg = Debug|iPhone
141 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|ARM.ActiveCfg = Debug|iPhone
142 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|iPhone.ActiveCfg = Debug|iPhone
143 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|iPhone.Build.0 = Debug|iPhone
144 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
145 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
146 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|x64.ActiveCfg = Debug|iPhone
147 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Debug|x86.ActiveCfg = Debug|iPhone
148 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|Any CPU.ActiveCfg = Release|iPhone
149 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|ARM.ActiveCfg = Release|iPhone
150 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|iPhone.ActiveCfg = Release|iPhone
151 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|iPhone.Build.0 = Release|iPhone
152 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
153 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
154 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|x64.ActiveCfg = Release|iPhone
155 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}.Release|x86.ActiveCfg = Release|iPhone
156 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86
157 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|Any CPU.Build.0 = Release|x86
158 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86
159 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
160 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|ARM.Build.0 = Release|ARM
161 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
162 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|iPhone.ActiveCfg = Release|x86
163 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|iPhone.Build.0 = Release|x86
164 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|iPhone.Deploy.0 = Release|x86
165 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86
166 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86
167 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86
168 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|x64.ActiveCfg = Release|x64
169 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|x64.Build.0 = Release|x64
170 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|x64.Deploy.0 = Release|x64
171 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|x86.ActiveCfg = Release|x86
172 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|x86.Build.0 = Release|x86
173 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Ad-Hoc|x86.Deploy.0 = Release|x86
174 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|Any CPU.ActiveCfg = Release|x86
175 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|Any CPU.Build.0 = Release|x86
176 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|Any CPU.Deploy.0 = Release|x86
177 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|ARM.ActiveCfg = Release|ARM
178 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|ARM.Build.0 = Release|ARM
179 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|ARM.Deploy.0 = Release|ARM
180 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|iPhone.ActiveCfg = Release|x86
181 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|iPhone.Build.0 = Release|x86
182 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|iPhone.Deploy.0 = Release|x86
183 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86
184 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|iPhoneSimulator.Build.0 = Release|x86
185 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86
186 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|x64.ActiveCfg = Release|x64
187 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|x64.Build.0 = Release|x64
188 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|x64.Deploy.0 = Release|x64
189 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|x86.ActiveCfg = Release|x86
190 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|x86.Build.0 = Release|x86
191 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.AppStore|x86.Deploy.0 = Release|x86
192 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|Any CPU.ActiveCfg = Debug|x86
193 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|ARM.ActiveCfg = Debug|ARM
194 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|ARM.Build.0 = Debug|ARM
195 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|ARM.Deploy.0 = Debug|ARM
196 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|iPhone.ActiveCfg = Debug|x86
197 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
198 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|x64.ActiveCfg = Debug|x64
199 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|x64.Build.0 = Debug|x64
200 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|x64.Deploy.0 = Debug|x64
201 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|x86.ActiveCfg = Debug|x86
202 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|x86.Build.0 = Debug|x86
203 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Debug|x86.Deploy.0 = Debug|x86
204 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|Any CPU.ActiveCfg = Release|x86
205 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|ARM.ActiveCfg = Release|ARM
206 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|ARM.Build.0 = Release|ARM
207 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|ARM.Deploy.0 = Release|ARM
208 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|iPhone.ActiveCfg = Release|x86
209 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|iPhoneSimulator.ActiveCfg = Release|x86
210 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|x64.ActiveCfg = Release|x64
211 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|x64.Build.0 = Release|x64
212 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|x64.Deploy.0 = Release|x64
213 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|x86.ActiveCfg = Release|x86
214 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|x86.Build.0 = Release|x86
215 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}.Release|x86.Deploy.0 = Release|x86
216 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
217 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
218 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
219 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
220 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
221 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
222 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
223 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
224 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
225 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
226 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
227 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
228 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
229 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|Any CPU.Build.0 = Debug|Any CPU
230 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|ARM.ActiveCfg = Debug|Any CPU
231 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|ARM.Build.0 = Debug|Any CPU
232 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
233 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|iPhone.Build.0 = Debug|Any CPU
234 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
235 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
236 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|x64.ActiveCfg = Debug|Any CPU
237 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|x64.Build.0 = Debug|Any CPU
238 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|x86.ActiveCfg = Debug|Any CPU
239 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.AppStore|x86.Build.0 = Debug|Any CPU
240 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
241 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|Any CPU.Build.0 = Debug|Any CPU
242 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|ARM.ActiveCfg = Debug|Any CPU
243 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|ARM.Build.0 = Debug|Any CPU
244 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|iPhone.ActiveCfg = Debug|Any CPU
245 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|iPhone.Build.0 = Debug|Any CPU
246 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
247 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
248 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|x64.ActiveCfg = Debug|Any CPU
249 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|x64.Build.0 = Debug|Any CPU
250 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|x86.ActiveCfg = Debug|Any CPU
251 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Debug|x86.Build.0 = Debug|Any CPU
252 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|Any CPU.ActiveCfg = Release|Any CPU
253 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|Any CPU.Build.0 = Release|Any CPU
254 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|ARM.ActiveCfg = Release|Any CPU
255 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|ARM.Build.0 = Release|Any CPU
256 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|iPhone.ActiveCfg = Release|Any CPU
257 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|iPhone.Build.0 = Release|Any CPU
258 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
259 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
260 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|x64.ActiveCfg = Release|Any CPU
261 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|x64.Build.0 = Release|Any CPU
262 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|x86.ActiveCfg = Release|Any CPU
263 | {1F3C8176-9EB2-408E-B031-6B2A52C75418}.Release|x86.Build.0 = Release|Any CPU
264 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
265 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
266 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
267 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
268 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
269 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
270 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
271 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
272 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
273 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
274 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
275 | {23A44E4B-32B8-4D30-8791-93C343789357}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
276 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
277 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|Any CPU.Build.0 = Debug|Any CPU
278 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|ARM.ActiveCfg = Debug|Any CPU
279 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|ARM.Build.0 = Debug|Any CPU
280 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
281 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|iPhone.Build.0 = Debug|Any CPU
282 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
283 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
284 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|x64.ActiveCfg = Debug|Any CPU
285 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|x64.Build.0 = Debug|Any CPU
286 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|x86.ActiveCfg = Debug|Any CPU
287 | {23A44E4B-32B8-4D30-8791-93C343789357}.AppStore|x86.Build.0 = Debug|Any CPU
288 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
289 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|Any CPU.Build.0 = Debug|Any CPU
290 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|ARM.ActiveCfg = Debug|Any CPU
291 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|ARM.Build.0 = Debug|Any CPU
292 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|iPhone.ActiveCfg = Debug|Any CPU
293 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|iPhone.Build.0 = Debug|Any CPU
294 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
295 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
296 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|x64.ActiveCfg = Debug|Any CPU
297 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|x64.Build.0 = Debug|Any CPU
298 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|x86.ActiveCfg = Debug|Any CPU
299 | {23A44E4B-32B8-4D30-8791-93C343789357}.Debug|x86.Build.0 = Debug|Any CPU
300 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|Any CPU.ActiveCfg = Release|Any CPU
301 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|Any CPU.Build.0 = Release|Any CPU
302 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|ARM.ActiveCfg = Release|Any CPU
303 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|ARM.Build.0 = Release|Any CPU
304 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|iPhone.ActiveCfg = Release|Any CPU
305 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|iPhone.Build.0 = Release|Any CPU
306 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
307 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
308 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|x64.ActiveCfg = Release|Any CPU
309 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|x64.Build.0 = Release|Any CPU
310 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|x86.ActiveCfg = Release|Any CPU
311 | {23A44E4B-32B8-4D30-8791-93C343789357}.Release|x86.Build.0 = Release|Any CPU
312 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
313 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
314 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU
315 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
316 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
317 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU
318 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
319 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
320 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU
321 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
322 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
323 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU
324 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
325 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
326 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU
327 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
328 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
329 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU
330 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
331 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|Any CPU.Build.0 = Debug|Any CPU
332 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU
333 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|ARM.ActiveCfg = Debug|Any CPU
334 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|ARM.Build.0 = Debug|Any CPU
335 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|ARM.Deploy.0 = Debug|Any CPU
336 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
337 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhone.Build.0 = Debug|Any CPU
338 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhone.Deploy.0 = Debug|Any CPU
339 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
340 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
341 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU
342 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x64.ActiveCfg = Debug|Any CPU
343 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x64.Build.0 = Debug|Any CPU
344 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x64.Deploy.0 = Debug|Any CPU
345 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x86.ActiveCfg = Debug|Any CPU
346 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x86.Build.0 = Debug|Any CPU
347 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x86.Deploy.0 = Debug|Any CPU
348 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
349 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|Any CPU.Build.0 = Debug|Any CPU
350 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
351 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|ARM.ActiveCfg = Debug|Any CPU
352 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|ARM.Build.0 = Debug|Any CPU
353 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|ARM.Deploy.0 = Debug|Any CPU
354 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhone.ActiveCfg = Debug|Any CPU
355 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhone.Build.0 = Debug|Any CPU
356 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhone.Deploy.0 = Debug|Any CPU
357 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
358 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
359 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
360 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x64.ActiveCfg = Debug|Any CPU
361 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x64.Build.0 = Debug|Any CPU
362 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x64.Deploy.0 = Debug|Any CPU
363 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x86.ActiveCfg = Debug|Any CPU
364 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x86.Build.0 = Debug|Any CPU
365 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x86.Deploy.0 = Debug|Any CPU
366 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|Any CPU.ActiveCfg = Release|Any CPU
367 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|Any CPU.Build.0 = Release|Any CPU
368 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|Any CPU.Deploy.0 = Release|Any CPU
369 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|ARM.ActiveCfg = Release|Any CPU
370 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|ARM.Build.0 = Release|Any CPU
371 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|ARM.Deploy.0 = Release|Any CPU
372 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhone.ActiveCfg = Release|Any CPU
373 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhone.Build.0 = Release|Any CPU
374 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhone.Deploy.0 = Release|Any CPU
375 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
376 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
377 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
378 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x64.ActiveCfg = Release|Any CPU
379 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x64.Build.0 = Release|Any CPU
380 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x64.Deploy.0 = Release|Any CPU
381 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x86.ActiveCfg = Release|Any CPU
382 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x86.Build.0 = Release|Any CPU
383 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x86.Deploy.0 = Release|Any CPU
384 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhoneSimulator
385 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhoneSimulator
386 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
387 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
388 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
389 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
390 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhoneSimulator
391 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhoneSimulator
392 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|Any CPU.ActiveCfg = AppStore|iPhoneSimulator
393 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|ARM.ActiveCfg = AppStore|iPhoneSimulator
394 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
395 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhone.Build.0 = AppStore|iPhone
396 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
397 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
398 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|x64.ActiveCfg = AppStore|iPhoneSimulator
399 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|x86.ActiveCfg = AppStore|iPhoneSimulator
400 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
401 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
402 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhone.ActiveCfg = Debug|iPhone
403 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhone.Build.0 = Debug|iPhone
404 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
405 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
406 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
407 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
408 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
409 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
410 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhone.ActiveCfg = Release|iPhone
411 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhone.Build.0 = Release|iPhone
412 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
413 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
414 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|x64.ActiveCfg = Release|iPhoneSimulator
415 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|x86.ActiveCfg = Release|iPhoneSimulator
416 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|Any CPU.ActiveCfg = Debug|ARM
417 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|Any CPU.Build.0 = Debug|ARM
418 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|ARM.ActiveCfg = Debug|ARM
419 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|ARM.Build.0 = Debug|ARM
420 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhone.ActiveCfg = Debug|ARM
421 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhone.Build.0 = Debug|ARM
422 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|ARM
423 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|ARM
424 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x64.ActiveCfg = Debug|x64
425 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x64.Build.0 = Debug|x64
426 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x86.ActiveCfg = Debug|x86
427 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x86.Build.0 = Debug|x86
428 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|Any CPU.ActiveCfg = Debug|ARM
429 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|Any CPU.Build.0 = Debug|ARM
430 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|ARM.ActiveCfg = Debug|ARM
431 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|ARM.Build.0 = Debug|ARM
432 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhone.ActiveCfg = Debug|ARM
433 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhone.Build.0 = Debug|ARM
434 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhoneSimulator.ActiveCfg = Debug|ARM
435 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhoneSimulator.Build.0 = Debug|ARM
436 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x64.ActiveCfg = Debug|x64
437 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x64.Build.0 = Debug|x64
438 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x86.ActiveCfg = Debug|x86
439 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x86.Build.0 = Debug|x86
440 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|Any CPU.ActiveCfg = Debug|x86
441 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|ARM.ActiveCfg = Debug|ARM
442 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|ARM.Build.0 = Debug|ARM
443 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|iPhone.ActiveCfg = Debug|x86
444 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
445 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x64.ActiveCfg = Debug|x64
446 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x64.Build.0 = Debug|x64
447 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x86.ActiveCfg = Debug|x86
448 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x86.Build.0 = Debug|x86
449 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|Any CPU.ActiveCfg = Release|x86
450 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|ARM.ActiveCfg = Release|ARM
451 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|ARM.Build.0 = Release|ARM
452 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|iPhone.ActiveCfg = Release|x86
453 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|iPhoneSimulator.ActiveCfg = Release|x86
454 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x64.ActiveCfg = Release|x64
455 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x64.Build.0 = Release|x64
456 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x86.ActiveCfg = Release|x86
457 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x86.Build.0 = Release|x86
458 | EndGlobalSection
459 | GlobalSection(SolutionProperties) = preSolution
460 | HideSolutionNode = FALSE
461 | EndGlobalSection
462 | GlobalSection(NestedProjects) = preSolution
463 | {23A44E4B-32B8-4D30-8791-93C343789357} = {79B5A8FB-4CA1-406E-B2CC-59772190C76B}
464 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803} = {79B5A8FB-4CA1-406E-B2CC-59772190C76B}
465 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034} = {79B5A8FB-4CA1-406E-B2CC-59772190C76B}
466 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2} = {79B5A8FB-4CA1-406E-B2CC-59772190C76B}
467 | EndGlobalSection
468 | GlobalSection(ExtensibilityGlobals) = postSolution
469 | SolutionGuid = {6992D8C8-794D-47B8-9B88-57E919FDEB78}
470 | EndGlobalSection
471 | EndGlobal
472 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Assets/AboutAssets.txt:
--------------------------------------------------------------------------------
1 | Any raw assets you want to be deployed with your application can be placed in
2 | this directory (and child directories) and given a Build Action of "AndroidAsset".
3 |
4 | These files will be deployed with you package and will be accessible using Android's
5 | AssetManager, like this:
6 |
7 | public class ReadAsset : Activity
8 | {
9 | protected override void OnCreate (Bundle bundle)
10 | {
11 | base.OnCreate (bundle);
12 |
13 | InputStream input = Assets.Open ("my_asset.txt");
14 | }
15 | }
16 |
17 | Additionally, some Android functions will automatically load asset files:
18 |
19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
20 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using Android.App;
4 | using Android.Content.PM;
5 | using Android.Runtime;
6 | using Android.Views;
7 | using Android.Widget;
8 | using Android.OS;
9 | using MultiGestureViewPlugin.Droid;
10 |
11 | namespace MultiGestureViewSample.Droid
12 | {
13 | [Activity(Label = "MultiGestureViewSample", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
14 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
15 | {
16 | protected override void OnCreate(Bundle bundle)
17 | {
18 | TabLayoutResource = Resource.Layout.Tabbar;
19 | ToolbarResource = Resource.Layout.Toolbar;
20 |
21 | base.OnCreate(bundle);
22 |
23 | global::Xamarin.Forms.Forms.Init(this, bundle);
24 |
25 | MultiGestureViewRenderer.Init();
26 |
27 | LoadApplication(new App());
28 | }
29 | }
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/MultiGestureViewSample.Android.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | {361C5045-5A11-4AA1-9072-C1D41CBD6234}
7 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
8 | Library
9 | MultiGestureViewSample.Droid
10 | MultiGestureViewSample.Android
11 | v9.0
12 | True
13 | Resources\Resource.designer.cs
14 | Resource
15 | Properties\AndroidManifest.xml
16 | Resources
17 | Assets
18 |
19 |
20 |
21 |
22 | true
23 | full
24 | false
25 | bin\Debug
26 | DEBUG;
27 | prompt
28 | 4
29 | None
30 |
31 |
32 | true
33 | pdbonly
34 | true
35 | bin\Release
36 | prompt
37 | 4
38 | true
39 | false
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 1.0.5
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 | Designer
82 |
83 |
84 |
85 |
86 | {8fc2a856-c2a6-434c-8c3e-19fbdca01803}
87 | MultiGestureViewPlugin.Android
88 |
89 |
90 | {23a44e4b-32b8-4d30-8791-93c343789357}
91 | MultiGestureViewPlugin
92 |
93 |
94 | {BF3BCF72-19D8-4D5C-AFFB-2E44748176DD}
95 | MultiGestureViewSample
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Properties/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Android.App;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("MultiGestureViewSample.Android")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("MultiGestureViewSample.Android")]
14 | [assembly: AssemblyCopyright("Copyright © 2014")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: ComVisible(false)]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
32 | // Add some common permissions, these can be removed if not needed
33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)]
34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
35 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/AboutResources.txt:
--------------------------------------------------------------------------------
1 | Images, layout descriptions, binary blobs and string dictionaries can be included
2 | in your application as resource files. Various Android APIs are designed to
3 | operate on the resource IDs instead of dealing with images, strings or binary blobs
4 | directly.
5 |
6 | For example, a sample Android app that contains a user interface layout (main.xml),
7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
8 | would keep its resources in the "Resources" directory of the application:
9 |
10 | Resources/
11 | drawable-hdpi/
12 | icon.png
13 |
14 | drawable-ldpi/
15 | icon.png
16 |
17 | drawable-mdpi/
18 | icon.png
19 |
20 | layout/
21 | main.xml
22 |
23 | values/
24 | strings.xml
25 |
26 | In order to get the build system to recognize Android resources, set the build action to
27 | "AndroidResource". The native Android APIs do not operate directly with filenames, but
28 | instead operate on resource IDs. When you compile an Android application that uses resources,
29 | the build system will package the resources for distribution and generate a class called
30 | "Resource" that contains the tokens for each one of the resources included. For example,
31 | for the above Resources layout, this is what the Resource class would expose:
32 |
33 | public class Resource {
34 | public class drawable {
35 | public const int icon = 0x123;
36 | }
37 |
38 | public class layout {
39 | public const int main = 0x456;
40 | }
41 |
42 | public class strings {
43 | public const int first_string = 0xabc;
44 | public const int second_string = 0xbcd;
45 | }
46 | }
47 |
48 | You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
49 | to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
50 | string in the dictionary file values/strings.xml.
51 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable-xxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable-xxhdpi/icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/drawable/icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/layout/Main.axml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/layout/Tabbar.axml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/layout/Toolbar.axml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-hdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-hdpi/Icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-mdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-mdpi/Icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-xhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-xhdpi/Icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-xxhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-xxhdpi/Icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-xxxhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/mipmap-xxxhdpi/Icon.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/values/Strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hello World, Click Me!
4 | MultiGestureViewSample.Droid
5 |
6 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.Android/Resources/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
26 |
27 |
30 |
31 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.ApplicationModel;
7 | using Windows.ApplicationModel.Activation;
8 | using Windows.Foundation;
9 | using Windows.Foundation.Collections;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Controls.Primitives;
13 | using Windows.UI.Xaml.Data;
14 | using Windows.UI.Xaml.Input;
15 | using Windows.UI.Xaml.Media;
16 | using Windows.UI.Xaml.Navigation;
17 |
18 | namespace MultiGestureViewSample.UWP
19 | {
20 | ///
21 | /// Provides application-specific behavior to supplement the default Application class.
22 | ///
23 | sealed partial class App : Application
24 | {
25 | ///
26 | /// Initializes the singleton application object. This is the first line of authored code
27 | /// executed, and as such is the logical equivalent of main() or WinMain().
28 | ///
29 | public App()
30 | {
31 | this.InitializeComponent();
32 | this.Suspending += OnSuspending;
33 | }
34 |
35 | ///
36 | /// Invoked when the application is launched normally by the end user. Other entry points
37 | /// will be used such as when the application is launched to open a specific file.
38 | ///
39 | /// Details about the launch request and process.
40 | protected override void OnLaunched(LaunchActivatedEventArgs e)
41 | {
42 |
43 |
44 | Frame rootFrame = Window.Current.Content as Frame;
45 |
46 | // Do not repeat app initialization when the Window already has content,
47 | // just ensure that the window is active
48 | if (rootFrame == null)
49 | {
50 | // Create a Frame to act as the navigation context and navigate to the first page
51 | rootFrame = new Frame();
52 |
53 | rootFrame.NavigationFailed += OnNavigationFailed;
54 |
55 | Xamarin.Forms.Forms.Init(e);
56 |
57 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
58 | {
59 | //TODO: Load state from previously suspended application
60 | }
61 |
62 | // Place the frame in the current Window
63 | Window.Current.Content = rootFrame;
64 | }
65 |
66 | if (rootFrame.Content == null)
67 | {
68 | // When the navigation stack isn't restored navigate to the first page,
69 | // configuring the new page by passing required information as a navigation
70 | // parameter
71 | rootFrame.Navigate(typeof(MainPage), e.Arguments);
72 | }
73 | // Ensure the current window is active
74 | Window.Current.Activate();
75 | }
76 |
77 | ///
78 | /// Invoked when Navigation to a certain page fails
79 | ///
80 | /// The Frame which failed navigation
81 | /// Details about the navigation failure
82 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
83 | {
84 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
85 | }
86 |
87 | ///
88 | /// Invoked when application execution is being suspended. Application state is saved
89 | /// without knowing whether the application will be terminated or resumed with the contents
90 | /// of memory still intact.
91 | ///
92 | /// The source of the suspend request.
93 | /// Details about the suspend request.
94 | private void OnSuspending(object sender, SuspendingEventArgs e)
95 | {
96 | var deferral = e.SuspendingOperation.GetDeferral();
97 | //TODO: Save application state and stop any background activity
98 | deferral.Complete();
99 | }
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-100.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-125.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-150.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/LockScreenLogo.scale-400.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-16_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-16_altform-unplated.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-256_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-256_altform-unplated.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-32_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-32_altform-unplated.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-48_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Square44x44Logo.targetsize-48_altform-unplated.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Assets/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 |
16 | namespace MultiGestureViewSample.UWP
17 | {
18 | public sealed partial class MainPage
19 | {
20 | public MainPage()
21 | {
22 | this.InitializeComponent();
23 |
24 | LoadApplication(new MultiGestureViewSample.App());
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/MultiGestureViewSample.UWP.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | x86
7 | {47F50DC8-B09D-4262-BFF2-0378ADC3E2A2}
8 | AppContainerExe
9 | Properties
10 | MultiGestureViewSample.UWP
11 | MultiGestureViewSample.UWP
12 | en-US
13 | UAP
14 | 10.0.16299.0
15 | 10.0.16299.0
16 | 14
17 | true
18 | 512
19 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
20 | MultiGestureViewSample.UWP_TemporaryKey.pfx
21 |
22 |
23 | true
24 | bin\ARM\Debug\
25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
26 | ;2008
27 | full
28 | ARM
29 | false
30 | prompt
31 | true
32 |
33 |
34 | bin\ARM\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | true
37 | ;2008
38 | pdbonly
39 | ARM
40 | false
41 | prompt
42 | true
43 | true
44 |
45 |
46 | true
47 | bin\x64\Debug\
48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
49 | ;2008
50 | full
51 | x64
52 | false
53 | prompt
54 | true
55 |
56 |
57 | bin\x64\Release\
58 | TRACE;NETFX_CORE;WINDOWS_UWP
59 | true
60 | ;2008
61 | pdbonly
62 | x64
63 | false
64 | prompt
65 | true
66 | true
67 |
68 |
69 | true
70 | bin\x86\Debug\
71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
72 | ;2008
73 | full
74 | x86
75 | false
76 | prompt
77 | true
78 |
79 |
80 | bin\x86\Release\
81 | TRACE;NETFX_CORE;WINDOWS_UWP
82 | true
83 | ;2008
84 | pdbonly
85 | x86
86 | false
87 | prompt
88 | true
89 | true
90 |
91 |
92 |
93 | App.xaml
94 |
95 |
96 | MainPage.xaml
97 |
98 |
99 |
100 |
101 |
102 | Designer
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 | MSBuild:Compile
143 | Designer
144 |
145 |
146 | MSBuild:Compile
147 | Designer
148 |
149 |
150 |
151 |
152 | 1.0.5
153 |
154 |
155 |
156 |
157 |
158 |
159 | {dc81d24a-4afa-4efe-a735-c77f3f2dedb2}
160 | MultiGestureViewPlugin.UWP
161 |
162 |
163 | {23a44e4b-32b8-4d30-8791-93c343789357}
164 | MultiGestureViewPlugin
165 |
166 |
167 | {BF3BCF72-19D8-4D5C-AFFB-2E44748176DD}
168 | MultiGestureViewSample
169 |
170 |
171 |
172 | 14.0
173 |
174 |
175 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 |
16 |
17 | MultiGestureViewSample.UWP
18 | 0844c905-81e4-472b-8a50-e3750373e18a
19 | Assets\StoreLogo.png
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("MultiGestureViewSample.UWP")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("MultiGestureViewSample.UWP")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.UWP/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | using Foundation;
6 | using MultiGestureViewPlugin.iOS;
7 | using UIKit;
8 |
9 | namespace MultiGestureViewSample.iOS
10 | {
11 | // The UIApplicationDelegate for the application. This class is responsible for launching the
12 | // User Interface of the application, as well as listening (and optionally responding) to
13 | // application events from iOS.
14 | [Register("AppDelegate")]
15 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
16 | {
17 | //
18 | // This method is invoked when the application has loaded and is ready to run. In this
19 | // method you should instantiate the window, load the UI into it and then make the window
20 | // visible.
21 | //
22 | // You have 17 seconds to return from this method, or iOS will terminate your application.
23 | //
24 | public override bool FinishedLaunching(UIApplication app, NSDictionary options)
25 | {
26 | global::Xamarin.Forms.Forms.Init();
27 |
28 | MultiGestureViewRenderer.Init();
29 |
30 | LoadApplication(new App());
31 |
32 | return base.FinishedLaunching(app, options);
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Entitlements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | UIDeviceFamily
6 |
7 | 1
8 | 2
9 |
10 | UISupportedInterfaceOrientations
11 |
12 | UIInterfaceOrientationPortrait
13 | UIInterfaceOrientationLandscapeLeft
14 | UIInterfaceOrientationLandscapeRight
15 |
16 | UISupportedInterfaceOrientations~ipad
17 |
18 | UIInterfaceOrientationPortrait
19 | UIInterfaceOrientationPortraitUpsideDown
20 | UIInterfaceOrientationLandscapeLeft
21 | UIInterfaceOrientationLandscapeRight
22 |
23 | MinimumOSVersion
24 | 10.3
25 | CFBundleDisplayName
26 | MultiGestureViewSample
27 | CFBundleIdentifier
28 | com.yourcompany.MultiGestureViewSample
29 | CFBundleVersion
30 | 1.0
31 | CFBundleIconFiles
32 |
33 | Icon-60@2x
34 | Icon-60@3x
35 | Icon-76
36 | Icon-76@2x
37 | Default
38 | Default@2x
39 | Default-568h@2x
40 | Default-Portrait
41 | Default-Portrait@2x
42 | Icon-Small-40
43 | Icon-Small-40@2x
44 | Icon-Small-40@3x
45 | Icon-Small
46 | Icon-Small@2x
47 | Icon-Small@3x
48 |
49 | UILaunchStoryboardName
50 | LaunchScreen
51 | CFBundleName
52 | MultiGestureViewSample
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Main.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | using Foundation;
6 | using UIKit;
7 |
8 | namespace MultiGestureViewSample.iOS
9 | {
10 | public class Application
11 | {
12 | // This is the main entry point of the application.
13 | static void Main(string[] args)
14 | {
15 | // if you want to use a different Application Delegate class from "AppDelegate"
16 | // you can specify it here.
17 | UIApplication.Main(args, null, "AppDelegate");
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/MultiGestureViewSample.iOS.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | iPhoneSimulator
6 | 8.0.30703
7 | 2.0
8 | {6595886E-38EB-44E6-80A3-D8E61348C3F3}
9 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
10 | Exe
11 | MultiGestureViewSample.iOS
12 | Resources
13 | MultiGestureViewSample.iOS
14 |
15 |
16 |
17 |
18 | true
19 | full
20 | false
21 | bin\iPhoneSimulator\Debug
22 | DEBUG
23 | prompt
24 | 4
25 | false
26 | x86_64
27 | None
28 | true
29 |
30 |
31 | none
32 | true
33 | bin\iPhoneSimulator\Release
34 | prompt
35 | 4
36 | None
37 | x86_64
38 | false
39 |
40 |
41 | true
42 | full
43 | false
44 | bin\iPhone\Debug
45 | DEBUG
46 | prompt
47 | 4
48 | false
49 | ARM64
50 | iPhone Developer
51 | true
52 | Entitlements.plist
53 |
54 |
55 | none
56 | true
57 | bin\iPhone\Release
58 | prompt
59 | 4
60 | ARM64
61 | false
62 | iPhone Developer
63 | Entitlements.plist
64 |
65 |
66 | none
67 | True
68 | bin\iPhone\Ad-Hoc
69 | prompt
70 | 4
71 | False
72 | ARM64
73 | True
74 | Automatic:AdHoc
75 | iPhone Distribution
76 | Entitlements.plist
77 |
78 |
79 | none
80 | True
81 | bin\iPhone\AppStore
82 | prompt
83 | 4
84 | False
85 | ARM64
86 | Automatic:AppStore
87 | iPhone Distribution
88 | Entitlements.plist
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 | 1.0.5
124 |
125 |
126 |
127 |
128 |
129 |
130 | {87ef86e6-1d53-4c5a-9b1b-7adfb3f81034}
131 | MultiGestureViewPlugin.iOS
132 | false
133 | false
134 |
135 |
136 | {23a44e4b-32b8-4d30-8791-93c343789357}
137 | MultiGestureViewPlugin
138 |
139 |
140 | {BF3BCF72-19D8-4D5C-AFFB-2E44748176DD}
141 | MultiGestureViewSample
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("MultiGestureViewSample.iOS")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("MultiGestureViewSample.iOS")]
13 | [assembly: AssemblyCopyright("Copyright © 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default-568h@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default-Portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default-Portrait.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default-Portrait@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default-Portrait@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Default@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-60@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-60@3x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-76.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-76@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small-40.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small-40@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small-40@3x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small@2x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaosifier/MultiGestureView/9f36b5711699ff52f91837f826477195bfeafd13/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/Icon-Small@3x.png
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample.iOS/Resources/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using MultiGestureViewSample.Pages;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | using Xamarin.Forms;
8 |
9 | namespace MultiGestureViewSample
10 | {
11 | public partial class App : Application
12 | {
13 | public App()
14 | {
15 | InitializeComponent();
16 | MainPage = new TestPage();
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/MultiGestureViewSample.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | *.xaml
19 |
20 |
21 |
22 |
23 |
24 | MSBuild:UpdateDesignTimeXaml
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/Pages/TestPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
23 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/Pages/TestPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using MultiGestureViewSample.ViewModels;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | using Xamarin.Forms;
9 | using Xamarin.Forms.Xaml;
10 |
11 | namespace MultiGestureViewSample.Pages
12 | {
13 | [XamlCompilation(XamlCompilationOptions.Compile)]
14 | public partial class TestPage : ContentPage
15 | {
16 | public TestPage()
17 | {
18 | InitializeComponent();
19 |
20 | this.BindingContext = new TestPageViewModel();
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/ViewModels/ObservableBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Runtime.CompilerServices;
5 | using System.Text;
6 |
7 | namespace MultiGestureViewSample.ViewModels
8 | {
9 | public class ObservableBase : INotifyPropertyChanged
10 | {
11 | ///
12 | /// Multicast event for property change notifications.
13 | ///
14 | public event PropertyChangedEventHandler PropertyChanged;
15 |
16 | ///
17 | /// Checks if a property already matches a desired value. Sets the property and notifies listeners only when the value has changed
18 | ///
19 | /// Type of the property.
20 | /// Reference to a property with both getter and setter
21 | /// Desired value for the property
22 | /// Name of the property used to notify listeners
23 | ///
24 | protected bool SetProperty(ref T storage, T value, [CallerMemberName] String propertyName = null)
25 | {
26 | if (object.Equals(storage, value)) return false;
27 |
28 | storage = value;
29 | this.OnPropertyChanged(propertyName);
30 | return true;
31 | }
32 |
33 | protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
34 | {
35 | var eventHandler = PropertyChanged;
36 | if (eventHandler != null)
37 | {
38 | eventHandler(this, new PropertyChangedEventArgs(propertyName));
39 | }
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Sample/MultiGestureViewSample/MultiGestureViewSample/ViewModels/TestPageViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Input;
5 | using Xamarin.Forms;
6 |
7 | namespace MultiGestureViewSample.ViewModels
8 | {
9 | public class TestPageViewModel : ObservableBase
10 | {
11 | public TestPageViewModel()
12 | {
13 | MyTappedCommand = new Command((prm) =>
14 | {
15 | LogMessage = "Tap Detected!" + Environment.NewLine + LogMessage;
16 | });
17 |
18 | MyLongPressedCommand = new Command(() =>
19 | {
20 | LogMessage = "Long Press Detected!" + Environment.NewLine + LogMessage;
21 | });
22 |
23 | MyRightClickedCommand = new Command(() =>
24 | {
25 | LogMessage = "Right Click Detected!" + Environment.NewLine + LogMessage;
26 | });
27 | }
28 |
29 | private bool _isBusy;
30 | public bool IsBusy
31 | {
32 | get { return _isBusy; }
33 | set { SetProperty(ref _isBusy, value); }
34 | }
35 |
36 | public ICommand MyTappedCommand { get; private set; }
37 | public ICommand MyLongPressedCommand { get; private set; }
38 | public ICommand MyRightClickedCommand { get; private set; }
39 |
40 | private string _logMessage;
41 | public string LogMessage
42 | {
43 | get { return _logMessage; }
44 | set { SetProperty(ref _logMessage, value); }
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin.Portable/IVibrator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace MultiGestureViewPlugin
6 | {
7 | public interface IVibrator
8 | {
9 | void Vibrate(int milliseconds);
10 | bool CanVibrate { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin.Portable/MultiGestureView.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using Xamarin.Forms;
5 |
6 | namespace MultiGestureViewPlugin
7 | {
8 | ///
9 | /// A ContentView with built-in gesture recognizers.
10 | ///
11 | public class MultiGestureView : ContentView
12 | {
13 | ///
14 | /// Enable vibration on long press.
15 | ///
16 | public bool VibrateOnLongPress { get; set; }
17 |
18 | ///
19 | /// Vibration duration in milliseconds on long press. The default value is 100ms.
20 | ///
21 | public int LongPressVibrationDuration { get; set; } = 100;
22 |
23 | ///
24 | /// Enable vibration on tap.
25 | ///
26 | public bool VibrateOnTap { get; set; }
27 |
28 | ///
29 | /// Vibration duration in milliseconds on tap. The default value is 100ms.
30 | ///
31 | public int TapVibrationDuration { get; set; } = 100;
32 |
33 | ///
34 | /// Long press event.
35 | /// If the Content or its children have gesture recognizers set, in order to prevent gesture conflicts, it is recommended to set their InputTransparent property to True.
36 | ///
37 | public event EventHandler LongPressed
38 | {
39 | add { LongPressedHandler += value; }
40 | remove { LongPressedHandler -= value; }
41 | }
42 | public EventHandler LongPressedHandler;
43 |
44 | ///
45 | /// Tap event.
46 | /// If the Content or its children have gesture recognizers set, in order to prevent gesture conflicts, it is recommended to set their InputTransparent property to True.
47 | ///
48 | public event EventHandler Tapped
49 | {
50 | add { TappedHandler += value; }
51 | remove { TappedHandler -= value; }
52 | }
53 | public EventHandler TappedHandler;
54 |
55 | ///
56 | /// Right click event. Only works on UWP.
57 | ///
58 | public event EventHandler RightClicked
59 | {
60 | add { RightClickedHandler += value; }
61 | remove { RightClickedHandler -= value; }
62 | }
63 | public EventHandler RightClickedHandler;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin.Portable/MultiGestureViewPlugin.Portable.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10.0
6 | Debug
7 | AnyCPU
8 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}
9 | Library
10 | MultiGestureViewPlugin.Portable
11 | MultiGestureViewPlugin.Portable
12 | en-US
13 | 512
14 | {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
15 | Profile7
16 | v4.5
17 |
18 |
19 |
20 |
21 | true
22 | full
23 | false
24 | bin\Debug\
25 | DEBUG;TRACE
26 | prompt
27 | 4
28 |
29 |
30 | pdbonly
31 | true
32 | bin\Release\
33 | TRACE
34 | prompt
35 | 4
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | ..\packages\Xamarin.Forms.2.5.0.280555\lib\portable-win+net45+wp80+win81+wpa81\Xamarin.Forms.Core.dll
45 |
46 |
47 | ..\packages\Xamarin.Forms.2.5.0.280555\lib\portable-win+net45+wp80+win81+wpa81\Xamarin.Forms.Platform.dll
48 |
49 |
50 | ..\packages\Xamarin.Forms.2.5.0.280555\lib\portable-win+net45+wp80+win81+wpa81\Xamarin.Forms.Xaml.dll
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | 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}.
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin.Portable/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Resources;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("MultiGestureViewPlugin.Portable")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("MultiGestureViewPlugin.Portable")]
14 | [assembly: AssemblyCopyright("Copyright © 2018")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: NeutralResourcesLanguage("en")]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin.Portable/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.27428.2027
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MultiGestureViewPlugin", "MultiGestureViewPlugin\MultiGestureViewPlugin\MultiGestureViewPlugin.csproj", "{EA071E71-1336-4F87-BAEC-48216A49D540}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.Android", "MultiGestureViewPlugin\MultiGestureViewPlugin.Android\MultiGestureViewPlugin.Android.csproj", "{8FC2A856-C2A6-434C-8C3E-19FBDCA01803}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.iOS", "MultiGestureViewPlugin\MultiGestureViewPlugin.iOS\MultiGestureViewPlugin.iOS.csproj", "{87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}"
11 | EndProject
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.UWP", "MultiGestureViewPlugin\MultiGestureViewPlugin.UWP\MultiGestureViewPlugin.UWP.csproj", "{DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}"
13 | EndProject
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiGestureViewPlugin.Portable", "MultiGestureViewPlugin.Portable\MultiGestureViewPlugin.Portable.csproj", "{AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}"
15 | EndProject
16 | Global
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
19 | Ad-Hoc|ARM = Ad-Hoc|ARM
20 | Ad-Hoc|iPhone = Ad-Hoc|iPhone
21 | Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
22 | Ad-Hoc|x64 = Ad-Hoc|x64
23 | Ad-Hoc|x86 = Ad-Hoc|x86
24 | AppStore|Any CPU = AppStore|Any CPU
25 | AppStore|ARM = AppStore|ARM
26 | AppStore|iPhone = AppStore|iPhone
27 | AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
28 | AppStore|x64 = AppStore|x64
29 | AppStore|x86 = AppStore|x86
30 | Debug|Any CPU = Debug|Any CPU
31 | Debug|ARM = Debug|ARM
32 | Debug|iPhone = Debug|iPhone
33 | Debug|iPhoneSimulator = Debug|iPhoneSimulator
34 | Debug|x64 = Debug|x64
35 | Debug|x86 = Debug|x86
36 | Release|Any CPU = Release|Any CPU
37 | Release|ARM = Release|ARM
38 | Release|iPhone = Release|iPhone
39 | Release|iPhoneSimulator = Release|iPhoneSimulator
40 | Release|x64 = Release|x64
41 | Release|x86 = Release|x86
42 | EndGlobalSection
43 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
44 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
45 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
46 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
47 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
48 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
49 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
50 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
51 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
52 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
53 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
54 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
55 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
56 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
57 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|Any CPU.Build.0 = Debug|Any CPU
58 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|ARM.ActiveCfg = Debug|Any CPU
59 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|ARM.Build.0 = Debug|Any CPU
60 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
61 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|iPhone.Build.0 = Debug|Any CPU
62 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
63 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
64 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|x64.ActiveCfg = Debug|Any CPU
65 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|x64.Build.0 = Debug|Any CPU
66 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|x86.ActiveCfg = Debug|Any CPU
67 | {EA071E71-1336-4F87-BAEC-48216A49D540}.AppStore|x86.Build.0 = Debug|Any CPU
68 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
69 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|Any CPU.Build.0 = Debug|Any CPU
70 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|ARM.ActiveCfg = Debug|Any CPU
71 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|ARM.Build.0 = Debug|Any CPU
72 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|iPhone.ActiveCfg = Debug|Any CPU
73 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|iPhone.Build.0 = Debug|Any CPU
74 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
75 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
76 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|x64.ActiveCfg = Debug|Any CPU
77 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|x64.Build.0 = Debug|Any CPU
78 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|x86.ActiveCfg = Debug|Any CPU
79 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Debug|x86.Build.0 = Debug|Any CPU
80 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|Any CPU.ActiveCfg = Release|Any CPU
81 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|Any CPU.Build.0 = Release|Any CPU
82 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|ARM.ActiveCfg = Release|Any CPU
83 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|ARM.Build.0 = Release|Any CPU
84 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|iPhone.ActiveCfg = Release|Any CPU
85 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|iPhone.Build.0 = Release|Any CPU
86 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
87 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
88 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|x64.ActiveCfg = Release|Any CPU
89 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|x64.Build.0 = Release|Any CPU
90 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|x86.ActiveCfg = Release|Any CPU
91 | {EA071E71-1336-4F87-BAEC-48216A49D540}.Release|x86.Build.0 = Release|Any CPU
92 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
93 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
94 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
95 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
96 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
97 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
98 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
99 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
100 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
101 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
102 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
103 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
104 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
105 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x64.Build.0 = Release|Any CPU
106 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
107 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
108 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x86.Build.0 = Release|Any CPU
109 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
110 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
111 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|Any CPU.Build.0 = Release|Any CPU
112 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
113 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|ARM.ActiveCfg = Release|Any CPU
114 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|ARM.Build.0 = Release|Any CPU
115 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|ARM.Deploy.0 = Release|Any CPU
116 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhone.ActiveCfg = Release|Any CPU
117 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhone.Build.0 = Release|Any CPU
118 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhone.Deploy.0 = Release|Any CPU
119 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
120 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
121 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
122 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x64.ActiveCfg = Release|Any CPU
123 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x64.Build.0 = Release|Any CPU
124 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x64.Deploy.0 = Release|Any CPU
125 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x86.ActiveCfg = Release|Any CPU
126 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x86.Build.0 = Release|Any CPU
127 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.AppStore|x86.Deploy.0 = Release|Any CPU
128 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
129 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|Any CPU.Build.0 = Debug|Any CPU
130 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
131 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|ARM.ActiveCfg = Debug|Any CPU
132 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|ARM.Build.0 = Debug|Any CPU
133 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|ARM.Deploy.0 = Debug|Any CPU
134 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhone.ActiveCfg = Debug|Any CPU
135 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhone.Build.0 = Debug|Any CPU
136 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhone.Deploy.0 = Debug|Any CPU
137 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
138 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
139 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
140 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x64.ActiveCfg = Debug|Any CPU
141 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x64.Build.0 = Debug|Any CPU
142 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x64.Deploy.0 = Debug|Any CPU
143 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x86.ActiveCfg = Debug|Any CPU
144 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x86.Build.0 = Debug|Any CPU
145 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Debug|x86.Deploy.0 = Debug|Any CPU
146 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|Any CPU.ActiveCfg = Release|Any CPU
147 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|Any CPU.Build.0 = Release|Any CPU
148 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|Any CPU.Deploy.0 = Release|Any CPU
149 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|ARM.ActiveCfg = Release|Any CPU
150 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|ARM.Build.0 = Release|Any CPU
151 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|ARM.Deploy.0 = Release|Any CPU
152 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhone.ActiveCfg = Release|Any CPU
153 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhone.Build.0 = Release|Any CPU
154 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhone.Deploy.0 = Release|Any CPU
155 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
156 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
157 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
158 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x64.ActiveCfg = Release|Any CPU
159 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x64.Build.0 = Release|Any CPU
160 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x64.Deploy.0 = Release|Any CPU
161 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x86.ActiveCfg = Release|Any CPU
162 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x86.Build.0 = Release|Any CPU
163 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}.Release|x86.Deploy.0 = Release|Any CPU
164 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
165 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
166 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
167 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
168 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
169 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
170 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
171 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
172 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
173 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|ARM.ActiveCfg = AppStore|iPhone
174 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
175 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhone.Build.0 = AppStore|iPhone
176 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
177 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
178 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|x64.ActiveCfg = AppStore|iPhone
179 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.AppStore|x86.ActiveCfg = AppStore|iPhone
180 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|Any CPU.ActiveCfg = Debug|iPhone
181 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|ARM.ActiveCfg = Debug|iPhone
182 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhone.ActiveCfg = Debug|iPhone
183 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhone.Build.0 = Debug|iPhone
184 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
185 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
186 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|x64.ActiveCfg = Debug|iPhone
187 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Debug|x86.ActiveCfg = Debug|iPhone
188 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|Any CPU.ActiveCfg = Release|iPhone
189 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|ARM.ActiveCfg = Release|iPhone
190 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhone.ActiveCfg = Release|iPhone
191 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhone.Build.0 = Release|iPhone
192 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
193 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
194 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|x64.ActiveCfg = Release|iPhone
195 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}.Release|x86.ActiveCfg = Release|iPhone
196 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86
197 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|Any CPU.Build.0 = Release|x86
198 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86
199 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
200 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|ARM.Build.0 = Release|ARM
201 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
202 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhone.ActiveCfg = Release|x86
203 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhone.Build.0 = Release|x86
204 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhone.Deploy.0 = Release|x86
205 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86
206 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86
207 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86
208 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x64.ActiveCfg = Release|x64
209 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x64.Build.0 = Release|x64
210 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x64.Deploy.0 = Release|x64
211 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x86.ActiveCfg = Release|x86
212 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x86.Build.0 = Release|x86
213 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Ad-Hoc|x86.Deploy.0 = Release|x86
214 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|Any CPU.ActiveCfg = Release|x86
215 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|Any CPU.Build.0 = Release|x86
216 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|Any CPU.Deploy.0 = Release|x86
217 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|ARM.ActiveCfg = Release|ARM
218 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|ARM.Build.0 = Release|ARM
219 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|ARM.Deploy.0 = Release|ARM
220 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhone.ActiveCfg = Release|x86
221 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhone.Build.0 = Release|x86
222 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhone.Deploy.0 = Release|x86
223 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86
224 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhoneSimulator.Build.0 = Release|x86
225 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86
226 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x64.ActiveCfg = Release|x64
227 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x64.Build.0 = Release|x64
228 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x64.Deploy.0 = Release|x64
229 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x86.ActiveCfg = Release|x86
230 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x86.Build.0 = Release|x86
231 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.AppStore|x86.Deploy.0 = Release|x86
232 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|Any CPU.ActiveCfg = Debug|x86
233 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|ARM.ActiveCfg = Debug|ARM
234 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|ARM.Build.0 = Debug|ARM
235 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|ARM.Deploy.0 = Debug|ARM
236 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|iPhone.ActiveCfg = Debug|x86
237 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
238 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x64.ActiveCfg = Debug|x64
239 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x64.Build.0 = Debug|x64
240 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x64.Deploy.0 = Debug|x64
241 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x86.ActiveCfg = Debug|x86
242 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x86.Build.0 = Debug|x86
243 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Debug|x86.Deploy.0 = Debug|x86
244 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|Any CPU.ActiveCfg = Release|x86
245 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|ARM.ActiveCfg = Release|ARM
246 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|ARM.Build.0 = Release|ARM
247 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|ARM.Deploy.0 = Release|ARM
248 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|iPhone.ActiveCfg = Release|x86
249 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|iPhoneSimulator.ActiveCfg = Release|x86
250 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x64.ActiveCfg = Release|x64
251 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x64.Build.0 = Release|x64
252 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x64.Deploy.0 = Release|x64
253 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x86.ActiveCfg = Release|x86
254 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x86.Build.0 = Release|x86
255 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}.Release|x86.Deploy.0 = Release|x86
256 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
257 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
258 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
259 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
260 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
261 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
262 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
263 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
264 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
265 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|x64.Build.0 = Release|Any CPU
266 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
267 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Ad-Hoc|x86.Build.0 = Release|Any CPU
268 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
269 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|Any CPU.Build.0 = Release|Any CPU
270 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|ARM.ActiveCfg = Release|Any CPU
271 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|ARM.Build.0 = Release|Any CPU
272 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|iPhone.ActiveCfg = Release|Any CPU
273 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|iPhone.Build.0 = Release|Any CPU
274 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
275 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
276 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|x64.ActiveCfg = Release|Any CPU
277 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|x64.Build.0 = Release|Any CPU
278 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|x86.ActiveCfg = Release|Any CPU
279 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.AppStore|x86.Build.0 = Release|Any CPU
280 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
281 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|Any CPU.Build.0 = Debug|Any CPU
282 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|ARM.ActiveCfg = Debug|Any CPU
283 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|ARM.Build.0 = Debug|Any CPU
284 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|iPhone.ActiveCfg = Debug|Any CPU
285 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|iPhone.Build.0 = Debug|Any CPU
286 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
287 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
288 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|x64.ActiveCfg = Debug|Any CPU
289 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|x64.Build.0 = Debug|Any CPU
290 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|x86.ActiveCfg = Debug|Any CPU
291 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Debug|x86.Build.0 = Debug|Any CPU
292 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|Any CPU.ActiveCfg = Release|Any CPU
293 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|Any CPU.Build.0 = Release|Any CPU
294 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|ARM.ActiveCfg = Release|Any CPU
295 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|ARM.Build.0 = Release|Any CPU
296 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|iPhone.ActiveCfg = Release|Any CPU
297 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|iPhone.Build.0 = Release|Any CPU
298 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
299 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
300 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|x64.ActiveCfg = Release|Any CPU
301 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|x64.Build.0 = Release|Any CPU
302 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|x86.ActiveCfg = Release|Any CPU
303 | {AA4FF8E2-3EE1-4766-9868-92F9E9B6FD81}.Release|x86.Build.0 = Release|Any CPU
304 | EndGlobalSection
305 | GlobalSection(SolutionProperties) = preSolution
306 | HideSolutionNode = FALSE
307 | EndGlobalSection
308 | GlobalSection(ExtensibilityGlobals) = postSolution
309 | SolutionGuid = {875430FF-549F-485C-9713-38B5566F4CFF}
310 | EndGlobalSection
311 | EndGlobal
312 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.Android/MultiGestureViewPlugin.Android.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | {8FC2A856-C2A6-434C-8C3E-19FBDCA01803}
7 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
8 | Library
9 | MultiGestureViewPlugin.Android
10 | MultiGestureViewPlugin.Android
11 | v9.0
12 | True
13 | Resources\Resource.designer.cs
14 | Resource
15 | Properties\AndroidManifest.xml
16 | Resources
17 | Assets
18 |
19 |
20 |
21 |
22 | true
23 | full
24 | false
25 | bin\Debug
26 | DEBUG;
27 | prompt
28 | 4
29 | None
30 |
31 |
32 | true
33 | pdbonly
34 | true
35 | bin\Release
36 | prompt
37 | 4
38 | true
39 | false
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | {ea071e71-1336-4f87-baec-48216a49d540}
67 | MultiGestureViewPlugin
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.Android/MultiGestureViewRenderer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using Android.App;
6 | using Android.Content;
7 | using Android.OS;
8 | using Android.Runtime;
9 | using Android.Views;
10 | using Android.Widget;
11 | using MultiGestureViewPlugin.Droid;
12 | using Xamarin.Forms;
13 | using Xamarin.Forms.Platform.Android;
14 | using MultiGestureViewPlugin;
15 |
16 | [assembly: ExportRenderer(typeof(MultiGestureView), typeof(MultiGestureViewRenderer))]
17 | namespace MultiGestureViewPlugin.Droid
18 | {
19 | public class MultiGestureViewRenderer : ViewRenderer
20 | {
21 | private MultiGestureView _view;
22 | private Vibrator _vibrator = new Vibrator();
23 |
24 | public static void Init() { }
25 |
26 | public MultiGestureViewRenderer(Context context) : base(context) { }
27 |
28 | protected override void OnElementChanged(ElementChangedEventArgs e)
29 | {
30 | base.OnElementChanged(e);
31 |
32 | if (Control == null)
33 | {
34 | SetNativeControl(new global::Android.Views.View(global::Android.App.Application.Context));
35 | }
36 |
37 | if (e.NewElement != null)
38 | {
39 | _view = e.NewElement;
40 | setupControl();
41 | }
42 |
43 | if (e.OldElement != null)
44 | {
45 | destroyControl();
46 | }
47 | }
48 |
49 | private void setupControl()
50 | {
51 | Control.SoundEffectsEnabled = true;
52 |
53 | Control.LongClickable = true;
54 | Control.LongClick += Control_LongClick;
55 |
56 | Control.Clickable = true;
57 | Control.Click += Control_Click;
58 | }
59 |
60 | private void destroyControl()
61 | {
62 | Control.LongClick -= Control_LongClick;
63 | Control.Click -= Control_Click;
64 | }
65 |
66 | private void Control_Click(object sender, EventArgs e)
67 | {
68 | if (_view != null)
69 | {
70 | _view.TappedHandler?.Invoke(sender, e);
71 |
72 | if (_view.TappedCommand?.CanExecute(_view.TappedCommandParameter) == true)
73 | _view.TappedCommand?.Execute(_view.TappedCommandParameter);
74 |
75 | if (_view.VibrateOnTap)
76 | {
77 | _vibrator.Vibrate(_view.TapVibrationDuration);
78 | }
79 | }
80 | }
81 |
82 | private void Control_LongClick(object sender, LongClickEventArgs e)
83 | {
84 | if (_view != null)
85 | {
86 | _view.LongPressedHandler?.Invoke(sender, e);
87 |
88 | if (_view.LongPressedCommand?.CanExecute(_view.LongPressedCommandParameter) == true)
89 | _view.LongPressedCommand?.Execute(_view.LongPressedCommandParameter);
90 |
91 | if (_view.VibrateOnLongPress)
92 | {
93 | _vibrator.Vibrate(_view.LongPressVibrationDuration);
94 | }
95 | }
96 | }
97 | }
98 | }
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.Android/Properties/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.Android/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using Android.App;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("MultiGestureViewPlugin.Android")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("MultiGestureViewPlugin.Android")]
14 | [assembly: AssemblyCopyright("Copyright © 2014")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: ComVisible(false)]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
32 | // Add some common permissions, these can be removed if not needed
33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)]
34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
35 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.Android/Vibrator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | using Android.App;
7 | using Android.Content;
8 | using Android.OS;
9 | using Android.Runtime;
10 | using Android.Views;
11 | using Android.Widget;
12 |
13 | [assembly: UsesPermission(Android.Manifest.Permission.Vibrate)]
14 | namespace MultiGestureViewPlugin.Droid
15 | {
16 | public class Vibrator : IVibrator
17 | {
18 | public bool CanVibrate
19 | {
20 | get
21 | {
22 | if ((int)Build.VERSION.SdkInt >= 11)
23 | {
24 | using (var v = (global::Android.OS.Vibrator)global::Android.App.Application.Context.GetSystemService(Context.VibratorService))
25 | return v.HasVibrator;
26 | }
27 | return true;
28 | }
29 | }
30 |
31 | public void Vibrate(int milliseconds)
32 | {
33 | using (var v = (global::Android.OS.Vibrator)global::Android.App.Application.Context.GetSystemService(Context.VibratorService))
34 | {
35 | if ((int)Build.VERSION.SdkInt >= 11)
36 | {
37 | #if __ANDROID_11__
38 | if (!v.HasVibrator)
39 | {
40 | Console.WriteLine("Android device does not have vibrator.");
41 | return;
42 | }
43 | #endif
44 | }
45 |
46 | if (milliseconds < 0)
47 | milliseconds = 0;
48 |
49 | try
50 | {
51 | v.Vibrate(milliseconds);
52 | }
53 | catch
54 | {
55 | Console.WriteLine("Unable to vibrate Android device, ensure VIBRATE permission is set.");
56 | }
57 | }
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/MainPage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace MultiGestureViewPlugin.UWP
8 | {
9 | public class MainPage
10 | {
11 | static void Main() { }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/MultiGestureViewPlugin.UWP.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | x86
7 | {DC81D24A-4AFA-4EFE-A735-C77F3F2DEDB2}
8 | Library
9 | Properties
10 | MultiGestureViewPlugin.UWP
11 | MultiGestureViewPlugin.UWP
12 | en-US
13 | UAP
14 | 10.0.16299.0
15 | 10.0.16299.0
16 | 14
17 | true
18 | 512
19 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
20 | MultiGestureView.UWP_TemporaryKey.pfx
21 |
22 |
23 | true
24 | bin\ARM\Debug\
25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
26 | ;2008
27 | full
28 | ARM
29 | false
30 | prompt
31 | true
32 |
33 |
34 | bin\ARM\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | true
37 | ;2008
38 | pdbonly
39 | ARM
40 | false
41 | prompt
42 | true
43 | true
44 |
45 |
46 | true
47 | bin\x64\Debug\
48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
49 | ;2008
50 | full
51 | x64
52 | false
53 | prompt
54 | true
55 |
56 |
57 | bin\x64\Release\
58 | TRACE;NETFX_CORE;WINDOWS_UWP
59 | true
60 | ;2008
61 | pdbonly
62 | x64
63 | false
64 | prompt
65 | true
66 | true
67 |
68 |
69 | true
70 | bin\x86\Debug\
71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
72 | ;2008
73 | full
74 | x86
75 | false
76 | prompt
77 | true
78 |
79 |
80 | bin\x86\Release\
81 | TRACE;NETFX_CORE;WINDOWS_UWP
82 | true
83 | ;2008
84 | pdbonly
85 | x86
86 | false
87 | prompt
88 | true
89 | true
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | {ea071e71-1336-4f87-baec-48216a49d540}
107 | MultiGestureViewPlugin
108 |
109 |
110 |
111 |
112 | Designer
113 |
114 |
115 |
116 | 14.0
117 |
118 |
119 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/MultiGestureViewRenderer.cs:
--------------------------------------------------------------------------------
1 | using MultiGestureViewPlugin;
2 | using MultiGestureViewPlugin.UWP;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using Xamarin.Forms.Platform.UWP;
9 |
10 | [assembly: ExportRenderer(typeof(MultiGestureView), typeof(MultiGestureViewRenderer))]
11 | namespace MultiGestureViewPlugin.UWP
12 | {
13 | public class MultiGestureViewRenderer : ViewRenderer
14 | {
15 | private MultiGestureView _view;
16 | protected override void OnElementChanged(ElementChangedEventArgs e)
17 | {
18 | base.OnElementChanged(e);
19 |
20 | if (e.NewElement != null)
21 | {
22 | _view = e.NewElement;
23 | setupControl();
24 | }
25 |
26 | if (e.OldElement != null)
27 | {
28 | destroyControl();
29 | }
30 | }
31 |
32 | private void setupControl()
33 | {
34 | IsRightTapEnabled = true;
35 | IsHoldingEnabled = true;
36 |
37 | RightTapped += MultiGestureViewRenderer_RightTapped;
38 | Holding += MultiGestureViewRenderer_Holding;
39 | Tapped += MultiGestureViewRenderer_Tapped;
40 | }
41 |
42 | private void destroyControl()
43 | {
44 | RightTapped -= MultiGestureViewRenderer_RightTapped;
45 | Holding -= MultiGestureViewRenderer_Holding;
46 | Tapped -= MultiGestureViewRenderer_Tapped;
47 | }
48 |
49 | private void MultiGestureViewRenderer_Holding(object sender, Windows.UI.Xaml.Input.HoldingRoutedEventArgs e)
50 | {
51 | if (e.HoldingState == Windows.UI.Input.HoldingState.Started)
52 | {
53 | _view?.LongPressedHandler?.Invoke(_view, null);
54 | }
55 |
56 | if (_view.LongPressedCommand?.CanExecute(_view.LongPressedCommandParameter) == true)
57 | _view.LongPressedCommand?.Execute(_view.LongPressedCommandParameter);
58 | }
59 |
60 | private void MultiGestureViewRenderer_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
61 | {
62 | _view?.TappedHandler?.Invoke(_view, null);
63 |
64 | if (_view.TappedCommand?.CanExecute(_view.TappedCommandParameter) == true)
65 | _view.TappedCommand?.Execute(_view.TappedCommandParameter);
66 | }
67 |
68 | private void MultiGestureViewRenderer_RightTapped(object sender, Windows.UI.Xaml.Input.RightTappedRoutedEventArgs e)
69 | {
70 | _view?.RightClickedHandler?.Invoke(_view, null);
71 |
72 | if (_view.RightClickedCommand?.CanExecute(_view.RightClickedCommandParameter) == true)
73 | _view.RightClickedCommand?.Execute(_view.RightClickedCommandParameter);
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 |
16 |
17 | MultiGestureView.UWP
18 | 6f1e65a9-1c7a-411c-9341-f0872e87fc39
19 | Assets\StoreLogo.png
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("MultiGestureViewPlugin.UWP")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("MultiGestureViewPlugin.UWP")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.UWP/Vibrator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Windows.Devices.Haptics;
7 | using Windows.Foundation.Metadata;
8 |
9 | namespace MultiGestureViewPlugin.UWP
10 | {
11 | public class Vibrator : IVibrator
12 | {
13 | public bool CanVibrate
14 | {
15 | get
16 | {
17 | if (ApiInformation.IsTypePresent("Windows.Phone.Devices.Notification.VibrationDevice"))
18 | {
19 | VibrationDevice vibrationDevice = Task.Run(async () => await VibrationDevice.GetDefaultAsync()).Result;
20 | var v = vibrationDevice;
21 |
22 | if (v != null)
23 | return true;
24 | }
25 |
26 | return false;
27 | }
28 | }
29 |
30 | public void Vibrate(int milliseconds)
31 | {
32 | if (ApiInformation.IsTypePresent("Windows.Phone.Devices.Notification.VibrationDevice"))
33 | {
34 | var v = Task.Run(async () => await VibrationDevice.GetDefaultAsync()).Result;
35 |
36 | if (v == null)
37 | {
38 | System.Diagnostics.Debug.WriteLine("Default vibration device not found.");
39 | return;
40 | }
41 |
42 | if (milliseconds < 0)
43 | milliseconds = 0;
44 | else if (milliseconds > 5000)
45 | milliseconds = 5000;
46 |
47 | var time = TimeSpan.FromMilliseconds(milliseconds);
48 | // v.SimpleHapticsController.SendHapticFeedbackForDuration(new SimpleHapticsControllerFeedback(), 1, TimeSpan.FromMilliseconds(milliseconds));
49 | }
50 | else
51 | {
52 | System.Diagnostics.Debug.WriteLine("Vibration not supported on this device family.");
53 | }
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | UIDeviceFamily
6 |
7 | 1
8 | 2
9 |
10 | UISupportedInterfaceOrientations
11 |
12 | UIInterfaceOrientationPortrait
13 | UIInterfaceOrientationLandscapeLeft
14 | UIInterfaceOrientationLandscapeRight
15 |
16 | UISupportedInterfaceOrientations~ipad
17 |
18 | UIInterfaceOrientationPortrait
19 | UIInterfaceOrientationPortraitUpsideDown
20 | UIInterfaceOrientationLandscapeLeft
21 | UIInterfaceOrientationLandscapeRight
22 |
23 | MinimumOSVersion
24 | 10.3
25 | CFBundleDisplayName
26 | MultiGestureView
27 | CFBundleIdentifier
28 | com.yourcompany.MultiGestureView
29 | CFBundleVersion
30 | 1.0
31 | CFBundleIconFiles
32 |
33 | Icon-60@2x
34 | Icon-60@3x
35 | Icon-76
36 | Icon-76@2x
37 | Default
38 | Default@2x
39 | Default-568h@2x
40 | Default-Portrait
41 | Default-Portrait@2x
42 | Icon-Small-40
43 | Icon-Small-40@2x
44 | Icon-Small-40@3x
45 | Icon-Small
46 | Icon-Small@2x
47 | Icon-Small@3x
48 |
49 | UILaunchStoryboardName
50 | LaunchScreen
51 | CFBundleName
52 | MultiGestureView
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.iOS/Main.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | using Foundation;
6 | using UIKit;
7 |
8 | namespace MultiGestureViewPlugin.iOS
9 | {
10 | public class Application
11 | {
12 | // This is the main entry point of the application.
13 | static void Main(string[] args)
14 | {
15 | // if you want to use a different Application Delegate class from "AppDelegate"
16 | // you can specify it here.
17 | UIApplication.Main(args, null, "AppDelegate");
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.iOS/MultiGestureViewPlugin.iOS.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | iPhoneSimulator
6 | 8.0.30703
7 | 2.0
8 | {87EF86E6-1D53-4C5A-9B1B-7ADFB3F81034}
9 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
10 | Library
11 | MultiGestureViewPlugin.iOS
12 | Resources
13 | MultiGestureViewPlugin.iOS
14 |
15 |
16 |
17 |
18 | true
19 | full
20 | false
21 | bin\iPhoneSimulator\Debug
22 | DEBUG
23 | prompt
24 | 4
25 | false
26 | x86_64
27 | None
28 | true
29 |
30 |
31 | none
32 | true
33 | bin\iPhoneSimulator\Release
34 | prompt
35 | 4
36 | None
37 | x86_64
38 | false
39 |
40 |
41 | true
42 | full
43 | false
44 | bin\iPhone\Debug
45 | DEBUG
46 | prompt
47 | 4
48 | false
49 | ARM64
50 | iPhone Developer
51 | true
52 | Entitlements.plist
53 |
54 |
55 | none
56 | true
57 | bin\iPhone\Release
58 | prompt
59 | 4
60 | ARM64
61 | false
62 | iPhone Developer
63 | Entitlements.plist
64 |
65 |
66 | none
67 | True
68 | bin\iPhone\Ad-Hoc
69 | prompt
70 | 4
71 | False
72 | ARM64
73 | True
74 | Automatic:AdHoc
75 | iPhone Distribution
76 | Entitlements.plist
77 |
78 |
79 | none
80 | True
81 | bin\iPhone\AppStore
82 | prompt
83 | 4
84 | False
85 | ARM64
86 | Automatic:AppStore
87 | iPhone Distribution
88 | Entitlements.plist
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | {ea071e71-1336-4f87-baec-48216a49d540}
111 | MultiGestureViewPlugin
112 |
113 |
114 |
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.iOS/MultiGestureViewRenderer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | using Foundation;
7 | using UIKit;
8 | using Xamarin.Forms;
9 | using MultiGestureViewPlugin;
10 | using MultiGestureViewPlugin.iOS;
11 | using Xamarin.Forms.Platform.iOS;
12 |
13 | [assembly: ExportRenderer(typeof(MultiGestureView), typeof(MultiGestureViewRenderer))]
14 | namespace MultiGestureViewPlugin.iOS
15 | {
16 | public class MultiGestureViewRenderer : ViewRenderer
17 | {
18 | private MultiGestureView _view;
19 | private Vibrator _vibrator = new Vibrator();
20 | private readonly UILongPressGestureRecognizer _longPressRecognizer;
21 | private readonly UITapGestureRecognizer _tapGestureRecognizer;
22 |
23 | public new static void Init() { }
24 |
25 | public MultiGestureViewRenderer()
26 | {
27 | _longPressRecognizer = new UILongPressGestureRecognizer((s) =>
28 | {
29 | if (s.State == UIGestureRecognizerState.Began && _view != null)
30 | {
31 | if (_view.VibrateOnLongPress && _vibrator.CanVibrate)
32 | {
33 | _vibrator.Vibrate(_view.LongPressVibrationDuration);
34 | }
35 | _view.LongPressedHandler?.Invoke(_view, null);
36 |
37 | if (_view.LongPressedCommand?.CanExecute(_view.LongPressedCommandParameter) == true)
38 | _view.LongPressedCommand?.Execute(_view.LongPressedCommandParameter);
39 | }
40 | });
41 |
42 | _tapGestureRecognizer = new UITapGestureRecognizer(() =>
43 | {
44 | if (_view.VibrateOnTap && _vibrator.CanVibrate)
45 | {
46 | _vibrator.Vibrate(_view.TapVibrationDuration);
47 | }
48 | _view.TappedHandler?.Invoke(_view, null);
49 |
50 | if (_view.TappedCommand?.CanExecute(_view.TappedCommandParameter) == true)
51 | _view.TappedCommand?.Execute(_view.TappedCommandParameter);
52 | });
53 | }
54 |
55 | protected override void OnElementChanged(ElementChangedEventArgs e)
56 | {
57 | base.OnElementChanged(e);
58 |
59 | if (Control == null)
60 | {
61 | var theView = new UIKit.UIView();
62 | SetNativeControl(theView);
63 | }
64 |
65 | if (e.NewElement != null)
66 | {
67 | _view = e.NewElement;
68 | setupControl();
69 | }
70 |
71 | if (e.OldElement != null)
72 | {
73 | destroyControl();
74 | }
75 | }
76 |
77 | private void setupControl()
78 | {
79 | Control.UserInteractionEnabled = true;
80 | Control.AddGestureRecognizer(_longPressRecognizer);
81 | Control.AddGestureRecognizer(_tapGestureRecognizer);
82 | }
83 |
84 | private void destroyControl()
85 | {
86 | Control.RemoveGestureRecognizer(_longPressRecognizer);
87 | Control.RemoveGestureRecognizer(_tapGestureRecognizer);
88 | }
89 | }
90 | }
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.iOS/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("MultiGestureViewPlugin.iOS")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("MultiGestureViewPlugin.iOS")]
13 | [assembly: AssemblyCopyright("Copyright © 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin.iOS/Vibrator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using AudioToolbox;
6 | using Foundation;
7 | using UIKit;
8 |
9 | namespace MultiGestureViewPlugin.iOS
10 | {
11 | public class Vibrator : IVibrator
12 | {
13 | public bool CanVibrate => true;
14 |
15 | ///
16 | /// Vibrate the phone for specified amount of time
17 | ///
18 | /// Time span to vibrate. 500ms is default if null
19 | public void Vibrate(int milliseconds) =>
20 | SystemSound.Vibrate.PlaySystemSound();
21 | }
22 | }
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin/IVibrator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace MultiGestureViewPlugin
6 | {
7 | public interface IVibrator
8 | {
9 | void Vibrate(int milliseconds);
10 | bool CanVibrate { get; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin/MultiGestureView.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows.Input;
5 | using Xamarin.Forms;
6 |
7 | namespace MultiGestureViewPlugin
8 | {
9 | ///
10 | /// A ContentView with built-in gesture recognizers.
11 | ///
12 | public class MultiGestureView : ContentView
13 | {
14 | public static readonly BindableProperty VibrateOnLongPressProperty = BindableProperty.Create(nameof(VibrateOnLongPress), typeof(bool), typeof(MultiGestureView), false);
15 | ///
16 | /// Enable vibration on long press.
17 | ///
18 | public bool VibrateOnLongPress
19 | {
20 | get => (bool)GetValue(VibrateOnLongPressProperty);
21 | set { SetValue(VibrateOnLongPressProperty, value); }
22 | }
23 |
24 | public static readonly BindableProperty LongPressVibrationDurationProperty = BindableProperty.Create(nameof(VibrateOnLongPress), typeof(int), typeof(MultiGestureView), 100);
25 | ///
26 | /// Vibration duration in milliseconds on long press. The default value is 100ms.
27 | ///
28 | public int LongPressVibrationDuration
29 | {
30 | get => (int)GetValue(LongPressVibrationDurationProperty);
31 | set { SetValue(LongPressVibrationDurationProperty, value); }
32 | }
33 |
34 | public static readonly BindableProperty VibrateOnTapProperty = BindableProperty.Create(nameof(VibrateOnLongPress), typeof(bool), typeof(MultiGestureView), false);
35 | ///
36 | /// Enable vibration on tap.
37 | ///
38 | public bool VibrateOnTap
39 | {
40 | get => (bool)GetValue(VibrateOnTapProperty);
41 | set { SetValue(VibrateOnTapProperty, value); }
42 | }
43 |
44 | public static readonly BindableProperty TapVibrationDurationProperty = BindableProperty.Create(nameof(VibrateOnLongPress), typeof(int), typeof(MultiGestureView), 100);
45 | ///
46 | /// Vibration duration in milliseconds on tap. The default value is 100ms.
47 | ///
48 | public int TapVibrationDuration
49 | {
50 | get => (int)GetValue(TapVibrationDurationProperty);
51 | set { SetValue(TapVibrationDurationProperty, value); }
52 | }
53 |
54 | ///
55 | /// Long press event.
56 | /// If the Content or its children have gesture recognizers set, in order to prevent gesture conflicts, it is recommended to set their InputTransparent property to True.
57 | ///
58 | public event EventHandler LongPressed
59 | {
60 | add { LongPressedHandler += value; }
61 | remove { LongPressedHandler -= value; }
62 | }
63 | public EventHandler LongPressedHandler;
64 |
65 | ///
66 | /// Long press event.
67 | /// If the Content or its children have gesture recognizers set, in order to prevent gesture conflicts, it is recommended to set their InputTransparent property to True.
68 | ///
69 | public static readonly BindableProperty LongPressedCommandProperty = BindableProperty.Create(nameof(LongPressedCommand), typeof(ICommand), typeof(MultiGestureView), null);
70 | public ICommand LongPressedCommand
71 | {
72 | get => (ICommand)GetValue(LongPressedCommandProperty);
73 | set { SetValue(LongPressedCommandProperty, value); }
74 | }
75 |
76 | ///
77 | /// Command parameter for long press command
78 | ///
79 | public static readonly BindableProperty LongPressedCommandParameterProperty = BindableProperty.Create(nameof(LongPressedCommandParameter), typeof(object), typeof(MultiGestureView), null);
80 | public object LongPressedCommandParameter
81 | {
82 | get => GetValue(LongPressedCommandParameterProperty);
83 | set { SetValue(LongPressedCommandParameterProperty, value); }
84 | }
85 |
86 | ///
87 | /// Tap event.
88 | /// If the Content or its children have gesture recognizers set, in order to prevent gesture conflicts, it is recommended to set their InputTransparent property to True.
89 | ///
90 | public event EventHandler Tapped
91 | {
92 | add { TappedHandler += value; }
93 | remove { TappedHandler -= value; }
94 | }
95 | public EventHandler TappedHandler;
96 |
97 | ///
98 | /// Tap event.
99 | /// If the Content or its children have gesture recognizers set, in order to prevent gesture conflicts, it is recommended to set their InputTransparent property to True.
100 | ///
101 | public static readonly BindableProperty TappedCommandProperty = BindableProperty.Create(nameof(TappedCommand), typeof(ICommand), typeof(MultiGestureView), null);
102 | public ICommand TappedCommand
103 | {
104 | get => (ICommand)GetValue(TappedCommandProperty);
105 | set { SetValue(TappedCommandProperty, value); }
106 | }
107 |
108 | ///
109 | /// Command parameter for tap command
110 | ///
111 | public static readonly BindableProperty TappedCommandParameterProperty = BindableProperty.Create(nameof(TappedCommandParameter), typeof(object), typeof(MultiGestureView), null);
112 | public object TappedCommandParameter
113 | {
114 | get => GetValue(TappedCommandParameterProperty);
115 | set { SetValue(TappedCommandParameterProperty, value); }
116 | }
117 |
118 | ///
119 | /// Right click event. Only works on UWP.
120 | ///
121 | public event EventHandler RightClicked
122 | {
123 | add { RightClickedHandler += value; }
124 | remove { RightClickedHandler -= value; }
125 | }
126 | public EventHandler RightClickedHandler;
127 |
128 | ///
129 | /// Right click event. Only works on UWP.
130 | ///
131 | public static readonly BindableProperty RightClickedCommandProperty = BindableProperty.Create(nameof(RightClickedCommand), typeof(ICommand), typeof(MultiGestureView), null);
132 | public ICommand RightClickedCommand
133 | {
134 | get => (ICommand)GetValue(RightClickedCommandProperty);
135 | set { SetValue(RightClickedCommandProperty, value); }
136 | }
137 |
138 | ///
139 | /// Command parameter for long press command
140 | ///
141 | public static readonly BindableProperty RightClickedCommandParameterProperty = BindableProperty.Create(nameof(RightClickedCommandParameter), typeof(object), typeof(MultiGestureView), null);
142 | public object RightClickedCommandParameter
143 | {
144 | get => GetValue(RightClickedCommandParameterProperty);
145 | set { SetValue(RightClickedCommandParameterProperty, value); }
146 | }
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/Source/MultiGestureViewPlugin/MultiGestureViewPlugin/MultiGestureViewPlugin.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | *.xaml
14 |
15 |
16 |
--------------------------------------------------------------------------------