yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
canvas_modals.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GUI_CANVAS_CANVAS_MODALS_H
2#define YAZE_APP_GUI_CANVAS_CANVAS_MODALS_H
3
4#include <functional>
5#include <string>
6#include <utility>
7
12#include "imgui/imgui.h"
13
14namespace yaze {
15namespace gui {
16
17// Note: DispatchConfigCallback and DispatchScaleCallback are internal helpers
18// defined in canvas_modals.cc (not part of public API)
19
24 const gfx::Bitmap* bitmap = nullptr;
25 const gfx::SnesPalette* palette = nullptr;
26 std::function<void(gfx::BppFormat)> on_convert;
27};
28
34 std::string title = "Palette Editor";
35 std::function<void()> on_palette_changed;
36};
37
42 const gfx::Bitmap* bitmap = nullptr;
43 const gfx::SnesPalette* palette = nullptr;
44 std::string title = "Color Analysis";
45};
46
51 std::string operation_name;
52 double operation_time_ms = 0.0;
53 std::function<void()> on_dashboard_request;
54};
55
60 public:
61 CanvasModals() = default;
62
66 void ShowAdvancedProperties(const std::string& canvas_id,
67 const CanvasConfig& config,
68 const gfx::Bitmap* bitmap = nullptr);
69
73 void ShowScalingControls(const std::string& canvas_id,
74 const CanvasConfig& config,
75 const gfx::Bitmap* bitmap = nullptr);
76
80 void ShowBppConversionDialog(const std::string& canvas_id,
81 const BppConversionOptions& options);
82
86 void ShowPaletteEditor(const std::string& canvas_id,
87 const PaletteEditorOptions& options);
88
92 void ShowColorAnalysis(const std::string& canvas_id,
93 const ColorAnalysisOptions& options);
94
98 void ShowPerformanceIntegration(const std::string& canvas_id,
99 const PerformanceOptions& options);
100
104 void Render();
105
109 bool IsAnyModalOpen() const;
110
111 private:
112 struct ModalState {
113 bool is_open = false;
114 std::string id;
115 std::function<void()> render_func;
116 };
117
118 std::vector<ModalState> active_modals_;
119
120 // Modal rendering functions
121 void RenderAdvancedPropertiesModal(const std::string& canvas_id,
122 CanvasConfig& config,
123 const gfx::Bitmap* bitmap);
124
125 void RenderScalingControlsModal(const std::string& canvas_id,
126 CanvasConfig& config,
127 const gfx::Bitmap* bitmap);
128
129 void RenderBppConversionModal(const std::string& canvas_id,
130 const BppConversionOptions& options);
131
132 void RenderPaletteEditorModal(const std::string& canvas_id,
133 const PaletteEditorOptions& options);
134
135 void RenderColorAnalysisModal(const std::string& canvas_id,
136 const ColorAnalysisOptions& options);
137
138 void RenderPerformanceModal(const std::string& canvas_id,
139 const PerformanceOptions& options);
140
141 // Helper methods
142 void OpenModal(const std::string& id, std::function<void()> render_func);
143 void CloseModal(const std::string& id);
144 bool IsModalOpen(const std::string& id) const;
145
146 // UI helper methods
147 void RenderMaterialIcon(const std::string& icon_name,
148 const ImVec4& color = ImVec4(1, 1, 1, 1));
149 void RenderMetricPanel(const std::string& title, const std::string& value,
150 const std::string& icon,
151 const ImVec4& color = ImVec4(1, 1, 1, 1));
152 void RenderSliderWithIcon(const std::string& label, const std::string& icon,
153 float* value, float min_val, float max_val,
154 const char* format = "%.2f");
155};
156
157} // namespace gui
158} // namespace yaze
159
160#endif // YAZE_APP_GUI_CANVAS_CANVAS_MODALS_H
Represents a bitmap image optimized for SNES ROM hacking.
Definition bitmap.h:67
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
Modal dialog management for canvas operations.
void ShowAdvancedProperties(const std::string &canvas_id, const CanvasConfig &config, const gfx::Bitmap *bitmap=nullptr)
Show advanced canvas properties modal.
void ShowPaletteEditor(const std::string &canvas_id, const PaletteEditorOptions &options)
Show palette editor modal.
void RenderSliderWithIcon(const std::string &label, const std::string &icon, float *value, float min_val, float max_val, const char *format="%.2f")
void ShowPerformanceIntegration(const std::string &canvas_id, const PerformanceOptions &options)
Show performance dashboard integration.
std::vector< ModalState > active_modals_
void RenderMetricPanel(const std::string &title, const std::string &value, const std::string &icon, const ImVec4 &color=ImVec4(1, 1, 1, 1))
void RenderMaterialIcon(const std::string &icon_name, const ImVec4 &color=ImVec4(1, 1, 1, 1))
void RenderScalingControlsModal(const std::string &canvas_id, CanvasConfig &config, const gfx::Bitmap *bitmap)
void CloseModal(const std::string &id)
void Render()
Render all active modals.
void RenderPerformanceModal(const std::string &canvas_id, const PerformanceOptions &options)
void OpenModal(const std::string &id, std::function< void()> render_func)
void RenderAdvancedPropertiesModal(const std::string &canvas_id, CanvasConfig &config, const gfx::Bitmap *bitmap)
void RenderBppConversionModal(const std::string &canvas_id, const BppConversionOptions &options)
void RenderPaletteEditorModal(const std::string &canvas_id, const PaletteEditorOptions &options)
void ShowColorAnalysis(const std::string &canvas_id, const ColorAnalysisOptions &options)
Show color analysis modal.
void ShowBppConversionDialog(const std::string &canvas_id, const BppConversionOptions &options)
Show BPP format conversion dialog.
void RenderColorAnalysisModal(const std::string &canvas_id, const ColorAnalysisOptions &options)
void ShowScalingControls(const std::string &canvas_id, const CanvasConfig &config, const gfx::Bitmap *bitmap=nullptr)
Show scaling controls modal.
bool IsAnyModalOpen() const
Check if any modal is open.
bool IsModalOpen(const std::string &id) const
BppFormat
BPP format enumeration for SNES graphics.
BPP conversion options.
std::function< void(gfx::BppFormat)> on_convert
const gfx::SnesPalette * palette
Unified configuration for canvas display and interaction.
std::function< void()> render_func
Color analysis options.
const gfx::SnesPalette * palette
Palette editor options.
std::function< void()> on_palette_changed
Performance integration options.
std::function< void()> on_dashboard_request