/* * Greenshot - a free and open source screenshot tool * Copyright (C) 2007-2015 Thomas Braun, Jens Klingen, Robin Krom * * For more information see: http://getgreenshot.org/ * The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/greenshot/ * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace Greenshot.Plugin { public class ExportInformation { private string uri; private string filepath; private bool exportMade; private readonly string destinationDesignation; private string destinationDescription; private string errorMessage; public ExportInformation(string destinationDesignation, string destinationDescription) { this.destinationDesignation = destinationDesignation; this.destinationDescription = destinationDescription; } public ExportInformation(string destinationDesignation, string destinationDescription, bool exportMade) : this(destinationDesignation, destinationDescription) { this.exportMade = exportMade; } public string DestinationDesignation { get { return destinationDesignation; } } public string DestinationDescription { get { return destinationDescription; } set { destinationDescription = value; } } /// /// Set to true to specify if the export worked. /// public bool ExportMade { get { return exportMade; } set { exportMade = value; } } public string Uri { get { return uri; } set { uri = value; } } public string ErrorMessage { get { return errorMessage; } set { errorMessage = value; } } public string Filepath { get { return filepath; } set { filepath = value; } } } /// /// Description of IDestination. /// public interface IDestination : IDisposable, IComparable { /// /// Simple "designation" like "File", "Editor" etc, used to store the configuration /// string Designation { get; } /// /// Description which will be shown in the settings form, destination picker etc /// string Description { get; } /// /// Priority, used for sorting /// int Priority { get; } /// /// Gets an icon for the destination /// Image DisplayIcon { get; } /// /// Returns if the destination is active /// bool isActive { get; } /// /// Return a menu item /// /// Resolve the dynamic destinations too? /// The menu for which the item is created /// Handler which is called when clicked /// ToolStripMenuItem ToolStripMenuItem GetMenuItem(bool addDynamics, ContextMenuStrip menu, EventHandler destinationClickHandler); /// /// Gets the ShortcutKeys for the Editor /// Keys EditorShortcutKeys { get; } /// /// Gets the dynamic destinations /// IEnumerable DynamicDestinations(); /// /// Returns true if this destination can be dynamic /// bool isDynamic { get; } /// /// Returns if the destination is active /// bool useDynamicsOnly { get; } /// /// Returns true if this destination returns a link /// bool isLinkable { get; } /// /// If a capture is made, and the destination is enabled, this method is called. /// /// true if the user selected this destination from a GUI, false if it was called as part of a process /// /// /// DestinationExportInformation with information, like if the destination has "exported" the capture ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails); } }