Documentation Index
Fetch the complete documentation index at: https://mintlify.com/DevToys-app/DevToys/llms.txt
Use this file to discover all available pages before exploring further.
IGuiTool is the core interface every DevToys GUI extension must implement. It signals to the DevToys host that your class is a graphical tool, requires you to expose a root UIToolView that becomes the tool’s UI, and optionally lets Smart Detection route clipboard-detected data directly into your tool via OnDataReceived. Every implementation must be exported with MEF attributes that supply display metadata, icons, grouping, and optional platform restrictions.
Namespace: DevToys.Api
Interface Declaration
Members
Gets the root view for the tool. This property is called once when the user first navigates to your tool. Return a
UIToolView instance that wraps your top-level IUIElement layout.Set IsScrollable = false on the returned UIToolView when your tool should fill the available window space rather than scroll (for example, a diff viewer or a canvas-based tool).Invoked when the app has detected clipboard data whose type is compatible with this tool and the user has navigated to the tool. The expected behavior is to push
parsedData into the appropriate IUIElement that accepts it.| Parameter | Type | Description |
|---|---|---|
dataTypeName | string | The data type name as declared by [AcceptedDataTypeName] on this tool. |
parsedData | object? | The parsed value returned by the matching IDataTypeDetector. May be null. |
OnDataReceived is only called for data type names you explicitly declare on your tool class using [AcceptedDataTypeName("...")]. Without that attribute the method is never invoked.Full Example
The snippet below shows every optional attribute you can apply alongside the two required MEF attributes ([Export] and [Name]).
Implementation Notes
- Resource assembly — The
ResourceManagerAssemblyIdentifierproperty on[ToolDisplayInformation]must match the[Name]value of your exportedIResourceAssemblyIdentifier. See IResourceAssemblyIdentifier for details. - UIToolView scrollability — Constructors
new UIToolView(isScrollable, rootElement)let you opt out of scrolling. Tools like editors or split-pane viewers typically setisScrollable: false. - Smart Detection — To receive data, also decorate your tool with
[AcceptedDataTypeName("your-type")]. The matching detector’s parsed result is passed asparsedData.