载入中...
搜索中...
未找到
UiTheme.cpp
浏览该文件的文档.
44 return eve::editing::failed<UiThemeAsset>(EditorStatus::Rejected, RuleId("editor.ui-theme.asset"),
58Result<void> parseCatalog(const EditorValue& content, std::vector<UiThemeAsset>& themes, ObjectId& activeId) {
118Result<DomainOperation> UiThemeCatalogTarget::replacement(EditorValue content, std::string property) const {
159 diagnostics.push_back(diagnostic("editor.ui-theme.empty", "Theme catalog must contain at least one asset"));
161 diagnostics.push_back(diagnostic("editor.ui-theme.budget", "Theme catalog exceeds 32 named assets"));
167 diagnostics.push_back(diagnostic("editor.ui-theme.id", "Theme asset id is empty or duplicated"));
169 diagnostics.push_back(diagnostic("editor.ui-theme.name", "Theme asset name is empty or duplicated"));
203Result<void> UiThemeCatalogTarget::commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) {
212Result<DomainOperation> UiThemeCatalogTarget::makeCreateFromPreset(const ObjectId& id, std::string name,
215 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.ui-theme.create"),
218 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.ui-theme.preset-source"),
221 std::any_of(themes_.begin(), themes_.end(), [&](const UiThemeAsset& asset) { return asset.name == name; }))
222 return eve::editing::failed<DomainOperation>(EditorStatus::Conflict, RuleId("editor.ui-theme.exists"),
237Result<DomainOperation> UiThemeCatalogTarget::makeDuplicate(const ObjectId& source, const ObjectId& id,
241 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.ui-theme.missing"),
244 std::any_of(themes_.begin(), themes_.end(), [&](const UiThemeAsset& asset) { return asset.name == name; }))
245 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.ui-theme.duplicate"),
259Result<DomainOperation> UiThemeCatalogTarget::makeRename(const ObjectId& id, std::string name) const {
262 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.ui-theme.missing"),
265 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.ui-theme.empty-name"),
278 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.ui-theme.missing"),
281 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.ui-theme.last"),
304 return eve::editing::failed<DomainOperation>(EditorStatus::NotFound, RuleId("editor.ui-theme.missing"),
323 return eve::editing::failed<void>(EditorStatus::Unsupported, RuleId("editor.ui-theme.snapshot"),
std::unordered_map< const Graphics *, std::shared_ptr< Lifetime > > tokens
Definition GraphicsLifetime.cpp:13
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
void bumpRevision()
Advance the revision without touching the dirty region.
Definition EditableTarget.h:179
Revision revisionValue() const noexcept
Return the revision as the shared protocol revision type.
Definition EditableTarget.h:169
void widenDirty()
Mark an unknown area dirty without advancing the revision.
Definition EditableTarget.h:177
eve::OptionalRef< C > capability()
Query a capability through its interface-owned stable identity.
Definition EditableTarget.h:82
virtual void clearDirtyRegion()=0
Clears dirty region.
Optional capability exposing a deterministic, persistence-safe editing snapshot.
Definition EditableTarget.h:247
static CapabilityId editingCapabilityId()
Stable capability identity shared by every editable domain target.
Definition EditableTarget.h:252
UI-independent property access for an immutable selection snapshot.
Definition EditingProperty.h:139
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
Serializable catalog of named UI themes with one active publication slot.
Definition UiTheme.h:60
void * queryCapability(const CapabilityId &capability) override
Query Inspector and snapshot capabilities.
Definition UiTheme.cpp:104
Result< DomainOperation > makeDelete(const ObjectId &id) const
Make delete.
Definition UiTheme.cpp:276
Result< DomainOperation > makeSetActive(const ObjectId &id) const
Make set active.
Definition UiTheme.cpp:292
Result< DomainOperation > makeResetToBase(const ObjectId &id) const
Make reset to base.
Definition UiTheme.cpp:301
std::string runtimeName(const ObjectId &id) const
Runtime name written to ui::globalThemeName(): dark, light, or custom.
Definition UiTheme.cpp:151
Result< DomainOperation > makeRename(const ObjectId &id, std::string name) const
Make rename.
Definition UiTheme.cpp:259
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget > candidate) override
Commits domain state.
Definition UiTheme.cpp:203
Result< void > applyDomainOperation(const DomainOperation &operation) override
Applies domain operation.
Definition UiTheme.cpp:179
UiThemeCatalogTarget(std::string id)
Construct a catalog seeded with built-in dark and light assets.
Definition UiTheme.cpp:80
Result< UiThemeAsset > theme(const ObjectId &id) const
Copy one named theme, or NotFound.
Definition UiTheme.cpp:143
Result< DomainOperation > makeCreateFromPreset(const ObjectId &id, std::string name, UiThemeBasePreset preset) const
Make create from preset.
Definition UiTheme.cpp:212
static CapabilityId propertyCapabilityId()
Inspector capability published by describe().
Definition UiTheme.h:69
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition UiTheme.cpp:199
const std::vector< UiThemeAsset > & themes() const noexcept
Borrow authored themes in catalog order.
Definition UiTheme.h:91
Result< DomainOperation > makeDuplicate(const ObjectId &source, const ObjectId &id, std::string name) const
Make duplicate.
Definition UiTheme.cpp:237
editing::DomainOperation DomainOperation
Definition ArchSpaceTarget.h:19
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
Definition UiDocument.cpp:9
ui::Theme themeFromPreset(UiThemeBasePreset preset)
Theme from preset.
Definition UiThemeTokens.cpp:370
std::vector< EditorDiagnostic > validateThemeTokens(const ui::Theme &theme)
Validate theme tokens.
Definition UiThemeTokens.cpp:345
Result< UiThemeBasePreset > parsePreset(const std::string &name)
Parse preset.
Definition UiThemeTokens.cpp:383
Result< ui::Theme > parseThemeTokens(const EditorValue &value)
Parse theme tokens.
Definition UiThemeTokens.cpp:209
EditorValue themeTokensValue(const ui::Theme &theme)
Theme tokens value.
Definition UiThemeTokens.cpp:197
WidgetDesc list(std::string listId, const std::vector< std::string > &items, const std::function< WidgetDesc(const std::string &, int)> &itemFn)
Expand a string list into a Group of item widgets. itemFn(label, index) builds each row; keys default...
Definition Widget.cpp:715
@ InvalidArgument
Definition Container.h:602
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39
static Theme dark()
Built-in presets with matching geometry; only colors differ.
Definition Theme.cpp:174