using System.Collections.Generic;
using System.Drawing;
using System.Reflection;
using System.Resources;
using Mono.Addins;
namespace Core.Common.Base
{
[TypeExtensionPoint]
public interface IPlugin
{
///
/// Gets the name of the plugin.
/// The name.
string Name { get; }
///
/// Gets the name of the plugin as displayed in the Gui.
/// The name.
string DisplayName { get; }
///
/// Gets the description.
/// The description.
string Description { get; }
///
/// Gets the version of the plugin.
/// The version.
string Version { get; }
///
/// Gets a value indicating whether the plugin is active.
/// true if this instance is active; otherwise, false.
bool IsActive { get; }
///
/// Image for displaying in gui. Default format 32x32 bitmap or scalable.
///
Image Image { get; }
///
/// ResourceManger of plugin. Default Properties.Resources.
///
ResourceManager Resources { get; set; }
///
/// Activates the plugin.
///
void Activate();
///
/// Deactivates the plugin.
///
void Deactivate();
// TODO: check if we can remove it
IEnumerable GetPersistentAssemblies();
}
}