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 <string>
5#include <functional>
6#include <utility>
11#include "imgui/imgui.h"
12
13namespace yaze {
14namespace gui {
15
16// Note: DispatchConfigCallback and DispatchScaleCallback are internal helpers
17// defined in canvas_modals.cc (not part of public API)
18
23 const gfx::Bitmap* bitmap = nullptr;
24 const gfx::SnesPalette* palette = nullptr;
25 std::function<void(gfx::BppFormat)> on_convert;
26};
27
33 std::string title = "Palette Editor";
34 std::function<void()> on_palette_changed;
35};
36
41 const gfx::Bitmap* bitmap = nullptr;
42 const gfx::SnesPalette* palette = nullptr;
43 std::string title = "Color Analysis";
44};
45
50 std::string operation_name;
51 double operation_time_ms = 0.0;
52 std::function<void()> on_dashboard_request;
53};
54
59 public:
60 CanvasModals() = default;
61
65 void ShowAdvancedProperties(const std::string& canvas_id,
66 const CanvasConfig& config,
67 const gfx::Bitmap* bitmap = nullptr);
68
72 void ShowScalingControls(const std::string& canvas_id,
73 const CanvasConfig& config,
74 const gfx::Bitmap* bitmap = nullptr);
75
79 void ShowBppConversionDialog(const std::string& canvas_id,
80 const BppConversionOptions& options);
81
85 void ShowPaletteEditor(const std::string& canvas_id,
86 const PaletteEditorOptions& options);
87
91 void ShowColorAnalysis(const std::string& canvas_id,
92 const ColorAnalysisOptions& options);
93
97 void ShowPerformanceIntegration(const std::string& canvas_id,
98 const PerformanceOptions& options);
99
103 void Render();
104
108 bool IsAnyModalOpen() const;
109
110 private:
111 struct ModalState {
112 bool is_open = false;
113 std::string id;
114 std::function<void()> render_func;
115 };
116
117 std::vector<ModalState> active_modals_;
118
119 // Modal rendering functions
120 void RenderAdvancedPropertiesModal(const std::string& canvas_id,
121 CanvasConfig& config,
122 const gfx::Bitmap* bitmap);
123
124 void RenderScalingControlsModal(const std::string& canvas_id,
125 CanvasConfig& config,
126 const gfx::Bitmap* bitmap);
127
128 void RenderBppConversionModal(const std::string& canvas_id,
129 const BppConversionOptions& options);
130
131 void RenderPaletteEditorModal(const std::string& canvas_id,
132 const PaletteEditorOptions& options);
133
134 void RenderColorAnalysisModal(const std::string& canvas_id,
135 const ColorAnalysisOptions& options);
136
137 void RenderPerformanceModal(const std::string& canvas_id,
138 const PerformanceOptions& options);
139
140 // Helper methods
141 void OpenModal(const std::string& id, std::function<void()> render_func);
142 void CloseModal(const std::string& id);
143 bool IsModalOpen(const std::string& id) const;
144
145 // UI helper methods
146 void RenderMaterialIcon(const std::string& icon_name, const ImVec4& color = ImVec4(1, 1, 1, 1));
147 void RenderMetricCard(const std::string& title, const std::string& value,
148 const std::string& icon, const ImVec4& color = ImVec4(1, 1, 1, 1));
149 void RenderSliderWithIcon(const std::string& label, const std::string& icon,
150 float* value, float min_val, float max_val,
151 const char* format = "%.2f");
152};
153
154} // namespace gui
155} // namespace yaze
156
157#endif // YAZE_APP_GUI_CANVAS_CANVAS_MODALS_H
Represents a bitmap image optimized for SNES ROM hacking.
Definition bitmap.h:66
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 RenderMaterialIcon(const std::string &icon_name, const ImVec4 &color=ImVec4(1, 1, 1, 1))
void RenderMetricCard(const std::string &title, const std::string &value, const std::string &icon, 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.
Main namespace for the application.
Definition controller.cc:20
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