summaryrefslogtreecommitdiff
path: root/platform/winrt/gsview
diff options
context:
space:
mode:
Diffstat (limited to 'platform/winrt/gsview')
-rw-r--r--platform/winrt/gsview/About.xaml96
-rw-r--r--platform/winrt/gsview/About.xaml.cs255
-rw-r--r--platform/winrt/gsview/App.config6
-rw-r--r--platform/winrt/gsview/App.xaml7
-rw-r--r--platform/winrt/gsview/App.xaml.cs16
-rw-r--r--platform/winrt/gsview/ContentEntry.cs29
-rw-r--r--platform/winrt/gsview/ContentItem.cs42
-rw-r--r--platform/winrt/gsview/Convert.xaml120
-rw-r--r--platform/winrt/gsview/Convert.xaml.cs214
-rw-r--r--platform/winrt/gsview/DocPage.cs281
-rw-r--r--platform/winrt/gsview/Info.xaml11
-rw-r--r--platform/winrt/gsview/Info.xaml.cs31
-rw-r--r--platform/winrt/gsview/Install32/Install32.vdproj1225
-rw-r--r--platform/winrt/gsview/Install64/Install64.vdproj1238
-rw-r--r--platform/winrt/gsview/Links.cs31
-rw-r--r--platform/winrt/gsview/MainWindow.xaml794
-rw-r--r--platform/winrt/gsview/MainWindow.xaml.cs4906
-rw-r--r--platform/winrt/gsview/OutputIntent.xaml50
-rw-r--r--platform/winrt/gsview/OutputIntent.xaml.cs105
-rw-r--r--platform/winrt/gsview/PageExtractSave.xaml59
-rw-r--r--platform/winrt/gsview/PageExtractSave.xaml.cs213
-rw-r--r--platform/winrt/gsview/Password.xaml15
-rw-r--r--platform/winrt/gsview/Password.xaml.cs35
-rw-r--r--platform/winrt/gsview/Properties/AssemblyInfo.cs55
-rw-r--r--platform/winrt/gsview/Properties/Resources.Designer.cs153
-rw-r--r--platform/winrt/gsview/Properties/Resources.resx148
-rw-r--r--platform/winrt/gsview/Properties/Settings.Designer.cs26
-rw-r--r--platform/winrt/gsview/Properties/Settings.settings7
-rw-r--r--platform/winrt/gsview/Properties/pdfa_def.ps40
-rw-r--r--platform/winrt/gsview/Properties/pdfx_def.ps48
-rw-r--r--platform/winrt/gsview/README.txt8
-rw-r--r--platform/winrt/gsview/RectList.cs99
-rw-r--r--platform/winrt/gsview/Resources/ActualSize48.pngbin4830 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/Close.icobin29926 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/ContScrollFill48.pngbin4269 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/ExpandFill48.pngbin4753 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/FloppyDisk.icobin304054 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/Left.icobin29926 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/Message.pngbin232 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/OpenFile.pngbin3157 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/Right.icobin29926 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/banner.pngbin12172 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/contents.icobin4286 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/copy.icobin37611 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/folder_open.icobin53411 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/gsview_app.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/hyperlink.pngbin3531 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/info.pngbin4639 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pageCBZ.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pageEPS.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pageJPG.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pageOXPS.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pagePDF.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pagePNG.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pagePS.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/pageXPS.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/printer.icobin55326 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/saveHS.pngbin595 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/search.icobin67646 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/search.pngbin3491 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/thumbnail.icobin1150 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/zoom_in.icobin67646 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Resources/zoom_out.icobin67646 -> 0 bytes
-rw-r--r--platform/winrt/gsview/Selection.xaml49
-rw-r--r--platform/winrt/gsview/Selection.xaml.cs235
-rw-r--r--platform/winrt/gsview/Strings/en-US/Messages.Designer.cs63
-rw-r--r--platform/winrt/gsview/Strings/en-US/Messages.resx101
-rw-r--r--platform/winrt/gsview/TextBlock.cs121
-rw-r--r--platform/winrt/gsview/TextCharacter.cs79
-rw-r--r--platform/winrt/gsview/TextLine.cs121
-rw-r--r--platform/winrt/gsview/ghostsharp.cs1165
-rw-r--r--platform/winrt/gsview/gsIO.cs32
-rw-r--r--platform/winrt/gsview/gsOutput.xaml51
-rw-r--r--platform/winrt/gsview/gsOutput.xaml.cs60
-rw-r--r--platform/winrt/gsview/gsprint.cs167
-rw-r--r--platform/winrt/gsview/gsprintbg.cs261
-rw-r--r--platform/winrt/gsview/gsview.csproj281
-rw-r--r--platform/winrt/gsview/gsview.visualelementsmanifest.xml7
-rw-r--r--platform/winrt/gsview/gsview_app.icobin370070 -> 0 bytes
-rw-r--r--platform/winrt/gsview/mudocument.cs1747
80 files changed, 0 insertions, 14903 deletions
diff --git a/platform/winrt/gsview/About.xaml b/platform/winrt/gsview/About.xaml
deleted file mode 100644
index 13b3b142..00000000
--- a/platform/winrt/gsview/About.xaml
+++ /dev/null
@@ -1,96 +0,0 @@
-<Window
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="gsview.About"
- Title="{Binding ProductTitle, Mode=OneTime, RelativeSource={RelativeSource Self}}"
- x:Uid="idAboutBox"
- Style="{DynamicResource AboutDialogStyle}" WindowStartupLocation="CenterOwner" Height="353" Width="501">
- <Window.Resources>
- <XmlDataProvider x:Key="aboutProvider" XPath="ApplicationInfo" IsAsynchronous="False" IsInitialLoadEnabled="True">
- <x:XData>
- <ApplicationInfo xmlns="">
- <Link Uri="http://www.gsview.com">More Info</Link>
- </ApplicationInfo>
- </x:XData>
- </XmlDataProvider>
- <Image x:Key="aboutLogo" Source="resources/banner.png" />
- <Style x:Key="AboutDialogStyle" TargetType="{x:Type Window}">
- <Setter Property="Height" Value="Auto" />
- <Setter Property="Width" Value="500" />
- <Setter Property="ShowInTaskbar" Value="False" />
- <Setter Property="ResizeMode" Value="NoResize" />
- <Setter Property="WindowStyle" Value="SingleBorderWindow" />
- <Setter Property="SizeToContent" Value="Height" />
- </Style>
- <Style x:Key="DisplayAreaStyle" TargetType="{x:Type StackPanel}">
- <Setter Property="Margin" Value="10,10,10,5" />
- </Style>
- <Style x:Key="BackgroundStyle" TargetType="{x:Type StackPanel}">
- <Setter Property="Background">
- <Setter.Value>
- <LinearGradientBrush EndPoint="0,1">
- <GradientStop Offset="0" Color="#FF317896" />
- <GradientStop Offset="0.27" Color="White" />
- <GradientStop Offset="0.85" Color="#FF317896" />
- <GradientStop Offset="1" Color="#FF317896" />
- </LinearGradientBrush>
- </Setter.Value>
- </Setter>
- </Style>
- <Style TargetType="{x:Type Label}">
- <Setter Property="Padding" Value="0" />
- </Style>
- <Style x:Key="ParagraphSeparator" TargetType="{x:Type Label}">
- <Setter Property="Padding" Value="0,10,0,0" />
- </Style>
- <Style x:Key="LinkLabelStyle">
- <Setter Property="Control.Padding" Value="0" />
- <Setter Property="FrameworkElement.VerticalAlignment" Value="Center" />
- </Style>
- <Style x:Key="ReadOnlyDescStyle" TargetType="{x:Type TextBox}">
- <Setter Property="MinLines" Value="6" />
- <Setter Property="MaxLines" Value="6" />
- <Setter Property="IsReadOnly" Value="True" />
- <Setter Property="TextWrapping" Value="WrapWithOverflow" />
- <Setter Property="VerticalScrollBarVisibility" Value="Visible" />
- </Style>
- <Style x:Key="OkButtonStyle" TargetType="{x:Type Button}">
- <Setter Property="MinWidth" Value="75" />
- <Setter Property="Margin" Value="0,5" />
- <Setter Property="DockPanel.Dock" Value="Right" />
- <Setter Property="IsDefault" Value="True" />
- <Setter Property="IsCancel" Value="True" />
- </Style>
- </Window.Resources>
- <StackPanel x:Uid="clientArea" Style="{StaticResource BackgroundStyle}">
- <StaticResource ResourceKey="aboutLogo" />
- <StackPanel x:Uid="displayArea" Style="{StaticResource DisplayAreaStyle}"
- DataContext="{Binding Mode=OneTime, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
- <Label x:Name="productName" x:Uid="productName"
- Content="{Binding Product, Mode=OneTime}" />
- <StackPanel x:Uid="versionArea" Orientation="Horizontal">
- <Label x:Name="versionLabel" x:Uid="VersionLabel" Content="Version - " />
- <Label x:Name="version" x:Uid="version" Content="{Binding Version, Mode=OneTime}" />
- </StackPanel>
- <Label x:Name="copyright" x:Uid="copyright" Content="{Binding Copyright, Mode=OneTime}" />
- <Label x:Name="company" x:Uid="company" Content="{Binding Company, Mode=OneTime}" />
- <Label x:Name="reserved" x:Uid="reserved" Content="All Rights Reserved." />
- <Label x:Name="info" x:Uid="info" Style="{StaticResource ParagraphSeparator}"
- Content="Product details:" />
- <TextBox x:Name="description" x:Uid="description" Text=""
- Style="{StaticResource ReadOnlyDescStyle}" Height="140" />
- <DockPanel x:Uid="buttonArea">
- <Button x:Name="okButton" x:Uid="okButton" Style="{StaticResource OkButtonStyle}"
- Content="OK" />
- <Label x:Name="productLink" x:Uid="productLink" Style="{StaticResource LinkLabelStyle}" >
- <Hyperlink x:Name="hyperlink" x:Uid="hyperlink" NavigateUri="{Binding LinkUri, Mode=OneTime}" Style="{StaticResource LinkLabelStyle}"
- RequestNavigate="hyperlink_RequestNavigate">
- <InlineUIContainer>
- <TextBlock Text="{Binding LinkText, Mode=OneTime}" />
- </InlineUIContainer>
- </Hyperlink>
- </Label>
- </DockPanel>
- </StackPanel>
- </StackPanel>
-</Window> \ No newline at end of file
diff --git a/platform/winrt/gsview/About.xaml.cs b/platform/winrt/gsview/About.xaml.cs
deleted file mode 100644
index 6bd50cbe..00000000
--- a/platform/winrt/gsview/About.xaml.cs
+++ /dev/null
@@ -1,255 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.IO;
-using System.Reflection;
-using System.Windows;
-using System.Windows.Data;
-using System.Xml;
-using System.ComponentModel;
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for About.xaml
- /// </summary>
- public partial class About : Window
- {
- /// <summary>
- /// Default constructor is protected so callers must use one with a parent.
- /// </summary>
- protected About()
- {
- InitializeComponent();
- }
-
-
- /// <summary>
- /// Constructor that takes a parent for this About dialog.
- /// </summary>
- /// <param name="parent">Parent window for this dialog.</param>
- public About(Window parent)
- : this()
- {
- this.Owner = parent;
- }
-
- /// <summary>
- /// Handles click navigation on the hyperlink in the About dialog.
- /// </summary>
- /// <param name="sender">Object the sent the event.</param>
- /// <param name="e">Navigation events arguments.</param>
- private void hyperlink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
- {
- if (e.Uri != null && string.IsNullOrEmpty(e.Uri.OriginalString) == false)
- {
- string uri = e.Uri.AbsoluteUri;
- Process.Start(new ProcessStartInfo(uri));
- e.Handled = true;
- }
- }
-
- #region AboutData Provider
- #region Member data
- private XmlDocument xmlDoc = null;
- private string variabledescription;
- private const string propertyNameTitle = "Title";
- private const string propertyNameDescription = "Description";
- private const string propertyNameProduct = "Product";
- private const string propertyNameCopyright = "Copyright";
- private const string propertyNameCompany = "Company";
- private const string xPathRoot = "ApplicationInfo/";
- private const string xPathTitle = xPathRoot + propertyNameTitle;
- private const string xPathVersion = xPathRoot + "Version";
- private const string xPathDescription = xPathRoot + propertyNameDescription;
- private const string xPathProduct = xPathRoot + propertyNameProduct;
- private const string xPathCopyright = xPathRoot + propertyNameCopyright;
- private const string xPathCompany = xPathRoot + propertyNameCompany;
- private const string xPathLink = xPathRoot + "Link";
- private const string xPathLinkUri = xPathRoot + "Link/@Uri";
- #endregion
-
- #region Properties
- /// <summary>
- /// Gets the title property, which is display in the About dialogs window title.
- /// </summary>
- public string ProductTitle
- {
- get
- {
- string result = CalculatePropertyValue<AssemblyTitleAttribute>(propertyNameTitle, xPathTitle);
- if (string.IsNullOrEmpty(result))
- {
- // otherwise, just get the name of the assembly itself.
- result = Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
- }
- return result;
- }
- }
-
- /// <summary>
- /// Gets the application's version information to show.
- /// </summary>
- public string Version
- {
- get
- {
- string result = string.Empty;
- // first, try to get the version string from the assembly.
- Version version = Assembly.GetExecutingAssembly().GetName().Version;
- if (version != null)
- {
- result = version.ToString();
- }
- else
- {
- // if that fails, try to get the version from a resource in the Application.
- result = GetLogicalResourceString(xPathVersion);
- }
- return result;
- }
- }
-
- /// <summary>
- /// Gets the description about the application.
- /// </summary>
- public string Description
- {
- get { return CalculatePropertyValue<AssemblyDescriptionAttribute>(propertyNameDescription, xPathDescription);}
- }
-
- public string VariableDescription
- {
- get;
- set;
- }
-
- /// <summary>
- /// Gets the product's full name.
- /// </summary>
- public string Product
- {
- get { return CalculatePropertyValue<AssemblyProductAttribute>(propertyNameProduct, xPathProduct); }
- }
-
- /// <summary>
- /// Gets the copyright information for the product.
- /// </summary>
- public string Copyright
- {
- get { return CalculatePropertyValue<AssemblyCopyrightAttribute>(propertyNameCopyright, xPathCopyright); }
- }
-
- /// <summary>
- /// Gets the product's company name.
- /// </summary>
- public string Company
- {
- get { return CalculatePropertyValue<AssemblyCompanyAttribute>(propertyNameCompany, xPathCompany); }
- }
-
- /// <summary>
- /// Gets the link text to display in the About dialog.
- /// </summary>
- public string LinkText
- {
- get { return GetLogicalResourceString(xPathLink); }
- }
-
- /// <summary>
- /// Gets the link uri that is the navigation target of the link.
- /// </summary>
- public string LinkUri
- {
- get { return GetLogicalResourceString(xPathLinkUri); }
- }
- #endregion
-
- #region Resource location methods
- /// <summary>
- /// Gets the specified property value either from a specific attribute, or from a resource dictionary.
- /// </summary>
- /// <typeparam name="T">Attribute type that we're trying to retrieve.</typeparam>
- /// <param name="propertyName">Property name to use on the attribute.</param>
- /// <param name="xpathQuery">XPath to the element in the XML data resource.</param>
- /// <returns>The resulting string to use for a property.
- /// Returns null if no data could be retrieved.</returns>
- private string CalculatePropertyValue<T>(string propertyName, string xpathQuery)
- {
- string result = string.Empty;
- // first, try to get the property value from an attribute.
- object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(T), false);
- if (attributes.Length > 0)
- {
- T attrib = (T)attributes[0];
- PropertyInfo property = attrib.GetType().GetProperty(propertyName, BindingFlags.Public | BindingFlags.Instance);
- if (property != null)
- {
- result = property.GetValue(attributes[0], null) as string;
- }
- }
-
- // if the attribute wasn't found or it did not have a value, then look in an xml resource.
- if (result == string.Empty)
- {
- // if that fails, try to get it from a resource.
- result = GetLogicalResourceString(xpathQuery);
- }
- return result;
- }
-
- /// <summary>
- /// Gets the XmlDataProvider's document from the resource dictionary.
- /// </summary>
- protected virtual XmlDocument ResourceXmlDocument
- {
- get
- {
- if (xmlDoc == null)
- {
- // if we haven't already found the resource XmlDocument, then try to find it.
- XmlDataProvider provider = this.TryFindResource("aboutProvider") as XmlDataProvider;
- if (provider != null)
- {
- // save away the XmlDocument, so we don't have to get it multiple times.
- xmlDoc = provider.Document;
- }
- }
- return xmlDoc;
- }
- }
-
- /// <summary>
- /// Gets the specified data element from the XmlDataProvider in the resource dictionary.
- /// </summary>
- /// <param name="xpathQuery">An XPath query to the XML element to retrieve.</param>
- /// <returns>The resulting string value for the specified XML element.
- /// Returns empty string if resource element couldn't be found.</returns>
- protected virtual string GetLogicalResourceString(string xpathQuery)
- {
- string result = string.Empty;
- // get the About xml information from the resources.
- XmlDocument doc = this.ResourceXmlDocument;
- if (doc != null)
- {
- // if we found the XmlDocument, then look for the specified data.
- XmlNode node = doc.SelectSingleNode(xpathQuery);
- if (node != null)
- {
- if (node is XmlAttribute)
- {
- // only an XmlAttribute has a Value set.
- result = node.Value;
- }
- else
- {
- // otherwise, need to just return the inner text.
- result = node.InnerText;
- }
- }
- }
- return result;
- }
- #endregion
- #endregion
- }
-}
diff --git a/platform/winrt/gsview/App.config b/platform/winrt/gsview/App.config
deleted file mode 100644
index 7d2f9bbc..00000000
--- a/platform/winrt/gsview/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <startup>
-
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
-</configuration>
diff --git a/platform/winrt/gsview/App.xaml b/platform/winrt/gsview/App.xaml
deleted file mode 100644
index 2b1d6cbf..00000000
--- a/platform/winrt/gsview/App.xaml
+++ /dev/null
@@ -1,7 +0,0 @@
-<Application x:Class="gsview.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
- </Application.Resources>
-</Application>
diff --git a/platform/winrt/gsview/App.xaml.cs b/platform/winrt/gsview/App.xaml.cs
deleted file mode 100644
index 76d96a97..00000000
--- a/platform/winrt/gsview/App.xaml.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Windows;
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- }
-}
diff --git a/platform/winrt/gsview/ContentEntry.cs b/platform/winrt/gsview/ContentEntry.cs
deleted file mode 100644
index a384be16..00000000
--- a/platform/winrt/gsview/ContentEntry.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace gsview
-{
- public class ContentEntry
- {
- public String Name
- {
- get;
- set;
- }
-
- public int PageNum
- {
- get;
- set;
- }
-
- public ContentEntry(String Name, int PageNum)
- {
- this.Name = Name;
- this.PageNum = PageNum;
- }
- };
-}
-
diff --git a/platform/winrt/gsview/ContentItem.cs b/platform/winrt/gsview/ContentItem.cs
deleted file mode 100644
index a58bdf79..00000000
--- a/platform/winrt/gsview/ContentItem.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.ComponentModel;
-
-namespace gsview
-{
- class ContentItem : INotifyPropertyChanged
- {
-
- public int Page
- {
- get;
- internal set;
- }
-
- public String StringMargin
- {
- get;
- internal set;
- }
-
- public ContentItem()
- {
- StringMargin = "";
- Page = 0;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- public void ContentRefresh()
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs("StringMargin"));
- PropertyChanged(this, new PropertyChangedEventArgs("Page"));
- }
- }
- }
-}
diff --git a/platform/winrt/gsview/Convert.xaml b/platform/winrt/gsview/Convert.xaml
deleted file mode 100644
index 120f2eec..00000000
--- a/platform/winrt/gsview/Convert.xaml
+++ /dev/null
@@ -1,120 +0,0 @@
-<Window x:Class="gsview.Convert"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Convert Pages" Height="270.96" Width="419.424">
-
- <DockPanel LastChildFill="True">
-
- <!-- Device viewer/selector -->
- <Grid x:Name="xaml_DeviceGrid" Width="100" Background="DarkGray" DockPanel.Dock="Left" Visibility="Visible" >
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <TextBlock Grid.Column="0" Grid.Row="0" Margin="15,0,0,0">
- <Bold>Devices:</Bold>
- </TextBlock>
-
- <ListView Grid.Column="0" Grid.Row="1" x:Name="xaml_DeviceList" HorizontalAlignment="Stretch"
- ScrollViewer.CanContentScroll="False"
- Background="White" Margin="10,5,10,10" SelectionMode="Single">
- <ListView.ItemTemplate>
- <DataTemplate>
- <StackPanel Margin="5,5,0,0" HorizontalAlignment="Left">
- <TextBlock TextWrapping="Wrap" Text="{Binding DeviceName}" FontFamily="Segoe UI" FontSize="11" />
- </StackPanel>
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
- </Grid>
-
- <Grid x:Name="xaml_PageGrid" Width="100" Background="DarkGray" DockPanel.Dock="Left" Visibility="Visible">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <TextBlock Grid.Column="0" Grid.Row="0" Margin="15,0,0,0">
- <Bold>Pages:</Bold>
- </TextBlock>
- <ListView Grid.Column="0" Grid.Row="1" x:Name="xaml_PageList" HorizontalAlignment="Stretch"
- ScrollViewer.CanContentScroll="False"
- Background="White" Margin="10,5,10,10">
- <ListView.ItemTemplate>
- <DataTemplate>
- <StackPanel Margin="5,5,0,0" HorizontalAlignment="Left">
- <TextBlock TextWrapping="Wrap" Text="{Binding PageString}" FontFamily="Segoe UI" FontSize="11" />
- </StackPanel>
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
- </Grid>
-
- <!-- Buttons and extra options -->
- <Grid Background="DarkGray" DockPanel.Dock="Left">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <Grid Grid.Column="0" Grid.Row="0" Background="DarkGray">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
-
- <Grid Background="DarkGray" Grid.Row="0" Grid.Column="0" Margin="30,15,0,0">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <Button Grid.Column="0" Grid.Row="0" Width="50" Height="20" Name="xaml_Convert" Click="ConvertClick" Margin="0,0,0,0">
- <TextBlock>Convert</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="1" Width="50" Height="20" Name="xaml_Cancel" Click="ConvertCancel" Margin="0,5,0,0">
- <TextBlock>Cancel</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="2" Width="50" Height="20" Name="xaml_HelpConvert" Click="HelpConvert" Margin="0,5,0,0">
- <TextBlock>Help</TextBlock>
- </Button>
- </Grid>
-
-
- <Grid Background="DarkGray" Grid.Row="0" Grid.Column="1" Margin="25,15,0,0">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <Button Grid.Column="0" Grid.Row="0" Width="70" Height="20" Name="xaml_AllPages" Click="AllPages" Margin="0,0,0,0">
- <TextBlock>All Pages</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="1" Width="70" Height="20" Name="xaml_EvenPages" Click="EvenPages" Margin="0,5,0,0">
- <TextBlock>Even Pages</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="2" Width="70" Height="20" Name="xaml_OddPages" Click="OddPages" Margin="0,5,0,0">
- <TextBlock>Odd Pages</TextBlock>
- </Button>
- </Grid>
- </Grid>
-
-
- <TextBlock Grid.Column="0" Grid.Row="1" Margin="5,10,0,0">
- <Bold>GhostScript Options:</Bold>
- </TextBlock>
- <TextBox x:Name="xaml_options" Grid.Row="2" Background="White" Height="40" Margin="5,5,5,5" Text=""></TextBox>
- <TextBlock Grid.Column="0" Grid.Row="3" Margin="5,10,0,0">
- <Bold>MuPDF Resolution:</Bold>
- </TextBlock>
- <TextBox x:Name="xaml_resolution" Grid.Row="4" Background="White" Margin="5,5,153,19" Text=""
- PreviewTextInput="PreviewInput"/>
- </Grid>
-
-
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/Convert.xaml.cs b/platform/winrt/gsview/Convert.xaml.cs
deleted file mode 100644
index c2c3ec65..00000000
--- a/platform/winrt/gsview/Convert.xaml.cs
+++ /dev/null
@@ -1,214 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-using System.ComponentModel;
-using System.Collections.ObjectModel;
-using System.Text.RegularExpressions;
-
-namespace gsview
-{
- public class Device : INotifyPropertyChanged
- {
- public String DeviceName
- {
- get;
- internal set;
- }
-
- public gsDevice_t DeviceType
- {
- get;
- internal set;
- }
-
- public bool SupportsMultiPage
- {
- get;
- internal set;
- }
-
- public bool MuPDFDevice
- {
- get;
- internal set;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- public void PageRefresh()
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs("DeviceName"));
- }
- }
-
- public Device()
- {
- this.DeviceName = "";
- }
- };
-
- public class SelectPage : INotifyPropertyChanged
- {
- public int Page
- {
- get;
- internal set;
- }
-
- public int PageString
- {
- get;
- internal set;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- public void PageRefresh()
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs("Page"));
- PropertyChanged(this, new PropertyChangedEventArgs("PageString"));
- }
- }
- };
-
- /// <summary>
- /// Interaction logic for Convert.xaml
- /// </summary>
- public partial class Convert : Window
- {
- List<Device> GSDevices;
- List<SelectPage> ConvertPages;
-
- /* Callback to Main */
- internal delegate void ConvertCallBackMain(object gsObject);
- internal event ConvertCallBackMain ConvertUpdateMain;
-
- public Convert(int num_pages)
- {
- InitializeComponent();
- GSDevices = new List<Device>();
- ConvertPages = new List<SelectPage>();
- SetDeviceList();
- SetPageList(num_pages);
- xaml_DeviceList.ItemsSource = GSDevices;
- xaml_PageList.ItemsSource = ConvertPages;
- }
-
- public void SetDeviceList()
- {
- foreach (gsDevice_t device in Enum.GetValues(typeof(gsDevice_t)))
- {
- Device device_t = new Device();
- device_t.DeviceName = Enum.GetName(typeof(gsDevice_t), device);
- device_t.DeviceType = device;
- if (device > gsDevice_t.psdrgb)
- device_t.SupportsMultiPage = true;
- else
- device_t.SupportsMultiPage = false;
- if (device < gsDevice_t.bmp16)
- device_t.MuPDFDevice = true;
- else
- device_t.MuPDFDevice = false;
- GSDevices.Add(device_t);
- }
- }
-
- public void SetPageList(int num_pages)
- {
- for (int k = 1; k < num_pages + 1; k++ )
- {
- SelectPage Spage = new SelectPage();
- Spage.Page = k;
- Spage.PageString = k;
- ConvertPages.Add(Spage);
- }
- }
-
- private void ConvertClick(object sender, RoutedEventArgs e)
- {
- ConvertUpdateMain(this);
- }
-
- private void ConvertCancel(object sender, RoutedEventArgs e)
- {
- this.Close();
- }
-
- private void HelpConvert(object sender, RoutedEventArgs e)
- {
-
- }
-
- private void AllPages(object sender, RoutedEventArgs e)
- {
- xaml_PageList.SelectAll();
- }
-
- private void EvenPages(object sender, RoutedEventArgs e)
- {
- /* First check if any are selected */
- var item = xaml_PageList.SelectedItem;
-
- /* If none are selected then get all the evens. otherwise just get
- * all the evens of the pages that have been selected */
- if (item == null)
- {
- /* Turn on the evens */
- for (int kk = 1; kk < ConvertPages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = true;
- }
- else
- {
- /* Turn off any odds */
- for (int kk = 0; kk < ConvertPages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = false;
- }
- }
-
- private void OddPages(object sender, RoutedEventArgs e)
- {
- /* First check if any are selected */
- var item = xaml_PageList.SelectedItem;
-
- /* If none are selected then get all the odds. otherwise just get
- all the odds of the pages that have been selected */
- if (item == null)
- {
- /* Turn on the odds */
- for (int kk = 0; kk < ConvertPages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = true;
- }
- else
- {
- /* Turn off any evens */
- for (int kk = 1; kk < ConvertPages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = false;
- }
- }
-
- /* Allow only numbers */
- private void PreviewInput(object sender, TextCompositionEventArgs e)
- {
- e.Handled = !IsTextAllowed(e.Text);
- }
-
- private static bool IsTextAllowed(string text)
- {
- Regex regex = new Regex("[^0-9]+");
- return !regex.IsMatch(text);
- }
- }
-}
diff --git a/platform/winrt/gsview/DocPage.cs b/platform/winrt/gsview/DocPage.cs
deleted file mode 100644
index 267d99e8..00000000
--- a/platform/winrt/gsview/DocPage.cs
+++ /dev/null
@@ -1,281 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.ComponentModel;
-using System.Windows.Media.Imaging;
-using System.Collections.ObjectModel;
-using System.Windows.Media;
-
-namespace gsview
-{
- public enum Annotate_t
- {
- UNKNOWN,
- COMPUTING,
- NO_ANNOTATE,
- HAS_ANNOTATE,
- ANNOTATE_VISIBLE,
- ANNOTATE_HIDDEN
- }
-
- public class DocPage : INotifyPropertyChanged
- {
- private LinesText m_lines;
- private BlocksText m_blocks;
- private int height;
- private int width;
- private int nativeheight;
- private int nativewidth;
- private double zoom;
- private Annotate_t annotate;
- private BitmapSource bitmap;
- private IList<RectList> textbox;
- private List<RectList> linkbox;
- private Page_Content_t content;
- private String pagename;
- private int pagenum;
- private double sely;
- private double selx;
- private double selheight;
- private double selwidth;
- private String selcolor;
- private double sel_anchorx;
- private double sel_anchory;
-
- public double SelAnchorX
- {
- get { return sel_anchorx; }
- set { sel_anchorx = value; }
- }
-
- public double SelAnchorY
- {
- get { return sel_anchory; }
- set { sel_anchory = value; }
- }
-
- public double SelY
- {
- get { return sely; }
- set
- {
- sely = value;
- OnPropertyChanged("SelY");
- }
- }
-
- public double SelX
- {
- get { return selx; }
- set
- {
- selx = value;
- OnPropertyChanged("SelX");
- }
- }
-
- public double SelHeight
- {
- get { return selheight; }
- set
- {
- selheight = value;
- OnPropertyChanged("SelHeight");
- }
- }
-
- public double SelWidth
- {
- get { return selwidth; }
- set
- {
- selwidth = value;
- OnPropertyChanged("SelWidth");
- }
- }
-
- public String SelColor
- {
- get { return selcolor; }
- set
- {
- selcolor = value;
- OnPropertyChanged("SelColor");
- }
- }
-
- public int Height
- {
- get { return height; }
- set
- {
- height = value;
- OnPropertyChanged("Height");
- }
- }
-
- public int Width
- {
- get { return width; }
- set
- {
- width = value;
- OnPropertyChanged("Width");
- }
- }
-
- public int NativeHeight
- {
- get { return nativewidth; }
- set { nativewidth = value; }
- }
-
- public int NativeWidth
- {
- get { return nativeheight; }
- set { nativeheight = value; }
- }
-
- public Annotate_t Annotate
- {
- get { return annotate; }
- set { annotate = value; }
- }
-
- public double Zoom
- {
- get { return zoom; }
- set { zoom = value; }
- }
-
- public BitmapSource BitMap
- {
- get { return bitmap; }
- set
- {
- bitmap = value;
- OnPropertyChanged("BitMap");
- }
- }
-
- public IList<RectList> TextBox
- {
- get { return textbox; }
- set
- {
- textbox = value;
- OnPropertyChanged("TextBox");
- }
- }
-
- public List<RectList> LinkBox
- {
- get { return linkbox; }
- set
- {
- linkbox = value;
- OnPropertyChanged("LinkBox");
- }
- }
-
- public BlocksText TextBlocks
- {
- get { return m_blocks; }
- set
- {
- m_blocks = value;
- OnPropertyChanged("TextBlocks");
- }
- }
-
- public LinesText SelectedLines
- {
- get { return m_lines; }
- set
- {
- m_lines = value;
- OnPropertyChanged("SelectedLines");
- }
- }
-
- public Page_Content_t Content
- {
- get { return content; }
- set { content = value; }
- }
-
- public String PageName
- {
- get { return pagename; }
- set { pagename = value; }
- }
-
- public int PageNum
- {
- get { return pagenum; }
- set { pagenum = value; }
- }
-
- public AA_t AA
- {
- get;
- set;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- // Create the OnPropertyChanged method to raise the event
- protected void OnPropertyChanged(string name)
- {
- PropertyChangedEventHandler handler = PropertyChanged;
- if (handler != null)
- {
- handler(this, new PropertyChangedEventArgs(name));
- }
- }
-
- public DocPage()
- {
- this.Height = 0;
- this.Width = 0;
- this.NativeHeight = 0;
- this.NativeWidth = 0;
- this.Zoom = 0;
- this.BitMap = null;
- this.TextBox = null;
- this.LinkBox = null;
- this.Content = Page_Content_t.NOTSET;
- this.PageNum = -1;
- this.PageName = "";
- this.TextBlocks = null;
- this.AA = AA_t.HIGH;
- }
-
- public DocPage(int Height, int Width, double Zoom, BitmapSource BitMap,
- List<RectList> TextBox, List<RectList> LinkBox,
- Page_Content_t Content, int PageNum, BlocksText TextBlocks,
- AA_t AA)
- {
- this.Height = Height;
- this.Width = Width;
- this.Zoom = Zoom;
- this.BitMap = BitMap;
- this.TextBox = TextBox;
- this.LinkBox = LinkBox;
- this.Content = Content;
- this.PageNum = PageNum;
- this.PageName = ("Page " + (PageNum + 1));
- this.TextBlocks = TextBlocks;
- this.AA = AA;
- }
- };
- public class Pages : ObservableCollection<DocPage>
- {
- public Pages()
- : base()
- {
- }
- }
-}
diff --git a/platform/winrt/gsview/Info.xaml b/platform/winrt/gsview/Info.xaml
deleted file mode 100644
index 4033d2ee..00000000
--- a/platform/winrt/gsview/Info.xaml
+++ /dev/null
@@ -1,11 +0,0 @@
-<Window x:Class="gsview.Info"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Info" Height="216.304" Width="430.434" Background="WhiteSmoke">
- <DockPanel LastChildFill="True">
- <Button DockPanel.Dock="Bottom" Width="70" Height="20" Name="xaml_CloseInfo" Click="OKClose" Margin="0,0,0,20" IsDefault="True">
- <TextBlock Name="xaml_ButtonText" FontFamily="Courier" Text="OK"/>
- </Button>
- <TextBlock Name="xaml_TextInfo" Text="File not open" Margin="10,10,10,10" FontFamily="Courier New"></TextBlock>
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/Info.xaml.cs b/platform/winrt/gsview/Info.xaml.cs
deleted file mode 100644
index 8a544aa8..00000000
--- a/platform/winrt/gsview/Info.xaml.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for Info.xaml
- /// </summary>
- public partial class Info : Window
- {
- public Info()
- {
- InitializeComponent();
- }
-
- private void OKClose(object sender, RoutedEventArgs e)
- {
- this.Close();
- }
- }
-}
diff --git a/platform/winrt/gsview/Install32/Install32.vdproj b/platform/winrt/gsview/Install32/Install32.vdproj
deleted file mode 100644
index 4fecfe14..00000000
--- a/platform/winrt/gsview/Install32/Install32.vdproj
+++ /dev/null
@@ -1,1225 +0,0 @@
-"DeployProject"
-{
-"VSVersion" = "3:800"
-"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
-"IsWebType" = "8:FALSE"
-"ProjectName" = "8:Install32"
-"LanguageId" = "3:1033"
-"CodePage" = "3:1252"
-"UILanguageId" = "3:1033"
-"SccProjectName" = "8:"
-"SccLocalPath" = "8:"
-"SccAuxPath" = "8:"
-"SccProvider" = "8:"
- "Hierarchy"
- {
- "Entry"
- {
- "MsmKey" = "8:_016DC0AD4FFB4399B8519ACA84400E23"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_14D6D6CD543648468701A0FE8D5A2463"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_1F1881EE52A84F49A62D42DE7E4D9D24"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_200E66532F6140579FA9390D6F7CC178"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_2684CEAF38794D53AF9D906A7F8D677C"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_389C02C6991141428A41BC2459A55E76"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_4826B6F3283A4770935083729B0777B2"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_791D64A55F0847788638D3FCDD1802DD"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_87036B53E422457DBCA496540B818802"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_A62B07FE876C4ACBBE7DEF7A219A570E"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_B2090A11BD04495DACDA72D4E5D72B7E"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- "MsmSig" = "8:_UNDEFINED"
- }
- }
- "Configurations"
- {
- "Debug"
- {
- "DisplayName" = "8:Debug"
- "IsDebugOnly" = "11:TRUE"
- "IsReleaseOnly" = "11:FALSE"
- "OutputFilename" = "8:Debug\\Install32.msi"
- "PackageFilesAs" = "3:2"
- "PackageFileSize" = "3:-2147483648"
- "CabType" = "3:1"
- "Compression" = "3:2"
- "SignOutput" = "11:FALSE"
- "CertificateFile" = "8:"
- "PrivateKeyFile" = "8:"
- "TimeStampServer" = "8:"
- "InstallerBootstrapper" = "3:2"
- "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
- {
- "Enabled" = "11:TRUE"
- "PromptEnabled" = "11:TRUE"
- "PrerequisitesLocation" = "2:1"
- "Url" = "8:"
- "ComponentsUrl" = "8:"
- }
- }
- "Release"
- {
- "DisplayName" = "8:Release"
- "IsDebugOnly" = "11:FALSE"
- "IsReleaseOnly" = "11:TRUE"
- "OutputFilename" = "8:Release\\Install32.msi"
- "PackageFilesAs" = "3:2"
- "PackageFileSize" = "3:-2147483648"
- "CabType" = "3:1"
- "Compression" = "3:2"
- "SignOutput" = "11:FALSE"
- "CertificateFile" = "8:"
- "PrivateKeyFile" = "8:"
- "TimeStampServer" = "8:"
- "InstallerBootstrapper" = "3:2"
- "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
- {
- "Enabled" = "11:TRUE"
- "PromptEnabled" = "11:TRUE"
- "PrerequisitesLocation" = "2:1"
- "Url" = "8:"
- "ComponentsUrl" = "8:"
- "Items"
- {
- "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5"
- {
- "Name" = "8:Microsoft .NET Framework 4.5 (x86 and x64)"
- "ProductCode" = "8:.NETFramework,Version=v4.5"
- }
- }
- }
- }
- }
- "Deployable"
- {
- "CustomAction"
- {
- }
- "DefaultFeature"
- {
- "Name" = "8:DefaultFeature"
- "Title" = "8:"
- "Description" = "8:"
- }
- "ExternalPersistence"
- {
- "LaunchCondition"
- {
- "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_3D4E37C6DF874A34821259A8B423B24C"
- {
- "Name" = "8:.NET Framework"
- "Message" = "8:[VSDNETMSG]"
- "FrameworkVersion" = "8:.NETFramework,Version=v4.5"
- "AllowLaterVersions" = "11:FALSE"
- "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=395269"
- }
- }
- }
- "File"
- {
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_016DC0AD4FFB4399B8519ACA84400E23"
- {
- "SourcePath" = "8:..\\Resources\\pagePNG.ico"
- "TargetName" = "8:pagePNG.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_14D6D6CD543648468701A0FE8D5A2463"
- {
- "SourcePath" = "8:..\\Resources\\pageCBZ.ico"
- "TargetName" = "8:pageCBZ.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1F1881EE52A84F49A62D42DE7E4D9D24"
- {
- "SourcePath" = "8:..\\Resources\\pageEPS.ico"
- "TargetName" = "8:pageEPS.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_200E66532F6140579FA9390D6F7CC178"
- {
- "SourcePath" = "8:..\\Resources\\pagePDF.ico"
- "TargetName" = "8:pagePDF.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2684CEAF38794D53AF9D906A7F8D677C"
- {
- "SourcePath" = "8:..\\Resources\\pagePS.ico"
- "TargetName" = "8:pagePS.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_389C02C6991141428A41BC2459A55E76"
- {
- "SourcePath" = "8:..\\Resources\\pageOXPS.ico"
- "TargetName" = "8:pageOXPS.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4826B6F3283A4770935083729B0777B2"
- {
- "SourcePath" = "8:..\\Resources\\pageJPG.ico"
- "TargetName" = "8:pageJPG.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4879181DB5BD4512A8A1790BC22435A0"
- {
- "AssemblyRegister" = "3:1"
- "AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:gsview, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL"
- "ScatterAssemblies"
- {
- }
- "SourcePath" = "8:..\\bin\\Release\\gsview.exe"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_F115E751BD3842299C96BA6F8A5B0F40"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_791D64A55F0847788638D3FCDD1802DD"
- {
- "SourcePath" = "8:..\\Resources\\pageXPS.ico"
- "TargetName" = "8:pageXPS.ico"
- "Tag" = "8:"
- "Folder" = "8:_F28BDA152FBB403EAF109B8E144140A8"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_87036B53E422457DBCA496540B818802"
- {
- "SourcePath" = "8:..\\bin\\Release\\mupdfnet32.dll"
- "TargetName" = "8:mupdfnet32.dll"
- "Tag" = "8:"
- "Folder" = "8:_F115E751BD3842299C96BA6F8A5B0F40"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A62B07FE876C4ACBBE7DEF7A219A570E"
- {
- "SourcePath" = "8:..\\gsview.visualelementsmanifest.xml"
- "TargetName" = "8:gsview.visualelementsmanifest.xml"
- "Tag" = "8:"
- "Folder" = "8:_F115E751BD3842299C96BA6F8A5B0F40"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B2090A11BD04495DACDA72D4E5D72B7E"
- {
- "SourcePath" = "8:..\\gslib\\gsdll32.dll"
- "TargetName" = "8:gsdll32.dll"
- "Tag" = "8:"
- "Folder" = "8:_F115E751BD3842299C96BA6F8A5B0F40"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- }
- "FileType"
- {
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_12B01738B600492AA1C8D89AD0821413"
- {
- "Name" = "8:CDisplay ZIP Archived Comic Book file"
- "Description" = "8:CDisplay ZIP Archived Comic Book file"
- "Extensions" = "8:cbz"
- "MIME" = "8:"
- "Icon" = "8:_14D6D6CD543648468701A0FE8D5A2463"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_33B319EC439B40E38BD09902607AFE0B"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_13D929725BF0460F823C23414FB2F0A1"
- {
- "Name" = "8:Open XPS Document"
- "Description" = "8:Open XPS Document"
- "Extensions" = "8:oxps"
- "MIME" = "8:"
- "Icon" = "8:_389C02C6991141428A41BC2459A55E76"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_02319B3587ED4701B20BE6C84D578514"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_65F612197D8D450C8AC251D615131D21"
- {
- "Name" = "8:PostScript File"
- "Description" = "8:PostScript File"
- "Extensions" = "8:ps"
- "MIME" = "8:"
- "Icon" = "8:_2684CEAF38794D53AF9D906A7F8D677C"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_1CC8050B2F6146E6A1F7C71C12ACB66E"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_69F979C4C92C4C348E8001B157A92FED"
- {
- "Name" = "8:EPS File"
- "Description" = "8:EPS File"
- "Extensions" = "8:eps"
- "MIME" = "8:"
- "Icon" = "8:_1F1881EE52A84F49A62D42DE7E4D9D24"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_EA00D9AD05ED40BE82A6F8CF37AA21EE"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_A5691CEB907F4D66A3FE718B4FF65E8D"
- {
- "Name" = "8:PNG image"
- "Description" = "8:PNG image"
- "Extensions" = "8:png"
- "MIME" = "8:"
- "Icon" = "8:_016DC0AD4FFB4399B8519ACA84400E23"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_95A3859E50134298ACEA0E1EACA47513"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_CD91C7FED2C94607AC5CFB7F6571A963"
- {
- "Name" = "8:XPS Document"
- "Description" = "8:XPS Document"
- "Extensions" = "8:xps"
- "MIME" = "8:"
- "Icon" = "8:_791D64A55F0847788638D3FCDD1802DD"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_C39CD59228F345E48878777D30252120"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_EA8DCA7319A3441EA0A8F07F20C7EC71"
- {
- "Name" = "8:JPEG image"
- "Description" = "8:JPEG image"
- "Extensions" = "8:jpeg"
- "MIME" = "8:"
- "Icon" = "8:_4826B6F3283A4770935083729B0777B2"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_90799BABA05F49D6AB9D093411DD157E"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_EA91006930CC4A349642A7F0AD319AA4"
- {
- "Name" = "8:PDF"
- "Description" = "8:PDF"
- "Extensions" = "8:pdf"
- "MIME" = "8:"
- "Icon" = "8:_200E66532F6140579FA9390D6F7CC178"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_D9041E3AC16C43E4AF1822F9103B24D6"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- }
- "Folder"
- {
- "{1525181F-901A-416C-8A58-119130FE478E}:_05287FF94E284ACF9E55AD5BF0AF82E6"
- {
- "Name" = "8:#1919"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:ProgramMenuFolder"
- "Folders"
- {
- "{9EF0B969-E518-4E46-987F-47570745A589}:_8ADA7142ADE14DFFA878A5107FE5C304"
- {
- "Name" = "8:Artifex Software"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:_AF85737E4DAA4E318495768F54D7F0AF"
- "Folders"
- {
- }
- }
- }
- }
- "{1525181F-901A-416C-8A58-119130FE478E}:_74B5607A82364A9E8F63FA435CF2C5FA"
- {
- "Name" = "8:#1916"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:DesktopFolder"
- "Folders"
- {
- }
- }
- "{3C67513D-01DD-4637-8A68-80971EB9504F}:_F115E751BD3842299C96BA6F8A5B0F40"
- {
- "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]"
- "Name" = "8:#1925"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:TARGETDIR"
- "Folders"
- {
- "{9EF0B969-E518-4E46-987F-47570745A589}:_F28BDA152FBB403EAF109B8E144140A8"
- {
- "Name" = "8:Resources"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:_76594C33BABA488DBC160B0B115E0F1B"
- "Folders"
- {
- }
- }
- }
- }
- }
- "LaunchCondition"
- {
- }
- "Locator"
- {
- }
- "MsiBootstrapper"
- {
- "LangId" = "3:1033"
- "RequiresElevation" = "11:FALSE"
- }
- "Product"
- {
- "Name" = "8:Microsoft Visual Studio"
- "ProductName" = "8:GSview 6.0"
- "ProductCode" = "8:{BB8C85F6-5B3C-4163-9B55-6B07E747E947}"
- "PackageCode" = "8:{85959242-0814-4BFE-8891-EE46ADB397D6}"
- "UpgradeCode" = "8:{00F5E049-7C22-449F-9879-A4D6A7634B7E}"
- "AspNetVersion" = "8:4.0.30319.0"
- "RestartWWWService" = "11:FALSE"
- "RemovePreviousVersions" = "11:TRUE"
- "DetectNewerInstalledVersion" = "11:TRUE"
- "InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:6.0.0"
- "Manufacturer" = "8:Artifex Software"
- "ARPHELPTELEPHONE" = "8:"
- "ARPHELPLINK" = "8:http://www.artifex.com"
- "Title" = "8:Install GSview 6.0 x86"
- "Subject" = "8:"
- "ARPCONTACT" = "8:Artifex Software"
- "Keywords" = "8:"
- "ARPCOMMENTS" = "8:Install GSview 6.0 for x86"
- "ARPURLINFOABOUT" = "8:http://www.artifex.com"
- "ARPPRODUCTICON" = "8:"
- "ARPIconIndex" = "3:0"
- "SearchPath" = "8:"
- "UseSystemSearchPath" = "11:TRUE"
- "TargetPlatform" = "3:0"
- "PreBuildEvent" = "8:"
- "PostBuildEvent" = "8:"
- "RunPostBuildEvent" = "3:0"
- }
- "Registry"
- {
- "HKLM"
- {
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_233AE572F5BA48D1A577D7F88DE5C94E"
- {
- "Name" = "8:Software"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_75350EE0EC77414B82CAB14EAF87F8AA"
- {
- "Name" = "8:[Manufacturer]"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- }
- "Values"
- {
- }
- }
- }
- "Values"
- {
- }
- }
- }
- }
- "HKCU"
- {
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_18E520707B824ADE8636026ABE055101"
- {
- "Name" = "8:Software"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_07D3F609B0F0416CB43A58C33358E4B5"
- {
- "Name" = "8:[Manufacturer]"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- }
- "Values"
- {
- }
- }
- }
- "Values"
- {
- }
- }
- }
- }
- "HKCR"
- {
- "Keys"
- {
- }
- }
- "HKU"
- {
- "Keys"
- {
- }
- }
- "HKPU"
- {
- "Keys"
- {
- }
- }
- }
- "Sequences"
- {
- }
- "Shortcut"
- {
- "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_027434B1EED34DEF86F7CF3635B5FD30"
- {
- "Name" = "8:GSView 6.0"
- "Arguments" = "8:"
- "Description" = "8:"
- "ShowCmd" = "3:1"
- "IconIndex" = "3:32512"
- "Transitive" = "11:FALSE"
- "Target" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- "Folder" = "8:_8ADA7142ADE14DFFA878A5107FE5C304"
- "WorkingFolder" = "8:_F115E751BD3842299C96BA6F8A5B0F40"
- "Icon" = "8:_4879181DB5BD4512A8A1790BC22435A0"
- "Feature" = "8:"
- }
- }
- "UserInterface"
- {
- "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_1F01AD235CE94923AAD616EC2F3B2101"
- {
- "UseDynamicProperties" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_332E71C0C4E14EB9950570071C650B0B"
- {
- "Name" = "8:#1902"
- "Sequence" = "3:2"
- "Attributes" = "3:3"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_20E5387842C44457BF0F53E5E053BADA"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Finished"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_50F65640B6CC47C882EDDB10C3EA355C"
- {
- "Name" = "8:#1902"
- "Sequence" = "3:1"
- "Attributes" = "3:3"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C0FA7EB2C0E949D99D49ED30340AD678"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Finished"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "UpdateText"
- {
- "Name" = "8:UpdateText"
- "DisplayName" = "8:#1058"
- "Description" = "8:#1158"
- "Type" = "3:15"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1258"
- "DefaultValue" = "8:#1258"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_8B3DB474F8184537ABFC9E001FAD6796"
- {
- "UseDynamicProperties" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_90A48D00803D4600A3A0587F503DF240"
- {
- "Name" = "8:#1901"
- "Sequence" = "3:1"
- "Attributes" = "3:2"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_AC19A30ACDE24F4C9F6FC61008980022"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Progress"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "ShowProgress"
- {
- "Name" = "8:ShowProgress"
- "DisplayName" = "8:#1009"
- "Description" = "8:#1109"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BF426D392BBE410FB49E79B38576061E"
- {
- "Name" = "8:#1901"
- "Sequence" = "3:2"
- "Attributes" = "3:2"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_672D3C120E06497894B6A7787DB2AD1D"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Progress"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "ShowProgress"
- {
- "Name" = "8:ShowProgress"
- "DisplayName" = "8:#1009"
- "Description" = "8:#1109"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_ECDD7A4101B249C88A997FF923CC7009"
- {
- "Name" = "8:#1900"
- "Sequence" = "3:1"
- "Attributes" = "3:1"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_51BA1897377D4A5D98ACE0E2EB251293"
- {
- "Sequence" = "3:300"
- "DisplayName" = "8:Confirm Installation"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_AC4CC79CCC9E47D59B61182471DE1D40"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Welcome"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "CopyrightWarning"
- {
- "Name" = "8:CopyrightWarning"
- "DisplayName" = "8:#1002"
- "Description" = "8:#1102"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1202"
- "DefaultValue" = "8:#1202"
- "UsePlugInResources" = "11:TRUE"
- }
- "Welcome"
- {
- "Name" = "8:Welcome"
- "DisplayName" = "8:#1003"
- "Description" = "8:#1103"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1203"
- "DefaultValue" = "8:#1203"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F1DD6CBB2F29447BB67A41DC327C2254"
- {
- "Sequence" = "3:200"
- "DisplayName" = "8:Installation Folder"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "InstallAllUsersVisible"
- {
- "Name" = "8:InstallAllUsersVisible"
- "DisplayName" = "8:#1059"
- "Description" = "8:#1159"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F2A4ABF584D248E7812843F3F6D91F91"
- {
- "Name" = "8:#1900"
- "Sequence" = "3:2"
- "Attributes" = "3:1"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2A85F1F786AB43EF820FA580E2689977"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Welcome"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "CopyrightWarning"
- {
- "Name" = "8:CopyrightWarning"
- "DisplayName" = "8:#1002"
- "Description" = "8:#1102"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1202"
- "DefaultValue" = "8:#1202"
- "UsePlugInResources" = "11:TRUE"
- }
- "Welcome"
- {
- "Name" = "8:Welcome"
- "DisplayName" = "8:#1003"
- "Description" = "8:#1103"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1203"
- "DefaultValue" = "8:#1203"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E63962ADBAE3438ABDEFC6290FFF9B71"
- {
- "Sequence" = "3:200"
- "DisplayName" = "8:Installation Folder"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FD25300108814F51958E9811E0EF375D"
- {
- "Sequence" = "3:300"
- "DisplayName" = "8:Confirm Installation"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- }
- "MergeModule"
- {
- }
- "ProjectOutput"
- {
- }
- }
-}
diff --git a/platform/winrt/gsview/Install64/Install64.vdproj b/platform/winrt/gsview/Install64/Install64.vdproj
deleted file mode 100644
index 1d660c05..00000000
--- a/platform/winrt/gsview/Install64/Install64.vdproj
+++ /dev/null
@@ -1,1238 +0,0 @@
-"DeployProject"
-{
-"VSVersion" = "3:800"
-"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
-"IsWebType" = "8:FALSE"
-"ProjectName" = "8:Install64"
-"LanguageId" = "3:1033"
-"CodePage" = "3:1252"
-"UILanguageId" = "3:1033"
-"SccProjectName" = "8:"
-"SccLocalPath" = "8:"
-"SccAuxPath" = "8:"
-"SccProvider" = "8:"
- "Hierarchy"
- {
- "Entry"
- {
- "MsmKey" = "8:_0BD3A92E2F2F40A3B601C2CF21584C48"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_157FB597E59745DFAD45AE54F232D39D"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_1BF4736955034DCEBB4B7C53AEFECA2A"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_28423EA654C8488A8F59859D947164F4"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_372F38F3347F4E0491FA521F236BA54C"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_44A71C9401B94929A3DF6828309FE684"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_6724F24524E24AA1907957AF0812BD09"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_9F16FF3C56C249B58F3F64B821ABBF97"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_AB1B21BC24164EF4929937FE8C3ED270"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_BC8D174211B84DE6968562ECF0A0443B"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_C11D0300BF42444AA9362921375DF910"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_D300E715CB524AF1AE46CE9EB3ED67C8"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_44A71C9401B94929A3DF6828309FE684"
- "MsmSig" = "8:_UNDEFINED"
- }
- }
- "Configurations"
- {
- "Debug"
- {
- "DisplayName" = "8:Debug"
- "IsDebugOnly" = "11:TRUE"
- "IsReleaseOnly" = "11:FALSE"
- "OutputFilename" = "8:Debug\\Install64.msi"
- "PackageFilesAs" = "3:2"
- "PackageFileSize" = "3:-2147483648"
- "CabType" = "3:1"
- "Compression" = "3:2"
- "SignOutput" = "11:FALSE"
- "CertificateFile" = "8:"
- "PrivateKeyFile" = "8:"
- "TimeStampServer" = "8:"
- "InstallerBootstrapper" = "3:2"
- "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
- {
- "Enabled" = "11:TRUE"
- "PromptEnabled" = "11:TRUE"
- "PrerequisitesLocation" = "2:1"
- "Url" = "8:"
- "ComponentsUrl" = "8:"
- "Items"
- {
- "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5"
- {
- "Name" = "8:Microsoft .NET Framework 4.5 (x86 and x64)"
- "ProductCode" = "8:.NETFramework,Version=v4.5"
- }
- }
- }
- }
- "Release"
- {
- "DisplayName" = "8:Release"
- "IsDebugOnly" = "11:FALSE"
- "IsReleaseOnly" = "11:TRUE"
- "OutputFilename" = "8:Release\\Install64.msi"
- "PackageFilesAs" = "3:2"
- "PackageFileSize" = "3:-2147483648"
- "CabType" = "3:1"
- "Compression" = "3:2"
- "SignOutput" = "11:FALSE"
- "CertificateFile" = "8:"
- "PrivateKeyFile" = "8:"
- "TimeStampServer" = "8:"
- "InstallerBootstrapper" = "3:2"
- "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
- {
- "Enabled" = "11:TRUE"
- "PromptEnabled" = "11:TRUE"
- "PrerequisitesLocation" = "2:1"
- "Url" = "8:"
- "ComponentsUrl" = "8:"
- "Items"
- {
- "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5"
- {
- "Name" = "8:Microsoft .NET Framework 4.5 (x86 and x64)"
- "ProductCode" = "8:.NETFramework,Version=v4.5"
- }
- }
- }
- }
- }
- "Deployable"
- {
- "CustomAction"
- {
- }
- "DefaultFeature"
- {
- "Name" = "8:DefaultFeature"
- "Title" = "8:"
- "Description" = "8:"
- }
- "ExternalPersistence"
- {
- "LaunchCondition"
- {
- "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_D0F5C30769F1419B8C1834A6F984A56F"
- {
- "Name" = "8:.NET Framework"
- "Message" = "8:[VSDNETMSG]"
- "FrameworkVersion" = "8:.NETFramework,Version=v4.5"
- "AllowLaterVersions" = "11:FALSE"
- "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=395269"
- }
- }
- }
- "File"
- {
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0BD3A92E2F2F40A3B601C2CF21584C48"
- {
- "SourcePath" = "8:..\\Resources\\pageEPS.ico"
- "TargetName" = "8:pageEPS.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_157FB597E59745DFAD45AE54F232D39D"
- {
- "SourcePath" = "8:..\\Resources\\pageXPS.ico"
- "TargetName" = "8:pageXPS.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1BF4736955034DCEBB4B7C53AEFECA2A"
- {
- "SourcePath" = "8:..\\gslib\\gsdll64.dll"
- "TargetName" = "8:gsdll64.dll"
- "Tag" = "8:"
- "Folder" = "8:_CDB2B40979C34EBAA8A815DA144BF441"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_28423EA654C8488A8F59859D947164F4"
- {
- "SourcePath" = "8:..\\Resources\\pageOXPS.ico"
- "TargetName" = "8:pageOXPS.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_372F38F3347F4E0491FA521F236BA54C"
- {
- "SourcePath" = "8:..\\bin\\Release\\mupdfnet64.dll"
- "TargetName" = "8:mupdfnet64.dll"
- "Tag" = "8:"
- "Folder" = "8:_CDB2B40979C34EBAA8A815DA144BF441"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_44A71C9401B94929A3DF6828309FE684"
- {
- "AssemblyRegister" = "3:1"
- "AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:gsview, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL"
- "ScatterAssemblies"
- {
- "_44A71C9401B94929A3DF6828309FE684"
- {
- "Name" = "8:gsview.exe"
- "Attributes" = "3:512"
- }
- }
- "SourcePath" = "8:..\\bin\\Release\\gsview.exe"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_CDB2B40979C34EBAA8A815DA144BF441"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6724F24524E24AA1907957AF0812BD09"
- {
- "SourcePath" = "8:..\\Resources\\pagePS.ico"
- "TargetName" = "8:pagePS.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9F16FF3C56C249B58F3F64B821ABBF97"
- {
- "SourcePath" = "8:..\\Resources\\pageCBZ.ico"
- "TargetName" = "8:pageCBZ.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_AB1B21BC24164EF4929937FE8C3ED270"
- {
- "SourcePath" = "8:..\\Resources\\pagePDF.ico"
- "TargetName" = "8:pagePDF.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BC8D174211B84DE6968562ECF0A0443B"
- {
- "SourcePath" = "8:..\\gsview.visualelementsmanifest.xml"
- "TargetName" = "8:gsview.visualelementsmanifest.xml"
- "Tag" = "8:"
- "Folder" = "8:_CDB2B40979C34EBAA8A815DA144BF441"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C11D0300BF42444AA9362921375DF910"
- {
- "SourcePath" = "8:..\\Resources\\pagePNG.ico"
- "TargetName" = "8:pagePNG.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D300E715CB524AF1AE46CE9EB3ED67C8"
- {
- "SourcePath" = "8:..\\Resources\\pageJPG.ico"
- "TargetName" = "8:pageJPG.ico"
- "Tag" = "8:"
- "Folder" = "8:_52FA2F218E56408DA37ABFD7E103994C"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
- }
- "FileType"
- {
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_11428E8F96C54BA3900AF3407233AAC0"
- {
- "Name" = "8:PostScript File"
- "Description" = "8:PostScript File"
- "Extensions" = "8:ps"
- "MIME" = "8:"
- "Icon" = "8:_6724F24524E24AA1907957AF0812BD09"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_8E3935BB44F543D5B0E48ACB12FF306D"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_5C233C0E4937479FB108F39E16FABDE6"
- {
- "Name" = "8:CDisplay ZIP Archived Comic Book file"
- "Description" = "8:CDisplay ZIP Archived Comic Book file"
- "Extensions" = "8:cbz"
- "MIME" = "8:"
- "Icon" = "8:_9F16FF3C56C249B58F3F64B821ABBF97"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_8D3603F262824461A9EA284DBB30D575"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_61007590E6A24BA1A769A064AC2AC094"
- {
- "Name" = "8:JPEG image"
- "Description" = "8:JPEG image"
- "Extensions" = "8:jpeg"
- "MIME" = "8:"
- "Icon" = "8:_D300E715CB524AF1AE46CE9EB3ED67C8"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_0E6BD260F46C4A89891F1D0A7029A6EF"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_962DBD1C82974C33960B863AB9E1FC9F"
- {
- "Name" = "8:Open XPS Document"
- "Description" = "8:Open XPS Document"
- "Extensions" = "8:oxps"
- "MIME" = "8:"
- "Icon" = "8:_28423EA654C8488A8F59859D947164F4"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_6B19B65AF043423897A64F9129571FE9"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_A59FDC99A2564A0089516522926CE6C3"
- {
- "Name" = "8:PNG image"
- "Description" = "8:PNG image"
- "Extensions" = "8:png"
- "MIME" = "8:"
- "Icon" = "8:_C11D0300BF42444AA9362921375DF910"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_948A77318E904662886D34BDC0BCFE0E"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_A8D59D004BB94148B529FD692DDC5460"
- {
- "Name" = "8:XPS Document"
- "Description" = "8:XPS Document"
- "Extensions" = "8:xps"
- "MIME" = "8:"
- "Icon" = "8:_157FB597E59745DFAD45AE54F232D39D"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_A9ABA43924574B7A992B78537E7F2FB7"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_A8EDD49D509A4974B971BF4FBD093455"
- {
- "Name" = "8:PDF"
- "Description" = "8:PDF"
- "Extensions" = "8:pdf"
- "MIME" = "8:"
- "Icon" = "8:_AB1B21BC24164EF4929937FE8C3ED270"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_9396BB7A2A2841B0890D2DB6A6360F4E"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- "{5EB83D71-FA18-4901-BE56-DE22E13CC478}:_AA94DC1A560A4224A9410A3EAAB34D77"
- {
- "Name" = "8:EPS File"
- "Description" = "8:EPS File"
- "Extensions" = "8:eps"
- "MIME" = "8:"
- "Icon" = "8:_0BD3A92E2F2F40A3B601C2CF21584C48"
- "IconIndex" = "3:0"
- "Command"
- {
- "Command" = "8:_44A71C9401B94929A3DF6828309FE684"
- }
- "Verbs"
- {
- "{95C0C507-CBF0-42B8-B119-07219E384A4A}:_BAFA7BE3B6AF4D9283D623A69D266E9B"
- {
- "Command" = "8:&Open"
- "Verb" = "8:open"
- "Arguments" = "8:\"%1\""
- "Order" = "3:0"
- }
- }
- }
- }
- "Folder"
- {
- "{1525181F-901A-416C-8A58-119130FE478E}:_A2CF2A9B6D384F768C297CC789FBB997"
- {
- "Name" = "8:#1916"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:DesktopFolder"
- "Folders"
- {
- }
- }
- "{1525181F-901A-416C-8A58-119130FE478E}:_BE3A2AB1B2C04D7AB9F691ADFDCA6EE1"
- {
- "Name" = "8:#1919"
- "AlwaysCreate" = "11:TRUE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:ProgramMenuFolder"
- "Folders"
- {
- "{9EF0B969-E518-4E46-987F-47570745A589}:_EAE10184B82B40399A965598BE4C92BC"
- {
- "Name" = "8:Artifex Software"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:_6289816925F64FEEA99AF2712A31DF22"
- "Folders"
- {
- }
- }
- }
- }
- "{3C67513D-01DD-4637-8A68-80971EB9504F}:_CDB2B40979C34EBAA8A815DA144BF441"
- {
- "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]"
- "Name" = "8:#1925"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:TARGETDIR"
- "Folders"
- {
- "{9EF0B969-E518-4E46-987F-47570745A589}:_52FA2F218E56408DA37ABFD7E103994C"
- {
- "Name" = "8:Resources"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:_0E795A41F6474AC8ACB9997020B3421A"
- "Folders"
- {
- }
- }
- }
- }
- }
- "LaunchCondition"
- {
- }
- "Locator"
- {
- }
- "MsiBootstrapper"
- {
- "LangId" = "3:1033"
- "RequiresElevation" = "11:FALSE"
- }
- "Product"
- {
- "Name" = "8:Microsoft Visual Studio"
- "ProductName" = "8:GSview 6.0"
- "ProductCode" = "8:{A22596C0-BCF4-46F9-9CF2-1C66E8588C30}"
- "PackageCode" = "8:{8B802149-336B-4DEB-A58A-ABDF1941600D}"
- "UpgradeCode" = "8:{B494B7A2-738F-4F9D-87F4-31830A16FB76}"
- "AspNetVersion" = "8:4.0.30319.0"
- "RestartWWWService" = "11:FALSE"
- "RemovePreviousVersions" = "11:TRUE"
- "DetectNewerInstalledVersion" = "11:TRUE"
- "InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:6.0.0"
- "Manufacturer" = "8:Artifex Software"
- "ARPHELPTELEPHONE" = "8:"
- "ARPHELPLINK" = "8:http://www.artifex.com"
- "Title" = "8:Install GSview 6.0 x64"
- "Subject" = "8:"
- "ARPCONTACT" = "8:Artifex Software"
- "Keywords" = "8:"
- "ARPCOMMENTS" = "8:Install GSview 6.0 for x64"
- "ARPURLINFOABOUT" = "8:http://www.artifex.com"
- "ARPPRODUCTICON" = "8:_44A71C9401B94929A3DF6828309FE684"
- "ARPIconIndex" = "3:32512"
- "SearchPath" = "8:"
- "UseSystemSearchPath" = "11:TRUE"
- "TargetPlatform" = "3:1"
- "PreBuildEvent" = "8:"
- "PostBuildEvent" = "8:"
- "RunPostBuildEvent" = "3:0"
- }
- "Registry"
- {
- "HKLM"
- {
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_1E605C0AD6C1431799974106D953AE68"
- {
- "Name" = "8:Software"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_22F6F34C883A4B46B3D926048627ECB6"
- {
- "Name" = "8:[Manufacturer]"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- }
- "Values"
- {
- }
- }
- }
- "Values"
- {
- }
- }
- }
- }
- "HKCU"
- {
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C1C61CD1AF1A4D718391EC0C924CCEDC"
- {
- "Name" = "8:Software"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_78C4B8465B114416A32C1313FA510012"
- {
- "Name" = "8:[Manufacturer]"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- }
- "Values"
- {
- }
- }
- }
- "Values"
- {
- }
- }
- }
- }
- "HKCR"
- {
- "Keys"
- {
- }
- }
- "HKU"
- {
- "Keys"
- {
- }
- }
- "HKPU"
- {
- "Keys"
- {
- }
- }
- }
- "Sequences"
- {
- }
- "Shortcut"
- {
- "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_DD3E47DAFCAA48ED9A8A02F3B29E888E"
- {
- "Name" = "8:GSView 6.0"
- "Arguments" = "8:"
- "Description" = "8:"
- "ShowCmd" = "3:1"
- "IconIndex" = "3:32512"
- "Transitive" = "11:FALSE"
- "Target" = "8:_44A71C9401B94929A3DF6828309FE684"
- "Folder" = "8:_EAE10184B82B40399A965598BE4C92BC"
- "WorkingFolder" = "8:_CDB2B40979C34EBAA8A815DA144BF441"
- "Icon" = "8:_44A71C9401B94929A3DF6828309FE684"
- "Feature" = "8:"
- }
- }
- "UserInterface"
- {
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_84D62A451A39423FB4CBFBF0B05992AE"
- {
- "Name" = "8:#1901"
- "Sequence" = "3:2"
- "Attributes" = "3:2"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_91A9D42868164E8A8F4197F300F1B9D8"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Progress"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "ShowProgress"
- {
- "Name" = "8:ShowProgress"
- "DisplayName" = "8:#1009"
- "Description" = "8:#1109"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8A4A575119DD460AA6774C08CB4BA465"
- {
- "Name" = "8:#1901"
- "Sequence" = "3:1"
- "Attributes" = "3:2"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_44BF62E80B0E4B2DA3C75D4B8B3D11EB"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Progress"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "ShowProgress"
- {
- "Name" = "8:ShowProgress"
- "DisplayName" = "8:#1009"
- "Description" = "8:#1109"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_914CB62F95114045827D6FD18322AE3C"
- {
- "Name" = "8:#1900"
- "Sequence" = "3:2"
- "Attributes" = "3:1"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1A397F336F944DEAB35C08D6CEA5FE2A"
- {
- "Sequence" = "3:300"
- "DisplayName" = "8:Confirm Installation"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5A2C0AE1AE7D4D17B87F0474E7424544"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Welcome"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "CopyrightWarning"
- {
- "Name" = "8:CopyrightWarning"
- "DisplayName" = "8:#1002"
- "Description" = "8:#1102"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1202"
- "DefaultValue" = "8:#1202"
- "UsePlugInResources" = "11:TRUE"
- }
- "Welcome"
- {
- "Name" = "8:Welcome"
- "DisplayName" = "8:#1003"
- "Description" = "8:#1103"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1203"
- "DefaultValue" = "8:#1203"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FFE13B0235424B189193B4E4F400CB78"
- {
- "Sequence" = "3:200"
- "DisplayName" = "8:Installation Folder"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_BC4637BE7ED7492A9359C01A9E29ACDC"
- {
- "UseDynamicProperties" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
- }
- "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_C0B167A59DF14DA9A4170111D28C6057"
- {
- "UseDynamicProperties" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C71BEB46A03841F0A26B15DC40628CE8"
- {
- "Name" = "8:#1902"
- "Sequence" = "3:2"
- "Attributes" = "3:3"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E843264C683A45A5B80393D60A1EA3EB"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Finished"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_DD9DE969B7A74DAC8E617049CE2C3AC1"
- {
- "Name" = "8:#1900"
- "Sequence" = "3:1"
- "Attributes" = "3:1"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A7B7CDCFC5904E1D9128AA5B88FE3583"
- {
- "Sequence" = "3:200"
- "DisplayName" = "8:Installation Folder"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "InstallAllUsersVisible"
- {
- "Name" = "8:InstallAllUsersVisible"
- "DisplayName" = "8:#1059"
- "Description" = "8:#1159"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BC68E9D5B9714365AD5E43D2BD52B953"
- {
- "Sequence" = "3:300"
- "DisplayName" = "8:Confirm Installation"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D4358EB6E55E497193888CAFBDD4F2C9"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Welcome"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:0"
- "UsePlugInResources" = "11:TRUE"
- }
- "CopyrightWarning"
- {
- "Name" = "8:CopyrightWarning"
- "DisplayName" = "8:#1002"
- "Description" = "8:#1102"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1202"
- "DefaultValue" = "8:#1202"
- "UsePlugInResources" = "11:TRUE"
- }
- "Welcome"
- {
- "Name" = "8:Welcome"
- "DisplayName" = "8:#1003"
- "Description" = "8:#1103"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1203"
- "DefaultValue" = "8:#1203"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F3C1167A3B7748BCB1C893E82BBED76A"
- {
- "Name" = "8:#1902"
- "Sequence" = "3:1"
- "Attributes" = "3:3"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9313CCEC27A04A03B8010FCEC3B1BEC1"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Finished"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "UpdateText"
- {
- "Name" = "8:UpdateText"
- "DisplayName" = "8:#1058"
- "Description" = "8:#1158"
- "Type" = "3:15"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1258"
- "DefaultValue" = "8:#1258"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- }
- "MergeModule"
- {
- }
- "ProjectOutput"
- {
- }
- }
-}
diff --git a/platform/winrt/gsview/Links.cs b/platform/winrt/gsview/Links.cs
deleted file mode 100644
index ef902381..00000000
--- a/platform/winrt/gsview/Links.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.Drawing;
-
-namespace gsview
-{
- public enum link_t
- {
- LINK_GOTO = 0,
- LINK_URI,
- TEXTBOX, /* Do double duty with this class */
- NOT_SET,
- };
-
- class Links
- {
- link_t type;
- Uri uri;
- int page_num;
-
- public Links()
- {
- uri = new Uri("");
- page_num = -1;
- type = link_t.NOT_SET;
- }
- }
-}
diff --git a/platform/winrt/gsview/MainWindow.xaml b/platform/winrt/gsview/MainWindow.xaml
deleted file mode 100644
index 10d126bb..00000000
--- a/platform/winrt/gsview/MainWindow.xaml
+++ /dev/null
@@ -1,794 +0,0 @@
-<Window x:Class="gsview.MainWindow"
- xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="gsview" Height="850" Width="714" UseLayoutRounding="True"
- KeyDown="OnKeyDownHandler" Closing="AppClosing">
- <!-- UseLayoutRounding needed to avoid funny interpolation effects on pages -->
-
- <Window.Resources>
- <DataTemplate x:Key="PageTemplate">
- <Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="{Binding Height}" Width="{Binding Width}" Margin="0,0,0,0"
- MouseLeftButtonDown="PageMouseDown" MouseMove="PageMouseMove" MouseLeftButtonUp="PageLeftClickUp" ClipToBounds="True"
- MouseRightButtonDown="ShowContextMenu">
- <Image Width="{Binding Width}" Height="{Binding Height}" Stretch="Fill" HorizontalAlignment="Center" Source="{Binding BitMap}">
- <Image.BitmapEffect>
- <DropShadowBitmapEffect Color="Black" Direction="-50"
- ShadowDepth="40" Softness=".7" />
- </Image.BitmapEffect>
- </Image>
-
- <!-- Single selection rectangle. Not a list -->
- <Rectangle Width="{Binding Path=SelWidth}" Height="{Binding Path=SelHeight}" Stroke="{Binding Path=SelColor}">
- <Rectangle.RenderTransform>
- <TranslateTransform X="{Binding Path=SelX}" Y="{Binding Path=SelY}"/>
- </Rectangle.RenderTransform>
- </Rectangle>
-
- <ItemsControl ItemsSource="{Binding Path=TextBox}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <Canvas/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Rectangle Tag="{Binding Path=Index}" Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}">
- <Rectangle.RenderTransform>
- <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/>
- </Rectangle.RenderTransform>
- </Rectangle>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
-
- <ItemsControl ItemsSource="{Binding Path=SelectedLines}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <Canvas/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Rectangle Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}">
- <Rectangle.RenderTransform>
- <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/>
- </Rectangle.RenderTransform>
- </Rectangle>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
-
- <ItemsControl ItemsSource="{Binding Path=TextBlocks}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <Canvas/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Rectangle Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}" MouseLeave="ExitTextBlock" MouseEnter="EnterTextBlock">
- <Rectangle.RenderTransform>
- <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/>
- </Rectangle.RenderTransform>
- </Rectangle>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
-
- <ItemsControl ItemsSource="{Binding Path=LinkBox}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <Canvas/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Rectangle Tag="{Binding Path=Index}" Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}" IsEnabled="True" MouseDown="LinkClick">
- <Rectangle.RenderTransform>
- <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/>
- </Rectangle.RenderTransform>
- </Rectangle>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
-
- </Canvas>
- </DataTemplate>
-
- <DataTemplate x:Key="ThumbTemplate">
- <Image Width="{Binding Width}" Height="{Binding Height}" Stretch="Fill" HorizontalAlignment="Center" Source="{Binding BitMap}" Margin="24,24,0,0">
- <Image.BitmapEffect>
- <DropShadowBitmapEffect Color="Black" Direction="-50"
- ShadowDepth="5" Softness=".7" />
- </Image.BitmapEffect>
- </Image>
- </DataTemplate>
-
- <Style TargetType="{x:Type Button}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type Button}">
- <ControlTemplate.Triggers>
- <Trigger Property="IsPressed" Value="True">
- <Setter Property="Background" Value="Black" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!-- Customize listview to turn off selection -->
- </Window.Resources>
-
- <!-- The following is needed to set up all the keyboard short cuts -->
- <Window.CommandBindings>
- <CommandBinding Command="Open" Executed="OpenFileCommand"></CommandBinding>
- <CommandBinding Command="SelectAll" Executed="SelectAllCommand"></CommandBinding>
- <CommandBinding Command="Copy" Executed="CopyCommand"></CommandBinding>
- <CommandBinding Command="Print" Executed="PrintCommand"></CommandBinding>
- <CommandBinding Command="Help" Executed="HelpCommand"></CommandBinding>
- <CommandBinding Command="Close" Executed="CloseCommand"></CommandBinding>
- </Window.CommandBindings>
- <Window.InputBindings>
- <KeyBinding Key="O" Modifiers="Control" Command="Open"></KeyBinding>
- <KeyBinding Key="A" Modifiers="Control" Command="SelectAll"></KeyBinding>
- <KeyBinding Key="C" Modifiers="Control" Command="Copy"></KeyBinding>
- <KeyBinding Key="P" Modifiers="Control" Command="Print"></KeyBinding>
- <KeyBinding Key="W" Modifiers="Control" Command="Close"></KeyBinding>
- <KeyBinding Key="F1" Command="Help"></KeyBinding>
- </Window.InputBindings>
-
- <!-- To do add in command short cuts and bindings -->
- <DockPanel LastChildFill="True">
- <!-- Menu item at top -->
- <Menu IsMainMenu="True" DockPanel.Dock="Top">
- <MenuItem Header="_File" x:Name="xaml_file">
- <MenuItem Header="_Open..." Command="Open" InputGestureText="Ctrl+O">
- <MenuItem.Icon>
- <Image Source="Resources/OpenFile.png" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem Header="Save As..." x:Name="xaml_saveas">
- <MenuItem.Icon>
- <Image Source="Resources/saveHS.png" />
- </MenuItem.Icon>
- <MenuItem Header="PDF" Click="SavePDF" x:Name="xaml_savepdf"/>
- <MenuItem Header="Linearized PDF" Click="Linearize" x:Name="xaml_linearize_pdf"/>
- <MenuItem Header="PDF-1.3" Click="SavePDF13" x:Name="xaml_savepdf13"/>
- <MenuItem Header="PDF/A" x:Name="xaml_savepdfa">
- <MenuItem Header="PDF/A-1 RGB" Click="SavePDFA1_RGB" x:Name="xaml_savepdfa1_rgb"/>
- <MenuItem Header="PDF/A-1 CMYK" Click="SavePDFA1_CMYK" x:Name="xaml_savepdfa1_cmyk"/>
- <MenuItem Header="PDF/A-2 RGB" Click="SavePDFA2_RGB" x:Name="xaml_savepdfa2_rgb"/>
- <MenuItem Header="PDF/A-2 CMYK" Click="SavePDFA2_CMYK" x:Name="xaml_savepdfa2_cmyk"/>
- </MenuItem>
- <MenuItem Header="PDF/X-3 Gray" Click="SavePDFX3_Gray" x:Name="xaml_savepdfx3_gray"/>
- <MenuItem Header="PDF/X-3 CMYK" Click="SavePDFX3_CMYK" x:Name="xaml_savepdfx3_cmyk"/>
- <MenuItem Header="PCL-XL" Click="SavePCLXL" x:Name="xaml_savepclxl"/>
- <MenuItem Header="XPS" Click="SaveXPS"/>
- <MenuItem Header="TEXT" Click="SaveText"/>
- <MenuItem Header="HTML" Click="SaveHTML"/>
- <MenuItem Header="XML" Click="SaveXML"/>
- </MenuItem>
- <MenuItem Header="_Close" Command="Close" InputGestureText="Ctrl+W" x:Name="xaml_closefile">
- <MenuItem.Icon>
- <Image Source="Resources/Close.ico" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem Header="Info" Click="ShowInfo" x:Name="xaml_showinfo">
- <MenuItem.Icon>
- <Image Source="Resources/info.png" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator />
- <MenuItem Header="Extract Selection..." x:Name="xaml_extractselection">
- <MenuItem.Icon>
- <Image Source="Resources/saveHS.png" />
- </MenuItem.Icon>
- <MenuItem Header="PDF" Click="ExtractPDF" x:Name="xaml_extractpdf"/>
- <MenuItem Header="EPS" Click="ExtractEPS" x:Name="xaml_extracteps"/>
- <MenuItem Header="PS" Click="ExtractPS" x:Name="xaml_extractps"/>
- </MenuItem>
- <MenuItem Header="Page Conversions..." Click="ConvertClick" x:Name="xaml_conversions">
- </MenuItem>
- <Separator />
- <MenuItem Header="Print..." Command="Print" InputGestureText="Ctrl+P" x:Name="xaml_print">
- <MenuItem.Icon>
- <Image Source="Resources/printer.ico" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator />
- <MenuItem Header="Show Messages" Click="ShowGSMessage" x:Name="xaml_gsmessage">
- <MenuItem.Icon>
- <Image Source="Resources/Message.png" />
- </MenuItem.Icon>
- </MenuItem>
- </MenuItem>
- <MenuItem Header="_Edit" x:Name="xaml_edit">
- <MenuItem Header="Extract PDF Pages" Click="ExtractPages" x:Name="xaml_Extract">
- <MenuItem.Icon>
- <Image Source="Resources/saveHS.png" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator />
- <MenuItem Header="Copy Page" Click="CopyPage" x:Name="xaml_copypage">
- <MenuItem.Icon>
- <Image Source="Resources/copy.ico" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem Header="Paste Page To" x:Name="xaml_pastpageto">
- <MenuItem Header="BMP" Click="PastePage" Tag="BMP"/>
- <MenuItem Header="GIF" Click="PastePage" Tag="GIF"/>
- <MenuItem Header="JPEG" Click="PastePage" Tag="JPG"/>
- <MenuItem Header="PNG" Click="PastePage" Tag="PNG"/>
- <MenuItem Header="TIFF" Click="PastePage" Tag="TIF"/>
- <MenuItem Header="WDP (HD Photo)" Click="PastePage" Tag="WDP"/>
- </MenuItem>
- <Separator />
- <MenuItem Header="Select Text All" Command="SelectAll" InputGestureText="Ctrl+A" x:Name="xaml_selectalltext" />
- <MenuItem Header="Deselect Text" x:Name="xaml_deselecttext" />
- <MenuItem Header="Copy Text" Command="Copy" InputGestureText="Ctrl+C" x:Name="xaml_copytext" />
- </MenuItem>
- <MenuItem Header="_View" x:Name="xaml_view">
- <MenuItem Header="Next Page" Click="OnForwardPageClick"/>
- <MenuItem Header="Previous Page" Click="OnBackPageClick"/>
- <MenuItem Header="_Find" Click="Search"/>
- </MenuItem>
- <MenuItem Header="_Options">
- <MenuItem Header="Output Intents" Click="OutputIntents" />
- <MenuItem Header="Zoom Control" IsCheckable="true" Checked="ShowFooter" Unchecked="HideFooter"/>
- <MenuItem Header="Show Annotations" IsCheckable="True" IsChecked ="True" Checked="AnnotationOn" Unchecked="AnnotationOff"/>
- <MenuItem Header="AntiAlias" >
- <MenuItem x:Name="xaml_AA_High" Header="High" IsCheckable="True" IsChecked="True" Checked="OnAAChecked" />
- <MenuItem x:Name="xaml_AA_MedHigh" Header="Medium High" IsCheckable="True" IsChecked="False" Checked="OnAAChecked"/>
- <MenuItem x:Name="xaml_AA_Med" Header="Medium" IsCheckable="True" IsChecked="False" Checked="OnAAChecked"/>
- <MenuItem x:Name="xaml_AA_Low" Header="Low" IsCheckable="True" IsChecked="False" Checked="OnAAChecked" />
- <MenuItem x:Name="xaml_AA_None" Header="None" IsCheckable="True" IsChecked="False" Checked="OnAAChecked" />
- </MenuItem>
-
- </MenuItem>
-
- <MenuItem Header="_Help">
- <MenuItem Header="GSView Help" Command="Help" InputGestureText="F1"/>
- <MenuItem Header="About" Click="OnAboutClick"/>
- </MenuItem>
- </Menu>
-
- <!-- List of icons for page navigation, print, etc -->
- <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Background="WhiteSmoke">
- <Button x:Name="xaml_open" Width="20" Height="20" Click="OpenFile" Background="Transparent" BorderBrush="Transparent" Margin="10,0,0,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/folder_open.ico"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button x:Name="xaml_SavePDF" Width="20" Height="20" Click="SavePDF" Background="Transparent" BorderBrush="Transparent" Margin="10,0,0,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/FloppyDisk.ico"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button x:Name="xaml_Print" Margin="10 0 0 0" Width="20" Height="20" Click="Print" Background="Transparent" BorderBrush="Transparent">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/printer.ico"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Rectangle Width="2" Height="20" Margin="10 0 0 0">
- <Rectangle.Fill>
- <SolidColorBrush Color="DarkGray">
- </SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Button Width="20" Height="20" x:Name="xaml_BackPage" Click="OnBackPageClick" Background="Transparent" BorderBrush="Transparent" Margin="10,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/Left.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Width="20" Height="20" x:Name="xaml_ForwardPage" Click="OnForwardPageClick" Background="Transparent" BorderBrush="Transparent">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/Right.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <TextBox x:Name="xaml_currPage" Grid.Row="0" Width="25" Height="20" VerticalScrollBarVisibility="Hidden"
- HorizontalScrollBarVisibility="Hidden" TextAlignment="Center" Margin="10,2,0,2" PreviewKeyDown="PageEnterClicked"/>
- <TextBlock Margin="5,0,0,0" Height="20" Text="/ 0" x:Name="xaml_TotalPages">
- <TextBlock.FontSize>12</TextBlock.FontSize>
- </TextBlock>
- <Rectangle Width="2" Height="20" Margin="10 0 0 0">
- <Rectangle.Fill>
- <SolidColorBrush Color="DarkGray">
- </SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
-
- <Button Margin="10 0 0 0" Width="20" Height="20" Click="ZoomIn" Background="Transparent" BorderBrush="Transparent" x:Name="xaml_zoomIn">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/zoom_in.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Margin="10 0 0 0" x:Name="xaml_zoomOut" Width="20" Height="20" Click="ZoomOut" Background="Transparent" BorderBrush="Transparent">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/zoom_out.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <TextBox Grid.Row="0" Grid.Column="2" Width="30" Height="20" VerticalScrollBarVisibility="Hidden"
- HorizontalScrollBarVisibility="Hidden" TextAlignment="Left" x:Name="xaml_Zoomsize"
- Text="{Binding Mode=TwoWay, ElementName=xaml_ZoomSlider,Path=Value, UpdateSourceTrigger=PropertyChanged}" Margin="10 0 0 0"
- PreviewKeyDown="ZoomEnterClicked"/>
- <TextBlock Margin="5,0,0,0" Height="20" Text="%">
- <TextBlock.FontSize>12</TextBlock.FontSize>
- </TextBlock>
-
- <Button Margin="10 0 0 0" Width="20" Height="20" Click="ActualSize" Background="Transparent" BorderBrush="Transparent" x:Name="xaml_ActualSize">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/ActualSize48.png"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
-
- <Button Margin="10 0 0 0" Width="20" Height="20" Click="ContScrollFill" Background="Transparent" BorderBrush="Transparent" x:Name="xaml_ContScrollFill">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/ContScrollFill48.png"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
-
- <Button Margin="10 0 0 0" Width="20" Height="20" Click="ExpandFill" Background="Transparent" BorderBrush="Transparent" x:Name="xaml_ExpandFill">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/ExpandFill48.png"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
-
-
- <Rectangle Width="2" Height="20" Margin="10 0 0 0">
- <Rectangle.Fill>
- <SolidColorBrush Color="DarkGray">
- </SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Button Margin="10 0 0 0" x:Name="xaml_Thumbs" Width="20" Height="20" Click="ToggleThumbs" Background="Transparent" BorderBrush="Transparent">
- <Button.ToolTip>
- <TextBlock Text="Thumbnails"/>
- </Button.ToolTip>
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/thumbnail.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Margin="10 0 0 0" x:Name="xaml_Contents" Width="20" Height="20" Click="ToggleContents" Background="Transparent" BorderBrush="Transparent">
- <Button.ToolTip>
- <TextBlock Text="Contents"/>
- </Button.ToolTip>
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/contents.ico"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Margin="10 0 0 0" x:Name="xaml_Search" Width="20" Height="20" Click="Search" Background="Transparent" BorderBrush="Transparent">
- <Button.ToolTip>
- <TextBlock Text="Search"/>
- </Button.ToolTip>
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Width="20" Height="20">
- <Rectangle.Fill>
- <ImageBrush ImageSource="Resources/search.png"/>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Margin="10 0 0 0" x:Name="xaml_Links" Width="20" Height="20" Click="LinksToggle" Background="Transparent" BorderBrush="Transparent">
- <Button.ToolTip>
- <TextBlock Text="Hyperlinks"/>
- </Button.ToolTip>
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/hyperlink.png"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- </StackPanel>
-
- <!-- Search control -->
- <Grid x:Name="xaml_SearchControl" Background="WhiteSmoke" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <TextBlock Grid.Row="0" Grid.Column="0" Margin="5,5,0,5"><Bold>Search:</Bold></TextBlock>
- <TextBox x:Name="xaml_SearchText" Grid.Row="0" Grid.Column="1" Width="100" Height="20" VerticalScrollBarVisibility="Hidden"
- HorizontalScrollBarVisibility="Hidden" TextAlignment="Center" Margin="5,5,0,5"/>
- <Button Grid.Row="0" Grid.Column="2" Width="20" Height="20" Click="OnSearchBackClick" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/Left.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Grid.Row="0" Grid.Column="3" Width="20" Height="20" Click="OnSearchForwardClick" Background="Transparent" BorderBrush="Transparent">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/Right.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- </Grid>
-
- <!-- Footer control Currently just zoom slider in here but we may add more -->
- <Grid x:Name="xaml_FooterControl" Background="WhiteSmoke" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <TextBlock Grid.Row="0" Grid.Column="0" Margin="5,0,0,0"><Bold>Zoom:</Bold></TextBlock>
- <Slider x:Name="xaml_ZoomSlider" Grid.Row="0" Grid.Column="1" Margin="10, 0, 0, 0"
- Width="150" Orientation="Horizontal" HorizontalAlignment="Center"
- Value="100" Minimum="25" Maximum="400"
- SmallChange="1" LargeChange="1"
- TickPlacement="None" TickFrequency="1" IsSnapToTickEnabled="True"/>
- </Grid>
-
- <!-- The progress bar that runs while the thumbnails are rendered -->
- <Grid x:Name="xaml_ProgressGrid" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ProgressBar x:Name="xaml_ThumbProgress" Grid.Row="0" Grid.Column="0" Margin="3" Minimum="0"
- Maximum="100" Height="20" HorizontalAlignment="Stretch" />
- <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="5, 0, 5, 0"><Bold>Creating Thumbs</Bold></TextBlock>
- <!-- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Name="xaml_CancelThumb" Click="CancelLoadClick" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Cancel</Bold></TextBlock>
- </Button> -->
- </Grid>
-
- <!-- The progress bar that runs during text search -->
- <Grid x:Name="xaml_SearchGrid" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ProgressBar x:Name="xaml_SearchProgress" Grid.Row="0" Grid.Column="0" Margin="3" Minimum="0"
- Maximum="100" Height="20" HorizontalAlignment="Stretch" />
- <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="5, 0, 5, 0"><Bold>Searching</Bold></TextBlock>
- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Name="xaml_CancelSearch" Click="CancelSearchClick" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Cancel</Bold></TextBlock>
- </Button>
- </Grid>
-
- <!-- The progress bar that runs during copy all text to clipboard -->
- <Grid x:Name="xaml_CopyTextGrid" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ProgressBar x:Name="xaml_CopyTextProgress" Grid.Row="0" Grid.Column="0" Margin="3" Minimum="0"
- Maximum="100" Height="20" HorizontalAlignment="Stretch" />
- <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="5, 0, 5, 0"><Bold>Printing</Bold></TextBlock>
- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Name="xaml_CancelCopyText" Click="CancelCopyText" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Cancel</Bold></TextBlock>
- </Button>
- </Grid>
-
- <!-- The progress bar that runs during printing -->
- <Grid x:Name="xaml_PrintGrid" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ProgressBar x:Name="xaml_PrintProgress" Grid.Row="0" Grid.Column="0" Margin="3" Minimum="0"
- Maximum="100" Height="20" HorizontalAlignment="Stretch" />
- <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="5, 0, 5, 0"><Bold>Printing</Bold></TextBlock>
- <!-- Asyc Cancel crashes in windows 8 for this xps creation -->
- <!-- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Name="xaml_CancelPrint" Click="CancelPrintClick" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Cancel</Bold></TextBlock>
- </Button> -->
- </Grid>
-
- <!-- The progress bar that runs during MuPDF page by page conversion to file-->
- <Grid x:Name="xaml_MuPDFGrid" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ProgressBar x:Name="xaml_MuPDFProgress" Grid.Row="0" Grid.Column="0" Margin="3" Minimum="0"
- Maximum="100" Height="20" HorizontalAlignment="Stretch"/>
- <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="5, 0, 5, 0"><Bold>MuPDF Converting Document</Bold></TextBlock>
- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Name="xaml_CancelMuPDF" Click="CancelMuPDFClick" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Cancel</Bold></TextBlock>
- </Button>
- </Grid>
-
- <!-- The progress bar that runs during GS distilling -->
- <Grid x:Name="xaml_DistillGrid" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <ProgressBar x:Name="xaml_DistillProgress" Grid.Row="0" Grid.Column="0" Margin="3" Minimum="0"
- Maximum="100" Height="20" HorizontalAlignment="Stretch"/>
- <TextBlock x:Name="xaml_DistillName" Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="5, 0, 5, 0"><Bold>Distilling</Bold></TextBlock>
- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Name="xaml_CancelDistill" Click="CancelDistillClick" Background="Transparent" BorderBrush="Transparent" Margin="5,0,5,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Cancel</Bold></TextBlock>
- </Button>
- </Grid>
-
- <!-- Thumb viewer/selector -->
- <Grid x:Name="xaml_ThumbGrid" Width="100" Background="DarkGray" DockPanel.Dock="Left" Visibility="Collapsed">
- <ListView x:Name="xaml_ThumbList" HorizontalAlignment="Stretch"
- ItemTemplate="{StaticResource ThumbTemplate}"
- ScrollViewer.CanContentScroll="False"
- Background="DarkGray"
- PreviewMouseLeftButtonUp="ThumbSelected">
- </ListView>
- </Grid>
-
- <!-- Contents viewer/selector. -->
- <Grid x:Name="xaml_ContentGrid" Width="250" Background="DarkGray" DockPanel.Dock="Left" Visibility="Collapsed">
- <ListView x:Name="xaml_ContentList" HorizontalAlignment="Stretch"
- ScrollViewer.CanContentScroll="False" PreviewMouseLeftButtonUp="ContentSelected"
- Background="DarkGray" >
- <ListView.ItemTemplate>
- <DataTemplate>
- <StackPanel Margin="5,5,0,0" HorizontalAlignment="Left">
- <TextBlock TextWrapping="Wrap" Text="{Binding StringMargin}" FontFamily="Segoe UI" FontSize="11" />
- </StackPanel>
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
- </Grid>
-
- <Grid x:Name="xaml_OpenProgressGrid" HorizontalAlignment="Stretch" Background="DarkGray" DockPanel.Dock="Bottom" Visibility="Collapsed">
- <Grid.RowDefinitions>
- <RowDefinition Height="*" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <TextBlock x:Name ="xaml_openfilestatus" Text="Opening File" Grid.Row="0" Grid.Column="0" Margin="0,0,0,10" HorizontalAlignment="Center"></TextBlock>
- <ProgressBar Grid.Row="1" Grid.Column="0" x:Name="xaml_OpenProgress" Minimum="0"
- Maximum="100" Height="20" Margin="100,0,100,200" HorizontalAlignment="Stretch" IsIndeterminate="True" />
- </Grid>
-
- <!-- The stock scroll bar that comes with the ListView scrollviewer does is not well behaved when
- the page sizes change. So we have our own here that we will set up -->
- <ScrollBar x:Name="xaml_VerticalScroll" Orientation="Vertical" Grid.Row="0" Grid.Column="1" DockPanel.Dock="Right"
- Width ="5" Height="Auto" Margin="0,0,0,0" Background="WhiteSmoke" Visibility="Collapsed"
- Scroll="VerticalScroll"/>
-
- <!-- Pages are last child fill. This goes in the center of our dock panel ScrollViewer.CanContentScroll False allows continuous scrolling-->
- <!-- <Grid x:Name="xaml_PageGrid" HorizontalAlignment="Stretch" Background="DarkGray" DockPanel.Dock="Left" AllowDrop="True"> -->
- <ListView x:Name="xaml_PageList" HorizontalAlignment="Stretch"
- ItemTemplate="{StaticResource PageTemplate}"
- ScrollViewer.CanContentScroll="False"
- Background="DarkGray"
- ScrollViewer.ScrollChanged="ListViewScrollChanged"
- MouseDoubleClick="PageDoubleClick" IsHitTestVisible="True"
- SelectionMode="Single"
- PreviewMouseLeftButtonDown="ListPreviewMouseLeftButtonDown"
- PreviewMouseLeftButtonUp="ListPreviewLeftButtonUp"
- MouseLeave="ListMouseLeave"
- PreviewMouseMove="ListPreviewMouseMove"
- ScrollViewer.HorizontalScrollBarVisibility="Auto"
- ScrollViewer.VerticalScrollBarVisibility="Hidden"
- ScrollViewer.IsDeferredScrollingEnabled ="False" DockPanel.Dock="Left" AllowDrop="True"
- >
- <!-- This keeps the pages in the center of the panel -->
-
- <ListView.ItemContainerStyle>
-
- <Style TargetType="ListViewItem">
- <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
- <EventSetter Event="RequestBringIntoView" Handler="AvoidScrollIntoView"/>
- </Style>
- </ListView.ItemContainerStyle>
- </ListView>
- <!-- </Grid> -->
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/MainWindow.xaml.cs b/platform/winrt/gsview/MainWindow.xaml.cs
deleted file mode 100644
index 6e6ee855..00000000
--- a/platform/winrt/gsview/MainWindow.xaml.cs
+++ /dev/null
@@ -1,4906 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Forms;
-using System.ComponentModel;
-using System.IO;
-using System.Windows.Xps.Packaging;
-using System.Printing;
-using System.Windows.Markup;
-using System.Runtime.InteropServices;
-using Microsoft.Win32; /* For registry */
-
-public enum AA_t
-{
- HIGH = 8,
- MEDHIGH = 6,
- MED = 4,
- LOW = 2,
- NONE = 0
-}
-
-enum PDFType_t
-{
- PDFX,
- PDFA
-}
-
-enum AppBar_t
-{
- TEXT_SEARCH,
- STANDARD
-}
-
-enum NotifyType_t
-{
- MESS_STATUS,
- MESS_ERROR
-};
-
-enum RenderingStatus_t
-{
- REN_AVAILABLE,
- REN_THUMBS,
- REN_UPDATE_THUMB_CANVAS,
- REN_PAGE /* Used to ignore value when source based setting */
-};
-
-public enum status_t
-{
- S_ISOK,
- E_FAILURE,
- E_OUTOFMEM,
- E_NEEDPASSWORD
-};
-
-public enum textout_t
-{
- HTML = 0,
- XML,
- TEXT
-}
-
-enum zoom_t
-{
- NO_ZOOM,
- ZOOM_IN,
- ZOOM_OUT
-}
-
-enum view_t
-{
- VIEW_WEB,
- VIEW_CONTENT,
- VIEW_PAGE,
- VIEW_PASSWORD,
- VIEW_TEXTSEARCH
-};
-
-public enum Page_Content_t
-{
- FULL_RESOLUTION = 0,
- THUMBNAIL,
- OLD_RESOLUTION,
- NOTSET
-};
-
-/* Put all the PDF types first to make the switch statment shorter
- Save_Type_t.PDF is the test */
-public enum Save_Type_t
-{
- PDF13,
- LINEAR_PDF,
- PDFA1_RGB,
- PDFA1_CMYK,
- PDFA2_RGB,
- PDFA2_CMYK,
- PDFX3_GRAY,
- PDFX3_CMYK,
- PDF,
- PCLXL,
- XPS,
- SVG,
- TEXT,
- HTML,
- XML
-}
-
-public enum Extract_Type_t
-{
- PDF,
- EPS,
- PS,
- SVG
-}
-
-/* C# has no defines.... */
-static class Constants
-{
- public const int SCROLL_STEPSIZE = 48;
- public const int INIT_LOOK_AHEAD = 2; /* A + count on the pages to pre-render */
- public const int THUMB_PREADD = 10;
- public const double MIN_SCALE = 0.5;
- public const double SCALE_THUMB = 0.05;
- public const int BLANK_WIDTH = 17;
- public const int BLANK_HEIGHT = 22;
- public const double ZOOM_STEP = 0.25;
- public const int ZOOM_MAX = 4;
- public const double ZOOM_MIN = 0.25;
- public const int KEY_PLUS = 0xbb;
- public const int KEY_MINUS = 0xbd;
- public const int ZOOM_IN = 0;
- public const int ZOOM_OUT = 1;
- public const double SCREEN_SCALE = 1;
- public const int HEADER_SIZE = 54;
- public const int SEARCH_FORWARD = 1;
- public const int SEARCH_BACKWARD = -1;
- public const int TEXT_NOT_FOUND = -1;
- public const int DEFAULT_GS_RES = 300;
- public const int DISPATCH_TIME = 50;
- public const int SCROLL_STEP = 10;
- public const int SCROLL_EDGE_BUFFER = 90;
- public const int VERT_SCROLL_STEP = 48;
- public const int PAGE_MARGIN = 1;
-}
-
-public static class DocumentTypes
-{
- public const string PDF = "Portable Document Format";
- public const string PS = "PostScript";
- public const string XPS = "XPS";
- public const string EPS = "Encapsulated PostScript";
- public const string CBZ = "Comic Book Archive";
- public const string PNG = "Portable Network Graphics Image";
- public const string JPG = "Joint Photographic Experts Group Image";
- public const string UNKNOWN = "Unknown";
-}
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- ///
-
- public struct pageprogress_t
- {
- public Byte[] bitmap;
- public BlocksText charlist;
- public int pagenum;
- public Point size;
- public Annotate_t annot;
- }
-
- public struct ContextMenu_t
- {
- public int page_num;
- public Point mouse_position;
- }
-
- public struct thumb_t
- {
- public int page_num;
- public Byte[] bitmap;
- public Point size;
- }
-
- public struct searchResults_t
- {
- public String needle;
- public bool done;
- public int page_found;
- public List<Rect> rectangles;
- public int num_rects;
- }
-
- public struct textSelectInfo_t
- {
- public int pagenum;
- public bool first_line_full;
- public bool last_line_full;
- }
-
- public static class ScrollBarExtensions
- {
- public static double GetThumbCenter(this System.Windows.Controls.Primitives.ScrollBar s)
- {
- double thumbLength = GetThumbLength(s);
- double trackLength = s.Maximum - s.Minimum;
-
- return thumbLength / 2 + s.Minimum + (s.Value - s.Minimum) *
- (trackLength - thumbLength) / trackLength;
- }
-
- public static void SetThumbCenter(this System.Windows.Controls.Primitives.ScrollBar s, double thumbCenter)
- {
- double thumbLength = GetThumbLength(s);
- double trackLength = s.Maximum - s.Minimum;
-
- if (thumbCenter >= s.Maximum - thumbLength / 2)
- {
- s.Value = s.Maximum;
- }
- else if (thumbCenter <= s.Minimum + thumbLength / 2)
- {
- s.Value = s.Minimum;
- }
- else if (thumbLength >= trackLength)
- {
- s.Value = s.Minimum;
- }
- else
- {
- s.Value = (int)(s.Minimum + trackLength *
- ((thumbCenter - s.Minimum - thumbLength / 2)
- / (trackLength - thumbLength)));
- }
- }
-
- public static double GetThumbLength(this System.Windows.Controls.Primitives.ScrollBar s)
- {
- double trackLength = s.Maximum - s.Minimum;
- return trackLength * s.ViewportSize /
- (trackLength + s.ViewportSize);
- }
-
- public static void SetThumbLength(this System.Windows.Controls.Primitives.ScrollBar s, double thumbLength)
- {
- double trackLength = s.Maximum - s.Minimum;
-
- if (thumbLength < 0)
- {
- s.ViewportSize = 0;
- }
- else if (thumbLength < trackLength)
- {
- s.ViewportSize = trackLength * thumbLength / (trackLength - thumbLength);
- }
- else
- {
- s.ViewportSize = double.MaxValue;
- }
- }
- }
-
- public partial class MainWindow : Window
- {
- mudocument mu_doc = null;
- public Pages m_docPages;
- List<textSelectInfo_t> m_textSelect;
- List<DocPage> m_thumbnails;
- List<List<RectList>> m_page_link_list = null;
- IList<RectList> m_text_list;
- public List<LinesText> m_lineptrs = null;
- public List<BlocksText> m_textptrs = null;
- List<Boolean> m_textset = null;
- private bool m_file_open;
- private int m_currpage;
- private int m_searchpage;
- private int m_num_pages;
- private bool m_init_done;
- private bool m_links_on;
- String m_textsearchcolor = "#4072AC25";
- String m_textselectcolor = "#402572AC";
- String m_regionselect = "#00FFFFFF";
- String m_blockcolor = "#00FFFFFF";
- //String m_regionselect = "#FFFF0000"; /* Debug */
- String m_linkcolor = "#40AC7225";
- private bool m_have_thumbs;
- double m_doczoom;
- ghostsharp m_ghostscript;
- String m_currfile;
- String m_origfile;
- private gsprint m_ghostprint = null;
- bool m_isXPS;
- gsOutput m_gsoutput;
- Convert m_convertwin;
- PageExtractSave m_extractwin;
- Password m_password = null;
- String m_currpassword = null;
- BackgroundWorker m_thumbworker = null;
- BackgroundWorker m_textsearch = null;
- BackgroundWorker m_linksearch = null;
- BackgroundWorker m_openfile = null;
- BackgroundWorker m_initrender = null;
- BackgroundWorker m_copytext = null;
- String m_document_type;
- Info m_infowindow;
- OutputIntent m_outputintents;
- Selection m_selection;
- String m_prevsearch = null;
- bool m_clipboardset;
- bool m_doscroll;
- bool m_intxtselect;
- bool m_textselected;
- System.Windows.Threading.DispatcherTimer m_dispatcherTimer = null;
- double m_lastY;
- double m_maxY;
- bool m_ignorescrollchange;
- double m_totalpageheight;
- AA_t m_AA;
- bool m_regstartup;
- int m_initpage;
- bool m_selectall;
- bool m_showannot;
- bool m_ScrolledChanged;
-
- public MainWindow()
- {
- InitializeComponent();
- this.Closing += new System.ComponentModel.CancelEventHandler(Window_Closing);
- m_file_open = false;
- m_regstartup = true;
- m_showannot = true;
-
- /* Allocations and set up */
- try
- {
- m_docPages = new Pages();
- m_thumbnails = new List<DocPage>();
- m_lineptrs = new List<LinesText>();
- m_textptrs = new List<BlocksText>();
- m_textset = new List<Boolean>();
- m_ghostscript = new ghostsharp();
- m_ghostscript.gsUpdateMain += new ghostsharp.gsCallBackMain(gsProgress);
- m_gsoutput = new gsOutput();
- m_gsoutput.Activate();
- m_outputintents = new OutputIntent();
- m_outputintents.Activate();
- m_ghostscript.gsIOUpdateMain += new ghostsharp.gsIOCallBackMain(gsIO);
- m_ghostscript.gsDLLProblemMain += new ghostsharp.gsDLLProblem(gsDLL);
- m_convertwin = null;
- m_extractwin = null;
- m_selection = null;
- xaml_ZoomSlider.AddHandler(MouseLeftButtonUpEvent, new MouseButtonEventHandler(ZoomReleased), true);
- xaml_PageList.AddHandler(Grid.DragOverEvent, new System.Windows.DragEventHandler(Grid_DragOver), true);
- xaml_PageList.AddHandler(Grid.DropEvent, new System.Windows.DragEventHandler(Grid_Drop), true);
- DimSelections();
- status_t result = CleanUp();
-
- string[] arguments = Environment.GetCommandLineArgs();
- if (arguments.Length > 1)
- {
- string filePath = arguments[1];
- ProcessFile(filePath);
- }
- else
- {
- if (m_regstartup)
- InitFromRegistry();
- }
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed at initialization\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
-
- private void Grid_DragOver(object sender, System.Windows.DragEventArgs e)
- {
- if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
- {
- e.Effects = System.Windows.DragDropEffects.All;
- }
- else
- {
- e.Effects = System.Windows.DragDropEffects.None;
- }
- e.Handled = false;
- }
-
- private void Grid_Drop(object sender, System.Windows.DragEventArgs e)
- {
- if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
- {
- string[] docPath = (string[]) e.Data.GetData(System.Windows.DataFormats.FileDrop);
- ProcessFile(String.Join("",docPath));
- }
- }
-
- void CloseExtraWindows(bool shutdown)
- {
- if (m_selection != null)
- m_selection.Close();
- if (m_convertwin != null)
- m_convertwin.Close();
- if (m_extractwin != null)
- m_extractwin.Close();
- if (m_infowindow != null)
- m_infowindow.Close();
- if (shutdown)
- {
- if (m_gsoutput != null)
- m_gsoutput.RealWindowClosing();
- if (m_outputintents != null)
- m_outputintents.RealWindowClosing();
- }
- else
- {
- if (m_gsoutput != null)
- m_gsoutput.Hide();
- if (m_outputintents != null)
- m_outputintents.Hide();
- }
- }
-
- void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- CloseExtraWindows(true);
- }
-
- /* Stuff not enabled when source is XPS */
- void EnabletoPDF()
- {
- xaml_savepdf.IsEnabled = true;
- xaml_linearize_pdf.IsEnabled = true;
- xaml_saveas.IsEnabled = true;
- xaml_Extract.IsEnabled = true;
- xaml_conversions.IsEnabled = true;
- xaml_extractselection.IsEnabled = true;
- }
-
- void DisabletoPDF()
- {
- xaml_savepdf.IsEnabled = false;
- xaml_linearize_pdf.IsEnabled = false;
- xaml_saveas.IsEnabled = false;
- xaml_Extract.IsEnabled = false;
- xaml_conversions.IsEnabled = false;
- xaml_extractselection.IsEnabled = false;
- }
-
- private void DimSelections()
- {
- xaml_currPage.Text = "";
- xaml_TotalPages.Text = "/ 0";
- xaml_Zoomsize.Text = "100";
- xaml_BackPage.Opacity = 0.5;
- xaml_Contents.Opacity = 0.5;
- xaml_currPage.Opacity = 0.5;
- xaml_currPage.IsEnabled = false;
- xaml_ForwardPage.Opacity = 0.5;
- xaml_Links.Opacity = 0.5;
- xaml_Print.Opacity = 0.5;
- xaml_SavePDF.Opacity = 0.5;
- xaml_Search.Opacity = 0.5;
- xaml_Thumbs.Opacity = 0.5;
- xaml_TotalPages.Opacity = 0.5;
- xaml_zoomIn.Opacity = 0.5;
- xaml_zoomOut.Opacity = 0.5;
- xaml_Zoomsize.Opacity = 0.5;
- xaml_ExpandFill.Opacity = 0.5;
- xaml_ContScrollFill.Opacity = 0.5;
- xaml_ActualSize.Opacity = 0.5;
- xaml_Zoomsize.IsEnabled = false;
- xaml_ZoomSlider.Opacity = 0.5;
- xaml_ZoomSlider.IsEnabled = false;
- xaml_saveas.IsEnabled = false;
- xaml_closefile.IsEnabled = false;
- xaml_showinfo.IsEnabled = false;
- xaml_extractselection.IsEnabled = false;
- xaml_conversions.IsEnabled = false;
- xaml_gsmessage.IsEnabled = false;
- xaml_print.IsEnabled = false;
- xaml_view.IsEnabled = false;
- xaml_edit.IsEnabled = false;
- }
-
- private status_t CleanUp()
- {
- m_init_done = false;
- this.Cursor = System.Windows.Input.Cursors.Arrow;
- /* Collapse this stuff since it is going to be released */
- xaml_ThumbGrid.Visibility = System.Windows.Visibility.Collapsed;
- xaml_ContentGrid.Visibility = System.Windows.Visibility.Collapsed;
- xaml_VerticalScroll.Visibility = System.Windows.Visibility.Collapsed;
-
- /* Clear out everything */
- if (m_docPages != null && m_docPages.Count > 0)
- m_docPages.Clear();
- if (m_textSelect != null)
- m_textSelect.Clear();
- if (m_textset != null)
- m_textset.Clear();
- if (m_lineptrs != null && m_lineptrs.Count > 0)
- m_lineptrs.Clear();
- if (m_thumbnails != null && m_thumbnails.Count > 0)
- m_thumbnails.Clear();
- if (m_textptrs != null && m_textptrs.Count > 0)
- m_textptrs.Clear();
- if (m_page_link_list != null && m_page_link_list.Count > 0)
- {
- m_page_link_list.Clear();
- m_page_link_list = null;
- }
- if (m_text_list != null && m_text_list.Count > 0)
- {
- m_text_list.Clear();
- m_text_list = null;
- }
- if (mu_doc != null)
- mu_doc.CleanUp();
- try
- {
- mu_doc = new mudocument();
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during clean up\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- mu_doc.mupdfDLLProblemMain += new mudocument.mupdfDLLProblem(muDLL);
- status_t result = mu_doc.Initialize();
- mu_doc.mupdfUpdateMain += new mudocument.mupdfCallBackMain(mupdfUpdate);
-
- if (result != status_t.S_ISOK)
- {
- Console.WriteLine("Library allocation failed during clean up\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Library allocation failed!");
- return result;
- }
-
- m_have_thumbs = false;
- m_file_open = false;
- m_num_pages = -1;
- m_links_on = false;
- m_doczoom = 1.0;
- m_isXPS = false;
- //xaml_CancelThumb.IsEnabled = true;
- m_currpage = 0;
- m_ignorescrollchange = false;
- m_document_type = DocumentTypes.UNKNOWN;
- EnabletoPDF();
- m_clipboardset = false;
- m_doscroll = false;
- m_intxtselect = false;
- m_textselected = false;
- m_currpassword = null;
- CloseExtraWindows(false);
- ResetScroll();
- m_totalpageheight = 0;
- m_AA = GetAA();
- m_origfile = null;
- m_initpage = 0;
- xaml_Zoomsize.Text = "100";
- m_selectall = false;
- return result;
- }
-
- /* Initialize from registry */
- private void InitFromRegistry()
- {
- RegistryKey key = Registry.CurrentUser.CreateSubKey("Software");
- RegistryKey keyA = key.CreateSubKey("Artifex Software");
- RegistryKey keygs = keyA.CreateSubKey("GSview 6.0");
- String filepath = null;
- Int32 page;
- AA_t aa = AA_t.HIGH;
-
- try
- {
- filepath = (String)keygs.GetValue("File", null);
- aa = (AA_t)keygs.GetValue("AA");
- page = (Int32)keygs.GetValue("Page");
- }
- catch
- {
- return;
- }
- keygs.Close();
- keyA.Close();
- key.Close();
-
- SetAA(aa);
- m_AA = aa;
-
- if (filepath != null && File.Exists(filepath))
- {
- m_initpage = page;
- ProcessFile(filepath);
- }
- else
- m_initpage = 0;
- }
-
- private void SetRegistry()
- {
- if (m_currfile == null)
- return;
-
- RegistryKey key = Registry.CurrentUser.CreateSubKey("Software");
- RegistryKey keyA = key.CreateSubKey("Artifex Software");
- RegistryKey keygs = keyA.CreateSubKey("GSview 6.0");
-
- if (m_origfile != null && (m_document_type == DocumentTypes.PS ||
- m_document_type == DocumentTypes.EPS))
- {
- keygs.SetValue("File", m_origfile, RegistryValueKind.String);
- }
- else
- {
- keygs.SetValue("File", m_currfile, RegistryValueKind.String);
- }
- keygs.SetValue("Page", m_currpage, RegistryValueKind.DWord);
- Int32 aa_int = (Int32)m_AA;
- keygs.SetValue("AA", aa_int, RegistryValueKind.DWord);
- keygs.Close();
- keyA.Close();
- key.Close();
- }
-
- private void AppClosing(object sender, CancelEventArgs e)
- {
- if (m_init_done)
- SetRegistry();
- }
-
- private void ShowMessage(NotifyType_t type, String Message)
- {
- if (type == NotifyType_t.MESS_ERROR)
- {
- System.Windows.Forms.MessageBox.Show(Message, "Error",
- MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show(Message, "Notice",
- MessageBoxButtons.OK);
- }
- }
-
- private void CloseCommand(object sender, ExecutedRoutedEventArgs e)
- {
- if (m_init_done)
- CloseDoc();
- }
-
- private void CloseDoc()
- {
- CleanUp();
- }
-
- /* Set the page with the new raster information */
- private void UpdatePage(int page_num, Byte[] bitmap, Point ras_size,
- Page_Content_t content, double zoom_in, AA_t AA)
- {
- DocPage doc_page = this.m_docPages[page_num];
-
- doc_page.Width = (int)ras_size.X;
- doc_page.Height = (int)ras_size.Y;
-
- doc_page.Content = content;
- doc_page.Zoom = zoom_in;
-
- int stride = doc_page.Width * 4;
- doc_page.BitMap = BitmapSource.Create(doc_page.Width, doc_page.Height,
- 72, 72, PixelFormats.Pbgra32, BitmapPalettes.Halftone256, bitmap, stride);
- doc_page.PageNum = page_num;
- doc_page.AA = AA;
-
- if (content == Page_Content_t.THUMBNAIL)
- {
- doc_page.Width = (int)(ras_size.X / Constants.SCALE_THUMB);
- doc_page.Height = (int)(ras_size.Y / Constants.SCALE_THUMB);
- }
- }
-
- private void OpenFileCommand(object sender, ExecutedRoutedEventArgs e)
- {
- OpenFile(sender, e);
- }
-
- private void OpenFile(object sender, RoutedEventArgs e)
- {
- if (m_password != null && m_password.IsActive)
- m_password.Close();
-
- if (m_infowindow != null && m_infowindow.IsActive)
- m_infowindow.Close();
-
- /* Check if gs is currently busy. If it is then don't allow a new
- * file to be opened. They can cancel gs with the cancel button if
- * they want */
- if (m_ghostscript.GetStatus() != gsStatus.GS_READY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy. Cancel to open new file.");
- return;
- }
-
- if (m_ghostprint != null && m_ghostprint.IsBusy())
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Let printing complete");
- return;
- }
-
- System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();
- dlg.Filter = "Document Files(*.ps;*.eps;*.pdf;*.xps;*.oxps;*.cbz;*.png;*.jpg;*.jpeg)|*.ps;*.eps;*.pdf;*.xps;*.oxps;*.cbz;*.png;*.jpg;*.jpeg|All files (*.*)|*.*";
- dlg.FilterIndex = 1;
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- ProcessFile(dlg.FileName);
- }
-
- private void ProcessFile(String FileName)
- {
- if (m_file_open)
- {
- CloseDoc();
- }
- /* If we have a ps or eps file then launch the distiller first
- * and then we will get a temp pdf file which will be opened by
- * mupdf */
- string extension = System.IO.Path.GetExtension(FileName);
- /* We are doing this based on the extension but like should do
- * it based upon the content */
- switch (extension.ToUpper())
- {
- case ".PS":
- m_document_type = DocumentTypes.PS;
- break;
- case ".EPS":
- m_document_type = DocumentTypes.EPS;
- break;
- case ".XPS":
- case ".OXPS":
- m_document_type = DocumentTypes.XPS;
- break;
- case ".PDF":
- m_document_type = DocumentTypes.PDF;
- break;
- case ".CBZ":
- m_document_type = DocumentTypes.CBZ;
- break;
- case ".PNG":
- m_document_type = DocumentTypes.PNG;
- break;
- case ".JPG":
- m_document_type = DocumentTypes.JPG;
- break;
- case ".JPEG":
- m_document_type = DocumentTypes.JPG;
- break;
- default:
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Unknown File Type");
- return;
- }
- }
- if (extension.ToUpper() == ".PS" || extension.ToUpper() == ".EPS")
- {
- xaml_DistillProgress.Value = 0;
- if (m_ghostscript.DistillPS(FileName, Constants.DEFAULT_GS_RES) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS currently busy");
- return;
- }
- xaml_DistillName.Text = "Distilling";
- xaml_CancelDistill.Visibility = System.Windows.Visibility.Visible;
- xaml_DistillName.FontWeight = FontWeights.Bold;
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Visible;
- return;
- }
- /* Set if this is already xps for printing */
- if (extension.ToUpper() == ".XPS" || extension.ToUpper() == ".OXPS")
- m_isXPS = true;
- OpenFile2(FileName);
- }
-
- private void OpenFile2(String File)
- {
- m_currfile = File;
- xaml_OpenProgressGrid.Visibility = System.Windows.Visibility.Visible;
- xaml_openfilestatus.Text = "Opening File";
- /* The file open can take a fair amount of time. So that we can show
- * an indeterminate progress bar while opening, go ahead an do this
- * on a separate thread */
- OpenFileBG();
- }
-
- private void OpenWork(object sender, DoWorkEventArgs e)
- {
- BackgroundWorker worker = sender as BackgroundWorker;
-
- status_t code = mu_doc.OpenFile(m_currfile);
- worker.ReportProgress(100, code);
- }
-
- private void OpenProgress(object sender, ProgressChangedEventArgs e)
- {
- status_t result = (status_t)(e.UserState);
-
- if (result == status_t.S_ISOK)
- {
- /* Check if we need a password */
- if (mu_doc.RequiresPassword())
- {
- xaml_OpenProgressGrid.Visibility = System.Windows.Visibility.Collapsed;
- GetPassword();
- }
- else
- StartViewer();
- }
- else
- {
- m_currfile = null;
- }
- }
-
- private void OpenFileBG()
- {
- try
- {
- m_openfile = new BackgroundWorker();
- m_openfile.WorkerReportsProgress = true;
- m_openfile.WorkerSupportsCancellation = false;
- m_openfile.DoWork += new DoWorkEventHandler(OpenWork);
- m_openfile.ProgressChanged += new ProgressChangedEventHandler(OpenProgress);
- m_openfile.RunWorkerAsync();
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during opening\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
-
- private void SetPageAnnot(int page_num, Annotate_t render_result)
- {
- if (m_docPages[page_num].Annotate == Annotate_t.UNKNOWN ||
- m_docPages[page_num].Annotate == Annotate_t.COMPUTING)
- {
- if (render_result == Annotate_t.NO_ANNOTATE)
- m_docPages[page_num].Annotate = Annotate_t.NO_ANNOTATE;
- else
- {
- if (m_showannot)
- m_docPages[page_num].Annotate = Annotate_t.ANNOTATE_VISIBLE;
- else
- m_docPages[page_num].Annotate = Annotate_t.ANNOTATE_HIDDEN;
- }
- }
- else
- {
- if (m_docPages[page_num].Annotate != Annotate_t.NO_ANNOTATE)
- {
- if (m_showannot)
- m_docPages[page_num].Annotate = Annotate_t.ANNOTATE_VISIBLE;
- else
- m_docPages[page_num].Annotate = Annotate_t.ANNOTATE_HIDDEN;
- }
- }
- }
-
- private void InitialRenderWork(object sender, DoWorkEventArgs e)
- {
- BackgroundWorker worker = sender as BackgroundWorker;
- int look_ahead = Math.Min(m_num_pages, Constants.INIT_LOOK_AHEAD);
-
- /* Do the first few full res pages */
- for (int k = 0; k < look_ahead; k++)
- {
- if (m_num_pages > k)
- {
- Point ras_size;
- double scale_factor = 1.0;
- Byte[] bitmap;
- BlocksText charlist;
- status_t code;
- Annotate_t annot;
-
- if (ComputePageSize(k, scale_factor, out ras_size) == status_t.S_ISOK)
- {
- try
- {
- bitmap = new byte[(int)ras_size.X * (int)ras_size.Y * 4];
-
- /* Synchronous call on our background thread */
- code = (status_t)mu_doc.RenderPage(k, bitmap, (int)ras_size.X,
- (int)ras_size.Y, scale_factor, false, true,
- !(m_textset[k]), out charlist, m_showannot, out annot);
- }
- catch (OutOfMemoryException em)
- {
- Console.WriteLine("Memory allocation failed init page " + k + em.Message + "\n");
- break;
- }
- /* create new page if we rendered ok. set ui value with
- * progress call back, pass page number, charlist and bitmap */
- if (code == status_t.S_ISOK)
- {
- pageprogress_t page_prog = new pageprogress_t();
- page_prog.bitmap = bitmap;
- page_prog.charlist = charlist;
- page_prog.pagenum = k;
- page_prog.size = ras_size;
- page_prog.annot = annot;
- worker.ReportProgress(100, page_prog);
- }
- }
- }
- }
- }
-
- private void InitialRenderProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- pageprogress_t result = (pageprogress_t)(e.UserState);
- int k = result.pagenum;
-
- m_textset[k] = true;
- m_textptrs[k] = result.charlist;
- m_docPages[k].TextBlocks = result.charlist;
- UpdatePage(k, result.bitmap, result.size, Page_Content_t.FULL_RESOLUTION, 1.0, m_AA);
- m_docPages[k].NativeHeight = (int) result.size.Y;
- m_docPages[k].NativeWidth = (int)result.size.X;
- SetPageAnnot(k, result.annot);
- }
-
- private void InitialRenderCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- m_init_done = true;
- m_currpage = 0;
- RenderThumbs();
- m_file_open = true;
- xaml_BackPage.Opacity = 1;
- xaml_Contents.Opacity = 1;
- xaml_currPage.Opacity = 1;
- xaml_ForwardPage.Opacity = 1;
- xaml_Links.Opacity = 1;
- xaml_Print.Opacity = 1;
- xaml_SavePDF.Opacity = 1;
- xaml_Search.Opacity = 1;
- xaml_Thumbs.Opacity = 1;
- xaml_TotalPages.Opacity = 1;
- xaml_zoomIn.Opacity = 1;
- xaml_zoomOut.Opacity = 1;
- xaml_Zoomsize.Opacity = 1;
- xaml_ExpandFill.Opacity = 1;
- xaml_ContScrollFill.Opacity = 1;
- xaml_ActualSize.Opacity = 1;
- xaml_Zoomsize.IsEnabled = true;
- xaml_currPage.IsEnabled = true;
- xaml_TotalPages.Text = "/ " + m_num_pages.ToString();
- xaml_currPage.Text = "1";
- xaml_ZoomSlider.Opacity = 1.0;
- xaml_ZoomSlider.IsEnabled = true;
- xaml_closefile.IsEnabled = true;
- xaml_saveas.IsEnabled = true;
- xaml_showinfo.IsEnabled = true;
- xaml_extractselection.IsEnabled = true;
- xaml_conversions.IsEnabled = true;
- xaml_gsmessage.IsEnabled = true;
- xaml_print.IsEnabled = true;
- xaml_view.IsEnabled = true;
- xaml_edit.IsEnabled = true;
- if (m_isXPS)
- DisabletoPDF();
- xaml_OpenProgressGrid.Visibility = System.Windows.Visibility.Collapsed;
- xaml_VerticalScroll.Visibility = System.Windows.Visibility.Visible;
- xaml_VerticalScroll.Value = 0;
- }
-
- private void InitialRenderBG()
- {
- int look_ahead = Math.Min(Constants.INIT_LOOK_AHEAD, m_num_pages);
- m_currpage = 0;
- m_thumbnails.Capacity = m_num_pages;
-
- for (int k = 0; k < Constants.INIT_LOOK_AHEAD; k++)
- {
- m_docPages.Add(InitDocPage());
- m_docPages[k].PageNum = k;
- m_textptrs.Add(new BlocksText());
- m_lineptrs.Add(new LinesText());
- m_textset.Add(false);
- }
- var dummy = InitDocPage();
- for (int k = Constants.INIT_LOOK_AHEAD; k < m_num_pages; k++)
- {
- m_docPages.Add(dummy);
- m_textptrs.Add(new BlocksText());
- m_lineptrs.Add(new LinesText());
- m_textset.Add(false);
- }
-
- xaml_PageList.ItemsSource = m_docPages;
-
- try
- {
- m_initrender = new BackgroundWorker();
- m_initrender.WorkerReportsProgress = true;
- m_initrender.WorkerSupportsCancellation = false;
- m_initrender.DoWork += new DoWorkEventHandler(InitialRenderWork);
- m_initrender.RunWorkerCompleted += new RunWorkerCompletedEventHandler(InitialRenderCompleted);
- m_initrender.ProgressChanged += new ProgressChangedEventHandler(InitialRenderProgressChanged);
- m_initrender.RunWorkerAsync();
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during initial render\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
- private void StartViewer()
- {
- m_num_pages = mu_doc.GetPageCount();
-
- if (m_num_pages == 0)
- {
- xaml_OpenProgressGrid.Visibility = System.Windows.Visibility.Collapsed;
- CleanUp();
- ShowMessage(NotifyType_t.MESS_ERROR, m_currfile + " is corrupted");
- }
- else
- {
- xaml_openfilestatus.Text = "Initial Page Rendering";
- xaml_openfilestatus.UpdateLayout();
- InitialRenderBG();
- }
- }
-
- private status_t ComputePageSize(int page_num, double scale_factor,
- out Point render_size)
- {
- Point renpageSize = new Point();
-
- status_t code = (status_t)mu_doc.GetPageSize(page_num, out render_size);
- if (code != status_t.S_ISOK)
- return code;
-
- renpageSize.X = (render_size.X * scale_factor);
- renpageSize.Y = (render_size.Y * scale_factor);
-
- render_size = renpageSize;
-
- return status_t.S_ISOK;
- }
-
- private DocPage InitDocPage()
- {
- DocPage doc_page = new DocPage();
-
- doc_page.BitMap = null;
- doc_page.Height = Constants.BLANK_HEIGHT;
- doc_page.Width = Constants.BLANK_WIDTH;
- doc_page.NativeHeight = Constants.BLANK_HEIGHT;
- doc_page.NativeWidth = Constants.BLANK_WIDTH;
- doc_page.Content = Page_Content_t.NOTSET;
- doc_page.TextBox = null;
- doc_page.LinkBox = null;
- doc_page.SelHeight = 0;
- doc_page.SelWidth = 0;
- doc_page.SelX = 0;
- doc_page.SelY = 0;
- return doc_page;
- }
-
- #region Navigation
- private void OnBackPageClick(object sender, RoutedEventArgs e)
- {
- if (m_currpage == 0 || !m_init_done) return;
- m_ignorescrollchange = true;
- RenderRange(m_currpage - 1, true, zoom_t.NO_ZOOM, 0);
- }
-
- private void OnForwardPageClick(object sender, RoutedEventArgs e)
- {
- if (m_currpage == m_num_pages - 1 || !m_init_done) return;
- m_ignorescrollchange = true;
- RenderRange(m_currpage + 1, true, zoom_t.NO_ZOOM, 0);
- }
-
- private void PageEnterClicked(object sender, System.Windows.Input.KeyEventArgs e)
- {
- if (e.Key == Key.Return)
- {
- e.Handled = true;
- var desired_page = xaml_currPage.Text;
- try
- {
- int page = System.Convert.ToInt32(desired_page);
- if (page > 0 && page < (m_num_pages + 1))
- {
- m_ignorescrollchange = true;
- RenderRange(page - 1, true, zoom_t.NO_ZOOM, 0);
- }
- }
- catch (FormatException e1)
- {
- Console.WriteLine("String is not a sequence of digits.");
- }
- catch (OverflowException e2)
- {
- Console.WriteLine("The number cannot fit in an Int32.");
- }
- }
- }
-
- private void OnKeyDownHandler(object sender, System.Windows.Input.KeyEventArgs e)
- {
- switch (e.Key)
- {
- case Key.Left:
- case Key.PageUp:
- if (m_currpage == 0 || !m_init_done)
- return;
- m_ignorescrollchange = true;
- RenderRange(m_currpage - 1, true, zoom_t.NO_ZOOM, 0);
- e.Handled = true;
- break;
-
- case Key.Right:
- case Key.PageDown:
- if (m_currpage == m_num_pages - 1 || !m_init_done)
- return;
- m_ignorescrollchange = true;
- RenderRange(m_currpage + 1, true, zoom_t.NO_ZOOM, 0);
- e.Handled = true;
- break;
-
- case Key.Up:
- if (!m_init_done)
- return;
- e.Handled = true;
- OffsetScroll(-Constants.VERT_SCROLL_STEP * m_doczoom);
- break;
-
- case Key.Down:
- if (!m_init_done)
- return;
- e.Handled = true;
- OffsetScroll(Constants.VERT_SCROLL_STEP * m_doczoom);
- break;
- }
- }
- #endregion Navigation
-
- private void CancelLoadClick(object sender, RoutedEventArgs e)
- {
- /* Cancel during thumbnail loading. Deactivate the button
- * and cancel the thumbnail rendering */
- if (m_thumbworker != null)
- m_thumbworker.CancelAsync();
- //xaml_CancelThumb.IsEnabled = false;
- }
-
- private void ToggleThumbs(object sender, RoutedEventArgs e)
- {
- if (m_have_thumbs)
- {
- if (xaml_ThumbGrid.Visibility == System.Windows.Visibility.Collapsed)
- {
- xaml_ThumbGrid.Visibility = System.Windows.Visibility.Visible;
- }
- else
- {
- xaml_ThumbGrid.Visibility = System.Windows.Visibility.Collapsed;
- }
- }
- }
-
- private void ToggleContents(object sender, RoutedEventArgs e)
- {
- if (xaml_ContentGrid.Visibility == System.Windows.Visibility.Visible)
- {
- xaml_ContentGrid.Visibility = System.Windows.Visibility.Collapsed;
- return;
- }
-
- if (m_num_pages < 0)
- return;
-
- if (xaml_ContentList.Items.IsEmpty)
- {
- int size_content = mu_doc.ComputeContents();
- if (size_content == 0)
- return;
- xaml_ContentList.ItemsSource = mu_doc.contents;
- }
- xaml_ContentGrid.Visibility = System.Windows.Visibility.Visible;
- }
-
- private void ThumbSelected(object sender, MouseButtonEventArgs e)
- {
- var item = ((FrameworkElement)e.OriginalSource).DataContext as DocPage;
-
- if (item != null)
- {
- if (item.PageNum < 0)
- return;
- RenderRange(item.PageNum, true, zoom_t.NO_ZOOM, 0);
- }
- }
-
- private void ContentSelected(object sender, MouseButtonEventArgs e)
- {
- var item = ((FrameworkElement)e.OriginalSource).DataContext as ContentItem;
- if (item != null && item.Page < m_num_pages)
- {
- int page = m_docPages[item.Page].PageNum;
- if (page >= 0 && page < m_num_pages)
- RenderRange(page, true, zoom_t.NO_ZOOM, 0);
- }
- }
-
- /* We need to avoid rendering due to size changes */
- private void ListViewScrollChanged(object sender, ScrollChangedEventArgs e)
- {
- /* This makes sure we dont call render range a second time due to
- * page advances */
- int first_item = -1;
- int second_item = -1;
- //Console.WriteLine("***************************************/n");
- //Console.WriteLine("VerticalChange = " + e.VerticalChange + "/n");
- //Console.WriteLine("ExtentHeightChange = " + e.ExtentHeightChange + "/n");
- //Console.WriteLine("ExtentWidthChange = " + e.ExtentWidthChange + "/n");
- //Console.WriteLine("HorizontalChange = " + e.HorizontalChange + "/n");
- //Console.WriteLine("ViewportHeightChange = " + e.ViewportHeightChange + "/n");
- //Console.WriteLine("ViewportWidthChange = " + e.ViewportWidthChange + "/n");
- //Console.WriteLine("ExtentHeight = " + e.ExtentHeight + "/n");
- //Console.WriteLine("ViewportHeight = " + e.ViewportHeight + "/n");
- //Console.WriteLine("VerticalOffset = " + e.VerticalOffset + "/n");
- //Console.WriteLine("***************************************/n");
- if (m_ignorescrollchange == true)
- {
- m_ignorescrollchange = false;
- return;
- }
- if (!m_init_done)
- return;
- if (e.VerticalChange == 0)
- return;
- if (m_num_pages == 1)
- return;
-
- /* From current page go forward and backward checking if pages are
- * visible */
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- {
- double bottom = this.ActualHeight;
- /* first going forward */
- for (int kk = m_currpage + 1; kk < m_num_pages; kk++)
- {
- UIElement uiElement = (UIElement)xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk);
- double y_top = uiElement.TranslatePoint(new System.Windows.Point(0, 0), xaml_PageList).Y;
- double y_bottom = uiElement.TranslatePoint(new System.Windows.Point(0, m_docPages[kk].Height), xaml_PageList).Y;
- /* Test if this and all further pages are outside window */
- if (y_top > bottom)
- break;
- /* Test if page is not even yet in window */
- if (y_bottom > 0)
- {
- if (!(m_dispatcherTimer != null && m_dispatcherTimer.IsEnabled == true))
- {
- /* In this case grab the first one that we find */
- if (second_item == -1)
- second_item = kk;
- }
- }
- }
-
- /* and now going backward */
- for (int kk = m_currpage; kk > -1; kk--)
- {
- UIElement uiElement = (UIElement)xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk);
- double y_top = uiElement.TranslatePoint(new System.Windows.Point(0, 0), xaml_PageList).Y;
- double y_bottom = uiElement.TranslatePoint(new System.Windows.Point(0, m_docPages[kk].Height), xaml_PageList).Y;
- /* Test if this and all further pages are outside window */
- if (y_bottom < 0)
- break;
- if (y_top < bottom)
- if (!(m_dispatcherTimer != null && m_dispatcherTimer.IsEnabled == true))
- first_item = kk;
- }
- e.Handled = true;
- if (first_item != -1)
- second_item = first_item;
- /* Finish */
- if (m_ScrolledChanged)
- {
- m_ScrolledChanged = false;
- }
- else
- {
- /* We have to update the vertical scroll position */
- double perc = (e.VerticalOffset) / (e.ExtentHeight - e.ViewportHeight);
- xaml_VerticalScroll.Value = perc * xaml_VerticalScroll.Maximum;
- }
- if (second_item < 0)
- second_item = 0;
- RenderRange(second_item, false, zoom_t.NO_ZOOM, 0);
- }
- }
-
- /* ScrollIntoView will not scroll to top on its own. If item is already
- * in view it just sits there */
- private void ScrollPageToTop(int k, double offset, bool from_scroller)
- {
- if (m_num_pages == 1)
- return;
- /* Get access to the scrollviewer */
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- {
- UIElement uiElement = (UIElement) xaml_PageList.ItemContainerGenerator.ContainerFromIndex(k);
- double y = uiElement.TranslatePoint(new System.Windows.Point(0, offset), xaml_PageList).Y;
- double curr_value = viewer.VerticalOffset;
- viewer.ScrollToVerticalOffset(curr_value + y);
-
- if (!from_scroller)
- {
- double perc = (double) k / (double) ( m_num_pages - 1);
- xaml_VerticalScroll.Value = perc * xaml_VerticalScroll.Maximum;
- }
- }
- }
-
- /* Scroll to offset */
- private void OffsetScroll(double offset)
- {
- if (m_num_pages == 1)
- return;
- /* Get access to the scrollviewer */
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- {
- double curr_value = viewer.VerticalOffset;
- AdjustScrollPercent(offset / viewer.ScrollableHeight);
- viewer.ScrollToVerticalOffset(curr_value + offset);
- }
- }
-
- /* Scroll to offset */
- private void OffsetScrollPercent(double percent)
- {
- /* Get access to the scrollviewer */
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- {
- double curr_value = viewer.VerticalOffset;
- if (curr_value < 0 || curr_value > viewer.MaxHeight)
- return;
- var extentheight = viewer.ExtentHeight - viewer.ViewportHeight;
-
- var pos = extentheight * percent;
- viewer.ScrollToVerticalOffset(pos);
- }
- }
-
- /* Render +/- the look ahead from where we are if blank page is present */
- async private void RenderRange(int new_page, bool scrollto, zoom_t newzoom, double zoom_offset)
- {
- /* Need to figure out what pages are going to be visible */
- double bottom = this.ActualHeight;
- bool done = false;
- int final_page = new_page;
- double count = -zoom_offset;
- int offset = -1;
- bool scrollbottom = false;
-
- if (newzoom != zoom_t.NO_ZOOM)
- offset = 0;
-
- if (m_thumbnails.Count < m_num_pages)
- final_page = final_page + 1;
- else
- {
- while (!done && final_page >= 0 && final_page < m_num_pages)
- {
- count = count + m_thumbnails[final_page].NativeHeight * m_doczoom;
- final_page = final_page + 1;
- if (final_page == m_num_pages || count > bottom)
- done = true;
- }
- /* We have zoomed out to a point where the offset will not stay
- * in its current spot. Figure out where we need to be */
- final_page = final_page - 1;
- if (newzoom == zoom_t.ZOOM_OUT && count < bottom)
- {
- int curr_page = new_page - 1;
- while (true)
- {
- if (curr_page < 0)
- break;
- count = count + m_thumbnails[curr_page].NativeHeight * m_doczoom;
- if (count > bottom)
- break;
- curr_page = curr_page - 1;
- }
- new_page = curr_page;
- if (new_page < 0)
- new_page = 0;
- scrollbottom = true;
- }
- }
-
- for (int k = new_page + offset; k <= final_page + 1; k++)
- {
- if (k >= 0 && k < m_num_pages)
- {
- /* Check if page is already rendered */
- var doc = m_docPages[k];
- if (doc.Content != Page_Content_t.FULL_RESOLUTION ||
- doc.Zoom != m_doczoom || m_AA != doc.AA ||
- (doc.Annotate == Annotate_t.UNKNOWN && m_showannot) ||
- (doc.Annotate == Annotate_t.ANNOTATE_VISIBLE && !m_showannot) ||
- (doc.Annotate == Annotate_t.ANNOTATE_HIDDEN && m_showannot))
- {
- Point ras_size;
- double scale_factor = m_doczoom;
- /* To avoid multiple page renderings on top of one
- * another with scroll changes mark this as being
- * full resolution */
- m_docPages[k].Content = Page_Content_t.FULL_RESOLUTION;
- /* Avoid launching another thread just because we don't
- * know the annotation condition for this page */
- m_docPages[k].Annotate = Annotate_t.COMPUTING;
- if (ComputePageSize(k, scale_factor, out ras_size) == status_t.S_ISOK)
- {
- try
- {
- Byte[] bitmap = new byte[(int)ras_size.X * (int)ras_size.Y * 4];
- BlocksText charlist = null;
- Annotate_t annot = Annotate_t.UNKNOWN;
- m_docPages[k].NativeWidth = (int)(ras_size.X / scale_factor);
- m_docPages[k].NativeHeight = (int)(ras_size.Y / scale_factor);
-
- Task<int> ren_task =
- new Task<int>(() => mu_doc.RenderPage(k, bitmap,
- (int)ras_size.X, (int)ras_size.Y, scale_factor,
- false, true, !(m_textset[k]), out charlist, m_showannot,
- out annot));
- ren_task.Start();
- await ren_task.ContinueWith((antecedent) =>
- {
- status_t code = (status_t)ren_task.Result;
- if (code == status_t.S_ISOK)
- {
- SetPageAnnot(k, annot);
- if (m_docPages[k].TextBox != null)
- ScaleTextBox(k);
- if (m_links_on && m_page_link_list != null)
- {
- m_docPages[k].LinkBox = m_page_link_list[k];
- if (m_docPages[k].LinkBox != null)
- ScaleLinkBox(k);
- }
- else
- {
- m_docPages[k].LinkBox = null;
- }
- if (!(m_textset[k]) && charlist != null)
- {
- m_textptrs[k] = charlist;
- if (scale_factor != 1.0)
- ScaleTextBlocks(k, scale_factor);
- m_docPages[k].TextBlocks = m_textptrs[k];
- m_textset[k] = true;
- if (m_selectall)
- {
- int num_blocks = m_docPages[k].TextBlocks.Count;
- for (int jj = 0; jj < num_blocks; jj++)
- {
- m_docPages[k].TextBlocks[jj].Color = m_textselectcolor;
- }
- }
- }
- else
- {
- /* We had to rerender due to scale */
- if (m_textptrs[k] != null)
- {
- ScaleTextBlocks(k, scale_factor);
- m_docPages[k].TextBlocks = m_textptrs[k];
- }
- if (m_lineptrs[k] != null)
- {
- ScaleTextLines(k, scale_factor);
- m_docPages[k].SelectedLines = m_lineptrs[k];
- }
- }
- /* This needs to be handled here to reduce
- * flashing effects */
- if (newzoom != zoom_t.NO_ZOOM && k == new_page)
- {
- m_ignorescrollchange = true;
- UpdatePageSizes();
- xaml_VerticalScroll.Maximum = m_totalpageheight * m_doczoom + 4 * m_num_pages;
- if (!scrollbottom)
- ScrollPageToTop(new_page, zoom_offset, false);
- }
- UpdatePage(k, bitmap, ras_size,
- Page_Content_t.FULL_RESOLUTION, m_doczoom, m_AA);
- if (k == new_page && scrollto && new_page != m_currpage)
- {
- m_doscroll = true;
- ScrollPageToTop(k, 0, false);
- }
- }
- }, TaskScheduler.FromCurrentSynchronizationContext());
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed page " + k + "\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
- }
- else
- {
- /* We did not have to render the page but we may need to
- * scroll to it */
- if (k == new_page && scrollto && new_page != m_currpage)
- {
- m_ignorescrollchange = true;
- ScrollPageToTop(k, 0, false);
- }
- }
- }
- }
- /* Release old range and set new page */
- //ReleasePages(m_currpage, new_page - 1, final_page + 1);
- m_currpage = new_page;
- xaml_currPage.Text = (m_currpage + 1).ToString();
- }
-
- /* Avoids the next page jumping into view when touched by mouse. See xaml code */
- private void AvoidScrollIntoView(object sender, RequestBringIntoViewEventArgs e)
- {
- if (!m_doscroll)
- e.Handled = true;
- else
- m_doscroll = false;
- }
-
- private void ReleasePages(int old_page, int new_page, int final_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 */
- for (int k = 0; k < m_num_pages; k++)
- {
- if (k < new_page || k > final_page)
- {
- if (k >= 0 && k < m_num_pages)
- {
- SetThumb(k);
- }
- }
- }
- }
-
- /* Return this page from a full res image to the thumb image */
- private void SetThumb(int page_num)
- {
- /* See what is there now */
- var doc_page = m_docPages[page_num];
- if (doc_page.Content == Page_Content_t.THUMBNAIL &&
- doc_page.Zoom == m_doczoom) return;
-
- if (m_thumbnails.Count > page_num)
- {
- doc_page.Content = Page_Content_t.THUMBNAIL;
- doc_page.Zoom = m_doczoom;
-
- doc_page.BitMap = m_thumbnails[page_num].BitMap;
- doc_page.Width = (int)(m_doczoom * doc_page.BitMap.PixelWidth / Constants.SCALE_THUMB);
- doc_page.Height = (int)(m_doczoom * doc_page.BitMap.PixelHeight / Constants.SCALE_THUMB);
- doc_page.PageNum = page_num;
- doc_page.LinkBox = null;
- doc_page.TextBox = null;
- /* No need to refresh unless it just occurs during other stuff
- * we just want to make sure we can release the bitmaps */
- //doc_page.PageRefresh();
- }
- }
-
- private void gsDLL(object gsObject, String mess)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, mess);
- }
-
- /* Catastrophic */
- private void muDLL(object gsObject, String mess)
- {
- ShowMessage(NotifyType_t.MESS_ERROR, mess);
- /* Disable even the ability to open a file */
- xaml_open.Opacity = 0.5;
- xaml_open.IsEnabled = false;
- xaml_file.Opacity = 0.5;
- xaml_file.IsEnabled = false;
- /* And to drag - drop or registry start up */
- xaml_PageList.RemoveHandler(Grid.DragOverEvent, new System.Windows.DragEventHandler(Grid_DragOver));
- xaml_PageList.RemoveHandler(Grid.DropEvent, new System.Windows.DragEventHandler(Grid_Drop));
- m_regstartup = false;
- }
-
- private void gsIO(object gsObject, String mess, int len)
- {
- m_gsoutput.Update(mess, len);
- }
-
- private void mupdfUpdate(object muObject, muPDFEventArgs asyncInformation)
- {
- if (asyncInformation.Completed)
- {
- xaml_MuPDFProgress.Value = 100;
- xaml_MuPDFGrid.Visibility = System.Windows.Visibility.Collapsed;
- if (asyncInformation.Params.result == GS_Result_t.gsFAILED)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "MuPDF failed to convert document");
- }
- MuPDFResult(asyncInformation.Params);
- }
- else
- {
- this.xaml_MuPDFProgress.Value = asyncInformation.Progress;
- }
- }
-
- /* MuPDF Result*/
- public void MuPDFResult(ConvertParams_t gs_result)
- {
- if (gs_result.result == GS_Result_t.gsCANCELLED)
- {
- xaml_MuPDFGrid.Visibility = System.Windows.Visibility.Collapsed;
- return;
- }
- if (gs_result.result == GS_Result_t.gsFAILED)
- {
- xaml_MuPDFGrid.Visibility = System.Windows.Visibility.Collapsed;
- ShowMessage(NotifyType_t.MESS_STATUS, "MuPDF Failed Conversion");
- return;
- }
- ShowMessage(NotifyType_t.MESS_STATUS, "MuPDF Completed Conversion");
- }
-
- private void gsProgress(object gsObject, gsEventArgs asyncInformation)
- {
- if (asyncInformation.Completed)
- {
- xaml_DistillProgress.Value = 100;
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
- if (asyncInformation.Params.result == GS_Result_t.gsFAILED)
- {
- switch (asyncInformation.Params.task)
- {
- case GS_Task_t.CREATE_XPS:
- ShowMessage(NotifyType_t.MESS_STATUS, "Ghostscript failed to create XPS");
- break;
-
- case GS_Task_t.PS_DISTILL:
- ShowMessage(NotifyType_t.MESS_STATUS, "Ghostscript failed to distill PS");
- break;
-
- case GS_Task_t.SAVE_RESULT:
- ShowMessage(NotifyType_t.MESS_STATUS, "Ghostscript failed to convert document");
- break;
- }
- return;
- }
- GSResult(asyncInformation.Params);
- }
- else
- {
- this.xaml_DistillProgress.Value = asyncInformation.Progress;
- }
- }
-
- /* GS Result*/
- public void GSResult(gsParams_t gs_result)
- {
- if (gs_result.result == GS_Result_t.gsCANCELLED)
- {
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
- return;
- }
- if (gs_result.result == GS_Result_t.gsFAILED)
- {
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
- ShowMessage(NotifyType_t.MESS_STATUS, "GS Failed Conversion");
- return;
- }
- switch (gs_result.task)
- {
- case GS_Task_t.CREATE_XPS:
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
- PrintXPS(gs_result.outputfile);
- break;
-
- case GS_Task_t.PS_DISTILL:
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
- m_origfile = gs_result.inputfile;
- OpenFile2(gs_result.outputfile);
- break;
-
- case GS_Task_t.SAVE_RESULT:
- ShowMessage(NotifyType_t.MESS_STATUS, "GS Completed Conversion");
- break;
- }
- }
-
- private void PrintCommand(object sender, ExecutedRoutedEventArgs e)
- {
- Print(sender, e);
- }
-
- /* Printing is achieved using xpswrite device in ghostscript and
- * pushing that file through the XPS print queue */
- private void Print(object sender, RoutedEventArgs e)
- {
- if (!m_file_open)
- return;
-
- /* If file is already xps then gs need not do this */
- if (!m_isXPS)
- {
- xaml_DistillProgress.Value = 0;
- if (m_ghostscript.CreateXPS(m_currfile, Constants.DEFAULT_GS_RES, m_num_pages) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS currently busy");
- return;
- }
- else
- {
- /* Right now this is not possible to cancel due to the way
- * that gs is run for xpswrite from pdf */
- xaml_CancelDistill.Visibility = System.Windows.Visibility.Collapsed;
- xaml_DistillName.Text = "Convert to XPS";
- xaml_DistillName.FontWeight = FontWeights.Bold;
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Visible;
- }
- }
- else
- PrintXPS(m_currfile);
- }
-
- private void PrintXPS(String file)
- {
- gsprint ghostprint = new gsprint();
- System.Windows.Controls.PrintDialog pDialog = ghostprint.GetPrintDialog();
-
- if (pDialog == null)
- return;
- /* We have to create the XPS document on a different thread */
- XpsDocument xpsDocument = new XpsDocument(file, FileAccess.Read);
- FixedDocumentSequence fixedDocSeq = xpsDocument.GetFixedDocumentSequence();
- PrintQueue printQueue = pDialog.PrintQueue;
-
- m_ghostprint = ghostprint;
- xaml_PrintGrid.Visibility = System.Windows.Visibility.Visible;
-
- xaml_PrintProgress.Value = 0;
-
- ghostprint.Print(printQueue, fixedDocSeq);
- }
-
- private void PrintProgress(object printHelper, gsPrintEventArgs Information)
- {
- if (Information.Status != PrintStatus_t.PRINT_BUSY)
- {
- xaml_PrintProgress.Value = 100;
- xaml_PrintGrid.Visibility = System.Windows.Visibility.Collapsed;
- }
- else
- {
- xaml_PrintProgress.Value =
- 100.0 * (double)Information.Page / (double)m_num_pages;
- }
- }
-
- private void CancelMuPDFClick(object sender, RoutedEventArgs e)
- {
- xaml_CancelMuPDF.IsEnabled = false;
- mu_doc.Cancel();
- }
-
- private void CancelDistillClick(object sender, RoutedEventArgs e)
- {
- xaml_CancelDistill.IsEnabled = false;
- if (m_ghostscript != null)
- m_ghostscript.Cancel();
- }
-
- private void CancelPrintClick(object sender, RoutedEventArgs e)
- {
- m_ghostprint.CancelAsync();
- }
-
- private void ShowGSMessage(object sender, RoutedEventArgs e)
- {
- m_gsoutput.Show();
- }
-
- private void ConvertClick(object sender, RoutedEventArgs e)
- {
- if (m_ghostscript.GetStatus() != gsStatus.GS_READY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy");
- return;
- }
-
- if (m_convertwin == null || !m_convertwin.IsActive)
- {
- m_convertwin = new Convert(m_num_pages);
- m_convertwin.ConvertUpdateMain += new Convert.ConvertCallBackMain(ConvertReturn);
- m_convertwin.Activate();
- m_convertwin.Show();
- }
- }
-
- private void ConvertReturn(object sender)
- {
- Device device = (Device)m_convertwin.xaml_DeviceList.SelectedItem;
- if (device == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "No Device Selected");
- return;
- }
-
- if (m_ghostscript.GetStatus() != gsStatus.GS_READY &&
- !device.MuPDFDevice)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy");
- return;
- }
-
- System.Collections.IList pages = m_convertwin.xaml_PageList.SelectedItems;
- System.Collections.IList pages_selected = null;
- String options = m_convertwin.xaml_options.Text;
- int resolution = 72;
- bool multi_page_needed = false;
- int first_page = -1;
- int last_page = -1;
-
- if (pages.Count == 0)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "No Pages Selected");
- return;
- }
-
- /* Get a filename */
- System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog();
- dlg.Filter = "All files (*.*)|*.*";
- dlg.FilterIndex = 1;
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- if (device.MuPDFDevice)
- {
- /* Allow only one of these as a time */
- pages_selected = pages;
- var val = m_convertwin.xaml_resolution.Text;
- if (val.Length > 0)
- {
- bool isok = true;
- int num = resolution;
- try
- {
- num = System.Convert.ToInt32(val);
- }
- catch (FormatException e)
- {
- isok = false;
- Console.WriteLine("Input string is not a sequence of digits.");
- }
- catch (OverflowException e)
- {
- isok = false;
- Console.WriteLine("The number cannot fit in an Int32.");
- }
- if (isok && num > 0)
- resolution = num;
- }
-
- if (mu_doc.ConvertSave(device.DeviceType, dlg.FileName,
- pages.Count, pages_selected, resolution) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "MuPDF conversion busy");
- return;
- }
- xaml_CancelMuPDF.Visibility = System.Windows.Visibility.Visible;
- xaml_MuPDFGrid.Visibility = System.Windows.Visibility.Visible;
- }
- else
- {
- if (!device.SupportsMultiPage && m_num_pages > 1)
- multi_page_needed = true;
-
- if (pages.Count != m_num_pages)
- {
- /* We may need to go through page by page. Determine if
- * selection of pages is continuous. This is done by
- * looking at the first one in the list and the last one
- * in the list and checking the length */
- SelectPage lastpage = (SelectPage)pages[pages.Count - 1];
- SelectPage firstpage = (SelectPage)pages[0];
- int temp = lastpage.Page - firstpage.Page + 1;
- if (temp == pages.Count)
- {
- /* Pages are contiguous. Add first and last page
- * as command line option */
- options = options + " -dFirstPage=" + firstpage.Page + " -dLastPage=" + lastpage.Page;
- first_page = firstpage.Page;
- last_page = lastpage.Page;
- }
- else
- {
- /* Pages are not continguous. We will do this page
- * by page.*/
- pages_selected = pages;
- multi_page_needed = true; /* need to put in separate outputs */
- }
- }
- xaml_DistillProgress.Value = 0;
- if (m_ghostscript.Convert(m_currfile, options,
- device.DeviceName, dlg.FileName, pages.Count, resolution,
- multi_page_needed, pages_selected, first_page, last_page,
- null, null) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy");
- return;
- }
- xaml_DistillName.Text = "GS Converting Document";
- xaml_CancelDistill.Visibility = System.Windows.Visibility.Collapsed;
- xaml_DistillName.FontWeight = FontWeights.Bold;
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Visible;
- }
- m_convertwin.Close();
- }
- return;
- }
-
- private void ExtractPages(object sender, RoutedEventArgs e)
- {
- if (!m_init_done || m_isXPS)
- return;
-
- if (m_extractwin == null || !m_extractwin.IsActive)
- {
- m_extractwin = new PageExtractSave(m_num_pages);
- m_extractwin.ExtractMain += new PageExtractSave.ExtractCallBackMain(ExtractReturn);
- m_extractwin.Activate();
- m_extractwin.Show();
- }
- }
-
- private void ExtractReturn(object sender)
- {
- if (m_extractwin.xaml_PageList.SelectedItems.Count == 0)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "No Pages Selected");
- return;
- }
-
- /* Go through the actual list not the selected items list. The
- * selected items list contains them in the order that the were
- * selected not the order graphically shown */
- List<SelectPage> pages = new List<SelectPage>(m_extractwin.xaml_PageList.SelectedItems.Count);
-
- for (int kk = 0; kk < m_extractwin.xaml_PageList.Items.Count; kk++)
- {
- var item = (m_extractwin.xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk)) as System.Windows.Controls.ListViewItem;
- if (item.IsSelected == true)
- {
- pages.Add((SelectPage) m_extractwin.Pages[kk]);
- }
- }
-
- /* Get a filename */
- System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog();
- dlg.Filter = "All files (*.pdf)|*.pdf";
- dlg.FilterIndex = 1;
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- mu_doc.PDFExtract(m_currfile, dlg.FileName, m_currpassword, m_currpassword != null,
- false, pages.Count, pages);
- m_extractwin.Close();
- }
- return;
- }
-
- private void GetPassword()
- {
- if (m_password == null)
- {
- m_password = new Password();
- m_password.PassUpdateMain += new Password.PassCallBackMain(PasswordReturn);
- m_password.Activate();
- m_password.Show();
- }
- }
-
- private void PasswordReturn(object sender)
- {
- if (mu_doc.ApplyPassword(m_password.xaml_Password.Password))
- {
- m_currpassword = m_password.xaml_Password.Password;
- m_password.Close();
- m_password = null;
- xaml_OpenProgressGrid.Visibility = System.Windows.Visibility.Visible;
- xaml_openfilestatus.Text = "Opening File";
- StartViewer();
- }
- else
- {
- xaml_OpenProgressGrid.Visibility = System.Windows.Visibility.Collapsed;
- ShowMessage(NotifyType_t.MESS_STATUS, "Password Incorrect");
- }
- }
-
- private void ShowInfo(object sender, RoutedEventArgs e)
- {
- String Message;
-
- if (m_file_open)
- {
- String filename;
-
- if (m_origfile != null && (m_document_type == DocumentTypes.PS ||
- m_document_type == DocumentTypes.EPS))
- filename = m_origfile;
- else
- filename = m_currfile;
-
- Message =
- " File: " + filename + "\n" +
- "Document Type: " + m_document_type + "\n" +
- " Pages: " + m_num_pages + "\n" +
- " Current Page: " + (m_currpage + 1) + "\n";
- if (m_infowindow == null || !(m_infowindow.IsActive))
- m_infowindow = new Info();
- m_infowindow.xaml_TextInfo.Text = Message;
- m_infowindow.FontFamily = new FontFamily("Courier New");
- m_infowindow.Show();
- }
- }
-
- #region Zoom Control
-
- /* Find out where the current page is */
- private double ComputeOffsetZoomOut(double old_zoom)
- {
- double y = 0;
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- {
- /* Look at the offset and where it falls relative to the top of our current page */
- UIElement uiElement = (UIElement)xaml_PageList.ItemContainerGenerator.ContainerFromIndex(m_currpage);
- y = viewer.TranslatePoint(new System.Windows.Point(0, 0), uiElement).Y;
- }
- return y * m_doczoom / old_zoom;
- }
-
- private double ComputeOffsetZoomIn(double old_zoom, out int new_page)
- {
- double y = 0;
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- new_page = m_currpage;
- if (viewer != null)
- {
- /* Look at the offset and where it falls relative to the top of our current page */
- UIElement uiElement = (UIElement)xaml_PageList.ItemContainerGenerator.ContainerFromIndex(m_currpage);
- y = viewer.TranslatePoint(new System.Windows.Point(0, 0), uiElement).Y;
-
- /* If we are zoomed out, we can be on a page that is not on the top boundry. See if we can find one
- * that is */
- if (y < 0)
- {
- new_page = m_currpage - 1;
- while (true)
- {
- if (new_page < 0)
- {
- new_page = 0;
- return 0;
- }
- uiElement = (UIElement)xaml_PageList.ItemContainerGenerator.ContainerFromIndex(new_page);
- y = viewer.TranslatePoint(new System.Windows.Point(0, 0), uiElement).Y;
- if (y >= 0)
- {
- return y * m_doczoom / old_zoom;
- }
- new_page = new_page - 1;
- }
- }
- }
- return y * m_doczoom / old_zoom;
- }
-
- private void ZoomOut(object sender, RoutedEventArgs e)
- {
- if (!m_init_done || m_doczoom <= Constants.ZOOM_MIN)
- return;
- double old_zoom = m_doczoom;
- m_doczoom = m_doczoom - Constants.ZOOM_STEP;
- if (m_doczoom < Constants.ZOOM_MIN)
- m_doczoom = Constants.ZOOM_MIN;
- xaml_ZoomSlider.Value = m_doczoom * 100.0;
- double offset = ComputeOffsetZoomOut(old_zoom);
- RenderRange(m_currpage, false, zoom_t.ZOOM_OUT, offset);
- }
-
- private void ZoomIn(object sender, RoutedEventArgs e)
- {
- if (!m_init_done || m_doczoom >= Constants.ZOOM_MAX)
- return;
- double old_zoom = m_doczoom;
- m_doczoom = m_doczoom + Constants.ZOOM_STEP;
- if (m_doczoom > Constants.ZOOM_MAX)
- m_doczoom = Constants.ZOOM_MAX;
- xaml_ZoomSlider.Value = m_doczoom * 100.0;
- int newpage;
- double offset = ComputeOffsetZoomIn(old_zoom, out newpage);
- RenderRange(newpage, false, zoom_t.ZOOM_IN, offset);
- }
-
- private void ActualSize(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
- double old_zoom = m_doczoom;
- m_doczoom = 1.0;
- xaml_ZoomSlider.Value = m_doczoom * 100.0;
- if (old_zoom < 1.0)
- {
- int new_page;
- double offset = ComputeOffsetZoomIn(old_zoom, out new_page);
- RenderRange(new_page, false, zoom_t.ZOOM_IN, offset);
- }
- else if (old_zoom > 1.0)
- {
- double offset = ComputeOffsetZoomOut(old_zoom);
- RenderRange(m_currpage, false, zoom_t.ZOOM_OUT, offset);
- }
- }
-
- private void ContScrollFill(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
- /* Scale our pages based upon the size of scrollviewer */
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer == null)
- return;
- double width = viewer.ViewportWidth;
- double page_width = m_thumbnails[m_currpage].NativeWidth;
- double scale = width / page_width;
- if (scale < Constants.ZOOM_MIN)
- scale = Constants.ZOOM_MIN;
- if (scale > Constants.ZOOM_MAX)
- scale = Constants.ZOOM_MAX;
- if (m_doczoom == scale)
- return;
- double old_zoom = m_doczoom;
- m_doczoom = scale;
- xaml_ZoomSlider.Value = m_doczoom * 100.0;
- if (old_zoom > m_doczoom)
- RenderRange(m_currpage, true, zoom_t.ZOOM_OUT, 0);
- else
- RenderRange(m_currpage, true, zoom_t.ZOOM_IN, 0);
- }
-
- private void ExpandFill(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
- /* Scale our pages based upon the size of scrollviewer */
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer == null)
- return;
- double height = viewer.ViewportHeight;
- double width = viewer.ViewportWidth;
- double page_height = m_thumbnails[m_currpage].NativeHeight;
- double page_width = m_thumbnails[m_currpage].NativeWidth;
- double height_scale = height / page_height;
- double width_scale = width / page_width;
- double scale = Math.Min(height_scale, width_scale);
- if (scale < Constants.ZOOM_MIN)
- scale = Constants.ZOOM_MIN;
- if (scale > Constants.ZOOM_MAX)
- scale = Constants.ZOOM_MAX;
- if (m_doczoom == scale)
- return;
- double old_zoom = m_doczoom;
- m_doczoom = scale;
- xaml_ZoomSlider.Value = m_doczoom * 100.0;
- if (old_zoom > m_doczoom)
- RenderRange(m_currpage, true, zoom_t.ZOOM_OUT, 0);
- else
- RenderRange(m_currpage, true, zoom_t.ZOOM_IN, 0);
- }
-
- private void ShowFooter(object sender, RoutedEventArgs e)
- {
- xaml_FooterControl.Visibility = System.Windows.Visibility.Visible;
- }
-
- private void HideFooter(object sender, RoutedEventArgs e)
- {
- xaml_FooterControl.Visibility = System.Windows.Visibility.Collapsed;
- }
-
- private void ZoomReleased(object sender, MouseButtonEventArgs e)
- {
- if (m_init_done)
- {
- double zoom = xaml_ZoomSlider.Value / 100.0;
- if (zoom > Constants.ZOOM_MAX)
- zoom = Constants.ZOOM_MAX;
- if (zoom < Constants.ZOOM_MIN)
- zoom = Constants.ZOOM_MIN;
- double old_zoom = zoom;
- m_doczoom = zoom;
- if (old_zoom > m_doczoom)
- {
- double offset = ComputeOffsetZoomOut(old_zoom);
- RenderRange(m_currpage, false, zoom_t.ZOOM_OUT, offset);
- }
- else
- {
- int new_page;
- double offset = ComputeOffsetZoomIn(old_zoom, out new_page);
- RenderRange(new_page, false, zoom_t.ZOOM_IN, offset);
- }
- }
- }
-
- /* If the zoom is not equalto 1 then set the zoom to 1 and scoll to this page */
- private void PageDoubleClick(object sender, MouseButtonEventArgs e)
- {
- return; /* Disable this for now */
- if (m_doczoom != 1.0)
- {
- double old_zoom = m_doczoom;
- m_doczoom = 1.0;
- xaml_Zoomsize.Text = "100";
- var item = ((FrameworkElement)e.OriginalSource).DataContext as DocPage;
- if (item != null)
- {
- if (old_zoom > m_doczoom)
- {
- double offset = ComputeOffsetZoomOut(old_zoom);
- RenderRange(m_currpage, false, zoom_t.ZOOM_OUT, offset);
- }
- else
- {
- int new_page;
- double offset = ComputeOffsetZoomIn(old_zoom, out new_page);
- RenderRange(new_page, false, zoom_t.ZOOM_IN, offset);
- }
- }
- }
- }
-
- private void ZoomEnterClicked(object sender, System.Windows.Input.KeyEventArgs e)
- {
- if (e.Key == Key.Return)
- {
- e.Handled = true;
- var desired_zoom = xaml_Zoomsize.Text;
- try
- {
- double zoom = (double)System.Convert.ToInt32(desired_zoom) / 100.0;
- if (zoom > Constants.ZOOM_MAX)
- zoom = Constants.ZOOM_MAX;
- if (zoom < Constants.ZOOM_MIN)
- zoom = Constants.ZOOM_MIN;
- double old_zoom = m_doczoom;
- m_doczoom = zoom;
- if (old_zoom > m_doczoom)
- {
- double offset = ComputeOffsetZoomOut(old_zoom);
- RenderRange(m_currpage, false, zoom_t.ZOOM_OUT, offset);
- }
- else
- {
- int new_page;
- double offset = ComputeOffsetZoomIn(old_zoom, out new_page);
- RenderRange(new_page, false, zoom_t.ZOOM_IN, offset);
- }
- }
- catch (FormatException e1)
- {
- Console.WriteLine("String is not a sequence of digits.");
- }
- catch (OverflowException e2)
- {
- Console.WriteLine("The number cannot fit in an Int32.");
- }
- }
- }
-
- /* Rescale the pages based upon the zoom value and the native size */
- private void UpdatePageSizes()
- {
- SetThumbwidth();
- for (int k = 0; k > m_num_pages; k++)
- {
- var thumbpage = m_thumbnails[k];
- var page = m_docPages[k];
-
- if (page.Zoom == m_doczoom)
- continue;
- int scale_zoom = (int)Math.Round((double)page.Height / (double)thumbpage.NativeHeight);
- if (scale_zoom != m_doczoom)
- {
- page.Height = (int)Math.Round(thumbpage.NativeHeight * m_doczoom);
- page.Width = (int)Math.Round(thumbpage.NativeWidth * m_doczoom);
- }
- }
- }
- #endregion Zoom Control
-
- #region Thumb Rendering
- void SetThumbInit(int page_num, Byte[] bitmap, Point ras_size, double zoom_in)
- {
- /* Three jobs. Store the thumb and possibly update the full page. Also
- add to collection of pages. Set up page geometry info (scale of
- 100 percent ) */
-
- DocPage doc_page = new DocPage();
- m_thumbnails.Add(doc_page);
-
- doc_page.Width = (int)ras_size.X;
-
- doc_page.Height = (int)ras_size.Y;
- doc_page.NativeWidth = (int)(ras_size.X / Constants.SCALE_THUMB);
- doc_page.NativeHeight = (int)(ras_size.Y / Constants.SCALE_THUMB);
- m_totalpageheight = m_totalpageheight + doc_page.NativeHeight;
-
- doc_page.Content = Page_Content_t.THUMBNAIL;
- doc_page.Zoom = zoom_in;
- int stride = doc_page.Width * 4;
- doc_page.BitMap = BitmapSource.Create(doc_page.Width, doc_page.Height,
- 72, 72, PixelFormats.Pbgra32, BitmapPalettes.Halftone256, bitmap, stride);
- doc_page.PageNum = page_num;
-
- /* Lets see if we need to set the main page */
- var doc = m_docPages[page_num];
- switch (doc.Content)
- {
- case Page_Content_t.FULL_RESOLUTION:
- case Page_Content_t.THUMBNAIL:
- return;
-
- case Page_Content_t.NOTSET:
- doc_page = InitDocPage();
- doc_page.Content = Page_Content_t.THUMBNAIL;
- doc_page.Zoom = zoom_in;
- doc_page.BitMap = m_thumbnails[page_num].BitMap;
- doc_page.Width = (int)(ras_size.X / Constants.SCALE_THUMB);
- doc_page.Height = (int)(ras_size.Y / Constants.SCALE_THUMB);
- doc_page.PageNum = page_num;
- this.m_docPages[page_num] = doc_page;
- break;
-
- case Page_Content_t.OLD_RESOLUTION:
- return;
- }
- }
-
- private void ThumbsWork(object sender, DoWorkEventArgs e)
- {
- Point ras_size;
- status_t code;
- double scale_factor = Constants.SCALE_THUMB;
- BackgroundWorker worker = sender as BackgroundWorker;
-
- Byte[] bitmap;
-
- for (int k = 0; k < m_num_pages; k++)
- {
- if (ComputePageSize(k, scale_factor, out ras_size) == status_t.S_ISOK)
- {
- try
- {
- bitmap = new byte[(int)ras_size.X * (int)ras_size.Y * 4];
- BlocksText charlist;
- Annotate_t annot;
- /* Synchronous call on our background thread */
- code = (status_t)mu_doc.RenderPage(k, bitmap, (int)ras_size.X,
- (int)ras_size.Y, scale_factor, false, false, false,
- out charlist, false, out annot);
- }
- catch (OutOfMemoryException em)
- {
- Console.WriteLine("Memory allocation failed thumb page " + k + em.Message + "\n");
- break;
- }
- /* Use thumb if we rendered ok */
- if (code == status_t.S_ISOK)
- {
- double percent = 100 * (double)(k + 1) / (double)m_num_pages;
- thumb_t curr_thumb = new thumb_t();
- curr_thumb.page_num = k;
- curr_thumb.bitmap = bitmap;
- curr_thumb.size = ras_size;
- worker.ReportProgress((int)percent, curr_thumb);
- }
- }
- if (worker.CancellationPending == true)
- {
- e.Cancel = true;
- break;
- }
- }
- }
-
- private void ThumbsCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- xaml_ProgressGrid.Visibility = System.Windows.Visibility.Collapsed;
- xaml_ThumbProgress.Value = 0;
- xaml_ThumbList.ItemsSource = m_thumbnails;
- m_have_thumbs = true;
- m_thumbworker = null;
- //xaml_CancelThumb.IsEnabled = true;
- xaml_ThumbList.Items.Refresh();
- xaml_VerticalScroll.Minimum = 0;
- xaml_VerticalScroll.Maximum = m_totalpageheight + 4 * m_num_pages;
- //thumbSize = (viewportSize/(maximum–minimum+viewportSize))×trackLength
- SetThumbwidth();
- //ScrollBarExtensions.SetThumbLength(xaml_VerticalScroll, 1);
- }
-
- private void ThumbsProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- thumb_t thumb = (thumb_t)(e.UserState);
-
- xaml_ThumbProgress.Value = e.ProgressPercentage;
- SetThumbInit(thumb.page_num, thumb.bitmap, thumb.size, 1.0);
- }
-
- private void RenderThumbs()
- {
- /* Create background task for rendering the thumbnails. Allow
- this to be cancelled if we open a new doc while we are in loop
- rendering. Put the UI updates in the progress changed which will
- run on the main thread */
- try
- {
- m_thumbworker = new BackgroundWorker();
- m_thumbworker.WorkerReportsProgress = true;
- m_thumbworker.WorkerSupportsCancellation = true;
- m_thumbworker.DoWork += new DoWorkEventHandler(ThumbsWork);
- m_thumbworker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ThumbsCompleted);
- m_thumbworker.ProgressChanged += new ProgressChangedEventHandler(ThumbsProgressChanged);
- xaml_ProgressGrid.Visibility = System.Windows.Visibility.Visible;
- m_thumbworker.RunWorkerAsync();
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during thumb rendering\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
- #endregion Thumb Rendering
-
- #region Copy Paste
- /* Copy the current page as a bmp to the clipboard this is done at the
- * current resolution */
- private void CopyPage(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
- var curr_page = m_docPages[m_currpage];
- System.Windows.Clipboard.SetImage(curr_page.BitMap);
- m_clipboardset = true;
- }
-
- /* Paste the page to various types supported by the windows encoder class */
- private void PastePage(object sender, RoutedEventArgs e)
- {
- var menu = (System.Windows.Controls.MenuItem)sender;
-
- String tag = (String)menu.Tag;
-
- if (!m_clipboardset || !System.Windows.Clipboard.ContainsImage() ||
- !m_init_done)
- return;
- var bitmap = System.Windows.Clipboard.GetImage();
-
- BitmapEncoder encoder;
- System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog();
- dlg.FilterIndex = 1;
-
- switch (tag)
- {
- case "PNG":
- dlg.Filter = "PNG Files(*.png)|*.png";
- encoder = new PngBitmapEncoder();
-
- break;
- case "JPG":
- dlg.Filter = "JPEG Files(*.jpg)|*.jpg";
- encoder = new JpegBitmapEncoder();
- break;
-
- case "WDP":
- dlg.Filter = "HDP Files(*.wdp)|*.wdp";
- encoder = new WmpBitmapEncoder();
- break;
-
- case "TIF":
- dlg.Filter = "TIFF Files(*.tif)|*.tif";
- encoder = new TiffBitmapEncoder();
- break;
-
- case "BMP":
- dlg.Filter = "BMP Files(*.bmp)|*.bmp";
- encoder = new BmpBitmapEncoder();
- break;
-
- case "GIF":
- dlg.Filter = "GIF Files(*.gif)|*.gif";
- encoder = new GifBitmapEncoder();
- break;
-
- default:
- return;
- }
-
- encoder.Frames.Add(BitmapFrame.Create(bitmap));
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- using (var stream = dlg.OpenFile())
- encoder.Save(stream);
- }
- }
- #endregion Copy Paste
-
- #region SaveAs
- String CreatePDFXA(Save_Type_t type)
- {
- Byte[] Resource;
- String Profile;
-
- switch (type)
- {
- case Save_Type_t.PDFA1_CMYK:
- case Save_Type_t.PDFA2_CMYK:
- Resource = Properties.Resources.PDFA_def;
- Profile = m_outputintents.cmyk_icc;
- break;
-
- case Save_Type_t.PDFA1_RGB:
- case Save_Type_t.PDFA2_RGB:
- Resource = Properties.Resources.PDFA_def;
- Profile = m_outputintents.rgb_icc;
- break;
-
- case Save_Type_t.PDFX3_CMYK:
- Resource = Properties.Resources.PDFX_def;
- Profile = m_outputintents.cmyk_icc;
- break;
-
- case Save_Type_t.PDFX3_GRAY:
- Resource = Properties.Resources.PDFX_def;
- Profile = m_outputintents.gray_icc;
- break;
-
- default:
- return null;
- }
-
- String Profile_new = Profile.Replace("\\", "/");
- String result = System.Text.Encoding.UTF8.GetString(Resource);
- String pdfx_cust = result.Replace("ICCPROFILE", Profile_new);
- var out_file = System.IO.Path.GetTempFileName();
- System.IO.File.WriteAllText(out_file, pdfx_cust);
- return out_file;
- }
-
- private void SaveFile(Save_Type_t type)
- {
- if (!m_file_open)
- return;
-
- System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog();
- dlg.FilterIndex = 1;
-
- /* PDF output types */
- if (type <= Save_Type_t.PDF)
- {
- dlg.Filter = "PDF Files(*.pdf)|*.pdf";
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- String options = null;
- bool use_gs = true;
- String init_file = CreatePDFXA(type);
-
- switch (type)
- {
- case Save_Type_t.PDF:
- /* All done. No need to use gs or mupdf */
- System.IO.File.Copy(m_currfile, dlg.FileName, true);
- use_gs = false;
- break;
- case Save_Type_t.LINEAR_PDF:
- mu_doc.PDFExtract(m_currfile, dlg.FileName, m_currpassword,
- m_currpassword != null, true, -1, null);
- use_gs = false;
- break;
- case Save_Type_t.PDF13:
- options = "-dCompatibilityLevel=1.3";
- break;
- case Save_Type_t.PDFA1_CMYK:
- options = "-dPDFA=1 -dNOOUTERSAVE -dPDFACompatibilityPolicy=1 -sProcessColorModel=DeviceCMYK -dColorConversionStrategy=/CMYK -sOutputICCProfile=" + m_outputintents.cmyk_icc;
- break;
- case Save_Type_t.PDFA1_RGB:
- options = "-dPDFA=1 -dNOOUTERSAVE -dPDFACompatibilityPolicy=1 -sProcessColorModel=DeviceRGB -dColorConversionStrategy=/RGB -sOutputICCProfile=" + m_outputintents.rgb_icc;
- break;
- case Save_Type_t.PDFA2_CMYK:
- options = "-dPDFA=2 -dNOOUTERSAVE -dPDFACompatibilityPolicy=1 -sProcessColorModel=DeviceCMYK -dColorConversionStrategy=/CMYK -sOutputICCProfile=" + m_outputintents.cmyk_icc;
- break;
- case Save_Type_t.PDFA2_RGB:
- options = "-dPDFA=2 -dNOOUTERSAVE -dPDFACompatibilityPolicy=1 -sProcessColorModel=DeviceRGB -dColorConversionStrategy=/RGB -sOutputICCProfile=" + m_outputintents.rgb_icc;
- break;
- case Save_Type_t.PDFX3_CMYK:
- options = "-dPDFX -dNOOUTERSAVE -dPDFACompatibilityPolicy=1 -sProcessColorModel=DeviceCMYK -dColorConversionStrategy=/CMYK -sOutputICCProfile=" + m_outputintents.cmyk_icc;
- break;
- case Save_Type_t.PDFX3_GRAY:
- options = "-dPDFX -dNOOUTERSAVE -dPDFACompatibilityPolicy=1 -sProcessColorModel=DeviceGray -dColorConversionStrategy=/Gray -sOutputICCProfile=" + m_outputintents.cmyk_icc;
- break;
-
- }
- if (use_gs)
- {
- xaml_DistillProgress.Value = 0;
- if (m_ghostscript.Convert(m_currfile, options,
- Enum.GetName(typeof(gsDevice_t), gsDevice_t.pdfwrite),
- dlg.FileName, m_num_pages, 300, false, null, -1, -1,
- init_file, null) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy");
- return;
- }
- xaml_DistillName.Text = "Creating PDF";
- xaml_CancelDistill.Visibility = System.Windows.Visibility.Collapsed;
- xaml_DistillName.FontWeight = FontWeights.Bold;
- xaml_DistillGrid.Visibility = System.Windows.Visibility.Visible;
- }
- }
- }
- else
- {
- /* Non PDF output */
- gsDevice_t Device = gsDevice_t.xpswrite;
- bool use_mupdf = true;
- String Message = "";
- textout_t textout = textout_t.HTML;
- switch (type)
- {
- case Save_Type_t.HTML:
- dlg.Filter = "HTML (*.html)|*.html";
- Message = "HTML content written";
- break;
- case Save_Type_t.XML:
- dlg.Filter = "XML (*.xml)|*.xml";
- Message = "XML content written";
- textout = textout_t.XML;
- break;
- case Save_Type_t.TEXT:
- dlg.Filter = "Text (*.txt)|*.txt";
- Message = "Text content written";
- textout = textout_t.TEXT;
- break;
- case Save_Type_t.PCLXL:
- use_mupdf = false;
- dlg.Filter = "PCL-XL (*.bin)|*.bin";
- Device = gsDevice_t.pxlcolor;
- break;
- case Save_Type_t.XPS:
- use_mupdf = false;
- dlg.Filter = "XPS Files(*.xps)|*.xps";
- break;
- }
- if (!use_mupdf)
- {
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- if (m_ghostscript.Convert(m_currfile, "",
- Enum.GetName(typeof(gsDevice_t), Device),
- dlg.FileName, 1, 300, false, null, -1, -1,
- null, null) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy");
- return;
- }
- }
- }
- else
- {
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- /* Write out first non null page then append the rest */
- int curr_page = 0;
- bool done = false;
-
- while (!done)
- {
- String output = null;
- output = mu_doc.GetText(curr_page, textout);
- if (output == null)
- {
- curr_page = curr_page + 1;
- if (curr_page == m_num_pages)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "No text found in file");
- return;
- }
- }
- else
- {
- System.IO.File.WriteAllText(dlg.FileName, output);
- done = true;
- }
- }
- curr_page = curr_page + 1;
-
- if (curr_page == m_num_pages)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, Message);
- return;
- }
- done = false;
- while (!done)
- {
- String output = null;
- output = mu_doc.GetText(curr_page, textout);
- if (output != null)
- {
- System.IO.File.AppendAllText(dlg.FileName, output);
- }
- curr_page = curr_page + 1;
- if (curr_page == m_num_pages)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, Message);
- return;
- }
- }
- }
- }
- }
- }
-
- private void SaveSVG(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.SVG);
- }
-
- private void SavePDF(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.PDF);
- }
-
- private void SaveText(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.TEXT);
- }
-
- private void SaveXML(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.XML);
- }
-
- private void SaveHTML(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.HTML);
- }
-
- private void Linearize(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.LINEAR_PDF);
- }
-
- private void SavePDF13(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.PDF13);
- }
-
- private void SavePDFX3_Gray(object sender, RoutedEventArgs e)
- {
- if (m_outputintents.gray_icc == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Set Gray Output Intent ICC Profile");
- return;
- }
- SaveFile(Save_Type_t.PDFX3_GRAY);
- }
-
- private void SavePDFX3_CMYK(object sender, RoutedEventArgs e)
- {
- if (m_outputintents.cmyk_icc == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Set CMYK Output Intent ICC Profile");
- return;
- }
- SaveFile(Save_Type_t.PDFX3_CMYK);
- }
-
- private void SavePDFA1_RGB(object sender, RoutedEventArgs e)
- {
- if (m_outputintents.rgb_icc == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Set RGB Output Intent ICC Profile");
- return;
- }
- SaveFile(Save_Type_t.PDFA1_RGB);
- }
-
- private void SavePDFA1_CMYK(object sender, RoutedEventArgs e)
- {
- if (m_outputintents.cmyk_icc == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Set CMYK Output Intent ICC Profile");
- return;
- }
- SaveFile(Save_Type_t.PDFA1_CMYK);
- }
-
- private void SavePDFA2_RGB(object sender, RoutedEventArgs e)
- {
- if (m_outputintents.rgb_icc == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Set RGB Output Intent ICC Profile");
- return;
- }
- SaveFile(Save_Type_t.PDFA2_RGB);
- }
-
- private void SavePDFA2_CMYK(object sender, RoutedEventArgs e)
- {
- if (m_outputintents.cmyk_icc == null)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "Set CMYK Output Intent ICC Profile");
- return;
- }
- SaveFile(Save_Type_t.PDFA2_CMYK);
- }
-
- private void SavePCLXL(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.PCLXL);
- }
- private void SaveXPS(object sender, RoutedEventArgs e)
- {
- SaveFile(Save_Type_t.XPS);
- }
- #endregion SaveAs
-
- #region Extract
- private void Extract(Extract_Type_t type)
- {
- if (m_selection != null || !m_init_done)
- return;
-
- m_selection = new Selection(m_currpage + 1, m_doczoom, type);
- m_selection.UpdateMain += new Selection.CallBackMain(SelectionMade);
- m_selection.Show();
- m_selection.xaml_Image.Source = m_docPages[m_currpage].BitMap;
- m_selection.xaml_Image.Height = m_docPages[m_currpage].Height;
- m_selection.xaml_Image.Width = m_docPages[m_currpage].Width;
- }
-
- async private void SelectionZoom(int page_num, double zoom)
- {
- Point ras_size;
- if (ComputePageSize(page_num, zoom, out ras_size) == status_t.S_ISOK)
- {
- try
- {
- Byte[] bitmap = new byte[(int)ras_size.X * (int)ras_size.Y * 4];
- BlocksText charlist;
- Annotate_t annot;
-
- Task<int> ren_task =
- new Task<int>(() => mu_doc.RenderPage(page_num, bitmap,
- (int)ras_size.X, (int)ras_size.Y, zoom, false, true,
- false, out charlist, true, out annot));
- ren_task.Start();
- await ren_task.ContinueWith((antecedent) =>
- {
- status_t code = (status_t)ren_task.Result;
- if (code == status_t.S_ISOK)
- {
- if (m_selection != null)
- {
- int stride = (int)ras_size.X * 4;
- m_selection.xaml_Image.Source = BitmapSource.Create((int)ras_size.X, (int)ras_size.Y, 72, 72, PixelFormats.Pbgra32, BitmapPalettes.Halftone256, bitmap, stride);
- m_selection.xaml_Image.Height = (int)ras_size.Y;
- m_selection.xaml_Image.Width = (int)ras_size.X;
- m_selection.UpdateRect();
- m_selection.m_curr_state = SelectStatus_t.OK;
- }
- }
- }, TaskScheduler.FromCurrentSynchronizationContext());
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed page " + page_num + "\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
- }
-
- private void SelectionMade(object gsObject, SelectEventArgs results)
- {
- switch (results.State)
- {
- case SelectStatus_t.CANCEL:
- case SelectStatus_t.CLOSE:
- m_selection = null;
- return;
- case SelectStatus_t.SELECT:
- /* Get the information we need */
- double zoom = results.ZoomFactor;
- Point start = results.TopLeft;
- Point size = results.Size;
- int page = results.PageNum;
- gsDevice_t Device = gsDevice_t.pdfwrite;
-
- start.X = start.X / zoom;
- start.Y = start.Y / zoom;
- size.X = size.X / zoom;
- size.Y = size.Y / zoom;
-
- /* Do the actual extraction */
- String options;
- System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog();
- dlg.FilterIndex = 1;
-
- /* Get us set up to do a fixed size */
- options = "-dFirstPage=" + page + " -dLastPage=" + page +
- " -dDEVICEWIDTHPOINTS=" + size.X + " -dDEVICEHEIGHTPOINTS=" +
- size.Y + " -dFIXEDMEDIA";
-
- /* Set up the translation */
- String init_string = "<</Install {-" + start.X + " -" +
- start.Y + " translate (testing) == flush}>> setpagedevice";
-
- switch (results.Type)
- {
- case Extract_Type_t.PDF:
- dlg.Filter = "PDF Files(*.pdf)|*.pdf";
- break;
- case Extract_Type_t.EPS:
- dlg.Filter = "EPS Files(*.eps)|*.eps";
- Device = gsDevice_t.eps2write;
- break;
- case Extract_Type_t.PS:
- dlg.Filter = "PostScript Files(*.ps)|*.ps";
- Device = gsDevice_t.ps2write;
- break;
- case Extract_Type_t.SVG:
- dlg.Filter = "SVG Files(*.svg)|*.svg";
- break;
- }
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- if (m_ghostscript.Convert(m_currfile, options,
- Enum.GetName(typeof(gsDevice_t), Device),
- dlg.FileName, 1, 300, false, null, page, page,
- null, init_string) == gsStatus.GS_BUSY)
- {
- ShowMessage(NotifyType_t.MESS_STATUS, "GS busy");
- return;
- }
- }
- m_selection.Close();
- break;
- case SelectStatus_t.ZOOMIN:
- /* Render new page at this resolution and hand it off */
- SelectionZoom(results.PageNum - 1, results.ZoomFactor);
- break;
- case SelectStatus_t.ZOOMOUT:
- /* Render new page at this resolution and hand it off */
- SelectionZoom(results.PageNum - 1, results.ZoomFactor);
- break;
- }
- }
-
- private void ExtractPDF(object sender, RoutedEventArgs e)
- {
- Extract(Extract_Type_t.PDF);
- }
- private void ExtractEPS(object sender, RoutedEventArgs e)
- {
- Extract(Extract_Type_t.EPS);
- }
- private void ExtractPS(object sender, RoutedEventArgs e)
- {
- Extract(Extract_Type_t.PS);
- }
- private void OutputIntents(object sender, RoutedEventArgs e)
- {
- m_outputintents.Show();
- }
- #endregion Extract
-
- #region Search
- /* Search related code */
- private void Search(object sender, RoutedEventArgs e)
- {
- if (!m_init_done || (m_textsearch != null && m_textsearch.IsBusy))
- return;
-
- m_textsearch = null; /* Start out fresh */
- if (xaml_SearchControl.Visibility == System.Windows.Visibility.Collapsed)
- xaml_SearchControl.Visibility = System.Windows.Visibility.Visible;
- else
- {
- xaml_SearchControl.Visibility = System.Windows.Visibility.Collapsed;
- xaml_SearchGrid.Visibility = System.Windows.Visibility.Collapsed;
- ClearTextSearch();
- }
- }
-
- private void OnSearchBackClick(object sender, RoutedEventArgs e)
- {
- String textToFind = xaml_SearchText.Text;
- TextSearchSetUp(-1, textToFind);
- }
-
- private void OnSearchForwardClick(object sender, RoutedEventArgs e)
- {
- String textToFind = xaml_SearchText.Text;
- TextSearchSetUp(1, textToFind);
- }
-
- /* The thread that is actually doing the search work */
- void SearchWork(object sender, DoWorkEventArgs e)
- {
- BackgroundWorker worker = sender as BackgroundWorker;
- List<object> genericlist = e.Argument as List<object>;
- int direction = (int)genericlist[0];
- String needle = (String)genericlist[1];
- /* To make sure we get the next page or current page during search */
- int in_search = (int)genericlist[2];
- m_searchpage = m_currpage + direction * in_search;
- searchResults_t results = new searchResults_t();
-
- /* Break if we find something, get to the end (or start of doc)
- * or if we have a cancel occur */
- while (true)
- {
- int box_count = mu_doc.TextSearchPage(m_searchpage, needle);
- int percent;
-
- if (direction == 1)
- percent = (int)(100.0 * ((double)m_searchpage + 1) / (double)m_num_pages);
- else
- percent = 100 - (int)(100.0 * ((double)m_searchpage) / (double)m_num_pages);
-
- if (box_count > 0)
- {
- /* This page has something lets go ahead and extract and
- * signal to the UI thread and end this thread */
- results.done = false;
- results.num_rects = box_count;
- results.page_found = m_searchpage;
- results.rectangles = new List<Rect>();
-
- for (int kk = 0; kk < box_count; kk++)
- {
- Point top_left;
- Size size;
- mu_doc.GetTextSearchItem(kk, out top_left, out size);
- var rect = new Rect(top_left, size);
- results.rectangles.Add(rect);
- }
- /* Reset global smart pointer once we have everything */
- mu_doc.ReleaseTextSearch();
- worker.ReportProgress(percent, results);
- break;
- }
- else
- {
- /* This page has nothing. Lets go ahead and just update
- * the progress bar */
- worker.ReportProgress(percent, null);
- if (percent >= 100)
- {
- results.done = true;
- results.needle = needle;
- break;
- }
- m_searchpage = m_searchpage + direction;
- }
- if (worker.CancellationPending == true)
- {
- e.Cancel = true;
- break;
- }
- }
- e.Result = results;
- }
-
- private void SearchProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- if (e.UserState == null)
- {
- /* Nothing found */
- xaml_SearchProgress.Value = e.ProgressPercentage;
- }
- else
- {
- m_text_list = new List<RectList>();
- /* found something go to page and show results */
- searchResults_t results = (searchResults_t)e.UserState;
- xaml_SearchProgress.Value = e.ProgressPercentage;
- m_currpage = results.page_found;
- /* Add in the rectangles */
- for (int kk = 0; kk < results.num_rects; kk++)
- {
- var rect_item = new RectList();
- rect_item.Scale = m_doczoom;
- rect_item.Color = m_textsearchcolor;
- rect_item.Height = results.rectangles[kk].Height * m_doczoom;
- rect_item.Width = results.rectangles[kk].Width * m_doczoom;
- rect_item.X = results.rectangles[kk].X * m_doczoom;
- rect_item.Y = results.rectangles[kk].Y * m_doczoom;
- rect_item.Index = kk.ToString();
- m_text_list.Add(rect_item);
- }
- m_docPages[results.page_found].TextBox = m_text_list;
- m_doscroll = true;
- xaml_PageList.ScrollIntoView(m_docPages[results.page_found]);
- }
- }
-
- private void SearchCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- if (e.Cancelled == true)
- {
- xaml_SearchGrid.Visibility = System.Windows.Visibility.Collapsed;
- m_textsearch = null;
- }
- else
- {
- searchResults_t results = (searchResults_t)e.Result;
- if (results.done == true)
- {
- xaml_SearchGrid.Visibility = System.Windows.Visibility.Collapsed;
- m_textsearch = null;
- ShowMessage(NotifyType_t.MESS_STATUS, "End of document search for \"" + results.needle + "\"");
- }
- }
- }
-
- private void CancelSearchClick(object sender, RoutedEventArgs e)
- {
- if (m_textsearch != null && m_textsearch.IsBusy)
- m_textsearch.CancelAsync();
- xaml_SearchGrid.Visibility = System.Windows.Visibility.Collapsed;
- m_textsearch = null;
- ClearTextSearch();
- }
-
- private void ClearTextSearch()
- {
- for (int kk = 0; kk < m_num_pages; kk++)
- {
- var temp = m_docPages[kk].TextBox;
- if (temp != null)
- {
- m_docPages[kk].TextBox = null;
- }
- }
- }
-
- private void ScaleTextBox(int pagenum)
- {
- var temp = m_docPages[pagenum].TextBox;
- for (int kk = 0; kk < temp.Count; kk++)
- {
- var rect_item = temp[kk];
- double factor = m_doczoom / temp[kk].Scale;
-
- temp[kk].Height = temp[kk].Height * factor;
- temp[kk].Width = temp[kk].Width * factor;
- temp[kk].X = temp[kk].X * factor;
- temp[kk].Y = temp[kk].Y * factor;
-
- temp[kk].Scale = m_doczoom;
- temp[kk].PageRefresh();
- }
- m_docPages[pagenum].TextBox = temp;
- }
-
- private void TextSearchSetUp(int direction, String needle)
- {
- /* Create background task for performing text search. */
- try
- {
- int in_text_search = 0;
-
- if (m_textsearch != null && m_textsearch.IsBusy)
- return;
-
- if (m_textsearch != null)
- {
- in_text_search = 1;
- m_textsearch = null;
- }
- if (m_prevsearch != null && needle != m_prevsearch)
- {
- in_text_search = 0;
- ClearTextSearch();
- }
-
- if (m_textsearch == null)
- {
- m_prevsearch = needle;
- m_textsearch = new BackgroundWorker();
- m_textsearch.WorkerReportsProgress = true;
- m_textsearch.WorkerSupportsCancellation = true;
- var arguments = new List<object>();
- arguments.Add(direction);
- arguments.Add(needle);
- arguments.Add(in_text_search);
- m_textsearch.DoWork += new DoWorkEventHandler(SearchWork);
- m_textsearch.RunWorkerCompleted += new RunWorkerCompletedEventHandler(SearchCompleted);
- m_textsearch.ProgressChanged += new ProgressChangedEventHandler(SearchProgressChanged);
- xaml_SearchGrid.Visibility = System.Windows.Visibility.Visible;
- m_textsearch.RunWorkerAsync(arguments);
- }
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during text search\n");
- ShowMessage(NotifyType_t.MESS_ERROR, "Out of memory: " + e.Message);
- }
- }
- #endregion Search
-
- #region Link
- private void LinksToggle(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
-
- m_links_on = !m_links_on;
-
- if (m_page_link_list == null)
- {
- if (m_linksearch != null && m_linksearch.IsBusy)
- return;
-
- m_page_link_list = new List<List<RectList>>();
- m_linksearch = new BackgroundWorker();
- m_linksearch.WorkerReportsProgress = false;
- m_linksearch.WorkerSupportsCancellation = true;
- m_linksearch.DoWork += new DoWorkEventHandler(LinkWork);
- m_linksearch.RunWorkerCompleted += new RunWorkerCompletedEventHandler(LinkCompleted);
- m_linksearch.RunWorkerAsync();
- }
- else
- {
- if (m_links_on)
- LinksOn();
- else
- LinksOff();
- }
- }
-
- private void LinkWork(object sender, DoWorkEventArgs e)
- {
- BackgroundWorker worker = sender as BackgroundWorker;
-
- for (int k = 0; k < m_num_pages; k++)
- {
- int box_count = mu_doc.GetLinksPage(k);
- List<RectList> links = new List<RectList>();
- if (box_count > 0)
- {
- for (int j = 0; j < box_count; j++)
- {
- Point top_left;
- Size size;
- String uri;
- int type;
- int topage;
-
- mu_doc.GetLinkItem(j, out top_left, out size, out uri,
- out topage, out type);
- var rectlist = new RectList();
- rectlist.Height = size.Height * m_doczoom;
- rectlist.Width = size.Width * m_doczoom;
- rectlist.X = top_left.X * m_doczoom;
- rectlist.Y = top_left.Y * m_doczoom;
- rectlist.Color = m_linkcolor;
- rectlist.Index = k.ToString() + "." + j.ToString();
- rectlist.PageNum = topage;
- rectlist.Scale = m_doczoom;
- if (uri != null)
- rectlist.Urilink = new Uri(uri);
- rectlist.Type = (Link_t)type;
- links.Add(rectlist);
- }
- }
- mu_doc.ReleaseLink();
- m_page_link_list.Add(links);
-
- if (worker.CancellationPending == true)
- {
- e.Cancel = true;
- break;
- }
- }
- }
-
- private void LinkCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- LinksOn();
- }
-
- private void ScaleLinkBox(int pagenum)
- {
- var temp = m_docPages[pagenum].LinkBox;
- for (int kk = 0; kk < temp.Count; kk++)
- {
- var rect_item = temp[kk];
- double factor = m_doczoom / temp[kk].Scale;
-
- temp[kk].Height = temp[kk].Height * factor;
- temp[kk].Width = temp[kk].Width * factor;
- temp[kk].X = temp[kk].X * factor;
- temp[kk].Y = temp[kk].Y * factor;
-
- temp[kk].Scale = m_doczoom;
- temp[kk].PageRefresh();
- }
- m_docPages[pagenum].LinkBox = temp;
- }
- /* Merge these */
- private void ScaleTextLines(int pagenum, double scale_factor)
- {
- var temp = m_lineptrs[pagenum];
- for (int kk = 0; kk < temp.Count; kk++)
- {
- var rect_item = temp[kk];
- double factor = scale_factor / temp[kk].Scale;
-
- temp[kk].Height = temp[kk].Height * factor;
- temp[kk].Width = temp[kk].Width * factor;
- temp[kk].X = temp[kk].X * factor;
- temp[kk].Y = temp[kk].Y * factor;
-
- temp[kk].Scale = scale_factor;
- }
- m_lineptrs[pagenum] = temp;
- }
-
- private void ScaleTextBlocks(int pagenum, double scale_factor)
- {
- var temp = m_textptrs[pagenum];
- for (int kk = 0; kk < temp.Count; kk++)
- {
- var rect_item = temp[kk];
- double factor = scale_factor / temp[kk].Scale;
-
- temp[kk].Height = temp[kk].Height * factor;
- temp[kk].Width = temp[kk].Width * factor;
- temp[kk].X = temp[kk].X * factor;
- temp[kk].Y = temp[kk].Y * factor;
-
- temp[kk].Scale = scale_factor;
- }
- m_textptrs[pagenum] = temp;
- }
-
- private int GetVisibleRange()
- {
- /* Need to figure out what pages are going to be visible */
- double bottom = this.ActualHeight;
- bool done = false;
- int final_page = m_currpage;
- double count = 0;
-
- while (!done)
- {
- count = count + m_thumbnails[final_page].NativeHeight * m_doczoom;
- final_page = final_page + 1;
- if (final_page == m_num_pages || count > bottom)
- done = true;
- }
- return final_page;
- }
-
- /* Only visible pages */
- private void LinksOff()
- {
- int final_page = GetVisibleRange();
- for (int kk = m_currpage - 1; kk <= final_page + 1; kk++)
- {
- var temp = m_docPages[kk].LinkBox;
- if (temp != null)
- {
- m_docPages[kk].LinkBox = null;
- }
- }
- }
-
- /* Only visible pages */
- private void LinksOn()
- {
- int final_page = GetVisibleRange();
- for (int kk = m_currpage - 1; kk <= final_page + 1; kk++)
- {
- if (!(kk < 0 || kk > m_num_pages - 1))
- {
- var temp = m_docPages[kk].LinkBox;
- if (temp == null)
- {
- m_docPages[kk].LinkBox = m_page_link_list[kk];
- }
- }
- }
- }
-
- private void LinkClick(object sender, MouseButtonEventArgs e)
- {
- var item = (Rectangle)sender;
-
- if (item == null)
- return;
-
- String tag = (String)item.Tag;
- int page = 0;
- int index = 0;
-
- if (tag == null || tag.Length < 3 || !(tag.Contains('.')))
- return;
-
- String[] parts = tag.Split('.');
- try
- {
- page = System.Convert.ToInt32(parts[0]);
- index = System.Convert.ToInt32(parts[1]);
-
- }
- catch (FormatException e1)
- {
- Console.WriteLine("String is not a sequence of digits.");
- }
- catch (OverflowException e2)
- {
- Console.WriteLine("The number cannot fit in an Int32.");
- }
-
- if (index >= 0 && index < m_num_pages && page >= 0 && page < m_num_pages)
- {
- var link_list = m_page_link_list[page];
- var link = link_list[index];
-
- if (link.Type == Link_t.LINK_GOTO)
- {
- if (m_currpage != link.PageNum && link.PageNum >= 0 &&
- link.PageNum < m_num_pages)
- RenderRange(link.PageNum, true, zoom_t.NO_ZOOM, 0);
- }
- else if (link.Type == Link_t.LINK_URI)
- System.Diagnostics.Process.Start(link.Urilink.AbsoluteUri);
- }
- }
- #endregion Link
-
- #region TextSelection
-
- /* Change cursor if we are over text block */
- private void ExitTextBlock(object sender, System.Windows.Input.MouseEventArgs e)
- {
- this.Cursor = System.Windows.Input.Cursors.Arrow;
- }
-
- private void EnterTextBlock(object sender, System.Windows.Input.MouseEventArgs e)
- {
- this.Cursor = System.Windows.Input.Cursors.IBeam;
- }
-
- private void ClearSelections()
- {
- for (int kk = 0; kk < m_textSelect.Count; kk++)
- {
- m_lineptrs[m_textSelect[kk].pagenum].Clear();
- if (m_docPages[m_textSelect[kk].pagenum].SelectedLines != null)
- m_docPages[m_textSelect[kk].pagenum].SelectedLines.Clear();
- }
- m_textSelect.Clear();
- m_textselected = false;
- m_selectall = false;
- SetSelectAll(m_blockcolor);
- }
-
- private void InitTextSelection(DocPage page)
- {
- if (m_textSelect != null)
- ClearSelections();
- else
- m_textSelect = new List<textSelectInfo_t>();
-
- m_intxtselect = true;
-
- textSelectInfo_t selinfo = new textSelectInfo_t();
- selinfo.pagenum = page.PageNum;
- selinfo.first_line_full = false;
- selinfo.last_line_full = false;
- m_textSelect.Add(selinfo);
- }
-
- private void PageMouseDown(object sender, MouseButtonEventArgs e)
- {
- if (this.Cursor != System.Windows.Input.Cursors.IBeam)
- return;
-
- var page = ((FrameworkElement)e.Source).DataContext as DocPage;
- Canvas can = ((FrameworkElement)e.Source).Parent as Canvas;
- if (page == null || can == null)
- return;
-
- InitTextSelection(page);
- var posit = e.GetPosition(can);
-
- page.SelX = posit.X;
- page.SelY = posit.Y;
- page.SelAnchorX = posit.X;
- page.SelAnchorY = posit.Y;
- page.SelColor = m_regionselect;
-
- /* Create new holder for lines highlighted */
- m_lineptrs[page.PageNum] = new LinesText();
- }
-
- private void PageMouseMove(object sender, System.Windows.Input.MouseEventArgs e)
- {
- if (e.LeftButton == MouseButtonState.Released || m_intxtselect == false)
- return;
-
- var page = ((FrameworkElement)e.Source).DataContext as DocPage;
- Canvas can = ((FrameworkElement)e.Source).Parent as Canvas;
- if (page == null || can == null)
- return;
- if (page.PageNum < 0)
- return;
- /* Store the location of our most recent page in case we exit window */
- var pos = e.GetPosition(can);
- m_lastY = pos.Y;
- m_maxY = can.Height;
- /* Don't allow the listview to maintain control of the mouse, we need
- * to detect if we leave the window */
- /* Make sure page is rendered */
- if (page.Content != Page_Content_t.FULL_RESOLUTION ||
- page.Zoom != m_doczoom)
- {
- RenderRange(page.PageNum, false, zoom_t.NO_ZOOM, 0);
- }
-
- UpdateSelection(pos, page);
- }
-
- /* Resize selection rect */
- private void UpdateSelection(System.Windows.Point pos, DocPage page)
- {
- bool new_page = true;
- TextLine start_line, end_line;
- double x = 0, y, w = 0, h;
- bool found_first = false;
- bool above_anchor = true;
- bool first_line_full = false;
- bool last_line_full = false;
-
- for (int kk = 0; kk < m_textSelect.Count; kk++)
- if (m_textSelect[kk].pagenum == page.PageNum)
- new_page = false;
-
- /* See if we have gone back to a previous page */
- if (!new_page && page.PageNum != m_textSelect[m_textSelect.Count - 1].pagenum)
- {
- DocPage curr_page = m_docPages[m_textSelect[m_textSelect.Count - 1].pagenum];
- curr_page.SelHeight = 0;
- curr_page.SelWidth = 0;
- m_textSelect.RemoveAt(m_textSelect.Count - 1);
- m_lineptrs[curr_page.PageNum].Clear();
- curr_page.SelectedLines.Clear();
- }
- if (new_page)
- {
- /* New page */
- page.SelX = pos.X;
- page.SelY = pos.Y;
- page.SelAnchorX = m_docPages[m_textSelect[m_textSelect.Count - 1].pagenum].SelAnchorX;
- if (m_textSelect[m_textSelect.Count - 1].pagenum > page.PageNum)
- {
- page.SelAnchorY = page.Height;
- }
- else
- {
- page.SelAnchorY = 0;
- }
- page.SelColor = m_regionselect;
- textSelectInfo_t info = new textSelectInfo_t();
- info.pagenum = page.PageNum;
- info.first_line_full = false;
- info.last_line_full = false;
- m_textSelect.Add(info);
- /* Create new holder for lines highlighted */
- m_lineptrs[page.PageNum] = new LinesText();
- }
-
- if (page.TextBlocks == null || page.TextBlocks.Count == 0)
- return;
-
- /* Width changes translate across the pages */
- for (int jj = 0; jj < m_textSelect.Count; jj++)
- {
- DocPage curr_page = m_docPages[m_textSelect[jj].pagenum];
- x = Math.Min(pos.X, curr_page.SelAnchorX);
- w = Math.Max(pos.X, curr_page.SelAnchorX) - x;
- curr_page.SelX = x;
- curr_page.SelWidth = w;
- }
- /* Height is just the current page */
- y = Math.Min(pos.Y, page.SelAnchorY);
- h = Math.Max(pos.Y, page.SelAnchorY) - y;
-
- /* Determine if we are going up or down */
- if (pos.Y > page.SelAnchorY)
- above_anchor = false;
- page.SelY = y;
- page.SelHeight = h;
-
- /* Clear out what we currently have */
- m_lineptrs[page.PageNum].Clear();
-
- /* Stuff already selected above us */
- if (m_textSelect.Count > 1)
- found_first = true;
- /* Moving backwards through pages */
- if (m_textSelect.Count > 1 && m_textSelect[m_textSelect.Count - 2].pagenum > page.PageNum)
- found_first = false;
-
- for (int jj = 0; jj < page.TextBlocks.Count; jj++)
- {
- /* Text blocks are already scaled. Lines are not */
- var intersect_blk = page.TextBlocks[jj].CheckIntersection(x, y, w, h);
- var lines = page.TextBlocks[jj].TextLines;
-
- if (intersect_blk == Intersection_t.FULL)
- {
- /* Just add all the lines for this block */
- for (int kk = 0; kk < lines.Count; kk++)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- if (jj == 0)
- {
- first_line_full = true;
- found_first = true;
- }
- if (jj == page.TextBlocks.Count - 1)
- last_line_full = true;
- }
- else if (intersect_blk != Intersection_t.NONE)
- {
- /* Now go through the lines */
- for (int kk = 0; kk < lines.Count; kk++)
- {
- double scale = m_doczoom / lines[kk].Scale;
- //var intersect_line = lines[kk].CheckIntersection(x * scale, y * scale, w * scale, h * scale);
- var intersect_line = lines[kk].CheckIntersection(x / scale , y / scale , w / scale , h / scale);
- if (intersect_line == Intersection_t.FULL)
- {
- m_lineptrs[page.PageNum].Add(lines[kk]);
- found_first = true;
- if (jj == 0 && kk == 0)
- first_line_full = true;
- if (jj == page.TextBlocks.Count - 1 &&
- kk == lines.Count - 1)
- last_line_full = true;
-
- }
- else if (intersect_line == Intersection_t.PARTIAL)
- {
- double val;
- var lett = lines[kk].TextCharacters;
-
- /* Now go through the width. */
- if (found_first)
- {
- if (above_anchor)
- val = page.SelAnchorX;
- else
- val = pos.X;
-
- /* our second partial line */
- if (val > lines[kk].X * scale + lines[kk].Width * scale)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- else
- {
- /* Use either anchor point or mouse pos */
- end_line = new TextLine();
- end_line.TextCharacters = new List<TextCharacter>();
- end_line.Height = 0;
- end_line.Scale = m_doczoom;
- for (int mm = 0; mm < lett.Count; mm++)
- {
- double letscale = m_doczoom / lett[mm].Scale;
- if (lett[mm].X * letscale < val)
- {
- /* Can set to special color for debug */
- end_line.Color = m_textselectcolor;
- /* special color for debug */
- //end_line.Color = "#4000FF00";
- end_line.Height = lines[kk].Height * scale;
- end_line.Width = lett[mm].X * letscale + lett[mm].Width * letscale - lines[kk].X * scale;
- end_line.Y = lines[kk].Y * scale;
- end_line.X = lines[kk].X * scale;
- end_line.TextCharacters.Add(lett[mm]);
- }
- else
- break;
- }
- if (end_line.Height != 0)
- m_lineptrs[page.PageNum].Add(end_line);
- }
- }
- else
- {
- if (!above_anchor)
- val = page.SelAnchorX;
- else
- val = pos.X;
-
- /* our first partial line */
- found_first = true;
- if (val < lines[kk].X * scale)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- else
- {
- start_line = new TextLine();
- start_line.TextCharacters = new List<TextCharacter>();
- start_line.Height = 0;
- start_line.Scale = m_doczoom;
- /* Use either anchor point or mouse pos */
- bool highlight_done = false;
- for (int mm = 0; mm < lett.Count; mm++)
- {
- double letscale = m_doczoom / lett[mm].Scale;
- if (lett[mm].X * letscale + lett[mm].Width * letscale >= val)
- {
- /* In this case, we are done with the
- * highlight section as it only
- * depends upon the first character
- * we encounter and the line end.
- * But we must continue to add in
- * the selected characters */
- if (!highlight_done)
- {
- start_line.Color = m_textselectcolor;
- /* special color for debug */
- /* start_line.Color = "#40FF0000"; */
- start_line.Height = lines[kk].Height * scale;
- start_line.Width = lines[kk].X * scale + lines[kk].Width * scale - lett[mm].X * letscale;
- start_line.X = lett[mm].X * letscale;
- start_line.Y = lines[kk].Y * scale;
- highlight_done = true;
- }
- start_line.TextCharacters.Add(lett[mm]);
- }
- }
- if (start_line.Height > 0)
- m_lineptrs[page.PageNum].Add(start_line);
- }
- }
- }
- }
- }
- }
- var txtsel = m_textSelect[m_textSelect.Count - 1];
- txtsel.first_line_full = first_line_full;
- txtsel.last_line_full = last_line_full;
- m_textSelect[m_textSelect.Count - 1] = txtsel;
-
- /* Adjust for scale before assigning */
- var temp = m_lineptrs[page.PageNum];
- for (int kk = 0; kk < temp.Count; kk++)
- {
- var rect_item = temp[kk];
- double factor = m_doczoom / rect_item.Scale;
-
- temp[kk].Height = temp[kk].Height * factor;
- temp[kk].Width = temp[kk].Width * factor;
- temp[kk].X = temp[kk].X * factor;
- temp[kk].Y = temp[kk].Y * factor;
-
- temp[kk].Scale = m_doczoom;
- }
- page.SelectedLines = m_lineptrs[page.PageNum];
- }
-
- /* A fix for handling column cases TODO FIXME */
- private void UpdateSelectionCol(System.Windows.Point pos, DocPage page)
- {
- bool new_page = true;
- TextLine start_line, end_line;
- double x = 0, y, w = 0, h;
- bool found_first = false;
- bool above_anchor = true;
- bool first_line_full = false;
- bool last_line_full = false;
-
- for (int kk = 0; kk < m_textSelect.Count; kk++)
- if (m_textSelect[kk].pagenum == page.PageNum)
- new_page = false;
-
- /* See if we have gone back to a previous page */
- if (!new_page && page.PageNum != m_textSelect[m_textSelect.Count - 1].pagenum)
- {
- DocPage curr_page = m_docPages[m_textSelect[m_textSelect.Count - 1].pagenum];
- curr_page.SelHeight = 0;
- curr_page.SelWidth = 0;
- m_textSelect.RemoveAt(m_textSelect.Count - 1);
- m_lineptrs[curr_page.PageNum].Clear();
- curr_page.SelectedLines.Clear();
- }
- if (new_page)
- {
- /* New page */
- page.SelX = pos.X;
- page.SelY = pos.Y;
- page.SelAnchorX = m_docPages[m_textSelect[m_textSelect.Count - 1].pagenum].SelAnchorX;
- if (m_textSelect[m_textSelect.Count - 1].pagenum > page.PageNum)
- {
- page.SelAnchorY = page.Height;
- }
- else
- {
- page.SelAnchorY = 0;
- }
- page.SelColor = m_regionselect;
- textSelectInfo_t info = new textSelectInfo_t();
- info.pagenum = page.PageNum;
- info.first_line_full = false;
- info.last_line_full = false;
- m_textSelect.Add(info);
- /* Create new holder for lines highlighted */
- m_lineptrs[page.PageNum] = new LinesText();
- }
-
- if (page.TextBlocks == null || page.TextBlocks.Count == 0)
- return;
-
- /* Width changes translate across the pages */
- for (int jj = 0; jj < m_textSelect.Count; jj++)
- {
- DocPage curr_page = m_docPages[m_textSelect[jj].pagenum];
- x = Math.Min(pos.X, curr_page.SelAnchorX);
- w = Math.Max(pos.X, curr_page.SelAnchorX) - x;
- curr_page.SelX = x;
- curr_page.SelWidth = w;
- }
- /* Height is just the current page */
- y = Math.Min(pos.Y, page.SelAnchorY);
- h = Math.Max(pos.Y, page.SelAnchorY) - y;
-
- /* Determine if we are going up or down */
- if (pos.Y > page.SelAnchorY)
- above_anchor = false;
- page.SelY = y;
- page.SelHeight = h;
-
- /* Clear out what we currently have */
- m_lineptrs[page.PageNum].Clear();
-
- /* Stuff already selected above us */
- if (m_textSelect.Count > 1)
- found_first = true;
- /* Moving backwards through pages */
- if (m_textSelect.Count > 1 && m_textSelect[m_textSelect.Count - 2].pagenum > page.PageNum)
- found_first = false;
-
- /* To properly handle the multiple columns we have to find the last
- * line and make sure that all blocks between our first and last
- * line are included. To do this we do an initial step through the
- * blocks looking at our intersections */
- int first_block = -1;
- int last_block = -1;
- for (int jj = 0; jj < page.TextBlocks.Count; jj++ )
- {
- var intersect_blk = page.TextBlocks[jj].CheckIntersection(x, y, w, h);
- if (intersect_blk == Intersection_t.NONE && first_block != -1)
- {
- last_block = jj; /* NB: this is just past last block */
- break;
- }
- else if (intersect_blk != Intersection_t.NONE && first_block == -1)
- first_block = jj; /* NB: this is the first block */
- }
- if (first_block == -1)
- return;
- if (last_block == -1)
- {
- /* Only 1 block */
- last_block = first_block + 1;
- }
-
- for (int jj = first_block; jj < last_block; jj++)
- {
- /* Text blocks are already scaled. Lines are not */
- var intersect_blk = page.TextBlocks[jj].CheckIntersection(x, y, w, h);
- var lines = page.TextBlocks[jj].TextLines;
-
- if (jj == first_block || jj == last_block - 1)
- {
- /* Partial cases */
- if (intersect_blk == Intersection_t.FULL)
- {
- for (int kk = 0; kk < lines.Count; kk++)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- if (jj == first_block)
- {
- first_line_full = true;
- found_first = true;
- }
- if (jj == last_block - 1)
- {
- last_line_full = true;
- }
- }
- else if (intersect_blk == Intersection_t.PARTIAL)
- {
- for (int kk = 0; kk < lines.Count; kk++)
- {
- double scale = m_doczoom / lines[kk].Scale;
- var intersect_line = lines[kk].CheckIntersection(x * scale, y * scale, w * scale, h * scale);
- if (intersect_line == Intersection_t.FULL)
- {
- m_lineptrs[page.PageNum].Add(lines[kk]);
- found_first = true;
- if (jj == 0 && kk == 0)
- first_line_full = true;
- if (jj == page.TextBlocks.Count - 1 &&
- kk == lines.Count - 1)
- last_line_full = true;
-
- }
- else if (intersect_line == Intersection_t.PARTIAL)
- {
- double val;
- var lett = lines[kk].TextCharacters;
-
- /* Now go through the width. */
- if (found_first)
- {
- if (above_anchor)
- val = page.SelAnchorX;
- else
- val = pos.X;
-
- /* our second partial line */
- if (val > lines[kk].X * scale + lines[kk].Width * scale)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- else
- {
- /* Use either anchor point or mouse pos */
- end_line = new TextLine();
- end_line.TextCharacters = new List<TextCharacter>();
- end_line.Height = 0;
- end_line.Scale = m_doczoom;
- for (int mm = 0; mm < lett.Count; mm++)
- {
- double letscale = m_doczoom / lett[mm].Scale;
- if (lett[mm].X * letscale < val)
- {
- /* Can set to special color for debug */
- end_line.Color = m_textselectcolor;
- /* special color for debug */
- //end_line.Color = "#4000FF00";
- end_line.Height = lines[kk].Height * scale;
- end_line.Width = lett[mm].X * letscale + lett[mm].Width * letscale - lines[kk].X * scale;
- end_line.Y = lines[kk].Y * scale;
- end_line.X = lines[kk].X * scale;
- end_line.TextCharacters.Add(lett[mm]);
- }
- else
- break;
- }
- if (end_line.Height != 0)
- m_lineptrs[page.PageNum].Add(end_line);
- }
- }
- else
- {
- if (!above_anchor)
- val = page.SelAnchorX;
- else
- val = pos.X;
-
- /* our first partial line */
- found_first = true;
- if (val < lines[kk].X * scale)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- else
- {
- start_line = new TextLine();
- start_line.TextCharacters = new List<TextCharacter>();
- start_line.Height = 0;
- start_line.Scale = m_doczoom;
- /* Use either anchor point or mouse pos */
- for (int mm = 0; mm < lett.Count; mm++)
- {
- double letscale = m_doczoom / lett[mm].Scale;
- if (lett[mm].X * letscale + lett[mm].Width * letscale >= val)
- {
- start_line.Color = m_textselectcolor;
- /* special color for debug */
- //start_line.Color = "#40FF0000";
- start_line.Height = lines[kk].Height * scale;
- start_line.Width = lines[kk].X * scale + lines[kk].Width * scale - lett[mm].X * letscale;
- start_line.X = lett[mm].X * letscale;
- start_line.Y = lines[kk].Y * scale;
- start_line.TextCharacters.Add(lett[mm]);
- break;
- }
- }
- if (start_line.Height > 0)
- m_lineptrs[page.PageNum].Add(start_line);
- }
- }
- }
- }
- }
- }
- else
- {
- /* Add all the lines for the blocks between the first and last */
- for (int kk = 0; kk < lines.Count; kk++)
- m_lineptrs[page.PageNum].Add(lines[kk]);
- }
- }
-
- var txtsel = m_textSelect[m_textSelect.Count - 1];
- txtsel.first_line_full = first_line_full;
- txtsel.last_line_full = last_line_full;
- m_textSelect[m_textSelect.Count - 1] = txtsel;
-
- /* Adjust for scale before assigning */
- var temp = m_lineptrs[page.PageNum];
- for (int kk = 0; kk < temp.Count; kk++)
- {
- var rect_item = temp[kk];
- double factor = m_doczoom / rect_item.Scale;
-
- temp[kk].Height = temp[kk].Height * factor;
- temp[kk].Width = temp[kk].Width * factor;
- temp[kk].X = temp[kk].X * factor;
- temp[kk].Y = temp[kk].Y * factor;
-
- temp[kk].Scale = m_doczoom;
- }
- page.SelectedLines = m_lineptrs[page.PageNum];
- }
-
- private void CheckIfSelected()
- {
- m_textselected = false;
-
- if (m_selectall)
- {
- SetSelectAll(m_blockcolor);
- m_selectall = false;
- }
- /* Check if anything was selected */
- for (int kk = 0; kk < m_lineptrs.Count; kk++)
- {
- if (m_lineptrs[kk].Count > 0)
- {
- m_textselected = true;
- break;
- }
- }
- }
-
- /* Rect should be removed */
- private void PageLeftClickUp(object sender, MouseButtonEventArgs e)
- {
- m_intxtselect = false;
- CheckIfSelected();
- }
-
- private void StepScroll(int stepsize)
- {
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- {
- var scrollpos = viewer.VerticalOffset;
- viewer.ScrollToVerticalOffset(scrollpos + stepsize);
- }
- }
-
- private void ResetScroll()
- {
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer != null)
- viewer.ScrollToVerticalOffset(0);
- }
-
- /* Recursive call to find the scroll viewer */
- private ScrollViewer FindScrollViewer(DependencyObject d)
- {
- if (d is ScrollViewer)
- return d as ScrollViewer;
-
- for (int i = 0; i < VisualTreeHelper.GetChildrenCount(d); i++)
- {
- var sw = FindScrollViewer(VisualTreeHelper.GetChild(d, i));
- if (sw != null) return sw;
- }
- return null;
- }
-
- /* Only worry about cases where we are moving and left button is down */
- private void ListPreviewMouseMove(object sender, System.Windows.Input.MouseEventArgs e)
- {
- var relPoint = e.GetPosition(xaml_PageList);
- var absPoint = this.PointToScreen(relPoint);
- /* Console.Write("abs Y position = " + absPoint.Y + "\n");
- Console.Write("rel Y position = " + relPoint.Y + "\n");
- Console.Write("Height is = " + (this.Top + this.Height) + "\n"); */
-
- if (xaml_PageList.IsMouseCaptured == true)
- {
- if (!m_intxtselect)
- {
- xaml_PageList.ReleaseMouseCapture();
- e.Handled = true;
- return;
- }
-
- if (relPoint.Y < Constants.SCROLL_EDGE_BUFFER ||
- absPoint.Y > (this.Top + this.Height - Constants.SCROLL_EDGE_BUFFER))
- {
- if (m_dispatcherTimer == null)
- {
- m_dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
- m_dispatcherTimer.Tick += new EventHandler(dispatcherTimerTick);
- m_dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, Constants.DISPATCH_TIME);
- }
- if (m_dispatcherTimer.IsEnabled == false)
- m_dispatcherTimer.Start();
- e.Handled = true;
- }
-
- /* This is not desirable, but the scrollviewer behaves badly
- * when it has captured the mouse and we move beyond the
- * range. So we wont allow it */
- if (relPoint.Y < 0 ||
- absPoint.Y > (this.Top + this.Height) - Constants.SCROLL_EDGE_BUFFER / 2.0)
- {
- xaml_PageList.ReleaseMouseCapture();
- e.Handled = true;
- if (m_dispatcherTimer != null && m_dispatcherTimer.IsEnabled == true)
- m_dispatcherTimer.Stop();
- return;
- }
- }
- }
-
- private void ListPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- if (m_dispatcherTimer != null && m_dispatcherTimer.IsEnabled)
- {
- m_dispatcherTimer.Stop();
- }
- }
-
- private void ListMouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
- {
- if (m_dispatcherTimer != null && m_dispatcherTimer.IsEnabled)
- {
- m_dispatcherTimer.Stop();
- }
- if (xaml_PageList.IsMouseCaptured == true)
- xaml_PageList.ReleaseMouseCapture();
- }
-
- /* Get mouse position, update selection accordingly */
- private void dispatcherTimerTick(object sender, EventArgs e)
- {
- var position = this.PointToScreen(Mouse.GetPosition(xaml_PageList));
- /* Console.Write("Y position = " + position.Y + "\n");
- Console.Write("Top position = " + this.Top + "\n");
- Console.Write("Bottom position = " + (this.Top + this.Height) + "\n"); */
- DocPage page;
- int page_num;
-
- if (!xaml_PageList.IsMouseCaptured)
- {
- //Console.Write("Lost capture\n");
- return;
- }
- /*else
- {
- Console.Write("Have capture\n");
- } */
- /* Get our most recent page */
- var pageinfo = m_textSelect[m_textSelect.Count - 1];
- page_num = pageinfo.pagenum;
-
- /* Scrolling up */
- if (position.Y > this.Top + this.Height - Constants.SCROLL_EDGE_BUFFER)
- {
- /* See if we have the last line for this page */
- if (pageinfo.last_line_full)
- {
- page_num = page_num + 1;
- m_lastY = 0;
- if (page_num >= m_num_pages)
- return;
- }
- page = m_docPages[page_num];
- StepScroll(Constants.SCROLL_STEP);
- /* Set position for proper selection update */
- m_lastY = m_lastY + Constants.SCROLL_STEP;
- if (m_lastY > m_maxY)
- m_lastY = m_maxY;
- position.Y = m_lastY;
- UpdateSelection(position, page);
- }
- else if (position.Y < this.Top + Constants.SCROLL_EDGE_BUFFER)
- {
- /* See if we have the first line for this page */
- if (pageinfo.first_line_full)
- {
- if (page_num <= 0)
- return;
- page_num = page_num - 1;
- m_lastY = m_docPages[page_num].Height;
- }
- page = m_docPages[page_num];
- StepScroll(-Constants.SCROLL_STEP);
- /* Set position for proper selection update */
- m_lastY = m_lastY - Constants.SCROLL_STEP;
- if (m_lastY < 0)
- m_lastY = 0;
- position.Y = m_lastY;
- UpdateSelection(position, page);
- }
- }
-
- private void ListPreviewLeftButtonUp(object sender, MouseButtonEventArgs e)
- {
- if (m_dispatcherTimer != null && m_dispatcherTimer.IsEnabled)
- {
- m_dispatcherTimer.Stop();
- }
- }
-
- private void ShowContextMenu(object sender, MouseButtonEventArgs e)
- {
- if (this.Cursor != System.Windows.Input.Cursors.IBeam)
- return;
-
- var contextmenu = new System.Windows.Controls.ContextMenu();
- Canvas can = ((FrameworkElement)e.Source).Parent as Canvas;
- var page = ((FrameworkElement)e.Source).DataContext as DocPage;
- if (can == null || page == null)
- return;
-
- var posit = e.GetPosition(can);
- ContextMenu_t info = new ContextMenu_t();
- info.mouse_position = posit;
- info.page_num = page.PageNum;
- can.ContextMenu = contextmenu;
-
- if (m_textselected || m_selectall)
- {
- var m1 = new System.Windows.Controls.MenuItem();
- m1.Header = "Copy";
-
- /* amazing what I have to do here to get the icon out of the
- * resources into something that wpf can use */
- var iconres = Properties.Resources.copy;
- var bitmap = iconres.ToBitmap();
- using (MemoryStream memory = new MemoryStream())
- {
- bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Png);
- memory.Position = 0;
- BitmapImage bitmapImage = new BitmapImage();
- bitmapImage.BeginInit();
- bitmapImage.StreamSource = memory;
- bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
- bitmapImage.EndInit();
- Image iconImage = new Image();
- iconImage.Source = bitmapImage;
- m1.Icon = iconImage;
- m1.Click += cntxMenuCopy;
- contextmenu.Items.Add(m1);
- }
-
- var m6 = new System.Windows.Controls.MenuItem();
- m6.Header = "Deselect All";
- m6.Click += cntxMenuDeselectAll;
- contextmenu.Items.Add(m6);
-
- /* Below to be enabled when we add annotations */
- /*
- var ma1 = new System.Windows.Controls.MenuItem();
- ma1.Header = "Highlight";
- ma1.Click += cntxMenuHighlight;
- contextmenu.Items.Add(ma1);
-
- var ma2 = new System.Windows.Controls.MenuItem();
- ma2.Header = "Underline";
- ma2.Click += cntxMenuUnderline;
- contextmenu.Items.Add(ma2);
-
- var ma3 = new System.Windows.Controls.MenuItem();
- ma3.Header = "Strikeout";
- ma3.Click += cntxMenuStrike;
- contextmenu.Items.Add(ma3);*/
-
- }
- var m2 = new System.Windows.Controls.MenuItem();
- m2.Header = "Select Line";
- m2.Click += cntxMenuSelectLine;
- m2.Tag = info;
- contextmenu.Items.Add(m2);
-
- var m3 = new System.Windows.Controls.MenuItem();
- m3.Header = "Select Block";
- m3.Click += cntxMenuSelectBlock;
- m3.Tag = info;
- contextmenu.Items.Add(m3);
-
- var m4 = new System.Windows.Controls.MenuItem();
- m4.Header = "Select Page";
- m4.Click += cntxMenuSelectPage;
- m4.Tag = info;
- contextmenu.Items.Add(m4);
-
- var m5 = new System.Windows.Controls.MenuItem();
- m5.Header = "Select All";
- m5.Click += cntxMenuSelectAll;
- contextmenu.Items.Add(m5);
- }
-
- private void CopyTextDone(object sender, RunWorkerCompletedEventArgs e)
- {
- String result = (String) e.Result;
- xaml_CopyTextProgress.Visibility = System.Windows.Visibility.Collapsed;
- xaml_CopyTextProgress.Value = 0;
-
- try
- {
- System.Windows.Clipboard.SetText(result);
- }
- catch
- {
- return;
- }
- }
-
- private void CopyTextWork(object sender, DoWorkEventArgs e)
- {
- String output = null;
- String fullstring = null;
- BackgroundWorker worker = sender as BackgroundWorker;
-
- for (int k = 0; k < m_num_pages; k++)
- {
- output = mu_doc.GetText(k, textout_t.TEXT);
- if (output != null)
- fullstring = fullstring + output;
-
- double percent = 100 * (double)(k + 1) / (double)m_num_pages;
- worker.ReportProgress((int)percent, output);
-
- if (worker.CancellationPending == true)
- {
- e.Cancel = true;
- break;
- }
- }
- e.Result = fullstring;
- }
-
- private void CopyTextProgress(object sender, ProgressChangedEventArgs e)
- {
- String output = (String)(e.UserState);
- xaml_CopyTextProgress.Value = e.ProgressPercentage;
- }
-
- private void cntxMenuCopy(object sender, RoutedEventArgs e)
- {
- if (m_selectall)
- {
- /* Start a thread to go through and copy the pages to the
- * clipboard */
- m_copytext = new BackgroundWorker();
- m_copytext.WorkerReportsProgress = true;
- m_copytext.WorkerSupportsCancellation = true;
- m_copytext.DoWork += new DoWorkEventHandler(CopyTextWork);
- m_copytext.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CopyTextDone);
- m_copytext.ProgressChanged += new ProgressChangedEventHandler(CopyTextProgress);
- xaml_CopyTextProgress.Visibility = System.Windows.Visibility.Visible;
- m_copytext.RunWorkerAsync();
- return;
- }
-
- /* Go through and get each line of text */
- String result = null;
-
- for (int kk = 0; kk < m_textSelect.Count; kk++)
- {
- var lines = m_lineptrs[m_textSelect[kk].pagenum];
- for (int jj = 0; jj < lines.Count; jj++)
- {
- var text = lines[jj].TextCharacters;
- for (int mm = 0; mm < text.Count; mm++)
- {
- result += text[mm].character;
- }
- result += "\r\n";
- }
- }
- System.Windows.Clipboard.SetText(result);
- }
-
- private void cntxMenuSelectLine(object sender, RoutedEventArgs e)
- {
- var mi = sender as System.Windows.Controls.MenuItem;
- ContextMenu_t info = (ContextMenu_t)mi.Tag;
- var page = m_docPages[info.page_num];
-
- InitTextSelection(page);
-
- page.SelX = 0;
- page.SelY = info.mouse_position.Y - 1;
- page.SelAnchorX = 0;
- page.SelAnchorY = info.mouse_position.Y - 1;
- page.SelColor = m_regionselect;
-
- /* Create new holder for lines highlighted */
- m_lineptrs[page.PageNum] = new LinesText();
-
- Point pos = new Point();
- pos.X = page.Width;
- pos.Y += info.mouse_position.Y + 1;
-
- UpdateSelection(pos, page);
- CheckIfSelected();
- }
-
- /* This one requires its own special handling TODO FIXME */
- private void cntxMenuSelectBlock(object sender, RoutedEventArgs e)
- {
- var mi = sender as System.Windows.Controls.MenuItem;
- ContextMenu_t info = (ContextMenu_t)mi.Tag;
- var page = m_docPages[info.page_num];
- bool found = false;
- int jj;
-
- InitTextSelection(page);
-
- /* Find the block that we are in */
- for (jj = 0; jj < page.TextBlocks.Count; jj++)
- {
- var intersect_blk = page.TextBlocks[jj].CheckIntersection(info.mouse_position.X, info.mouse_position.Y, 1, 1);
- if (intersect_blk != Intersection_t.NONE)
- {
- found = true;
- break;
- }
- }
- if (found)
- {
- page.SelX = page.TextBlocks[jj].X;
- page.SelY = page.TextBlocks[jj].Y;
- page.SelAnchorX = page.TextBlocks[jj].X;
- page.SelAnchorY = page.TextBlocks[jj].Y;
- page.SelColor = m_regionselect;
-
- /* Create new holder for lines highlighted */
- m_lineptrs[page.PageNum] = new LinesText();
-
- Point pos = new Point();
- pos.X = page.TextBlocks[jj].X + page.TextBlocks[jj].Width;
- pos.Y = page.TextBlocks[jj].Y + page.TextBlocks[jj].Height;
-
- UpdateSelection(pos, page);
- CheckIfSelected();
- }
- else
- m_textselected = false;
- }
-
- private void SelectFullPage(int page_num)
- {
- var page = m_docPages[page_num];
-
- InitTextSelection(page);
-
- page.SelX = 0;
- page.SelY = 0;
- page.SelAnchorX = 0;
- page.SelAnchorY = 0;
- page.SelColor = m_regionselect;
-
- /* Create new holder for lines highlighted */
- m_lineptrs[page.PageNum] = new LinesText();
-
- Point pos = new Point();
- pos.X = page.Width;
- pos.Y = page.Height;
-
- UpdateSelection(pos, page);
- }
-
- private void cntxMenuSelectPage(object sender, RoutedEventArgs e)
- {
- var mi = sender as System.Windows.Controls.MenuItem;
- ContextMenu_t info = (ContextMenu_t)mi.Tag;
-
- SelectFullPage(info.page_num);
- CheckIfSelected();
- }
-
- private void cntxMenuSelectAll(object sender, RoutedEventArgs e)
- {
- var mi = sender as System.Windows.Controls.MenuItem;
- if (m_textSelect != null)
- ClearSelections();
- else
- m_textSelect = new List<textSelectInfo_t>();
-
- m_selectall = true;
- SetSelectAll(m_textselectcolor);
- }
-
- private void SetSelectAll(String color)
- {
- if (!m_init_done)
- return;
-
- for (int kk = 0; kk < m_num_pages; kk++)
- {
- if (m_docPages[kk] != null && m_docPages[kk].TextBlocks != null)
- {
- int num_blocks = m_docPages[kk].TextBlocks.Count;
- for (int jj = 0; jj < num_blocks; jj++)
- m_docPages[kk].TextBlocks[jj].Color = color;
- }
- }
- }
-
- private void cntxMenuDeselectAll(object sender, RoutedEventArgs e)
- {
- ClearSelections();
- }
-
- private void SelectAllCommand(object sender, ExecutedRoutedEventArgs e)
- {
- if (m_init_done)
- cntxMenuSelectAll(sender, e);
- }
-
- private void CopyCommand(object sender, ExecutedRoutedEventArgs e)
- {
- if (m_init_done)
- cntxMenuCopy(sender, e);
- }
-
- private void CancelCopyText(object sender, RoutedEventArgs e)
- {
- if (m_copytext != null && m_copytext.IsBusy)
- m_copytext.CancelAsync();
- }
-
- /* To add with annotation support */
- /*
- private void cntxMenuHighlight(object sender, RoutedEventArgs e)
- {
-
- }
-
- private void cntxMenuUnderline(object sender, RoutedEventArgs e)
- {
-
- }
-
- private void cntxMenuStrike(object sender, RoutedEventArgs e)
- {
-
- }
- */
- #endregion TextSelection
-
- private void OnAboutClick(object sender, RoutedEventArgs e)
- {
- String muversion;
- About about = new About(this);
- var desc_static = about.Description;
- String desc;
-
- /* Get our gs and mupdf version numbers to add to the description */
- mu_doc.GetVersion(out muversion);
- if (muversion == null)
- desc = desc_static + "\nMuPDF DLL: Not Found";
- else
- {
- if (mu_doc.is64bit)
- {
- desc = desc_static + "\nUsing MuPDF Version " + muversion + " 64 bit\n";
- }
- else
- {
- desc = desc_static + "\nUsing MuPDF Version " + muversion + " 32 bit\n";
- }
- }
- String gs_vers = m_ghostscript.GetVersion();
- if (gs_vers == null)
- desc = desc + "\nGhostscript DLL: Not Found";
- else
- if (mu_doc.is64bit)
- {
- desc = desc + "\nGhostscript DLL: " + gs_vers + " 64 bit\n";
- }
- else
- {
- desc = desc + "\nGhostscript DLL: " + gs_vers + " 64 bit\n";
- }
- about.description.Text = desc;
- about.ShowDialog();
- }
-
- private void HelpCommand(object sender, ExecutedRoutedEventArgs e)
- {
- OnHelpClick(sender, e);
- }
-
- private void OnHelpClick(object sender, RoutedEventArgs e)
- {
-
- }
-
- private void CloseFile(object sender, RoutedEventArgs e)
- {
- CleanUp();
- DimSelections();
- }
-
- private double GetTotalHeightZoom()
- {
- return m_totalpageheight * m_doczoom + (m_num_pages - 1) * Constants.PAGE_MARGIN;
- }
-
- private double GetTotalHeightNoZoom()
- {
- return m_totalpageheight + (m_num_pages - 1) * Constants.PAGE_MARGIN;
- }
-
- private double GetViewPortSize()
- {
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- return viewer.ViewportHeight;
- }
-
- private void SetThumbwidth()
- {
- double percent = GetViewPortSize() / GetTotalHeightZoom();
- double range = xaml_VerticalScroll.Maximum - xaml_VerticalScroll.Minimum;
- xaml_VerticalScroll.SetThumbLength(percent * range);
- }
-
- private void AdjustScrollPercent(double percent)
- {
- double curr_value = xaml_VerticalScroll.Value;
- double range = xaml_VerticalScroll.Maximum;
- double step = range * percent;
-
- xaml_VerticalScroll.Value = curr_value + step;
- }
-
- /* Due to the scroll bar on the scroll viewer being wonky on its updating during zooming
- * we have to do this ourselves */
- private void VerticalScroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
- {
- var mi = sender as System.Windows.Controls.Primitives.ScrollBar;
- ScrollViewer viewer = FindScrollViewer(xaml_PageList);
- if (viewer == null || mi == null)
- return;
-
- m_ScrolledChanged = true;
-
- if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.ThumbTrack)
- {
- OffsetScrollPercent(mi.Value / mi.Maximum);
- e.Handled = true;
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.First)
- {
- mi.Value = 0;
- viewer.ScrollToTop();
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.Last)
- {
- mi.Value = mi.Maximum;
- viewer.ScrollToBottom();
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.SmallDecrement)
- {
- OffsetScroll(-Constants.VERT_SCROLL_STEP * m_doczoom);
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.SmallIncrement)
- {
- OffsetScroll(Constants.VERT_SCROLL_STEP * m_doczoom);
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.LargeDecrement)
- {
- if (m_currpage == 0)
- {
- mi.Value = 0;
- viewer.ScrollToTop();
- }
- else
- OnBackPageClick(null, null);
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.LargeIncrement)
- {
- if (m_currpage == m_num_pages - 1)
- {
- mi.Value = mi.Maximum;
- viewer.ScrollToBottom();
- }
- else
- OnForwardPageClick(null, null);
- }
- else if (e.ScrollEventType == System.Windows.Controls.Primitives.ScrollEventType.ThumbPosition)
- {
- OffsetScrollPercent(e.NewValue / mi.Maximum);
- }
- }
-
- private void OnAAChecked(object sender, RoutedEventArgs e)
- {
- var control = sender as System.Windows.Controls.Control;
- string Name = control.Name;
-
- /* It would be nice to uncheck all and then recheck the one
- * that we want to avoid the repeated code below, but that puts
- * us in a infinite recursion with the call from the xaml Checked
- * call */
-
- switch (Name)
- {
- case "xaml_AA_High":
- m_AA = AA_t.HIGH;
- if (xaml_AA_MedHigh != null)
- xaml_AA_MedHigh.IsChecked = false;
- if (xaml_AA_Med != null)
- xaml_AA_Med.IsChecked = false;
- if (xaml_AA_Low != null)
- xaml_AA_Low.IsChecked = false;
- if (xaml_AA_None != null)
- xaml_AA_None.IsChecked = false;
- break;
- case "xaml_AA_MedHigh":
- m_AA = AA_t.MEDHIGH;
- if (xaml_AA_High != null)
- xaml_AA_High.IsChecked = false;
- if (xaml_AA_Med != null)
- xaml_AA_Med.IsChecked = false;
- if (xaml_AA_Low != null)
- xaml_AA_Low.IsChecked = false;
- if (xaml_AA_None != null)
- xaml_AA_None.IsChecked = false;
- break;
- case "xaml_AA_Med":
- m_AA = AA_t.MED;
- if (xaml_AA_High != null)
- xaml_AA_High.IsChecked = false;
- if (xaml_AA_MedHigh != null)
- xaml_AA_MedHigh.IsChecked = false;
- if (xaml_AA_Low != null)
- xaml_AA_Low.IsChecked = false;
- if (xaml_AA_None != null)
- xaml_AA_None.IsChecked = false;
- break;
- case "xaml_AA_Low":
- m_AA = AA_t.LOW;
- if (xaml_AA_High != null)
- xaml_AA_High.IsChecked = false;
- if (xaml_AA_MedHigh != null)
- xaml_AA_MedHigh.IsChecked = false;
- if (xaml_AA_Med != null)
- xaml_AA_Med.IsChecked = false;
- if (xaml_AA_None != null)
- xaml_AA_None.IsChecked = false;
- break;
- case "xaml_AA_None":
- m_AA = AA_t.NONE;
- if (xaml_AA_High != null)
- xaml_AA_High.IsChecked = false;
- if (xaml_AA_MedHigh != null)
- xaml_AA_MedHigh.IsChecked = false;
- if (xaml_AA_Med != null)
- xaml_AA_Med.IsChecked = false;
- if (xaml_AA_Low != null)
- xaml_AA_Low.IsChecked = false;
- break;
- }
- if (mu_doc != null)
- mu_doc.SetAA(m_AA);
- if (m_init_done)
- RenderRange(m_currpage, false, zoom_t.NO_ZOOM, 0);
- }
-
- private AA_t GetAA()
- {
- if (xaml_AA_High.IsChecked)
- return AA_t.HIGH;
- else if (xaml_AA_MedHigh.IsChecked)
- return AA_t.MEDHIGH;
- else if (xaml_AA_Med.IsChecked)
- return AA_t.MED;
- else if (xaml_AA_Low.IsChecked)
- return AA_t.LOW;
- else
- return AA_t.NONE;
- }
-
- private void SetAA(AA_t aa)
- {
- xaml_AA_High.IsChecked = false;
- xaml_AA_MedHigh.IsChecked = false;
- xaml_AA_Med.IsChecked = false;
- xaml_AA_Low.IsChecked = false;
- xaml_AA_None.IsChecked = false;
-
- switch (aa)
- {
- case AA_t.HIGH:
- xaml_AA_High.IsChecked = true;
- break;
- case AA_t.MEDHIGH:
- xaml_AA_MedHigh.IsChecked = true;
- break;
- case AA_t.MED:
- xaml_AA_High.IsChecked = true;
- break;
- case AA_t.LOW:
- xaml_AA_High.IsChecked = true;
- break;
- case AA_t.NONE:
- xaml_AA_High.IsChecked = true;
- break;
- }
- }
-
- private void AnnotationOn(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
- m_showannot = true;
- RenderRange(m_currpage, false, zoom_t.NO_ZOOM, 0);
- }
-
- private void AnnotationOff(object sender, RoutedEventArgs e)
- {
- if (!m_init_done)
- return;
- m_showannot = false;
- RenderRange(m_currpage, false, zoom_t.NO_ZOOM, 0);
- }
- }
-} \ No newline at end of file
diff --git a/platform/winrt/gsview/OutputIntent.xaml b/platform/winrt/gsview/OutputIntent.xaml
deleted file mode 100644
index fdfb7e3c..00000000
--- a/platform/winrt/gsview/OutputIntent.xaml
+++ /dev/null
@@ -1,50 +0,0 @@
-<Window x:Class="gsview.OutputIntent"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="OutputIntent" Height="176" Width="338"
- SizeToContent="Width">
-
- <DockPanel LastChildFill="True" Margin="0,0,0,0">
-
- <Grid Background="DarkGray" DockPanel.Dock="Bottom" >
- <Button Width="50" Height="20" Click="ClickOK" Margin="0,5,0,5">
- <TextBlock>OK</TextBlock>
- </Button>
- </Grid>
-
- <Grid Background="DarkGray" DockPanel.Dock="Top" >
- <Grid Background="DarkGray" Grid.Row="0" Grid.Column="0" Margin="25,15,25,0">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
-
- <Button Grid.Column="0" Grid.Row="0" Width="50" Height="20" Click="SelectGray" Margin="0,0,0,0">
- <TextBlock>Gray</TextBlock>
- </Button>
- <TextBox x:Name="xaml_gray" Grid.Column="1" Grid.Row="0" Background="DarkGray" Height="20" Margin="5,5,5,5" IsReadOnly="True" Text="Not Set" BorderBrush="Red"></TextBox>
-
- <Button Grid.Column="0" Grid.Row="1" Width="50" Height="20" Click="SelectRGB" Margin="0,0,0,0">
- <TextBlock>RGB</TextBlock>
- </Button>
- <TextBox x:Name="xaml_rgb" Grid.Column="1" Grid.Row="1" Background="DarkGray" Height="20" Margin="5,5,5,5" IsReadOnly="True" Text="Not Set" BorderBrush="Red"></TextBox>
-
- <Button Grid.Column="0" Grid.Row="2" Width="50" Height="20" Click="SelectCMYK" Margin="0,0,0,0">
- <TextBlock>CMYK</TextBlock>
- </Button>
- <TextBox x:Name="xaml_cmyk" Grid.Column="1" Grid.Row="2" Background="DarkGray" Height="20" Margin="5,5,5,5" IsReadOnly="True" Text="Not Set" BorderBrush="Red"></TextBox>
-
-
-
-
- </Grid>
- </Grid>
-
-
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/OutputIntent.xaml.cs b/platform/winrt/gsview/OutputIntent.xaml.cs
deleted file mode 100644
index eb11f0f6..00000000
--- a/platform/winrt/gsview/OutputIntent.xaml.cs
+++ /dev/null
@@ -1,105 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-using System.Windows.Forms;
-
-namespace gsview
-{
- public enum OutputIntent_t
- {
- GRAY,
- RGB,
- CMYK
- }
-
- /// <summary>
- /// Interaction logic for OutputIntent.xaml
- /// </summary>
- public partial class OutputIntent : Window
- {
- public String gray_icc;
- public String rgb_icc;
- public String cmyk_icc;
-
- public OutputIntent()
- {
- InitializeComponent();
- this.Closing += new System.ComponentModel.CancelEventHandler(FakeWindowClosing);
- gray_icc = null;
- rgb_icc = null;
- cmyk_icc = null;
- }
-
- void FakeWindowClosing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- e.Cancel = true;
- this.Hide();
- }
-
- public void RealWindowClosing()
- {
- this.Closing -= new System.ComponentModel.CancelEventHandler(FakeWindowClosing);
- this.Close();
- }
-
- /* No error checking in here yet for making sure the profiles are of
- * the right type and are valid */
- private void SelectGray(object sender, RoutedEventArgs e)
- {
- SetIntent(OutputIntent_t.GRAY);
- }
-
- private void SelectRGB(object sender, RoutedEventArgs e)
- {
- SetIntent(OutputIntent_t.RGB);
- }
-
- private void SelectCMYK(object sender, RoutedEventArgs e)
- {
- SetIntent(OutputIntent_t.CMYK);
- }
-
- private void SetIntent(OutputIntent_t intent)
- {
- OpenFileDialog dlg = new OpenFileDialog();
- dlg.Filter = "ICC Profile Files(*.icc;*.icm)|*.icc;*.icm";
- dlg.FilterIndex = 1;
- if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- switch(intent)
- {
- case OutputIntent_t.GRAY:
- gray_icc = dlg.FileName;
- this.xaml_gray.Text = gray_icc;
- this.xaml_gray.BorderBrush = new SolidColorBrush(Colors.Green);
- break;
- case OutputIntent_t.RGB:
- rgb_icc = dlg.FileName;
- this.xaml_rgb.Text = rgb_icc;
- this.xaml_rgb.BorderBrush = new SolidColorBrush(Colors.Green);
- break;
- case OutputIntent_t.CMYK:
- cmyk_icc = dlg.FileName;
- this.xaml_cmyk.Text = cmyk_icc;
- this.xaml_cmyk.BorderBrush = new SolidColorBrush(Colors.Green);
- break;
- }
- }
- }
-
- private void ClickOK(object sender, RoutedEventArgs e)
- {
- this.Hide();
- }
- }
-}
diff --git a/platform/winrt/gsview/PageExtractSave.xaml b/platform/winrt/gsview/PageExtractSave.xaml
deleted file mode 100644
index 36f30324..00000000
--- a/platform/winrt/gsview/PageExtractSave.xaml
+++ /dev/null
@@ -1,59 +0,0 @@
-<Window x:Class="gsview.PageExtractSave"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Extract/Rearrange Pages" Height="306" Width="282">
-
- <DockPanel LastChildFill="True">
- <Grid x:Name="xaml_PageGrid" Width="100" Background="DarkGray" DockPanel.Dock="Left" Visibility="Visible">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <TextBlock Grid.Column="0" Grid.Row="0" Margin="15,0,0,0">
- <Bold>Pages:</Bold>
- </TextBlock>
- <ListView Grid.Column="0" Grid.Row="1" x:Name="xaml_PageList" HorizontalAlignment="Stretch"
- ScrollViewer.CanContentScroll="False"
- Background="White" Margin="10,5,10,10"
- PreviewMouseLeftButtonDown="ExtractLeftButtonDown" PreviewMouseLeftButtonUp="ExtractLeftButtonUp"
- PreviewMouseMove="ExtractMouseMove" MouseLeave="ExtractMouseLeave" PreviewMouseRightButtonDown="RightButtonDown">
- <ListView.ItemTemplate>
- <DataTemplate>
- <StackPanel Margin="5,5,0,0" HorizontalAlignment="Left">
- <TextBlock TextWrapping="Wrap" Text="{Binding PageString}" FontFamily="Segoe UI" FontSize="11" />
- </StackPanel>
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
- </Grid>
-
- <Grid Background="DarkGray" Grid.Row="0" Grid.Column="1" Margin="0,0,0,0">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <Button Grid.Column="0" Grid.Row="0" Width="70" Height="20" Name="xaml_AllPages" Click="AllPages" Margin="0,40,0,0">
- <TextBlock>All Pages</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="1" Width="70" Height="20" Name="xaml_EvenPages" Click="EvenPages" Margin="0,5,0,0">
- <TextBlock>Even Pages</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="2" Width="70" Height="20" Name="xaml_OddPages" Click="OddPages" Margin="0,5,0,0">
- <TextBlock>Odd Pages</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="3" Width="70" Height="20" Name="xaml_ReversePages" Click="Reverse" Margin="0,5,0,0">
- <TextBlock>Reverse</TextBlock>
- </Button>
- <Button Grid.Column="0" Grid.Row="4" Width="70" Height="20" Name="xaml_Extract" Click="ExtractPages" Margin="0,20,0,0">
- <TextBlock>Extract</TextBlock>
- </Button>
- <TextBlock Grid.Column="0" Grid.Row="5" Margin="0,20,0,0"> Use drag/drop to rearrange. <LineBreak /> Right click to delete from list.
- <LineBreak /> Only selected pages extracted. </TextBlock>
- </Grid>
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/PageExtractSave.xaml.cs b/platform/winrt/gsview/PageExtractSave.xaml.cs
deleted file mode 100644
index e3985d17..00000000
--- a/platform/winrt/gsview/PageExtractSave.xaml.cs
+++ /dev/null
@@ -1,213 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-using System.ComponentModel;
-using System.Collections.ObjectModel;
-
-namespace gsview
-{
- public partial class PageExtractSave : Window
- {
- public List<SelectPage> Pages;
- SelectPage selectedpage = null;
- int dropafterposition;
- bool putattop = false;
-
- /* Callback to Main */
- internal delegate void ExtractCallBackMain(object gsObject);
- internal event ExtractCallBackMain ExtractMain;
-
- public PageExtractSave(int num_pages)
- {
- InitializeComponent();
- Pages = new List<SelectPage>();
- SetPageList(num_pages);
- xaml_PageList.ItemsSource = Pages;
- }
-
- private void AllPages(object sender, RoutedEventArgs e)
- {
- xaml_PageList.SelectAll();
- }
-
- public void SetPageList(int num_pages)
- {
- for (int k = 1; k < num_pages + 1; k++)
- {
- SelectPage Spage = new SelectPage();
- Spage.Page = k;
- Spage.PageString = k;
- Pages.Add(Spage);
- }
- }
-
- private void EvenPages(object sender, RoutedEventArgs e)
- {
- /* First check if any are selected */
- var item = xaml_PageList.SelectedItem;
-
- /* If none are selected then get all the evens. otherwise just get
- * all the evens of the pages that have been selected */
- if (item == null)
- {
- /* Turn on the evens */
- for (int kk = 1; kk < Pages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = true;
- }
- else
- {
- /* Turn off any odds */
- for (int kk = 0; kk < Pages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = false;
- }
- }
-
- private void OddPages(object sender, RoutedEventArgs e)
- {
- /* First check if any are selected */
- var item = xaml_PageList.SelectedItem;
-
- /* If none are selected then get all the odds. otherwise just get
- all the odds of the pages that have been selected */
- if (item == null)
- {
- /* Turn on the odds */
- for (int kk = 0; kk < Pages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = true;
- }
- else
- {
- /* Turn off any evens */
- for (int kk = 1; kk < Pages.Count; kk = kk + 2)
- (xaml_PageList.ItemContainerGenerator.ContainerFromIndex(kk) as ListViewItem).IsSelected = false;
- }
- }
-
- private void ExtractPages(object sender, RoutedEventArgs e)
- {
- ExtractMain(this);
- }
-
- private void ExtractLeftButtonDown(object sender, MouseButtonEventArgs e)
- {
- int index = GetCurrentIndex();
- if (index > -1 && index < Pages.Count)
- selectedpage = Pages[index];
- }
-
- private void ExtractLeftButtonUp(object sender, MouseButtonEventArgs e)
- {
- /* Check if we have something selected */
- if (selectedpage == null)
- {
- Cursor = Cursors.Arrow;
- return;
- }
-
- Point posit = e.GetPosition(xaml_PageList);
- dropafterposition = GetCurrentIndex();
- putattop = false;
-
- if (dropafterposition < 0)
- {
- /* Check if we are above or below */
- if (posit.Y < 0)
- putattop = true;
- else
- dropafterposition = xaml_PageList.Items.Count - 1;
- }
- Cursor = Cursors.Arrow;
- MoveItem();
- selectedpage = null;
- }
-
- private void MoveItem()
- {
- if (putattop)
- {
- Pages.Remove(selectedpage);
- Pages.Insert(0, selectedpage);
- }
- else
- {
- Pages.Remove(selectedpage);
- Pages.Insert(dropafterposition, selectedpage);
- }
- xaml_PageList.Items.Refresh();
- }
-
- private void ExtractMouseMove(object sender, MouseEventArgs e)
- {
- if (Mouse.LeftButton == MouseButtonState.Pressed)
- Cursor = Cursors.Hand;
- }
-
- private void ExtractMouseLeave(object sender, MouseEventArgs e)
- {
- Cursor = Cursors.Arrow;
- }
-
- private void RightButtonDown(object sender, MouseButtonEventArgs e)
- {
- var contextmenu = new System.Windows.Controls.ContextMenu();
- this.ContextMenu = contextmenu;
-
- var m1 = new System.Windows.Controls.MenuItem();
- m1.Header = "Delete";
- m1.Click += cntxDeleteItem;
- contextmenu.Items.Add(m1);
- }
-
- /* Delete all selected items */
- private void cntxDeleteItem(object sender, RoutedEventArgs e)
- {
- /* Go backwards */
- var temp = xaml_PageList.SelectedItems;
- int max = temp.Count; ;
- for (int i = 0; i < max; i++)
- {
- var item = temp[i];
- Pages.Remove((SelectPage)item);
- }
- xaml_PageList.Items.Refresh();
- }
-
- int GetCurrentIndex()
- {
- int index = -1;
- for (int i = 0; i < this.xaml_PageList.Items.Count; ++i)
- {
- ListViewItem item = GetListViewItem(i);
- if (item.IsMouseOver)
- {
- index = i;
- break;
- }
- }
- return index;
- }
-
- ListViewItem GetListViewItem(int index)
- {
- if (this.xaml_PageList.ItemContainerGenerator.Status !=
- System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
- return null;
- return this.xaml_PageList.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
- }
-
- private void Reverse(object sender, RoutedEventArgs e)
- {
- Pages.Reverse();
- xaml_PageList.Items.Refresh();
- }
- }
-}
diff --git a/platform/winrt/gsview/Password.xaml b/platform/winrt/gsview/Password.xaml
deleted file mode 100644
index 8692244f..00000000
--- a/platform/winrt/gsview/Password.xaml
+++ /dev/null
@@ -1,15 +0,0 @@
-<Window x:Class="gsview.Password"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Height="110" Width="306">
- <Grid Background="WhiteSmoke">
-
- <StackPanel>
- <Label Content="Password:" />
- <PasswordBox x:Name="xaml_Password" Width="150" />
- <Button Width="50" Height="20" Name="xaml_PasswordClick" Click="PasswordCheck" Margin="0,5,0,0" IsDefault="True">
- <TextBlock>OK</TextBlock>
- </Button>
- </StackPanel>
- </Grid>
-</Window>
diff --git a/platform/winrt/gsview/Password.xaml.cs b/platform/winrt/gsview/Password.xaml.cs
deleted file mode 100644
index 5c45200e..00000000
--- a/platform/winrt/gsview/Password.xaml.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for Password.xaml
- /// </summary>
- public partial class Password : Window
- {
- /* Callback to Main */
- internal delegate void PassCallBackMain(object gsObject);
- internal event PassCallBackMain PassUpdateMain;
-
- public Password()
- {
- InitializeComponent();
- }
-
- private void PasswordCheck(object sender, RoutedEventArgs e)
- {
- PassUpdateMain(this);
- }
- }
-}
diff --git a/platform/winrt/gsview/Properties/AssemblyInfo.cs b/platform/winrt/gsview/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8bd14cda..00000000
--- a/platform/winrt/gsview/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("GSview")]
-[assembly: AssemblyDescription("GSview is a PDF, XPS, PS, and CBZ document viewer. It makes use of the MuPDF and Ghostscript rendering libraries to provide a number of features including conversion to other file formats. GSview was created and is maintained by Artifex Software Incorporated.\n")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Artifex Software Incorporated")]
-[assembly: AssemblyProduct("GSview")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("6.0.0.0")]
-[assembly: AssemblyFileVersion("6.0.0.0")]
diff --git a/platform/winrt/gsview/Properties/Resources.Designer.cs b/platform/winrt/gsview/Properties/Resources.Designer.cs
deleted file mode 100644
index 4fdb3c91..00000000
--- a/platform/winrt/gsview/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.34014
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace gsview.Properties {
- using System;
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- public class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- public static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("gsview.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- public static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
- /// </summary>
- public static System.Drawing.Icon Close {
- get {
- object obj = ResourceManager.GetObject("Close", resourceCulture);
- return ((System.Drawing.Icon)(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
- /// </summary>
- public static System.Drawing.Icon copy {
- get {
- object obj = ResourceManager.GetObject("copy", resourceCulture);
- return ((System.Drawing.Icon)(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- /// </summary>
- public static System.Drawing.Bitmap info {
- get {
- object obj = ResourceManager.GetObject("info", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- /// </summary>
- public static System.Drawing.Bitmap Message {
- get {
- object obj = ResourceManager.GetObject("Message", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- /// </summary>
- public static System.Drawing.Bitmap OpenFile {
- get {
- object obj = ResourceManager.GetObject("OpenFile", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Byte[].
- /// </summary>
- public static byte[] PDFA_def {
- get {
- object obj = ResourceManager.GetObject("PDFA_def", resourceCulture);
- return ((byte[])(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Byte[].
- /// </summary>
- public static byte[] PDFX_def {
- get {
- object obj = ResourceManager.GetObject("PDFX_def", resourceCulture);
- return ((byte[])(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
- /// </summary>
- public static System.Drawing.Icon printer {
- get {
- object obj = ResourceManager.GetObject("printer", resourceCulture);
- return ((System.Drawing.Icon)(obj));
- }
- }
-
- /// <summary>
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- /// </summary>
- public static System.Drawing.Bitmap saveHS {
- get {
- object obj = ResourceManager.GetObject("saveHS", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
- }
-}
diff --git a/platform/winrt/gsview/Properties/Resources.resx b/platform/winrt/gsview/Properties/Resources.resx
deleted file mode 100644
index b87e9f79..00000000
--- a/platform/winrt/gsview/Properties/Resources.resx
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
- <data name="Close" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\resources\close.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
- <data name="info" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\resources\info.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
- <data name="Message" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\resources\message.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
- <data name="OpenFile" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\resources\openfile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
- <data name="printer" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\resources\printer.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
- <data name="saveHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\resources\savehs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
- <data name="PDFA_def" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>pdfa_def.ps;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="PDFX_def" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>pdfx_def.ps;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\Resources\copy.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
-</root> \ No newline at end of file
diff --git a/platform/winrt/gsview/Properties/Settings.Designer.cs b/platform/winrt/gsview/Properties/Settings.Designer.cs
deleted file mode 100644
index aec7d913..00000000
--- a/platform/winrt/gsview/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.34014
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace gsview.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/platform/winrt/gsview/Properties/Settings.settings b/platform/winrt/gsview/Properties/Settings.settings
deleted file mode 100644
index 033d7a5e..00000000
--- a/platform/winrt/gsview/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile> \ No newline at end of file
diff --git a/platform/winrt/gsview/Properties/pdfa_def.ps b/platform/winrt/gsview/Properties/pdfa_def.ps
deleted file mode 100644
index 5d242d56..00000000
--- a/platform/winrt/gsview/Properties/pdfa_def.ps
+++ /dev/null
@@ -1,40 +0,0 @@
-%!
-% This is a sample prefix file for creating a PDF/A document.
-% Feel free to modify entries marked with "Customize".
-% This assumes an ICC profile to reside in the file (ICCPROFILE),
-% unless the user modifies the corresponding line below.
-
-% Define entries in the document Info dictionary :
-/ICCProfile (ICCPROFILE) % Customize
-def
-
-[ /Title (TITLE) % Customize
- /DOCINFO pdfmark
-
-% Define an ICC profile :
-
-[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
-[{icc_PDFA}
-<<
- /N currentpagedevice /ProcessColorModel known {
- currentpagedevice /ProcessColorModel get dup /DeviceGray eq
- {pop 1} {
- /DeviceRGB eq
- {3}{4} ifelse
- } ifelse
- } {
- (ERROR, unable to determine ProcessColorModel) == flush
- } ifelse
->> /PUT pdfmark
-[{icc_PDFA} ICCProfile (r) file /PUT pdfmark
-
-% Define the output intent dictionary :
-
-[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark
-[{OutputIntent_PDFA} <<
- /Type /OutputIntent % Must be so (the standard requires).
- /S /GTS_PDFA1 % Must be so (the standard requires).
- /DestOutputProfile {icc_PDFA} % Must be so (see above).
- /OutputConditionIdentifier (ICC Profile) % A string describing output intent
->> /PUT pdfmark
-[{Catalog} <</OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark
diff --git a/platform/winrt/gsview/Properties/pdfx_def.ps b/platform/winrt/gsview/Properties/pdfx_def.ps
deleted file mode 100644
index a2bd0108..00000000
--- a/platform/winrt/gsview/Properties/pdfx_def.ps
+++ /dev/null
@@ -1,48 +0,0 @@
-%!
-% This is a sample prefix file for creating a PDF/X-3 document.
-% Feel free to modify entries marked with "Customize".
-
-% This assumes an ICC profile to reside in the file (ICCPROFILE),
-% unless the user modifies the corresponding line below.
-
-systemdict /ProcessColorModel known {
- systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and
-} {
- true
-} ifelse
-{ (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)=
- /ProcessColorModel cvx /rangecheck signalerror
-} if
-
-% Define entries to the document Info dictionary :
-
-/ICCProfile (ICCPROFILE) def % Customize or remove.
-
-[ /GTS_PDFXVersion (PDF/X-3:2002) % Must be so (the standard requires).
- /Title (TITLE) % Customize.
- /Trapped /False % Must be so (Ghostscript doesn't provide other).
- /DOCINFO pdfmark
-
-% Define an ICC profile :
-
-currentdict /ICCProfile known {
- [/_objdef {icc_PDFX} /type /stream /OBJ pdfmark
- [{icc_PDFX} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {4} ifelse >> /PUT pdfmark
- [{icc_PDFX} ICCProfile (r) file /PUT pdfmark
-} if
-
-% Define the output intent dictionary :
-
-[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark
-[{OutputIntent_PDFX} <<
- /Type /OutputIntent % Must be so (the standard requires).
- /S /GTS_PDFX % Must be so (the standard requires).
- /OutputCondition (Created using ghostscript) % Customize
- /Info (Through gsview) % Customize
- /OutputConditionIdentifier (ICC Profile) % Customize
- /RegistryName (http://www.color.org) % Must be so (the standard requires).
- currentdict /ICCProfile known {
- /DestOutputProfile {icc_PDFX} % Must be so (see above).
- } if
->> /PUT pdfmark
-[{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark
diff --git a/platform/winrt/gsview/README.txt b/platform/winrt/gsview/README.txt
deleted file mode 100644
index 35593bce..00000000
--- a/platform/winrt/gsview/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Note building the projects in this solution requires VS 2013
-To build the installer projects you will need the extension:
-
-Microsoft Visual Studio Installer Projects
-
-located at
-
-http://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d \ No newline at end of file
diff --git a/platform/winrt/gsview/RectList.cs b/platform/winrt/gsview/RectList.cs
deleted file mode 100644
index ecbc013a..00000000
--- a/platform/winrt/gsview/RectList.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ComponentModel;
-
-namespace gsview
-{
- public enum Link_t
- {
- LINK_GOTO,
- LINK_URI,
- TEXTBOX,
- NOT_SET
- };
-
- public class RectList : INotifyPropertyChanged
- {
- public String Character
- {
- get;
- set;
- }
-
- public String Index
- {
- get;
- set;
- }
-
- public String Color
- {
- get;
- set;
- }
-
- public double Height
- {
- get;
- set;
- }
-
- public double Width
- {
- get;
- set;
- }
-
- public double X
- {
- get;
- set;
- }
-
- public double Y
- {
- get;
- set;
- }
-
- public double Scale
- {
- get;
- set;
- }
-
- public Link_t Type
- {
- get;
- set;
- }
-
- public int PageNum
- {
- get;
- set;
- }
-
- public Uri Urilink
- {
- get;
- set;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- public void PageRefresh()
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs("X"));
- PropertyChanged(this, new PropertyChangedEventArgs("Height"));
- PropertyChanged(this, new PropertyChangedEventArgs("Width"));
- PropertyChanged(this, new PropertyChangedEventArgs("Y"));
- PropertyChanged(this, new PropertyChangedEventArgs("Color"));
- }
- }
- }
-}
diff --git a/platform/winrt/gsview/Resources/ActualSize48.png b/platform/winrt/gsview/Resources/ActualSize48.png
deleted file mode 100644
index 4c6e990f..00000000
--- a/platform/winrt/gsview/Resources/ActualSize48.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/Close.ico b/platform/winrt/gsview/Resources/Close.ico
deleted file mode 100644
index 131dcf0c..00000000
--- a/platform/winrt/gsview/Resources/Close.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/ContScrollFill48.png b/platform/winrt/gsview/Resources/ContScrollFill48.png
deleted file mode 100644
index 2ebf672f..00000000
--- a/platform/winrt/gsview/Resources/ContScrollFill48.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/ExpandFill48.png b/platform/winrt/gsview/Resources/ExpandFill48.png
deleted file mode 100644
index 9df8e512..00000000
--- a/platform/winrt/gsview/Resources/ExpandFill48.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/FloppyDisk.ico b/platform/winrt/gsview/Resources/FloppyDisk.ico
deleted file mode 100644
index c50273e2..00000000
--- a/platform/winrt/gsview/Resources/FloppyDisk.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/Left.ico b/platform/winrt/gsview/Resources/Left.ico
deleted file mode 100644
index b2507e31..00000000
--- a/platform/winrt/gsview/Resources/Left.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/Message.png b/platform/winrt/gsview/Resources/Message.png
deleted file mode 100644
index 7746354e..00000000
--- a/platform/winrt/gsview/Resources/Message.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/OpenFile.png b/platform/winrt/gsview/Resources/OpenFile.png
deleted file mode 100644
index 99262d52..00000000
--- a/platform/winrt/gsview/Resources/OpenFile.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/Right.ico b/platform/winrt/gsview/Resources/Right.ico
deleted file mode 100644
index c2f9238f..00000000
--- a/platform/winrt/gsview/Resources/Right.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/banner.png b/platform/winrt/gsview/Resources/banner.png
deleted file mode 100644
index 60ec5ea0..00000000
--- a/platform/winrt/gsview/Resources/banner.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/contents.ico b/platform/winrt/gsview/Resources/contents.ico
deleted file mode 100644
index 97a12dd8..00000000
--- a/platform/winrt/gsview/Resources/contents.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/copy.ico b/platform/winrt/gsview/Resources/copy.ico
deleted file mode 100644
index 7c8600f9..00000000
--- a/platform/winrt/gsview/Resources/copy.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/folder_open.ico b/platform/winrt/gsview/Resources/folder_open.ico
deleted file mode 100644
index ef6ac424..00000000
--- a/platform/winrt/gsview/Resources/folder_open.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/gsview_app.ico b/platform/winrt/gsview/Resources/gsview_app.ico
deleted file mode 100644
index 29c5ca50..00000000
--- a/platform/winrt/gsview/Resources/gsview_app.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/hyperlink.png b/platform/winrt/gsview/Resources/hyperlink.png
deleted file mode 100644
index 6ea0d798..00000000
--- a/platform/winrt/gsview/Resources/hyperlink.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/info.png b/platform/winrt/gsview/Resources/info.png
deleted file mode 100644
index 172d23c3..00000000
--- a/platform/winrt/gsview/Resources/info.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pageCBZ.ico b/platform/winrt/gsview/Resources/pageCBZ.ico
deleted file mode 100644
index 42a0f829..00000000
--- a/platform/winrt/gsview/Resources/pageCBZ.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pageEPS.ico b/platform/winrt/gsview/Resources/pageEPS.ico
deleted file mode 100644
index 3acc64d3..00000000
--- a/platform/winrt/gsview/Resources/pageEPS.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pageJPG.ico b/platform/winrt/gsview/Resources/pageJPG.ico
deleted file mode 100644
index d1b6b885..00000000
--- a/platform/winrt/gsview/Resources/pageJPG.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pageOXPS.ico b/platform/winrt/gsview/Resources/pageOXPS.ico
deleted file mode 100644
index 8a79ffa9..00000000
--- a/platform/winrt/gsview/Resources/pageOXPS.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pagePDF.ico b/platform/winrt/gsview/Resources/pagePDF.ico
deleted file mode 100644
index 74423969..00000000
--- a/platform/winrt/gsview/Resources/pagePDF.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pagePNG.ico b/platform/winrt/gsview/Resources/pagePNG.ico
deleted file mode 100644
index dad4bb15..00000000
--- a/platform/winrt/gsview/Resources/pagePNG.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pagePS.ico b/platform/winrt/gsview/Resources/pagePS.ico
deleted file mode 100644
index 2ddcfe05..00000000
--- a/platform/winrt/gsview/Resources/pagePS.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/pageXPS.ico b/platform/winrt/gsview/Resources/pageXPS.ico
deleted file mode 100644
index e30ec2a7..00000000
--- a/platform/winrt/gsview/Resources/pageXPS.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/printer.ico b/platform/winrt/gsview/Resources/printer.ico
deleted file mode 100644
index c03d9853..00000000
--- a/platform/winrt/gsview/Resources/printer.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/saveHS.png b/platform/winrt/gsview/Resources/saveHS.png
deleted file mode 100644
index 5ca4d106..00000000
--- a/platform/winrt/gsview/Resources/saveHS.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/search.ico b/platform/winrt/gsview/Resources/search.ico
deleted file mode 100644
index 2841a637..00000000
--- a/platform/winrt/gsview/Resources/search.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/search.png b/platform/winrt/gsview/Resources/search.png
deleted file mode 100644
index 9bbb2255..00000000
--- a/platform/winrt/gsview/Resources/search.png
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/thumbnail.ico b/platform/winrt/gsview/Resources/thumbnail.ico
deleted file mode 100644
index 71d38e97..00000000
--- a/platform/winrt/gsview/Resources/thumbnail.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/zoom_in.ico b/platform/winrt/gsview/Resources/zoom_in.ico
deleted file mode 100644
index b0ca2ead..00000000
--- a/platform/winrt/gsview/Resources/zoom_in.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Resources/zoom_out.ico b/platform/winrt/gsview/Resources/zoom_out.ico
deleted file mode 100644
index a31d6c8b..00000000
--- a/platform/winrt/gsview/Resources/zoom_out.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/Selection.xaml b/platform/winrt/gsview/Selection.xaml
deleted file mode 100644
index af67b2d5..00000000
--- a/platform/winrt/gsview/Selection.xaml
+++ /dev/null
@@ -1,49 +0,0 @@
-<Window x:Class="gsview.Selection"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Selection" Height="524" Width="452">
-
- <DockPanel LastChildFill="True">
- <Menu IsMainMenu="True" DockPanel.Dock="Top">
- <MenuItem Header="OK" Click="ClickOK"/>
- <MenuItem Header="Exit" Click="ClickExit"/>
- <MenuItem Header="Clear" Click="ClickClear"/>
- </Menu>
-
- <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Background="WhiteSmoke">
- <Button Margin="10 0 0 0" Width="20" Height="20" Click="ZoomIn" Background="Transparent" BorderBrush="Transparent">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/zoom_in.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- <Button Margin="10 0 0 0" Width="20" Height="20" Click="ZoomOut" Background="Transparent" BorderBrush="Transparent">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Ellipse>
- <Ellipse.Fill >
- <ImageBrush ImageSource="Resources/zoom_out.ico"/>
- </Ellipse.Fill>
- </Ellipse>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- </Button>
- </StackPanel>
- <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" HorizontalAlignment="Stretch" Background="DarkGray" DockPanel.Dock="Left">
- <Canvas x:Name="xaml_Canvas" MouseDown="Canvas_MouseDown" MouseMove="Canvas_MouseMove" Background="Transparent" Width="{Binding ActualWidth, ElementName=xaml_Image}" Height="{Binding ActualHeight, ElementName=xaml_Image}">
- <Image x:Name="xaml_Image" Width="{Binding Width}" Height="{Binding Height}" Stretch="Fill" HorizontalAlignment="Center" Source="{Binding BitMap}"/>
- </Canvas>
- </ScrollViewer>
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/Selection.xaml.cs b/platform/winrt/gsview/Selection.xaml.cs
deleted file mode 100644
index 1fe76fd1..00000000
--- a/platform/winrt/gsview/Selection.xaml.cs
+++ /dev/null
@@ -1,235 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for Selection.xaml
- /// </summary>
- ///
-
- public enum SelectStatus_t
- {
- OK,
- CANCEL,
- SELECT,
- CLOSE,
- ZOOMIN,
- ZOOMOUT
- }
-
- public class SelectEventArgs : EventArgs
- {
- Point m_topleft, m_size;
- double m_zoomFactor;
- SelectStatus_t m_state;
- int m_page_num;
- Extract_Type_t m_type;
-
- public Point TopLeft
- {
- get { return m_topleft; }
- }
-
- public Point Size
- {
- get { return m_size; }
- }
-
- public double ZoomFactor
- {
- get { return m_zoomFactor; }
- }
-
- public int PageNum
- {
- get { return m_page_num; }
- }
-
- public SelectStatus_t State
- {
- get { return m_state; }
- }
-
- public Extract_Type_t Type
- {
- get { return m_type; }
- }
-
- public SelectEventArgs(Point start, Point size, double zoom,
- SelectStatus_t state, int page, Extract_Type_t type)
- {
- m_topleft = start;
- m_size = size;
- m_zoomFactor = zoom;
- m_state = state;
- m_page_num = page;
- m_type = type;
- }
- }
-
- public partial class Selection : Window
- {
- private Point m_startPoint, m_topleft;
- private Point m_size;
- public SelectStatus_t m_curr_state;
- double m_zoom;
- double m_old_zoom;
- int m_page_num;
- private Rectangle m_rect;
- Extract_Type_t m_type;
- internal delegate void CallBackMain(object gsObject, SelectEventArgs info);
- internal event CallBackMain UpdateMain;
-
- public Selection(int page, double init_zoom, Extract_Type_t type)
- {
- InitializeComponent();
- this.Closing += new System.ComponentModel.CancelEventHandler(WindowClosing);
- m_page_num = page;
- m_zoom = init_zoom;
- m_curr_state = SelectStatus_t.OK;
- m_type = type;
- m_rect = null;
- }
-
- void WindowClosing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- var result = new SelectEventArgs(m_topleft, m_size, m_zoom,
- SelectStatus_t.CANCEL, m_page_num, m_type);
- UpdateMain(this, result);
- }
-
- private void ClickOK(object sender, RoutedEventArgs e)
- {
- if (m_curr_state != SelectStatus_t.OK)
- return;
- if (m_rect == null)
- Close();
- else
- {
- m_size.X = m_rect.Width;
- m_size.Y = m_rect.Height;
- m_topleft.Y = xaml_Image.Height - m_topleft.Y - m_size.Y;
- var result = new SelectEventArgs(m_topleft, m_size, m_zoom,
- SelectStatus_t.SELECT, m_page_num, m_type);
- UpdateMain(this, result);
- }
- }
-
- private void ClickExit(object sender, RoutedEventArgs e)
- {
- var result = new SelectEventArgs(m_topleft, m_size, m_zoom,
- SelectStatus_t.CANCEL, m_page_num, m_type);
- UpdateMain(this, result);
- Close();
- }
-
- private void ClickClear(object sender, RoutedEventArgs e)
- {
- if (m_rect != null)
- {
- xaml_Canvas.Children.Remove(m_rect);
- m_rect = null;
- }
- }
-
- private void ZoomIn(object sender, RoutedEventArgs e)
- {
- if (m_curr_state != SelectStatus_t.OK || m_zoom >= Constants.ZOOM_MAX)
- return;
- m_old_zoom = m_zoom;
- m_zoom = m_zoom + Constants.ZOOM_STEP;
- if (m_zoom > Constants.ZOOM_MAX)
- {
- m_zoom = Constants.ZOOM_MAX;
- return;
- }
- m_curr_state = SelectStatus_t.ZOOMIN;
- var result = new SelectEventArgs(m_startPoint, m_size, m_zoom,
- SelectStatus_t.ZOOMIN, m_page_num, m_type);
- UpdateMain(this, result);
- }
-
- private void ZoomOut(object sender, RoutedEventArgs e)
- {
- if (m_curr_state != SelectStatus_t.OK || m_zoom <= Constants.ZOOM_MIN)
- return;
- m_old_zoom = m_zoom;
- m_zoom = m_zoom - Constants.ZOOM_STEP;
- if (m_zoom < Constants.ZOOM_MIN)
- {
- m_zoom = Constants.ZOOM_MIN;
- return;
- }
- m_curr_state = SelectStatus_t.ZOOMOUT;
- var result = new SelectEventArgs(m_startPoint, m_size, m_zoom,
- SelectStatus_t.ZOOMOUT, m_page_num, m_type);
- UpdateMain(this, result);
- }
-
- /* Called when we have had a zoom change */
- public void UpdateRect()
- {
- if (m_rect != null)
- {
- double left = Canvas.GetLeft(m_rect);
- double top = Canvas.GetTop(m_rect);
- Canvas.SetLeft(m_rect, left * m_zoom / m_old_zoom);
- Canvas.SetTop(m_rect, top * m_zoom / m_old_zoom);
- m_rect.Width = m_rect.Width * m_zoom / m_old_zoom;
- m_rect.Height = m_rect.Height * m_zoom / m_old_zoom;
- }
- }
-
- private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
- {
- if (m_rect != null)
- {
- xaml_Canvas.Children.Remove(m_rect);
- }
-
- m_startPoint = e.GetPosition(xaml_Canvas);
-
- m_rect = new Rectangle
- {
- Stroke = Brushes.Red,
- StrokeThickness = 2
- };
- Canvas.SetLeft(m_rect, m_startPoint.X);
- Canvas.SetTop(m_rect, m_startPoint.X);
- xaml_Canvas.Children.Add(m_rect);
- }
-
- private void Canvas_MouseMove(object sender, MouseEventArgs e)
- {
- if (e.LeftButton == MouseButtonState.Released || m_rect == null)
- return;
-
- var pos = e.GetPosition(xaml_Canvas);
-
- var x = Math.Min(pos.X, m_startPoint.X);
- var y = Math.Min(pos.Y, m_startPoint.Y);
-
- var w = Math.Max(pos.X, m_startPoint.X) - x;
- var h = Math.Max(pos.Y, m_startPoint.Y) - y;
-
- m_rect.Width = w;
- m_rect.Height = h;
-
- m_topleft.X = x;
- m_topleft.Y = y;
- Canvas.SetLeft(m_rect, x);
- Canvas.SetTop(m_rect, y);
- }
- }
-}
diff --git a/platform/winrt/gsview/Strings/en-US/Messages.Designer.cs b/platform/winrt/gsview/Strings/en-US/Messages.Designer.cs
deleted file mode 100644
index 1c34b901..00000000
--- a/platform/winrt/gsview/Strings/en-US/Messages.Designer.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.34014
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace gsview.Strings.en_US {
- using System;
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Messages {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Messages() {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("gsview.Strings.en_US.Messages", typeof(Messages).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/platform/winrt/gsview/Strings/en-US/Messages.resx b/platform/winrt/gsview/Strings/en-US/Messages.resx
deleted file mode 100644
index 4fdb1b6a..00000000
--- a/platform/winrt/gsview/Strings/en-US/Messages.resx
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 1.3
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">1.3</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1">this is my long string</data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- [base64 mime encoded serialized .NET Framework object]
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- [base64 mime encoded string representing a byte array form of the .NET Framework object]
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
-
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>1.3</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/platform/winrt/gsview/TextBlock.cs b/platform/winrt/gsview/TextBlock.cs
deleted file mode 100644
index 55d3e744..00000000
--- a/platform/winrt/gsview/TextBlock.cs
+++ /dev/null
@@ -1,121 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ComponentModel;
-using System.Collections.ObjectModel;
-
-namespace gsview
-{
- public class TextBlock : INotifyPropertyChanged
- {
- double height;
- double width;
- double x;
- double y;
- double scale;
- String color;
- int page_number;
-
- public List<TextLine> TextLines;
-
- /* Determine intersection case of block with selection rectangle */
- public Intersection_t CheckIntersection(double rect_x, double rect_y, double rect_w, double rect_h)
- {
- if (rect_h == 0 || rect_y > y + height || rect_y + rect_h < y ||
- rect_x + rect_w < x || rect_x > x + width)
- return Intersection_t.NONE;
-
- if (rect_y < y && y + height < rect_y + rect_h)
- return Intersection_t.FULL;
-
- return Intersection_t.PARTIAL;
- }
-
- public double Height
- {
- get { return height; }
- set
- {
- height = value;
- OnPropertyChanged("Height");
- }
- }
-
- public double Width
- {
- get { return width; }
- set
- {
- width = value;
- OnPropertyChanged("Width");
- }
- }
-
- public double X
- {
- get { return x; }
- set
- {
- x = value;
- OnPropertyChanged("X");
- }
- }
-
- public double Y
- {
- get { return y; }
- set
- {
- y = value;
- OnPropertyChanged("Y");
- }
- }
- public double Scale
- {
- get { return scale; }
- set { scale = value;}
- }
-
- public int PageNumber
- {
- get { return page_number; }
- set { page_number = value; }
- }
-
- public String Color
- {
- get { return color; }
- set
- {
- color = value;
- OnPropertyChanged("Color");
- }
- }
-
- public int GetNumberLines()
- {
- return TextLines.Count;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- // Create the OnPropertyChanged method to raise the event
- protected void OnPropertyChanged(string name)
- {
- PropertyChangedEventHandler handler = PropertyChanged;
- if (handler != null)
- {
- handler(this, new PropertyChangedEventArgs(name));
- }
- }
- }
-
- public class BlocksText : ObservableCollection<TextBlock>
- {
- public BlocksText()
- : base()
- {
- }
- }
-}
diff --git a/platform/winrt/gsview/TextCharacter.cs b/platform/winrt/gsview/TextCharacter.cs
deleted file mode 100644
index b69cfbff..00000000
--- a/platform/winrt/gsview/TextCharacter.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.ComponentModel;
-
-namespace gsview
-{
- public class TextCharacter
- {
- public String character;
-
- public double Height
- {
- get;
- set;
- }
-
- public double Width
- {
- get;
- set;
- }
-
- public double X
- {
- get;
- set;
- }
-
- public double Y
- {
- get;
- set;
- }
-
- public double Scale
- {
- get;
- set;
- }
-
- public String Color
- {
- get;
- set;
- }
-
- /* Here we only worry about intersection in the x direction TODO */
- public Intersection_t CheckIntersection(double rect_x, double rect_y, double rect_w, double rect_h)
- {
- if (rect_w == 0 || rect_x > X + Width || rect_x + rect_w < X)
- return Intersection_t.NONE;
-
- if (rect_x <= X && X + Width <= rect_x + rect_w)
- return Intersection_t.FULL;
-
- return Intersection_t.PARTIAL;
- }
-
-
- //public event PropertyChangedEventHandler PropertyChanged;
-
- /*
- public void CharRefresh()
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs("X"));
- PropertyChanged(this, new PropertyChangedEventArgs("Height"));
- PropertyChanged(this, new PropertyChangedEventArgs("Width"));
- PropertyChanged(this, new PropertyChangedEventArgs("Y"));
- PropertyChanged(this, new PropertyChangedEventArgs("Color"));
- }
- }
- * */
- }
-}
diff --git a/platform/winrt/gsview/TextLine.cs b/platform/winrt/gsview/TextLine.cs
deleted file mode 100644
index c37f604b..00000000
--- a/platform/winrt/gsview/TextLine.cs
+++ /dev/null
@@ -1,121 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.ComponentModel;
-using System.Collections.ObjectModel;
-
-namespace gsview
-{
- public enum Intersection_t
- {
- NONE,
- PARTIAL,
- FULL
- };
-
- public class TextLine : INotifyPropertyChanged
- {
- public List<TextCharacter> TextCharacters;
- double height;
- double width;
- double x;
- double y;
- double scale;
- String color;
- int page_number;
-
- /* Determine intersection case of line with selection rectangle */
- public Intersection_t CheckIntersection(double rect_x, double rect_y, double rect_w, double rect_h)
- {
- if (rect_h == 0 || rect_y > y + height || rect_y + rect_h < y)
- return Intersection_t.NONE;
-
- if (rect_y <= y && y + height <= rect_y + rect_h)
- return Intersection_t.FULL;
-
- return Intersection_t.PARTIAL;
- }
-
- public double Height
- {
- get { return height; }
- set
- {
- height = value;
- OnPropertyChanged("Height");
- }
- }
-
- public double Width
- {
- get { return width; }
- set
- {
- width = value;
- OnPropertyChanged("Width");
- }
- }
-
- public double X
- {
- get { return x; }
- set
- {
- x = value;
- OnPropertyChanged("X");
- }
- }
-
- public double Y
- {
- get { return y; }
- set
- {
- y = value;
- OnPropertyChanged("Y");
- }
- }
- public double Scale
- {
- get { return scale; }
- set { scale = value;}
- }
-
- public int PageNumber
- {
- get { return page_number; }
- set { page_number = value; }
- }
-
- public String Color
- {
- get { return color; }
- set
- {
- color = value;
- //OnPropertyChanged("Color");
- }
- }
- public event PropertyChangedEventHandler PropertyChanged;
-
- // Create the OnPropertyChanged method to raise the event
- protected void OnPropertyChanged(string name)
- {
- PropertyChangedEventHandler handler = PropertyChanged;
- if (handler != null)
- {
- handler(this, new PropertyChangedEventArgs(name));
- }
- }
- }
-
- public class LinesText : ObservableCollection<TextLine>
- {
- public LinesText()
- : base()
- {
- }
- }
-}
diff --git a/platform/winrt/gsview/ghostsharp.cs b/platform/winrt/gsview/ghostsharp.cs
deleted file mode 100644
index 168ce476..00000000
--- a/platform/winrt/gsview/ghostsharp.cs
+++ /dev/null
@@ -1,1165 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-//using System.Threading.Tasks;
-using System.Runtime.InteropServices;
-using System.IO;
-using System.Security;
-using System.ComponentModel;
-
-namespace gsview
-{
- /* Warning. This list is in a particular order. The devices before
- * psdrgb do not support multiple pages. Those including psdrgb do
- * support multiple pages. This is used in the conversion process.
- * Also note that mupdf devices go at the beginning of the list */
- public enum gsDevice_t
- {
- svg,
- pnm,
- pclbitmap,
- pwg,
- bmp16, /* Add mupdf devices before this one */
- bmp16m,
- bmp256,
- bmp32b,
- bmpgray,
- bmpmono,
- eps2write,
- jpeg,
- jpegcmyk,
- jpeggray,
- pamcmyk32,
- pamcmyk4,
- pbm,
- pgm,
- png16,
- png16m,
- png256,
- pngalpha,
- pnggray,
- pngmono,
- psdcmyk,
- psdrgb, /* Add single page gs devices before this device */
- pdfwrite,
- ps2write,
- pxlcolor,
- pxlmono,
- tiff12nc,
- tiff24nc,
- tiff32nc,
- tiff64nc,
- tiffcrle,
- tiffg3,
- tiffg32d,
- tiffg4,
- tiffgray,
- tifflzw,
- tiffpack,
- tiffsep,
- txtwrite,
- xpswrite
- };
-
- public enum GS_Task_t
- {
- PS_DISTILL,
- CREATE_XPS,
- SAVE_RESULT
- }
-
- public enum GS_Result_t
- {
- gsOK,
- gsFAILED,
- gsCANCELLED
- }
-
- /* Parameters */
- public struct gsParams_t
- {
- public String init_string;
- public String init_file;
- public int resolution;
- public gsDevice_t device;
- public String devicename;
- public String outputfile;
- public String inputfile;
- public GS_Task_t task;
- public GS_Result_t result;
- public int num_pages;
- public String options;
- public bool need_multi_page;
- public System.Collections.IList pages;
- public int firstpage;
- public int lastpage;
- public int currpage; /* valid only when pages != null */
- };
-
- public class gsEventArgs : EventArgs
- {
- private bool m_completed;
- private int m_progress;
- private gsParams_t m_param;
-
- public bool Completed
- {
- get { return m_completed; }
- }
-
- public gsParams_t Params
- {
- get { return m_param; }
- }
-
- public int Progress
- {
- get { return m_progress; }
- }
-
- public gsEventArgs(bool completed, int progress, gsParams_t param)
- {
- m_completed = completed;
- m_progress = progress;
- m_param = param;
- }
- }
-
- /* from gs */
- public struct gsapi_revision_t
- {
- public IntPtr product;
- public IntPtr copyright;
- public int revision;
- public int revisiondate;
- }
-
- public enum gsEncoding {
- GS_ARG_ENCODING_LOCAL = 0,
- GS_ARG_ENCODING_UTF8 = 1,
- GS_ARG_ENCODING_UTF16LE = 2
- };
-
- public enum gsStatus
- {
- GS_READY,
- GS_BUSY,
- GS_ERROR
- };
-
- static class gsConstants
- {
- public const int E_QUIT = -101;
- public const int GS_READ_BUFFER = 32768;
- }
-
- [SuppressUnmanagedCodeSecurity]
- class ghostsharp
- {
- /* Callback proto for stdio */
- public delegate int gsStdIOHandler(IntPtr caller_handle, IntPtr buffer,
- int len);
-
- #region DLLInterface
- /* Ghostscript API */
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_revision", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_revision64(ref gsapi_revision_t vers, int size);
-
- [DllImport("gsdll64.dll", EntryPoint="gsapi_new_instance", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_new_instance64(out IntPtr pinstance,
- IntPtr caller_handle);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_delete_instance", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_delete_instance64(IntPtr instance);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_init_with_args", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_init_with_args64(IntPtr instance, int argc,
- IntPtr argv);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_exit", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_exit64(IntPtr instance);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_set_arg_encoding", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_set_arg_encoding64(IntPtr instance,
- int encoding);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_set_stdio", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_set_stdio64(IntPtr instance,
- gsStdIOHandler stdin, gsStdIOHandler stdout, gsStdIOHandler stderr);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_run_string_begin", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_run_string_begin64(IntPtr instance,
- int usererr, ref int exitcode);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_run_string_continue", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_run_string_continue64(IntPtr instance,
- IntPtr command, int count, int usererr, ref int exitcode);
-
- [DllImport("gsdll64.dll", EntryPoint = "gsapi_run_string_end", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_run_string_end64(IntPtr instance,
- int usererr, ref int exitcode);
-
- /* 32 Bit DLL */
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_revision", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_revision32(ref gsapi_revision_t vers, int size);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_new_instance", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_new_instance32(out IntPtr pinstance,
- IntPtr caller_handle);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_delete_instance", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_delete_instance32(IntPtr instance);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_init_with_args", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_init_with_args32(IntPtr instance, int argc,
- IntPtr argv);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_exit", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_exit32(IntPtr instance);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_set_arg_encoding", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_set_arg_encoding32(IntPtr instance,
- int encoding);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_set_stdio", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int gsapi_set_stdio32(IntPtr instance,
- gsStdIOHandler stdin, gsStdIOHandler stdout, gsStdIOHandler stderr);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_run_string_begin", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_run_string_begin32(IntPtr instance,
- int usererr, ref int exitcode);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_run_string_continue", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_run_string_continue32(IntPtr instance,
- IntPtr command, int count, int usererr, ref int exitcode);
-
- [DllImport("gsdll32.dll", EntryPoint = "gsapi_run_string_end", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void gsapi_run_string_end32(IntPtr instance,
- int usererr, ref int exitcode);
- #endregion DLLInterface
-
- #region DLLErrorCatch
- /* In case the DLL is not found we need to wrap the methods up with
- * a try/catch. Also select 32 or 64 bit DLL at this time. This
- * C# code is compiled as ANYCPU type */
- private int tc_gsapi_revision(ref gsapi_revision_t vers, int size)
- {
- int code = 0;
- try
- {
- if (is64bit)
- code = gsapi_revision64(ref vers, size);
- else
- code = gsapi_revision32(ref vers, size);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return code;
- }
-
- private int tc_gsapi_new_instance(out IntPtr pinstance, IntPtr caller_handle)
- {
- int code = 0;
- pinstance = IntPtr.Zero;
- try
- {
- if (is64bit)
- code = gsapi_new_instance64(out pinstance, caller_handle);
- else
- code = gsapi_new_instance32(out pinstance, caller_handle);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return code;
- }
-
- private int tc_gsapi_delete_instance(IntPtr instance)
- {
- try
- {
- if (is64bit)
- gsapi_delete_instance64(instance);
- else
- gsapi_delete_instance32(instance);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return 0;
- }
-
- private int tc_gsapi_init_with_args(IntPtr instance, int argc, IntPtr argv)
- {
- int code;
-
- try
- {
- if (is64bit)
- code = gsapi_init_with_args64(instance, argc, argv);
- else
- code = gsapi_init_with_args32(instance, argc, argv);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch(System.Reflection.TargetInvocationException ee)
- {
- String output = "TargetInvocationException";
- gsDLLProblemMain(this, output);
- return -1;
- }
-
- return code;
- }
-
- private int tc_gsapi_exit(IntPtr instance)
- {
- int code;
- try
- {
- if (is64bit)
- code = gsapi_exit64(instance);
- else
- code = gsapi_exit32(instance);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return code;
- }
-
- private int tc_gsapi_set_arg_encoding(IntPtr instance, int encoding)
- {
- int code;
- try
- {
- if (is64bit)
- code = gsapi_set_arg_encoding64(instance, encoding);
- else
- code = gsapi_set_arg_encoding32(instance, encoding);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return code;
- }
-
- private int tc_gsapi_set_stdio(IntPtr instance, gsStdIOHandler stdin,
- gsStdIOHandler stdout, gsStdIOHandler stderr)
- {
- int code;
- try
- {
- if (is64bit)
- code = gsapi_set_stdio64(instance, stdin, stdout, stderr);
- else
- code = gsapi_set_stdio32(instance, stdin, stdout, stderr);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return code;
- }
-
- private int tc_gsapi_run_string_begin(IntPtr instance, int usererr,
- ref int exitcode)
- {
- try
- {
- if (is64bit)
- gsapi_run_string_begin64(instance, usererr, ref exitcode);
- else
- gsapi_run_string_begin32(instance, usererr, ref exitcode);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return 0;
- }
-
- private int tc_gsapi_run_string_continue(IntPtr instance, IntPtr command,
- int count, int usererr, ref int exitcode)
- {
- try
- {
- if (is64bit)
- gsapi_run_string_continue64(instance, command, count, usererr,
- ref exitcode);
- else
- gsapi_run_string_continue32(instance, command, count, usererr,
- ref exitcode);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return 0;
- }
-
- private int tc_gsapi_run_string_end(IntPtr instance, int usererr,
- ref int exitcode)
- {
- try
- {
- if (is64bit)
- gsapi_run_string_end64(instance, usererr, ref exitcode);
- else
- gsapi_run_string_end32(instance, usererr, ref exitcode);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String output = "DllNotFoundException: Ghostscript DLL not found";
- gsDLLProblemMain(this, output);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String output = "BadImageFormatException: Incorrect Ghostscript DLL";
- gsDLLProblemMain(this, output);
- return -1;
- }
- return 0;
- }
- #endregion DLLErrorCatch
-
- private int StdInCallback(IntPtr handle, IntPtr pointer, int count)
- {
- String output = Marshal.PtrToStringAnsi(pointer);
- return count;
- }
-
- private int StdOutCallback(IntPtr handle, IntPtr pointer, int count)
- {
- String output = Marshal.PtrToStringAnsi(pointer);
- gsIOUpdateMain(this, output, count);
- if (m_params.task != GS_Task_t.PS_DISTILL)
- {
- /* See if we have a page number */
- if (count >= 7 && output.Substring(0, 4) == "Page")
- {
- String page = output.Substring(5, count - 6);
- int numVal;
- try
- {
- double perc = 0.0;
- numVal = System.Convert.ToInt32(page);
- if (m_params.firstpage == -1 && m_params.lastpage == -1 &&
- m_params.pages == null)
- {
- /* Doing full document */
- perc = 100.0 * (double)numVal / (double)m_params.num_pages;
- }
- else
- {
- if (m_params.pages != null)
- {
- perc = 100.0 * ((double)numVal - m_params.currpage) / (double)m_params.num_pages;
- m_params.currpage = m_params.currpage + 1;
- }
- else
- {
- /* continugous set of pages */
- perc = 100.0 * ((double)numVal - m_params.firstpage + 1) / (double)m_params.num_pages;
- }
- }
- m_worker.ReportProgress((int)perc);
- }
- catch (FormatException e)
- {
- Console.WriteLine("XPSPrint Error: Input string is not a sequence of digits.");
- }
- catch (OverflowException e)
- {
- Console.WriteLine("XPSPrint Error: The number cannot fit in an Int32.");
- }
-
- }
- }
- return count;
- }
-
- private int StdErrCallback(IntPtr handle, IntPtr pointer, int count)
- {
- String output = Marshal.PtrToStringAnsi(pointer);
- gsIOUpdateMain(this, output, count);
- return count;
- }
-
- IntPtr gsInstance;
- BackgroundWorker m_worker;
- bool is64bit;
- gsParams_t m_params;
- /* Callbacks to Main */
- internal delegate void gsDLLProblem(object gsObject, String mess);
- internal event gsDLLProblem gsDLLProblemMain;
- internal delegate void gsIOCallBackMain(object gsObject, String mess, int len);
- internal event gsIOCallBackMain gsIOUpdateMain;
- internal delegate void gsCallBackMain(object gsObject, gsEventArgs info);
- internal event gsCallBackMain gsUpdateMain;
- /* These need to be declared as members, to keep a reference and avoid GC
- * You do not pin delegates */
- gsStdIOHandler RaiseStdInCallback;
- gsStdIOHandler RaiseStdOutCallback;
- gsStdIOHandler RaiseStdErrCallback;
-
- public ghostsharp()
- {
- /* Determine now if we are 64 or 32 bit */
- is64bit = Environment.Is64BitOperatingSystem &&
- Environment.Is64BitProcess;
- m_worker = null;
- gsInstance = IntPtr.Zero;
-
- /* Go ahead and do the assignment here */
- RaiseStdInCallback = StdInCallback;
- RaiseStdOutCallback = StdOutCallback;
- RaiseStdErrCallback = StdErrCallback;
- }
-
- private List<String> GetOptions(String options)
- {
- List<String> optionlist = new List<String>();
-
- if (options != "")
- {
- string[] words = options.Split(' ');
- for (int k = 0; k < words.Length; k++)
- {
- if (words[k].Length > 0)
- {
- optionlist.Add(words[k]);
- }
- }
- }
- return optionlist;
- }
-
- /* A standard command line approach to using gs API */
- private void gsWork1(object sender, DoWorkEventArgs e)
- {
- gsParams_t gsparams = (gsParams_t) e.Argument;
- String out_file = gsparams.outputfile;
- String in_file = gsparams.inputfile;
- int num_params = 8; /* base number */
- int rend_count = 1;
- String options;
- int count;
- List<String> optionlist;
-
- optionlist = GetOptions(gsparams.options);
- num_params = num_params + optionlist.Count;
- if (gsparams.pages != null)
- {
- rend_count = gsparams.pages.Count;
- num_params = num_params + 2;
- }
- if (gsparams.init_file != null)
- num_params = num_params + 1;
- if (gsparams.init_string != null)
- num_params = num_params + 2;
-
- var argParam = new GCHandle[num_params];
- var argPtrs = new IntPtr[num_params];
- String[] strParams = new String[num_params];
- List<byte[]> CharacterArray = new List<byte[]>(num_params);
- GCHandle argPtrsStable;
-
- /* New instance */
- int code = tc_gsapi_new_instance(out gsInstance, IntPtr.Zero);
- if (code < 0)
- {
- gsparams.result = GS_Result_t.gsFAILED;
- e.Result = gsparams;
- return;
- }
-
- code = tc_gsapi_set_stdio(gsInstance, RaiseStdInCallback,
- RaiseStdOutCallback, RaiseStdErrCallback);
- code = tc_gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
-
- if (code == 0)
- {
- for (int jj = 0; jj < rend_count; jj++)
- {
- strParams[0] = "gs"; /* This does not matter */
- strParams[1] = "-dNOPAUSE";
- strParams[2] = "-dBATCH";
- if (gsparams.devicename != null)
- {
- strParams[3] = "-sDEVICE=" + gsparams.devicename;
- }
- else
- {
- strParams[3] = "-sDEVICE=" + Enum.GetName(typeof(gsDevice_t), gsparams.device);
- }
- strParams[4] = "-r" + gsparams.resolution;
- /* Create temp file if file not specified */
- if (out_file == null)
- {
- out_file = Path.GetTempFileName();
- gsparams.outputfile = out_file;
- }
- count = 5;
- /* Add in the options */
- for (int kk = 0; kk < optionlist.Count; kk++)
- {
- strParams[count] = optionlist[kk];
- count++;
- }
- /* We have discontinuous page selection */
- if (gsparams.pages != null)
- {
- String firstpage, lastpage;
- options = gsparams.options;
- SelectPage curr_page = (SelectPage)(gsparams.pages[jj]);
- firstpage = "-dFirstPage=" + curr_page.Page;
- lastpage = "-dLastPage=" + curr_page.Page;
- strParams[count] = firstpage;
- count++;
- strParams[count] = lastpage;
- count++;
- /* Look for file extension. */
- string extension = System.IO.Path.GetExtension(out_file);
- int len = extension.Length;
- String new_out_file = out_file.Substring(0, out_file.Length - len);
- strParams[count] = "-o" + new_out_file + "_page" + curr_page.Page + extension;
- }
- else
- {
- if (gsparams.need_multi_page)
- {
- /* Look for file extension. */
- string extension = System.IO.Path.GetExtension(out_file);
- int len = extension.Length;
- String new_out_file = out_file.Substring(0, out_file.Length - len);
- strParams[count] = "-o" + new_out_file + "_page%d" + extension;
- }
- else
- strParams[count] = "-o" + out_file;
- }
- if (gsparams.init_string != null)
- {
- count++;
- strParams[count] = "-c";
- count++;
- strParams[count] = gsparams.init_string;
- }
- count++;
- strParams[count] = "-f";
- if (gsparams.init_file != null)
- {
- count++;
- strParams[count] = gsparams.init_file;
- }
- count++;
- strParams[count] = in_file;
-
- /* Now convert our Strings to char* and get pinned handles to these.
- * This keeps the c# GC from moving stuff around on us */
- for (int k = 0; k < num_params; k++)
- {
- CharacterArray.Add(System.Text.Encoding.UTF8.GetBytes(strParams[k].ToCharArray()));
- argParam[k] = GCHandle.Alloc(CharacterArray[k], GCHandleType.Pinned);
- argPtrs[k] = argParam[k].AddrOfPinnedObject();
- }
- /* Also stick the array of pointers into memory that will not be GCd */
- argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
-
- code = tc_gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
- /* All the pinned items need to be freed so the GC can do its job */
- for (int k = 0; k < num_params; k++)
- {
- argParam[k].Free();
- }
- argPtrsStable.Free();
- /* Free the character array list in case we have multiple runs */
- CharacterArray.Clear();
-
- if (code < 0)
- break;
- }
- }
-
- int code1 = tc_gsapi_exit(gsInstance);
- if ((code == 0) || (code == gsConstants.E_QUIT))
- code = code1;
-
- tc_gsapi_delete_instance(gsInstance);
- if ((code == 0) || (code == gsConstants.E_QUIT))
- {
- gsparams.result = GS_Result_t.gsOK;
- e.Result = gsparams;
- return;
- }
-
- gsparams.result = GS_Result_t.gsFAILED;
- e.Result = gsparams;
- return;
- }
-
- /* Feeding gs piecemeal so that we can have some progress callback */
- /* Used only for PS Distill */
- private void gsWork2(object sender, DoWorkEventArgs e)
- {
- gsParams_t Params = (gsParams_t)e.Argument;
- String out_file = Params.outputfile;
- String in_file = Params.inputfile;
- int num_params = 6;
- if (Params.options.Length > 0)
- num_params = num_params + 1;
-
- int exitcode = 0;
- var argParam = new GCHandle[num_params];
- var argPtrs = new IntPtr[num_params];
- var Feed = new GCHandle();
- var FeedPtr = new IntPtr();
- String[] strParams = new String[num_params];
- List<byte[]> CharacterArray = new List<byte[]>(num_params);
- GCHandle argPtrsStable;
- Byte[] Buffer = new Byte[gsConstants.GS_READ_BUFFER];
- BackgroundWorker worker = sender as BackgroundWorker;
-
- /* Open the file */
- var fs = new FileStream(in_file, FileMode.Open);
- var len = (int) fs.Length;
- /* New instance */
- int code = tc_gsapi_new_instance(out gsInstance, IntPtr.Zero);
- if (code < 0)
- {
- Params.result = GS_Result_t.gsFAILED;
- e.Result = Params;
- return;
- }
-
- code = tc_gsapi_set_stdio(gsInstance, RaiseStdInCallback,
- RaiseStdOutCallback, RaiseStdErrCallback);
- code = tc_gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
-
- if (code == 0)
- {
- strParams[0] = "gs"; /* This does not matter */
- strParams[1] = "-dNOPAUSE";
- strParams[2] = "-dBATCH";
- if (Params.devicename != null)
- {
- strParams[3] = "-sDEVICE=" + Params.devicename;
- }
- else
- {
- strParams[3] = "-sDEVICE=" + Enum.GetName(typeof(gsDevice_t), Params.device);
- }
- strParams[4] = "-r" + Params.resolution;
- /* Create temp file if file not specified */
- if (out_file == null)
- {
- out_file = Path.GetTempFileName();
- Params.outputfile = out_file;
- }
- if (Params.options.Length > 0)
- {
- strParams[5] = Params.options;
- strParams[6] = "-o" + out_file;
- } else
- strParams[5] = "-o" + out_file;
-
- /* Now convert our Strings to char* and get pinned handles to these.
- * This keeps the c# GC from moving stuff around on us */
- for (int k = 0; k < num_params; k++)
- {
- CharacterArray.Add(System.Text.Encoding.UTF8.GetBytes(strParams[k].ToCharArray()));
- argParam[k] = GCHandle.Alloc(CharacterArray[k], GCHandleType.Pinned);
- argPtrs[k] = argParam[k].AddrOfPinnedObject();
- }
- /* Also stick the array of pointers into memory that will not be GCd */
- argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
-
- code = tc_gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
-
- /* First pin the data buffer */
- Feed = GCHandle.Alloc(Buffer, GCHandleType.Pinned);
- FeedPtr = Feed.AddrOfPinnedObject();
-
- /* Now start feeding the input piece meal and do a call back
- * with our progress */
- if (code == 0)
- {
- int count;
- double perc;
- int total = 0;
-
- tc_gsapi_run_string_begin(gsInstance, 0, ref exitcode);
- while ((count = fs.Read(Buffer, 0, gsConstants.GS_READ_BUFFER)) > 0)
- {
- tc_gsapi_run_string_continue(gsInstance, FeedPtr, count, 0, ref exitcode);
- if (exitcode < 0)
- {
- code = exitcode;
- break;
- }
- total = total + count;
- perc = 100.0 * (double) total / (double) len;
- worker.ReportProgress((int)perc);
- if (worker.CancellationPending == true)
- {
- e.Cancel = true;
- break;
- }
- }
- tc_gsapi_run_string_end(gsInstance, 0, ref exitcode);
- if (code == 0)
- code = exitcode;
- }
-
- /* All the pinned items need to be freed so the GC can do its job */
- for (int k = 0; k < num_params; k++)
- {
- argParam[k].Free();
- }
- argPtrsStable.Free();
- Feed.Free();
- }
-
- int code1 = tc_gsapi_exit(gsInstance);
- if ((code == 0) || (code == gsConstants.E_QUIT))
- code = code1;
-
- tc_gsapi_delete_instance(gsInstance);
- if ((code == 0) || (code == gsConstants.E_QUIT))
- {
- Params.result = GS_Result_t.gsOK;
- e.Result = Params;
- return;
- }
- Params.result = GS_Result_t.gsFAILED;
- e.Result = Params;
- return;
- }
-
- /* Callback */
- private void gsCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- gsParams_t Value;
- gsEventArgs info;
- gsParams_t Params;
-
- try
- {
- Params = (gsParams_t)e.Result;
- }
- catch(System.Reflection.TargetInvocationException ee)
- {
- /* Something went VERY wrong with GS */
- /* Following is to help debug these issues */
- /* var inner = ee.InnerException;
- var message = ee.Message;
- var inner_message = inner.Message;
- String bound = "\n************\n";
- gsIOUpdateMain(this, bound, bound.Length);
- gsIOUpdateMain(this, message, message.Length);
- gsIOUpdateMain(this, bound, bound.Length);
- gsIOUpdateMain(this, inner_message, inner_message.Length);
- gsIOUpdateMain(this, bound, bound.Length);
- var temp = inner.Source;
- gsIOUpdateMain(this, bound, bound.Length);
- gsIOUpdateMain(this, temp, temp.Length);
- var method = inner.TargetSite;
- gsIOUpdateMain(this, bound, bound.Length);
- var method_name = method.Name;
- gsIOUpdateMain(this, method_name, method_name.Length);
- var stack = inner.StackTrace;
- gsIOUpdateMain(this, bound, bound.Length);
- gsIOUpdateMain(this, stack, stack.Length); */
- String output = "Ghostscript DLL Invalid Access.";
- gsDLLProblemMain(this, output);
- return;
- }
-
- if (Params.task == GS_Task_t.PS_DISTILL)
- m_worker.DoWork -= new DoWorkEventHandler(gsWork2);
- else
- m_worker.DoWork -= new DoWorkEventHandler(gsWork1);
-
- if (e.Cancelled)
- {
- Value = new gsParams_t();
- Value.result = GS_Result_t.gsCANCELLED;
- info = new gsEventArgs(true, 100, Value);
- }
- else
- {
- Value = (gsParams_t)e.Result;
- info = new gsEventArgs(true, 100, Value);
- }
- gsUpdateMain(this, info);
- }
-
- private void gsProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- /* Callback with progress */
- gsParams_t Value = new gsParams_t();
- gsEventArgs info = new gsEventArgs(false, e.ProgressPercentage, Value);
- gsUpdateMain(this, info);
- }
-
- public gsStatus DistillPS(String fileName, int resolution)
- {
- gsParams_t gsparams = new gsParams_t(); ;
-
- gsparams.init_file = null;
- gsparams.init_string = null;
- gsparams.device = gsDevice_t.pdfwrite;
- gsparams.devicename = null;
- gsparams.outputfile = null;
- gsparams.resolution = resolution;
- gsparams.inputfile = fileName;
- gsparams.num_pages = -1;
- gsparams.task = GS_Task_t.PS_DISTILL;
- gsparams.options = "";
- gsparams.need_multi_page = false;
- gsparams.pages = null;
- gsparams.firstpage = -1;
- gsparams.lastpage = -1;
- gsparams.currpage = -1;
- return RunGhostscript(gsparams);
- }
-
- public gsStatus CreateXPS(String fileName, int resolution, int num_pages)
- {
- gsParams_t gsparams = new gsParams_t();
-
- gsparams.init_file = null;
- gsparams.init_string = null;
- gsparams.device = gsDevice_t.xpswrite;
- gsparams.outputfile = null;
- gsparams.resolution = resolution;
- gsparams.inputfile = fileName;
- gsparams.task = GS_Task_t.CREATE_XPS;
- gsparams.num_pages = num_pages;
- gsparams.options = "-dNOCACHE";
- gsparams.need_multi_page = false;
- gsparams.pages = null;
- gsparams.firstpage = -1;
- gsparams.lastpage = -1;
- gsparams.currpage = -1;
- return RunGhostscript(gsparams);
- }
-
- public gsStatus Convert(String fileName, String options, String device,
- String outputFile, int num_pages, int resolution,
- bool multi_page_needed, System.Collections.IList pages,
- int firstpage, int lastpage, String init_file, String init_string)
- {
- gsParams_t gsparams = new gsParams_t();
-
- gsparams.init_file = init_file;
- gsparams.init_string = init_string;
- gsparams.devicename = device;
- gsparams.outputfile = outputFile;
- gsparams.inputfile = fileName;
- gsparams.task = GS_Task_t.SAVE_RESULT;
- gsparams.num_pages = num_pages;
- gsparams.options = options;
- gsparams.resolution = resolution;
- gsparams.need_multi_page = multi_page_needed;
- gsparams.pages = pages;
- gsparams.firstpage = firstpage;
- gsparams.lastpage = lastpage;
- gsparams.currpage = 1;
- return RunGhostscript(gsparams);
- }
-
- public gsStatus GetStatus()
- {
- if (m_worker != null && m_worker.IsBusy)
- return gsStatus.GS_BUSY;
- else
- return gsStatus.GS_READY;
- }
-
- public String GetVersion()
- {
- gsapi_revision_t vers;
- vers.copyright = IntPtr.Zero;
- vers.product = IntPtr.Zero;
- vers.revision = 0;
- vers.revisiondate = 0;
- int size = System.Runtime.InteropServices.Marshal.SizeOf(vers);
-
- if (tc_gsapi_revision(ref vers, size) == 0)
- {
- String product = Marshal.PtrToStringAnsi(vers.product);
- String output;
- int major = vers.revision / 100;
- int minor = vers.revision - major * 100;
- String versnum = major + "." + minor;
- output = product + " " + versnum;
- return output;
- }
- else
- return null;
- }
-
- private gsStatus RunGhostscript(gsParams_t Params)
- {
- try
- {
- if (m_worker != null && m_worker.IsBusy)
- {
- m_worker.CancelAsync();
- return gsStatus.GS_BUSY;
- }
- if (m_worker == null)
- {
- m_worker = new BackgroundWorker();
- m_worker.WorkerReportsProgress = true;
- m_worker.WorkerSupportsCancellation = true;
- m_worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(gsCompleted);
- m_worker.ProgressChanged += new ProgressChangedEventHandler(gsProgressChanged);
- }
-
- if (Params.task == GS_Task_t.PS_DISTILL)
- m_worker.DoWork += new DoWorkEventHandler(gsWork2);
- else
- m_worker.DoWork += new DoWorkEventHandler(gsWork1);
-
- m_params = Params;
- m_worker.RunWorkerAsync(Params);
- return gsStatus.GS_READY;
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during gs rendering\n");
- return gsStatus.GS_ERROR;
- }
- }
-
- public void Cancel()
- {
- m_worker.CancelAsync();
- }
- }
-}
diff --git a/platform/winrt/gsview/gsIO.cs b/platform/winrt/gsview/gsIO.cs
deleted file mode 100644
index 82e47be6..00000000
--- a/platform/winrt/gsview/gsIO.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ComponentModel;
-
-namespace gsview
-{
- class gsIO : INotifyPropertyChanged
- {
- public String gsIOString
- {
- get;
- set;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- public void PageRefresh()
- {
- if (PropertyChanged != null)
- {
- PropertyChanged(this, new PropertyChangedEventArgs("gsIOString"));
- }
- }
-
- public gsIO()
- {
- this.gsIOString = "";
- }
- }
-}
diff --git a/platform/winrt/gsview/gsOutput.xaml b/platform/winrt/gsview/gsOutput.xaml
deleted file mode 100644
index 0c69461c..00000000
--- a/platform/winrt/gsview/gsOutput.xaml
+++ /dev/null
@@ -1,51 +0,0 @@
-<Window x:Class="gsview.gsOutput"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Ghostscript Messages" Height="500" Width="500">
-
- <DockPanel LastChildFill="True">
- <Grid DockPanel.Dock="Bottom" Visibility="Visible" Background="WhiteSmoke">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <Button Grid.Row="0" Grid.Column="1" Width="50" Height="20" Click="ClearContents" Background="Transparent" BorderBrush="Transparent" Margin="5,0,15,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>Clear</Bold></TextBlock>
- </Button>
- <Button Grid.Row="0" Grid.Column="2" Width="50" Height="20" Click="HideWindow" Background="Transparent" BorderBrush="Transparent" Margin="5,0,15,0">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Grid>
- <Rectangle Height="Auto" RadiusX="5" RadiusY="5">
- <Rectangle.Fill >
- <SolidColorBrush Color="LightSlateGray"></SolidColorBrush>
- </Rectangle.Fill>
- </Rectangle>
- <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Grid>
- </ControlTemplate>
- </Button.Template>
- <TextBlock><Bold>OK</Bold></TextBlock>
- </Button>
- </Grid>
-
- <!-- Pages are last child fill. This goes in the center of our dock panel -->
- <Grid HorizontalAlignment="Stretch" Background="DarkGray">
- <TextBox x:Name="xaml_gsText" Margin="1, 1, 1, 1" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" Text="{Binding gsIOString}" IsReadOnly="True"/>
- </Grid>
-
- </DockPanel>
-</Window>
diff --git a/platform/winrt/gsview/gsOutput.xaml.cs b/platform/winrt/gsview/gsOutput.xaml.cs
deleted file mode 100644
index c2aa9375..00000000
--- a/platform/winrt/gsview/gsOutput.xaml.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-
-namespace gsview
-{
- /// <summary>
- /// Interaction logic for gsOutput.xaml
- /// </summary>
- public partial class gsOutput : Window
- {
- gsIO m_gsIO;
- public gsOutput()
- {
- InitializeComponent();
- this.Closing += new System.ComponentModel.CancelEventHandler(FakeWindowClosing);
- m_gsIO = new gsIO();
- xaml_gsText.DataContext = m_gsIO;
- }
-
- void FakeWindowClosing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- e.Cancel = true;
- this.Hide();
- }
-
- private void HideWindow(object sender, RoutedEventArgs e)
- {
- this.Hide();
- }
-
- public void RealWindowClosing()
- {
- this.Closing -= new System.ComponentModel.CancelEventHandler(FakeWindowClosing);
- this.Close();
- }
-
- public void Update(String newstring, int len)
- {
- m_gsIO.gsIOString += newstring.Substring(0, len);
- m_gsIO.PageRefresh();
- }
-
- private void ClearContents(object sender, RoutedEventArgs e)
- {
- m_gsIO.gsIOString = null;
- m_gsIO.PageRefresh();
- }
- }
-}
diff --git a/platform/winrt/gsview/gsprint.cs b/platform/winrt/gsview/gsprint.cs
deleted file mode 100644
index 27976bc0..00000000
--- a/platform/winrt/gsview/gsprint.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.IO.Packaging;
-using System.Printing;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Documents.Serialization;
-using System.Windows.Media;
-using System.Windows.Xps;
-using System.Windows.Xps.Packaging;
-using System.Windows.Xps.Serialization;
-
-namespace gsview
-{
- public enum PrintStatus_t
- {
- PRINT_READY,
- PRINT_BUSY,
- PRINT_ERROR,
- PRINT_CANCELLED
- };
-
- /* Class for handling async print progress callback */
- public class gsPrintEventArgs : EventArgs
- {
- private PrintStatus_t m_status;
- private bool m_completed;
- private int m_page;
-
- public PrintStatus_t Status
- {
- get { return m_status; }
- }
-
- public bool Completed
- {
- get { return m_completed; }
- }
-
- public int Page
- {
- get { return m_page; }
- }
-
- public gsPrintEventArgs(PrintStatus_t status, bool completed, int page)
- {
- m_completed = completed;
- m_status = status;
- m_page = page;
- }
- }
-
- public class gsprint
- {
- private XpsDocumentWriter m_docWriter = null;
- internal delegate void AsyncPrintCallBack(object printObject, gsPrintEventArgs info);
- internal event AsyncPrintCallBack PrintUpdate;
- private bool m_busy;
-
- public bool IsBusy()
- {
- return m_busy;
- }
-
- public gsprint()
- {
- m_busy = false;
- }
-
- /* Show std. print dialog */
- public PrintDialog GetPrintDialog()
- {
- PrintDialog dlg = new PrintDialog();
- /* Current page and page ranges is going to require a little work */
- dlg.PageRangeSelection = PageRangeSelection.AllPages;
- //dlg.UserPageRangeEnabled = true;
- //dlg.CurrentPageEnabled = true;
- dlg.SelectedPagesEnabled = false;
- m_busy = false;
- if (dlg.ShowDialog() == true)
- return dlg;
- return null;
- }
-
- /* Main print entry point */
- public void Print(PrintQueue queu, FixedDocumentSequence fixdoc)
- {
- XpsDocumentWriter docwrite = GetDocWriter(queu);
-
- m_busy = true;
- docwrite.WritingPrintTicketRequired +=
- new WritingPrintTicketRequiredEventHandler(PrintTicket);
- PrintPages(docwrite, fixdoc);
- }
-
- /* Send it */
- private void PrintPages(XpsDocumentWriter xpsdw, FixedDocumentSequence fixdoc)
- {
- m_docWriter = xpsdw;
- xpsdw.WritingCompleted +=
- new WritingCompletedEventHandler(AsyncCompleted);
- xpsdw.WritingProgressChanged +=
- new WritingProgressChangedEventHandler(AsyncProgress);
- xpsdw.WriteAsync(fixdoc);
- }
-
- public void CancelAsync()
- {
- /* ick. This does not work in windows 8. causes crash */
- /* https://connect.microsoft.com/VisualStudio/feedback/details/778145/xpsdocumentwriter-cancelasync-cause-crash-in-win8 */
- m_docWriter.CancelAsync();
- }
-
- /* Done */
- private void AsyncCompleted(object sender, WritingCompletedEventArgs e)
- {
- PrintStatus_t status;
-
- if (e.Cancelled)
- status = PrintStatus_t.PRINT_CANCELLED;
- else if (e.Error != null)
- status = PrintStatus_t.PRINT_ERROR;
- else
- status = PrintStatus_t.PRINT_READY;
-
- if (PrintUpdate != null)
- {
- gsPrintEventArgs info = new gsPrintEventArgs(status, true, 0);
- PrintUpdate(this, info);
- }
- m_busy = false;
- }
-
- /* Do this update with each fixed document (page) that is handled */
- private void AsyncProgress(object sender, WritingProgressChangedEventArgs e)
- {
- if (PrintUpdate != null)
- {
- gsPrintEventArgs info = new gsPrintEventArgs(PrintStatus_t.PRINT_BUSY,
- false, e.Number);
- PrintUpdate(this, info);
- }
- }
-
- /* Print ticket handling. You can customize for PrintTicketLevel at
- FixedDocumentSequencePrintTicket, FixedDocumentPrintTicket,
- or FixedPagePrintTicket. We may want to play around with this some */
- private void PrintTicket(Object sender, WritingPrintTicketRequiredEventArgs e)
- {
- if (e.CurrentPrintTicketLevel ==
- PrintTicketLevel.FixedDocumentSequencePrintTicket)
- {
- PrintTicket pts = new PrintTicket();
- pts.PageOrientation = PageOrientation.Portrait;
- e.CurrentPrintTicket = pts;
- }
- }
-
- /* Create the document write */
- private XpsDocumentWriter GetDocWriter(PrintQueue pq)
- {
- XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(pq);
- return xpsdw;
- }
- }
-}
diff --git a/platform/winrt/gsview/gsprintbg.cs b/platform/winrt/gsview/gsprintbg.cs
deleted file mode 100644
index 199258e3..00000000
--- a/platform/winrt/gsview/gsprintbg.cs
+++ /dev/null
@@ -1,261 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.ComponentModel;
-using System.IO;
-using System.IO.Packaging;
-using System.Printing;
-using System.Windows.Controls;
-using System.Windows.Documents;
-using System.Windows.Documents.Serialization;
-using System.Windows.Media;
-using System.Windows.Xps;
-using System.Windows.Xps.Packaging;
-using System.Windows.Xps.Serialization;
-using System.Threading;
-
-namespace gsview
-{
- public enum PrintStatus_t
- {
- PRINT_READY,
- PRINT_BUSY,
- PRINT_ERROR
- };
-
- public enum PrintResult_t
- {
- PrintOK,
- PrintFAILED,
- PrintCANCELLED,
- PrintCOMPLETED
- }
-
- public struct PrintParams_t
- {
- public int num_pages;
- public int start_page;
- public int end_page;
- public PrintQueue queu;
- public FixedDocumentSequence fixdoc;
- public PrintResult_t result;
- public PrintStatus_t status;
-
- };
-
- public class PrintEventArgs : EventArgs
- {
- private PrintStatus_t m_status;
- private PrintResult_t m_result;
- private int m_percentdone;
-
- public PrintStatus_t Status
- {
- get { return m_status; }
- }
-
- public PrintResult_t Result
- {
- get { return m_result; }
- }
-
- public int Percent
- {
- get { return m_percentdone; }
- }
-
- public PrintEventArgs(PrintStatus_t status, PrintResult_t completed, int percent)
- {
- m_status = status;
- m_result = completed;
- m_percentdone = percent;
- }
- }
-
- public class gsprintbg
- {
- BackgroundWorker m_worker;
- private XpsDocumentWriter m_docWriter = null;
- PrintParams_t m_pparams;
-
- internal delegate void PrintCallBackMain(object gsObject, PrintEventArgs info);
- internal event PrintCallBackMain PrintUpdateMain;
-
- private void PrintProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- /* Callback with progress */
- PrintEventArgs info = new PrintEventArgs(m_pparams.status, m_pparams.result, e.ProgressPercentage);
- if (PrintUpdateMain != null)
- PrintUpdateMain(this, info);
- }
-
- /* Callback */
- private void PrintCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- PrintParams_t Value;
- PrintEventArgs info;
- PrintParams_t Params = (PrintParams_t)e.Result;
-
- if (e.Cancelled)
- {
- info = new PrintEventArgs(PrintStatus_t.PRINT_READY, PrintResult_t.PrintCANCELLED, 100);
- }
- else
- {
- Value = (PrintParams_t)e.Result;
- info = new PrintEventArgs(PrintStatus_t.PRINT_READY, PrintResult_t.PrintCOMPLETED, 100);
- }
- PrintUpdateMain(this, info);
- }
-
-
- /* Show std. print dialog */
- public PrintDialog GetPrintDialog()
- {
- PrintDialog dlg = new PrintDialog();
- /* Current page and page ranges is going to require a little work */
- dlg.PageRangeSelection = PageRangeSelection.AllPages;
- //dlg.UserPageRangeEnabled = true;
- //dlg.CurrentPageEnabled = true;
- dlg.SelectedPagesEnabled = false;
- if (dlg.ShowDialog() == true)
- return dlg;
- return null;
- }
-
- /* Main print entry point */
- private void Print(PrintParams_t pparams)
- {
- XpsDocumentWriter docwrite = GetDocWriter(pparams.queu);
- docwrite.WritingPrintTicketRequired +=
- new WritingPrintTicketRequiredEventHandler(PrintTicket);
- PrintPages(docwrite, pparams.fixdoc);
- }
-
- /* Send it */
- private void PrintPages(XpsDocumentWriter xpsdw, FixedDocumentSequence fixdoc)
- {
- m_docWriter = xpsdw;
- xpsdw.WritingCompleted +=
- new WritingCompletedEventHandler(AsyncCompleted);
- xpsdw.WritingProgressChanged +=
- new WritingProgressChangedEventHandler(AsyncProgress);
- xpsdw.WriteAsync(fixdoc);
- }
-
- private void CancelAsync()
- {
- /* ick. This does not work in windows 8. causes crash */
- /* https://connect.microsoft.com/VisualStudio/feedback/details/778145/xpsdocumentwriter-cancelasync-cause-crash-in-win8 */
- m_docWriter.CancelAsync();
- }
-
- /* Done */
- private void AsyncCompleted(object sender, WritingCompletedEventArgs e)
- {
- if (e.Cancelled)
- m_pparams.result = PrintResult_t.PrintCANCELLED;
- else if (e.Error != null)
- m_pparams.result = PrintResult_t.PrintFAILED;
- else
- m_pparams.result = PrintResult_t.PrintCOMPLETED;
- m_worker.ReportProgress(100);
- }
-
- /* Do this update with each fixed document (page) that is handled */
- private void AsyncProgress(object sender, WritingProgressChangedEventArgs e)
- {
- double perc = 100.0 * (double) e.Number / (double) m_pparams.num_pages;
- m_worker.ReportProgress((int) perc);
- }
-
- /* Print ticket handling. You can customize for PrintTicketLevel at
- FixedDocumentSequencePrintTicket, FixedDocumentPrintTicket,
- or FixedPagePrintTicket. We may want to play around with this some */
- private void PrintTicket(Object sender, WritingPrintTicketRequiredEventArgs e)
- {
- if (e.CurrentPrintTicketLevel ==
- PrintTicketLevel.FixedDocumentSequencePrintTicket)
- {
- PrintTicket pts = new PrintTicket();
- pts.PageOrientation = PageOrientation.Portrait;
- e.CurrentPrintTicket = pts;
- }
- }
-
- /* Create the document write */
- private XpsDocumentWriter GetDocWriter(PrintQueue pq)
- {
- XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(pq);
- return xpsdw;
- }
-
-
- private void PrintWork(object sender, DoWorkEventArgs e)
- {
- PrintParams_t PParams = (PrintParams_t)e.Argument;
- BackgroundWorker worker = sender as BackgroundWorker;
-
- Print(PParams);
- }
-
- public bool IsBusy()
- {
- if (m_worker != null)
- return m_worker.IsBusy;
- else
- return false;
- }
-
- public void PrintWorkThread(object data)
- {
- PrintParams_t PParams = (PrintParams_t) data;
- Print(PParams);
- }
-
- public PrintStatus_t StartPrint(PrintParams_t pparams)
- {
- try
- {
- if (m_worker != null && m_worker.IsBusy)
- {
- m_worker.CancelAsync();
- return PrintStatus_t.PRINT_BUSY;
- }
-
- if (m_worker == null)
- {
-
- Thread asyncThread = new Thread(PrintWorkThread);
- asyncThread.SetApartmentState(ApartmentState.STA);
- asyncThread.Start(pparams);
-
- /* m_worker = new BackgroundWorker();
- m_worker.WorkerReportsProgress = true;
- m_worker.WorkerSupportsCancellation = true;
- m_worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(PrintCompleted);
- m_worker.ProgressChanged += new ProgressChangedEventHandler(PrintProgressChanged);
- m_worker.DoWork += new DoWorkEventHandler(PrintWork);*/
- }
-
- ////m_pparams = pparams;
- //m_worker.RunWorkerAsync(pparams);
- pparams.status = PrintStatus_t.PRINT_BUSY;
- return PrintStatus_t.PRINT_READY;
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during printing\n");
- return PrintStatus_t.PRINT_ERROR;
- }
- }
-
-
- public void Cancel()
- {
- m_worker.CancelAsync();
- }
- }
-}
diff --git a/platform/winrt/gsview/gsview.csproj b/platform/winrt/gsview/gsview.csproj
deleted file mode 100644
index 31f40f51..00000000
--- a/platform/winrt/gsview/gsview.csproj
+++ /dev/null
@@ -1,281 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{5DA0ECC9-4026-4427-862F-E3226EFEFEB1}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>gsview</RootNamespace>
- <AssemblyName>gsview</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <WarningLevel>4</WarningLevel>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <TargetFrameworkProfile />
- <PublishUrl>publish\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>6.0.0.%2a</ApplicationVersion>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>TRACE;DEBUG</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>false</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <Prefer32Bit>false</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup>
- <StartupObject />
- </PropertyGroup>
- <PropertyGroup>
- <ApplicationIcon>gsview_app.ico</ApplicationIcon>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="ReachFramework" />
- <Reference Include="System" />
- <Reference Include="System.Data" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Printing" />
- <Reference Include="System.Windows.Forms" />
- <Reference Include="System.Xml" />
- <Reference Include="System.Xaml">
- <RequiredTargetFramework>4.0</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Xml.Linq" />
- <Reference Include="UIAutomationProvider" />
- <Reference Include="UIAutomationTypes" />
- <Reference Include="WindowsBase" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="App.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Compile Include="About.xaml.cs">
- <DependentUpon>About.xaml</DependentUpon>
- </Compile>
- <Compile Include="ContentEntry.cs" />
- <Compile Include="ContentItem.cs" />
- <Compile Include="Convert.xaml.cs">
- <DependentUpon>Convert.xaml</DependentUpon>
- </Compile>
- <Compile Include="DocPage.cs" />
- <Compile Include="ghostsharp.cs" />
- <Compile Include="gsIO.cs" />
- <Compile Include="gsOutput.xaml.cs">
- <DependentUpon>gsOutput.xaml</DependentUpon>
- </Compile>
- <Compile Include="gsprint.cs" />
- <Compile Include="Info.xaml.cs">
- <DependentUpon>Info.xaml</DependentUpon>
- </Compile>
- <Compile Include="Links.cs" />
- <Compile Include="mudocument.cs" />
- <Compile Include="OutputIntent.xaml.cs">
- <DependentUpon>OutputIntent.xaml</DependentUpon>
- </Compile>
- <Compile Include="PageExtractSave.xaml.cs">
- <DependentUpon>PageExtractSave.xaml</DependentUpon>
- </Compile>
- <Compile Include="Password.xaml.cs">
- <DependentUpon>Password.xaml</DependentUpon>
- </Compile>
- <Compile Include="RectList.cs" />
- <Compile Include="Selection.xaml.cs">
- <DependentUpon>Selection.xaml</DependentUpon>
- </Compile>
- <Compile Include="Strings\en-US\Messages.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Messages.resx</DependentUpon>
- </Compile>
- <Compile Include="TextBlock.cs" />
- <Compile Include="TextCharacter.cs" />
- <Compile Include="TextLine.cs" />
- <Page Include="About.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="Convert.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="gsOutput.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="Info.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="MainWindow.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Compile Include="App.xaml.cs">
- <DependentUpon>App.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="MainWindow.xaml.cs">
- <DependentUpon>MainWindow.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Page Include="OutputIntent.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="PageExtractSave.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="Password.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- <Page Include="Selection.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>PublicResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <EmbeddedResource Include="Strings\en-US\Messages.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Messages.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- <AppDesigner Include="Properties\" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\ActualSize48.png" />
- <Resource Include="Resources\Close.ico" />
- <Resource Include="Resources\ContScrollFill48.png" />
- <Resource Include="Resources\ExpandFill48.png" />
- <Resource Include="Resources\info.png" />
- <Resource Include="Resources\Message.png" />
- <Resource Include="Resources\OpenFile.png" />
- <Resource Include="Resources\printer.ico" />
- <Resource Include="Resources\saveHS.png" />
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.5">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\Left.ico" />
- <Resource Include="Resources\Right.ico" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\thumbnail.ico" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\hyperlink.png" />
- <Resource Include="Resources\search.ico" />
- <Resource Include="Resources\zoom_in.ico" />
- <Resource Include="Resources\zoom_out.ico" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\search.png" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\contents.ico" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\folder_open.ico" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\FloppyDisk.ico" />
- </ItemGroup>
- <ItemGroup>
- <None Include="Resources\copy.ico" />
- </ItemGroup>
- <ItemGroup>
- <WCFMetadata Include="Service References\" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\banner.png" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="Resources\gsview_app.ico" />
- </ItemGroup>
- <ItemGroup>
- <None Include="Resources\PDF.bmp" />
- </ItemGroup>
- <ItemGroup>
- <Resource Include="gsview_app.ico" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/platform/winrt/gsview/gsview.visualelementsmanifest.xml b/platform/winrt/gsview/gsview.visualelementsmanifest.xml
deleted file mode 100644
index 865a37fc..00000000
--- a/platform/winrt/gsview/gsview.visualelementsmanifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <VisualElements
- BackgroundColor="#FFFFFF"
- ShowNameOnSquare150x150Logo="on"
- ForegroundText="dark"
- />
-</Application> \ No newline at end of file
diff --git a/platform/winrt/gsview/gsview_app.ico b/platform/winrt/gsview/gsview_app.ico
deleted file mode 100644
index 29c5ca50..00000000
--- a/platform/winrt/gsview/gsview_app.ico
+++ /dev/null
Binary files differ
diff --git a/platform/winrt/gsview/mudocument.cs b/platform/winrt/gsview/mudocument.cs
deleted file mode 100644
index 291a424e..00000000
--- a/platform/winrt/gsview/mudocument.cs
+++ /dev/null
@@ -1,1747 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-//using System.Threading.Tasks;
-using System.Threading;
-using System.Runtime.InteropServices;
-using System.Security;
-using System.Windows;
-using System.ComponentModel;
-using System.Windows.Forms;
-
-/* This file contains the interface between the muctx cpp class, which
- implements the mupdf calls and the .net managed code */
-
-namespace gsview
-{
- /* Parameters for conversion */
- public struct ConvertParams_t
- {
- public int resolution;
- public gsDevice_t device;
- public String outputfile;
- public int num_pages;
- public System.Collections.IList pages;
- public int currpage;
- public GS_Result_t result;
- };
-
- /* Must match enum in muctx.h */
- enum mudevice_t
- {
- SVG_OUT,
- PNM_OUT,
- PCL_OUT,
- PWG_OUT,
- };
-
- public class muPDFEventArgs : EventArgs
- {
- private bool m_completed;
- private int m_progress;
- private ConvertParams_t m_param;
-
- public bool Completed
- {
- get { return m_completed; }
- }
-
- public ConvertParams_t Params
- {
- get { return m_param; }
- }
-
- public int Progress
- {
- get { return m_progress; }
- }
-
- public muPDFEventArgs(bool completed, int progress, ConvertParams_t param)
- {
- m_completed = completed;
- m_progress = progress;
- m_param = param;
- }
- }
-
- public struct content_s
- {
- public int page;
- public IntPtr string_margin;
- }
-
- [SuppressUnmanagedCodeSecurity]
- class mudocument
- {
- public bool is64bit;
- IntPtr mu_object;
- BackgroundWorker m_worker;
- ConvertParams_t m_params;
- /* Callbacks to Main */
- internal delegate void mupdfDLLProblem(object muObject, String mess);
- internal event mupdfDLLProblem mupdfDLLProblemMain;
- internal delegate void mupdfCallBackMain(object muObject, muPDFEventArgs info);
- internal event mupdfCallBackMain mupdfUpdateMain;
-
- private System.Object m_lock = new System.Object();
- public List<ContentItem> contents;
-
- #region DLLInterface
- /* The list of functions that we use to call into C interface of muctx.
- * Calling into C++ code from managed code is complex. Since CLR
- * compiling is needed and that does not support mutex. Hence the C
- * interface */
- [DllImport("mupdfnet64.dll", EntryPoint = "mInitialize", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mInitialize64();
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mOpenDocument", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern status_t mOpenDocument64(IntPtr ctx, string filename);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mCleanUp", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mCleanUp64(IntPtr ctx);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetPageCount", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetPageCount64(IntPtr ctx);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mRequiresPassword", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern bool mRequiresPassword64(IntPtr ctx);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mApplyPassword", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern bool mApplyPassword64(IntPtr ctx, string password);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mRenderPage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mRenderPage64(IntPtr ctx, int page_num,
- Byte[] bmp_data, int bmp_width, int bmp_height, double scale,
- bool flipy);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mMeasurePage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mMeasurePage64(IntPtr ctx, int page_num,
- ref double width, ref double height);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetContents", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetContents64(IntPtr ctx);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mReleaseContents", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseContents64();
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mSetAA", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mSetAA64(IntPtr ctx, int level);
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetContentsItem", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetContentsItem64(int k, ref int len, ref int page);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mCreateDisplayList", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mCreateDisplayList64(IntPtr ctx, int page_num,
- ref int page_width, ref int page_height);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mCreateDisplayListAnnot",
- CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mCreateDisplayListAnnot64(IntPtr ctx, int page_num);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mCreateDisplayListText", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mCreateDisplayListText64(IntPtr ctx, int page_num,
- ref int page_width, ref int page_height, ref IntPtr text, ref int length);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mRenderPageMT", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mRenderPageMT64(IntPtr ctx, IntPtr dlist,
- IntPtr annot_dlist, int page_width, int page_height, Byte[] bmp_data,
- int bmp_width, int bmp_height, double scale, bool flipy);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mTextSearchPage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mTextSearchPage64(IntPtr ctx, int page_num,
- string needle);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetTextSearchItem", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern bool mGetTextSearchItem64(int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mReleaseTextSearch", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseTextSearch64();
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetLinksPage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetLinksPage64(IntPtr ctx, int page_num);
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetLinkItem", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetLinkItem64(int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width, ref int topage,
- ref int type);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mReleaseLink", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseLink64();
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mReleaseText", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseText64(IntPtr ctx, IntPtr textpage);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetTextBlock", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetTextBlock64(IntPtr textpage, int block_num,
- ref double top_x,ref double top_y, ref double height, ref double width);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetTextLine", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetTextLine64(IntPtr textpage, int block_num,
- int line_num, ref double top_x, ref double top_y, ref double height,
- ref double width);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetTextCharacter", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetTextCharacter64(IntPtr textpage, int block_num,
- int line_num, int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mExtractPages", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mExtractPages64(String infile, String outfile,
- String password, bool has_password, bool linearize, int num_pages,
- IntPtr pages);
-
- [DllImport("mupdfnet64.dll", EntryPoint = "mSavePage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mSavePage64(IntPtr ctx, String outfile,
- int page_num, int res, int type, bool append);
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetVers", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetVers64();
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet64.dll", EntryPoint = "mGetText", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetText64(IntPtr ctx, int pagenum, int type);
-
- /* And the 32bit version */
- [DllImport("mupdfnet32.dll", EntryPoint = "mInitialize", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mInitialize32();
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mOpenDocument", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern status_t mOpenDocument32(IntPtr ctx, string filename);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mCleanUp", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mCleanUp32(IntPtr ctx);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetPageCount", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetPageCount32(IntPtr ctx);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mRequiresPassword", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern bool mRequiresPassword32(IntPtr ctx);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mApplyPassword", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern bool mApplyPassword32(IntPtr ctx, string password);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mRenderPage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mRenderPage32(IntPtr ctx, int page_num,
- Byte[] bmp_data, int bmp_width, int bmp_height, double scale,
- bool flipy);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mMeasurePage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mMeasurePage32(IntPtr ctx, int page_num,
- ref double width, ref double height);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetContents", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetContents32(IntPtr ctx);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mReleaseContents", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseContents32();
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mSetAA", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mSetAA32(IntPtr ctx, int level);
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetContentsItem", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetContentsItem32(int k, ref int len, ref int page);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mCreateDisplayList", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mCreateDisplayList32(IntPtr ctx, int page_num,
- ref int page_width, ref int page_height);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mCreateDisplayListAnnot",
- CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mCreateDisplayListAnnot32(IntPtr ctx, int page_num);
-
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mCreateDisplayListText", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern IntPtr mCreateDisplayListText32(IntPtr ctx, int page_num,
- ref int page_width, ref int page_height, ref IntPtr text, ref int length);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mRenderPageMT", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mRenderPageMT32(IntPtr ctx, IntPtr dlist,
- IntPtr annot_dlist, int page_width, int page_height, Byte[] bmp_data,
- int bmp_width, int bmp_height, double scale, bool flipy);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mTextSearchPage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mTextSearchPage32(IntPtr ctx, int page_num,
- string needle);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetTextSearchItem", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern bool mGetTextSearchItem32(int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mReleaseTextSearch", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseTextSearch32();
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetLinksPage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetLinksPage32(IntPtr ctx, int page_num);
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetLinkItem", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetLinkItem32(int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width, ref int topage,
- ref int type);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mReleaseLink", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseLink32();
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mReleaseText", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern void mReleaseText32(IntPtr ctx, IntPtr textpage);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetTextBlock", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetTextBlock32(IntPtr textpage, int block_num,
- ref double top_x, ref double top_y, ref double height, ref double width);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetTextLine", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetTextLine32(IntPtr textpage, int block_num,
- int line_num, ref double top_x, ref double top_y, ref double height,
- ref double width);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetTextCharacter", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mGetTextCharacter32(IntPtr textpage, int block_num,
- int line_num, int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mExtractPages", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mExtractPages32(String infile, String outfile,
- String password, bool has_password, bool linearize, int num_pages,
- IntPtr pages);
-
- [DllImport("mupdfnet32.dll", EntryPoint = "mSavePage", CharSet = CharSet.Auto,
- CallingConvention = CallingConvention.StdCall)]
- private static extern int mSavePage32(IntPtr ctx, String outfile,
- int page_num, int res, int type, bool append);
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetVers", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetVers32();
-
- /* The managed code Marshal actually releases the allocated string from C */
- [DllImport("mupdfnet32.dll", EntryPoint = "mGetText", CharSet = CharSet.Ansi,
- CallingConvention = CallingConvention.StdCall)]
- [return: MarshalAs(UnmanagedType.LPStr)]
- private static extern string mGetText32(IntPtr ctx, int pagenum, int type);
-
- #endregion DLLInterface
-
- #region DLLErrorTrap
- /* And make sure we can catch any issues in finding the DLL or if we have
- * a 32bit 64bit issue */
- private IntPtr tc_mInitialize()
- {
- IntPtr output;
- try
- {
- if (is64bit)
- output = mInitialize64();
- else
- output = mInitialize32();
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 1";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- return output;
- }
-
- private status_t tc_mOpenDocument(IntPtr ctx, string filename)
- {
- status_t output;
- try
- {
- if (is64bit)
- output = mOpenDocument64(ctx, filename);
- else
- output = mOpenDocument32(ctx, filename);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 2";
- mupdfDLLProblemMain(this, err);
- return status_t.E_FAILURE;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return status_t.E_FAILURE;
- }
- return output;
- }
-
- private int tc_mCleanUp(IntPtr ctx)
- {
- try
- {
- if (is64bit)
- mCleanUp64(ctx);
- else
- mCleanUp32(ctx);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 3";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return 0;
- }
-
- private int tc_mGetPageCount(IntPtr ctx)
- {
- int output;
- try
- {
- if (is64bit)
- output = mGetPageCount64(ctx);
- else
- output = mGetPageCount32(ctx);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 4";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private bool tc_mRequiresPassword(IntPtr ctx)
- {
- bool output;
- try
- {
- if (is64bit)
- output = mRequiresPassword64(ctx);
- else
- output = mRequiresPassword32(ctx);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 5";
- mupdfDLLProblemMain(this, err);
- return false;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return false;
- }
- return output;
- }
-
- private bool tc_mApplyPassword(IntPtr ctx, string password)
- {
- bool output;
- try
- {
- if (is64bit)
- output = mApplyPassword64(ctx, password);
- else
- output = mApplyPassword32(ctx, password);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 6";
- mupdfDLLProblemMain(this, err);
- return false;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return false;
- }
- return output;
- }
-
- private int tc_mRenderPage(IntPtr ctx, int page_num, Byte[] bmp_data,
- int bmp_width, int bmp_height, double scale, bool flipy)
- {
- int output;
- try
- {
- if (is64bit)
- output = mRenderPage64(ctx, page_num, bmp_data, bmp_width,
- bmp_height, scale, flipy);
- else
- output = mRenderPage32(ctx, page_num, bmp_data, bmp_width,
- bmp_height, scale, flipy);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 7";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mMeasurePage(IntPtr ctx, int page_num, ref double width,
- ref double height)
- {
- int output;
- try
- {
- if (is64bit)
- output = mMeasurePage64(ctx, page_num, ref width, ref height);
- else
- output = mMeasurePage32(ctx, page_num, ref width, ref height);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 8";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mGetContents(IntPtr ctx)
- {
- int output;
- try
- {
- if (is64bit)
- output = mGetContents64(ctx);
- else
- output = mGetContents32(ctx);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 9";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mReleaseContents()
- {
- try
- {
- if (is64bit)
- mReleaseContents64();
- else
- mReleaseContents32();
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 10";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return 0;
- }
-
- private string tc_mGetContentsItem(int k, ref int len, ref int page)
- {
- String output;
- try
- {
- if (is64bit)
- output = mGetContentsItem64(k, ref len, ref page);
- else
- output = mGetContentsItem32(k, ref len, ref page);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 11";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- return output;
- }
-
- private IntPtr tc_mCreateDisplayListAnnot(IntPtr ctx, int page_num)
- {
- IntPtr output;
- try
- {
- if (is64bit)
- output = mCreateDisplayListAnnot64(ctx, page_num);
- else
- output = mCreateDisplayListAnnot32(ctx, page_num);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 12";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- return output;
- }
-
- private IntPtr tc_mCreateDisplayList(IntPtr ctx, int page_num,
- ref int page_width, ref int page_height)
- {
- IntPtr output;
- try
- {
- if (is64bit)
- output = mCreateDisplayList64(ctx, page_num, ref page_width,
- ref page_height);
- else
- output = mCreateDisplayList32(ctx, page_num, ref page_width,
- ref page_height);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 13";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- return output;
- }
-
- private int tc_mSetAA(IntPtr ctx, int level)
- {
- try
- {
- if (is64bit)
- mSetAA64(ctx, level);
- else
- mSetAA32(ctx, level);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 14";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return 0;
- }
-
- private IntPtr tc_mCreateDisplayListText(IntPtr ctx, int page_num,
- ref int page_width, ref int page_height, ref IntPtr text, ref int length)
- {
- IntPtr output;
- try
- {
- if (is64bit)
- output = mCreateDisplayListText64(ctx, page_num, ref page_width,
- ref page_height, ref text, ref length);
- else
- output = mCreateDisplayListText32(ctx, page_num, ref page_width,
- ref page_height, ref text, ref length);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 15";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return IntPtr.Zero;
- }
- return output;
- }
-
- private int tc_mRenderPageMT(IntPtr ctx, IntPtr dlist, IntPtr annot_dlist,
- int page_width, int page_height, Byte[] bmp_data, int bmp_width,
- int bmp_height, double scale, bool flipy)
- {
- int output;
- try
- {
- if (is64bit)
- output = mRenderPageMT64(ctx, dlist, annot_dlist, page_width,
- page_height, bmp_data, bmp_width, bmp_height, scale, flipy);
- else
- output = mRenderPageMT32(ctx, dlist, annot_dlist, page_width,
- page_height, bmp_data, bmp_width, bmp_height, scale, flipy);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 16";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mTextSearchPage(IntPtr ctx, int page_num, string needle)
- {
- int output;
- try
- {
- if (is64bit)
- output = mTextSearchPage64(ctx, page_num, needle);
- else
- output = mTextSearchPage32(ctx, page_num, needle);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 17";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private bool tc_mGetTextSearchItem(int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width)
- {
- bool output;
- try
- {
- if (is64bit)
- output = mGetTextSearchItem64(item_num, ref top_x, ref top_y,
- ref height, ref width);
- else
- output = mGetTextSearchItem32(item_num, ref top_x, ref top_y,
- ref height, ref width);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 18";
- mupdfDLLProblemMain(this, err);
- return false;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return false;
- }
- return output;
- }
-
- private int tc_mReleaseTextSearch()
- {
- try
- {
- if (is64bit)
- mReleaseTextSearch64();
- else
- mReleaseTextSearch32();
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 18";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return 0;
- }
-
- private int tc_mGetLinksPage(IntPtr ctx, int page_num)
- {
- int output;
- try
- {
- if (is64bit)
- output = mGetLinksPage64(ctx, page_num);
- else
- output = mGetLinksPage32(ctx, page_num);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 19";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private string tc_mGetLinkItem(int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width, ref int topage,
- ref int type)
- {
- String output;
- try
- {
- if (is64bit)
- output = mGetLinkItem64(item_num, ref top_x, ref top_y, ref height,
- ref width, ref topage, ref type);
- else
- output = mGetLinkItem32(item_num, ref top_x, ref top_y, ref height,
- ref width, ref topage, ref type);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 20";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- return output;
- }
-
- private int tc_mReleaseLink()
- {
- try
- {
- if (is64bit)
- mReleaseLink64();
- else
- mReleaseLink32();
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 21";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return 0;
- }
-
- private int tc_mReleaseText(IntPtr ctx, IntPtr textpage)
- {
- try
- {
- if (is64bit)
- mReleaseText64(ctx, textpage);
- else
- mReleaseText32(ctx, textpage);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 22";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return 0;
- }
-
- private int tc_mGetTextBlock(IntPtr textpage, int block_num,
- ref double top_x, ref double top_y, ref double height, ref double width)
- {
- int output;
- try
- {
- if (is64bit)
- output = mGetTextBlock64(textpage, block_num, ref top_x,
- ref top_y, ref height, ref width);
- else
- output = mGetTextBlock32(textpage, block_num, ref top_x,
- ref top_y, ref height, ref width);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 23";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mGetTextLine(IntPtr textpage, int block_num,
- int line_num, ref double top_x, ref double top_y, ref double height,
- ref double width)
- {
- int output;
- try
- {
- if (is64bit)
- output = mGetTextLine64(textpage, block_num, line_num,
- ref top_x, ref top_y, ref height, ref width);
- else
- output = mGetTextLine32(textpage, block_num, line_num,
- ref top_x, ref top_y, ref height, ref width);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 24";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mGetTextCharacter(IntPtr textpage, int block_num,
- int line_num, int item_num, ref double top_x,
- ref double top_y, ref double height, ref double width)
- {
- int output;
- try
- {
- if (is64bit)
- output = mGetTextCharacter64(textpage, block_num, line_num,
- item_num, ref top_x, ref top_y, ref height, ref width);
- else
- output = mGetTextCharacter32(textpage, block_num, line_num,
- item_num, ref top_x, ref top_y, ref height, ref width);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 25";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private int tc_mExtractPages(String infile, String outfile,
- String password, bool has_password, bool linearize, int num_pages,
- IntPtr pages)
- {
- int output;
- try
- {
- if (is64bit)
- output = mExtractPages64(infile, outfile, password, has_password,
- linearize, num_pages, pages);
- else
- output = mExtractPages32(infile, outfile, password, has_password,
- linearize, num_pages, pages);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 26";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
-
- private string tc_mGetVers()
- {
- String output;
- try
- {
- if (is64bit)
- output = mGetVers64();
- else
- output = mGetVers32();
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 27";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- return output;
- }
-
- private string tc_mGetText(IntPtr ctx, int pagenum, textout_t type)
- {
- String output;
- try
- {
- if (is64bit)
- output = mGetText64(ctx, pagenum, (int) type);
- else
- output = mGetText32(ctx, pagenum, (int) type);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 28";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return null;
- }
- return output;
- }
-
- private int tc_mSavePage(IntPtr ctx, String outfile, int page_num,
- int res, int type, bool append)
- {
- int output;
- try
- {
- if (is64bit)
- output = mSavePage64(ctx, outfile, page_num, res, type, append);
- else
- output = mSavePage32(ctx, outfile, page_num, res, type, append);
- }
- catch (DllNotFoundException)
- {
- /* DLL not found */
- String err = "DllNotFoundException: MuPDF DLL not found 29";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- catch (BadImageFormatException)
- {
- /* Using 32 bit with 64 or vice versa */
- String err = "BadImageFormatException: Incorrect MuPDF DLL";
- mupdfDLLProblemMain(this, err);
- return -1;
- }
- return output;
- }
- #endregion DLLErrorTrap
-
- /* Now the actual code that does some work */
- public status_t Initialize()
- {
- is64bit = Environment.Is64BitOperatingSystem &&
- Environment.Is64BitProcess;
-
- mu_object = tc_mInitialize();
- if (mu_object == null)
- return status_t.E_FAILURE;
- else
- return status_t.S_ISOK;
- }
-
- public void CleanUp()
- {
- if (mu_object != null)
- {
- lock(m_lock)
- tc_mCleanUp(mu_object);
- }
- }
-
- public String GetText(int page_num, textout_t type)
- {
- return tc_mGetText(mu_object, page_num, type);
- }
-
- public void GetVersion(out String vers)
- {
- vers = tc_mGetVers();
- }
-
- public int GetPageCount()
- {
- return tc_mGetPageCount(mu_object);
- }
-
- public bool RequiresPassword()
- {
- return tc_mRequiresPassword(mu_object);
- }
-
- public bool ApplyPassword(String password)
- {
- return tc_mApplyPassword(mu_object, password);
- }
-
- public void SetAA(AA_t AAlevel)
- {
- lock (m_lock)
- {
- tc_mSetAA(mu_object, (int)AAlevel);
- }
- }
-
- public int RenderPage(int page_num, Byte[] bmp_data, int bmp_width,
- int bmp_height, double scale, bool flipy, bool use_dlist, bool
- get_text, out BlocksText blocks, bool annotation,
- out Annotate_t annot_type)
- {
- int code;
- blocks = null;
- String blockcolor = "#00FFFFFF";
- String linecolor = "#402572AC";
- /* Debug */
- //blockcolor = "#20FFFF00";
-
- annot_type = Annotate_t.UNKNOWN;
- if (use_dlist)
- {
- IntPtr dlist = IntPtr.Zero;
- IntPtr annot_dlist = IntPtr.Zero;
- IntPtr text = IntPtr.Zero;
- int num_blocks = 0;
-
- int page_height = 0;
- int page_width = 0;
-
- if (get_text)
- {
- lock (m_lock)
- {
- dlist = tc_mCreateDisplayListText(mu_object, page_num,
- ref page_width, ref page_height, ref text, ref num_blocks);
- }
- /* If we have some text go ahead and get the bounding boxes
- * now. There is likely a better way to do this with passing
- * a structure across the boundary in a single call. ToDO */
- /* Length here is the number of blocks. mupdf splits block
- * into lines (spans) and then these into text characters
- * Our goal here is to get them into a structure that we
- * can rapidly use in our ui display. Maintaining the block
- * and span stucture so that we can minimize the number of
- * rects that are introduced */
- if (num_blocks > 0)
- {
- blocks = new BlocksText();
- for (int kk = 0; kk < num_blocks; kk++)
- {
- double top_x = 0, top_y = 0, height = 0, width = 0;
- var block = new TextBlock();
-
- int num_lines = tc_mGetTextBlock(text, kk, ref top_x,
- ref top_y, ref height, ref width);
-
- block.X = top_x;
- block.Y = top_y;
- block.Width = width;
- block.Height = height;
- block.Color = blockcolor;
- block.Scale = 1.0;
- block.PageNumber = page_num;
- blocks.Add(block);
-
- blocks[kk].TextLines = new List<TextLine>();
- for (int jj = 0; jj < num_lines; jj++)
- {
- var line = new TextLine();
- int num_chars = tc_mGetTextLine(text, kk, jj, ref top_x,
- ref top_y, ref height, ref width);
- line.X = top_x;
- line.Y = top_y;
- line.Width = width;
- line.Height = height;
- line.Scale = 1.0;
- line.Color = linecolor;
- blocks[kk].TextLines.Add(line);
-
- blocks[kk].TextLines[jj].TextCharacters = new List<TextCharacter>();
- for (int mm = 0; mm < num_chars; mm++)
- {
- var textchars = new TextCharacter();
- int character = tc_mGetTextCharacter(text, kk, jj, mm, ref top_x,
- ref top_y, ref height, ref width);
- textchars.X = top_x;
- textchars.Y = top_y;
- textchars.Width = width;
- textchars.Height = height;
- textchars.Scale = 1.0;
- textchars.Color = linecolor;
- textchars.character = System.Convert.ToChar(character).ToString();
- blocks[kk].TextLines[jj].TextCharacters.Add(textchars);
- }
- }
- }
- /* We are done with the text object */
- tc_mReleaseText(mu_object, text);
- }
- }
- else
- lock (m_lock)
- {
- dlist = tc_mCreateDisplayList(mu_object, page_num,
- ref page_width, ref page_height);
- }
- if (annotation)
- {
- lock (m_lock)
- {
- annot_dlist = tc_mCreateDisplayListAnnot(mu_object, page_num);
- if (annot_dlist == IntPtr.Zero)
- annot_type = Annotate_t.NO_ANNOTATE;
- else
- annot_type = Annotate_t.HAS_ANNOTATE;
- }
- }
-
- /* Rendering of display list can occur with other threads so unlock */
- if (dlist == null)
- {
- return (int) status_t.E_FAILURE;
- }
- code = tc_mRenderPageMT(mu_object, dlist, annot_dlist, page_width,
- page_height, bmp_data, bmp_width, bmp_height, scale, flipy);
- }
- else
- {
- lock(m_lock)
- {
- code = tc_mRenderPage(mu_object, page_num, bmp_data, bmp_width,
- bmp_height, scale, flipy);
- }
- }
- return code;
- }
-
- public status_t OpenFile(string filename)
- {
- return tc_mOpenDocument(mu_object, filename);
- }
-
- public int GetPageSize(int page_num, out Point size_out)
- {
- int code;
- double height = 0, width = 0;
-
- size_out = new Point();
-
- lock(m_lock)
- {
- code = tc_mMeasurePage(mu_object, page_num, ref width, ref height);
- }
-
- size_out.X = width;
- size_out.Y = height;
- return code;
- }
-
- public int ComputeContents()
- {
- int num_items;
- int len = 0, page = 0;
-
- lock(m_lock)
- {
- num_items = tc_mGetContents(mu_object);
- }
-
- if (contents == null)
- contents = new List<ContentItem>();
-
- for (int k = 0; k < num_items; k++)
- {
- ContentItem item = new ContentItem();
- item.StringMargin = tc_mGetContentsItem(k, ref len, ref page);
- item.Page = page;
- contents.Add(item);
- }
- return num_items;
- }
-
- public void ReleaseContents()
- {
- tc_mReleaseContents();
- }
-
- public int TextSearchPage(int page_num, String needle)
- {
- int num_found;
- lock (m_lock)
- {
- num_found = tc_mTextSearchPage(mu_object, page_num, needle);
- }
- return num_found;
- }
-
- public bool GetTextSearchItem(int k, out Point top_left, out Size size_rect)
- {
- double top_x = 0, top_y = 0 , height = 0, width = 0;
- bool found = tc_mGetTextSearchItem(k, ref top_x, ref top_y, ref height, ref width);
-
- top_left = new Point();
- size_rect = new Size();
-
- top_left.X = top_x;
- top_left.Y = top_y;
- size_rect.Width = width;
- size_rect.Height = height;
-
- return found;
- }
-
- public void ReleaseTextSearch()
- {
- tc_mReleaseTextSearch();
- }
-
- public int GetLinksPage(int page_num)
- {
- int num_found;
- lock (m_lock)
- {
- num_found = tc_mGetLinksPage(mu_object, page_num);
- }
- return num_found;
- }
-
- public void GetLinkItem(int k, out Point top_left, out Size size_rect,
- out String uri, out int topage, out int typea)
- {
- double top_x = 0, top_y = 0, height = 0, width = 0;
- int typeb = 0;
- int linkpage = 0;
-
- uri = tc_mGetLinkItem(k, ref top_x, ref top_y, ref height, ref width,
- ref linkpage, ref typeb);
-
- topage = linkpage;
- typea = typeb;
- top_left = new Point();
- size_rect = new Size();
-
- top_left.X = top_x;
- top_left.Y = top_y;
- size_rect.Width = width;
- size_rect.Height = height;
- }
-
- public void ReleaseLink()
- {
- tc_mReleaseLink();
- }
-
- public void ReleaseText(IntPtr textpage)
- {
- tc_mReleaseText(mu_object, textpage);
- }
-
- public void HTMLSaveAs(String infile, String outfile, String password,
- bool has_password, bool linearize, int num_pages, System.Collections.IList pages)
- {
- if (num_pages > 0)
- {
- /* We need to do an allocation for our array of page numbers and
- * perform pinning to avoid GC while in the c++ code */
- GCHandle pagesPtrStable;
- int[] page_list;
- page_list = new int[pages.Count];
-
- for (int kk = 0; kk < pages.Count; kk++)
- {
- SelectPage currpage = (SelectPage)pages[kk];
- page_list[kk] = currpage.Page;
- }
- pagesPtrStable = GCHandle.Alloc(page_list, GCHandleType.Pinned);
- tc_mExtractPages(infile, outfile, password, has_password, linearize,
- num_pages, pagesPtrStable.AddrOfPinnedObject());
- pagesPtrStable.Free();
- }
- else
- {
- tc_mExtractPages(infile, outfile, password, has_password, linearize,
- num_pages, IntPtr.Zero);
- }
- }
-
- public void PDFExtract(String infile, String outfile, String password,
- bool has_password, bool linearize, int num_pages, System.Collections.IList pages)
- {
- if (num_pages > 0)
- {
- /* We need to do an allocation for our array of page numbers and
- * perform pinning to avoid GC while in the c++ code */
- GCHandle pagesPtrStable;
- int[] page_list;
- page_list = new int[pages.Count];
-
- for (int kk = 0; kk < pages.Count; kk++)
- {
- SelectPage currpage = (SelectPage)pages[kk];
- page_list[kk] = currpage.Page;
- }
- pagesPtrStable = GCHandle.Alloc(page_list, GCHandleType.Pinned);
- tc_mExtractPages(infile, outfile, password, has_password, linearize,
- num_pages, pagesPtrStable.AddrOfPinnedObject());
- pagesPtrStable.Free();
- }
- else
- {
- tc_mExtractPages(infile, outfile, password, has_password, linearize,
- num_pages, IntPtr.Zero);
- }
- }
-
- public gsStatus ConvertSave(gsDevice_t device, String outputFile, int num_pages,
- System.Collections.IList pages, int resolution)
- {
- ConvertParams_t convertparams = new ConvertParams_t();
-
- convertparams.device = device;
- convertparams.outputfile = outputFile;
- convertparams.num_pages = num_pages;
- convertparams.resolution = resolution;
- convertparams.pages = pages;
- convertparams.currpage = 1;
- return ConvertMuPDF(convertparams);
- }
-
- /* Render page by page in background with progress call back */
- private gsStatus ConvertMuPDF(ConvertParams_t Params)
- {
- try
- {
- if (m_worker != null && m_worker.IsBusy)
- {
- m_worker.CancelAsync();
- return gsStatus.GS_BUSY;
- }
- if (m_worker == null)
- {
- m_worker = new BackgroundWorker();
- m_worker.WorkerReportsProgress = true;
- m_worker.WorkerSupportsCancellation = true;
- m_worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(MuPDFCompleted);
- m_worker.ProgressChanged += new ProgressChangedEventHandler(MuPDFProgressChanged);
- m_worker.DoWork += new DoWorkEventHandler(MuPDFWork);
- }
-
- m_params = Params;
- m_worker.RunWorkerAsync(Params);
- return gsStatus.GS_READY;
- }
- catch (OutOfMemoryException e)
- {
- Console.WriteLine("Memory allocation failed during mupdf rendering\n");
- return gsStatus.GS_ERROR;
- }
- }
-
- private void MuPDFCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- ConvertParams_t Value;
- muPDFEventArgs info;
-
- if (e.Cancelled)
- {
- Value = new ConvertParams_t();
- Value.result = GS_Result_t.gsCANCELLED;
- info = new muPDFEventArgs(true, 100, Value);
- }
- else
- {
- Value = (ConvertParams_t)e.Result;
- info = new muPDFEventArgs(true, 100, Value);
- }
- mupdfUpdateMain(this, info);
- }
-
- private void MuPDFProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- /* Callback with progress */
- ConvertParams_t Value = new ConvertParams_t();
- muPDFEventArgs info = new muPDFEventArgs(false, e.ProgressPercentage, Value);
- mupdfUpdateMain(this, info);
- }
-
- public void Cancel()
- {
- m_worker.CancelAsync();
- }
-
- /* ToDo: do we report pages that failed? or just push on */
- private void MuPDFWork(object sender, DoWorkEventArgs e)
- {
- ConvertParams_t muparams = (ConvertParams_t)e.Argument;
- String out_file = muparams.outputfile;
- int num_pages = muparams.num_pages;
- int resolution = muparams.resolution;
- var pages = muparams.pages;
- BackgroundWorker worker = sender as BackgroundWorker;
-
- muparams.result = GS_Result_t.gsOK;
-
- int result;
-
- for (int kk = 0; kk < num_pages; kk++)
- {
- SelectPage curr_page = (SelectPage)pages[kk];
- int page_num = curr_page.Page;
- bool append = (kk != 0);
-
- /* Look for file extension. */
- string extension = System.IO.Path.GetExtension(out_file);
- int len = extension.Length;
- String new_out_file = out_file.Substring(0, out_file.Length - len);
- String out_file_name = new_out_file + "_" + page_num + extension;
-
- /* Question: is lock valid when done from this worker thread? */
- switch (muparams.device)
- {
- case gsDevice_t.svg:
- lock (this.m_lock) /* Single-page format */
- result = tc_mSavePage(mu_object, out_file_name,
- page_num - 1, resolution, (int) mudevice_t.SVG_OUT,
- false);
- break;
- case gsDevice_t.pnm:
- lock (this.m_lock) /* Single-page format */
- result = tc_mSavePage(mu_object, out_file_name,
- page_num - 1, resolution, (int)mudevice_t.PNM_OUT,
- false);
- break;
- case gsDevice_t.pclbitmap: /* Multi-page format */
- lock (this.m_lock)
- result = tc_mSavePage(mu_object, out_file,
- page_num - 1, resolution, (int)mudevice_t.PCL_OUT,
- append);
- break;
- case gsDevice_t.pwg: /* Multi-page format */
- lock (this.m_lock)
- result = tc_mSavePage(mu_object, out_file,
- page_num - 1, resolution, (int)mudevice_t.PWG_OUT,
- append);
- break;
- }
- double prog = (double) (kk+1.0)/((double) num_pages) * 100.0;
- worker.ReportProgress((int)prog);
-
- if (worker.CancellationPending == true)
- {
- e.Cancel = true;
- muparams.result = GS_Result_t.gsCANCELLED;
- break;
- }
- }
- e.Result = muparams;
- return;
- }
- }
-}