|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#nullable disable
using System.Collections;
using System.ComponentModel.Design;
using System.Runtime.InteropServices;
namespace System.Drawing.Design;
/// <summary>
/// Provides access to the toolbox in the development environment.
/// </summary>
[ComImport]
[Guid("4BACD258-DE64-4048-BC4E-FEDBEF9ACB76")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IToolboxService
{
/// <summary>
/// Gets the names of all the tool categories currently on the toolbox.
/// </summary>
CategoryNameCollection CategoryNames { get; }
/// <summary>
/// Gets the name of the currently selected tool category from the toolbox.
/// </summary>
string SelectedCategory { get; set; }
/// <summary>
/// Adds a new toolbox item creator.
/// </summary>
void AddCreator(ToolboxItemCreatorCallback creator, string format);
/// <summary>
/// Adds a new toolbox item creator.
/// </summary>
void AddCreator(ToolboxItemCreatorCallback creator, string format, IDesignerHost host);
/// <summary>
/// Adds a new tool to the toolbox under the default category.
/// </summary>
void AddLinkedToolboxItem(ToolboxItem toolboxItem, IDesignerHost host);
/// <summary>
/// Adds a new tool to the toolbox under the specified category.
/// </summary>
void AddLinkedToolboxItem(ToolboxItem toolboxItem, string category, IDesignerHost host);
/// <summary>
/// Adds a new tool to the toolbox under the default category.
/// </summary>
void AddToolboxItem(ToolboxItem toolboxItem);
/// <summary>
/// Adds a new tool to the toolbox under the specified category.
/// </summary>
void AddToolboxItem(ToolboxItem toolboxItem, string category);
/// <summary>
/// Gets a toolbox item from a previously serialized object.
/// </summary>
ToolboxItem DeserializeToolboxItem(object serializedObject);
/// <summary>
/// Gets a toolbox item from a previously serialized object.
/// </summary>
ToolboxItem DeserializeToolboxItem(object serializedObject, IDesignerHost host);
/// <summary>
/// Get the currently selected tool.
/// </summary>
ToolboxItem GetSelectedToolboxItem();
/// <summary>
/// Get the currently selected tool.
/// </summary>
ToolboxItem GetSelectedToolboxItem(IDesignerHost host);
/// <summary>
/// Gets all .NET tools on the toolbox.
/// </summary>
ToolboxItemCollection GetToolboxItems();
/// <summary>
/// Gets all .NET tools on the toolbox.
/// </summary>
ToolboxItemCollection GetToolboxItems(IDesignerHost host);
/// <summary>
/// Gets all .NET tools on the toolbox for specific category.
/// </summary>
ToolboxItemCollection GetToolboxItems(string category);
/// <summary>
/// Gets all .NET tools on the toolbox for specific category.
/// </summary>
ToolboxItemCollection GetToolboxItems(string category, IDesignerHost host);
/// <summary>
/// Determines if the given designer host contains a designer that supports the serialized
/// toolbox item. This will return false if the designer doesn't support the item, or if the
/// serializedObject parameter does not contain a toolbox item.
/// </summary>
bool IsSupported(object serializedObject, IDesignerHost host);
/// <summary>
/// Determines if the serialized toolbox item contains a matching collection of filter attributes.
/// This will return false if the serializedObject parameter doesn't contain a toolbox item,
/// or if the collection of filter attributes does not match.
/// </summary>
bool IsSupported(object serializedObject, ICollection filterAttributes);
/// <summary>
/// Gets a value indicating whether the specified object contains a serialized toolbox item.
/// </summary>
bool IsToolboxItem(object serializedObject);
/// <summary>
/// Gets a value indicating whether the specified object contains a serialized toolbox item.
/// </summary>
bool IsToolboxItem(object serializedObject, IDesignerHost host);
/// <summary>
/// Refreshes the state of the toolbox items.
/// </summary>
void Refresh();
/// <summary>
/// Removes a previously added toolbox creator.
/// </summary>
void RemoveCreator(string format);
/// <summary>
/// Removes a previously added toolbox creator.
/// </summary>
void RemoveCreator(string format, IDesignerHost host);
/// <summary>
/// Removes the specified tool from the toolbox.
/// </summary>
void RemoveToolboxItem(ToolboxItem toolboxItem);
/// <summary>
/// Removes the specified tool from the toolbox.
/// </summary>
void RemoveToolboxItem(ToolboxItem toolboxItem, string category);
/// <summary>
/// Notifies the toolbox that the selected tool has been used.
/// </summary>
void SelectedToolboxItemUsed();
/// <summary>
/// Takes the given toolbox item and serializes it to a persistent object. This object can then
/// be stored in a stream or passed around in a drag and drop or clipboard operation.
/// </summary>
object SerializeToolboxItem(ToolboxItem toolboxItem);
/// <summary>
/// Sets the current application's cursor to a cursor that represents the
/// currently selected tool.
/// </summary>
/// <returns>bool</returns>
bool SetCursor();
/// <summary>
/// Sets the currently selected tool in the toolbox.
/// </summary>
void SetSelectedToolboxItem(ToolboxItem toolboxItem);
}
|