Initial sources.
Based on 2db8607f75d8884d1dc424cb4d8ae7a81dff76ec
|
@ -0,0 +1,235 @@
|
|||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# Remove everything beginning with a dot
|
||||
.*/
|
||||
!.github/
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
launchSettings.json
|
||||
|
||||
# Build results
|
||||
[Dd]ebug[-\w]*/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease[-\w]*/
|
||||
[Rr]eleases/
|
||||
[Xx]64/
|
||||
[Xx]86/
|
||||
# [Bb]uild/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.mdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.binlog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
|
||||
# TODO: Un-comment the next line if you do not want to checkin
|
||||
# your web deploy settings because they may include unencrypted
|
||||
# passwords
|
||||
#*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# NuGet Packages
|
||||
#*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
#**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
#!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignoreable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Microsoft Azure ApplicationInsights config file
|
||||
ApplicationInsights.config
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# Xamarin Android
|
||||
Resource.Designer.cs
|
||||
*.bak
|
||||
*/nuget_version_override.txt
|
||||
/src/crosstargeting_override.props
|
||||
/build/tools/**
|
||||
!build/tools/packages.config
|
||||
/build/*.nupkg
|
|
@ -0,0 +1,115 @@
|
|||
jobs:
|
||||
- job: Windows
|
||||
|
||||
pool:
|
||||
name: Hosted
|
||||
|
||||
variables:
|
||||
NUGET_PACKAGES: $(Agent.WorkFolder)\.nuget
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: NuGetToolInstaller@0
|
||||
inputs:
|
||||
versionSpec: 4.9.1
|
||||
checkLatest: false
|
||||
|
||||
- task: GitVersion@4
|
||||
# Ignore gitversion for forks, until this is fixed:
|
||||
# https://developercommunity.visualstudio.com/content/problem/284991/public-vsts-previouw-cant-set-build-number-of-pr-b.html
|
||||
condition: eq(variables['System.PullRequest.IsFork'], 'False')
|
||||
inputs:
|
||||
updateAssemblyInfo: false
|
||||
|
||||
- task: DotNetCoreInstaller@0
|
||||
inputs:
|
||||
version: '2.2.103'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: .NET Core Build
|
||||
inputs:
|
||||
command: build
|
||||
arguments: --configuration Release "/p:PackageOutputPath=$(build.artifactstagingdirectory)\nuget" "-p:PackageVersion=$(GITVERSION.FullSemVer)" "/p:InformationalVersion=$(GITVERSION.InformationalVersion)" /detailedsummary
|
||||
workingDirectory: $(build.sourcesdirectory)\src
|
||||
|
||||
- task: DotNetCoreInstaller@0
|
||||
inputs:
|
||||
version: '2.1.504'
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Authenticode Sign Packages
|
||||
inputs:
|
||||
filePath: build/Sign-Package.ps1
|
||||
env:
|
||||
SignClientUser: $(SignClientUser)
|
||||
SignClientSecret: $(SignClientSecret)
|
||||
SignPackageName: "Uno.PackageDiff"
|
||||
SignPackageDescription: "Uno.PackageDiff"
|
||||
ArtifactDirectory: $(build.artifactstagingdirectory)
|
||||
condition: and(succeeded(), not(eq(variables['build.reason'], 'PullRequest')), not(eq(variables['SignClientSecret'], '')), not(eq(variables['SignClientUser'], '')))
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
condition: always()
|
||||
inputs:
|
||||
PathtoPublish: $(build.artifactstagingdirectory)
|
||||
ArtifactName: unosourcegenerator-drop
|
||||
ArtifactType: Container
|
||||
|
||||
- task: VSTest@2
|
||||
inputs:
|
||||
testAssemblyVer2: |
|
||||
**\*tests.dll
|
||||
!**\obj\**
|
||||
vstestLocationMethod: version
|
||||
vsTestVersion: latest
|
||||
testSelector: testAssemblies
|
||||
|
||||
- job: Linux
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
pool:
|
||||
name: Default
|
||||
demands:
|
||||
- agent.os -equals Linux
|
||||
|
||||
variables:
|
||||
NUGET_PACKAGES: $(Agent.WorkFolder)/.nuget
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: DotNetCoreInstaller@0
|
||||
inputs:
|
||||
version: '2.2.103'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: .NET Core Build
|
||||
inputs:
|
||||
command: build
|
||||
arguments: --configuration Release /detailedsummary
|
||||
workingDirectory: $(build.sourcesdirectory)/src
|
||||
|
||||
- job: macOS
|
||||
|
||||
pool:
|
||||
vmImage: 'macOS-10.13'
|
||||
|
||||
variables:
|
||||
NUGET_PACKAGES: $(Agent.WorkFolder)/.nuget
|
||||
SourceLinkEnabled: false
|
||||
|
||||
steps:
|
||||
- task: DotNetCoreInstaller@0
|
||||
inputs:
|
||||
version: '2.2.103'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: .NET Core Build
|
||||
inputs:
|
||||
command: build
|
||||
arguments: --configuration Release /detailedsummary
|
||||
workingDirectory: $(build.sourcesdirectory)/src
|
|
@ -0,0 +1,13 @@
|
|||
Copyright 2011 Xamarin Inc
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
name: Xamarin.Forms - RPN Calculator
|
||||
description: An RPN (Reverse Polish Notation) calculator allows numbers and operations to be entered without parentheses or an equal key. RPN (also called...
|
||||
page_type: sample
|
||||
languages:
|
||||
- csharp
|
||||
products:
|
||||
- xamarin
|
||||
urlFragment: rpncalculator
|
||||
---
|
||||
# RPN Calculator
|
||||
|
||||
An RPN (Reverse Polish Notation) calculator allows numbers and operations to be entered without parentheses or an equal key. RPN (also called postfix notation) is described in the Wikipedia article [**Reverse Polish notation**](https://en.wikipedia.org/wiki/Reverse_Polish_notation) and the [**RPN Calculator**](https://github.com/xamarin/Workbooks/blob/master/xamarin-forms/advanced/RPNCalculator/RpnCalculator-ios.workbook) workbook, which shows an alternative approach to coding an RPN calculator for Xamarin.Forms.
|
||||
|
||||
RPN is based on a stack. Numbers are pushed on the stack by pressing the ENTER key. Unary operations (such as **log** and **sin**) pop a number from the stack, apply the operation, and push the result back on the stack. Binary operations (such as **+** and **/**) pop two numbers from the stack, perform the operation, and push the result on the stack.
|
||||
|
||||
To perform the calculation
|
||||
|
||||
5 × (3 + 4) – 2
|
||||
|
||||
press the following keys:
|
||||
|
||||
5 ENTER 3 ENTER 4 ENTER + × 2 ENTER –
|
||||
|
||||
The + operation adds 3 and 4, the times operation multiplies 5 and that result, and the minus operation subtracts 2 from that result.
|
||||
|
||||
The layout of the keys appears twice in the **MainPage.xaml** file, separately for portrait mode and landscape mode. The **MainPage.xaml.cs** code-behind file switches between these two layouts based on the relative width and height of the page.
|
||||
|
||||
The calculator logic is encapsulated in the **RpnCalculatorViewModel.cs** file. The XAML file and the ViewModel are linked through XAML-based data bindings, which are described in detail in the series of series of articles on [**Data Binding**](https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/data-binding/), and particularly the [**The Command Interface**](https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/data-binding/commanding) article.
|
||||
|
||||
![RPN Calculator application screenshot](Screenshots/01Portrait.a.png "RPN Calculator application screenshot")
|
||||
|
||||
## Author
|
||||
|
||||
Charles Petzold
|
|
@ -0,0 +1,392 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29230.61
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpnCalculator.Android", "RpnCalculator\RpnCalculator.Android\RpnCalculator.Android.csproj", "{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RpnCalculator", "RpnCalculator\RpnCalculator\RpnCalculator.csproj", "{646CC755-F4B2-4321-9DA9-44FB2BE685DD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpnCalculator.UWP", "RpnCalculator\RpnCalculator.UWP\RpnCalculator.UWP.csproj", "{66A02B35-05B5-4ACB-BD40-2333E443AF65}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpnCalculator.iOS", "RpnCalculator\RpnCalculator.iOS\RpnCalculator.iOS.csproj", "{C0357C97-217F-4612-BAF0-B343D16131FA}"
|
||||
EndProject
|
||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "RpnCalculator.Uwp.Shared", "RpnCalculator\RpnCalculator.UWP\RpnCalculator.Uwp.Shared.shproj", "{D511FA0B-8EFD-4E0C-B84F-910558B282DA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RpnCalculator.Wasm", "RpnCalculator\RpnCalculator.Wasm\RpnCalculator.Wasm.csproj", "{1EC5438F-07D3-4F1F-A5E5-358810E70695}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
RpnCalculator\RpnCalculator.UWP\RpnCalculator.Uwp.Shared.projitems*{d511fa0b-8efd-4e0c-b84f-910558b282da}*SharedItemsImports = 13
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
Ad-Hoc|ARM = Ad-Hoc|ARM
|
||||
Ad-Hoc|iPhone = Ad-Hoc|iPhone
|
||||
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
|
||||
Ad-Hoc|x64 = Ad-Hoc|x64
|
||||
Ad-Hoc|x86 = Ad-Hoc|x86
|
||||
AppStore|Any CPU = AppStore|Any CPU
|
||||
AppStore|ARM = AppStore|ARM
|
||||
AppStore|iPhone = AppStore|iPhone
|
||||
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
|
||||
AppStore|x64 = AppStore|x64
|
||||
AppStore|x86 = AppStore|x86
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|iPhone = Release|iPhone
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|x64.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|x86.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|ARM.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|ARM.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|ARM.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|iPhone.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|iPhone.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|x64.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|x64.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|x86.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.AppStore|x86.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|x64.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|x86.Build.0 = Release|Any CPU
|
||||
{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|ARM.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|ARM.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|ARM.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|x64.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|x64.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|x64.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|x86.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|x86.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.AppStore|x86.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|x64.Build.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|x86.Build.0 = Release|Any CPU
|
||||
{646CC755-F4B2-4321-9DA9-44FB2BE685DD}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|Any CPU.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|ARM.Build.0 = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|iPhone.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|iPhone.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|iPhone.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|x64.ActiveCfg = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|x64.Build.0 = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|x64.Deploy.0 = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|x86.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|x86.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Ad-Hoc|x86.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|Any CPU.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|Any CPU.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|Any CPU.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|ARM.ActiveCfg = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|ARM.Build.0 = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|ARM.Deploy.0 = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|iPhone.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|iPhone.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|iPhone.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|iPhoneSimulator.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|x64.ActiveCfg = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|x64.Build.0 = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|x64.Deploy.0 = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|x86.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|x86.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.AppStore|x86.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|Any CPU.Build.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|Any CPU.Deploy.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|iPhone.Build.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|iPhone.Deploy.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|iPhoneSimulator.Build.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|x64.Build.0 = Debug|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|x86.Build.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|Any CPU.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|Any CPU.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|ARM.Build.0 = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|iPhone.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|iPhone.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|iPhone.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|iPhoneSimulator.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|iPhoneSimulator.Deploy.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|x64.ActiveCfg = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|x64.Build.0 = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|x64.Deploy.0 = Release|x64
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|x86.ActiveCfg = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|x86.Build.0 = Release|x86
|
||||
{66A02B35-05B5-4ACB-BD40-2333E443AF65}.Release|x86.Deploy.0 = Release|x86
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|Any CPU.Deploy.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|ARM.Build.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|ARM.Deploy.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|iPhone.Deploy.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Ad-Hoc|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|x64.Build.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|x64.Deploy.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|x86.Build.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Ad-Hoc|x86.Deploy.0 = Ad-Hoc|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|Any CPU.Build.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|Any CPU.Deploy.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|ARM.ActiveCfg = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|ARM.Build.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|ARM.Deploy.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|iPhone.Build.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|iPhone.Deploy.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|iPhoneSimulator.Deploy.0 = AppStore|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|x64.ActiveCfg = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|x64.Build.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|x64.Deploy.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|x86.ActiveCfg = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|x86.Build.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.AppStore|x86.Deploy.0 = AppStore|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|Any CPU.Deploy.0 = Debug|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|ARM.ActiveCfg = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|ARM.Build.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|ARM.Deploy.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|iPhoneSimulator.Deploy.0 = Debug|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|x64.ActiveCfg = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|x64.Build.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|x64.Deploy.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|x86.ActiveCfg = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|x86.Build.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Debug|x86.Deploy.0 = Debug|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|Any CPU.ActiveCfg = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|Any CPU.Build.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|Any CPU.Deploy.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|ARM.ActiveCfg = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|ARM.Build.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|ARM.Deploy.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|iPhone.Deploy.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|iPhoneSimulator.Deploy.0 = Release|iPhoneSimulator
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|x64.ActiveCfg = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|x64.Build.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|x64.Deploy.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|x86.ActiveCfg = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|x86.Build.0 = Release|iPhone
|
||||
{C0357C97-217F-4612-BAF0-B343D16131FA}.Release|x86.Deploy.0 = Release|iPhone
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|ARM.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|x64.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|x64.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|x86.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.AppStore|x86.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1EC5438F-07D3-4F1F-A5E5-358810E70695}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {4D885B29-C625-4F6F-85DE-BF628B34EDCC}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,19 @@
|
|||
Any raw assets you want to be deployed with your application can be placed in
|
||||
this directory (and child directories) and given a Build Action of "AndroidAsset".
|
||||
|
||||
These files will be deployed with you package and will be accessible using Android's
|
||||
AssetManager, like this:
|
||||
|
||||
public class ReadAsset : Activity
|
||||
{
|
||||
protected override void OnCreate (Bundle bundle)
|
||||
{
|
||||
base.OnCreate (bundle);
|
||||
|
||||
InputStream input = Assets.Open ("my_asset.txt");
|
||||
}
|
||||
}
|
||||
|
||||
Additionally, some Android functions will automatically load asset files:
|
||||
|
||||
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
|
||||
using Android.App;
|
||||
using Android.Content.PM;
|
||||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using Android.OS;
|
||||
|
||||
namespace RpnCalculator.Droid
|
||||
{
|
||||
[Activity(Label = "RpnCalculator", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
|
||||
{
|
||||
protected override void OnCreate(Bundle bundle)
|
||||
{
|
||||
TabLayoutResource = Resource.Layout.Tabbar;
|
||||
ToolbarResource = Resource.Layout.Toolbar;
|
||||
|
||||
base.OnCreate(bundle);
|
||||
|
||||
global::Xamarin.Forms.Forms.Init(this, bundle);
|
||||
LoadApplication(new App());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<uses-sdk android:minSdkVersion="19" />
|
||||
<application android:label="RpnCalculator.Android"></application>
|
||||
</manifest>
|
|
@ -0,0 +1,34 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Android.App;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RpnCalculator.Android")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RpnCalculator.Android")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
|
||||
// Add some common permissions, these can be removed if not needed
|
||||
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
|
||||
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
|
|
@ -0,0 +1,50 @@
|
|||
Images, layout descriptions, binary blobs and string dictionaries can be included
|
||||
in your application as resource files. Various Android APIs are designed to
|
||||
operate on the resource IDs instead of dealing with images, strings or binary blobs
|
||||
directly.
|
||||
|
||||
For example, a sample Android app that contains a user interface layout (main.xml),
|
||||
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
|
||||
would keep its resources in the "Resources" directory of the application:
|
||||
|
||||
Resources/
|
||||
drawable-hdpi/
|
||||
icon.png
|
||||
|
||||
drawable-ldpi/
|
||||
icon.png
|
||||
|
||||
drawable-mdpi/
|
||||
icon.png
|
||||
|
||||
layout/
|
||||
main.xml
|
||||
|
||||
values/
|
||||
strings.xml
|
||||
|
||||
In order to get the build system to recognize Android resources, set the build action to
|
||||
"AndroidResource". The native Android APIs do not operate directly with filenames, but
|
||||
instead operate on resource IDs. When you compile an Android application that uses resources,
|
||||
the build system will package the resources for distribution and generate a class called
|
||||
"Resource" that contains the tokens for each one of the resources included. For example,
|
||||
for the above Resources layout, this is what the Resource class would expose:
|
||||
|
||||
public class Resource {
|
||||
public class drawable {
|
||||
public const int icon = 0x123;
|
||||
}
|
||||
|
||||
public class layout {
|
||||
public const int main = 0x456;
|
||||
}
|
||||
|
||||
public class strings {
|
||||
public const int first_string = 0xabc;
|
||||
public const int second_string = 0xbcd;
|
||||
}
|
||||
}
|
||||
|
||||
You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
|
||||
to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
|
||||
string in the dictionary file values/strings.xml.
|
После Ширина: | Высота: | Размер: 1.4 KiB |
После Ширина: | Высота: | Размер: 1.7 KiB |
После Ширина: | Высота: | Размер: 2.3 KiB |
После Ширина: | Высота: | Размер: 1.4 KiB |
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/sliding_tabs"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
app:tabIndicatorColor="@android:color/white"
|
||||
app:tabGravity="fill"
|
||||
app:tabMode="fixed" />
|
|
@ -0,0 +1,9 @@
|
|||
<android.support.v7.widget.Toolbar
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<resources>
|
||||
|
||||
<style name="MainTheme" parent="MainTheme.Base">
|
||||
</style>
|
||||
<!-- Base theme applied no matter what API -->
|
||||
<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
|
||||
<item name="windowNoTitle">true</item>
|
||||
<!--We will be using the toolbar so no need to show ActionBar-->
|
||||
<item name="windowActionBar">false</item>
|
||||
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette -->
|
||||
<!-- colorPrimary is used for the default action bar background -->
|
||||
<item name="colorPrimary">#2196F3</item>
|
||||
<!-- colorPrimaryDark is used for the status bar -->
|
||||
<item name="colorPrimaryDark">#1976D2</item>
|
||||
<!-- colorAccent is used as the default value for colorControlActivated
|
||||
which is used to tint widgets -->
|
||||
<item name="colorAccent">#FF4081</item>
|
||||
<!-- You can also set colorControlNormal, colorControlActivated
|
||||
colorControlHighlight and colorSwitchThumbNormal. -->
|
||||
<item name="windowActionModeOverlay">true</item>
|
||||
|
||||
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
|
||||
</style>
|
||||
|
||||
<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
|
||||
<item name="colorAccent">#FF4081</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{9CD889FB-2A3F-4C95-99CE-F42BF6C0B98F}</ProjectGuid>
|
||||
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RpnCalculator.Droid</RootNamespace>
|
||||
<AssemblyName>RpnCalculator.Android</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AndroidApplication>true</AndroidApplication>
|
||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
|
||||
<JavaMaximumHeapSize />
|
||||
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
||||
<NuGetPackageImportStamp />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>portable</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
|
||||
<AndroidLinkMode>None</AndroidLinkMode>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>portable</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
|
||||
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Xamarin.Forms" Version="4.2.0.709249" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Mono.Android" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.ObjectModel" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainActivity.cs" />
|
||||
<Compile Include="Resources\Resource.Designer.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\drawable\icon.png" />
|
||||
<AndroidResource Include="Resources\drawable-hdpi\icon.png" />
|
||||
<AndroidResource Include="Resources\drawable-xhdpi\icon.png" />
|
||||
<AndroidResource Include="Resources\drawable-xxhdpi\icon.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Properties\AndroidManifest.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
||||
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
||||
<AndroidResource Include="Resources\values\styles.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RpnCalculator\RpnCalculator.csproj">
|
||||
<Project>{8c293033-a36f-4eca-8277-e26732a0ef60}</Project>
|
||||
<Name>RpnCalculator</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,8 @@
|
|||
<Application
|
||||
x:Class="RpnCalculator.UWP.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:RpnCalculator.UWP"
|
||||
RequestedTheme="Light">
|
||||
|
||||
</Application>
|
|
@ -0,0 +1,107 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices.WindowsRuntime;
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.Foundation;
|
||||
using Windows.Foundation.Collections;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Controls.Primitives;
|
||||
using Windows.UI.Xaml.Data;
|
||||
using Windows.UI.Xaml.Input;
|
||||
using Windows.UI.Xaml.Media;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
namespace RpnCalculator.UWP
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides application-specific behavior to supplement the default Application class.
|
||||
/// </summary>
|
||||
sealed partial class App : Application
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes the singleton application object. This is the first line of authored code
|
||||
/// executed, and as such is the logical equivalent of main() or WinMain().
|
||||
/// </summary>
|
||||
public App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.Suspending += OnSuspending;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when the application is launched normally by the end user. Other entry points
|
||||
/// will be used such as when the application is launched to open a specific file.
|
||||
/// </summary>
|
||||
/// <param name="e">Details about the launch request and process.</param>
|
||||
protected override void OnLaunched(LaunchActivatedEventArgs e)
|
||||
{
|
||||
|
||||
#if DEBUG
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
this.DebugSettings.EnableFrameRateCounter = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
Frame rootFrame = Window.Current.Content as Frame;
|
||||
|
||||
// Do not repeat app initialization when the Window already has content,
|
||||
// just ensure that the window is active
|
||||
if (rootFrame == null)
|
||||
{
|
||||
// Create a Frame to act as the navigation context and navigate to the first page
|
||||
rootFrame = new Frame();
|
||||
|
||||
rootFrame.NavigationFailed += OnNavigationFailed;
|
||||
|
||||
Xamarin.Forms.Forms.Init(e);
|
||||
|
||||
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
|
||||
{
|
||||
//TODO: Load state from previously suspended application
|
||||
}
|
||||
|
||||
// Place the frame in the current Window
|
||||
Window.Current.Content = rootFrame;
|
||||
}
|
||||
|
||||
if (rootFrame.Content == null)
|
||||
{
|
||||
// When the navigation stack isn't restored navigate to the first page,
|
||||
// configuring the new page by passing required information as a navigation
|
||||
// parameter
|
||||
rootFrame.Navigate(typeof(MainPage), e.Arguments);
|
||||
}
|
||||
// Ensure the current window is active
|
||||
Window.Current.Activate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when Navigation to a certain page fails
|
||||
/// </summary>
|
||||
/// <param name="sender">The Frame which failed navigation</param>
|
||||
/// <param name="e">Details about the navigation failure</param>
|
||||
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
|
||||
{
|
||||
throw new Exception($"Failed to load Page {e.SourcePageType}: {e.Exception}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when application execution is being suspended. Application state is saved
|
||||
/// without knowing whether the application will be terminated or resumed with the contents
|
||||
/// of memory still intact.
|
||||
/// </summary>
|
||||
/// <param name="sender">The source of the suspend request.</param>
|
||||
/// <param name="e">Details about the suspend request.</param>
|
||||
private void OnSuspending(object sender, SuspendingEventArgs e)
|
||||
{
|
||||
var deferral = e.SuspendingOperation.GetDeferral();
|
||||
//TODO: Save application state and stop any background activity
|
||||
deferral.Complete();
|
||||
}
|
||||
}
|
||||
}
|
После Ширина: | Высота: | Размер: 261 B |
После Ширина: | Высота: | Размер: 305 B |
После Ширина: | Высота: | Размер: 347 B |
После Ширина: | Высота: | Размер: 431 B |
После Ширина: | Высота: | Размер: 758 B |
После Ширина: | Высота: | Размер: 1.7 KiB |
После Ширина: | Высота: | Размер: 2.1 KiB |
После Ширина: | Высота: | Размер: 2.5 KiB |
После Ширина: | Высота: | Размер: 3.5 KiB |
После Ширина: | Высота: | Размер: 8.6 KiB |
После Ширина: | Высота: | Размер: 1019 B |
После Ширина: | Высота: | Размер: 1.3 KiB |
После Ширина: | Высота: | Размер: 1.4 KiB |
После Ширина: | Высота: | Размер: 1.9 KiB |
После Ширина: | Высота: | Размер: 3.6 KiB |
После Ширина: | Высота: | Размер: 394 B |
После Ширина: | Высота: | Размер: 483 B |
После Ширина: | Высота: | Размер: 563 B |
После Ширина: | Высота: | Размер: 658 B |
После Ширина: | Высота: | Размер: 1.1 KiB |
Двоичные данные
RpnCalculator/RpnCalculator.UWP/Assets/Square44x44Logo.targetsize-16_altform-unplated.png
Normal file
После Ширина: | Высота: | Размер: 196 B |
Двоичные данные
RpnCalculator/RpnCalculator.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
Normal file
После Ширина: | Высота: | Размер: 253 B |
Двоичные данные
RpnCalculator/RpnCalculator.UWP/Assets/Square44x44Logo.targetsize-256_altform-unplated.png
Normal file
После Ширина: | Высота: | Размер: 1.6 KiB |
Двоичные данные
RpnCalculator/RpnCalculator.UWP/Assets/Square44x44Logo.targetsize-32_altform-unplated.png
Normal file
После Ширина: | Высота: | Размер: 314 B |
Двоичные данные
RpnCalculator/RpnCalculator.UWP/Assets/Square44x44Logo.targetsize-48_altform-unplated.png
Normal file
После Ширина: | Высота: | Размер: 422 B |
После Ширина: | Высота: | Размер: 392 B |
После Ширина: | Высота: | Размер: 921 B |
После Ширина: | Высота: | Размер: 1.1 KiB |
После Ширина: | Высота: | Размер: 1.3 KiB |
После Ширина: | Высота: | Размер: 1.7 KiB |
После Ширина: | Высота: | Размер: 3.6 KiB |
|
@ -0,0 +1,15 @@
|
|||
<forms:WindowsPage
|
||||
x:Class="RpnCalculator.UWP.MainPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:forms="using:Xamarin.Forms.Platform.UWP"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:RpnCalculator.UWP"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
</Grid>
|
||||
</forms:WindowsPage>
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices.WindowsRuntime;
|
||||
using Windows.Foundation;
|
||||
using Windows.Foundation.Collections;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Controls.Primitives;
|
||||
using Windows.UI.Xaml.Data;
|
||||
using Windows.UI.Xaml.Input;
|
||||
using Windows.UI.Xaml.Media;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
namespace RpnCalculator.UWP
|
||||
{
|
||||
public sealed partial class MainPage
|
||||
{
|
||||
public MainPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
LoadApplication(new RpnCalculator.App());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
IgnorableNamespaces="uap mp">
|
||||
|
||||
<Identity
|
||||
Name="081203ac-505f-48ad-b132-3fcc85a5d74e"
|
||||
Publisher="CN=User"
|
||||
Version="1.0.0.0" />
|
||||
|
||||
<mp:PhoneIdentity PhoneProductId="081203ac-505f-48ad-b132-3fcc85a5d74e" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||
|
||||
<Properties>
|
||||
<DisplayName>RpnCalculator.UWP</DisplayName>
|
||||
<PublisherDisplayName>User</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||
</Dependencies>
|
||||
|
||||
<Resources>
|
||||
<Resource Language="x-generate"/>
|
||||
</Resources>
|
||||
|
||||
<Applications>
|
||||
<Application Id="App"
|
||||
Executable="$targetnametoken$.exe"
|
||||
EntryPoint="RpnCalculator.UWP.App">
|
||||
<uap:VisualElements
|
||||
DisplayName="RpnCalculator.UWP"
|
||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||
Square44x44Logo="Assets\Square44x44Logo.png"
|
||||
Description="RpnCalculator.UWP"
|
||||
BackgroundColor="transparent">
|
||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
</Capabilities>
|
||||
</Package>
|
|
@ -0,0 +1,29 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RpnCalculator.UWP")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RpnCalculator.UWP")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2015")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: ComVisible(false)]
|
|
@ -0,0 +1,31 @@
|
|||
<!--
|
||||
This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
|
||||
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
||||
optimizer.
|
||||
|
||||
Runtime Directives are documented at http://go.microsoft.com/fwlink/?LinkID=391919
|
||||
|
||||
To fully enable reflection for App1.MyClass and all of its public/private members
|
||||
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
||||
|
||||
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
||||
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
||||
|
||||
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
||||
<Namespace Name="DataClasses.ViewModels" Seralize="All" />
|
||||
-->
|
||||
|
||||
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
||||
<Application>
|
||||
<!--
|
||||
An Assembly element with Name="*Application*" applies to all assemblies in
|
||||
the application package. The asterisks are not wildcards.
|
||||
-->
|
||||
<Assembly Name="*Application*" Dynamic="Required All" />
|
||||
|
||||
|
||||
<!-- Add your application specific runtime directives here. -->
|
||||
|
||||
|
||||
</Application>
|
||||
</Directives>
|
|
@ -0,0 +1,165 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProjectGuid>{66A02B35-05B5-4ACB-BD40-2333E443AF65}</ProjectGuid>
|
||||
<OutputType>AppContainerExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RpnCalculator.UWP</RootNamespace>
|
||||
<AssemblyName>RpnCalculator.UWP</AssemblyName>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||
<TargetPlatformVersion>10.0.16299.0</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
|
||||
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
|
||||
<EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<PackageCertificateKeyFile>RpnCalculator.UWP_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
|
||||
<OutputPath>bin\ARM\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.0.12" />
|
||||
<PackageReference Include="Xamarin.Forms" Version="4.2.0.709249" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="Package.appxmanifest">
|
||||
<SubType>Designer</SubType>
|
||||
</AppxManifest>
|
||||
<None Include="RpnCalculator.UWP_TemporaryKey.pfx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Properties\Default.rd.xml" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-100.png" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-125.png" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-150.png" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-400.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-100.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-125.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-150.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-200.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-400.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-100.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-125.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-150.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-200.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-400.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-100.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-125.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-150.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-200.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-400.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-16_altform-unplated.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-32_altform-unplated.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-48_altform-unplated.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-256_altform-unplated.png" />
|
||||
<Content Include="Assets\StoreLogo.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-100.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-125.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-150.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-400.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Page Include="MainPage.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RpnCalculator\RpnCalculator.csproj">
|
||||
<Project>{8c293033-a36f-4eca-8277-e26732a0ef60}</Project>
|
||||
<Name>RpnCalculator</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
<HasSharedItems>true</HasSharedItems>
|
||||
<SharedGUID>d511fa0b-8efd-4e0c-b84f-910558b282da</SharedGUID>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration">
|
||||
<Import_RootNamespace>RpnCalculator.Uwp.Shared</Import_RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\LockScreenLogo.scale-100.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\LockScreenLogo.scale-125.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\LockScreenLogo.scale-150.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\LockScreenLogo.scale-200.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\LockScreenLogo.scale-400.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\SplashScreen.scale-100.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\SplashScreen.scale-125.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\SplashScreen.scale-150.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\SplashScreen.scale-200.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\SplashScreen.scale-400.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square150x150Logo.scale-100.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square150x150Logo.scale-125.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square150x150Logo.scale-150.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square150x150Logo.scale-200.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square150x150Logo.scale-400.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.scale-100.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.scale-125.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.scale-150.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.scale-200.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.scale-400.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.targetsize-16_altform-unplated.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.targetsize-256_altform-unplated.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.targetsize-32_altform-unplated.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Square44x44Logo.targetsize-48_altform-unplated.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\StoreLogo.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Wide310x150Logo.scale-100.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Wide310x150Logo.scale-125.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Wide310x150Logo.scale-150.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Wide310x150Logo.scale-200.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Assets\Wide310x150Logo.scale-400.png" />
|
||||
<Content Include="$(MSBuildThisFileDirectory)Properties\Default.rd.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="$(MSBuildThisFileDirectory)App.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="$(MSBuildThisFileDirectory)MainPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>d511fa0b-8efd-4e0c-b84f-910558b282da</ProjectGuid>
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
|
||||
<PropertyGroup />
|
||||
<Import Project="RpnCalculator.Uwp.Shared.projitems" Label="Shared" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,10 @@
|
|||
<linker>
|
||||
<assembly fullname="RpnCalculator.Wasm" />
|
||||
<assembly fullname="Uno.UI" />
|
||||
<assembly fullname="Xamarin.Forms.Platform.Uno" />
|
||||
|
||||
<assembly fullname="System.Core">
|
||||
<!-- This is required by JSon.NET and any expression.Compile caller -->
|
||||
<type fullname="System.Linq.Expressions*" />
|
||||
</assembly>
|
||||
</linker>
|
|
@ -0,0 +1,59 @@
|
|||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using Windows.UI.Xaml;
|
||||
|
||||
namespace RpnCalculator.Wasm
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static int Main(string[] args)
|
||||
{
|
||||
ConfigureFilters(Uno.Extensions.LogExtensionPoint.AmbientLoggerFactory);
|
||||
|
||||
Windows.UI.Xaml.Application.Start(_ => new RpnCalculator.UWP.App());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Configures global logging
|
||||
/// </summary>
|
||||
/// <param name="factory"></param>
|
||||
static void ConfigureFilters(ILoggerFactory factory)
|
||||
{
|
||||
factory
|
||||
.WithFilter(new FilterLoggerSettings
|
||||
{
|
||||
{ "Uno", LogLevel.Warning },
|
||||
{ "Windows", LogLevel.Warning },
|
||||
|
||||
// Debug JS interop
|
||||
// { "Uno.Foundation.WebAssemblyRuntime", LogLevel.Debug },
|
||||
|
||||
// Generic Xaml events
|
||||
// { "Windows.UI.Xaml", LogLevel.Debug },
|
||||
// { "Windows.UI.Xaml.VisualStateGroup", LogLevel.Debug },
|
||||
// { "Windows.UI.Xaml.StateTriggerBase", LogLevel.Debug },
|
||||
// { "Windows.UI.Xaml.UIElement", LogLevel.Debug },
|
||||
|
||||
// Layouter specific messages
|
||||
// { "Windows.UI.Xaml.Controls", LogLevel.Debug },
|
||||
// { "Windows.UI.Xaml.Controls.Layouter", LogLevel.Debug },
|
||||
// { "Windows.UI.Xaml.Controls.Panel", LogLevel.Debug },
|
||||
// { "Windows.Storage", LogLevel.Debug },
|
||||
|
||||
// Binding related messages
|
||||
// { "Windows.UI.Xaml.Data", LogLevel.Debug },
|
||||
|
||||
// DependencyObject memory references tracking
|
||||
// { "ReferenceHolder", LogLevel.Debug },
|
||||
}
|
||||
)
|
||||
#if DEBUG
|
||||
.AddConsole(LogLevel.Debug);
|
||||
#else
|
||||
.AddConsole(LogLevel.Information);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<WasmHead>true</WasmHead>
|
||||
<DefineConstants>$(DefineConstants);__WASM__</DefineConstants>
|
||||
<NoWarn>NU1701</NoWarn>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<MonoRuntimeDebuggerEnabled Condition="'$(Configuration)'=='Debug'">true</MonoRuntimeDebuggerEnabled>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="..\RpnCalculator.UWP\Assets\*.png" Link="Assets\%(FileName)%(Extension)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="WasmCSS\Fonts.css" />
|
||||
<EmbeddedResource Include="WasmScripts\AppManifest.js" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<LinkerDescriptor Include="LinkerConfig.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!--
|
||||
This item group is required by the project templace because of the
|
||||
new SDK-Style project, otherwise some files are not aded automatically.
|
||||
|
||||
You can safely remove this ItemGroup completely.
|
||||
-->
|
||||
<Compile Remove="Program.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Content Include="LinkerConfig.xml" />
|
||||
<Content Include="wwwroot/web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- Note that for WebAssembly version 1.1.1 of the console logger required -->
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
|
||||
<PackageReference Include="Uno.UI" Version="1.46.226-dev.2657" />
|
||||
<PackageReference Include="Uno.Wasm.Bootstrap" Version="1.0.0-dev.300" />
|
||||
<PackageReference Include="Uno.Xamarin.Forms.Platform" Version="4.1.0-uno.73" />
|
||||
<DotNetCliToolReference Include="Uno.Wasm.Bootstrap.Cli" Version="1.0.0-dev.300" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RpnCalculator\RpnCalculator.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\RpnCalculator.UWP\RpnCalculator.Uwp.Shared.projitems" Label="Shared" />
|
||||
</Project>
|
|
@ -0,0 +1,7 @@
|
|||
var UnoAppManifest = {
|
||||
|
||||
splashScreenImage: "Assets/SplashScreen.scale-200.png",
|
||||
splashScreenColor: "#00f",
|
||||
displayName: "RpnCalculator"
|
||||
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.web>
|
||||
<customErrors mode="Off"/>
|
||||
</system.web>
|
||||
|
||||
<system.webServer>
|
||||
|
||||
<!-- Disable compression as we're doing it throuh pre-compressed files -->
|
||||
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
|
||||
|
||||
<staticContent>
|
||||
<remove fileExtension=".dll" />
|
||||
<remove fileExtension=".wasm" />
|
||||
<remove fileExtension=".woff" />
|
||||
<remove fileExtension=".woff2" />
|
||||
<mimeMap fileExtension=".wasm" mimeType="application/wasm" />
|
||||
<mimeMap fileExtension=".clr" mimeType="application/octet-stream" />
|
||||
<mimeMap fileExtension=".pdb" mimeType="application/octet-stream" />
|
||||
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
|
||||
<mimeMap fileExtension=".woff2" mimeType="application/font-woff" />
|
||||
|
||||
<!-- Required for PWAs -->
|
||||
<mimeMap fileExtension=".json" mimeType="application/octet-stream" />
|
||||
</staticContent>
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Lookup for pre-compressed brotli file" stopProcessing="true">
|
||||
<match url="(.*)$"/>
|
||||
<conditions>
|
||||
<!-- Match brotli requests -->
|
||||
<add input="{HTTP_ACCEPT_ENCODING}" pattern="br" />
|
||||
|
||||
<!-- Match all but pre-compressed files -->
|
||||
<add input="{REQUEST_URI}" pattern="^(?!/_compressed_br/)(.*)$" />
|
||||
|
||||
<!-- Check if the pre-compressed file exists on the disk -->
|
||||
<add input="{DOCUMENT_ROOT}/_compressed_br/{C:0}" matchType="IsFile" negate="false" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="/_compressed_br{C:0}" />
|
||||
</rule>
|
||||
|
||||
<rule name="Lookup for pre-compressed gzip file" stopProcessing="true">
|
||||
<match url="(.*)$"/>
|
||||
<conditions>
|
||||
<!-- Match gzip requests -->
|
||||
<add input="{HTTP_ACCEPT_ENCODING}" pattern="gzip" />
|
||||
|
||||
<!-- Match all but pre-compressed files -->
|
||||
<add input="{REQUEST_URI}" pattern="^(?!/_compressed_gz/)(.*)$" />
|
||||
|
||||
<!-- Check if the pre-compressed file exists on the disk -->
|
||||
<add input="{DOCUMENT_ROOT}/_compressed_gz/{C:0}" matchType="IsFile" negate="false" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="/_compressed_gz{C:0}" />
|
||||
</rule>
|
||||
</rules>
|
||||
|
||||
<outboundRules>
|
||||
<rule name="Adjust content encoding for gzip pre-compressed files" enabled="true" stopProcessing="true">
|
||||
<match serverVariable="RESPONSE_CONTENT_ENCODING" pattern="" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_URI}" pattern="/_compressed_gz/.*$" />
|
||||
</conditions>
|
||||
<action type="Rewrite" value="gzip"/>
|
||||
</rule>
|
||||
<rule name="Adjust content encoding for brotli pre-compressed files" enabled="true" stopProcessing="true">
|
||||
<match serverVariable="RESPONSE_CONTENT_ENCODING" pattern="" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_URI}" pattern="/_compressed_br/.*$" />
|
||||
</conditions>
|
||||
<action type="Rewrite" value="br"/>
|
||||
</rule>
|
||||
</outboundRules>
|
||||
</rewrite>
|
||||
</system.webServer>
|
||||
</configuration>
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
||||
namespace RpnCalculator.iOS
|
||||
{
|
||||
// The UIApplicationDelegate for the application. This class is responsible for launching the
|
||||
// User Interface of the application, as well as listening (and optionally responding) to
|
||||
// application events from iOS.
|
||||
[Register("AppDelegate")]
|
||||
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
|
||||
{
|
||||
//
|
||||
// This method is invoked when the application has loaded and is ready to run. In this
|
||||
// method you should instantiate the window, load the UI into it and then make the window
|
||||
// visible.
|
||||
//
|
||||
// You have 17 seconds to return from this method, or iOS will terminate your application.
|
||||
//
|
||||
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
|
||||
{
|
||||
global::Xamarin.Forms.Forms.Init();
|
||||
LoadApplication(new App());
|
||||
|
||||
return base.FinishedLaunching(app, options);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>8.0</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>RpnCalculator</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.yourcompany.RpnCalculator</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>Icon-60@2x</string>
|
||||
<string>Icon-60@3x</string>
|
||||
<string>Icon-76</string>
|
||||
<string>Icon-76@2x</string>
|
||||
<string>Default</string>
|
||||
<string>Default@2x</string>
|
||||
<string>Default-568h@2x</string>
|
||||
<string>Default-Portrait</string>
|
||||
<string>Default-Portrait@2x</string>
|
||||
<string>Icon-Small-40</string>
|
||||
<string>Icon-Small-40@2x</string>
|
||||
<string>Icon-Small-40@3x</string>
|
||||
<string>Icon-Small</string>
|
||||
<string>Icon-Small@2x</string>
|
||||
<string>Icon-Small@3x</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
||||
namespace RpnCalculator.iOS
|
||||
{
|
||||
public class Application
|
||||
{
|
||||
// This is the main entry point of the application.
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main(args, null, "AppDelegate");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RpnCalculator.iOS")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RpnCalculator.iOS")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
После Ширина: | Высота: | Размер: 8.7 KiB |
После Ширина: | Высота: | Размер: 10 KiB |
После Ширина: | Высота: | Размер: 34 KiB |
После Ширина: | Высота: | Размер: 7.1 KiB |
После Ширина: | Высота: | Размер: 8.2 KiB |
После Ширина: | Высота: | Размер: 1.7 KiB |
После Ширина: | Высота: | Размер: 21 KiB |
После Ширина: | Высота: | Размер: 1.2 KiB |
После Ширина: | Высота: | Размер: 2.2 KiB |
После Ширина: | Высота: | Размер: 729 B |
После Ширина: | Высота: | Размер: 1.2 KiB |
После Ширина: | Высота: | Размер: 12 KiB |
После Ширина: | Высота: | Размер: 1.1 KiB |
После Ширина: | Высота: | Размер: 955 B |
После Ширина: | Высота: | Размер: 7.1 KiB |
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6245" systemVersion="13F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="X5k-f2-b5h">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6238"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="gAE-YM-kbH">
|
||||
<objects>
|
||||
<viewController id="X5k-f2-b5h" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Y8P-hJ-Z43"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="9ZL-r4-8FZ"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="yd7-JS-zBw">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" misplaced="YES" image="Icon-60.png" translatesAutoresizingMaskIntoConstraints="NO" id="23">
|
||||
<rect key="frame" x="270" y="270" width="60" height="60"/>
|
||||
<rect key="contentStretch" x="0.0" y="0.0" width="0.0" height="0.0"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.20392156862745098" green="0.59607843137254901" blue="0.85882352941176465" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="23" firstAttribute="centerY" secondItem="yd7-JS-zBw" secondAttribute="centerY" priority="1" id="39"/>
|
||||
<constraint firstItem="23" firstAttribute="centerX" secondItem="yd7-JS-zBw" secondAttribute="centerX" priority="1" id="41"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="XAI-xm-WK6" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="349" y="339"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="Icon-60.png" width="180" height="180"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -0,0 +1,141 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{C0357C97-217F-4612-BAF0-B343D16131FA}</ProjectGuid>
|
||||
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>RpnCalculator.iOS</RootNamespace>
|
||||
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
|
||||
<AssemblyName>RpnCalculator.iOS</AssemblyName>
|
||||
<NuGetPackageImportStamp />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchArch>x86_64</MtouchArch>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchArch>x86_64</MtouchArch>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchArch>ARM64</MtouchArch>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchArch>ARM64</MtouchArch>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>bin\iPhone\Ad-Hoc</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>False</ConsolePause>
|
||||
<MtouchArch>ARM64</MtouchArch>
|
||||
<BuildIpa>True</BuildIpa>
|
||||
<CodesignProvision>Automatic:AdHoc</CodesignProvision>
|
||||
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>bin\iPhone\AppStore</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>False</ConsolePause>
|
||||
<MtouchArch>ARM64</MtouchArch>
|
||||
<CodesignProvision>Automatic:AppStore</CodesignProvision>
|
||||
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Xamarin.Forms" Version="4.2.0.709249" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Main.cs" />
|
||||
<Compile Include="AppDelegate.cs" />
|
||||
<None Include="Entitlements.plist" />
|
||||
<None Include="Info.plist" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<ITunesArtwork Include="iTunesArtwork" />
|
||||
<ITunesArtwork Include="iTunesArtwork@2x" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BundleResource Include="Resources\Default-568h%402x.png" />
|
||||
<BundleResource Include="Resources\Default-Portrait.png" />
|
||||
<BundleResource Include="Resources\Default-Portrait%402x.png" />
|
||||
<BundleResource Include="Resources\Default.png" />
|
||||
<BundleResource Include="Resources\Default%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-60%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-60%403x.png" />
|
||||
<BundleResource Include="Resources\Icon-76.png" />
|
||||
<BundleResource Include="Resources\Icon-76%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small-40.png" />
|
||||
<BundleResource Include="Resources\Icon-Small-40%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small-40%403x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small.png" />
|
||||
<BundleResource Include="Resources\Icon-Small%402x.png" />
|
||||
<BundleResource Include="Resources\Icon-Small%403x.png" />
|
||||
<InterfaceDefinition Include="Resources\LaunchScreen.storyboard" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="Xamarin.iOS" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\RpnCalculator\RpnCalculator.csproj">
|
||||
<Project>{8c293033-a36f-4eca-8277-e26732a0ef60}</Project>
|
||||
<Name>RpnCalculator</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup />
|
||||
</Target>
|
||||
</Project>
|
После Ширина: | Высота: | Размер: 16 KiB |
После Ширина: | Высота: | Размер: 20 KiB |
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Application xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="RpnCalculator.App">
|
||||
<Application.Resources>
|
||||
|
||||
<!-- Application resource dictionary -->
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
|
||||
namespace RpnCalculator
|
||||
{
|
||||
public partial class App : Application
|
||||
{
|
||||
public App()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
MainPage = new RpnCalculator.MainPage();
|
||||
}
|
||||
|
||||
protected override void OnStart()
|
||||
{
|
||||
// Handle when your app starts
|
||||
}
|
||||
|
||||
protected override void OnSleep()
|
||||
{
|
||||
// Handle when your app sleeps
|
||||
}
|
||||
|
||||
protected override void OnResume()
|
||||
{
|
||||
// Handle when your app resumes
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,499 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:RpnCalculator"
|
||||
x:Class="RpnCalculator.MainPage">
|
||||
<ContentPage.Padding>
|
||||
<OnPlatform x:TypeArguments="Thickness">
|
||||
<On Platform="iOS" Value="0, 20, 0, 0" />
|
||||
</OnPlatform>
|
||||
</ContentPage.Padding>
|
||||
|
||||
<ContentPage.BindingContext>
|
||||
<local:RpnCalculatorViewModel />
|
||||
</ContentPage.BindingContext>
|
||||
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Grid">
|
||||
<Setter Property="RowSpacing" Value="2" />
|
||||
<Setter Property="ColumnSpacing" Value="2" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="VerticalOptions" Value="Center" />
|
||||
<Setter Property="HorizontalTextAlignment" Value="End" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="BorderWidth" Value="1" />
|
||||
<Setter Property="BorderColor" Value="Black" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<Grid Margin="5">
|
||||
|
||||
<!-- Portrait: 10 rows, 5 columns -->
|
||||
<Grid x:Name="portrait">
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- X and Y Stack Values -->
|
||||
<Frame Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5"
|
||||
Padding="0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label Text="Y = "
|
||||
Grid.Row="0" Grid.Column="0" />
|
||||
|
||||
<Label Text="{Binding YStackValue}"
|
||||
Grid.Row="0" Grid.Column="1" />
|
||||
|
||||
<Label Text="X = "
|
||||
Grid.Row="1" Grid.Column="0" />
|
||||
|
||||
<Label Text="{Binding XStackValue}"
|
||||
Grid.Row="1" Grid.Column="1" />
|
||||
</Grid>
|
||||
</Frame>
|
||||
|
||||
<Frame Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="5"
|
||||
Padding="0">
|
||||
<Label Text="{Binding Entry}"
|
||||
FontSize="Large" />
|
||||
</Frame>
|
||||
|
||||
<!-- Operations -->
|
||||
<Button Text="yᵡ"
|
||||
Grid.Row="2" Grid.Column="0"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="pow" />
|
||||
|
||||
<Button Text="sin"
|
||||
Grid.Row="2" Grid.Column="1"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="sin" />
|
||||
|
||||
<Button Text="cos"
|
||||
Grid.Row="2" Grid.Column="2"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="cos" />
|
||||
|
||||
<Button Text="tan"
|
||||
Grid.Row="2" Grid.Column="3"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="tan" />
|
||||
|
||||
<Button Text="rad"
|
||||
Grid.Row="2" Grid.Column="4"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="radians" />
|
||||
|
||||
<Button Text="log"
|
||||
Grid.Row="3" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="log10" />
|
||||
|
||||
<Button Text="asin"
|
||||
Grid.Row="3" Grid.Column="1"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="asin" />
|
||||
|
||||
<Button Text="acos"
|
||||
Grid.Row="3" Grid.Column="2"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="acos" />
|
||||
|
||||
<Button Text="atan"
|
||||
Grid.Row="3" Grid.Column="3"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="atan" />
|
||||
|
||||
<Button Text="deg"
|
||||
Grid.Row="3" Grid.Column="4"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="degrees" />
|
||||
|
||||
<Button Text="ln"
|
||||
Grid.Row="4" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="log" />
|
||||
|
||||
<Button Text="eᵡ"
|
||||
Grid.Row="5" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="exp" />
|
||||
|
||||
<Button Text="√"
|
||||
Grid.Row="6" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="sqrt" />
|
||||
|
||||
<Button Text="1/x"
|
||||
Grid.Row="7" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="invert" />
|
||||
|
||||
<Button Text="+/–"
|
||||
Grid.Row="8" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="negate" />
|
||||
|
||||
<Button Text="x⇔y"
|
||||
Grid.Row="9" Grid.Column="0"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="swap" />
|
||||
|
||||
<!-- Numeric Keypad -->
|
||||
<Button Text="C"
|
||||
Grid.Row="4" Grid.Column="1"
|
||||
Command="{Binding ClearCommand}" />
|
||||
|
||||
<Button Text="CE"
|
||||
Grid.Row="4" Grid.Column="2"
|
||||
Command="{Binding ClearEntryCommand}" />
|
||||
|
||||
<Button Text="⇦"
|
||||
Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="2"
|
||||
Command="{Binding BackspaceCommand}" />
|
||||
|
||||
<Button Text="7"
|
||||
Grid.Row="5" Grid.Column="1"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="7" />
|
||||
|
||||
<Button Text="8"
|
||||
Grid.Row="5" Grid.Column="2"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="8" />
|
||||
|
||||
<Button Text="9"
|
||||
Grid.Row="5" Grid.Column="3"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="9" />
|
||||
|
||||
<Button Text="/"
|
||||
Grid.Row="5" Grid.Column="4"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="divide" />
|
||||
|
||||
<Button Text="4"
|
||||
Grid.Row="6" Grid.Column="1"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="4" />
|
||||
|
||||
<Button Text="5"
|
||||
Grid.Row="6" Grid.Column="2"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="5" />
|
||||
|
||||
<Button Text="6"
|
||||
Grid.Row="6" Grid.Column="3"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="6" />
|
||||
|
||||
<Button Text="×"
|
||||
Grid.Row="6" Grid.Column="4"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="multiply" />
|
||||
|
||||
<Button Text="1"
|
||||
Grid.Row="7" Grid.Column="1"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="1" />
|
||||
|
||||
<Button Text="2"
|
||||
Grid.Row="7" Grid.Column="2"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="2" />
|
||||
|
||||
<Button Text="3"
|
||||
Grid.Row="7" Grid.Column="3"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="3" />
|
||||
|
||||
<Button Text="–"
|
||||
Grid.Row="7" Grid.Column="4"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="subtract" />
|
||||
|
||||
<Button Text="0"
|
||||
Grid.Row="8" Grid.Column="1" Grid.ColumnSpan="2"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="0" />
|
||||
|
||||
<Button Text="·"
|
||||
Grid.Row="8" Grid.Column="3"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="." />
|
||||
|
||||
<Button Text="+"
|
||||
Grid.Row="8" Grid.Column="4"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="add" />
|
||||
|
||||
<Button Text="ENTER"
|
||||
Grid.Row="9" Grid.Column="1" Grid.ColumnSpan="4"
|
||||
Command="{Binding EnterCommand}" />
|
||||
</Grid>
|
||||
|
||||
<!-- Landscape: 6 rows, 8 columns -->
|
||||
<Grid x:Name="landscape">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- X and Y Stack Values -->
|
||||
<Frame Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4"
|
||||
Padding="0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label Text="Y = "
|
||||
Grid.Row="0" Grid.Column="0" />
|
||||
|
||||
<Label Text="{Binding YStackValue}"
|
||||
Grid.Row="0" Grid.Column="1" />
|
||||
|
||||
<Label Text="X = "
|
||||
Grid.Row="1" Grid.Column="0" />
|
||||
|
||||
<Label Text="{Binding XStackValue}"
|
||||
Grid.Row="1" Grid.Column="1" />
|
||||
</Grid>
|
||||
</Frame>
|
||||
|
||||
<Frame Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4"
|
||||
Padding="0">
|
||||
<Label Text="{Binding Entry}"
|
||||
FontSize="Large" />
|
||||
</Frame>
|
||||
|
||||
<!-- Operations -->
|
||||
<Button Text="yᵡ"
|
||||
Grid.Row="2" Grid.Column="0"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="pow" />
|
||||
|
||||
<Button Text="log"
|
||||
Grid.Row="2" Grid.Column="1"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="log10" />
|
||||
|
||||
<Button Text="ln"
|
||||
Grid.Row="2" Grid.Column="2"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="log" />
|
||||
|
||||
<Button Text="eᵡ"
|
||||
Grid.Row="2" Grid.Column="3"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="exp" />
|
||||
|
||||
<Button Text="√"
|
||||
Grid.Row="3" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="sqrt" />
|
||||
|
||||
<Button Text="sin"
|
||||
Grid.Row="3" Grid.Column="1"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="sin" />
|
||||
|
||||
<Button Text="cos"
|
||||
Grid.Row="3" Grid.Column="2"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="cos" />
|
||||
|
||||
<Button Text="tan"
|
||||
Grid.Row="3" Grid.Column="3"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="tan" />
|
||||
|
||||
<Button Text="1/x"
|
||||
Grid.Row="4" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="invert" />
|
||||
|
||||
<Button Text="asin"
|
||||
Grid.Row="4" Grid.Column="1"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="asin" />
|
||||
|
||||
<Button Text="acos"
|
||||
Grid.Row="4" Grid.Column="2"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="acos" />
|
||||
|
||||
<Button Text="atan"
|
||||
Grid.Row="4" Grid.Column="3"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="atan" />
|
||||
|
||||
<Button Text="+/–"
|
||||
Grid.Row="5" Grid.Column="0"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="negate" />
|
||||
|
||||
<Button Text="x⇔y"
|
||||
Grid.Row="5" Grid.Column="1"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="swap" />
|
||||
|
||||
<Button Text="rad"
|
||||
Grid.Row="5" Grid.Column="2"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="radians" />
|
||||
|
||||
<Button Text="deg"
|
||||
Grid.Row="5" Grid.Column="3"
|
||||
Command="{Binding UnaryOperation}"
|
||||
CommandParameter="degrees" />
|
||||
|
||||
<!-- Numeric Keypad -->
|
||||
<Button Text="C"
|
||||
Grid.Row="0" Grid.Column="4"
|
||||
Command="{Binding ClearCommand}" />
|
||||
|
||||
<Button Text="CE"
|
||||
Grid.Row="0" Grid.Column="5"
|
||||
Command="{Binding ClearEntryCommand}" />
|
||||
|
||||
<Button Text="⇦"
|
||||
Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2"
|
||||
Command="{Binding BackspaceCommand}" />
|
||||
|
||||
<Button Text="7"
|
||||
Grid.Row="1" Grid.Column="4"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="7" />
|
||||
|
||||
<Button Text="8"
|
||||
Grid.Row="1" Grid.Column="5"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="8" />
|
||||
|
||||
<Button Text="9"
|
||||
Grid.Row="1" Grid.Column="6"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="9" />
|
||||
|
||||
<Button Text="/"
|
||||
Grid.Row="1" Grid.Column="7"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="divide" />
|
||||
|
||||
<Button Text="4"
|
||||
Grid.Row="2" Grid.Column="4"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="4" />
|
||||
|
||||
<Button Text="5"
|
||||
Grid.Row="2" Grid.Column="5"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="5" />
|
||||
|
||||
<Button Text="6"
|
||||
Grid.Row="2" Grid.Column="6"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="6" />
|
||||
|
||||
<Button Text="×"
|
||||
Grid.Row="2" Grid.Column="7"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="multiply" />
|
||||
|
||||
<Button Text="1"
|
||||
Grid.Row="3" Grid.Column="4"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="1" />
|
||||
|
||||
<Button Text="2"
|
||||
Grid.Row="3" Grid.Column="5"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="2" />
|
||||
|
||||
<Button Text="3"
|
||||
Grid.Row="3" Grid.Column="6"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="3" />
|
||||
|
||||
<Button Text="–"
|
||||
Grid.Row="3" Grid.Column="7"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="subtract" />
|
||||
|
||||
<Button Text="0"
|
||||
Grid.Row="4" Grid.Column="4" Grid.ColumnSpan="2"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="0" />
|
||||
|
||||
<Button Text="·"
|
||||
Grid.Row="4" Grid.Column="6"
|
||||
Command="{Binding DigitCommand}"
|
||||
CommandParameter="." />
|
||||
|
||||
<Button Text="+"
|
||||
Grid.Row="4" Grid.Column="7"
|
||||
Command="{Binding BinaryOperation}"
|
||||
CommandParameter="add" />
|
||||
|
||||
<Button Text="ENTER"
|
||||
Grid.Row="5" Grid.Column="4" Grid.ColumnSpan="4"
|
||||
Command="{Binding EnterCommand}" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</ContentPage>
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace RpnCalculator
|
||||
{
|
||||
public partial class MainPage : ContentPage
|
||||
{
|
||||
public MainPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
SizeChanged += (sender, args) => portrait.IsVisible = !(landscape.IsVisible = Width > Height);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugType>portable</DebugType>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Xamarin.Forms" Version="4.2.0.709249" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="MainPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="App.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,204 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace RpnCalculator
|
||||
{
|
||||
public class RpnCalculatorViewModel : INotifyPropertyChanged
|
||||
{
|
||||
string entry = "0";
|
||||
Stack<double> stack = new Stack<double>();
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public RpnCalculatorViewModel()
|
||||
{
|
||||
ClearCommand = new Command(
|
||||
execute: () =>
|
||||
{
|
||||
stack.Clear();
|
||||
Entry = "0";
|
||||
RefreshCanExecutes();
|
||||
RefreshStackDisplay();
|
||||
});
|
||||
|
||||
ClearEntryCommand = new Command(
|
||||
execute: () =>
|
||||
{
|
||||
Entry = "0";
|
||||
RefreshCanExecutes();
|
||||
});
|
||||
|
||||
BackspaceCommand = new Command(
|
||||
execute: () =>
|
||||
{
|
||||
Entry = Entry.Substring(0, Entry.Length - 1);
|
||||
if (Entry == "")
|
||||
{
|
||||
Entry = "0";
|
||||
}
|
||||
RefreshCanExecutes();
|
||||
},
|
||||
canExecute: () =>
|
||||
{
|
||||
return Entry.Length > 1 || Entry != "0";
|
||||
});
|
||||
|
||||
DigitCommand = new Command<string>(
|
||||
execute: (string arg) =>
|
||||
{
|
||||
Entry += arg;
|
||||
if (Entry.StartsWith("0") && !Entry.StartsWith("0."))
|
||||
{
|
||||
Entry = Entry.Substring(1);
|
||||
}
|
||||
RefreshCanExecutes();
|
||||
},
|
||||
canExecute: (string arg) =>
|
||||
{
|
||||
return !(arg == "." && Entry.Contains("."));
|
||||
});
|
||||
|
||||
EnterCommand = new Command(
|
||||
execute: () =>
|
||||
{
|
||||
stack.Push(double.Parse(Entry));
|
||||
Entry = "0";
|
||||
RefreshStackDisplay();
|
||||
RefreshCanExecutes();
|
||||
});
|
||||
|
||||
UnaryOperation = new Command<string>(
|
||||
(string op) =>
|
||||
{
|
||||
double arg = stack.Pop();
|
||||
double result = 0;
|
||||
|
||||
switch (op)
|
||||
{
|
||||
case "log10": result = Math.Log10(arg); break;
|
||||
case "log": result = Math.Log(arg); break;
|
||||
case "exp": result = Math.Exp(arg); break;
|
||||
case "sqrt": result = Math.Sqrt(arg); break;
|
||||
case "sin": result = Math.Sin(arg); break;
|
||||
case "cos": result = Math.Cos(arg); break;
|
||||
case "tan": result = Math.Tan(arg); break;
|
||||
case "invert": result = 1 / arg; break;
|
||||
case "asin": result = Math.Asin(arg); break;
|
||||
case "acos": result = Math.Acos(arg); break;
|
||||
case "atan": result = Math.Atan(arg); break;
|
||||
case "negate": result = -arg; break;
|
||||
case "radians": result = Math.PI * arg / 180; break;
|
||||
case "degrees": result = 180 * arg / Math.PI; break;
|
||||
}
|
||||
|
||||
stack.Push(result);
|
||||
RefreshStackDisplay();
|
||||
},
|
||||
(string op) =>
|
||||
{
|
||||
return stack.Count > 0;
|
||||
});
|
||||
|
||||
BinaryOperation = new Command<string>(
|
||||
execute: (string op) =>
|
||||
{
|
||||
double x = stack.Pop();
|
||||
double y = stack.Pop();
|
||||
double result = 0;
|
||||
|
||||
switch (op)
|
||||
{
|
||||
case "divide": result = y / x; break;
|
||||
case "multiply": result = y * x; break;
|
||||
case "subtract": result = y - x; break;
|
||||
case "add": result = y + x; break;
|
||||
case "pow": result = Math.Pow(y, x); break;
|
||||
case "swap": stack.Push(x); result = y; break;
|
||||
}
|
||||
|
||||
stack.Push(result);
|
||||
RefreshCanExecutes();
|
||||
RefreshStackDisplay();
|
||||
},
|
||||
canExecute: (string op) =>
|
||||
{
|
||||
return stack.Count > 1;
|
||||
});
|
||||
}
|
||||
|
||||
void RefreshCanExecutes()
|
||||
{
|
||||
((Command)BackspaceCommand).ChangeCanExecute();
|
||||
((Command)DigitCommand).ChangeCanExecute();
|
||||
((Command)UnaryOperation).ChangeCanExecute();
|
||||
((Command)BinaryOperation).ChangeCanExecute();
|
||||
}
|
||||
|
||||
void RefreshStackDisplay()
|
||||
{
|
||||
OnPropertyChanged("XStackValue");
|
||||
OnPropertyChanged("YStackValue");
|
||||
}
|
||||
|
||||
public string Entry
|
||||
{
|
||||
private set { SetProperty(ref entry, value); }
|
||||
get { return entry; }
|
||||
}
|
||||
|
||||
public string XStackValue
|
||||
{
|
||||
get { return stack.Count > 0 ? stack.Peek().ToString() : ""; }
|
||||
}
|
||||
|
||||
public string YStackValue
|
||||
{
|
||||
get
|
||||
{
|
||||
string result = "";
|
||||
|
||||
if (stack.Count > 1)
|
||||
{
|
||||
double hold = stack.Pop();
|
||||
result = stack.Peek().ToString();
|
||||
stack.Push(hold);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public ICommand ClearCommand { private set; get; }
|
||||
|
||||
public ICommand ClearEntryCommand { private set; get; }
|
||||
|
||||
public ICommand BackspaceCommand { private set; get; }
|
||||
|
||||
public ICommand DigitCommand { private set; get; }
|
||||
|
||||
public ICommand EnterCommand { private set; get; }
|
||||
|
||||
public ICommand UnaryOperation { private set; get; }
|
||||
|
||||
public ICommand BinaryOperation { private set; get; }
|
||||
|
||||
bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
|
||||
{
|
||||
if (Object.Equals(storage, value))
|
||||
return false;
|
||||
|
||||
storage = value;
|
||||
OnPropertyChanged(propertyName);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
После Ширина: | Высота: | Размер: 84 KiB |
После Ширина: | Высота: | Размер: 91 KiB |
После Ширина: | Высота: | Размер: 250 KiB |
После Ширина: | Высота: | Размер: 61 KiB |
После Ширина: | Высота: | Размер: 108 KiB |