载入中...
搜索中...
未找到
EditorWorkspace.cpp
浏览该文件的文档.
34EditorWorkspace::EditorWorkspace(std::string id, std::string title) : id_(std::move(id)), title_(std::move(title)) {}
42bool EditorWorkspace::registerPanel(const std::string& id, const std::string& title, const std::string& region,
48Result<WorkspacePanelDescriptor> EditorWorkspace::registerPanel(WorkspacePanelDescriptor descriptor) {
51 EditorStatus::Rejected, RuleId("editor.workspace.empty-panel-id"), "Workspace panel id must not be empty");
78 const auto found = std::find_if(panels_.begin(), panels_.end(), [&](const auto& panel) { return panel.id == id.value(); });
85 if (activePanel_ == id.value()) activePanel_ = panels_.empty() ? std::string{} : panels_.front().id;
102Result<WorkspacePanelDescriptor> EditorWorkspace::movePanel(const StableId& id, WorkspaceRegion region,
124 EditorStatus::NotFound, RuleId("editor.workspace.panel-index"), "Workspace panel index is out of range");
235float EditorWorkspace::getRegionX(const std::string& region) const { return dock_.getRegionX(region); }
236float EditorWorkspace::getRegionY(const std::string& region) const { return dock_.getRegionY(region); }
237float EditorWorkspace::getRegionW(const std::string& region) const { return dock_.getRegionW(region); }
238float EditorWorkspace::getRegionH(const std::string& region) const { return dock_.getRegionH(region); }
246 return eve::editing::failed<StableId>(EditorStatus::Rejected, RuleId("editor.workspace.empty-mode"),
256bool EditorWorkspace::select(const std::string& channel, const std::string& domain, const std::string& target,
259 if (channel.empty() || target.empty() || item.empty() || !parseDomain(domain, parsed)) return false;
260 return selectItem(channel, SelectionItem{parsed, TargetId(target), StableId(item), type}, additive).ok();
263Result<SelectionSnapshot> EditorWorkspace::selectItem(std::string channel, SelectionItem selected,
314bool EditorWorkspace::focus(const std::string& channel, const std::string& surface, const std::string& item) {
318Result<EditorFocusSnapshot> EditorWorkspace::focusItem(const std::string& channel, StableId surface,
330 return region == "left" || region == "right" || region == "top" || region == "bottom" || region == "center" ||
353 const auto found = std::find_if(panels_.begin(), panels_.end(), [&](const auto& panel) { return panel.id == id; });
358 return index >= 0 && index < static_cast<int>(panels_.size()) ? &panels_[static_cast<std::size_t>(index)] : nullptr;
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
const std::string & value() const noexcept
Returns the exact legacy or canonical compatibility spelling.
Definition Identity.h:362
bool empty() const noexcept
True when no compatibility spelling has been assigned.
Definition Identity.h:374
void setRegionSize(const std::string ®ion, float pixels)
Sets the region size.
Definition EditorDock.cpp:14
EditorFocusSnapshot snapshot(const std::string &channel) const
Read the current focus of one channel.
Definition EditorSelection.cpp:62
Result< EditorFocusSnapshot > focus(std::string channel, StableId surface, StableId item={})
Set the focused surface/item for one channel.
Definition EditorSelection.cpp:49
Result< SelectionSnapshot > clear(const std::string &channel)
Clear a channel while retaining a monotonic sequence.
Definition EditorSelection.cpp:29
SelectionSnapshot snapshot(const std::string &channel) const
Read one channel, returning an empty sequence-zero snapshot when absent.
Definition EditorSelection.cpp:31
Result< SelectionSnapshot > set(std::string channel, std::vector< SelectionItem > items, std::optional< SelectionItem > primary=std::nullopt)
Atomically replace a channel selection and optional primary item.
Definition EditorSelection.cpp:7
std::string getPrimarySelection(const std::string &channel) const
Primary selected item id for a channel.
Definition EditorWorkspace.cpp:305
std::string getFocusedSurface(const std::string &channel) const
Focused surface id for a channel.
Definition EditorWorkspace.cpp:325
bool getPanelSingleton(int index) const
Panel singleton policy by deterministic index.
Definition EditorWorkspace.cpp:223
std::uint64_t getSelectionSequence(const std::string &channel) const
Monotonic selection sequence for MVVM change detection.
Definition EditorWorkspace.cpp:310
Result< WorkspacePanelDescriptor > panelAt(std::size_t index) const
Return an owning panel snapshot instead of an ambiguous empty field.
Definition EditorWorkspace.cpp:121
std::string getPanelCapability(int index) const
Panel capability requirement by deterministic index.
Definition EditorWorkspace.cpp:203
std::string getPanelRegion(int index) const
Panel dock region by deterministic index.
Definition EditorWorkspace.cpp:198
float getRegionH(const std::string ®ion) const
Computed region height.
Definition EditorWorkspace.cpp:238
std::string getPanelContext(int index) const
Panel input context by deterministic index.
Definition EditorWorkspace.cpp:208
Result< WorkspacePanelDescriptor > removePanel(const StableId &id)
Remove a panel and return its final owning descriptor.
Definition EditorWorkspace.cpp:77
bool setPanelContext(const std::string &id, const std::string &context)
Attach a semantic input context such as scene, graph, or timeline.
Definition EditorWorkspace.cpp:137
Result< EditorFocusSnapshot > focusItem(const std::string &channel, StableId surface, StableId item)
Focus a strongly identified surface and item without discarding diagnostics.
Definition EditorWorkspace.cpp:318
std::string getPanelTitle(int index) const
Panel title by deterministic index.
Definition EditorWorkspace.cpp:193
bool focus(const std::string &channel, const std::string &surface, const std::string &item)
Set UI-toolkit-independent focus for a channel.
Definition EditorWorkspace.cpp:314
Result< SelectionSnapshot > selectItem(std::string channel, SelectionItem item, bool additive)
Select one already typed item without string domain parsing.
Definition EditorWorkspace.cpp:263
std::string getSelectionItem(const std::string &channel, int index) const
Selected stable item id by channel/index.
Definition EditorWorkspace.cpp:291
Result< WorkspacePanelDescriptor > registerPanel(WorkspacePanelDescriptor descriptor)
Register a checked owning panel descriptor.
Definition EditorWorkspace.cpp:48
void setTitle(const std::string &title)
Change the display title without changing workspace identity.
Definition EditorWorkspace.cpp:36
std::string getSelectionType(const std::string &channel, int index) const
Selected item type by channel/index.
Definition EditorWorkspace.cpp:298
bool select(const std::string &channel, const std::string &domain, const std::string &target, const std::string &item, const std::string &type, bool additive)
Select one stable item in a semantic channel.
Definition EditorWorkspace.cpp:256
bool setMode(const std::string &mode)
Set a project-defined mode such as edit, play, material, or animation.
Definition EditorWorkspace.cpp:240
Result< WorkspacePanelDescriptor > activatePanel(const StableId &id)
Activate a visible panel with structured not-found/rejected results.
Definition EditorWorkspace.cpp:169
float getRegionY(const std::string ®ion) const
Computed region Y coordinate.
Definition EditorWorkspace.cpp:236
EditorWorkspace(std::string id, std::string title)
Create a workspace with stable identity and display title.
Definition EditorWorkspace.cpp:34
Result< WorkspacePanelDescriptor > movePanel(const StableId &id, WorkspaceRegion region, int order)
Move a panel using a strongly typed dock region.
Definition EditorWorkspace.cpp:102
Result< StableId > setModeId(StableId mode)
Set a strongly identified workspace mode.
Definition EditorWorkspace.cpp:244
Result< SelectionSnapshot > clearSelectionChecked(const std::string &channel)
Clear one selection channel without discarding diagnostics.
Definition EditorWorkspace.cpp:281
bool getPanelVisible(int index) const
Panel visibility by deterministic index.
Definition EditorWorkspace.cpp:218
bool setPanelCapability(const std::string &id, const std::string &capability)
Attach a capability requirement used by the host when filtering panels.
Definition EditorWorkspace.cpp:128
void layout(float width, float height)
Compute standard dock rectangles for the requested host size.
Definition EditorWorkspace.cpp:233
int getPanelOrder(int index) const
Panel order by deterministic index.
Definition EditorWorkspace.cpp:213
bool setPanelSingleton(const std::string &id, bool singleton)
Mark whether hosts should allow more than one instance of this panel type.
Definition EditorWorkspace.cpp:156
void setRegionSize(const std::string ®ion, float pixels)
Configure one standard dock region size in pixels.
Definition EditorWorkspace.cpp:228
std::string getPanelId(int index) const
Panel id by deterministic index.
Definition EditorWorkspace.cpp:188
float getRegionX(const std::string ®ion) const
Computed region X coordinate.
Definition EditorWorkspace.cpp:235
int getSelectionCount(const std::string &channel) const
Number of selected items in a channel.
Definition EditorWorkspace.cpp:287
bool setPanelVisible(const std::string &id, bool visible)
Show or hide a panel without removing its descriptor.
Definition EditorWorkspace.cpp:146
float getRegionW(const std::string ®ion) const
Computed region width.
Definition EditorWorkspace.cpp:237
bool clearSelection(const std::string &channel)
Clear one semantic selection channel.
Definition EditorWorkspace.cpp:277
Definition ActionPreviewController.cpp:6
WorkspaceRegion
Supported semantic dock regions for UI-neutral workspace panels.
Definition EditorWorkspace.h:17
@ Floating
std::string_view workspaceRegionName(WorkspaceRegion region)
Return the stable serialized name for a workspace region.
Definition EditorWorkspace.cpp:22
eve::editing::SelectionDomain SelectionDomain
Semantic domain of one selection channel.
Definition EditorSelection.h:19
Definition Container.h:602
std::vector< SelectionItem > items
Definition EditingSelection.h:22
std::optional< SelectionItem > primary
Definition EditingSelection.h:23
UI-neutral description of one composable editor panel.
Definition EditorWorkspace.h:23
std::string capability
Definition EditorWorkspace.h:27