Foldout
See the FoldoutDemo class.
Gui.Heading("Foldouts");
// Returns true if expanded.
if (Gui.Foldout())
{
Gui.TextColorTexture(Properties.SampleTexture);
}
if (Gui.FoldoutTextButton("FoldoutTextButton"))
{
Gui.TextColorTexture(Properties.SampleTexture);
}
// Since the Id changes when the label is different, the WidgetId is specified and fixed.
// This allows the open/close state to remain fixed even if the label changes.
if (Gui.FoldoutTextButton("FoldoutTextButton:" + Time.frameCount % 100 / 10, new WidgetId(hash)))
{
Gui.TextColorTexture(Properties.SampleTexture);
}
if (Gui.FoldoutTextButton("HeaderFoldoutTextButton"))
{
Gui.TextColorTexture(Properties.SampleTexture);
}
if (Gui.FoldoutText("FoldoutText"))
{
Gui.TextColorTexture(Properties.SampleTexture);
}
isOpenFoldoutStatelessText = Gui.FoldoutStatelessText("FoldoutStatelessText", isOpenFoldoutStatelessText);
if (isOpenFoldoutStatelessText)
{
Gui.TextColorTexture(Properties.SampleTexture);
}
Gui.Heading("Tree using FoldoutText");
Gui.LabelDropdown(nameof(OverrideFoldoutStatus), ref overrideFoldoutStatus);
using var p = Style.Foldout.OverrideStatuses.Begin(overrideFoldoutStatus);
if (Gui.FoldoutText("0"))
{
using var indent1 = Ctx.Indent();
if (Gui.FoldoutText("1"))
{
using var indent2 = Ctx.Indent();
if (Gui.FoldoutText("2"))
{
Gui.TextColorTexture(Properties.SampleTexture);
}
}
}