Class MenuManagerWindow
Step-by-step window that manages every view reachable from the main menu, plus the project-wide menu
service settings singleton they depend on. Mirrors CreateHudWindow's information design (a master
list beside a detail pane, live validation cached once per frame, a Preview control under the breadcrumb)
generalized to a batch of separate assets rather than one asset's own element array — each
MenuDraft is its own scratch UnityMenuSettingsDefinition, so the list is a plain
List<T> rather than a UnityEditor.SerializedProperty array. The window only
collects input and renders results; MenuCreator does every asset mutation.
The stepped-wizard scaffolding — the header and breadcrumb, the body scroll, the footer and its error gate, and the select-and-ping a finished run ends with — comes from Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1; this window declares only its own step table, the preview launcher it draws under the breadcrumb, and what the primary action does.
Namespace: Serenity.Menu.Infrastructure.Editor.Builder
Assembly: Serenity.UnityMenu.Infrastructure.Editor.dll
Syntax
public sealed class MenuManagerWindow : SerenityStepWizardWindow<MenuManagerWindow.WizardStep>
Constructors
MenuManagerWindow()
Declaration
public MenuManagerWindow()
Properties
OwnedTargets
Declaration
protected override IEnumerable<SerenityWizardTargetAsset> OwnedTargets { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<SerenityWizardTargetAsset> |
PrimaryButtonLabel
Declaration
protected override string PrimaryButtonLabel { get; }
Property Value
| Type | Description |
|---|---|
| string |
WindowTitle
Declaration
protected override string WindowTitle { get; }
Property Value
| Type | Description |
|---|---|
| string |
Methods
BuildSteps()
Declaration
protected override WizardStepDescriptor<MenuManagerWindow.WizardStep>[] BuildSteps()
Returns
| Type | Description |
|---|---|
| WizardStepDescriptor<WizardStep>[] |
DrawUnderBreadcrumb()
The Preview control belongs under the breadcrumb and outside the body scroll, so it stays reachable from every step rather than scrolling away with the step it was drawn in.
Declaration
protected override void DrawUnderBreadcrumb()
OnBeforeDrawStep()
Adopts a target the Settings step picked and left in the same frame, re-points every
sibling transition target at its target's live id, then takes this frame's validation snapshot —
all before anything reads a step error, so the breadcrumb's own gate check sees this frame's
result, and so the scan runs exactly once per repaint (see CreateHudWindow's identical
rationale). The re-point has to happen before the first Serenity.Menu.Infrastructure.Editor.Builder.MenuDraftDetailGui.Draw(Serenity.Menu.Infrastructure.Editor.Builder.MenuDraft,System.Collections.Generic.IReadOnlyList{Serenity.Shared.Authoring.AuthoringIssue},System.Action,Serenity.Menu.Infrastructure.Editor.Builder.AuthoringFindingsGui.SeverityFilter@) of
the frame, whose own Update() would otherwise discard it.
Declaration
protected override void OnBeforeDrawStep()
OnFinishedRunPrimaryAction()
A finished run's "Create Another" is the Done step's own restart, which also disposes the run's menu drafts.
Declaration
protected override void OnFinishedRunPrimaryAction()
OnPrimaryAction()
Declaration
protected override void OnPrimaryAction()
Open()
Declaration
public static void Open()