Namespace Serenity.Ui.Installation.Editor.Settings.Builder
Classes
AchievementsThemeRetrofitter
Adds a generated Achievements.prefab to an already-shipped theme that predates the achievements
chrome slot, wiring it into AchievementsTemplate.
AchievementsThemeRetrofitter.RetrofitReport
Result of a batch retrofit run: which themes changed, which were already up to date, and any failures.
CreateThemeWindow
Stepped wizard (Tools ▸ Serenity ▸ UI ▸ Theme Builder) that generates a complete UI theme — every component prefab plus the UnityUiThemeDefinition asset — from scratch, so a project that doesn't have the sample themes imported (e.g. an Asset Store consumer) can still get a working theme.
The stepped-wizard scaffolding — the titled header and clickable breadcrumb, the body scroll, the footer and its forward-navigation error gate — comes from Serenity.Global.Infrastructure.Editor.SerenityStepWizardWindow`1; this window declares only its own step table, the persistent schematic preview strip it draws above the footer, and what the primary action does. The shared breadcrumb this window now draws through is the one that was extracted FROM it, so it is the same chrome coming back: same accent tint, same "Step N of M" line, same rule. Two things it does not reproduce, both of them the shared control's own rules — a visited step's button reads "✓ Identity" and is tinted from the shared Success green rather than this window's own slightly lighter one, and a forward breadcrumb jump past a step that is currently reporting an error is now refused instead of allowed. All asset mutation still happens in Serenity.Ui.Installation.Editor.Settings.Builder.ThemeCreator.
CreateUiSettingsWindow
Step-by-step window for creating (or updating) the project-wide UnityUiSettings asset. 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 and what the primary action does. Get-or-create target resolution goes through Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAsset and Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAssetGui. The window only collects input and renders results; UiSettingsCreator does the actual validation and generation work.
LeaderboardThemeRetrofitter
Adds a generated Leaderboard.prefab to an already-shipped theme that predates the leaderboard
chrome slot, wiring it into LeaderboardTemplate.
LeaderboardThemeRetrofitter.RetrofitReport
Result of a batch retrofit run: which themes changed, which were already up to date, and any failures.
SerenityThemeBuilderReport
Result of CreateFromJson(string), mirroring Serenity.Ui.Installation.Editor.Settings.Builder.ThemeCreator.Result for headless/agent consumption: what was created, what was skipped, and why it failed if it did.
SerenityThemeBuilderRunner
Headless / JSON entry points for Serenity.Ui.Installation.Editor.Settings.Builder.ThemeCreator, mirroring
SerenityProjectValidationRunner so CI or an AI agent can generate a complete theme without the
CreateThemeWindow wizard — either from the command line (CreateFromCommandLine())
or, with the editor already open, by calling CreateFromJson(string) directly (e.g. via UnityMCP
reflection). Hosted in this assembly because it needs Serenity.Ui.Installation.Editor.Settings.Builder.ThemeCreator's internal Input
DTO and Serenity.Ui.Installation.Editor.Settings.Builder.ThemeSpriteSlot.
SpriteBorderWriter
Reads and writes a UnityEngine.Sprite's 9-slice border through its UnityEditor.TextureImporter, so a wizard or designer can generate a Sliced-mode Image against a sprite that was never manually sliced. Every entry point is non-throwing: a sprite that cannot carry borders (built-in, procedural, or part of a Multiple-mode atlas) is skipped with a warning string instead of failing the whole caller over one sprite.
ThemeComponentRetrofitReport
Result of a batch retrofit run: which themes changed, which were already up to date, and any failures.
Enums
CreateThemeWindow.WizardStep
Public rather than private because C# requires a class's base type to be at least as accessible as the class itself, and this enum is that base type's argument.
CreateUiSettingsWindow.WizardStep
Public rather than private because C# requires a class's base type to be at least as accessible as the class itself, and this enum is that base type's argument.