1#ifndef YAZE_GUI_COLOR_H
2#define YAZE_GUI_COLOR_H
4#include "absl/strings/str_format.h"
7#include "absl/status/status.h"
9#include "imgui/imgui.h"
26 return absl::StrFormat(
"%02X%02X%02X%02X",
27 static_cast<int>(color.
red * 255),
28 static_cast<int>(color.
green * 255),
29 static_cast<int>(color.
blue * 255),
30 static_cast<int>(color.
alpha * 255));
42 ImGuiColorEditFlags flags = 0,
43 const ImVec2 &size_arg = ImVec2(0, 0));
46 ImGuiColorEditFlags flags = 0);
61 int* selected_index =
nullptr);
71 const std::string &title =
"",
72 ImGuiColorEditFlags flags = 0);
83 ImGuiColorEditFlags flags = 0);
89 const std::string &title =
"",
90 bool show_color_picker =
false,
91 int colors_per_row = 8,
92 ImGuiColorEditFlags flags = 0);
99 bool is_selected,
bool is_modified,
100 const ImVec2& size = ImVec2(28, 28),
101 ImGuiColorEditFlags flags = 0);
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
ImVec4 ConvertColorToImVec4(const Color &color)
IMGUI_API bool InlinePaletteSelector(gfx::SnesPalette &palette, int num_colors, int *selected_index)
Small inline palette selector - just color buttons for selection.
IMGUI_API bool SnesColorButton(absl::string_view id, gfx::SnesColor &color, ImGuiColorEditFlags flags, const ImVec2 &size_arg)
IMGUI_API bool PopupPaletteEditor(const char *popup_id, gfx::SnesPalette &palette, ImGuiColorEditFlags flags)
Popup palette editor - same as inline but in a popup.
IMGUI_API absl::Status InlinePaletteEditor(gfx::SnesPalette &palette, const std::string &title, ImGuiColorEditFlags flags)
Full inline palette editor with color picker and copy options.
IMGUI_API bool PaletteColorButton(const char *id, const gfx::SnesColor &color, bool is_selected, bool is_modified, const ImVec2 &size, ImGuiColorEditFlags flags)
ImVec4 ConvertSnesColorToImVec4(const gfx::SnesColor &color)
Convert SnesColor to standard ImVec4 for display.
void SelectablePalettePipeline(uint64_t &palette_id, bool &refresh_graphics, gfx::SnesPalette &palette)
IMGUI_API bool SnesColorEdit4(absl::string_view label, gfx::SnesColor *color, ImGuiColorEditFlags flags)
std::string ColorToHexString(const Color &color)
IMGUI_API bool DisplayPalette(gfx::SnesPalette &palette, bool loaded)
gfx::SnesColor ConvertImVec4ToSnesColor(const ImVec4 &color)
Convert standard ImVec4 to SnesColor.
absl::Status DisplayEditablePalette(gfx::SnesPalette &palette, const std::string &title, bool show_color_picker, int colors_per_row, ImGuiColorEditFlags flags)
Main namespace for the application.