using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
using FastReport.Forms;
using FastReport.Utils;
namespace FastReport.Design
{
///
/// Provides functionality required for report designer plugins such as toolbars and toolwindows.
///
public interface IDesignerPlugin
{
///
/// Gets the plugin name.
///
string PluginName
{
get;
}
///
/// Saves the plugin state.
///
/// This example shows how to save the state:
///
/// public void SaveState()
/// {
/// XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name);
/// xi.SetProp("ShowGrid", DialogWorkspace.ShowGrid ? "1" : "0");
/// }
///
///
void SaveState();
///
/// Restores the plugin state.
///
/// This example shows how to restore the state:
///
/// public void RestoreState()
/// {
/// XmlItem xi = Config.Root.FindItem("Designer").FindItem(Name);
/// DialogWorkspace.ShowGrid = xi.GetProp("ShowGrid") != "0";
/// }
///
///
void RestoreState();
///
/// Updates plugin state when current selection was changed.
///
///
/// Typically you need to do the same work in the and
/// methods.
///
void SelectionChanged();
///
/// Updates plugin state when the report was modified.
///
///
/// Typically you need to do the same work in the and
/// methods.
///
void UpdateContent();
///
/// Locks the plugin.
///
///
/// This method is called by the designer when report is loading. It may be needed to disable
/// some operations (like painting) that use the report.
///
void Lock();
///
/// Unlocks the plugin.
///
/// This method is called by the designer when report is loaded. It follows the Lock
/// method call and must reset the lock.
void Unlock();
///
/// Localizes the plugin.
///
///
/// This method is called by the designer when current localization is changed.
///
void Localize();
///
/// Gets an options page that will be used in the Designer Options dialog to edit the plugin options.
///
/// The options page, if implemented; otherwise, null.
DesignerOptionsPage GetOptionsPage();
///
/// Updates UI style of the plugin.
///
///
/// The plugin should update its style according to the designer's UIStyle property.
///
void UpdateUIStyle();
///
/// Updates layout on dpi change.
///
void UpdateDpiDependencies();
}
}