summaryrefslogtreecommitdiff
path: root/print/v4PrintDriverSamples/PrinterExtensionSample/ExtensionSample/PrintSchemaHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'print/v4PrintDriverSamples/PrinterExtensionSample/ExtensionSample/PrintSchemaHelper.cs')
-rw-r--r--print/v4PrintDriverSamples/PrinterExtensionSample/ExtensionSample/PrintSchemaHelper.cs190
1 files changed, 0 insertions, 190 deletions
diff --git a/print/v4PrintDriverSamples/PrinterExtensionSample/ExtensionSample/PrintSchemaHelper.cs b/print/v4PrintDriverSamples/PrinterExtensionSample/ExtensionSample/PrintSchemaHelper.cs
deleted file mode 100644
index e9201162..00000000
--- a/print/v4PrintDriverSamples/PrinterExtensionSample/ExtensionSample/PrintSchemaHelper.cs
+++ /dev/null
@@ -1,190 +0,0 @@
-// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
-// PARTICULAR PURPOSE.
-//
-// Copyright (c) Microsoft Corporation. All rights reserved
-//
-//
-// Abstract:
-//
-// This file contains helper methods that provide a data-binding friendly way to access PrintSchema APIs.
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using System.Runtime.InteropServices;
-
-using Microsoft.Samples.Printing.PrinterExtension.Types;
-
-namespace Microsoft.Samples.Printing.PrinterExtension.Helpers
-{
- /// <summary>
- /// Contains helper methods that provide a data-binding friendly way to access PrintSchema APIs.
- /// </summary>
- public class PrintSchemaHelper
- {
- /// <summary>
- /// Constructor. Warning constructing this object is expensive, and is best performed
- /// asynchronously.
- /// </summary>
- /// <param name="ticket">The print ticket for which features/options will be retrieved</param>
- /// <param name="featureNameCollection">List of features requested</param>
- internal PrintSchemaHelper(IPrintSchemaTicket ticket, IEnumerable<String> featureNameCollection)
- {
- _ticket = ticket;
- _featureNameCollection = featureNameCollection;
- _capabilities = _ticket.GetCapabilities();
- }
-
- /// <summary>
- /// Retrieve the list of features from the current print ticket.
- /// </summary>
- public List<PrintSchemaFeatureHelper> Features
- {
- get
- {
- _featureHelperCollection = new List<PrintSchemaFeatureHelper>();
-
- //
- // Retrieve the list of features supported by the driver
- //
-
- foreach (string name in _featureNameCollection)
- {
- //
- // If the feature is not present in the print ticket or the print capabilities,
- // ignore it and continue.
- //
-
- IPrintSchemaFeature ticketFeature = _ticket.GetFeatureByKeyName(name);
- if (ticketFeature == null)
- {
- continue;
- }
-
- IPrintSchemaFeature capabilitiesFeature = _capabilities.GetFeatureByKeyName(name);
- if (capabilitiesFeature == null)
- {
- continue;
- }
-
- // If the feature is not meant to be displayed on the UI, ignore it and continue.
- if (!capabilitiesFeature.DisplayUI)
- {
- continue;
- }
-
- _featureHelperCollection.Add(new PrintSchemaFeatureHelper(ticketFeature, _capabilities, capabilitiesFeature));
- }
-
- return _featureHelperCollection;
- }
- }
-
- /// <summary>
- /// List of features requested.
- /// </summary>
- private IEnumerable<string> _featureNameCollection;
-
- /// <summary>
- /// Helper objects that wrap an IPrintSchemaFeature object.
- /// </summary>
- private List<PrintSchemaFeatureHelper> _featureHelperCollection = null;
-
- /// <summary>
- /// Print ticket passed into this class.
- /// </summary>
- private IPrintSchemaTicket _ticket = null;
-
- /// <summary>
- /// Print capabilities object.
- /// </summary>
- private IPrintSchemaCapabilities _capabilities = null;
- }
-
- /// <summary>
- /// Contains helper methods that provide a data-binding friendly way to access IPrintSchemaFeature APIs.
- ///
- /// Note: This sample does not handle Print Ticket/Print Capabilities Options which rely on parameters to
- /// be specified, such as psk:Custom , psk:CustomSquare, or psk:CustomMediaSize. If these options are
- /// supported by compatible print drivers, then the printer extension should be modified to support them
- /// appropriately.
- /// </summary>
- public class PrintSchemaFeatureHelper
- {
- /// <summary>
- /// Constructor
- /// </summary>
- /// <param name="ticketFeature">Object retrieved via a call to IPrintSchemaTicket::GetFeature/GetFeatureByKeyName</param>
- /// <param name="capabilities">Print capabilities object</param>
- /// <param name="capabilitiesFeature">Object retrieved via a call to IPrintSchemaCapabilities::GetFeature/GetFeatureByKeyName</param>
- internal PrintSchemaFeatureHelper(IPrintSchemaFeature ticketFeature, IPrintSchemaCapabilities capabilities, IPrintSchemaFeature capabilitiesFeature)
- {
- //
- // Populate the properties exposed by this class.
- //
-
- DisplayName = capabilitiesFeature.DisplayName;
- Options = new List<IPrintSchemaOption>(capabilities.GetOptions(ticketFeature));
-
- foreach (IPrintSchemaOption option in Options)
- {
- if (option.Selected)
- {
- _selectedOption = option;
- break;
- }
- }
-
- _printTicketFeature = ticketFeature;
- }
-
- /// <summary>
- /// Returns the display name for the current IPrintSchemaFeature object.
- /// </summary>
- public string DisplayName
- {
- get;
- private set;
- }
-
- /// <summary>
- /// Retrieve the list of options supported for the current feature.
- /// </summary>
- public List<IPrintSchemaOption> Options
- {
- get;
- private set;
- }
-
- /// <summary>
- /// A 'get' invocation on this property returns the selected option for this print ticket feature.
- /// A 'set' invocation on this property sets the selected option for this print ticket feature.
- /// </summary>
- public IPrintSchemaOption SelectedOption
- {
- get
- {
- return _selectedOption;
- }
- set
- {
- _selectedOption = value;
- _printTicketFeature.SelectedOption = _selectedOption;
- }
- }
-
- /// <summary>
- /// Feature object retrieved from the print ticket.
- /// </summary>
- private IPrintSchemaFeature _printTicketFeature = null;
-
- /// <summary>
- /// Selected option for the print ticket feature.
- /// </summary>
- private IPrintSchemaOption _selectedOption = null;
-
- }
-}