yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
canvas_extensions.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GUI_CANVAS_CANVAS_EXTENSIONS_H
2#define YAZE_APP_GUI_CANVAS_CANVAS_EXTENSIONS_H
3
4#include <memory>
5#include <string>
6
7namespace yaze {
8
9class Rom;
10
11namespace gui {
12
13// Forward declarations to avoid heavy includes
14class BppFormatUI;
15class BppConversionDialog;
16class BppComparisonTool;
17class CanvasModals;
18class PaletteEditorWidget;
19class CanvasAutomationAPI;
20class Canvas;
21
36 // BPP format components (lazy-initialized)
37 std::unique_ptr<BppFormatUI> bpp_format_ui;
38 std::unique_ptr<BppConversionDialog> bpp_conversion_dialog;
39 std::unique_ptr<BppComparisonTool> bpp_comparison_tool;
40
41 // Modals system
42 std::unique_ptr<CanvasModals> modals;
43
44 // Palette editor
45 std::unique_ptr<PaletteEditorWidget> palette_editor;
46
47 // Automation API
48 std::unique_ptr<CanvasAutomationAPI> automation_api;
49
50 // Construction/destruction
53
54 // Prevent copying
57
58 // Move is allowed
60 CanvasExtensions& operator=(CanvasExtensions&&) noexcept;
61
62 // Lazy initialization helpers
63 void InitializeModals();
65 void InitializeBppUI(const std::string& canvas_id);
66 void InitializeAutomation(Canvas* canvas);
67
68 // Cleanup
69 void Cleanup();
70
71 // Check if any component is initialized
72 bool HasAnyInitialized() const;
73};
74
75} // namespace gui
76} // namespace yaze
77
78#endif // YAZE_APP_GUI_CANVAS_CANVAS_EXTENSIONS_H
79
Modern, robust canvas for drawing and manipulating graphics.
Definition canvas.h:150
Optional extension modules for Canvas.
CanvasExtensions & operator=(const CanvasExtensions &)=delete
std::unique_ptr< BppFormatUI > bpp_format_ui
std::unique_ptr< CanvasModals > modals
CanvasExtensions(CanvasExtensions &&) noexcept
void InitializeBppUI(const std::string &canvas_id)
void InitializeAutomation(Canvas *canvas)
std::unique_ptr< BppComparisonTool > bpp_comparison_tool
CanvasExtensions(const CanvasExtensions &)=delete
std::unique_ptr< BppConversionDialog > bpp_conversion_dialog
std::unique_ptr< CanvasAutomationAPI > automation_api
std::unique_ptr< PaletteEditorWidget > palette_editor