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
7#include "absl/status/status.h"
8
9namespace yaze {
10class Rom;
11
12namespace editor {
13
14class EditorSet;
15class ToastManager;
16class PanelManager;
17
22 public:
23 struct SessionInfo {
26 std::string custom_name;
27 std::string filepath;
28 };
29
30 explicit WorkspaceManager(ToastManager* toast_manager)
31 : toast_manager_(toast_manager) {}
32
33 // Set panel manager for window visibility management
35 panel_manager_ = manager;
36 }
37
38 // Layout management
39 absl::Status SaveWorkspaceLayout(const std::string& name = "");
40 absl::Status LoadWorkspaceLayout(const std::string& name = "");
41 absl::Status ResetWorkspaceLayout();
42
43 // Preset management
44 void SaveWorkspacePreset(const std::string& name);
45 void LoadWorkspacePreset(const std::string& name);
46 void RefreshPresets();
48 void LoadDesignerLayout();
49 void LoadModderLayout();
50
51 // Window management
52 void ShowAllWindows();
53 void HideAllWindows();
55 void RestoreAllWindows();
57
58 // Window operations for keyboard navigation
59 void FocusNextWindow();
63 void CloseCurrentWindow();
64
65 // Command execution (for WhichKey integration)
66 void ExecuteWorkspaceCommand(const std::string& command_id);
67
68 // Session queries
69 size_t GetActiveSessionCount() const;
70 bool HasDuplicateSession(const std::string& filepath) const;
71
72 void set_sessions(std::deque<SessionInfo>* sessions) { sessions_ = sessions; }
73
74 const std::vector<std::string>& workspace_presets() const {
75 return workspace_presets_;
76 }
78
79 private:
82 std::deque<SessionInfo>* sessions_ = nullptr;
84 std::vector<std::string> workspace_presets_;
86};
87
88} // namespace editor
89} // namespace yaze
90
91#endif // YAZE_APP_EDITOR_UI_WORKSPACE_MANAGER_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:24
Contains a complete set of editors for a single ROM instance.
Central registry for all editor cards with session awareness and dependency injection.
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_panel_manager(PanelManager *manager)
absl::Status SaveWorkspaceLayout(const std::string &name="")
absl::Status LoadWorkspaceLayout(const std::string &name="")
void ExecuteWorkspaceCommand(const std::string &command_id)