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(); } }