Editor/Prism/Ui/PrismIcons.cs

Static class that lists string constants for Material Icons glyph names used by the Prism editor UI. It centralizes icon names for documentation and reuse across the editor.

File Access
namespace Editor.Prism.Ui;

/// <summary>
/// Every Material Icons glyph name Prism draws, in one place.
/// <para>
/// <c>Paint.DrawIcon</c> renders a name without a dot as a glyph from the "Material Icons" font, so a
/// typo produces a blank rectangle rather than a compile error. Naming them here means a typo happens
/// once, is found once, and never silently reappears in a fortieth call site.
/// </para>
/// </summary>
public static class PrismIcons
{
	// ---- documents and files ---------------------------------------------

	/// <summary>A shader graph document.</summary>
	public const string Graph = "account_tree";

	/// <summary>A subgraph / shader function document.</summary>
	public const string Subgraph = "hub";

	/// <summary>Generated code.</summary>
	public const string Code = "code";

	/// <summary>Save.</summary>
	public const string Save = "save";

	/// <summary>Open.</summary>
	public const string Open = "folder_open";

	// ---- graph editing ---------------------------------------------------

	/// <summary>Add anything.</summary>
	public const string Add = "add";

	/// <summary>Delete.</summary>
	public const string Delete = "delete";

	/// <summary>Cut.</summary>
	public const string Cut = "content_cut";

	/// <summary>Copy.</summary>
	public const string Copy = "content_copy";

	/// <summary>Paste.</summary>
	public const string Paste = "content_paste";

	/// <summary>Duplicate.</summary>
	public const string Duplicate = "control_point_duplicate";

	/// <summary>Undo.</summary>
	public const string Undo = "undo";

	/// <summary>Redo.</summary>
	public const string Redo = "redo";

	/// <summary>A reroute node.</summary>
	public const string Reroute = "route";

	/// <summary>A comment or group box.</summary>
	public const string Comment = "notes";

	/// <summary>A sticky note.</summary>
	public const string Note = "sticky_note_2";

	/// <summary>Group the selection.</summary>
	public const string Group = "select_all";

	/// <summary>Collapse to a subgraph.</summary>
	public const string Collapse = "unfold_less";

	/// <summary>Expand a subgraph in place.</summary>
	public const string Expand = "unfold_more";

	/// <summary>Disconnect a wire.</summary>
	public const string Disconnect = "link_off";

	/// <summary>Connect a wire.</summary>
	public const string Connect = "link";

	/// <summary>Reset a value to its default.</summary>
	public const string Reset = "restart_alt";

	// ---- node card chrome ------------------------------------------------

	/// <summary>Per-node preview is enabled.</summary>
	public const string Preview = "visibility";

	/// <summary>Per-node preview is disabled.</summary>
	public const string PreviewOff = "visibility_off";

	/// <summary>The node is pinned.</summary>
	public const string Pinned = "push_pin";

	/// <summary>The node is excluded from compilation.</summary>
	public const string Disabled = "block";

	/// <summary>The node card is collapsed.</summary>
	public const string Collapsed = "expand_more";

	/// <summary>The node card is expanded.</summary>
	public const string Expanded = "expand_less";

	/// <summary>An error badge.</summary>
	public const string Error = "error";

	/// <summary>A warning badge.</summary>
	public const string Warning = "warning";

	/// <summary>An informational badge.</summary>
	public const string Info = "info";

	/// <summary>A node type that is not registered.</summary>
	public const string Missing = "help_outline";

	/// <summary>A node that is only valid in the vertex stage.</summary>
	public const string StageVertex = "change_history";

	/// <summary>A node that is only valid in the pixel stage.</summary>
	public const string StagePixel = "grid_on";

	// ---- canvas chrome ---------------------------------------------------

	/// <summary>Fit the whole graph in view.</summary>
	public const string Fit = "fit_screen";

	/// <summary>Frame the selection.</summary>
	public const string Frame = "center_focus_strong";

	/// <summary>Zoom in.</summary>
	public const string ZoomIn = "zoom_in";

	/// <summary>Zoom out.</summary>
	public const string ZoomOut = "zoom_out";

	/// <summary>Snap to grid.</summary>
	public const string Snap = "grid_4x4";

	/// <summary>Wire style.</summary>
	public const string WireStyle = "timeline";

	/// <summary>Align.</summary>
	public const string Align = "align_horizontal_left";

	/// <summary>Distribute.</summary>
	public const string Distribute = "horizontal_distribute";

	/// <summary>Automatic layout.</summary>
	public const string AutoLayout = "auto_awesome_mosaic";

	/// <summary>Search.</summary>
	public const string Search = "search";

	// ---- data ------------------------------------------------------------

	/// <summary>A blackboard parameter.</summary>
	public const string Parameter = "tune";

	/// <summary>A keyword / combo.</summary>
	public const string Keyword = "call_split";

	/// <summary>A texture.</summary>
	public const string Texture = "image";

	/// <summary>A sampler.</summary>
	public const string Sampler = "filter";

	/// <summary>A colour value.</summary>
	public const string Color = "palette";

	/// <summary>A boolean value.</summary>
	public const string Boolean = "toggle_on";

	/// <summary>A numeric value.</summary>
	public const string Number = "123";

	/// <summary>A vector value.</summary>
	public const string Vector = "open_with";

	/// <summary>A type conversion happens on this wire.</summary>
	public const string Conversion = "swap_horiz";
}