Files
2026-07-13 13:13:17 +08:00

38 lines
1.6 KiB
C#

using System.IO;
using ImGuiNET;
using T3.Core.Operator;
using T3.Core.Operator.Interfaces;
using T3.Editor.Gui.Interaction;
using T3.Editor.Gui.OpUis.WidgetUi;
using T3.Editor.Gui.UiHelpers;
namespace T3.Editor.Gui.OpUis;
internal static class DescriptiveUi
{
internal static readonly DrawChildUiDelegate DrawChildUiDelegate = (Instance instance, ImDrawListPtr drawList, ImRect area, ScalableCanvas canvas, ref OpUiBinding data1)
=> DrawChildUi(instance, drawList, area, canvas, ref data1);
public static OpUi.CustomUiResult DrawChildUi(Instance instance, ImDrawListPtr drawList, ImRect area, ScalableCanvas canvas, ref OpUiBinding data1)
{
if(instance is not IDescriptiveFilename descriptiveGraphNode)
return OpUi.CustomUiResult.None;
drawList.PushClipRect(area.Min, area.Max, true);
// Label if instance has title
var symbolChild = instance.SymbolChild;
WidgetElements.DrawSmallTitle(drawList, area, !string.IsNullOrEmpty(symbolChild.Name) ? symbolChild.Name : symbolChild.Symbol.Name, canvas.Scale);
var slot = descriptiveGraphNode.SourcePathSlot;
var xxx = slot.GetCurrentValue();
var filePath = xxx != null ? Path.GetFileName(xxx) : "";
WidgetElements.DrawPrimaryValue(drawList, area, filePath, canvas.Scale);
drawList.PopClipRect();
return OpUi.CustomUiResult.Rendered | OpUi.CustomUiResult.PreventInputLabels | OpUi.CustomUiResult.AllowThumbnail;
}
}