diff options
-rw-r--r-- | winrt/mupdf.sln | 56 | ||||
-rw-r--r-- | winrt/winapp/App.xaml | 20 | ||||
-rw-r--r-- | winrt/winapp/App.xaml.cpp | 109 | ||||
-rw-r--r-- | winrt/winapp/App.xaml.h | 25 | ||||
-rw-r--r-- | winrt/winapp/Assets/mupdf_logo.png | bin | 12690 -> 0 bytes | |||
-rw-r--r-- | winrt/winapp/Assets/mupdf_smallogo.png | bin | 4108 -> 0 bytes | |||
-rw-r--r-- | winrt/winapp/Assets/mupdf_splash.png | bin | 23297 -> 0 bytes | |||
-rw-r--r-- | winrt/winapp/Assets/mupdf_storelogo.png | bin | 5382 -> 0 bytes | |||
-rw-r--r-- | winrt/winapp/Common/StandardStyles.xaml | 1855 | ||||
-rw-r--r-- | winrt/winapp/LVContents.cpp | 9 | ||||
-rw-r--r-- | winrt/winapp/LVContents.h | 12 | ||||
-rw-r--r-- | winrt/winapp/MainPage.xaml | 116 | ||||
-rw-r--r-- | winrt/winapp/MainPage.xaml.cpp | 2043 | ||||
-rw-r--r-- | winrt/winapp/MainPage.xaml.h | 213 | ||||
-rw-r--r-- | winrt/winapp/Package.appxmanifest | 54 | ||||
-rw-r--r-- | winrt/winapp/pch.cpp | 6 | ||||
-rw-r--r-- | winrt/winapp/pch.h | 10 | ||||
-rw-r--r-- | winrt/winapp/winapp.vcxproj | 327 | ||||
-rw-r--r-- | winrt/winapp/winapp.vcxproj.filters | 52 |
19 files changed, 0 insertions, 4907 deletions
diff --git a/winrt/mupdf.sln b/winrt/mupdf.sln index 86d70448..cac7645f 100644 --- a/winrt/mupdf.sln +++ b/winrt/mupdf.sln @@ -3,14 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generated", "generated.vcxproj", "{A5053AA7-02E5-4903-B596-04F17AEB1526}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winapp", "winapp\winapp.vcxproj", "{35C27DF7-0CF2-413E-9C7A-6436AFEE5D4E}" - ProjectSection(ProjectDependencies) = postProject - {5AFFE821-C5C8-45FB-B834-10FED76E49A7} = {5AFFE821-C5C8-45FB-B834-10FED76E49A7} - {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396} = {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396} - {A5053AA7-02E5-4903-B596-04F17AEB1526} = {A5053AA7-02E5-4903-B596-04F17AEB1526} - {0715F3CF-5D1B-4617-A331-6527371365B7} = {0715F3CF-5D1B-4617-A331-6527371365B7} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmupdf_winRT", "libmupdf_winRT.vcxproj", "{0715F3CF-5D1B-4617-A331-6527371365B7}" ProjectSection(ProjectDependencies) = postProject {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396} = {C0D1C355-1BEE-40E1-9EF4-FD9FFFDBF396} @@ -83,54 +75,6 @@ Global {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 diff --git a/winrt/winapp/App.xaml b/winrt/winapp/App.xaml deleted file mode 100644 index 59d289e0..00000000 --- a/winrt/winapp/App.xaml +++ /dev/null @@ -1,20 +0,0 @@ -<Application - x:Class="winapp.App" - xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:local="using:winapp"> - - <Application.Resources> - <ResourceDictionary> - <ResourceDictionary.MergedDictionaries> - - <!-- - Styles that define common aspects of the platform look and feel - Required by Visual Studio project and item templates - --> - <ResourceDictionary Source="Common/StandardStyles.xaml"/> - </ResourceDictionary.MergedDictionaries> - - </ResourceDictionary> - </Application.Resources> -</Application> diff --git a/winrt/winapp/App.xaml.cpp b/winrt/winapp/App.xaml.cpp deleted file mode 100644 index d51b19bb..00000000 --- a/winrt/winapp/App.xaml.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// -// App.xaml.cpp -// Implementation of the App class. -// - -#include "pch.h" -#include "MainPage.xaml.h" - - -using namespace winapp; - -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 - -/// <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> -App::App() -{ - InitializeComponent(); - Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending); -} - -/// <summary> -/// 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. -/// </summary> -/// <param name="args">Details about the launch request and process.</param> -void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ args) -{ - auto rootFrame = dynamic_cast<Frame^>(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(); - } -} - -/// <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> -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/winapp/App.xaml.h b/winrt/winapp/App.xaml.h deleted file mode 100644 index 760d4eb9..00000000 --- a/winrt/winapp/App.xaml.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// App.xaml.h -// Declaration of the App class. -// - -#pragma once - -#include "App.g.h" - - -namespace winapp -{ - /// <summary> - /// Provides application-specific behavior to supplement the default Application class. - /// </summary> - 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/winapp/Assets/mupdf_logo.png b/winrt/winapp/Assets/mupdf_logo.png Binary files differdeleted file mode 100644 index ba6b005d..00000000 --- a/winrt/winapp/Assets/mupdf_logo.png +++ /dev/null diff --git a/winrt/winapp/Assets/mupdf_smallogo.png b/winrt/winapp/Assets/mupdf_smallogo.png Binary files differdeleted file mode 100644 index 15997f5c..00000000 --- a/winrt/winapp/Assets/mupdf_smallogo.png +++ /dev/null diff --git a/winrt/winapp/Assets/mupdf_splash.png b/winrt/winapp/Assets/mupdf_splash.png Binary files differdeleted file mode 100644 index 5f011d17..00000000 --- a/winrt/winapp/Assets/mupdf_splash.png +++ /dev/null diff --git a/winrt/winapp/Assets/mupdf_storelogo.png b/winrt/winapp/Assets/mupdf_storelogo.png Binary files differdeleted file mode 100644 index 1b6473d4..00000000 --- a/winrt/winapp/Assets/mupdf_storelogo.png +++ /dev/null diff --git a/winrt/winapp/Common/StandardStyles.xaml b/winrt/winapp/Common/StandardStyles.xaml deleted file mode 100644 index cae5dc9e..00000000 --- a/winrt/winapp/Common/StandardStyles.xaml +++ /dev/null @@ -1,1855 +0,0 @@ -<!-- - This file contains XAML styles that simplify application development. - - These are not merely convenient, but are required by most Visual Studio project and item templates. - Removing, renaming, or otherwise modifying the content of these files may result in a project that - does not build, or that will not build once additional pages are added. If variations on these - styles are desired it is recommended that you copy the content under a new name and modify your - private copy. ---> - -<ResourceDictionary - xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> - - <!-- Non-brush values that vary across themes --> - - <ResourceDictionary.ThemeDictionaries> - <ResourceDictionary x:Key="Default"> - <x:String x:Key="BackButtonGlyph"></x:String> - <x:String x:Key="BackButtonSnappedGlyph"></x:String> - </ResourceDictionary> - - <ResourceDictionary x:Key="HighContrast"> - <x:String x:Key="BackButtonGlyph"></x:String> - <x:String x:Key="BackButtonSnappedGlyph"></x:String> - </ResourceDictionary> - </ResourceDictionary.ThemeDictionaries> - - <x:String x:Key="ChevronGlyph"></x:String> - - <!-- RichTextBlock styles --> - - <Style x:Key="BasicRichTextStyle" TargetType="RichTextBlock"> - <Setter Property="Foreground" Value="{StaticResource ApplicationForegroundThemeBrush}"/> - <Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/> - <Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/> - <Setter Property="TextTrimming" Value="WordEllipsis"/> - <Setter Property="TextWrapping" Value="Wrap"/> - <Setter Property="Typography.StylisticSet20" Value="True"/> - <Setter Property="Typography.DiscretionaryLigatures" Value="True"/> - <Setter Property="Typography.CaseSensitiveForms" Value="True"/> - </Style> - - <Style x:Key="BaselineRichTextStyle" TargetType="RichTextBlock" BasedOn="{StaticResource BasicRichTextStyle}"> - <Setter Property="LineHeight" Value="20"/> - <Setter Property="LineStackingStrategy" Value="BlockLineHeight"/> - <!-- Properly align text along its baseline --> - <Setter Property="RenderTransform"> - <Setter.Value> - <TranslateTransform X="-1" Y="4"/> - </Setter.Value> - </Setter> - </Style> - - <Style x:Key="ItemRichTextStyle" TargetType="RichTextBlock" BasedOn="{StaticResource BaselineRichTextStyle}"/> - - <Style x:Key="BodyRichTextStyle" TargetType="RichTextBlock" BasedOn="{StaticResource BaselineRichTextStyle}"> - <Setter Property="FontWeight" Value="SemiLight"/> - </Style> - - <!-- TextBlock styles --> - - <Style x:Key="BasicTextStyle" TargetType="TextBlock"> - <Setter Property="Foreground" Value="{StaticResource ApplicationForegroundThemeBrush}"/> - <Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/> - <Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/> - <Setter Property="TextTrimming" Value="WordEllipsis"/> - <Setter Property="TextWrapping" Value="Wrap"/> - <Setter Property="Typography.StylisticSet20" Value="True"/> - <Setter Property="Typography.DiscretionaryLigatures" Value="True"/> - <Setter Property="Typography.CaseSensitiveForms" Value="True"/> - </Style> - - <Style x:Key="BaselineTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BasicTextStyle}"> - <Setter Property="LineHeight" Value="20"/> - <Setter Property="LineStackingStrategy" Value="BlockLineHeight"/> - <!-- Properly align text along its baseline --> - <Setter Property="RenderTransform"> - <Setter.Value> - <TranslateTransform X="-1" Y="4"/> - </Setter.Value> - </Setter> - </Style> - - <Style x:Key="HeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"> - <Setter Property="FontSize" Value="56"/> - <Setter Property="FontWeight" Value="Light"/> - <Setter Property="LineHeight" Value="40"/> - <Setter Property="RenderTransform"> - <Setter.Value> - <TranslateTransform X="-2" Y="8"/> - </Setter.Value> - </Setter> - </Style> - - <Style x:Key="SubheaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"> - <Setter Property="FontSize" Value="26.667"/> - <Setter Property="FontWeight" Value="Light"/> - <Setter Property="LineHeight" Value="30"/> - <Setter Property="RenderTransform"> - <Setter.Value> - <TranslateTransform X="-1" Y="6"/> - </Setter.Value> - </Setter> - </Style> - - <Style x:Key="TitleTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"> - <Setter Property="FontWeight" Value="SemiBold"/> - </Style> - - <Style x:Key="SubtitleTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"> - <Setter Property="FontWeight" Value="Normal"/> - </Style> - - <Style x:Key="ItemTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"/> - - <Style x:Key="BodyTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"> - <Setter Property="FontWeight" Value="SemiLight"/> - </Style> - - <Style x:Key="CaptionTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}"> - <Setter Property="FontSize" Value="12"/> - <Setter Property="Foreground" Value="{StaticResource ApplicationSecondaryForegroundThemeBrush}"/> - </Style> - - <Style x:Key="GroupHeaderTextStyle" TargetType="TextBlock"> - <Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/> - <Setter Property="TextTrimming" Value="WordEllipsis"/> - <Setter Property="TextWrapping" Value="NoWrap"/> - <Setter Property="Typography.StylisticSet20" Value="True"/> - <Setter Property="Typography.DiscretionaryLigatures" Value="True"/> - <Setter Property="Typography.CaseSensitiveForms" Value="True"/> - <Setter Property="FontSize" Value="26.667"/> - <Setter Property="LineStackingStrategy" Value="BlockLineHeight"/> - <Setter Property="FontWeight" Value="Light"/> - <Setter Property="LineHeight" Value="30"/> - <Setter Property="RenderTransform"> - <Setter.Value> - <TranslateTransform X="-1" Y="6"/> - </Setter.Value> - </Setter> - </Style> - - <!-- Button styles --> - - <!-- - TextButtonStyle is used to style a Button using subheader-styled text with no other adornment. There - are two styles that are based on TextButtonStyle (TextPrimaryButtonStyle and TextSecondaryButtonStyle) - which are used in the GroupedItemsPage as a group header and in the FileOpenPickerPage for triggering - commands. - --> - <Style x:Key="TextButtonStyle" TargetType="ButtonBase"> - <Setter Property="MinWidth" Value="0"/> - <Setter Property="MinHeight" Value="0"/> - <Setter Property="Template"> - <Setter.Value> - <ControlTemplate TargetType="ButtonBase"> - <Grid Background="Transparent"> - <ContentPresenter x:Name="Text" Content="{TemplateBinding Content}" /> - <Rectangle - x:Name="FocusVisualWhite" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="1.5"/> - <Rectangle - x:Name="FocusVisualBlack" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="0.5"/> - <VisualStateManager.VisualStateGroups> - <VisualStateGroup x:Name="CommonStates"> - <VisualState x:Name="Normal"/> - <VisualState x:Name="PointerOver"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Text" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ApplicationPointerOverForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Pressed"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Text" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ApplicationPressedForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Disabled"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Text" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ApplicationPressedForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - </VisualStateGroup> - <VisualStateGroup x:Name="FocusStates"> - <VisualState x:Name="Focused"> - <Storyboard> - <DoubleAnimation Duration="0" To="1" Storyboard.TargetName="FocusVisualWhite" Storyboard.TargetProperty="Opacity"/> - <DoubleAnimation Duration="0" To="1" Storyboard.TargetName="FocusVisualBlack" Storyboard.TargetProperty="Opacity"/> - </Storyboard> - </VisualState> - <VisualState x:Name="Unfocused"/> - </VisualStateGroup> - <VisualStateGroup x:Name="CheckStates"> - <VisualState x:Name="Checked"/> - <VisualState x:Name="Unchecked"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Text" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ApplicationSecondaryForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Indeterminate"/> - </VisualStateGroup> - </VisualStateManager.VisualStateGroups> - </Grid> - </ControlTemplate> - </Setter.Value> - </Setter> - </Style> - - <Style x:Key="TextPrimaryButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource TextButtonStyle}"> - <Setter Property="Foreground" Value="{StaticResource ApplicationHeaderForegroundThemeBrush}"/> - </Style> - - <Style x:Key="TextSecondaryButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource TextButtonStyle}"> - <Setter Property="Foreground" Value="{StaticResource ApplicationSecondaryForegroundThemeBrush}"/> - </Style> - - <!-- - TextRadioButtonStyle is used to style a RadioButton using subheader-styled text with no other adornment. - This style is used in the SearchResultsPage to allow selection among filters. - --> - <Style x:Key="TextRadioButtonStyle" TargetType="RadioButton" BasedOn="{StaticResource TextButtonStyle}"> - <Setter Property="Margin" Value="0,0,30,0"/> - </Style> - - <!-- - AppBarButtonStyle is used to style a Button (or ToggleButton) for use in an App Bar. Content will be centered - and should fit within the 40 pixel radius glyph provided. 16-point Segoe UI Symbol is used for content text - to simplify the use of glyphs from that font. AutomationProperties.Name is used for the text below the glyph. - --> - <Style x:Key="AppBarButtonStyle" TargetType="ButtonBase"> - <Setter Property="Foreground" Value="{StaticResource AppBarItemForegroundThemeBrush}"/> - <Setter Property="VerticalAlignment" Value="Stretch"/> - <Setter Property="FontFamily" Value="Segoe UI Symbol"/> - <Setter Property="FontWeight" Value="Normal"/> - <Setter Property="FontSize" Value="20"/> - <Setter Property="AutomationProperties.ItemType" Value="App Bar Button"/> - <Setter Property="Template"> - <Setter.Value> - <ControlTemplate TargetType="ButtonBase"> - <Grid x:Name="RootGrid" Width="100" Background="Transparent"> - <StackPanel VerticalAlignment="Top" Margin="0,12,0,11"> - <Grid Width="40" Height="40" Margin="0,0,0,5" HorizontalAlignment="Center"> - <TextBlock x:Name="BackgroundGlyph" Text="" FontFamily="Segoe UI Symbol" FontSize="53.333" Margin="-4,-19,0,0" Foreground="{StaticResource AppBarItemBackgroundThemeBrush}"/> - <TextBlock x:Name="OutlineGlyph" Text="" FontFamily="Segoe UI Symbol" FontSize="53.333" Margin="-4,-19,0,0"/> - <ContentPresenter x:Name="Content" HorizontalAlignment="Center" Margin="-1,-1,0,0" VerticalAlignment="Center"/> - </Grid> - <TextBlock - x:Name="TextLabel" - Text="{TemplateBinding AutomationProperties.Name}" - Foreground="{StaticResource AppBarItemForegroundThemeBrush}" - Margin="0,0,2,0" - FontSize="12" - TextAlignment="Center" - Width="88" - MaxHeight="32" - TextTrimming="WordEllipsis" - Style="{StaticResource BasicTextStyle}"/> - </StackPanel> - <Rectangle - x:Name="FocusVisualWhite" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="1.5"/> - <Rectangle - x:Name="FocusVisualBlack" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="0.5"/> - - <VisualStateManager.VisualStateGroups> - <VisualStateGroup x:Name="ApplicationViewStates"> - <VisualState x:Name="FullScreenLandscape"/> - <VisualState x:Name="Filled"/> - <VisualState x:Name="FullScreenPortrait"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="Visibility"> - <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Width"> - <DiscreteObjectKeyFrame KeyTime="0" Value="60"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Snapped"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="Visibility"> - <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Width"> - <DiscreteObjectKeyFrame KeyTime="0" Value="60"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - </VisualStateGroup> - <VisualStateGroup x:Name="CommonStates"> - <VisualState x:Name="Normal"/> - <VisualState x:Name="PointerOver"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemPointerOverBackgroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemPointerOverForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Pressed"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="OutlineGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemPressedForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Disabled"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="OutlineGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemDisabledForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemDisabledForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextLabel" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemDisabledForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - </VisualStateGroup> - <VisualStateGroup x:Name="FocusStates"> - <VisualState x:Name="Focused"> - <Storyboard> - <DoubleAnimation - Storyboard.TargetName="FocusVisualWhite" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - <DoubleAnimation - Storyboard.TargetName="FocusVisualBlack" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - </Storyboard> - </VisualState> - <VisualState x:Name="Unfocused" /> - <VisualState x:Name="PointerFocused" /> - </VisualStateGroup> - <VisualStateGroup x:Name="CheckStates"> - <VisualState x:Name="Checked"> - <Storyboard> - <DoubleAnimation Duration="0" To="0" Storyboard.TargetName="OutlineGlyph" Storyboard.TargetProperty="Opacity"/> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundCheckedGlyph" Storyboard.TargetProperty="Visibility"> - <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemPressedForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Unchecked"/> - <VisualState x:Name="Indeterminate"/> - </VisualStateGroup> - </VisualStateManager.VisualStateGroups> - </Grid> - </ControlTemplate> - </Setter.Value> - </Setter> - </Style> - - <!-- - Standard AppBarButton Styles for use with Button and ToggleButton - - An AppBarButton Style is provided for each of the glyphs in the Segoe UI Symbol font. - Uncomment any style you reference (as not all may be required). - --> - <Style x:Key="HelpAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="HelpAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Help"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SearchAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SearchAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Search"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OpenFileAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OpenFileAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Open File"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="NextAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="NextAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Next"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PreviousAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PreviousAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Previous"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="NoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="NoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="No"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SettingsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SettingsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Settings"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="LinksAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="LinksAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Links"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ContentsBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AllAppsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Contents"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ReflowAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ReflowAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Reflow"/> - <Setter Property="Content" Value=""/> - </Style> - - - <!-- - - <Style x:Key="SkipBackAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SkipBackAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Skip Back"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SkipAheadAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SkipAheadAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Skip Ahead"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PlayAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PlayAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Play"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PauseAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PauseAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Pause"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="EditAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="EditAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Edit"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SaveAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SaveAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Save"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DeleteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DeleteAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Delete"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DiscardAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DiscardAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Discard"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RemoveAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RemoveAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Remove"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AddAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AddAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Add"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="YesAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="YesAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Yes"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MoreAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MoreAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="More"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RedoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RedoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Redo"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="UndoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UndoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Undo"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="HomeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="HomeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Home"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OutAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OutAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Out"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FavoriteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FavoriteAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Favorite"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PhotoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PhotoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Photo"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SettingsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SettingsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Settings"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="VideoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="VideoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Video"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RefreshAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RefreshAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Refresh"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DownloadAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DownloadAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Download"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MailAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MailAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Mail"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="UploadAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UploadAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Upload"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="EmojiAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="EmojiAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Emoji"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="TwoPageAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="TwoPageAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Two Page"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="LeaveChatAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="LeaveChatAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Upload"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MailForwardAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MailForwardAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Forward Mail"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ClockAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ClockAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Clock"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SendAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SendAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Send"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CropAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CropAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Crop"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RotateCameraAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RotateCameraAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Rotate Camera"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PeopleAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PeopleAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="People"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ClosePaneAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ClosePaneAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Close Pane"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OpenPaneAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OpenPaneAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Open Pane"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="WorldAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="WorldAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="World"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FlagAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FlagAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Flag"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PreviewLinkAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PreviewLinkAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Preview Link"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="GlobeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="GlobeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Globe"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="TrimAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="TrimAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Trim"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AttachCameraAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AttachCameraAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Attach Camera"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ZoomInAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ZoomInAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Zoom In"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="BookmarksAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="BookmarksAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Bookmarks"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DocumentAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DocumentAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Document"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ProtectedDocumentAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ProtectedDocumentAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Protected Document"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PageAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PageAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Page"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="BulletsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="BulletsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Bullets"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CommentAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CommentAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Comment"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="Mail2AppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="Mail2AppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Mail2"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ContactInfoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ContactInfoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Contact Info"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="HangUpAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="HangUpAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Hang Up"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ViewAllAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ViewAllAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="View All"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MapPinAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MapPinAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Map Pin"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PhoneAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PhoneAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Phone"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="VideoChatAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="VideoChatAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Video Chat"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SwitchAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SwitchAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Switch"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ContactAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ContactAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Contact"/> - <Setter Property="Content" Value=""/> - </Style> - - --> - - <!-- - - <Style x:Key="RenameAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RenameAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Rename"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PinAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PinAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Pin"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MusicInfoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MusicInfoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Music Info"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="GoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="GoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Go"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="KeyboardAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="KeyboardAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Keyboard"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DockLeftAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DockLeftAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Dock Left"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DockRightAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DockRightAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Dock Right"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DockBottomAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DockBottomAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Dock Bottom"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RemoteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RemoteAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Remote"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SyncAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SyncAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Sync"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RotateAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RotateAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Rotate"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ShuffleAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ShuffleAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Shuffle"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ListAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ListAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="List"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ShopAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ShopAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Shop"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SelectAllAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SelectAllAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Select All"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OrientationAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OrientationAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Orientation"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ImportAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ImportAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Import"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ImportAllAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ImportAllAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Import All"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="BrowsePhotosAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="BrowsePhotosAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Browse Photos"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="WebcamAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="WebcamAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Webcam"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="PicturesAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PicturesAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Pictures"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SaveLocalAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SaveLocalAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Save Local"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CaptionAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CaptionAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Caption"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="StopAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="StopAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Stop"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ShowResultsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ShowResultsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Show Results"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="VolumeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="VolumeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Volume"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RepairAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RepairAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Repair"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MessageAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MessageAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Message"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="Page2AppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="Page2AppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Page2"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CalendarDayAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CalendarDayAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Day"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CalendarWeekAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CalendarWeekAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Week"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CalendarAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CalendarAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Calendar"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CharactersAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CharactersAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Characters"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MailReplyAllAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MailReplyAllAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Reply All"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ReadAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ReadAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Read"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="LinkAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="LinkAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Link"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AccountsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AccountsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Accounts"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ShowBccAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ShowBccAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Show Bcc"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="HideBccAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="HideBccAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Hide Bcc"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="CutAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CutAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Cut"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AttachAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AttachAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Attach"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PasteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PasteAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Paste"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FilterAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FilterAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Filter"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CopyAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CopyAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Copy"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="Emoji2AppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="Emoji2AppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Emoji2"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ImportantAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ImportantAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Important"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MailReplyAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MailReplyAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Reply"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SlideShowAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SlideShowAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Slideshow"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SortAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SortAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Sort"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ManageAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ManageAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Manage"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AllAppsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AllAppsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="All Apps"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DisconnectDriveAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DisconnectDriveAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Disconnect Drive"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MapDriveAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MapDriveAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Map Drive"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="NewWindowAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="NewWindowAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="New Window"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OpenWithAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OpenWithAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Open With"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ContactPresenceAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ContactPresenceAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Presence"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PriorityAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PriorityAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Priority"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="UploadSkyDriveAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UploadSkyDriveAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Skydrive"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="GoToTodayAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="GoToTodayAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Today"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FontAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FontAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Font"/> - <Setter Property="Content" Value=""/> - </Style> - - --> - - <!-- - - <Style x:Key="FontColorAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FontColorAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Font Color"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="Contact2AppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="Contact2AppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Contact"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FolderppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FolderAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Folder"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AudioAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AudioAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Audio"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PlaceholderAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PlaceholderAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Placeholder"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ViewAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ViewAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="View"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SetLockScreenAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SetLockscreenAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Set Lockscreen"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SetTitleAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SetTitleAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Set Title"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CcAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CcAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Cc"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="StopSlideShowAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="StopSlideshowAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Stop Slideshow"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PermissionsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PermissionsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Permisions"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="HighlightAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="HighlightAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Highlight"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DisableUpdatesAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DisableUpdatesAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Disable Updates"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="UnfavoriteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UnfavoriteAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Unfavorite"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="UnPinAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UnPinAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Unpin"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OpenLocalAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OpenLocalAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Open Loal"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MuteAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MuteAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Mute"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ItalicAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ItalicAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Italic"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="UnderlineAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UnderlineAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Underline"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="BoldAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="BoldAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Bold"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MoveToFolderAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MoveToFolderAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Move to Folder"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="LikeDislikeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="LikeDislikeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Like/Dislike"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DislikeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DislikeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Dislike"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="LikeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="LikeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Like"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AlignRightAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AlignRightAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Align Right"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AlignCenterAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AlignCenterAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Align Center"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AlignLeftAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AlignLeftAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Align Left"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ZoomAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ZoomAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Zoom"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ZoomOutAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ZoomOutAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Zoom Out"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OpenFileAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OpenFileAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Open File"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OtherUserAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OtherUserAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Other User"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AdminAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AdminAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Admin"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="StreetAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="StreetAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Street"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MapAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MapAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Map"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ClearSelectionAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ClearSelectionAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Clear Selection"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FontDecreaseAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FontDecreaseAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Decrease Font"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FontIncreaseAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FontIncreaseAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Increase Font"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FontSizeAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FontSizeAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Font Size"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="CellphoneAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CellphoneAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Cellphone"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ReshareAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ReshareAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Reshare"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="TagAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="TagAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Tag"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RepeatOneAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RepeatOneAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Repeat Once"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="RepeatAllAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="RepeatAllAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Repeat All"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OutlineStarAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OutlineStarAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Outline Star"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SolidStarAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SolidStarAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Solid Star"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CalculatorAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CalculatorAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Calculator"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="DirectionsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="DirectionsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Directions"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="TargetAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="TargetAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Target"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="LibraryAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="LibraryAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Library"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PhonebookAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PhonebookAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Phonebook"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MemoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MemoAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Memo"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="MicrophoneAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="MicrophoneAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Microphone"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="PostUpdateAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="PostUpdateAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Post Update"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="BackToWindowAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="BackToWindowAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Back to Window"/> - <Setter Property="Content" Value=""/> - </Style> - --> - - <!-- - <Style x:Key="FullScreenAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FullScreenAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Full Screen"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="NewFolderAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="NewFolderAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="New Folder"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="CalendarReplyAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="CalendarReplyAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Calendar Reply"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="UnsyncFolderAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="UnsyncFolderAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Unsync Folder"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ReportHackedAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ReportHackedAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Report Hacked"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SyncFolderAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SyncFolderAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Sync Folder"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="BlockContactAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="Block ContactAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="BlockContact"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="SwitchAppsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="SwitchAppsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Switch Apps"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="AddFriendAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="AddFriendAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Add Friend"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="TouchPointerAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="TouchPointerAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Touch Pointer"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="GoToStartAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="GoToStartAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Go to Start"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ZeroBarsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ZeroBarsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Zero Bars"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="OneBarAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="OneBarAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="One Bar"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="TwoBarsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="TwoBarsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Two Bars"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="ThreeBarsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="ThreeBarsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Three Bars"/> - <Setter Property="Content" Value=""/> - </Style> - <Style x:Key="FourBarsAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> - <Setter Property="AutomationProperties.AutomationId" Value="FourBarsAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Four Bars"/> - <Setter Property="Content" Value=""/> - </Style> - - --> - - <!-- Title area styles --> - - <Style x:Key="PageHeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource HeaderTextStyle}"> - <Setter Property="TextWrapping" Value="NoWrap"/> - <Setter Property="VerticalAlignment" Value="Bottom"/> - <Setter Property="Margin" Value="0,0,30,40"/> - </Style> - - <Style x:Key="PageSubheaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource SubheaderTextStyle}"> - <Setter Property="TextWrapping" Value="NoWrap"/> - <Setter Property="VerticalAlignment" Value="Bottom"/> - <Setter Property="Margin" Value="0,0,0,40"/> - </Style> - - <Style x:Key="SnappedPageHeaderTextStyle" TargetType="TextBlock" BasedOn="{StaticResource PageSubheaderTextStyle}"> - <Setter Property="Margin" Value="0,0,18,40"/> - </Style> - - <!-- - BackButtonStyle is used to style a Button for use in the title area of a page. Margins appropriate for - the conventional page layout are included as part of the style. - --> - <Style x:Key="BackButtonStyle" TargetType="Button"> - <Setter Property="MinWidth" Value="0"/> - <Setter Property="Width" Value="48"/> - <Setter Property="Height" Value="48"/> - <Setter Property="Margin" Value="36,0,36,36"/> - <Setter Property="VerticalAlignment" Value="Bottom"/> - <Setter Property="FontFamily" Value="Segoe UI Symbol"/> - <Setter Property="FontWeight" Value="Normal"/> - <Setter Property="FontSize" Value="56"/> - <Setter Property="AutomationProperties.AutomationId" Value="BackButton"/> - <Setter Property="AutomationProperties.Name" Value="Back"/> - <Setter Property="AutomationProperties.ItemType" Value="Navigation Button"/> - <Setter Property="Template"> - <Setter.Value> - <ControlTemplate TargetType="Button"> - <Grid x:Name="RootGrid"> - <Grid Margin="-1,-16,0,0"> - <TextBlock x:Name="BackgroundGlyph" Text="" Foreground="{StaticResource BackButtonBackgroundThemeBrush}"/> - <TextBlock x:Name="NormalGlyph" Text="{StaticResource BackButtonGlyph}" Foreground="{StaticResource BackButtonForegroundThemeBrush}"/> - <TextBlock x:Name="ArrowGlyph" Text="" Foreground="{StaticResource BackButtonPressedForegroundThemeBrush}" Opacity="0"/> - </Grid> - <Rectangle - x:Name="FocusVisualWhite" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="1.5"/> - <Rectangle - x:Name="FocusVisualBlack" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="0.5"/> - - <VisualStateManager.VisualStateGroups> - <VisualStateGroup x:Name="CommonStates"> - <VisualState x:Name="Normal" /> - <VisualState x:Name="PointerOver"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonPointerOverBackgroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NormalGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonPointerOverForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Pressed"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <DoubleAnimation - Storyboard.TargetName="ArrowGlyph" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - <DoubleAnimation - Storyboard.TargetName="NormalGlyph" - Storyboard.TargetProperty="Opacity" - To="0" - Duration="0"/> - </Storyboard> - </VisualState> - <VisualState x:Name="Disabled"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Visibility"> - <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - </VisualStateGroup> - <VisualStateGroup x:Name="FocusStates"> - <VisualState x:Name="Focused"> - <Storyboard> - <DoubleAnimation - Storyboard.TargetName="FocusVisualWhite" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - <DoubleAnimation - Storyboard.TargetName="FocusVisualBlack" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - </Storyboard> - </VisualState> - <VisualState x:Name="Unfocused" /> - <VisualState x:Name="PointerFocused" /> - </VisualStateGroup> - </VisualStateManager.VisualStateGroups> - </Grid> - </ControlTemplate> - </Setter.Value> - </Setter> - </Style> - - <!-- - PortraitBackButtonStyle is used to style a Button for use in the title area of a portrait page. Margins appropriate - for the conventional page layout are included as part of the style. - --> - <Style x:Key="PortraitBackButtonStyle" TargetType="Button" BasedOn="{StaticResource BackButtonStyle}"> - <Setter Property="Margin" Value="26,0,26,36"/> - </Style> - - <!-- - SnappedBackButtonStyle is used to style a Button for use in the title area of a snapped page. Margins appropriate - for the conventional page layout are included as part of the style. - - The obvious duplication here is necessary as the glyphs used in snapped are not merely smaller versions of the same - glyph but are actually distinct. - --> - <Style x:Key="SnappedBackButtonStyle" TargetType="Button"> - <Setter Property="MinWidth" Value="0"/> - <Setter Property="Margin" Value="20,0,0,0"/> - <Setter Property="VerticalAlignment" Value="Bottom"/> - <Setter Property="FontFamily" Value="Segoe UI Symbol"/> - <Setter Property="FontWeight" Value="Normal"/> - <Setter Property="FontSize" Value="26.66667"/> - <Setter Property="AutomationProperties.AutomationId" Value="BackButton"/> - <Setter Property="AutomationProperties.Name" Value="Back"/> - <Setter Property="AutomationProperties.ItemType" Value="Navigation Button"/> - <Setter Property="Template"> - <Setter.Value> - <ControlTemplate TargetType="Button"> - <Grid x:Name="RootGrid" Width="36" Height="36" Margin="-3,0,7,33"> - <Grid Margin="-1,-1,0,0"> - <TextBlock x:Name="BackgroundGlyph" Text="" Foreground="{StaticResource BackButtonBackgroundThemeBrush}"/> - <TextBlock x:Name="NormalGlyph" Text="{StaticResource BackButtonSnappedGlyph}" Foreground="{StaticResource BackButtonForegroundThemeBrush}"/> - <TextBlock x:Name="ArrowGlyph" Text="" Foreground="{StaticResource BackButtonPressedForegroundThemeBrush}" Opacity="0"/> - </Grid> - <Rectangle - x:Name="FocusVisualWhite" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="1.5"/> - <Rectangle - x:Name="FocusVisualBlack" - IsHitTestVisible="False" - Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" - StrokeEndLineCap="Square" - StrokeDashArray="1,1" - Opacity="0" - StrokeDashOffset="0.5"/> - - <VisualStateManager.VisualStateGroups> - <VisualStateGroup x:Name="CommonStates"> - <VisualState x:Name="Normal" /> - <VisualState x:Name="PointerOver"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonPointerOverBackgroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NormalGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonPointerOverForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - <VisualState x:Name="Pressed"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> - <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonForegroundThemeBrush}"/> - </ObjectAnimationUsingKeyFrames> - <DoubleAnimation - Storyboard.TargetName="ArrowGlyph" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - <DoubleAnimation - Storyboard.TargetName="NormalGlyph" - Storyboard.TargetProperty="Opacity" - To="0" - Duration="0"/> - </Storyboard> - </VisualState> - <VisualState x:Name="Disabled"> - <Storyboard> - <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Visibility"> - <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> - </ObjectAnimationUsingKeyFrames> - </Storyboard> - </VisualState> - </VisualStateGroup> - <VisualStateGroup x:Name="FocusStates"> - <VisualState x:Name="Focused"> - <Storyboard> - <DoubleAnimation - Storyboard.TargetName="FocusVisualWhite" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - <DoubleAnimation - Storyboard.TargetName="FocusVisualBlack" - Storyboard.TargetProperty="Opacity" - To="1" - Duration="0"/> - </Storyboard> - </VisualState> - <VisualState x:Name="Unfocused" /> - <VisualState x:Name="PointerFocused" /> - </VisualStateGroup> - </VisualStateManager.VisualStateGroups> - </Grid> - </ControlTemplate> - </Setter.Value> - </Setter> - </Style> - - <!-- Item templates --> - - <!-- Grid-appropriate 250 pixel square item template as seen in the GroupedItemsPage and ItemsPage --> - <DataTemplate x:Key="Standard250x250ItemTemplate"> - <Grid HorizontalAlignment="Left" Width="250" Height="250"> - <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}"> - <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/> - </Border> - <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}"> - <TextBlock Text="{Binding Title}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="60" Margin="15,0,15,0"/> - <TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/> - </StackPanel> - </Grid> - </DataTemplate> - - <!-- Grid-appropriate 500 by 130 pixel item template as seen in the GroupDetailPage --> - <DataTemplate x:Key="Standard500x130ItemTemplate"> - <Grid Height="110" Width="480" Margin="10"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110"> - <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/> - </Border> - <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0"> - <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" MaxHeight="60"/> - </StackPanel> - </Grid> - </DataTemplate> - - <!-- List-appropriate 130 pixel high item template as seen in the SplitPage --> - <DataTemplate x:Key="Standard130ItemTemplate"> - <Grid Height="110" Margin="6"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110"> - <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/> - </Border> - <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0"> - <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" MaxHeight="60"/> - </StackPanel> - </Grid> - </DataTemplate> - - <!-- - List-appropriate 80 pixel high item template as seen in the SplitPage when Filled, and - the following pages when snapped: GroupedItemsPage, GroupDetailPage, and ItemsPage - --> - <DataTemplate x:Key="Standard80ItemTemplate"> - <Grid Margin="6"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="60" Height="60"> - <Image Source="{Binding Image}" Stretch="UniformToFill"/> - </Border> - <StackPanel Grid.Column="1" Margin="10,0,0,0"> - <TextBlock Text="{Binding Title}" Style="{StaticResource ItemTextStyle}" MaxHeight="40"/> - <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/> - </StackPanel> - </Grid> - </DataTemplate> - - <!-- Grid-appropriate 300 by 70 pixel item template as seen in the SearchResultsPage --> - <DataTemplate x:Key="StandardSmallIcon300x70ItemTemplate"> - <Grid Width="294" Margin="6"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Margin="0,0,0,10" Width="40" Height="40"> - <Image Source="{Binding Image}" Stretch="UniformToFill"/> - </Border> - <StackPanel Grid.Column="1" Margin="10,-10,0,0"> - <TextBlock Text="{Binding Title}" Style="{StaticResource BodyTextStyle}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Subtitle}" Style="{StaticResource BodyTextStyle}" Foreground="{StaticResource ApplicationSecondaryForegroundThemeBrush}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" Foreground="{StaticResource ApplicationSecondaryForegroundThemeBrush}" TextWrapping="NoWrap"/> - </StackPanel> - </Grid> - </DataTemplate> - - <!-- List-appropriate 70 pixel high item template as seen in the SearchResultsPage when Snapped --> - <DataTemplate x:Key="StandardSmallIcon70ItemTemplate"> - <Grid Margin="6"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Margin="0,0,0,10" Width="40" Height="40"> - <Image Source="{Binding Image}" Stretch="UniformToFill"/> - </Border> - <StackPanel Grid.Column="1" Margin="10,-10,0,0"> - <TextBlock Text="{Binding Title}" Style="{StaticResource BodyTextStyle}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Subtitle}" Style="{StaticResource BodyTextStyle}" Foreground="{StaticResource ApplicationSecondaryForegroundThemeBrush}" TextWrapping="NoWrap"/> - <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" Foreground="{StaticResource ApplicationSecondaryForegroundThemeBrush}" TextWrapping="NoWrap"/> - </StackPanel> - </Grid> - </DataTemplate> - - <!-- - 190x130 pixel item template for displaying file previews as seen in the FileOpenPickerPage - Includes an elaborate tooltip to display title and description text - --> - <DataTemplate x:Key="StandardFileWithTooltip190x130ItemTemplate"> - <Grid> - <Grid Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}"> - <Image - Source="{Binding Image}" - Width="190" - Height="130" - HorizontalAlignment="Center" - VerticalAlignment="Center" - Stretch="Uniform"/> - </Grid> - <ToolTipService.Placement>Mouse</ToolTipService.Placement> - <ToolTipService.ToolTip> - <ToolTip> - <ToolTip.Style> - <Style TargetType="ToolTip"> - <Setter Property="BorderBrush" Value="{StaticResource ToolTipBackgroundThemeBrush}" /> - <Setter Property="Padding" Value="0" /> - </Style> - </ToolTip.Style> - - <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="Auto"/> - <ColumnDefinition Width="*"/> - </Grid.ColumnDefinitions> - - <Grid Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Margin="20"> - <Image - Source="{Binding Image}" - Width="160" - Height="160" - HorizontalAlignment="Center" - VerticalAlignment="Center" - Stretch="Uniform"/> - </Grid> - <StackPanel Width="200" Grid.Column="1" Margin="0,20,20,20"> - <TextBlock Text="{Binding Title}" TextWrapping="NoWrap" Style="{StaticResource BodyTextStyle}"/> - <TextBlock Text="{Binding Description}" MaxHeight="140" Foreground="{StaticResource ApplicationSecondaryForegroundThemeBrush}" Style="{StaticResource BodyTextStyle}"/> - </StackPanel> - </Grid> - </ToolTip> - </ToolTipService.ToolTip> - </Grid> - </DataTemplate> - - <!-- ScrollViewer styles --> - - <Style x:Key="HorizontalScrollViewerStyle" TargetType="ScrollViewer"> - <Setter Property="HorizontalScrollBarVisibility" Value="Auto"/> - <Setter Property="VerticalScrollBarVisibility" Value="Disabled"/> - <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Enabled" /> - <Setter Property="ScrollViewer.VerticalScrollMode" Value="Disabled" /> - <Setter Property="ScrollViewer.ZoomMode" Value="Disabled" /> - </Style> - - <Style x:Key="VerticalScrollViewerStyle" TargetType="ScrollViewer"> - <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/> - <Setter Property="VerticalScrollBarVisibility" Value="Auto"/> - <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled" /> - <Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled" /> - <Setter Property="ScrollViewer.ZoomMode" Value="Disabled" /> - </Style> - - <!-- Page layout roots typically use entrance animations and a theme-appropriate background color --> - - <Style x:Key="LayoutRootStyle" TargetType="Panel"> - <Setter Property="Background" Value="{StaticResource ApplicationPageBackgroundThemeBrush}"/> - <Setter Property="ChildrenTransitions"> - <Setter.Value> - <TransitionCollection> - <EntranceThemeTransition/> - </TransitionCollection> - </Setter.Value> - </Setter> - </Style> -</ResourceDictionary> diff --git a/winrt/winapp/LVContents.cpp b/winrt/winapp/LVContents.cpp deleted file mode 100644 index 1905c10c..00000000 --- a/winrt/winapp/LVContents.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "pch.h" -#include "LVContents.h" - -using namespace ListViewContents; -LVContents::LVContents(void) -{ - ContentItem = ""; - Page = -1; -} diff --git a/winrt/winapp/LVContents.h b/winrt/winapp/LVContents.h deleted file mode 100644 index 1ca4179c..00000000 --- a/winrt/winapp/LVContents.h +++ /dev/null @@ -1,12 +0,0 @@ -#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/winapp/MainPage.xaml b/winrt/winapp/MainPage.xaml deleted file mode 100644 index 011bd8d7..00000000 --- a/winrt/winapp/MainPage.xaml +++ /dev/null @@ -1,116 +0,0 @@ -<Page - x:Class="winapp.MainPage" - xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:local="using:winapp" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - mc:Ignorable="d"> - - <Page.BottomAppBar> - <AppBar> - <Grid Margin="38,0,0,0"> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="*"/> - <ColumnDefinition Width="Auto"/> - </Grid.ColumnDefinitions> - <Slider x:Name="xaml_PageSlider" Minimum="0" Maximum="10" ValueChanged="Slider_ValueChanged" LostFocus="Slider_Released" Grid.Column="0" Margin="10,0" VerticalAlignment="Center" /> - <Button x:Name="Find_File" Style="{StaticResource OpenFileAppBarButtonStyle}" Tag="OpenFile" HorizontalAlignment="Right" Grid.Column="1" Click="Picker"/> - </Grid> - </AppBar> - </Page.BottomAppBar> - <Page.TopAppBar> - <AppBar x:Name="TopAppBar1" AutomationProperties.Name="Top App Bar" Loaded="topAppBar_Loaded"> - <Grid> - <Grid.RowDefinitions> - <RowDefinition Height="Auto"/> - <RowDefinition Height="Auto"/> - </Grid.RowDefinitions> - <StackPanel x:Name="LeftPanel" Orientation="Horizontal"> - </StackPanel> - <StackPanel x:Name="RightPanel" Orientation="Horizontal" HorizontalAlignment="Right"> - <Button x:Name="Search" Style="{StaticResource SearchAppBarButtonStyle}" Tag="Search" Click="Searcher"/> - <Button x:Name="Contents" Style="{StaticResource ContentsBarButtonStyle}" Tag="Contents" Click="ContentDisplay"/> - <Button x:Name="Links" Style="{StaticResource LinksAppBarButtonStyle}" Tag="Links" Click="Linker"/> - <Button x:Name="Reflow" Style="{StaticResource ReflowAppBarButtonStyle}" Tag="Reflow" Click="Reflower"/> - <Button x:Name="Help" Style="{StaticResource HelpAppBarButtonStyle}" Tag="Help"/> - </StackPanel> - </Grid> - </AppBar> - </Page.TopAppBar> - - <Grid x:Name="xaml_OutsideGrid"> - <Grid.Background> - <LinearGradientBrush EndPoint="-0.074,-0.068" StartPoint="1.027,1.024"> - <GradientStop Color="Black"/> - <GradientStop Color="White"/> - <GradientStop Color="White" Offset="0.919"/> - <GradientStop Color="#FFCDCDCD" Offset="0.741"/> - <GradientStop Color="#FF909090" Offset="0.524"/> - <GradientStop Color="#FF737373" Offset="0.421"/> - <GradientStop Color="#FF2A2A2A" Offset="0.155"/> - <GradientStop Color="#FF1A1A1A" Offset="0.097"/> - <GradientStop Color="#FF040404" Offset="0.018"/> - <GradientStop Color="#FFB3B3B3" Offset="0.651"/> - <GradientStop Color="#FF989898" Offset="0.556"/> - <GradientStop Color="#FF666666" Offset="0.375"/> - <GradientStop Color="#FF4B4B4B" Offset="0.278"/> - <GradientStop Color="#FF3A3A3A" Offset="0.215"/> - </LinearGradientBrush> - </Grid.Background> - - <ProgressBar x:Name="xaml_Progress" IsIndeterminate="False" Maximum="100" Value="0" Height="10" Width="400" IsEnabled="False" Opacity="0"/> - - <Grid x:Name="xaml_MainGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SizeChanged="GridSizeChanged"> - <Canvas x:Name="xaml_zoomCanvas" HorizontalAlignment="Center" VerticalAlignment="Center" DoubleTapped="Canvas_Double" - ManipulationDelta="Canvas_ManipulationDelta" ManipulationStarted="Canvas_ManipulationStarted" - ManipulationStarting="Canvas_ManipulationStarting" ManipulationCompleted="Canvas_ManipulationCompleted" - ManipulationMode="All" IsTapEnabled="True" Tapped="Canvas_Single_Tap"> - <FlipView x:Name="xaml_horiz_flipView" SelectionChanged="FlipView_SelectionChanged" DoubleTapped="FlipView_Double" VerticalAlignment="Center" - HorizontalAlignment="Center"> - <FlipView.ItemsPanel> - <ItemsPanelTemplate> - <VirtualizingStackPanel Orientation="Horizontal"/> - </ItemsPanelTemplate> - </FlipView.ItemsPanel> - </FlipView> - - <FlipView x:Name="xaml_vert_flipView" SelectionChanged="FlipView_SelectionChanged" DoubleTapped="FlipView_Double" VerticalAlignment="Center" - HorizontalAlignment="Center" IsEnabled="False" Opacity="0"> - <FlipView.ItemsPanel> - <ItemsPanelTemplate> - <VirtualizingStackPanel Orientation="Vertical"/> - </ItemsPanelTemplate> - </FlipView.ItemsPanel> - </FlipView> - - </Canvas> - <ListView x:Name="xaml_ListView" Foreground="Black" HorizontalAlignment="Stretch" - VerticalAlignment="Stretch" Opacity="0" IsItemClickEnabled="True" - ItemClick="ContentSelected" SelectionMode="Single" IsEnabled="False"> - - <ListView.ItemTemplate> - <DataTemplate> - <StackPanel Margin="5,5,0,0" HorizontalAlignment="Left"> - <TextBlock TextWrapping="Wrap" Text="{Binding ContentItem}" FontFamily="Segoe UI" FontSize="20" /> - </StackPanel> - </DataTemplate> - </ListView.ItemTemplate> - - <ListView.Background> - <SolidColorBrush Color="LightGray"></SolidColorBrush> - </ListView.Background> - </ListView> - </Grid> - <StackPanel x:Name="xaml_RichGrid" Orientation="Vertical" Margin="5,5,5,50" - Width="Auto" Height="Auto" Visibility="Collapsed"> - <TextBlock HorizontalAlignment="Center" Text="FontSize:" FontSize="18" Margin="0, 10, 0, -10"/> - <Slider x:Name="fontSizeSlider" Width="200" Value="20" Minimum="8" Maximum="40" - TickFrequency="4" Orientation="Horizontal" HorizontalAlignment="Center" /> - <RichEditBox x:Name="xaml_RichText" FontSize="{Binding Value, ElementName=fontSizeSlider}" - Visibility="Collapsed" HorizontalAlignment="Center" - VerticalAlignment="Top"> - </RichEditBox> - </StackPanel> - </Grid> -</Page> diff --git a/winrt/winapp/MainPage.xaml.cpp b/winrt/winapp/MainPage.xaml.cpp deleted file mode 100644 index a649d1e5..00000000 --- a/winrt/winapp/MainPage.xaml.cpp +++ /dev/null @@ -1,2043 +0,0 @@ -// -// MainPage.xaml.cpp -// Implementation of the MainPage class. -// - -#include "pch.h" -#include "MainPage.xaml.h" -#include "LVContents.h" - -#define LOOK_AHEAD 1 /* A +/- count on the pages to pre-render */ -#define MIN_SCALE 0.5 -#define MAX_SCALE 4 -#define MARGIN_BUFF 400 -#define MAX_SEARCH 500 -#define SCALE_THUMB 0.25 - -static float screenScale = 1; -static fz_context *ctx = NULL; -fz_document *m_doc; - -int linkPage[MAX_SEARCH]; -char *linkUrl[MAX_SEARCH]; - -using namespace winapp; - -using namespace Windows::Foundation; -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::Media; -using namespace Windows::UI::Xaml::Navigation; -using namespace Windows::Graphics::Display; -using namespace ListViewContents; - -//****************** Added ***************** -using namespace Windows::Storage::Pickers; -using namespace Windows::Devices::Enumeration; -using namespace concurrency; -using namespace Windows::Graphics::Imaging; -//****************** End Add **************** - -typedef struct win_stream_struct_s -{ - IRandomAccessStream^ stream; -} win_stream_struct; -static win_stream_struct win_stream; - -#ifndef NDEBUG -unsigned int _mainThreadId = 0U; - -#ifdef __cplusplus -extern "C" { -#endif - - // The IsMainThread function returns true if the current thread is the app's main thread and false otherwise. - bool IsMainThread() - { - return (_mainThreadId == GetCurrentThreadId()); - } - - // The IsBackgroundThread function returns false if the current thread is the app's main thread and true otherwise. - bool IsBackgroundThread() - { - return (_mainThreadId != GetCurrentThreadId()); - } - - // The RecordMainThread function registers the main thread ID for use by the IsMainThread and IsBackgroundThread functions. - void RecordMainThread() - { - _mainThreadId = GetCurrentThreadId(); - } - -#ifdef __cplusplus -} -#endif - -#endif /* not NDEBUG */ - -MainPage::MainPage() -{ - InitializeComponent(); - - Windows::UI::Color color; - color.R = 0x25; - color.G = 0x72; - color.B = 0xAC; - color.A = 0x40; - m_textcolor_brush = ref new SolidColorBrush(color); - - color.R = 0xAC; - color.G = 0x72; - color.B = 0x25; - color.A = 0x40; - m_linkcolor_brush = ref new SolidColorBrush(color); - - // Create the image brush - m_renderedImage = ref new ImageBrush(); - m_doc = NULL; - m_content.num = 0; - CleanUp(); - RecordMainThread(); - - // use at most 128M for resource cache - ctx = fz_new_context(NULL, NULL, 128<<20); -} - -/// <summary> -/// Invoked when this page is about to be displayed in a Frame. -/// </summary> -/// <param name="e">Event data that describes how this page was reached. The Parameter -/// property is typically used to configure the page.</param> -void MainPage::OnNavigatedTo(NavigationEventArgs^ e) -{ - (void) e; // Unused parameter -} - -void winapp::MainPage::ExitInvokedHandler(Windows::UI::Popups::IUICommand^ command) -{ - -} - -void winapp::MainPage::OKInvokedHandler(Windows::UI::Popups::IUICommand^ command) -{ - -} - -void winapp::MainPage::NotifyUser(String^ strMessage, NotifyType_t type) -{ - MessageDialog^ msg = ref new MessageDialog(strMessage); - UICommand^ ExitCommand = nullptr; - UICommand^ OKCommand = nullptr; - - switch (type) - { - case StatusMessage: - OKCommand = ref new UICommand("OK", - ref new UICommandInvokedHandler(this, &winapp::MainPage::OKInvokedHandler)); - msg->Commands->Append(OKCommand); - /// Set the command that will be invoked by default - msg->DefaultCommandIndex = 0; - // Set the command to be invoked when escape is pressed - msg->CancelCommandIndex = 1; - break; - case ErrorMessage: - ExitCommand = ref new UICommand("Exit", - ref new UICommandInvokedHandler(this, &winapp::MainPage::ExitInvokedHandler)); - msg->Commands->Append(ExitCommand); - /// Set the command that will be invoked by default - msg->DefaultCommandIndex = 0; - // Set the command to be invoked when escape is pressed - msg->CancelCommandIndex = 1; - break; - default: - break; - } - // Show the message dialog - msg->ShowAsync(); -} - -bool winapp::MainPage::EnsureUnsnapped() -{ - // FilePicker APIs will not work if the application is in a snapped state. - // If an app wants to show a FilePicker while snapped, it must attempt to unsnap first - - bool unsnapped = (ApplicationView::Value != ApplicationViewState::Snapped || - ApplicationView::TryUnsnap()); - if (!unsnapped) - { - NotifyUser("Cannot unsnap the application", StatusMessage); - } - return unsnapped; -} - -void winapp::MainPage::Picker(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - if (!EnsureUnsnapped()) - return; - - FileOpenPicker^ openPicker = ref new FileOpenPicker(); - openPicker->ViewMode = PickerViewMode::List; - openPicker->SuggestedStartLocation = PickerLocationId::PicturesLibrary; - openPicker->FileTypeFilter->Append(".pdf"); - openPicker->FileTypeFilter->Append(".xps"); - openPicker->FileTypeFilter->Append(".oxps"); - - create_task(openPicker->PickSingleFileAsync()).then([this](StorageFile^ file) - { - if (file) - { - this->OpenDocumentPrep(file); - } - else - { - /* Nothing selected */ - } - }); -} - -void MainPage::NotifyUserFileNotExist() -{ - //NotifyUser("The file '" + Filename + "' does not exist. Use scenario one to create this file.", NotifyType::ErrorMessage); -} - -void MainPage::HandleFileNotFoundException(Platform::COMException^ e) -{ - if (e->HResult == 0x80070002) // Catch FileNotExistException - { - NotifyUserFileNotExist(); - } - else - { - throw e; - } -} - -RectSize MainPage::currPageSize(int page) -{ - RectSize Size; - - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(page); - - Size.height = flipview_temp->ActualHeight; - Size.width = flipview_temp->ActualWidth; - return Size; -} - -static RectSize measurePage(fz_document *doc, fz_page *page) -{ - RectSize pageSize; - fz_rect rect; - fz_rect *bounds = fz_bound_page(doc, page, &rect); - - pageSize.width = bounds->x1 - bounds->x0; - pageSize.height = bounds->y1 - bounds->y0; - return pageSize; -} - -static RectSize fitPageToScreen(RectSize page, RectSize screen) -{ - RectSize pageSize; - - float hscale = screen.width / page.width; - float vscale = screen.height / page.height; - float scale = fz_min(hscale, vscale); - pageSize.width = floorf(page.width * scale) / page.width; - pageSize.height = floorf(page.height * scale) / page.height; - return pageSize; -} - -spatial_info_t MainPage::InitSpatial(double scale) -{ - spatial_info_t value; - - value.size.height = this->ActualHeight; - value.size.width = this->ActualWidth; - value.scale_factor = scale; - return value; -} - -void Prepare_bmp(int width, int height, DataWriter ^dw) -{ - int row_size = width * 4; - int bmp_size = row_size * height + 54; - - dw->WriteString("BM"); - dw->ByteOrder = ByteOrder::LittleEndian; - dw->WriteInt32(bmp_size); - dw->WriteInt16(0); - dw->WriteInt16(0); - dw->WriteInt32(54); - dw->WriteInt32(40); - dw->WriteInt32(width); - dw->WriteInt32(height); - dw->WriteInt16(1); - dw->WriteInt16(32); - dw->WriteInt32(0); - dw->WriteInt32(row_size * height); - dw->WriteInt32(2835); - dw->WriteInt32(2835); - dw->WriteInt32(0); - dw->WriteInt32(0); -} - -void MainPage::ReleasePages(int old_page, int new_page) -{ - - if (old_page == new_page) return; - /* To keep from having memory issue reset the page back to - the thumb if we are done rendering the thumbnails */ - if (this->m_thumb_page_start == this->m_num_pages) - { - for (int k = old_page - LOOK_AHEAD; k <= old_page + LOOK_AHEAD; k++) - { - if (k < new_page - LOOK_AHEAD || k > new_page + LOOK_AHEAD) - { - if (k >= 0 && k < this->m_num_pages) - { - SetThumb(k); - } - } - } - } -} - -void MainPage::InitThumbnails() -{ - this->m_thumbnails.raster = ref new Array<InMemoryRandomAccessStream^>(m_num_pages); - this->m_thumbnails.scale = ref new Array<double>(m_num_pages); - this->m_thumbnails.canvas_h = ref new Array<Canvas^>(m_num_pages); - this->m_thumbnails.canvas_v = ref new Array<Canvas^>(m_num_pages); - this->m_thumbnails.size = ref new Array<Point>(m_num_pages); -} - -/* Return this page from a full res image to the thumb image. This should only - be called after all thumbs have been rendered. */ -void MainPage::SetThumb(int page_num) -{ - FlipViewItem ^flipview_temp = (FlipViewItem^) xaml_vert_flipView->Items->GetAt(page_num); - flipview_temp->Content = this->m_thumbnails.canvas_v[page_num]; - flipview_temp->Background = this->m_blankPage; - flipview_temp = (FlipViewItem^) xaml_horiz_flipView->Items->GetAt(page_num); - flipview_temp->Content = this->m_thumbnails.canvas_h[page_num]; - flipview_temp->Background = this->m_blankPage; -} - -/* Add rendered page into flipview structure at location page_num */ -void MainPage::AddPage(int page_num) -{ - FlipViewItem ^flipview_temp = ref new FlipViewItem(); - flipview_temp->Content = this->m_renderedCanvas; - m_curr_flipView->Items->Append(flipview_temp); -} - -/* Replace rendered page into flipview structure at location page_num */ -void MainPage::ReplacePage(int page_num) -{ - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(page_num); - flipview_temp->Content = this->m_renderedCanvas; - flipview_temp->Background = nullptr; -} - -/* Add rendered page into flipview structure at location page_num */ -void MainPage::AddBlankPage(int page_num) -{ - FlipViewItem ^flipview_temp = ref new FlipViewItem(); - flipview_temp->Background = this->m_blankPage; - m_curr_flipView->Items->Append(flipview_temp); -} - -/* Add rendered page into flipview structure at location page_num */ -void MainPage::AddBlankPage(int page_num, FlipView^ flip_view) -{ - FlipViewItem ^flipview_temp = ref new FlipViewItem(); - flipview_temp->Background = this->m_blankPage; - flip_view->Items->Append(flipview_temp); -} - -/* Add rendered page into flipview structure at location page_num */ -void MainPage::AddThumbNail(int page_num, FlipView^ flip_view) -{ - FlipViewItem ^flipview_temp = ref new FlipViewItem(); - flipview_temp->Content = this->m_renderedCanvas; - flip_view->Items->Append(flipview_temp); -} - -/* Create white image for us to use as place holder in large document for flip - view filling instead of the thumbnail image */ -void MainPage::CreateBlank(int width, int height) -{ - Array<unsigned char>^ bmp_data = ref new Array<unsigned char>(height * 4 * width); - /* Set up the memory stream */ - WriteableBitmap ^bmp = ref new WriteableBitmap(width, height); - InMemoryRandomAccessStream ^ras = ref new InMemoryRandomAccessStream(); - DataWriter ^dw = ref new DataWriter(ras->GetOutputStreamAt(0)); - /* Go ahead and write our header data into the memory stream */ - Prepare_bmp(width, height, dw); - - /* Set the data to all white */ - memset(bmp_data->Data, 255, height * 4 * width); - - /* Write the data */ - dw->WriteBytes(bmp_data); - - DataWriterStoreOperation^ result = dw->StoreAsync(); - /* Block on the Async call */ - while(result->Status != AsyncStatus::Completed) { - } - /* And store in a the image brush */ - bmp->SetSource(ras); - m_blankPage = ref new ImageBrush(); - m_blankPage->Stretch = Windows::UI::Xaml::Media::Stretch::None; - m_blankPage->ImageSource = bmp; -} - -/* win_read_file. Reading of windows managed stream. This is not ideal as I have - to read into a managed buffer and then transfer to the actual buffer I want. I - would like a more direct approach */ -static int win_read_file(fz_stream *stm, unsigned char *buf, int len) -{ - void *temp = stm->state; - win_stream_struct *stream = reinterpret_cast <win_stream_struct*> (temp); - IRandomAccessStream^ Stream = stream->stream; - unsigned long long curr_pos = Stream->Position; - unsigned long long length = Stream->Size; - - DataReader^ local_reader = ref new DataReader(Stream); - DataReaderLoadOperation^ result = local_reader->LoadAsync(len); - - /* Block on the Async call */ - while(result->Status != AsyncStatus::Completed) { - - } - result->GetResults(); - int curr_len2 = local_reader->UnconsumedBufferLength; - if (curr_len2 < len) - len = curr_len2; - - Platform::Array<unsigned char>^ arrByte = ref new Platform::Array<unsigned char>(len); - local_reader->ReadBytes(arrByte); - - memcpy(buf, arrByte->Data, len); - local_reader->DetachStream(); - - return len; -} - -static void win_seek_file(fz_stream *stm, int offset, int whence) -{ - void *temp = stm->state; - win_stream_struct *stream = reinterpret_cast <win_stream_struct*> (temp); - IRandomAccessStream^ Stream = stream->stream; - unsigned long long curr_pos = Stream->Position; - unsigned long long length = Stream->Size; - unsigned long long n; - - if (whence == SEEK_END) - { - n = length + offset; - } - else if (whence == SEEK_CUR) - { - n = curr_pos + offset; - } - else if (whence == SEEK_SET) - { - n = offset; - } - Stream->Seek(n); - curr_pos = Stream->Position; - stm->pos = n; - stm->rp = stm->bp; - stm->wp = stm->bp; -} - -static void win_close_file(fz_context *ctx, void *state) -{ - - DataReader^ dataReader = reinterpret_cast <DataReader^> (state); - - delete dataReader; -} - -void PixToMemStream(DataWriter ^dw, Platform::Array<unsigned char> ^arr) -{ - /* Write the data */ - dw->WriteBytes(arr); - - DataWriterStoreOperation^ result = dw->StoreAsync(); - /* Block on the Async call */ - while(result->Status != AsyncStatus::Completed) { - } -} - -void PageSize(fz_document *doc, fz_page *page, int *width, int *height, spatial_info_t spatial_info) -{ - RectSize pageSize; - RectSize scale; - RectSize screenSize; - - screenSize.height = spatial_info.size.height; - screenSize.width = spatial_info.size.width; - - screenSize.width *= screenScale; - screenSize.height *= screenScale; - - pageSize = measurePage(doc, page); - scale = fitPageToScreen(pageSize, screenSize); - *width = pageSize.width * scale.width * spatial_info.scale_factor; - *height = pageSize.height * scale.height * spatial_info.scale_factor; -} - -InMemoryRandomAccessStream^ RenderBitMap(fz_document *doc, fz_page *page, int *width, - int *height, spatial_info_t spatial_info) -{ - fz_matrix ctm, *pctm = &ctm; - fz_device *dev; - fz_pixmap *pix; - RectSize pageSize; - RectSize scale; - RectSize screenSize; - int bmp_width, bmp_height; - - screenSize.height = spatial_info.size.height; - screenSize.width = spatial_info.size.width; - - screenSize.width *= screenScale; - screenSize.height *= screenScale; - - pageSize = measurePage(doc, page); - scale = fitPageToScreen(pageSize, screenSize); - pctm = fz_scale(pctm, scale.width * spatial_info.scale_factor, scale.height * spatial_info.scale_factor); - bmp_width = pageSize.width * scale.width * spatial_info.scale_factor; - bmp_height = pageSize.height * scale.height * spatial_info.scale_factor; - *width = bmp_width; - *height = bmp_height; - - /* Y is flipped for some reason */ - ctm.f = bmp_height; - ctm.d = -ctm.d; - - /* Allocate space for bmp */ - Array<unsigned char>^ bmp_data = - ref new Array<unsigned char>(bmp_height * 4 * bmp_width); - /* Set up the memory stream */ - InMemoryRandomAccessStream ^ras = ref new InMemoryRandomAccessStream(); - DataWriter ^dw = ref new DataWriter(ras->GetOutputStreamAt(0)); - //m_memory_use += bmp_height * 4 * bmp_width; - /* Go ahead and write our header data into the memory stream */ - Prepare_bmp(bmp_width, bmp_height, dw); - /* Now get a pointer to our samples and pass it to fitz to use */ - pix = fz_new_pixmap_with_data(ctx, fz_device_bgr, bmp_width, bmp_height, &(bmp_data[0])); - fz_clear_pixmap_with_value(ctx, pix, 255); - dev = fz_new_draw_device(ctx, pix); - fz_run_page(doc, page, dev, pctm, NULL); - fz_free_device(dev); - /* Now the data into the memory stream */ - PixToMemStream(dw, bmp_data); - /* Return raster stream */ - return ras; -} - -task<Canvas^> RenderPage_Task(fz_document *doc, int page_num, int *width, int *height, - spatial_info_t spatial_info, ImageBrush^ *renderedImage) -{ - fz_page *page = fz_load_page(doc, page_num); - int width_val, height_val; - auto p = std::make_shared<std::pair<int,int>>(-1,-1); - - /* This will launch rendering on another thread */ - auto t = create_task([spatial_info, page_num, doc, page, width, height, p]()-> InMemoryRandomAccessStream^ - { - InMemoryRandomAccessStream^ ras; - - /* Get raster bitmap stream */ - ras = RenderBitMap(doc, page, &(p->first), &(p->second), spatial_info); - *width = p->first; - *height = p->second; - - return ras; - }); - return t.then([renderedImage, doc, page, p](task<InMemoryRandomAccessStream^> the_task) - { - /* And store in a new image brush. Note: creation of WriteableBitmap - MUST be done by the UI thread. */ - InMemoryRandomAccessStream^ ras; - - assert(IsMainThread()); - try - { - ras = the_task.get(); - } - catch (const task_canceled& e) - { - return (Canvas^) nullptr; - } - WriteableBitmap ^bmp = ref new WriteableBitmap(p->first, p->second); - bmp->SetSource(ras); - *renderedImage = ref new ImageBrush(); - (*renderedImage)->Stretch = Windows::UI::Xaml::Media::Stretch::None; - (*renderedImage)->ImageSource = bmp; - Canvas^ ret_Canvas = ref new Canvas(); - ret_Canvas->Width = p->first; - ret_Canvas->Height = p->second; - ret_Canvas->Background = *renderedImage; - fz_free_page(doc, page); - return ret_Canvas; - }, task_continuation_context::use_current()); -} - -Canvas^ RenderPage(fz_document *doc, fz_page *page, int *width, int *height, - spatial_info_t spatial_info, ImageBrush^ *renderedImage) -{ - InMemoryRandomAccessStream^ ras; - - /* Get raster bitmap stream */ - ras = RenderBitMap(doc, page, width, height, spatial_info); - - /* And store in a new image brush. Note: creation of WriteableBitmap - MUST be done by the UI thread. */ - WriteableBitmap ^bmp = ref new WriteableBitmap(*width, *height); - bmp->SetSource(ras); - *renderedImage = ref new ImageBrush(); - (*renderedImage)->Stretch = Windows::UI::Xaml::Media::Stretch::None; - (*renderedImage)->ImageSource = bmp; - Canvas^ ret_Canvas = ref new Canvas(); - ret_Canvas->Height = *height; - ret_Canvas->Width = *width; - ret_Canvas->Background = *renderedImage; - return ret_Canvas; -} - -void winapp::MainPage::SetupZoomCanvas() -{ - int height = this->ActualHeight; - int width = this->ActualWidth; - - CreateBlank(width, height); - xaml_zoomCanvas->Background = this->m_blankPage; - xaml_zoomCanvas->Background->Opacity = 0; - - /* Set the current flip view mode */ - if (height > width) - this->m_curr_flipView = xaml_vert_flipView; - else - this->m_curr_flipView = xaml_horiz_flipView; -} - -/* Clean up everything as we are opening a new document after having another - one open */ -void winapp::MainPage::CleanUp() -{ - /* Remove current pages in the flipviews */ - if (xaml_vert_flipView->Items->Size) - xaml_vert_flipView->Items->Clear(); - - if (xaml_horiz_flipView->Items->Size) - xaml_horiz_flipView->Items->Clear(); - - /* Clean up mupdf */ - if (m_doc != NULL) - fz_close_document(m_doc); - - this->m_curr_flipView = nullptr; - m_currpage = -1; - m_file_open = false; - m_doc = NULL; - m_slider_min = 0; - m_slider_max = 0; - m_init_done = false; - m_memory_use = 0; - m_zoom_mode = false; - m_from_doubleflip = false; - m_first_time = false; - m_insearch = false; - m_search_active = false; - m_sliderchange = false; - m_flip_from_searchlink = false; - m_num_pages = -1; - m_search_rect_count = 0; - ResetSearch(); - m_ren_status = REN_AVAILABLE; - m_thumb_page_start = 0; - m_thumb_page_stop = 0; - m_links_on = false; - - if (m_content.num) - { - //m_content.page->; - // m_content.string_margin->Dispose(); - //m_content.string_orig->Dispose(); - m_content.num = 0; - } - - m_curr_zoom = 1.0; - m_canvas_translate.X = 0; - m_canvas_translate.Y = 0; - - this->xaml_PageSlider->Minimum = m_slider_min; - this->xaml_PageSlider->Maximum = m_slider_max; - this->xaml_PageSlider->IsEnabled = false; -} - -/* Create the thumbnail images. This is started when we have space - on the render thread */ -void winapp::MainPage::RenderThumbs() -{ - spatial_info_t spatial_info = this->InitSpatial(1); - int num_pages = this->m_num_pages; - int thumb_pages = this->m_thumb_page_start; - int max_display = - max(spatial_info.size.height, spatial_info.size.width) * SCALE_THUMB; - cancellation_token_source cts; - auto token = cts.get_token(); - m_ThumbCancel = cts; - - this->m_ren_status = REN_THUMBS; - thumbs_t thumbnails = m_thumbnails; - - create_task([spatial_info, max_display, num_pages, thumb_pages, thumbnails, this]()-> int - { - spatial_info_t spatial_info_local = spatial_info; - InMemoryRandomAccessStream ^ras = ref new InMemoryRandomAccessStream(); - - for (int k = thumb_pages; k < num_pages; k++) - { - int width, height; - int max_page_size; - double scale_factor; - - fz_page *page = fz_load_page(m_doc, k); - // Get page size - spatial_info_local.scale_factor = 1; - PageSize(m_doc, page, &width, &height, spatial_info_local); - // Determine thumb scale factor - max_page_size = max(width, height); - scale_factor = (double) max_display/ (double) max_page_size; - spatial_info_local.scale_factor = 0.1; - thumbnails.raster[k] = RenderBitMap(m_doc, page, &width, &height, - spatial_info_local); - thumbnails.scale[k] = 0.1; - thumbnails.size[k].Y = height; - thumbnails.size[k].X = width; - if (is_task_cancellation_requested()) - { - /* Just return the pages that we have done so far.*/ - this->m_thumb_page_stop = k + 1; - cancel_current_task(); - } - } - return num_pages; /* all done with thumbnails! */ - }, token).then([this](task<int> the_task) - { - int new_end; - assert(IsMainThread()); - - try - { - new_end = the_task.get(); - } - catch (const task_canceled& e) - { - new_end = this->m_thumb_page_stop; - } - - int old_end = this->m_thumb_page_start; - - /* Now go ahead and create the proper stuctures */ - this->m_ren_status = REN_UPDATE_THUMB_CANVAS; - this->m_thumb_page_start = new_end; - - for (int k = old_end; k < new_end; k++) - { - /* See if we already have something here as the main thread - may have already put in place the full scale image. Since this - operation is done on the main thread we should be safe here - from race conditions. Creation of bmp has to be done in ui thread */ - FlipViewItem ^flipview_temp_v = (FlipViewItem^) xaml_vert_flipView->Items->GetAt(k); - FlipViewItem ^flipview_temp_h = (FlipViewItem^) xaml_horiz_flipView->Items->GetAt(k); - FlipViewItem ^flipview_temp_curr = (FlipViewItem^) m_curr_flipView->Items->GetAt(k); - - WriteableBitmap ^bmp = ref new WriteableBitmap(m_thumbnails.size[k].Y, m_thumbnails.size[k].X); - bmp->SetSource(m_thumbnails.raster[k]); - ImageBrush^ renderedImage = ref new ImageBrush(); - renderedImage->Stretch = Windows::UI::Xaml::Media::Stretch::Fill; - renderedImage->ImageSource = bmp; - /* Different flip view items cannot share the same canvas */ - m_thumbnails.canvas_h[k] = ref new Canvas(); - m_thumbnails.canvas_h[k]->Height = m_thumbnails.size[k].Y / m_thumbnails.scale[k]; - m_thumbnails.canvas_h[k]->Width = m_thumbnails.size[k].X / m_thumbnails.scale[k]; - m_thumbnails.canvas_h[k]->Background = renderedImage; - m_thumbnails.canvas_v[k] = ref new Canvas(); - m_thumbnails.canvas_v[k]->Height = m_thumbnails.size[k].Y / m_thumbnails.scale[k]; - m_thumbnails.canvas_v[k]->Width = m_thumbnails.size[k].X / m_thumbnails.scale[k]; - m_thumbnails.canvas_v[k]->Background = renderedImage; - if (flipview_temp_curr->Background != nullptr) - { - flipview_temp_h->Content = m_thumbnails.canvas_h[k]; - flipview_temp_v->Content = m_thumbnails.canvas_v[k]; - } - } - this->m_ren_status = REN_AVAILABLE; - }, task_continuation_context::use_current()); -} - -void winapp::MainPage::OpenDocumentPrep(StorageFile^ file) -{ - if (this->m_num_pages != -1) - { - m_init_done = false; - /* If the thumbnail thread is running then we need to end that first */ - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - - /* Create a task to wait until the renderer is available, then clean up then open */ - auto t = create_task([ren_status, ThumbCancel]()->int - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - return 0; - }).then([this](task<int> the_task) - { - CleanUp(); - return 0; - }, task_continuation_context::use_current()).then([this, file](task<int> the_task) - { - OpenDocument(file); - }, task_continuation_context::use_current()); - } - else - { - OpenDocument(file); - } -} - -void winapp::MainPage::OpenDocument(StorageFile^ file) -{ - String^ path = file->Path; - const wchar_t *w = path->Data(); - int cb = WideCharToMultiByte(CP_UTF8, 0, w, -1, nullptr, 0, nullptr, nullptr); - char* name = new char[cb]; - - WideCharToMultiByte(CP_UTF8, 0, w ,-1 ,name ,cb ,nullptr, nullptr); - char *ext = strrchr(name, '.'); - - this->SetupZoomCanvas(); - auto ui = task_continuation_context::use_current(); - - create_task(file->OpenAsync(FileAccessMode::Read)).then([this, file, ext, ui](task<IRandomAccessStream^> task) - { - try - { - IRandomAccessStream^ readStream = task.get(); - UINT64 const size = readStream->Size; - win_stream.stream = readStream; - - if (size <= MAXUINT32) - { - /* assign data reader to stream object */ - fz_stream *str; - - str = fz_new_stream(ctx, 0, win_read_file, win_close_file); - str->seek = win_seek_file; - str->state = reinterpret_cast <void*> (&win_stream); - - /* Now lets see if we can render the file */ - m_doc = fz_open_document_with_stream(ctx, ext, str); - m_num_pages = m_doc->count_pages(m_doc); - - if ((m_currpage) >= m_num_pages) - { - m_currpage = m_num_pages - 1; - } - else if (m_currpage < 0) - { - m_currpage = 0; - } - - /* Set up both flip views and intialize with blank pages */ - FlipView^ temp_flip; - if (this->m_curr_flipView == xaml_vert_flipView) - temp_flip = xaml_horiz_flipView; - else - temp_flip = xaml_vert_flipView; - - /* Initialize all the flipvew items */ - for (int k = 0; k < m_num_pages; k++) - { - AddBlankPage(k, xaml_horiz_flipView); - AddBlankPage(k, xaml_vert_flipView); - } - /* Do the current page now though */ - int height, width; - spatial_info_t spatial_info = InitSpatial(1); - - for (int k = 0; k < LOOK_AHEAD + 2; k++) - { - if (m_num_pages > k ) - { - fz_page *page = fz_load_page(m_doc, k); - this->m_renderedCanvas = RenderPage(m_doc, page, &width, - &height, spatial_info, - &m_renderedImage); - ReplacePage(k); - fz_free_page(m_doc, page); - } - } - - /* Update the slider settings, if more than one page */ - if (m_num_pages > 1) - { - this->xaml_PageSlider->Maximum = m_num_pages; - this->xaml_PageSlider->Minimum = 1; - this->xaml_PageSlider->IsEnabled = true; - } - else - { - this->xaml_PageSlider->Maximum = 0; - this->xaml_PageSlider->Minimum = 0; - this->xaml_PageSlider->IsEnabled = false; - } - this->m_init_done = true; - } - else - { - delete readStream; - } - } - catch(COMException^ ex) { - this->HandleFileNotFoundException(ex); - } - }).then([this, ui]() - { - InitThumbnails(); - this->RenderThumbs(); - }); -} - -task<int> winapp::MainPage::RenderRange(int curr_page, int *height, int *width) -{ - /* Render +/- the look ahead from where we are if blank page is present */ - spatial_info_t spatial_info = InitSpatial(1); - - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - - /* Create a task to wait until the renderer is available */ - auto t = create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }); - - return t.then([this, height, width, curr_page, spatial_info]() - { - assert(IsMainThread()); - int val = 0; - /* This runs on the main ui thread */ - for (int k = curr_page - LOOK_AHEAD; k <= curr_page + LOOK_AHEAD; k++) - { - if (k >= 0 && k < m_num_pages) - { - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(k); - if (flipview_temp->Background == this->m_blankPage) - { - fz_page *page = fz_load_page(m_doc, k); - this->m_ren_status = REN_PAGE; - m_renderedCanvas = RenderPage(m_doc, page, width, height, - spatial_info, &m_renderedImage); - ReplacePage(k); - fz_free_page(m_doc, page); - this->m_ren_status = REN_AVAILABLE; - } - } - } - - Canvas^ link_canvas = (Canvas^) (this->FindName("linkCanvas")); - if (link_canvas != nullptr) - { - Canvas^ Parent_Canvas = (Canvas^) link_canvas->Parent; - if (Parent_Canvas != nullptr) - { - Parent_Canvas->Children->RemoveAtEnd(); - delete link_canvas; - } - } - - RectSize rectsize = this->currPageSize(curr_page); - *height = rectsize.height; - *width = rectsize.width; - m_currpage = curr_page; - if (this->m_links_on) - { - fz_drop_link(ctx, this->m_links); - AddLinkCanvas(); - } - /* Check if thumb rendering is done. If not then restart */ - if (this->m_num_pages != this->m_thumb_page_start) - this->RenderThumbs(); - return val; - }, task_continuation_context::use_current()); -} - -void winapp::MainPage::Slider_Released(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e) -{ - int height, width; - int newValue = (int) this->xaml_PageSlider->Value - 1; /* zero based */ -} - -void winapp::MainPage::Slider_ValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e) -{ - int newValue = (int) this->xaml_PageSlider->Value - 1; /* zero based */ - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - auto ui = task_continuation_context::use_current(); - - if (m_update_flip) - { - m_update_flip = false; - return; - } - - if (m_init_done && this->xaml_PageSlider->IsEnabled) - { - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(newValue); - if (flipview_temp->Background == this->m_blankPage) - { - create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }).then([this, newValue]() - { - int width, height; - fz_page *page = fz_load_page(m_doc, newValue); - spatial_info_t spatial_info = InitSpatial(1); - this->m_ren_status = REN_PAGE; - m_renderedCanvas = RenderPage(m_doc, page, &width, &height, spatial_info, - &m_renderedImage); - ReplacePage(newValue); - this->m_ren_status = REN_AVAILABLE; - this->m_currpage = newValue; - fz_free_page(m_doc, page); - m_sliderchange = true; - this->m_curr_flipView->SelectedIndex = newValue; - ResetSearch(); - }, ui); - } - } -} - -void winapp::MainPage::FlipView_SelectionChanged(Object^ sender, SelectionChangedEventArgs^ e) -{ - int pos = this->m_curr_flipView->SelectedIndex; - int height, width; - - m_update_flip = true; - if (xaml_PageSlider->IsEnabled) - { - xaml_PageSlider->Value = pos; - } - if (pos >= 0) - { - if (m_flip_from_searchlink) - { - m_flip_from_searchlink = false; - return; - } - else if (m_sliderchange) - { - m_sliderchange = false; - return; - } - else - { - ResetSearch(); - } - if (m_init_done) - { - /* Get the current page */ - int curr_page = this->m_currpage; - task<int> task = this->RenderRange(pos, &height, &width); - task.then([this, curr_page, pos](int val) - { - this->ReleasePages(curr_page, pos); - }, task_continuation_context::use_current()); - } - } -} - -void winapp::MainPage::Canvas_ManipulationStarting(Object^ sender, ManipulationStartingRoutedEventArgs^ e) -{ - bool handled; - - e->GetType(); - handled = e->Handled; -} - -void winapp::MainPage::Canvas_ManipulationStarted(Object^ sender, ManipulationStartedRoutedEventArgs^ e) -{ - this->m_touchpoint = e->Position; -} - -void winapp::MainPage::Canvas_ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e) -{ - if (m_scaling_occured) - { - int width, height; - int pos = this->m_curr_flipView->SelectedIndex; - fz_page *page = fz_load_page(m_doc, pos); - spatial_info_t spatial_info = InitSpatial(m_curr_zoom); - - m_renderedCanvas = RenderPage(m_doc, page, &width, &height, spatial_info, - &m_renderedImage); - this->xaml_zoomCanvas->Background = this->m_renderedImage; - m_renderedImage->Stretch = Windows::UI::Xaml::Media::Stretch::None; - - this->xaml_zoomCanvas->Width = width; - this->xaml_zoomCanvas->Height = height; - } -} - -void winapp::MainPage::Canvas_ManipulationDelta(Object^ sender, ManipulationDeltaRoutedEventArgs^ e) -{ - int width, height; - - m_changes = e->Cumulative; - if (e->Delta.Scale != 1 || m_first_time) - { - /* Render at scaled resolution */ - int pos = this->m_curr_flipView->SelectedIndex; - fz_page *page = fz_load_page(m_doc, pos); - spatial_info_t spatial_info = InitSpatial(m_curr_zoom); - - m_curr_zoom = m_curr_zoom * e->Delta.Scale; - if (m_curr_zoom < MIN_SCALE) m_curr_zoom = MIN_SCALE; - if (m_curr_zoom > MAX_SCALE) m_curr_zoom = MAX_SCALE; - if (m_first_time) - { - m_renderedCanvas = RenderPage(m_doc, page, &width, &height, spatial_info, - &m_renderedImage); - this->xaml_zoomCanvas->Background = this->m_renderedImage; - m_renderedImage->Stretch = Windows::UI::Xaml::Media::Stretch::None; - } - else - { - PageSize(m_doc, page, &width, &height, spatial_info); - m_renderedImage->Stretch = Windows::UI::Xaml::Media::Stretch::Fill; - } - this->xaml_zoomCanvas->Width = width; - this->xaml_zoomCanvas->Height = height; - m_zoom_size.X = width; - m_zoom_size.Y = height; - m_first_time = false; - m_scaling_occured = true; - } - - TranslateTransform ^trans_transform = ref new TranslateTransform(); - m_canvas_translate.X += e->Delta.Translation.X; - m_canvas_translate.Y += e->Delta.Translation.Y; - - if (m_canvas_translate.Y > ((this->ActualHeight + m_zoom_size.Y) / 2 - MARGIN_BUFF) ) - { - m_canvas_translate.Y = (this->ActualHeight + m_zoom_size.Y) / 2 - MARGIN_BUFF; - } - if (m_canvas_translate.Y < (MARGIN_BUFF - (this->ActualHeight + m_zoom_size.Y) / 2) ) - { - m_canvas_translate.Y = MARGIN_BUFF - (this->ActualHeight + m_zoom_size.Y) / 2; - } - if (m_canvas_translate.X > ((this->ActualWidth + m_zoom_size.X) / 2 - MARGIN_BUFF)) - { - m_canvas_translate.X = (this->ActualWidth + m_zoom_size.X) / 2 - MARGIN_BUFF; - } - - if (m_canvas_translate.X < (MARGIN_BUFF - (this->ActualWidth + m_zoom_size.X) / 2)) - { - m_canvas_translate.X = (MARGIN_BUFF - (this->ActualWidth + m_zoom_size.X) / 2); - } - - trans_transform->X = m_canvas_translate.X; - trans_transform->Y = m_canvas_translate.Y; - this->xaml_zoomCanvas->RenderTransform = trans_transform; -} - -void winapp::MainPage::FlipView_Double(Object^ sender, DoubleTappedRoutedEventArgs^ e) -{ - if (!m_zoom_mode && this->m_num_pages != -1) - { - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - - /* Create a task to wait until the renderer is available */ - auto t = create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }).then([this]() - { - m_zoom_mode = true; - int pos = this->m_curr_flipView->SelectedIndex; - int width, height; - fz_page *page = fz_load_page(m_doc, pos); - spatial_info_t spatial_info = InitSpatial(1); - - m_renderedCanvas = RenderPage(m_doc, page, &width, &height, spatial_info, - &m_renderedImage); - m_renderedImage->Stretch = Windows::UI::Xaml::Media::Stretch::None; - this->xaml_zoomCanvas->Background = m_renderedImage; - - this->xaml_zoomCanvas->Width = width; - this->xaml_zoomCanvas->Height = height; - - m_curr_flipView->IsEnabled = false; - this->xaml_zoomCanvas->Background->Opacity = 1; - this->m_curr_flipView->Opacity = 0.0; - m_first_time = true; - m_from_doubleflip = true; - m_curr_zoom = 1.0; - }, task_continuation_context::use_current()); - } -} - -void winapp::MainPage::Canvas_Double(Object^ sender, DoubleTappedRoutedEventArgs^ e) -{ - TranslateTransform ^trans_transform = ref new TranslateTransform(); - - if (m_zoom_mode && !m_from_doubleflip) - { - m_zoom_mode = false; - int pos = this->m_curr_flipView->SelectedIndex; - - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(pos); - Canvas^ Curr_Canvas = (Canvas^) (flipview_temp->Content); - - if (this->xaml_zoomCanvas->Background != Curr_Canvas->Background) - this->xaml_zoomCanvas->Background->Opacity = 0; - else - this->xaml_zoomCanvas->Background = nullptr; - this->m_curr_flipView->Opacity = 1; - m_curr_flipView->IsEnabled = true; - this->xaml_zoomCanvas->Height = this->ActualHeight; - this->xaml_zoomCanvas->Width = this->ActualWidth; - trans_transform->X = 0; - trans_transform->Y = 0; - m_canvas_translate.X = 0; - m_canvas_translate.Y = 0; - this->xaml_zoomCanvas->RenderTransform = trans_transform; - } - m_from_doubleflip = false; -} - -/* Search Related Code */ - -static int hit_count = 0; -static fz_rect hit_bbox[MAX_SEARCH]; - -static int -search_page(fz_document *doc, int number, char *needle, fz_cookie *cookie) -{ - fz_page *page = fz_load_page(doc, number); - - fz_text_sheet *sheet = fz_new_text_sheet(ctx); - fz_text_page *text = fz_new_text_page(ctx, &fz_empty_rect); - fz_device *dev = fz_new_text_device(ctx, sheet, text); - fz_run_page(doc, page, dev, &fz_identity, cookie); - fz_free_device(dev); - - hit_count = fz_search_text_page(ctx, text, needle, hit_bbox, nelem(hit_bbox));; - - fz_free_text_page(ctx, text); - fz_free_text_sheet(ctx, sheet); - fz_free_page(doc, page); - - return hit_count; -} - -void winapp::MainPage::Searcher(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - /* Update the app bar so that we can do the search */ - StackPanel^ leftPanel = (StackPanel^) this->TopAppBar->FindName("LeftPanel"); - - if (leftPanel != nullptr && m_insearch) - { - m_insearch = false; - leftPanel->Children->RemoveAtEnd(); - leftPanel->Children->RemoveAtEnd(); - leftPanel->Children->RemoveAtEnd(); - } - else if (leftPanel != nullptr && !m_insearch) - { - /* Search is not going to work in snapped view for now to simplify UI - in this cramped case. So see if we can get out of snapped mode. */ - - if (!EnsureUnsnapped()) - return; - - m_insearch = true; - Windows::UI::Xaml::Controls::Button^ PrevButton = ref new Button(); - PrevButton->Style = safe_cast<Windows::UI::Xaml::Style^>(App::Current->Resources->Lookup("PreviousAppBarButtonStyle")); - PrevButton->Click += ref new RoutedEventHandler(this, &winapp::MainPage::SearchPrev); - - Windows::UI::Xaml::Controls::Button^ NextButton = ref new Button(); - NextButton->Style = safe_cast<Windows::UI::Xaml::Style^>(App::Current->Resources->Lookup("NextAppBarButtonStyle")); - NextButton->Click += ref new RoutedEventHandler(this, &winapp::MainPage::SearchNext); - - Windows::UI::Xaml::Controls::TextBox^ SearchBox = ref new TextBox(); - SearchBox->Name = "findBox"; - SearchBox->Width = 200; - SearchBox->Height = 20; - - leftPanel->Children->Append(SearchBox); - leftPanel->Children->Append(PrevButton); - leftPanel->Children->Append(NextButton); - } -} - -void winapp::MainPage::ShowSearchResults(SearchResult_t result) -{ - int height, width; - int old_page = this->m_currpage; - int new_page = result.page_num; - spatial_info_t spatial_info = InitSpatial(1); - - //task<int> task = this->RenderRange(new_page, &height, &width); - this->m_ren_status = REN_PAGE; - task<Canvas^> the_task = RenderPage_Task(m_doc, new_page, &width, &height, - spatial_info, &m_renderedImage); - the_task.then([this, old_page, new_page](task<Canvas^> the_task) - { - assert(IsMainThread()); - - try - { - this->m_renderedCanvas = the_task.get(); - } - catch (const task_canceled& e) - { - this->m_renderedCanvas = nullptr; - } - ReplacePage(new_page); - this->m_ren_status = REN_AVAILABLE; - this->ReleasePages(old_page, new_page); - }, task_continuation_context::use_current()).then([this, result]() - - { - /* Once the rendering is done launch this task to show the result */ - RectSize screenSize; - RectSize pageSize; - RectSize scale; - - if (this->m_links_on) - { - fz_drop_link(ctx, this->m_links); - AddLinkCanvas(); - } - fz_page *page = fz_load_page(m_doc, result.page_num); - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(result.page_num); - Canvas^ results_Canvas = (Canvas^) (flipview_temp->Content); - - m_searchpage = result.page_num; - - screenSize.height = this->ActualHeight; - screenSize.width = this->ActualWidth; - - screenSize.width *= screenScale; - screenSize.height *= screenScale; - - pageSize = measurePage(m_doc, page); - scale = fitPageToScreen(pageSize, screenSize); - - /* Now add the rects */ - for (int k = 0; k < result.box_count && k < MAX_SEARCH; k++) - { - /* Create a new ref counted Rectangle */ - Rectangle^ a_rectangle = ref new Rectangle(); - TranslateTransform ^trans_transform = ref new TranslateTransform(); - a_rectangle->Width = hit_bbox[k].x1 - hit_bbox[k].x0; - a_rectangle->Height = hit_bbox[k].y1 - hit_bbox[k].y0; - trans_transform->X = hit_bbox[k].x0 * scale.width; - trans_transform->Y = hit_bbox[k].y0 * scale.height; - a_rectangle->Width *= scale.width; - a_rectangle->Height *= scale.height; - a_rectangle->RenderTransform = trans_transform; - a_rectangle->Fill = m_textcolor_brush; - results_Canvas->Children->Append(a_rectangle); - m_search_rect_count += 1; - } - if (result.box_count > 0) - { - m_flip_from_searchlink = true; - this->m_curr_flipView->SelectedIndex = result.page_num; - m_currpage = result.page_num; - } - }, task_continuation_context::use_current()); -} - -void winapp::MainPage::SearchNext(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - StackPanel^ leftPanel = (StackPanel^) this->TopAppBar->FindName("LeftPanel"); - TextBox^ findBox = (TextBox^) leftPanel->FindName("findBox"); - String^ textToFind = findBox->Text; - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - - /* Create a task to wait until the renderer is available */ - create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }).then([this, textToFind]() - { - if (this->m_search_active == false) - SearchInDirection(1, textToFind); - }, task_continuation_context::use_current()); -} - -void winapp::MainPage::SearchPrev(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - StackPanel^ leftPanel = (StackPanel^) this->TopAppBar->FindName("LeftPanel"); - TextBox^ findBox = (TextBox^) leftPanel->FindName("findBox"); - String^ textToFind = findBox->Text; - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - - /* Create a task to wait until the renderer is available */ - create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }).then([this, textToFind]() - { - if (this->m_search_active == false) - SearchInDirection(-1, textToFind); - }, task_continuation_context::use_current()); -} - -void winapp::MainPage::CancelSearch(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - m_searchcts.cancel(); -} - -void winapp::MainPage::ResetSearch(void) -{ - m_searchpage = -1; -#if 0 - wchar_t buf[20]; - String^ TempString = ref new String(buf); - - /* Remove all the rects */ - for (int k = 0; k < this->m_search_rect_count; k++) - { - unsigned int index; - int len = swprintf_s(buf, 20, L"%s_%d", L"Rect",k); - Rectangle^ curr_rect = (Rectangle^) (m_curr_flipView->FindName(TempString)); - if (curr_rect != nullptr) - { - Canvas^ results_Canvas = (Canvas^) curr_rect->Parent; - results_Canvas->Children->IndexOf(curr_rect, &index); - results_Canvas->Children->RemoveAt(index); - } - } -#endif -} - -void winapp::MainPage::SearchInDirection(int dir, String^ textToFind) -{ - int start; - const wchar_t *w = textToFind->Data(); - int cb = WideCharToMultiByte(CP_UTF8, 0, textToFind->Data(), -1, nullptr, 0, nullptr, nullptr); - char* needle = new char[cb]; - fz_document *local_doc = m_doc; - - cancellation_token_source cts; - auto token = cts.get_token(); - m_searchcts = cts; - SearchResult_t result; - int pos = m_currpage; - - result.box_count = 0; - result.page_num = -1; - - WideCharToMultiByte(CP_UTF8, 0, textToFind->Data() ,-1 ,needle ,cb ,nullptr, nullptr); - - if (m_searchpage == pos) - start = pos + dir; - else - start = pos; - - /* ProgressBar^ my_xaml_Progress = (ProgressBar^) (this->FindName("xaml_Progress")); - my_xaml_Progress->Value = start; - my_xaml_Progress->IsEnabled = true; - my_xaml_Progress->Opacity = 1.0; */ - - /* ProgressBar^ my_bar = (ProgressBar^) (xaml_MainGrid->FindName("search_progress")); - - if (my_bar == nullptr) - { - my_bar = ref new ProgressBar(); - my_bar->Name = "search_progress"; - my_bar->Maximum = this->m_num_pages; - my_bar->Value = start; - my_bar->IsIndeterminate = false; - my_bar->Height = 10; - my_bar->Width = 400; - xaml_MainGrid->Children->Append(my_bar); - } - else - { - my_bar->Value = start; - } */ - this->m_search_active = true; - - /* Do task lambdas here to avoid UI blocking issues */ - auto search_task = create_task([this, needle, dir, start, local_doc, &result]()->SearchResult_t - { - for (int i = start; i >= 0 && i < fz_count_pages(local_doc); i += dir) - { - result.box_count = search_page(local_doc, i, needle, NULL); - result.page_num = i; - - //my_xaml_Progress->Value = i; - if (result.box_count) - { - free(needle); - return result; - } - if (is_task_cancellation_requested()) - { - free(needle); - } - } - /* Todo no matches found alert */ - free(needle); - return result; - }, token); - /* Do the continuation on the ui thread */ - search_task.then([this](task<SearchResult_t> the_task) - { - SearchResult_t the_result = the_task.get(); - if (the_result.box_count > 0) - { - // ProgressBar^ xaml_Progress = (ProgressBar^) (this->FindName("xaml_Progress")); - // xaml_Progress->IsEnabled = false; - // xaml_Progress->Opacity = 0.0; - this->ShowSearchResults(the_result); - } - this->m_search_active = false; - }, task_continuation_context::use_current()); -} - -/* This is here to handle when we rotate or go into the snapview mode - ToDo add in data binding to change the scroll direction */ -void winapp::MainPage::GridSizeChanged() -{ - int height = this->ActualHeight; - int width = this->ActualWidth; - FlipView^ old_flip = m_curr_flipView; - - - if (TopAppBar1->IsOpen) - { - UpdateAppBarButtonViewState(); - } - - if (m_zoom_mode) - { - Canvas_Double(nullptr, nullptr); - } - if (height > width) - { - m_curr_flipView = this->xaml_vert_flipView; - if (!m_zoom_mode) - { - this->xaml_zoomCanvas->Height = height; - this->xaml_zoomCanvas->Width = width; - this->m_curr_flipView->Height = height; - this->m_curr_flipView->Width = width; - } - xaml_vert_flipView->IsEnabled = true; - xaml_vert_flipView->Opacity = 1; - xaml_horiz_flipView->IsEnabled = false; - xaml_horiz_flipView->Opacity = 0; } - else - { - m_curr_flipView = this->xaml_horiz_flipView; - if (!m_zoom_mode) - { - this->xaml_zoomCanvas->Height = height; - this->xaml_zoomCanvas->Width = width; - this->m_curr_flipView->Height = height; - this->m_curr_flipView->Width = width; - } - xaml_horiz_flipView->IsEnabled = true; - xaml_horiz_flipView->Opacity = 1; - xaml_vert_flipView->IsEnabled = false; - xaml_vert_flipView->Opacity = 0; - } - - if (xaml_RichText->Visibility == Windows::UI::Xaml::Visibility::Visible) - { - int height = xaml_OutsideGrid->ActualHeight; - int height_app = TopAppBar1->ActualHeight; - - xaml_RichText->Height = height - height_app; - } - - UpDatePageSizes(); - - if (m_num_pages > 0 && old_flip != m_curr_flipView && old_flip != nullptr) - { - if ((this->m_curr_flipView->SelectedIndex == this->m_currpage) && this->m_links_on) - FlipView_SelectionChanged(nullptr, nullptr); - else - this->m_curr_flipView->SelectedIndex = this->m_currpage; - } -} - -void winapp::MainPage::UpDatePageSizes() -{ - int width, height; - - /* Render our current pages at the new resolution and rescale the thumbnail - canvas if needed */ - if (m_num_pages > 0) - { - for (int i = 0; i < m_num_pages; i++) - { - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(i); - if (flipview_temp != nullptr && flipview_temp->Content != nullptr) - { - Canvas^ curr_canvas = (Canvas^) flipview_temp->Content; - int curr_canvas_height = curr_canvas->Height; - int curr_canvas_width = curr_canvas->Width; - - double scale_x = (double) curr_canvas_height / (double) this->xaml_zoomCanvas->Height; - double scale_y = (double) curr_canvas_width / (double) this->xaml_zoomCanvas->Width; - - double min_scale = max(scale_x, scale_y); - curr_canvas->Height = curr_canvas_height / min_scale; - curr_canvas->Width = curr_canvas_width / min_scale; - } - } - - // this->RenderRange(this->m_currpage, &height, &width); - } -}; - -void winapp::MainPage::ClearLinksCanvas() -{ - Canvas^ link_canvas = (Canvas^) (this->FindName("linkCanvas")); - if (link_canvas != nullptr) - { - Canvas^ Parent_Canvas = (Canvas^) link_canvas->Parent; - if (Parent_Canvas != nullptr) - { - Parent_Canvas->Children->RemoveAtEnd(); - delete link_canvas; - } - } -} - -/* Link related code */ -void winapp::MainPage::Linker(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - m_links_on = !m_links_on; - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - - if (m_links_on) - { - auto t = create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }); - - t.then([this]() - { - AddLinkCanvas(); - }, task_continuation_context::use_current()); - } - else - ClearLinksCanvas(); -} - -void winapp::MainPage::AddLinkCanvas() -{ - if (m_links_on) - { - ClearLinksCanvas(); - /* To render current page with links */ - fz_page *page = fz_load_page(m_doc, this->m_currpage); - m_links = fz_load_links(m_doc, page); - - if (m_links != NULL) - { - RectSize screenSize; - RectSize pageSize; - RectSize scale; - - screenSize.height = this->ActualHeight; - screenSize.width = this->ActualWidth; - - screenSize.width *= screenScale; - screenSize.height *= screenScale; - pageSize = measurePage(m_doc, page); - scale = fitPageToScreen(pageSize, screenSize); - - /* A new canvas */ - Canvas^ link_canvas = ref new Canvas(); - link_canvas->Name = "linkCanvas"; - - /* Get current flipview item */ - FlipViewItem ^flipview_temp = (FlipViewItem^) m_curr_flipView->Items->GetAt(this->m_currpage); - Canvas^ curr_canvas = (Canvas^) flipview_temp->Content; - - link_canvas->Height = curr_canvas->Height; - link_canvas->Width = curr_canvas->Width; - curr_canvas->Children->Append(link_canvas); - - /* Now add the rects */ - fz_link *curr_link = m_links; - fz_rect curr_rect; - - while (curr_link != NULL) - { - Rectangle^ a_rectangle = ref new Rectangle(); - TranslateTransform ^trans_transform = ref new TranslateTransform(); - - a_rectangle->IsTapEnabled = true; - curr_rect = curr_link->rect; - a_rectangle->Width = curr_rect.x1 - curr_rect.x0; - a_rectangle->Height = curr_rect.y1 - curr_rect.y0; - trans_transform->X = curr_rect.x0 * scale.width; - trans_transform->Y = curr_rect.y0 * scale.height; - a_rectangle->Width *= scale.width; - a_rectangle->Height *= scale.height; - a_rectangle->RenderTransform = trans_transform; - a_rectangle->Fill = m_linkcolor_brush; - link_canvas->Children->Append(a_rectangle); - curr_link = curr_link->next; - } - } - } -} - -bool winapp::MainPage::CheckRect(Rectangle^ curr_rect, Point pt) -{ - TranslateTransform ^trans_transform = (TranslateTransform^) curr_rect->RenderTransform; - Point rect_start; - Point rect_end; - - rect_start.X = trans_transform->X; - rect_start.Y = trans_transform->Y; - rect_end.X = rect_start.X + curr_rect->Width; - rect_end.Y = rect_start.Y + curr_rect->Height; - if ((rect_start.X < pt.X) && (pt.X < rect_end.X) && (rect_start.Y < pt.Y) && (pt.Y < rect_end.Y)) - return true; - return false; -} - -void winapp::MainPage::Canvas_Single_Tap(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e) -{ - /* See if we are currently viewing any links */ - if (m_links_on) - { - Point pt; - Canvas^ link_canvas = (Canvas^) (m_curr_flipView->FindName("linkCanvas")); - if (link_canvas != nullptr) - { - pt = e->GetPosition(link_canvas); - IIterator<UIElement^> ^it = link_canvas->Children->First(); - int count = 0; - while (it->HasCurrent) - { - Rectangle^ curr_rect = (Rectangle^) (it->Current); - if (CheckRect(curr_rect, pt)) - { - int page = JumpToLink(count); - if (page >= 0) - this->m_curr_flipView->SelectedIndex = page; - return; - } - it->MoveNext(); - count += 1; - } - } - } -} - -/* Window string hurdles.... */ -String^ char_to_String(char *char_in) -{ - size_t size = MultiByteToWideChar(CP_UTF8, 0, char_in, -1, NULL, 0); - wchar_t *pw; - pw = new wchar_t[size]; - if (!pw) - { - delete []pw; - return nullptr; - } - MultiByteToWideChar (CP_UTF8, 0, char_in, -1, pw, size ); - String^ str_out = ref new String(pw); - delete []pw; - return str_out; -} - -int winapp::MainPage::JumpToLink(int index) -{ - fz_link *link = this->m_links; - - /* Get through the list */ - for (int k = 0; k < index; k++) - link = link->next; - - if (link->dest.kind == FZ_LINK_GOTO) - { - return link->dest.ld.gotor.page; - } - else if (link->dest.kind == FZ_LINK_URI) - { - String^ str = char_to_String(link->dest.ld.uri.uri); - // The URI to launch - auto uri = ref new Windows::Foundation::Uri(str); - // Set the option to show a warning - auto launchOptions = ref new Windows::System::LauncherOptions(); - launchOptions->TreatAsUntrusted = true; - - // Launch the URI with a warning prompt - concurrency::task<bool> launchUriOperation(Windows::System::Launcher::LaunchUriAsync(uri, launchOptions)); - launchUriOperation.then([](bool success) - { - if (success) - { - // URI launched - } - else - { - // URI launch failed - } - }); - return -1; - } -} - -void winapp::MainPage::FlattenOutline(fz_outline *outline, int level) -{ - char indent[8*4+1]; - if (level > 8) - level = 8; - memset(indent, ' ', level * 4); - indent[level * 4] = 0; - - String^ indent_str = char_to_String(indent); - String^ str_indent; - - while (outline) - { - if (outline->dest.kind == FZ_LINK_GOTO) - { - int page = outline->dest.ld.gotor.page; - if (page >= 0 && outline->title) - { - /* Add to the contents */ - m_content.page->Append(page); - String^ str = char_to_String(outline->title); - m_content.string_orig->Append(str); - str_indent = str_indent->Concat(indent_str, str); - m_content.string_margin->Append(str_indent); - m_content.num += 1; - } - } - FlattenOutline(outline->down, level + 1); - outline = outline->next; - } -} - -/* Bring up the contents */ -void winapp::MainPage::ContentDisplay(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - if (this->m_num_pages < 0 || m_zoom_mode) return; - - if (this->xaml_ListView->IsEnabled) - { - this->xaml_ListView->Opacity = 0.0; - this->xaml_ListView->IsEnabled = false; - this->m_curr_flipView->Opacity = 1.0; - this->m_curr_flipView->IsEnabled = true; - } - else - { - if (!m_content.num) - { - /* Make sure we are good to go */ - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - fz_outline *root = NULL; - - /* Create a task to wait until the renderer is available */ - auto t = create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }).then([this, &root]() - { - root = fz_load_outline(m_doc); - if (root) - { - /* Flatten here if needed */ - m_content.page = ref new Vector<int>; - m_content.string_margin = ref new Vector<String^>; - m_content.string_orig = ref new Vector<String^>; - - - FlattenOutline(root, 0); - fz_free_outline(ctx, root); - - /* Bring up the content now */ - for (int k = 0; k < m_content.num; k++) - { - auto content_val = ref new LVContents; - content_val->Page = m_content.page->GetAt(k); - content_val->ContentItem = m_content.string_margin->GetAt(k); - this->xaml_ListView->Items->Append(content_val); - } - } - if (m_content.num) - { - this->xaml_ListView->Opacity = 1.0; - this->xaml_ListView->IsEnabled = true; - this->m_curr_flipView->Opacity = 0.0; - this->m_curr_flipView->IsEnabled = false; - } - /* Check if thumb rendering is done. If not then restart */ - if (this->m_num_pages != this->m_thumb_page_start) - this->RenderThumbs(); - }, task_continuation_context::use_current()); - } - else - { - this->xaml_ListView->Opacity = 1.0; - this->xaml_ListView->IsEnabled = true; - this->m_curr_flipView->Opacity = 0.0; - this->m_curr_flipView->IsEnabled = false; - } - } - -} - -void winapp::MainPage::ContentSelected(Platform::Object^ sender, Windows::UI::Xaml::Controls::ItemClickEventArgs^ e) -{ - - LVContents^ b = safe_cast<LVContents^>(e->ClickedItem); - int newpage = b->Page; - - if (newpage > -1 && newpage < this->m_num_pages) - { - this->xaml_ListView->Opacity = 0.0; - this->xaml_ListView->IsEnabled = false; - this->m_curr_flipView->Opacity = 1.0; - this->m_curr_flipView->IsEnabled = true; - - int old_page = this->m_currpage; - this->m_curr_flipView->SelectedIndex = newpage; - this->m_currpage = newpage; - } -} - -void winapp::MainPage::Reflower(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - - if (this->m_num_pages < 0) return; - - if (xaml_RichText->Visibility == Windows::UI::Xaml::Visibility::Visible) - { - /* Go back to flip view */ - xaml_RichText->Visibility = Windows::UI::Xaml::Visibility::Collapsed; - this->xaml_MainGrid->Opacity = 1.0; - this->m_curr_flipView->IsEnabled = true; - xaml_RichGrid->Visibility = Windows::UI::Xaml::Visibility::Collapsed; - xaml_RichGrid->Opacity = 0.0; - - } - else if (this->m_curr_flipView->IsEnabled) - { - /* Only go from flip view to reflow */ - RenderingStatus_t *ren_status = &m_ren_status; - cancellation_token_source *ThumbCancel = &m_ThumbCancel; - /* Create a task to wait until the renderer is available */ - auto t = create_task([ren_status, ThumbCancel]() - { - if (*ren_status == REN_THUMBS) - ThumbCancel->cancel(); - while (*ren_status != REN_AVAILABLE) { - } - }).then([this]() - { - fz_rect bounds; - fz_output *out; - fz_page *page = fz_load_page(m_doc, this->m_currpage); - fz_text_sheet *sheet = fz_new_text_sheet(ctx); - fz_text_page *text = fz_new_text_page(ctx, &fz_empty_rect); - fz_device *dev = fz_new_text_device(ctx, sheet, text); - - fz_run_page(m_doc, page, dev, &fz_identity, NULL); - fz_free_device(dev); - dev = NULL; - fz_text_analysis(ctx, sheet, text); - fz_buffer *buf = fz_new_buffer(ctx, 256); - out = fz_new_output_buffer(ctx, buf); - fz_print_text_page(ctx, out, text); - xaml_RichText->Visibility = Windows::UI::Xaml::Visibility::Visible; - this->xaml_MainGrid->Opacity = 0.0; - this->m_curr_flipView->IsEnabled = false; - String^ html_string = char_to_String((char*) buf->data); - - xaml_RichGrid->Visibility = Windows::UI::Xaml::Visibility::Visible; - xaml_RichGrid->Opacity = 1.0; - int height = xaml_OutsideGrid->ActualHeight; - int height_app = TopAppBar1->ActualHeight; - - xaml_RichText->Height = height - height_app; - this->xaml_RichText->Document->SetText(Windows::UI::Text::TextSetOptions::FormatRtf, html_string); - - /* Check if thumb rendering is done. If not then restart */ - if (this->m_num_pages != this->m_thumb_page_start) - this->RenderThumbs(); - }, task_continuation_context::use_current()); - } -} - -/* Need to handle resizing of app bar to make sure everything fits */ - -void winapp::MainPage::topAppBar_Loaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - UpdateAppBarButtonViewState(); -} - -void winapp::MainPage::UpdateAppBarButtonViewState() -{ - String ^viewState = Windows::UI::ViewManagement::ApplicationView::Value.ToString(); - VisualStateManager::GoToState(Search, viewState, true); - VisualStateManager::GoToState(Contents, viewState, true); - VisualStateManager::GoToState(Links, viewState, true); - VisualStateManager::GoToState(Reflow, viewState, true); - VisualStateManager::GoToState(Help, viewState, true); -}
\ No newline at end of file diff --git a/winrt/winapp/MainPage.xaml.h b/winrt/winapp/MainPage.xaml.h deleted file mode 100644 index 47e1bfab..00000000 --- a/winrt/winapp/MainPage.xaml.h +++ /dev/null @@ -1,213 +0,0 @@ -// -// MainPage.xaml.h -// Declaration of the MainPage class. -// - -#pragma once - -#include "MainPage.g.h" -#include "fitz.h" -#include "fitz-internal.h" -#include "muxps.h" -#include "mupdf.h" -#include "ppl.h" -#include <collection.h> -#include <algorithm> -#include "LVContents.h" - -using namespace Platform; -using namespace Concurrency; -using namespace Windows::Storage; -using namespace Windows::UI::Xaml; -using namespace Windows::UI::Xaml::Media::Imaging; -using namespace Windows::Storage::Streams; -using namespace Windows::Foundation; -using namespace Windows::UI::Xaml::Controls; -using namespace Windows::UI::Xaml::Media; -using namespace Windows::UI::Xaml::Input; -using namespace Windows::Foundation::Collections; -using namespace Windows::UI::Xaml::Shapes; -using namespace Windows::Foundation::Collections; -using namespace Platform::Collections; -using namespace ListViewContents; -using namespace Windows::UI::ViewManagement; -using namespace Windows::UI::Popups; -using namespace Windows::UI::Xaml::Navigation; - -typedef enum -{ - StatusMessage, - ErrorMessage -} NotifyType_t; - -typedef enum { - REN_AVAILABLE = 0, - REN_THUMBS, - REN_UPDATE_THUMB_CANVAS, - REN_PAGE /* Used to ignore value when source based setting */ -} RenderingStatus_t; - -typedef struct SearchResult_s -{ - int box_count; - int page_num; -} SearchResult_t; - -typedef struct RectSize_s -{ - float width; - float height; -} RectSize; - -typedef struct spatial_info_s -{ - RectSize size; - double scale_factor; -} spatial_info_t; - -typedef struct thumbs_s -{ - Array<InMemoryRandomAccessStream^>^ raster; - Array<double>^ scale; - Array<Point>^ size; - Array<Canvas^>^ canvas_v; - Array<Canvas^>^ canvas_h; -} thumbs_t; - -typedef struct content_s -{ - int num; - Vector<int>^ page; - Vector<String^>^ string_orig; - Vector<String^>^ string_margin; -} content_t; - - - - -namespace winapp -{ - /// <summary> - /// An empty page that can be used on its own or navigated to within a Frame. - /// </summary> - public ref class MainPage sealed - { - public: - MainPage(); - - protected: - virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override; - - /* added */ - private: - LVContents temp; - bool m_file_open; - int m_currpage; - int m_searchpage; - int m_num_pages; - int m_slider_min; - int m_slider_max; - bool m_init_done; - bool m_first_time; - bool m_flip_from_searchlink; - bool m_links_on; - int m_search_rect_count; - Point m_display_size; - cancellation_token_source m_searchcts; - cancellation_token_source m_thumbcts; - long long m_memory_use; - double m_curr_zoom; - Point m_zoom_size; - Point m_touchpoint; - Point m_canvas_translate; - Windows::UI::Input::ManipulationDelta m_changes; - ImageBrush^ m_renderedImage; - ImageBrush^ m_blankPage; - Canvas^ m_renderedCanvas; - ImageBrush^ m_zoomedImage; - SolidColorBrush^ m_textcolor_brush; - SolidColorBrush^ m_linkcolor_brush; - FlipView^ m_curr_flipView; - thumbs_t m_thumbnails; - RenderingStatus_t m_ren_status; - int m_thumb_page_start; - int m_thumb_page_stop; - cancellation_token_source m_ThumbCancel; - fz_link *m_links; - content_t m_content; - TextBlock^ m_StatusBlock; - bool m_zoom_mode; - bool m_from_doubleflip; - bool m_scaling_occured; - bool m_insearch; /* Used for UI display */ - bool m_search_active; /* Used to avoid multiple UI clicks */ - bool m_sliderchange; - bool m_update_flip; - void Picker(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void Searcher(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void OpenDocumentPrep(StorageFile^ file); - void OpenDocument(StorageFile^ file); - task<int> RenderRange(int curr_page, int *height, int *width); - void CleanUp(); - void AddPage(int page_num); - void ReplacePage(int page_num); - void AddBlankPage(int page_num); - void AddBlankPage(int page_num, FlipView^ flip_view); - void CreateBlank(int width, int height); - void HandleFileNotFoundException(Platform::COMException^ e); - void NotifyUserFileNotExist(); - void SetupZoomCanvas(); - RectSize currPageSize(int page); - void Slider_ValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e); - void Slider_Released(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e); - void FlipView_SelectionChanged(Object^ sender, SelectionChangedEventArgs^ e); - void FlipView_Double(Object^ sender, DoubleTappedRoutedEventArgs^ e); - void Canvas_ManipulationDelta(Object^ sender, ManipulationDeltaRoutedEventArgs^ e); - void Canvas_ManipulationStarted(Object^ sender, ManipulationStartedRoutedEventArgs^ e); - void Canvas_ManipulationStarting(Object^ sender, ManipulationStartingRoutedEventArgs^ e); - void Canvas_Double(Object^ sender, DoubleTappedRoutedEventArgs^ e); - void SearchNext(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void SearchPrev(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void ResetSearch(void); - void CancelSearch(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void SearchInDirection(int dir, String^ textToFind); - void ShowSearchResults(SearchResult_t result); - void GridSizeChanged(); - void UpDatePageSizes(); - void ShowThumbnail(); - void Canvas_ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e); - void AddThumbNail(int page_num, FlipView^ flip_view); - spatial_info_t InitSpatial(double scale); - void InitThumbnails(); - void RenderThumbs(); - void SetThumb(int page_num); - void ReleasePages(int old_page, int new_page); - void Linker(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void AddLinkCanvas(); - void Canvas_Single_Tap(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e); - bool CheckRect(Rectangle^ curr_rect, Point pt); - int JumpToLink(int index); - void ClearLinksCanvas(); - void ContentDisplay(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void FlattenOutline(fz_outline *outline, int level); - void ListView_Single_Tap(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e); - void ContentSelected(Platform::Object^ sender, Windows::UI::Xaml::Controls::ItemClickEventArgs^ e); - void ContentChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^ e); - void Reflower(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void WebViewDelta(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e); - void WebViewStarting(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs^ e); - void WebViewCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e); - void TempViewStarting(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs^ e); - void RichGridSizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e); - void RichGridManipulationStarting(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs^ e); - void RichGridManipulationDelta(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e); - void RichGridManipulationStarted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs^ e); - void RichGridManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e); - void topAppBar_Loaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - void UpdateAppBarButtonViewState(); - bool EnsureUnsnapped(); - void NotifyUser(String^ strMessage, NotifyType_t type); - void ExitInvokedHandler(Windows::UI::Popups::IUICommand^ command); - void OKInvokedHandler(Windows::UI::Popups::IUICommand^ command); -}; -} diff --git a/winrt/winapp/Package.appxmanifest b/winrt/winapp/Package.appxmanifest deleted file mode 100644 index b890a743..00000000 --- a/winrt/winapp/Package.appxmanifest +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest"> - <Identity Name="d9462f36-8b87-4b46-897a-66f6c91774ec" Publisher="CN=michaelv" Version="1.0.0.0" /> - <Properties> - <DisplayName>winapp</DisplayName> - <PublisherDisplayName>michaelv</PublisherDisplayName> - <Logo>Assets\mupdf_storelogo.png</Logo> - </Properties> - <Prerequisites> - <OSMinVersion>6.2.1</OSMinVersion> - <OSMaxVersionTested>6.2.1</OSMaxVersionTested> - </Prerequisites> - <Resources> - <Resource Language="x-generate" /> - </Resources> - <Applications> - <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="winapp.App"> - <VisualElements DisplayName="winapp" Logo="Assets\mupdf_logo.png" SmallLogo="Assets\mupdf_smallogo.png" Description="winapp" ForegroundText="light" BackgroundColor="#464646"> - <DefaultTile ShowName="allLogos" /> - <SplashScreen Image="Assets\mupdf_splash.png" /> - <InitialRotationPreference> - <Rotation Preference="portrait" /> - <Rotation Preference="landscape" /> - <Rotation Preference="portraitFlipped" /> - <Rotation Preference="landscapeFlipped" /> - </InitialRotationPreference> - </VisualElements> - <Extensions> - <Extension Category="windows.fileOpenPicker"> - <FileOpenPicker> - <SupportedFileTypes> - <FileType>.pdf</FileType> - <FileType>.xps</FileType> - <FileType>.oxps</FileType> - </SupportedFileTypes> - </FileOpenPicker> - </Extension> - <Extension Category="windows.fileTypeAssociation"> - <FileTypeAssociation Name=".pdf"> - <SupportedFileTypes> - <FileType>.pdf</FileType> - <FileType>.xps</FileType> - <FileType>.oxps</FileType> - </SupportedFileTypes> - </FileTypeAssociation> - </Extension> - </Extensions> - </Application> - </Applications> - <Capabilities> - <Capability Name="documentsLibrary" /> - <Capability Name="internetClient" /> - </Capabilities> -</Package>
\ No newline at end of file diff --git a/winrt/winapp/pch.cpp b/winrt/winapp/pch.cpp deleted file mode 100644 index 01484ff5..00000000 --- a/winrt/winapp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/winrt/winapp/pch.h b/winrt/winapp/pch.h deleted file mode 100644 index 751c0efb..00000000 --- a/winrt/winapp/pch.h +++ /dev/null @@ -1,10 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once - -#include <collection.h> -#include <ppltasks.h> -#include "App.xaml.h" diff --git a/winrt/winapp/winapp.vcxproj b/winrt/winapp/winapp.vcxproj deleted file mode 100644 index 27030488..00000000 --- a/winrt/winapp/winapp.vcxproj +++ /dev/null @@ -1,327 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|ARM"> - <Configuration>Debug</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|x64"> - <Configuration>Debug</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Memento|ARM"> - <Configuration>Memento</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Memento|Win32"> - <Configuration>Memento</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Memento|x64"> - <Configuration>Memento</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|ARM"> - <Configuration>Release</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|x64"> - <Configuration>Release</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Globals"> - <ProjectGuid>{35c27df7-0cf2-413e-9c7a-6436afee5d4e}</ProjectGuid> - <RootNamespace>winapp</RootNamespace> - <DefaultLanguage>en-US</DefaultLanguage> - <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion> - <AppContainerApplication>true</AppContainerApplication> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Memento|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Memento|ARM'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Memento|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <WholeProgramOptimization>true</WholeProgramOptimization> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <WholeProgramOptimization>true</WholeProgramOptimization> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <WholeProgramOptimization>true</WholeProgramOptimization> - <PlatformToolset>v110</PlatformToolset> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Memento|Win32'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Memento|ARM'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Memento|x64'" Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup> - <PackageCertificateKeyFile>winapp_TemporaryKey.pfx</PackageCertificateKeyFile> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Memento|ARM'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Memento|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Memento|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <OutDir>$(Platform)\$(Configuration)\</OutDir> - <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <AdditionalUsingDirectories> - </AdditionalUsingDirectories> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PrecompiledHeader>Use</PrecompiledHeader> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/$(Configuration)/libmupdf_winRT.lib;../$(Platform)/$(Configuration)/libthirdparty_winRT.lib;../$(Platform)/$(Configuration)/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Memento|Win32'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <AdditionalUsingDirectories> - </AdditionalUsingDirectories> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PrecompiledHeader>Use</PrecompiledHeader> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/$(Configuration)/libmupdf_winRT.lib;../$(Platform)/$(Configuration)/libthirdparty_winRT.lib;../$(Platform)/$(Configuration)/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <AdditionalUsingDirectories> - </AdditionalUsingDirectories> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/$(Configuration)/libmupdf_winRT.lib;../$(Platform)/$(Configuration)/libthirdparty_winRT.lib;../$(Platform)/$(Configuration)/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Memento|ARM'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <AdditionalUsingDirectories> - </AdditionalUsingDirectories> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/$(Configuration)/libmupdf_winRT.lib;../$(Platform)/$(Configuration)/libthirdparty_winRT.lib;../$(Platform)/$(Configuration)/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/$(Configuration)/libmupdf_winRT.lib;../$(Platform)/$(Configuration)/libthirdparty_winRT.lib;../$(Platform)/$(Configuration)/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <AdditionalIncludeDirectories>../../xps/;../../fitz/;../../pdf/;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/$(Configuration)/libmupdf_winRT.lib;../$(Platform)/$(Configuration)/libthirdparty_winRT.lib;../$(Platform)/$(Configuration)/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/Debug/libmupdf_winRT.lib;../$(Platform)/Debug/libthirdparty_winRT.lib;../$(Platform)/Debug/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Memento|x64'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/Debug/libmupdf_winRT.lib;../$(Platform)/Debug/libthirdparty_winRT.lib;../$(Platform)/Debug/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ClCompile> - <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> - <DisableSpecificWarnings>4453</DisableSpecificWarnings> - <AdditionalIncludeDirectories>../../fitz/;../../pdf/;../../xps/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <AdditionalDependencies>kernel32.lib;%(AdditionalDependencies);../$(Platform)/Debug/libmupdf_winRT.lib;../$(Platform)/Debug/libthirdparty_winRT.lib;../$(Platform)/Debug/libmupdf-nov8_winRT.lib</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClInclude Include="App.xaml.h"> - <DependentUpon>App.xaml</DependentUpon> - </ClInclude> - <ClInclude Include="LVContents.h" /> - <ClInclude Include="MainPage.xaml.h"> - <DependentUpon>MainPage.xaml</DependentUpon> - </ClInclude> - <ClInclude Include="pch.h" /> - </ItemGroup> - <ItemGroup> - <ApplicationDefinition Include="App.xaml"> - <SubType>Designer</SubType> - </ApplicationDefinition> - <Page Include="Common\StandardStyles.xaml"> - <SubType>Designer</SubType> - </Page> - <Page Include="MainPage.xaml"> - <SubType>Designer</SubType> - </Page> - </ItemGroup> - <ItemGroup> - <AppxManifest Include="Package.appxmanifest"> - <SubType>Designer</SubType> - </AppxManifest> - <None Include="winapp_TemporaryKey.pfx" /> - </ItemGroup> - <ItemGroup> - <Image Include="Assets\mupdf_logo.png" /> - <Image Include="Assets\mupdf_smallogo.png" /> - <Image Include="Assets\mupdf_splash.png" /> - <Image Include="Assets\mupdf_storelogo.png" /> - </ItemGroup> - <ItemGroup> - <ClCompile Include="App.xaml.cpp"> - <DependentUpon>App.xaml</DependentUpon> - </ClCompile> - <ClCompile Include="LVContents.cpp" /> - <ClCompile Include="MainPage.xaml.cpp"> - <DependentUpon>MainPage.xaml</DependentUpon> - </ClCompile> - <ClCompile Include="pch.cpp"> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Memento|Win32'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Memento|ARM'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Memento|x64'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> - </ClCompile> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project>
\ No newline at end of file diff --git a/winrt/winapp/winapp.vcxproj.filters b/winrt/winapp/winapp.vcxproj.filters deleted file mode 100644 index 400db2ec..00000000 --- a/winrt/winapp/winapp.vcxproj.filters +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup> - <Filter Include="Common"> - <UniqueIdentifier>35c27df7-0cf2-413e-9c7a-6436afee5d4e</UniqueIdentifier> - </Filter> - <Filter Include="Assets"> - <UniqueIdentifier>10cafe4f-106e-4600-bee1-3f5891ecf28a</UniqueIdentifier> - </Filter> - <Page Include="Common\StandardStyles.xaml"> - <Filter>Common</Filter> - </Page> - </ItemGroup> - <ItemGroup> - <ApplicationDefinition Include="App.xaml" /> - </ItemGroup> - <ItemGroup> - <ClCompile Include="App.xaml.cpp" /> - <ClCompile Include="MainPage.xaml.cpp" /> - <ClCompile Include="pch.cpp" /> - <ClCompile Include="LVContents.cpp" /> - </ItemGroup> - <ItemGroup> - <ClInclude Include="App.xaml.h" /> - <ClInclude Include="MainPage.xaml.h" /> - <ClInclude Include="pch.h" /> - <ClInclude Include="LVContents.h" /> - </ItemGroup> - <ItemGroup> - <AppxManifest Include="Package.appxmanifest" /> - </ItemGroup> - <ItemGroup> - <None Include="winapp_TemporaryKey.pfx" /> - </ItemGroup> - <ItemGroup> - <Page Include="MainPage.xaml" /> - </ItemGroup> - <ItemGroup> - <Image Include="Assets\mupdf_logo.png"> - <Filter>Assets</Filter> - </Image> - <Image Include="Assets\mupdf_smallogo.png"> - <Filter>Assets</Filter> - </Image> - <Image Include="Assets\mupdf_splash.png"> - <Filter>Assets</Filter> - </Image> - <Image Include="Assets\mupdf_storelogo.png"> - <Filter>Assets</Filter> - </Image> - </ItemGroup> -</Project>
\ No newline at end of file |