feat: Introduce CompactToolbar and EditorCard for Enhanced Editor Layout

- Added CompactToolbar class to provide a modern, ultra-compact toolbar for the editor, featuring mode buttons, property editing, and quick actions.
- Implemented EditorCard class for draggable, dockable editor sub-windows, enhancing the user interface with responsive and themed cards.
- Introduced EditorLayout class to manage the overall editor layout, integrating the toolbar and main canvas for a cohesive user experience.
- Updated CMake configuration to include new source files, ensuring proper build integration.
This commit is contained in:
scawful
2025-10-05 17:05:10 -04:00
parent 951e7891b4
commit ea9409f767
4 changed files with 510 additions and 6 deletions

View File

@@ -1,6 +1,5 @@
#include "app/gui/ui_helpers.h"
#include "absl/strings/str_format.h"
#include "app/gui/color.h"
#include "app/gui/icons.h"
#include "app/gui/theme_manager.h"
@@ -43,21 +42,25 @@ ImVec4 GetAccentColor() {
return ConvertColorToImVec4(theme.accent);
}
// Entity/Map marker colors (normalized RGB + proper alpha)
// Entity/Map marker colors (vibrant with good visibility)
ImVec4 GetEntranceColor() {
return ImVec4(1.0f, 1.0f, 0.0f, 0.39f); // Yellow, 100/255 alpha
// Bright yellow with strong visibility
return ImVec4(1.0f, 0.9f, 0.0f, 0.85f); // Yellow-gold, high visibility
}
ImVec4 GetExitColor() {
return ImVec4(1.0f, 1.0f, 1.0f, 0.59f); // White, 150/255 alpha
// Bright cyan-white for contrast
return ImVec4(0.9f, 1.0f, 1.0f, 0.85f); // Cyan-white, high visibility
}
ImVec4 GetItemColor() {
return ImVec4(1.0f, 0.0f, 0.0f, 0.59f); // Red, 150/255 alpha
// Vibrant red for items
return ImVec4(1.0f, 0.2f, 0.2f, 0.85f); // Bright red, high visibility
}
ImVec4 GetSpriteColor() {
return ImVec4(1.0f, 0.0f, 1.0f, 0.59f); // Magenta, 150/255 alpha
// Bright magenta for sprites
return ImVec4(1.0f, 0.3f, 1.0f, 0.85f); // Bright magenta, high visibility
}
ImVec4 GetSelectedColor() {