yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
project_management_panel.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_SHELL_WINDOWS_PROJECT_MANAGEMENT_PANEL_H_
2#define YAZE_APP_EDITOR_SHELL_WINDOWS_PROJECT_MANAGEMENT_PANEL_H_
3
4#include <functional>
5#include <string>
6#include <vector>
7
9#include "core/project.h"
11
12namespace yaze {
13
14class Rom;
15
16namespace editor {
17
18class ToastManager;
19
31 public:
33
34 // Dependencies
35 void SetProject(project::YazeProject* project) { project_ = project; }
37 version_manager_ = manager;
38 }
39 void SetRom(Rom* rom) { rom_ = rom; }
40 void SetToastManager(ToastManager* manager) { toast_manager_ = manager; }
41
42 // Callbacks for actions that need EditorManager
43 using SwapRomCallback = std::function<void()>;
44 using ReloadRomCallback = std::function<void()>;
45 using SaveProjectCallback = std::function<void()>;
46 using BuildProjectCallback = std::function<void()>;
47 using CancelBuildCallback = std::function<void()>;
48 using RunProjectCallback = std::function<void()>;
49 using BrowseFolderCallback = std::function<void(const std::string& type)>;
50
69 build_status_ = status;
70 }
71 void SetRunStatus(const ProjectWorkflowStatus& status) {
72 run_status_ = status;
73 }
74 void SetBuildLogOutput(const std::string& output) {
75 build_log_output_ = output;
76 }
77
78 // Main draw entry point
79 void Draw();
80
81 private:
84 void DrawRomManagement();
85 void DrawVersionControl();
87 void DrawQuickActions();
88
91 Rom* rom_ = nullptr;
93
94 // Callbacks
102
103 // Snapshot creation UI state
104 char snapshot_message_[256] = {};
106
107 // History cache
108 std::vector<std::string> history_cache_;
109 bool history_dirty_ = true;
110
111 // Project edit state
112 bool project_dirty_ = false;
113
116 std::string build_log_output_;
117};
118
119} // namespace editor
120} // namespace yaze
121
122#endif // YAZE_APP_EDITOR_SHELL_WINDOWS_PROJECT_MANAGEMENT_PANEL_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:28
Manages project versioning (Git) and ROM artifact snapshots.
Panel for managing project settings, ROM versions, and snapshots.
void SetVersionManager(core::VersionManager *manager)
void SetRunProjectCallback(RunProjectCallback cb)
void SetBuildStatus(const ProjectWorkflowStatus &status)
void SetBrowseFolderCallback(BrowseFolderCallback cb)
void SetSaveProjectCallback(SaveProjectCallback cb)
void SetBuildProjectCallback(BuildProjectCallback cb)
std::function< void(const std::string &type)> BrowseFolderCallback
void SetBuildLogOutput(const std::string &output)
void SetProject(project::YazeProject *project)
void SetRunStatus(const ProjectWorkflowStatus &status)
void SetCancelBuildCallback(CancelBuildCallback cb)
void SetReloadRomCallback(ReloadRomCallback cb)
Modern project structure with comprehensive settings consolidation.
Definition project.h:164