From ced8337a902cfb9988d014c099b90b2b66212825 Mon Sep 17 00:00:00 2001 From: Michael Vrhel Date: Sat, 4 May 2013 22:59:31 -0700 Subject: Major changes in the entire design. Initial commit of this and it has several issues that have to be worked through. Lots of broken stuff but I needed to get it in place. Added 2 new classes. One is muctx which contains all the interfacing to mupdf and uses standard c++ types. The other is mudocument which interfaces between muctx and the WinRT world. It passes WinRT objects to and from applications which can be written in C++, C#, Visual Basic, Javascript etc. mudocument and muctx will reside in a winRT DLL. The Viewer application (c++ version) is now in mupdf_cpp project and now has a flip view structure that includes a scroll viewer which has data binding to a collection. This enables much easier zooming and updating, however I am still trying how to bind the canvas elements that contain the text search or link information. --- winrt/mupdf.sln | 234 ++++ winrt/mupdf_cpp/App.xaml | 20 + winrt/mupdf_cpp/App.xaml.cpp | 107 ++ winrt/mupdf_cpp/App.xaml.h | 24 + winrt/mupdf_cpp/Assets/mupdf_logo.png | Bin 0 -> 12690 bytes winrt/mupdf_cpp/Assets/mupdf_smallogo.png | Bin 0 -> 4108 bytes winrt/mupdf_cpp/Assets/mupdf_splash.png | Bin 0 -> 23297 bytes winrt/mupdf_cpp/Assets/mupdf_storelogo.png | Bin 0 -> 5382 bytes winrt/mupdf_cpp/Common/StandardStyles.xaml | 1879 +++++++++++++++++++++++++++ winrt/mupdf_cpp/DocumentPage.cpp | 14 + winrt/mupdf_cpp/DocumentPage.h | 97 ++ winrt/mupdf_cpp/LVContents.cpp | 9 + winrt/mupdf_cpp/LVContents.h | 12 + winrt/mupdf_cpp/MainPage.xaml | 149 +++ winrt/mupdf_cpp/MainPage.xaml.cpp | 1565 ++++++++++++++++++++++ winrt/mupdf_cpp/MainPage.xaml.h | 198 +++ winrt/mupdf_cpp/Package.appxmanifest | 48 + winrt/mupdf_cpp/RectList.cpp | 16 + winrt/mupdf_cpp/RectList.h | 68 + winrt/mupdf_cpp/mupdf_cpp.vcxproj | 202 +++ winrt/mupdf_cpp/mupdf_cpp.vcxproj.filters | 56 + winrt/mupdf_cpp/pch.cpp | 6 + winrt/mupdf_cpp/pch.h | 9 + winrt/mupdfwinrt/Links.cpp | 11 + winrt/mupdfwinrt/Links.h | 72 + winrt/mupdfwinrt/muctx.cpp | 404 ++++++ winrt/mupdfwinrt/muctx.h | 81 ++ winrt/mupdfwinrt/mudocument.cpp | 212 +++ winrt/mupdfwinrt/mudocument.h | 40 + winrt/mupdfwinrt/mupdfwinrt.vcxproj | 230 ++++ winrt/mupdfwinrt/mupdfwinrt.vcxproj.filters | 22 + winrt/mupdfwinrt/pch.cpp | 6 + winrt/mupdfwinrt/pch.h | 6 + winrt/mupdfwinrt/utils.h | 8 + winrt/winapp/MainPage.xaml | 9 +- winrt/winapp/MainPage.xaml.cpp | 114 +- winrt/winapp/MainPage.xaml.h | 16 + winrt/winapp/winapp.vcxproj | 2 +- 38 files changed, 5920 insertions(+), 26 deletions(-) create mode 100644 winrt/mupdf_cpp/App.xaml create mode 100644 winrt/mupdf_cpp/App.xaml.cpp create mode 100644 winrt/mupdf_cpp/App.xaml.h create mode 100644 winrt/mupdf_cpp/Assets/mupdf_logo.png create mode 100644 winrt/mupdf_cpp/Assets/mupdf_smallogo.png create mode 100644 winrt/mupdf_cpp/Assets/mupdf_splash.png create mode 100644 winrt/mupdf_cpp/Assets/mupdf_storelogo.png create mode 100644 winrt/mupdf_cpp/Common/StandardStyles.xaml create mode 100644 winrt/mupdf_cpp/DocumentPage.cpp create mode 100644 winrt/mupdf_cpp/DocumentPage.h create mode 100644 winrt/mupdf_cpp/LVContents.cpp create mode 100644 winrt/mupdf_cpp/LVContents.h create mode 100644 winrt/mupdf_cpp/MainPage.xaml create mode 100644 winrt/mupdf_cpp/MainPage.xaml.cpp create mode 100644 winrt/mupdf_cpp/MainPage.xaml.h create mode 100644 winrt/mupdf_cpp/Package.appxmanifest create mode 100644 winrt/mupdf_cpp/RectList.cpp create mode 100644 winrt/mupdf_cpp/RectList.h create mode 100644 winrt/mupdf_cpp/mupdf_cpp.vcxproj create mode 100644 winrt/mupdf_cpp/mupdf_cpp.vcxproj.filters create mode 100644 winrt/mupdf_cpp/pch.cpp create mode 100644 winrt/mupdf_cpp/pch.h create mode 100644 winrt/mupdfwinrt/Links.cpp create mode 100644 winrt/mupdfwinrt/Links.h create mode 100644 winrt/mupdfwinrt/muctx.cpp create mode 100644 winrt/mupdfwinrt/muctx.h create mode 100644 winrt/mupdfwinrt/mudocument.cpp create mode 100644 winrt/mupdfwinrt/mudocument.h create mode 100644 winrt/mupdfwinrt/mupdfwinrt.vcxproj create mode 100644 winrt/mupdfwinrt/mupdfwinrt.vcxproj.filters create mode 100644 winrt/mupdfwinrt/pch.cpp create mode 100644 winrt/mupdfwinrt/pch.h create mode 100644 winrt/mupdfwinrt/utils.h (limited to 'winrt') diff --git a/winrt/mupdf.sln b/winrt/mupdf.sln index 60aebbeb..86d70448 100644 --- a/winrt/mupdf.sln +++ b/winrt/mupdf.sln @@ -24,113 +24,347 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmupdf-nov8_winRT", "libm EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libthirdparty_winRT", "libthirdparty_winRT.vcxproj", "{C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupdfwinrt", "mupdfwinrt\mupdfwinrt.vcxproj", "{9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mupdf_csharp", "mupdf_csharp\mupdf_csharp.csproj", "{FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupdf_cpp", "mupdf_cpp\mupdf_cpp.vcxproj", "{0204A4E7-F1B8-4268-A67C-A2C674B4742D}" + ProjectSection(ProjectDependencies) = postProject + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33} = {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|ARM = Debug|ARM + Debug|Mixed Platforms = Debug|Mixed Platforms Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Memento|Any CPU = Memento|Any CPU Memento|ARM = Memento|ARM + Memento|Mixed Platforms = Memento|Mixed Platforms Memento|Win32 = Memento|Win32 Memento|x64 = Memento|x64 + Memento|x86 = Memento|x86 + Release|Any CPU = Release|Any CPU Release|ARM = Release|ARM + Release|Mixed Platforms = Release|Mixed Platforms Release|Win32 = Release|Win32 Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|Any CPU.ActiveCfg = Debug|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|ARM.ActiveCfg = Debug|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|ARM.Build.0 = Debug|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|Win32.ActiveCfg = Debug|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|Win32.Build.0 = Debug|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|x64.ActiveCfg = Debug|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|x86.ActiveCfg = Debug|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Debug|x86.Build.0 = Debug|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|Any CPU.ActiveCfg = Memento|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|ARM.ActiveCfg = Memento|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|Mixed Platforms.ActiveCfg = Memento|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|Mixed Platforms.Build.0 = Memento|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|Win32.ActiveCfg = Memento|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|x64.ActiveCfg = Memento|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|x86.ActiveCfg = Memento|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Memento|x86.Build.0 = Memento|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|Any CPU.ActiveCfg = Release|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|ARM.ActiveCfg = Release|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|ARM.Build.0 = Release|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|Mixed Platforms.Build.0 = Release|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|Win32.ActiveCfg = Release|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|Win32.Build.0 = Release|Win32 {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|x64.ActiveCfg = Release|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|x86.ActiveCfg = Release|Win32 + {A5053AA7-02E5-4903-B596-04F17AEB1526}.Release|x86.Build.0 = Release|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|ARM.ActiveCfg = Debug|ARM {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|ARM.Build.0 = Debug|ARM {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|ARM.Deploy.0 = Debug|ARM + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Mixed Platforms.Deploy.0 = Debug|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Win32.ActiveCfg = Debug|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Win32.Build.0 = Debug|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|Win32.Deploy.0 = Debug|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|x64.ActiveCfg = Debug|x64 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|x64.Build.0 = Debug|x64 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|x64.Deploy.0 = Debug|x64 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|x86.ActiveCfg = Debug|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|x86.Build.0 = Debug|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Debug|x86.Deploy.0 = Debug|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Any CPU.ActiveCfg = Memento|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|ARM.ActiveCfg = Memento|ARM {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|ARM.Build.0 = Memento|ARM {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|ARM.Deploy.0 = Memento|ARM + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Mixed Platforms.ActiveCfg = Memento|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Mixed Platforms.Build.0 = Memento|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Mixed Platforms.Deploy.0 = Memento|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Win32.ActiveCfg = Memento|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Win32.Build.0 = Memento|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|Win32.Deploy.0 = Memento|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|x64.ActiveCfg = Memento|x64 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|x64.Build.0 = Memento|x64 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|x64.Deploy.0 = Memento|x64 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|x86.ActiveCfg = Memento|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|x86.Build.0 = Memento|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Memento|x86.Deploy.0 = Memento|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Any CPU.ActiveCfg = Release|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|ARM.ActiveCfg = Release|ARM {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|ARM.Build.0 = Release|ARM {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|ARM.Deploy.0 = Release|ARM + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Mixed Platforms.Build.0 = Release|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Mixed Platforms.Deploy.0 = Release|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Win32.ActiveCfg = Release|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Win32.Build.0 = Release|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|Win32.Deploy.0 = Release|Win32 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|x64.ActiveCfg = Release|x64 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|x64.Build.0 = Release|x64 {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|x64.Deploy.0 = Release|x64 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|x86.ActiveCfg = Release|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|x86.Build.0 = Release|Win32 + {35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}.Release|x86.Deploy.0 = Release|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|ARM.ActiveCfg = Debug|ARM {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|ARM.Build.0 = Debug|ARM + {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|Win32.ActiveCfg = Debug|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|Win32.Build.0 = Debug|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|x64.ActiveCfg = Debug|x64 {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|x64.Build.0 = Debug|x64 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|x86.ActiveCfg = Debug|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Debug|x86.Build.0 = Debug|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|Any CPU.ActiveCfg = Memento|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|ARM.ActiveCfg = Memento|ARM {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|ARM.Build.0 = Memento|ARM + {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|Mixed Platforms.ActiveCfg = Memento|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|Mixed Platforms.Build.0 = Memento|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|Win32.ActiveCfg = Memento|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|Win32.Build.0 = Memento|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|x64.ActiveCfg = Memento|x64 {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|x64.Build.0 = Memento|x64 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|x86.ActiveCfg = Memento|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Memento|x86.Build.0 = Memento|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|Any CPU.ActiveCfg = Release|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|ARM.ActiveCfg = Release|ARM {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|ARM.Build.0 = Release|ARM + {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|Mixed Platforms.Build.0 = Release|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|Win32.ActiveCfg = Release|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|Win32.Build.0 = Release|Win32 {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|x64.ActiveCfg = Release|x64 {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|x64.Build.0 = Release|x64 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|x86.ActiveCfg = Release|Win32 + {0715F3CF-5D1B-4617-A331-6527371365B7}.Release|x86.Build.0 = Release|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|Any CPU.ActiveCfg = Debug|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|ARM.ActiveCfg = Debug|ARM {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|ARM.Build.0 = Debug|ARM + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|Win32.ActiveCfg = Debug|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|Win32.Build.0 = Debug|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|x64.ActiveCfg = Debug|x64 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|x64.Build.0 = Debug|x64 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|x86.ActiveCfg = Debug|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Debug|x86.Build.0 = Debug|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|Any CPU.ActiveCfg = Memento|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|ARM.ActiveCfg = Memento|ARM {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|ARM.Build.0 = Memento|ARM + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|Mixed Platforms.ActiveCfg = Memento|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|Mixed Platforms.Build.0 = Memento|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|Win32.ActiveCfg = Memento|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|Win32.Build.0 = Memento|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|x64.ActiveCfg = Memento|x64 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|x64.Build.0 = Memento|x64 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|x86.ActiveCfg = Memento|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Memento|x86.Build.0 = Memento|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|Any CPU.ActiveCfg = Release|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|ARM.ActiveCfg = Release|ARM {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|ARM.Build.0 = Release|ARM + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|Mixed Platforms.Build.0 = Release|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|Win32.ActiveCfg = Release|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|Win32.Build.0 = Release|Win32 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|x64.ActiveCfg = Release|x64 {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|x64.Build.0 = Release|x64 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|x86.ActiveCfg = Release|Win32 + {5AFFE821-C5C8-45FB-B834-10FED76E49A7}.Release|x86.Build.0 = Release|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|Any CPU.ActiveCfg = Debug|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|ARM.ActiveCfg = Debug|ARM {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|ARM.Build.0 = Debug|ARM + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|Win32.ActiveCfg = Debug|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|Win32.Build.0 = Debug|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|x64.ActiveCfg = Debug|x64 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|x64.Build.0 = Debug|x64 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|x86.ActiveCfg = Debug|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Debug|x86.Build.0 = Debug|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|Any CPU.ActiveCfg = Memento|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|ARM.ActiveCfg = Memento|ARM {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|ARM.Build.0 = Memento|ARM + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|Mixed Platforms.ActiveCfg = Memento|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|Mixed Platforms.Build.0 = Memento|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|Win32.ActiveCfg = Memento|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|Win32.Build.0 = Memento|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|x64.ActiveCfg = Memento|x64 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|x64.Build.0 = Memento|x64 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|x86.ActiveCfg = Memento|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Memento|x86.Build.0 = Memento|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|Any CPU.ActiveCfg = Release|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|ARM.ActiveCfg = Release|ARM {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|ARM.Build.0 = Release|ARM + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|Mixed Platforms.Build.0 = Release|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|Win32.ActiveCfg = Release|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|Win32.Build.0 = Release|Win32 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|x64.ActiveCfg = Release|x64 {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|x64.Build.0 = Release|x64 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|x86.ActiveCfg = Release|Win32 + {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396}.Release|x86.Build.0 = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|ARM.ActiveCfg = Debug|ARM + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|ARM.Build.0 = Debug|ARM + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|Win32.ActiveCfg = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|Win32.Build.0 = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|x64.ActiveCfg = Debug|x64 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|x64.Build.0 = Debug|x64 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|x86.ActiveCfg = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Debug|x86.Build.0 = Debug|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|Any CPU.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|ARM.ActiveCfg = Release|ARM + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|ARM.Build.0 = Release|ARM + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|Mixed Platforms.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|Mixed Platforms.Build.0 = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|Win32.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|Win32.Build.0 = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|x64.ActiveCfg = Release|x64 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|x64.Build.0 = Release|x64 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|x86.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Memento|x86.Build.0 = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|Any CPU.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|ARM.ActiveCfg = Release|ARM + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|ARM.Build.0 = Release|ARM + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|Mixed Platforms.Build.0 = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|Win32.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|Win32.Build.0 = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|x64.ActiveCfg = Release|x64 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|x64.Build.0 = Release|x64 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|x86.ActiveCfg = Release|Win32 + {9E6AB41D-09A7-45A6-A53B-1E4BF3AC5B33}.Release|x86.Build.0 = Release|Win32 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|ARM.ActiveCfg = Debug|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|ARM.Build.0 = Debug|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|ARM.Deploy.0 = Debug|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Mixed Platforms.Deploy.0 = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Win32.ActiveCfg = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Win32.Build.0 = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|Win32.Deploy.0 = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|x64.ActiveCfg = Debug|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|x64.Build.0 = Debug|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|x64.Deploy.0 = Debug|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|x86.ActiveCfg = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|x86.Build.0 = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Debug|x86.Deploy.0 = Debug|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Any CPU.ActiveCfg = Release|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Any CPU.Build.0 = Release|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Any CPU.Deploy.0 = Release|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|ARM.ActiveCfg = Release|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|ARM.Build.0 = Release|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|ARM.Deploy.0 = Release|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Mixed Platforms.ActiveCfg = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Mixed Platforms.Build.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Mixed Platforms.Deploy.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Win32.ActiveCfg = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Win32.Build.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|Win32.Deploy.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|x64.ActiveCfg = Release|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|x64.Build.0 = Release|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|x64.Deploy.0 = Release|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|x86.ActiveCfg = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|x86.Build.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Memento|x86.Deploy.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Any CPU.Build.0 = Release|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Any CPU.Deploy.0 = Release|Any CPU + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|ARM.ActiveCfg = Release|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|ARM.Build.0 = Release|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|ARM.Deploy.0 = Release|ARM + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Mixed Platforms.Build.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Mixed Platforms.Deploy.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Win32.ActiveCfg = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Win32.Build.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|Win32.Deploy.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|x64.ActiveCfg = Release|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|x64.Build.0 = Release|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|x64.Deploy.0 = Release|x64 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|x86.ActiveCfg = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|x86.Build.0 = Release|x86 + {FD99D78F-9DF5-49FB-A848-AEA86FF51ADD}.Release|x86.Deploy.0 = Release|x86 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|ARM.ActiveCfg = Debug|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|ARM.Build.0 = Debug|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|ARM.Deploy.0 = Debug|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Mixed Platforms.Deploy.0 = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Win32.ActiveCfg = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Win32.Build.0 = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|Win32.Deploy.0 = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|x64.ActiveCfg = Debug|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|x64.Build.0 = Debug|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|x64.Deploy.0 = Debug|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|x86.ActiveCfg = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|x86.Build.0 = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Debug|x86.Deploy.0 = Debug|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Any CPU.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|ARM.ActiveCfg = Release|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|ARM.Build.0 = Release|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|ARM.Deploy.0 = Release|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Mixed Platforms.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Mixed Platforms.Build.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Mixed Platforms.Deploy.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Win32.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Win32.Build.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|Win32.Deploy.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|x64.ActiveCfg = Release|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|x64.Build.0 = Release|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|x64.Deploy.0 = Release|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|x86.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|x86.Build.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Memento|x86.Deploy.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Any CPU.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|ARM.ActiveCfg = Release|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|ARM.Build.0 = Release|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|ARM.Deploy.0 = Release|ARM + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Mixed Platforms.Build.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Mixed Platforms.Deploy.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Win32.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Win32.Build.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|Win32.Deploy.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|x64.ActiveCfg = Release|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|x64.Build.0 = Release|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|x64.Deploy.0 = Release|x64 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|x86.ActiveCfg = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|x86.Build.0 = Release|Win32 + {0204A4E7-F1B8-4268-A67C-A2C674B4742D}.Release|x86.Deploy.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/winrt/mupdf_cpp/App.xaml b/winrt/mupdf_cpp/App.xaml new file mode 100644 index 00000000..4dabc5cc --- /dev/null +++ b/winrt/mupdf_cpp/App.xaml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + diff --git a/winrt/mupdf_cpp/App.xaml.cpp b/winrt/mupdf_cpp/App.xaml.cpp new file mode 100644 index 00000000..1b84a1ab --- /dev/null +++ b/winrt/mupdf_cpp/App.xaml.cpp @@ -0,0 +1,107 @@ +// +// App.xaml.cpp +// Implementation of the App class. +// + +#include "pch.h" +#include "MainPage.xaml.h" + +using namespace mupdf_cpp; + +using namespace Platform; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::Foundation; +using namespace Windows::Foundation::Collections; +using namespace Windows::UI::Xaml; +using namespace Windows::UI::Xaml::Controls; +using namespace Windows::UI::Xaml::Controls::Primitives; +using namespace Windows::UI::Xaml::Data; +using namespace Windows::UI::Xaml::Input; +using namespace Windows::UI::Xaml::Interop; +using namespace Windows::UI::Xaml::Media; +using namespace Windows::UI::Xaml::Navigation; + +// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=234227 + +/// +/// 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(). +/// +App::App() +{ + InitializeComponent(); + Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending); +} + +/// +/// Invoked when the application is launched normally by the end user. Other entry points +/// will be used when the application is launched to open a specific file, to display +/// search results, and so forth. +/// +/// Details about the launch request and process. +void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ args) +{ + auto rootFrame = dynamic_cast(Window::Current->Content); + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == nullptr) + { + // Create a Frame to act as the navigation context and associate it with + // a SuspensionManager key + rootFrame = ref new Frame(); + + if (args->PreviousExecutionState == ApplicationExecutionState::Terminated) + { + // TODO: Restore the saved session state only when appropriate, scheduling the + // final launch steps after the restore is complete + + } + + if (rootFrame->Content == nullptr) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + if (!rootFrame->Navigate(TypeName(MainPage::typeid), args->Arguments)) + { + throw ref new FailureException("Failed to create initial page"); + } + } + // Place the frame in the current Window + Window::Current->Content = rootFrame; + // Ensure the current window is active + Window::Current->Activate(); + } + else + { + if (rootFrame->Content == nullptr) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + if (!rootFrame->Navigate(TypeName(MainPage::typeid), args->Arguments)) + { + throw ref new FailureException("Failed to create initial page"); + } + } + // Ensure the current window is active + Window::Current->Activate(); + } +} + +/// +/// 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. +/// +/// The source of the suspend request. +/// Details about the suspend request. +void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e) +{ + (void) sender; // Unused parameter + (void) e; // Unused parameter + + //TODO: Save application state and stop any background activity +} diff --git a/winrt/mupdf_cpp/App.xaml.h b/winrt/mupdf_cpp/App.xaml.h new file mode 100644 index 00000000..2ed35bd1 --- /dev/null +++ b/winrt/mupdf_cpp/App.xaml.h @@ -0,0 +1,24 @@ +// +// App.xaml.h +// Declaration of the App class. +// + +#pragma once + +#include "App.g.h" + +namespace mupdf_cpp +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + ref class App sealed + { + public: + App(); + virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ args) override; + + private: + void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e); + }; +} diff --git a/winrt/mupdf_cpp/Assets/mupdf_logo.png b/winrt/mupdf_cpp/Assets/mupdf_logo.png new file mode 100644 index 00000000..ba6b005d Binary files /dev/null and b/winrt/mupdf_cpp/Assets/mupdf_logo.png differ diff --git a/winrt/mupdf_cpp/Assets/mupdf_smallogo.png b/winrt/mupdf_cpp/Assets/mupdf_smallogo.png new file mode 100644 index 00000000..15997f5c Binary files /dev/null and b/winrt/mupdf_cpp/Assets/mupdf_smallogo.png differ diff --git a/winrt/mupdf_cpp/Assets/mupdf_splash.png b/winrt/mupdf_cpp/Assets/mupdf_splash.png new file mode 100644 index 00000000..5f011d17 Binary files /dev/null and b/winrt/mupdf_cpp/Assets/mupdf_splash.png differ diff --git a/winrt/mupdf_cpp/Assets/mupdf_storelogo.png b/winrt/mupdf_cpp/Assets/mupdf_storelogo.png new file mode 100644 index 00000000..1b6473d4 Binary files /dev/null and b/winrt/mupdf_cpp/Assets/mupdf_storelogo.png differ diff --git a/winrt/mupdf_cpp/Common/StandardStyles.xaml b/winrt/mupdf_cpp/Common/StandardStyles.xaml new file mode 100644 index 00000000..414be872 --- /dev/null +++ b/winrt/mupdf_cpp/Common/StandardStyles.xaml @@ -0,0 +1,1879 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mouse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/winrt/mupdf_cpp/DocumentPage.cpp b/winrt/mupdf_cpp/DocumentPage.cpp new file mode 100644 index 00000000..c705c237 --- /dev/null +++ b/winrt/mupdf_cpp/DocumentPage.cpp @@ -0,0 +1,14 @@ +#include "pch.h" +#include "DocumentPage.h" + +namespace mupdf_cpp +{ + DocumentPage::DocumentPage(void) + { + this->Image = nullptr; + this->Height = 0; + this->Width = 0; + this->Zoom = 1.0; + this->Content = NOTSET; + } +} diff --git a/winrt/mupdf_cpp/DocumentPage.h b/winrt/mupdf_cpp/DocumentPage.h new file mode 100644 index 00000000..98bbeb0e --- /dev/null +++ b/winrt/mupdf_cpp/DocumentPage.h @@ -0,0 +1,97 @@ +#pragma once + +#include "RectList.h" +#include + + +/* Used for binding to the xaml in the scroll view. */ +using namespace Windows::UI::Xaml::Media::Imaging; +using namespace Windows::UI::Xaml::Controls; +using namespace Windows::Foundation::Collections; + +typedef enum { + FULL_RESOLUTION = 0, + THUMBNAIL, + DUMMY, + NOTSET +} Page_Content_t; + + +namespace mupdf_cpp +{ + [Windows::UI::Xaml::Data::Bindable] // in c++, adding this attribute to ref classes enables data binding for more info search for 'Bindable' on the page http://go.microsoft.com/fwlink/?LinkId=254639 + + public ref class DocumentPage sealed + { + private: + int height; + int width; + double zoom; + WriteableBitmap^ image; + Page_Content_t content; + + public: + DocumentPage(void); + + property int Content + { + int get() { return ((int) content); } + void set(int value) + { + if (value > NOTSET) + { + throw ref new Platform::InvalidArgumentException(); + } + content = (Page_Content_t) value; + } + } + + property int Height + { + int get() { return height; } + void set(int value) + { + if (value < 0) + { + throw ref new Platform::InvalidArgumentException(); + } + height = value; + } + } + + property int Width + { + int get() { return width; } + void set(int value) + { + if (value < 0) + { + throw ref new Platform::InvalidArgumentException(); + } + width = value; + } + } + + property double Zoom + { + double get() { return zoom; } + void set(double value) + { + if (value < 0) + { + throw ref new Platform::InvalidArgumentException(); + } + zoom = value; + } + } + + property WriteableBitmap^ Image + { + WriteableBitmap^ get() { return image; } + void set(WriteableBitmap^ value) + { + image = value; + } + } + }; +} diff --git a/winrt/mupdf_cpp/LVContents.cpp b/winrt/mupdf_cpp/LVContents.cpp new file mode 100644 index 00000000..1905c10c --- /dev/null +++ b/winrt/mupdf_cpp/LVContents.cpp @@ -0,0 +1,9 @@ +#include "pch.h" +#include "LVContents.h" + +using namespace ListViewContents; +LVContents::LVContents(void) +{ + ContentItem = ""; + Page = -1; +} diff --git a/winrt/mupdf_cpp/LVContents.h b/winrt/mupdf_cpp/LVContents.h new file mode 100644 index 00000000..1ca4179c --- /dev/null +++ b/winrt/mupdf_cpp/LVContents.h @@ -0,0 +1,12 @@ +#pragma once +namespace ListViewContents { + [Windows::UI::Xaml::Data::Bindable] + public ref class LVContents sealed + { + public: + LVContents(void); + property Platform::String^ ContentItem; + property int Page; + + }; +} diff --git a/winrt/mupdf_cpp/MainPage.xaml b/winrt/mupdf_cpp/MainPage.xaml new file mode 100644 index 00000000..99ae0f3b --- /dev/null +++ b/winrt/mupdf_cpp/MainPage.xaml @@ -0,0 +1,149 @@ + + + + + + + + + + +