yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
workspace_manager.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_UI_WORKSPACE_MANAGER_H_
2#define YAZE_APP_EDITOR_UI_WORKSPACE_MANAGER_H_
3
4#include <deque>
5#include <string>
6#include "absl/status/status.h"
7
8namespace yaze {
9class Rom;
10
11namespace editor {
12
13class EditorSet;
14class ToastManager;
15class EditorCardRegistry;
16
21 public:
22 struct SessionInfo {
25 std::string custom_name;
26 std::string filepath;
27 };
28
29 explicit WorkspaceManager(ToastManager* toast_manager)
30 : toast_manager_(toast_manager) {}
31
32 // Set card registry for window visibility management
33 void set_card_registry(EditorCardRegistry* registry) { card_registry_ = registry; }
34
35 // Layout management
36 absl::Status SaveWorkspaceLayout(const std::string& name = "");
37 absl::Status LoadWorkspaceLayout(const std::string& name = "");
38 absl::Status ResetWorkspaceLayout();
39
40 // Preset management
41 void SaveWorkspacePreset(const std::string& name);
42 void LoadWorkspacePreset(const std::string& name);
43 void RefreshPresets();
45 void LoadDesignerLayout();
46 void LoadModderLayout();
47
48 // Window management
49 void ShowAllWindows();
50 void HideAllWindows();
52 void RestoreAllWindows();
54
55 // Window operations for keyboard navigation
56 void FocusNextWindow();
60 void CloseCurrentWindow();
61
62 // Command execution (for WhichKey integration)
63 void ExecuteWorkspaceCommand(const std::string& command_id);
64
65 // Session queries
66 size_t GetActiveSessionCount() const;
67 bool HasDuplicateSession(const std::string& filepath) const;
68
69 void set_sessions(std::deque<SessionInfo>* sessions) { sessions_ = sessions; }
70
71 const std::vector<std::string>& workspace_presets() const { return workspace_presets_; }
73
74 private:
77 std::deque<SessionInfo>* sessions_ = nullptr;
79 std::vector<std::string> workspace_presets_;
81};
82
83} // namespace editor
84} // namespace yaze
85
86#endif // YAZE_APP_EDITOR_UI_WORKSPACE_MANAGER_H_
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:74
Central registry for all editor cards with session awareness and dependency injection.
Contains a complete set of editors for a single ROM instance.
Manages workspace layouts, sessions, and presets.
void SaveWorkspacePreset(const std::string &name)
bool HasDuplicateSession(const std::string &filepath) const
WorkspaceManager(ToastManager *toast_manager)
std::vector< std::string > workspace_presets_
const std::vector< std::string > & workspace_presets() const
void set_sessions(std::deque< SessionInfo > *sessions)
std::deque< SessionInfo > * sessions_
void LoadWorkspacePreset(const std::string &name)
void set_card_registry(EditorCardRegistry *registry)
absl::Status SaveWorkspaceLayout(const std::string &name="")
absl::Status LoadWorkspaceLayout(const std::string &name="")
EditorCardRegistry * card_registry_
void ExecuteWorkspaceCommand(const std::string &command_id)
Main namespace for the application.
Definition controller.cc:20