yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::gui Namespace Reference

Graphical User Interface (GUI) components for the application. More...

Namespaces

namespace  anonymous_namespace{canvas.cc}
 
namespace  anonymous_namespace{canvas_context_menu.cc}
 
namespace  anonymous_namespace{canvas_interaction.cc}
 
namespace  anonymous_namespace{canvas_interaction_handler.cc}
 
namespace  anonymous_namespace{canvas_modals.cc}
 
namespace  anonymous_namespace{canvas_rendering.cc}
 
namespace  anonymous_namespace{style.cc}
 
namespace  anonymous_namespace{widget_id_registry.cc}
 
namespace  CanvasUtils
 Utility functions for canvas operations.
 

Classes

class  AgentChatWidget
 ImGui widget for conversational AI agent interaction. More...
 
struct  AssetObject
 
class  AutoWidgetScope
 RAII scope that enables automatic widget registration. More...
 
class  BackgroundRenderer
 Renders themed background effects for docking windows. More...
 
class  BppComparisonTool
 BPP format comparison tool. More...
 
class  BppConversionDialog
 BPP format conversion dialog. More...
 
struct  BppConversionOptions
 BPP conversion options. More...
 
class  BppFormatUI
 BPP format selection and conversion UI component. More...
 
class  Canvas
 Modern, robust canvas for drawing and manipulating graphics. More...
 
class  CanvasAutomationAPI
 Programmatic interface for controlling canvas operations. More...
 
struct  CanvasConfig
 Unified configuration for canvas display and interaction. More...
 
class  CanvasContextMenu
 
struct  CanvasContextMenuItem
 Context menu item configuration. More...
 
struct  CanvasGeometry
 Canvas geometry calculated per-frame. More...
 
struct  CanvasInteractionEvents
 Combined interaction result for a frame. More...
 
class  CanvasInteractionHandler
 Handles all tile-based interactions for Canvas. More...
 
class  CanvasMenuBuilder
 Builder pattern for constructing canvas menus fluently. More...
 
struct  CanvasMenuDefinition
 Complete menu definition. More...
 
struct  CanvasMenuItem
 Declarative menu item definition. More...
 
struct  CanvasMenuSection
 Menu section grouping related menu items. More...
 
class  CanvasModals
 Modal dialog management for canvas operations. More...
 
struct  CanvasPaletteManager
 Palette management state for canvas. More...
 
class  CanvasPerformanceIntegration
 Canvas performance integration with dashboard. More...
 
class  CanvasPerformanceManager
 Global canvas performance manager. More...
 
struct  CanvasPerformanceMetrics
 Canvas performance metrics. More...
 
struct  CanvasPopupDefinition
 Declarative popup definition for menu items. More...
 
struct  CanvasSelection
 Selection state for canvas interactions. More...
 
struct  CanvasState
 Complete canvas state snapshot. More...
 
class  CanvasUsageManager
 Global canvas usage tracker manager. More...
 
struct  CanvasUsageStats
 Canvas usage statistics. More...
 
class  CanvasUsageTracker
 Canvas usage tracking and analysis system. More...
 
class  CollaborationPanel
 ImGui panel for collaboration features. More...
 
struct  Color
 
struct  ColorAnalysisOptions
 Color analysis options. More...
 
class  DockSpaceRenderer
 Enhanced docking space with themed background effects. More...
 
struct  DungeonAsset
 
class  DungeonObjectEmulatorPreview
 
class  EditorCard
 Draggable, dockable card for editor sub-windows. More...
 
class  EditorLayout
 Modern layout manager for editor components. More...
 
struct  EnhancedTheme
 Comprehensive theme structure for YAZE. More...
 
struct  EntityInteractionEvent
 Event payload for entity interactions. More...
 
struct  ExampleSelectionWithDeletion
 
struct  FlagsMenu
 
struct  GfxSheetAssetBrowser
 
struct  HoverEvent
 Event payload for hover preview. More...
 
class  LayoutHelpers
 Theme-aware sizing helpers for consistent UI layout. More...
 
class  MultiSelect
 
struct  OverworldAsset
 
struct  PaletteEditorOptions
 Palette editor options. More...
 
class  PaletteEditorWidget
 
struct  PerformanceOptions
 Performance integration options. More...
 
class  PopupRegistry
 Registry for managing persistent popups. More...
 
struct  PopupState
 State for a single persistent popup. More...
 
struct  ProposalEntry
 Represents an AI-generated proposal. More...
 
struct  RectSelectionEvent
 Event payload for rectangle selection operations. More...
 
struct  RomSyncEntry
 Represents a ROM synchronization event. More...
 
class  ScopedCanvas
 RAII wrapper for Canvas (ImGui-style) More...
 
struct  SnapshotEntry
 Represents a shared snapshot (image, map state, etc.) More...
 
struct  SpriteAsset
 
struct  Table
 
struct  TextBox
 
class  ThemeManager
 Manages themes, loading, saving, and switching. More...
 
struct  TileInteractionResult
 Result of a tile interaction operation. More...
 
struct  TilePaintEvent
 Event payload for tile painting operations. More...
 
struct  TileSelectionEvent
 Event payload for single tile selection. More...
 
class  TileSelectorWidget
 Reusable tile selector built on top of Canvas. More...
 
class  Toolset
 Ultra-compact toolbar that merges mode buttons with settings. More...
 
struct  UnsortedAsset
 
class  WidgetIdRegistry
 Centralized registry for discoverable GUI widgets. More...
 
class  WidgetIdScope
 RAII helper for managing hierarchical ImGui ID scopes. More...
 
class  WidgetMeasurement
 Tracks widget dimensions for debugging and test automation. More...
 
struct  WidgetMetrics
 

Typedefs

using ItemLabelFlags = enum ItemLabelFlag { Left=1u<< 0u, Right=1u<< 1u, Default=Left, }
 
using GuiElement = std::variant< std::function< void()>, std::string >
 

Enumerations

enum class  CanvasType { kTile , kBlock , kMap }
 
enum class  CanvasMode { kPaint , kSelect }
 
enum class  CanvasGridSize { k8x8 , k16x16 , k32x32 , k64x64 }
 
enum class  TileInteractionMode {
  kNone , kPaintSingle , kPaintDrag , kSelectSingle ,
  kSelectRectangle , kColorPaint
}
 Tile interaction mode for canvas. More...
 
enum class  MenuSectionPriority { kEditorSpecific = 0 , kBitmapPalette = 10 , kCanvasProperties = 20 , kDebug = 30 }
 Menu section priority for controlling rendering order. More...
 
enum class  CanvasUsage {
  kTilePainting , kTileSelecting , kSelectRectangle , kColorPainting ,
  kBitmapEditing , kPaletteEditing , kBppConversion , kPerformanceMode ,
  kEntityManipulation , kUnknown
}
 Canvas usage patterns and tracking. More...
 
enum class  CanvasInteraction {
  kMouseClick , kMouseDrag , kMouseRelease , kKeyboardInput ,
  kContextMenu , kModalOpen , kModalClose , kToolChange ,
  kModeChange
}
 Canvas interaction types. More...
 
enum class  ButtonType {
  Default , Success , Warning , Error ,
  Info
}
 
enum class  StatusType { kSuccess , kWarning , kError , kInfo }
 

Functions

void AutoRegisterLastItem (const std::string &widget_type, const std::string &explicit_label="", const std::string &description="")
 Automatically register the last ImGui item.
 
bool AutoButton (const char *label, const ImVec2 &size=ImVec2(0, 0))
 
bool AutoSmallButton (const char *label)
 
bool AutoCheckbox (const char *label, bool *v)
 
bool AutoRadioButton (const char *label, bool active)
 
bool AutoRadioButton (const char *label, int *v, int v_button)
 
bool AutoInputText (const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=nullptr, void *user_data=nullptr)
 
bool AutoInputTextMultiline (const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=nullptr, void *user_data=nullptr)
 
bool AutoInputInt (const char *label, int *v, int step=1, int step_fast=100, ImGuiInputTextFlags flags=0)
 
bool AutoInputFloat (const char *label, float *v, float step=0.0f, float step_fast=0.0f, const char *format="%.3f", ImGuiInputTextFlags flags=0)
 
bool AutoSliderInt (const char *label, int *v, int v_min, int v_max, const char *format="%d", ImGuiSliderFlags flags=0)
 
bool AutoSliderFloat (const char *label, float *v, float v_min, float v_max, const char *format="%.3f", ImGuiSliderFlags flags=0)
 
bool AutoCombo (const char *label, int *current_item, const char *const items[], int items_count, int popup_max_height_in_items=-1)
 
bool AutoSelectable (const char *label, bool selected=false, ImGuiSelectableFlags flags=0, const ImVec2 &size=ImVec2(0, 0))
 
bool AutoSelectable (const char *label, bool *p_selected, ImGuiSelectableFlags flags=0, const ImVec2 &size=ImVec2(0, 0))
 
bool AutoMenuItem (const char *label, const char *shortcut=nullptr, bool selected=false, bool enabled=true)
 
bool AutoMenuItem (const char *label, const char *shortcut, bool *p_selected, bool enabled=true)
 
bool AutoBeginMenu (const char *label, bool enabled=true)
 
bool AutoBeginTabItem (const char *label, bool *p_open=nullptr, ImGuiTabItemFlags flags=0)
 
bool AutoTreeNode (const char *label)
 
bool AutoTreeNodeEx (const char *label, ImGuiTreeNodeFlags flags=0)
 
bool AutoCollapsingHeader (const char *label, ImGuiTreeNodeFlags flags=0)
 
void RegisterCanvas (const char *canvas_name, const std::string &description="")
 Register a canvas widget after BeginChild or similar.
 
void RegisterTable (const char *table_name, const std::string &description="")
 Register a table after BeginTable.
 
void BeginCanvas (Canvas &canvas, ImVec2 child_size)
 
void EndCanvas (Canvas &canvas)
 
void GraphicsBinCanvasPipeline (int width, int height, int tile_size, int num_sheets_to_load, int canvas_id, bool is_loaded, gfx::BitmapTable &graphics_bin)
 
void BitmapCanvasPipeline (gui::Canvas &canvas, gfx::Bitmap &bitmap, int width, int height, int tile_size, bool is_loaded, bool scrollbar, int canvas_id)
 
void TableCanvasPipeline (gui::Canvas &canvas, gfx::Bitmap &bitmap, const std::string &label, bool auto_resize)
 
void GraphicsBinCanvasPipeline (int width, int height, int tile_size, int num_sheets_to_load, int canvas_id, bool is_loaded, BitmapTable &graphics_bin)
 
CanvasGeometry CalculateCanvasGeometry (const CanvasConfig &config, ImVec2 requested_size, ImVec2 cursor_screen_pos, ImVec2 content_region_avail)
 Calculate canvas geometry from configuration and ImGui context.
 
ImVec2 CalculateMouseInCanvas (const CanvasGeometry &geometry, ImVec2 mouse_screen_pos)
 Calculate mouse position in canvas space.
 
bool IsPointInCanvasBounds (const CanvasGeometry &geometry, ImVec2 point)
 Check if a point is within canvas bounds.
 
void ApplyScrollDelta (CanvasGeometry &geometry, ImVec2 delta)
 Apply scroll delta to geometry.
 
ImVec2 GetCanvasOrigin (const CanvasGeometry &geometry)
 Get origin point (canvas top-left + scroll offset)
 
ImVec2 AlignToGrid (ImVec2 pos, float grid_step)
 Align position to grid.
 
ImVec2 GetMouseInCanvasSpace (const CanvasGeometry &geometry)
 Get mouse position in canvas space.
 
bool IsMouseInCanvas (const CanvasGeometry &geometry)
 Check if mouse is in canvas bounds.
 
ImVec2 CanvasToTileGrid (ImVec2 canvas_pos, float tile_size, float global_scale)
 Calculate tile grid indices from canvas position.
 
RectSelectionEvent HandleRectangleSelection (const CanvasGeometry &geometry, int current_map, float tile_size, ImDrawList *draw_list, ImGuiMouseButton mouse_button=ImGuiMouseButton_Right)
 Handle rectangle selection interaction.
 
TileSelectionEvent HandleTileSelection (const CanvasGeometry &geometry, int current_map, float tile_size, ImGuiMouseButton mouse_button=ImGuiMouseButton_Right)
 Handle single tile selection (right-click)
 
TilePaintEvent HandleTilePaint (const CanvasGeometry &geometry, int tile_id, float tile_size, ImGuiMouseButton mouse_button=ImGuiMouseButton_Left)
 Handle tile painting interaction.
 
TilePaintEvent HandleTilePaintWithPreview (const CanvasGeometry &geometry, const gfx::Bitmap &bitmap, float tile_size, ImDrawList *draw_list, ImGuiMouseButton mouse_button=ImGuiMouseButton_Left)
 Handle tile painter with bitmap preview.
 
TilePaintEvent HandleTilemapPaint (const CanvasGeometry &geometry, const gfx::Tilemap &tilemap, int current_tile, ImDrawList *draw_list, ImGuiMouseButton mouse_button=ImGuiMouseButton_Left)
 Handle tilemap painting interaction.
 
HoverEvent HandleHover (const CanvasGeometry &geometry, float tile_size)
 Update hover state for canvas.
 
void RenderHoverPreview (const CanvasGeometry &geometry, const HoverEvent &hover, float tile_size, ImDrawList *draw_list, ImU32 color=IM_COL32(255, 255, 255, 80))
 Render hover preview overlay.
 
EntityInteractionEvent HandleEntityInteraction (const CanvasGeometry &geometry, int entity_id, ImVec2 entity_position)
 Handle entity interaction (hover, click, drag)
 
void RenderMenuItem (const CanvasMenuItem &item, std::function< void(const std::string &, std::function< void()>)> popup_opened_callback=nullptr)
 Render a single menu item.
 
void RenderMenuSection (const CanvasMenuSection &section, std::function< void(const std::string &, std::function< void()>)> popup_opened_callback=nullptr)
 Render a menu section.
 
void RenderCanvasMenu (const CanvasMenuDefinition &menu, std::function< void(const std::string &, std::function< void()>)> popup_opened_callback=nullptr)
 Render a complete menu definition.
 
void RenderCanvasBackground (ImDrawList *draw_list, const CanvasGeometry &geometry)
 Render canvas background and border.
 
void RenderCanvasGrid (ImDrawList *draw_list, const CanvasGeometry &geometry, const CanvasConfig &config, int highlight_tile_id=-1)
 Render canvas grid with optional highlighting.
 
void RenderCanvasOverlay (ImDrawList *draw_list, const CanvasGeometry &geometry, const CanvasConfig &config, const ImVector< ImVec2 > &points, const ImVector< ImVec2 > &selected_points)
 Render canvas overlay (hover and selection points)
 
void RenderCanvasLabels (ImDrawList *draw_list, const CanvasGeometry &geometry, const CanvasConfig &config, const ImVector< ImVector< std::string > > &labels, int current_labels, int tile_id_offset)
 Render canvas labels on grid.
 
void RenderBitmapOnCanvas (ImDrawList *draw_list, const CanvasGeometry &geometry, gfx::Bitmap &bitmap, int border_offset, float scale)
 Render bitmap on canvas (border offset variant)
 
void RenderBitmapOnCanvas (ImDrawList *draw_list, const CanvasGeometry &geometry, gfx::Bitmap &bitmap, int x_offset, int y_offset, float scale, int alpha)
 Render bitmap on canvas (x/y offset variant)
 
void RenderBitmapOnCanvas (ImDrawList *draw_list, const CanvasGeometry &geometry, gfx::Bitmap &bitmap, ImVec2 dest_pos, ImVec2 dest_size, ImVec2 src_pos, ImVec2 src_size)
 Render bitmap on canvas (custom source/dest regions)
 
void RenderBitmapGroup (ImDrawList *draw_list, const CanvasGeometry &geometry, std::vector< int > &group, gfx::Tilemap &tilemap, int tile_size, float scale, int local_map_size, ImVec2 total_map_size)
 Render group of bitmaps from tilemap.
 
ImVec4 ConvertSnesColorToImVec4 (const gfx::SnesColor &color)
 Convert SnesColor to standard ImVec4 for display.
 
gfx::SnesColor ConvertImVec4ToSnesColor (const ImVec4 &color)
 Convert standard ImVec4 to SnesColor.
 
IMGUI_API bool SnesColorButton (absl::string_view id, gfx::SnesColor &color, ImGuiColorEditFlags flags, const ImVec2 &size_arg)
 
IMGUI_API bool SnesColorEdit4 (absl::string_view label, gfx::SnesColor *color, ImGuiColorEditFlags flags)
 
IMGUI_API bool InlinePaletteSelector (gfx::SnesPalette &palette, int num_colors=8, int *selected_index=nullptr)
 Small inline palette selector - just color buttons for selection.
 
IMGUI_API absl::Status InlinePaletteEditor (gfx::SnesPalette &palette, const std::string &title="", ImGuiColorEditFlags flags=0)
 Full inline palette editor with color picker and copy options.
 
IMGUI_API bool PopupPaletteEditor (const char *popup_id, gfx::SnesPalette &palette, ImGuiColorEditFlags flags=0)
 Popup palette editor - same as inline but in a popup.
 
IMGUI_API bool DisplayPalette (gfx::SnesPalette &palette, bool loaded)
 
void SelectablePalettePipeline (uint64_t &palette_id, bool &refresh_graphics, gfx::SnesPalette &palette)
 
absl::Status DisplayEditablePalette (gfx::SnesPalette &palette, const std::string &title, bool show_color_picker, int colors_per_row, ImGuiColorEditFlags flags)
 
IMGUI_API bool PaletteColorButton (const char *id, const gfx::SnesColor &color, bool is_selected, bool is_modified, const ImVec2 &size, ImGuiColorEditFlags flags)
 
ImVec4 ConvertColorToImVec4 (const Color &color)
 
std::string ColorToHexString (const Color &color)
 
bool InputHex (const char *label, uint64_t *data)
 
bool InputHex (const char *label, int *data, int num_digits, float input_width)
 
bool InputHexShort (const char *label, uint32_t *data)
 
bool InputHexWord (const char *label, uint16_t *data, float input_width, bool no_step)
 
bool InputHexWord (const char *label, int16_t *data, float input_width, bool no_step)
 
bool InputHexByte (const char *label, uint8_t *data, float input_width, bool no_step)
 
bool InputHexByte (const char *label, uint8_t *data, uint8_t max_value, float input_width, bool no_step)
 
void Paragraph (const std::string &text)
 
bool ClickableText (const std::string &text)
 
void ItemLabel (absl::string_view title, ItemLabelFlags flags)
 
bool ListBox (const char *label, int *current_item, const std::vector< std::string > &items, int height_in_items)
 
bool InputTileInfo (const char *label, gfx::TileInfo *tile_info)
 
ImGuiID GetID (const std::string &id)
 
ImGuiKey MapKeyToImGuiKey (char key)
 
void AddTableColumn (Table &table, const std::string &label, GuiElement element)
 
void DrawTable (Table &params)
 
bool OpenUrl (const std::string &url)
 
void MemoryEditorPopup (const std::string &label, std::span< uint8_t > memory)
 
bool InputHexByteCustom (const char *label, uint8_t *data, float input_width)
 
bool InputHexWordCustom (const char *label, uint16_t *data, float input_width)
 
void ColorsYaze ()
 
void DrawBitmapViewer (const std::vector< gfx::Bitmap > &bitmaps, float scale, int &current_bitmap_id)
 
TextEditor::LanguageDefinition GetAssemblyLanguageDef ()
 
void BeginWindowWithDisplaySettings (const char *id, bool *active, const ImVec2 &size, ImGuiWindowFlags flags)
 
void EndWindowWithDisplaySettings ()
 
void BeginPadding (int i)
 
void EndPadding ()
 
void BeginNoPadding ()
 
void EndNoPadding ()
 
void BeginChildWithScrollbar (const char *str_id)
 
void BeginChildWithScrollbar (const char *str_id, ImVec2 content_size)
 
void BeginChildBothScrollbars (int id)
 
void BeginTableCanvas (const char *table_id, int columns, ImVec2 canvas_size)
 
void EndTableCanvas ()
 
void SetupCanvasTableColumn (const char *label, float width_ratio)
 
void BeginCanvasTableCell (ImVec2 min_size)
 
void DrawDisplaySettings (ImGuiStyle *ref)
 
void DrawDisplaySettingsForPopup (ImGuiStyle *ref)
 
void TextWithSeparators (const absl::string_view &text)
 
void DrawFontManager ()
 
Color RGB (float r, float g, float b, float a=1.0f)
 
Color RGBA (int r, int g, int b, int a=255)
 
Color GetThemeColor (const std::string &color_name)
 
ImVec4 GetThemeColorVec4 (const std::string &color_name)
 
Color GetPrimary ()
 
Color GetPrimaryHover ()
 
Color GetPrimaryActive ()
 
Color GetSecondary ()
 
Color GetSurface ()
 
Color GetSurfaceVariant ()
 
Color GetSurfaceContainer ()
 
Color GetSurfaceContainerHigh ()
 
Color GetSurfaceContainerHighest ()
 
Color GetOnSurface ()
 
Color GetOnSurfaceVariant ()
 
Color GetOnPrimary ()
 
Color GetOutline ()
 
Color GetTextSecondary ()
 
Color GetTextDisabled ()
 
Color GetShadow ()
 
ImVec4 GetPrimaryVec4 ()
 
ImVec4 GetPrimaryHoverVec4 ()
 
ImVec4 GetPrimaryActiveVec4 ()
 
ImVec4 GetSurfaceVec4 ()
 
ImVec4 GetSurfaceVariantVec4 ()
 
ImVec4 GetSurfaceContainerVec4 ()
 
ImVec4 GetSurfaceContainerHighVec4 ()
 
ImVec4 GetSurfaceContainerHighestVec4 ()
 
ImVec4 GetOnSurfaceVec4 ()
 
ImVec4 GetOnSurfaceVariantVec4 ()
 
ImVec4 GetOnPrimaryVec4 ()
 
ImVec4 GetOutlineVec4 ()
 
ImVec4 GetTextSecondaryVec4 ()
 
ImVec4 GetTextDisabledVec4 ()
 
ImVec4 GetShadowVec4 ()
 
ImVec4 GetThemeColor (ImGuiCol idx)
 
ImVec4 GetSuccessColor ()
 
ImVec4 GetWarningColor ()
 
ImVec4 GetErrorColor ()
 
ImVec4 GetInfoColor ()
 
ImVec4 GetAccentColor ()
 
ImVec4 GetEntranceColor ()
 
ImVec4 GetExitColor ()
 
ImVec4 GetItemColor ()
 
ImVec4 GetSpriteColor ()
 
ImVec4 GetSelectedColor ()
 
ImVec4 GetLockedColor ()
 
ImVec4 GetVanillaRomColor ()
 
ImVec4 GetCustomRomColor ()
 
ImVec4 GetModifiedColor ()
 
void BeginField (const char *label, float label_width)
 
void EndField ()
 
bool BeginPropertyTable (const char *id, int columns, ImGuiTableFlags extra_flags)
 
void EndPropertyTable ()
 
void PropertyRow (const char *label, const char *value)
 
void PropertyRow (const char *label, int value)
 
void PropertyRowHex (const char *label, uint8_t value)
 
void PropertyRowHex (const char *label, uint16_t value)
 
void SectionHeader (const char *icon, const char *label, const ImVec4 &color)
 
bool IconButton (const char *icon, const char *label, const ImVec2 &size)
 
bool ColoredButton (const char *label, ButtonType type, const ImVec2 &size)
 
bool ToggleIconButton (const char *icon_on, const char *icon_off, bool *state, const char *tooltip)
 
void HelpMarker (const char *desc)
 
void SeparatorText (const char *label)
 
void StatusBadge (const char *text, ButtonType type)
 
void BeginToolset (const char *id)
 
void EndToolset ()
 
void ToolsetButton (const char *icon, bool selected, const char *tooltip, std::function< void()> on_click)
 
void BeginCanvasContainer (const char *id, bool scrollable)
 
void EndCanvasContainer ()
 
bool EditorTabItem (const char *icon, const char *label, bool *p_open)
 
bool ConfirmationDialog (const char *id, const char *title, const char *message, const char *confirm_text, const char *cancel_text)
 
void StatusIndicator (const char *label, bool active, const char *tooltip)
 
void RomVersionBadge (const char *version, bool is_vanilla)
 
void LockIndicator (bool locked, const char *label)
 
void VerticalSpacing (float pixels)
 
void HorizontalSpacing (float pixels)
 
void CenterText (const char *text)
 
void RightAlign (float width)
 
float GetPulseAlpha (float speed)
 
float GetFadeIn (float duration)
 
void PushPulseEffect (float speed)
 
void PopPulseEffect ()
 
void LoadingSpinner (const char *label, float radius)
 
float GetResponsiveWidth (float min_width, float max_width, float ratio)
 
void SetupResponsiveColumns (int count, float min_col_width)
 
void BeginTwoColumns (const char *id, float split_ratio)
 
void SwitchColumn ()
 
void EndTwoColumns ()
 
bool LabeledInputHex (const char *label, uint8_t *value)
 
bool LabeledInputHex (const char *label, uint16_t *value)
 
bool IconCombo (const char *icon, const char *label, int *current, const char *const items[], int count)
 
bool ThemedButton (const char *label, const ImVec2 &size=ImVec2(0, 0))
 Theme-aware widget library.
 
bool ThemedIconButton (const char *icon, const char *tooltip=nullptr)
 Themed button with icon (Material Design Icons)
 
bool PrimaryButton (const char *label, const ImVec2 &size=ImVec2(0, 0))
 Primary action button (uses accent color)
 
bool DangerButton (const char *label, const ImVec2 &size=ImVec2(0, 0))
 Danger/destructive action button (uses error color)
 
void SectionHeader (const char *label)
 Themed section header with accent color.
 
bool ThemedCollapsingHeader (const char *label, ImGuiTreeNodeFlags flags=0)
 Collapsible section with themed header.
 
void ThemedCard (const char *label, std::function< void()> content, const ImVec2 &size=ImVec2(0, 0))
 Themed card with rounded corners and shadow.
 
void BeginThemedPanel (const char *label, const ImVec2 &size=ImVec2(0, 0))
 Begin themed panel (manual version of ThemedCard)
 
void EndThemedPanel ()
 End themed panel.
 
bool ThemedInputText (const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0)
 Themed text input.
 
bool ThemedInputInt (const char *label, int *v, int step=1, int step_fast=100, ImGuiInputTextFlags flags=0)
 Themed integer input.
 
bool ThemedInputFloat (const char *label, float *v, float step=0.0f, float step_fast=0.0f, const char *format="%.3f", ImGuiInputTextFlags flags=0)
 Themed float input.
 
bool ThemedCheckbox (const char *label, bool *v)
 Themed checkbox.
 
bool ThemedCombo (const char *label, int *current_item, const char *const items[], int items_count, int popup_max_height_in_items=-1)
 Themed combo box.
 
bool BeginThemedTable (const char *str_id, int columns, ImGuiTableFlags flags=0, const ImVec2 &outer_size=ImVec2(0, 0), float inner_width=0.0f)
 Begin themed table with automatic styling.
 
void EndThemedTable ()
 End themed table.
 
void ThemedHelpMarker (const char *desc)
 Themed help marker with tooltip.
 
void BeginThemedTooltip ()
 Begin themed tooltip.
 
void EndThemedTooltip ()
 End themed tooltip.
 
void ThemedStatusText (const char *text, StatusType type)
 Themed status text (success, warning, error, info)
 
void ThemedProgressBar (float fraction, const ImVec2 &size=ImVec2(-1, 0), const char *overlay=nullptr)
 Themed progress bar.
 
void ColorInfoPanel (const yaze::gfx::SnesColor &color, bool show_snes_format=true, bool show_hex_format=true)
 Display color information with copy-to-clipboard functionality.
 
void ModifiedBadge (bool is_modified, const char *text=nullptr)
 Modified indicator badge (displayed as text with icon)
 
void PushThemedWidgetColors ()
 Apply theme colors to next widget.
 
void PopThemedWidgetColors ()
 Restore previous colors.
 
const EnhancedThemeGetTheme ()
 Get current theme (shortcut)
 

Variables

thread_local std::vector< std::string > g_auto_scope_stack_
 
constexpr uint32_t kRectangleColor = IM_COL32(32, 32, 32, 255)
 
constexpr uint32_t kWhiteColor = IM_COL32(255, 255, 255, 255)
 
constexpr ImGuiButtonFlags kMouseFlags
 
const int kStepOneHex = 0x01
 
const int kStepFastHex = 0x0F
 
constexpr ImVec2 kDefaultModalSize = ImVec2(200, 0)
 
constexpr ImVec2 kZeroPos = ImVec2(0, 0)
 

Detailed Description

Graphical User Interface (GUI) components for the application.

Typedef Documentation

◆ ItemLabelFlags

using yaze::gui::ItemLabelFlags = typedef enum ItemLabelFlag { Left = 1u << 0u, Right = 1u << 1u, Default = Left, }

Definition at line 55 of file input.h.

◆ GuiElement

using yaze::gui::GuiElement = typedef std::variant<std::function<void()>, std::string>

Definition at line 67 of file input.h.

Enumeration Type Documentation

◆ CanvasType

enum class yaze::gui::CanvasType
strong
Enumerator
kTile 
kBlock 
kMap 

Definition at line 44 of file canvas.h.

◆ CanvasMode

enum class yaze::gui::CanvasMode
strong
Enumerator
kPaint 
kSelect 

Definition at line 45 of file canvas.h.

◆ CanvasGridSize

enum class yaze::gui::CanvasGridSize
strong
Enumerator
k8x8 
k16x16 
k32x32 
k64x64 

Definition at line 46 of file canvas.h.

◆ TileInteractionMode

enum class yaze::gui::TileInteractionMode
strong

Tile interaction mode for canvas.

Enumerator
kNone 
kPaintSingle 
kPaintDrag 
kSelectSingle 
kSelectRectangle 
kColorPaint 

Definition at line 15 of file canvas_interaction_handler.h.

◆ MenuSectionPriority

enum class yaze::gui::MenuSectionPriority
strong

Menu section priority for controlling rendering order.

Lower values render first in the context menu:

  • Editor-specific items (0) appear at the top
  • Bitmap/palette operations (10) in the middle
  • Canvas properties (20) near the bottom
  • Debug/performance (30) at the bottom
Enumerator
kEditorSpecific 
kBitmapPalette 
kCanvasProperties 
kDebug 

Definition at line 23 of file canvas_menu.h.

◆ CanvasUsage

enum class yaze::gui::CanvasUsage
strong

Canvas usage patterns and tracking.

Enumerator
kTilePainting 
kTileSelecting 
kSelectRectangle 
kColorPainting 
kBitmapEditing 
kPaletteEditing 
kBppConversion 
kPerformanceMode 
kEntityManipulation 
kUnknown 

Definition at line 17 of file canvas_usage_tracker.h.

◆ CanvasInteraction

enum class yaze::gui::CanvasInteraction
strong

Canvas interaction types.

Enumerator
kMouseClick 
kMouseDrag 
kMouseRelease 
kKeyboardInput 
kContextMenu 
kModalOpen 
kModalClose 
kToolChange 
kModeChange 

Definition at line 33 of file canvas_usage_tracker.h.

◆ ButtonType

enum class yaze::gui::ButtonType
strong
Enumerator
Default 
Success 
Warning 
Error 
Info 

Definition at line 73 of file ui_helpers.h.

◆ StatusType

enum class yaze::gui::StatusType
strong
Enumerator
kSuccess 
kWarning 
kError 
kInfo 

Definition at line 168 of file themed_widgets.h.

Function Documentation

◆ AutoRegisterLastItem()

void yaze::gui::AutoRegisterLastItem ( const std::string &  widget_type,
const std::string &  explicit_label = "",
const std::string &  description = "" 
)

Automatically register the last ImGui item.

Call this after any ImGui widget creation to automatically register it. Captures widget type, bounds, visibility, and enabled state.

Parameters
widget_typeType of widget ("button", "input", "checkbox", etc.)
explicit_labelOptional explicit label (uses ImGui::GetItemLabel() if empty)
descriptionOptional description for the test harness

Definition at line 26 of file widget_auto_register.cc.

References yaze::gui::WidgetIdRegistry::WidgetMetadata::bounds, yaze::gui::WidgetIdRegistry::WidgetMetadata::enabled, g_auto_scope_stack_, yaze::gui::WidgetIdRegistry::Instance(), yaze::gui::WidgetIdRegistry::WidgetMetadata::label, yaze::gui::WidgetIdRegistry::WidgetBounds::max_x, yaze::gui::WidgetIdRegistry::WidgetBounds::max_y, yaze::gui::WidgetIdRegistry::WidgetBounds::min_x, yaze::gui::WidgetIdRegistry::WidgetBounds::min_y, yaze::gui::WidgetIdRegistry::NormalizeLabel(), yaze::gui::WidgetIdRegistry::RegisterWidget(), yaze::gui::WidgetIdRegistry::WidgetBounds::valid, yaze::gui::WidgetIdRegistry::WidgetMetadata::visible, and yaze::gui::WidgetIdRegistry::WidgetMetadata::window_name.

Referenced by AutoBeginMenu(), AutoBeginTabItem(), AutoButton(), AutoCheckbox(), AutoCollapsingHeader(), AutoCombo(), AutoInputFloat(), AutoInputInt(), AutoInputText(), AutoInputTextMultiline(), AutoMenuItem(), AutoMenuItem(), AutoRadioButton(), AutoRadioButton(), AutoSelectable(), AutoSelectable(), AutoSliderFloat(), AutoSliderInt(), AutoSmallButton(), AutoTreeNode(), AutoTreeNodeEx(), RegisterCanvas(), and RegisterTable().

Here is the call graph for this function:

◆ AutoButton()

bool yaze::gui::AutoButton ( const char *  label,
const ImVec2 &  size = ImVec2(0, 0) 
)
inline

Definition at line 77 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoSmallButton()

bool yaze::gui::AutoSmallButton ( const char *  label)
inline

Definition at line 83 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoCheckbox()

bool yaze::gui::AutoCheckbox ( const char *  label,
bool *  v 
)
inline

Definition at line 89 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoRadioButton() [1/2]

bool yaze::gui::AutoRadioButton ( const char *  label,
bool  active 
)
inline

Definition at line 95 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoRadioButton() [2/2]

bool yaze::gui::AutoRadioButton ( const char *  label,
int *  v,
int  v_button 
)
inline

Definition at line 101 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoInputText()

bool yaze::gui::AutoInputText ( const char *  label,
char *  buf,
size_t  buf_size,
ImGuiInputTextFlags  flags = 0,
ImGuiInputTextCallback  callback = nullptr,
void *  user_data = nullptr 
)
inline

Definition at line 107 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoInputTextMultiline()

bool yaze::gui::AutoInputTextMultiline ( const char *  label,
char *  buf,
size_t  buf_size,
const ImVec2 &  size = ImVec2(0, 0),
ImGuiInputTextFlags  flags = 0,
ImGuiInputTextCallback  callback = nullptr,
void *  user_data = nullptr 
)
inline

Definition at line 116 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoInputInt()

bool yaze::gui::AutoInputInt ( const char *  label,
int *  v,
int  step = 1,
int  step_fast = 100,
ImGuiInputTextFlags  flags = 0 
)
inline

Definition at line 126 of file widget_auto_register.h.

References AutoRegisterLastItem().

Referenced by yaze::gui::DungeonObjectEmulatorPreview::RenderControls().

Here is the call graph for this function:

◆ AutoInputFloat()

bool yaze::gui::AutoInputFloat ( const char *  label,
float *  v,
float  step = 0.0f,
float  step_fast = 0.0f,
const char *  format = "%.3f",
ImGuiInputTextFlags  flags = 0 
)
inline

Definition at line 133 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoSliderInt()

bool yaze::gui::AutoSliderInt ( const char *  label,
int *  v,
int  v_min,
int  v_max,
const char *  format = "%d",
ImGuiSliderFlags  flags = 0 
)
inline

Definition at line 141 of file widget_auto_register.h.

References AutoRegisterLastItem().

Referenced by yaze::gui::DungeonObjectEmulatorPreview::RenderControls().

Here is the call graph for this function:

◆ AutoSliderFloat()

bool yaze::gui::AutoSliderFloat ( const char *  label,
float *  v,
float  v_min,
float  v_max,
const char *  format = "%.3f",
ImGuiSliderFlags  flags = 0 
)
inline

Definition at line 148 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoCombo()

bool yaze::gui::AutoCombo ( const char *  label,
int *  current_item,
const char *const  items[],
int  items_count,
int  popup_max_height_in_items = -1 
)
inline

Definition at line 155 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoSelectable() [1/2]

bool yaze::gui::AutoSelectable ( const char *  label,
bool  selected = false,
ImGuiSelectableFlags  flags = 0,
const ImVec2 &  size = ImVec2(0, 0) 
)
inline

Definition at line 162 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoSelectable() [2/2]

bool yaze::gui::AutoSelectable ( const char *  label,
bool *  p_selected,
ImGuiSelectableFlags  flags = 0,
const ImVec2 &  size = ImVec2(0, 0) 
)
inline

Definition at line 170 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoMenuItem() [1/2]

bool yaze::gui::AutoMenuItem ( const char *  label,
const char *  shortcut = nullptr,
bool  selected = false,
bool  enabled = true 
)
inline

Definition at line 178 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoMenuItem() [2/2]

bool yaze::gui::AutoMenuItem ( const char *  label,
const char *  shortcut,
bool *  p_selected,
bool  enabled = true 
)
inline

Definition at line 185 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoBeginMenu()

bool yaze::gui::AutoBeginMenu ( const char *  label,
bool  enabled = true 
)
inline

Definition at line 192 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoBeginTabItem()

bool yaze::gui::AutoBeginTabItem ( const char *  label,
bool *  p_open = nullptr,
ImGuiTabItemFlags  flags = 0 
)
inline

Definition at line 200 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoTreeNode()

bool yaze::gui::AutoTreeNode ( const char *  label)
inline

Definition at line 209 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoTreeNodeEx()

bool yaze::gui::AutoTreeNodeEx ( const char *  label,
ImGuiTreeNodeFlags  flags = 0 
)
inline

Definition at line 217 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ AutoCollapsingHeader()

bool yaze::gui::AutoCollapsingHeader ( const char *  label,
ImGuiTreeNodeFlags  flags = 0 
)
inline

Definition at line 225 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ RegisterCanvas()

void yaze::gui::RegisterCanvas ( const char *  canvas_name,
const std::string &  description = "" 
)
inline

Register a canvas widget after BeginChild or similar.

Canvases typically use BeginChild which doesn't have a return value, so we provide a separate registration helper.

Parameters
canvas_nameName of the canvas (should match BeginChild name)
descriptionOptional description of the canvas purpose

Definition at line 246 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ RegisterTable()

void yaze::gui::RegisterTable ( const char *  table_name,
const std::string &  description = "" 
)
inline

Register a table after BeginTable.

Parameters
table_nameName of the table (should match BeginTable name)
descriptionOptional description

Definition at line 256 of file widget_auto_register.h.

References AutoRegisterLastItem().

Here is the call graph for this function:

◆ BeginCanvas()

◆ EndCanvas()

void yaze::gui::EndCanvas ( Canvas canvas)

Definition at line 1412 of file canvas.cc.

References yaze::gui::Canvas::DrawGrid(), and yaze::gui::Canvas::DrawOverlay().

Referenced by yaze::editor::MessageEditor::DrawFontAtlas().

Here is the call graph for this function:

◆ GraphicsBinCanvasPipeline() [1/2]

void yaze::gui::GraphicsBinCanvasPipeline ( int  width,
int  height,
int  tile_size,
int  num_sheets_to_load,
int  canvas_id,
bool  is_loaded,
gfx::BitmapTable graphics_bin 
)

◆ BitmapCanvasPipeline()

◆ TableCanvasPipeline()

◆ GraphicsBinCanvasPipeline() [2/2]

void yaze::gui::GraphicsBinCanvasPipeline ( int  width,
int  height,
int  tile_size,
int  num_sheets_to_load,
int  canvas_id,
bool  is_loaded,
BitmapTable &  graphics_bin 
)

◆ CalculateCanvasGeometry()

CanvasGeometry yaze::gui::CalculateCanvasGeometry ( const CanvasConfig config,
ImVec2  requested_size,
ImVec2  cursor_screen_pos,
ImVec2  content_region_avail 
)

Calculate canvas geometry from configuration and ImGui context.

Extracts the geometry calculation logic from Canvas::DrawBackground(). Computes screen-space positions, sizes, and scroll offsets for a canvas based on its configuration and the current ImGui layout state.

Parameters
configCanvas configuration (size, scale, custom size flag)
requested_sizeExplicitly requested canvas size (0,0 = use config)
cursor_screen_posCurrent ImGui cursor position (from GetCursorScreenPos)
content_region_availAvailable content region (from GetContentRegionAvail)
Returns
Calculated geometry for this frame

Definition at line 9 of file canvas_geometry.cc.

References yaze::gui::CanvasUtils::CalculateCanvasSize(), yaze::gui::CanvasUtils::CalculateScaledCanvasSize(), yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_p1, yaze::gui::CanvasConfig::canvas_size, yaze::gui::CanvasGeometry::canvas_sz, yaze::gui::CanvasConfig::custom_canvas_size, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasGeometry::scaled_size, yaze::gui::CanvasGeometry::scrolling, and yaze::gui::CanvasConfig::scrolling.

Referenced by yaze::gui::Canvas::DrawBackground().

Here is the call graph for this function:

◆ CalculateMouseInCanvas()

ImVec2 yaze::gui::CalculateMouseInCanvas ( const CanvasGeometry geometry,
ImVec2  mouse_screen_pos 
)

Calculate mouse position in canvas space.

Converts screen-space mouse coordinates to canvas-space coordinates, accounting for canvas position and scroll offset. This is the correct coordinate system for tile/entity placement calculations.

Parameters
geometryCanvas geometry (must be current frame)
mouse_screen_posMouse position in screen space
Returns
Mouse position in canvas space

Definition at line 54 of file canvas_geometry.cc.

References GetCanvasOrigin().

Referenced by yaze::gui::Canvas::DrawBackground().

Here is the call graph for this function:

◆ IsPointInCanvasBounds()

bool yaze::gui::IsPointInCanvasBounds ( const CanvasGeometry geometry,
ImVec2  point 
)

Check if a point is within canvas bounds.

Tests whether a screen-space point lies within the canvas rectangle. Useful for hit testing and hover detection.

Parameters
geometryCanvas geometry (must be current frame)
pointPoint in screen space to test
Returns
True if point is within canvas bounds

Definition at line 67 of file canvas_geometry.cc.

References yaze::gui::CanvasGeometry::canvas_p0, and yaze::gui::CanvasGeometry::canvas_p1.

◆ ApplyScrollDelta()

void yaze::gui::ApplyScrollDelta ( CanvasGeometry geometry,
ImVec2  delta 
)

Apply scroll delta to geometry.

Updates the scroll offset in the geometry. Used for pan operations.

Parameters
geometryCanvas geometry to update
deltaScroll delta (typically ImGui::GetIO().MouseDelta)

Definition at line 77 of file canvas_geometry.cc.

References yaze::gui::CanvasGeometry::scrolling.

Referenced by yaze::gui::Canvas::DrawBackground().

◆ GetCanvasOrigin()

ImVec2 yaze::gui::GetCanvasOrigin ( const CanvasGeometry geometry)
inline

Get origin point (canvas top-left + scroll offset)

Computes the "locked scrolled origin" used throughout canvas rendering. This is the reference point for all canvas-space to screen-space conversions.

Parameters
geometryCanvas geometry
Returns
Origin point in screen space

Definition at line 78 of file canvas_geometry.h.

References yaze::gui::CanvasGeometry::canvas_p0, and yaze::gui::CanvasGeometry::scrolling.

Referenced by CalculateMouseInCanvas().

◆ AlignToGrid()

ImVec2 yaze::gui::AlignToGrid ( ImVec2  pos,
float  grid_step 
)

Align position to grid.

Snaps canvas position to nearest grid cell.

Parameters
posCanvas position
grid_stepGrid cell size
Returns
Grid-aligned position

Definition at line 28 of file canvas_interaction.cc.

Referenced by yaze::gui::CanvasInteractionHandler::DrawSolidTilePainter(), yaze::gui::CanvasInteractionHandler::DrawTilemapPainter(), HandleHover(), HandleRectangleSelection(), HandleTilemapPaint(), HandleTilePaint(), HandleTilePaintWithPreview(), and HandleTileSelection().

◆ GetMouseInCanvasSpace()

ImVec2 yaze::gui::GetMouseInCanvasSpace ( const CanvasGeometry geometry)

Get mouse position in canvas space.

Converts screen-space mouse position to canvas-space coordinates.

Parameters
geometryCanvas geometry (includes origin)
Returns
Mouse position in canvas space

Definition at line 33 of file canvas_interaction.cc.

References yaze::gui::CanvasGeometry::canvas_p0, and yaze::gui::CanvasGeometry::scrolling.

Referenced by HandleHover(), HandleRectangleSelection(), HandleTilemapPaint(), HandleTilePaint(), HandleTilePaintWithPreview(), and HandleTileSelection().

◆ IsMouseInCanvas()

bool yaze::gui::IsMouseInCanvas ( const CanvasGeometry geometry)

Check if mouse is in canvas bounds.

Parameters
geometryCanvas geometry
Returns
True if mouse is within canvas

Definition at line 40 of file canvas_interaction.cc.

References yaze::gui::CanvasGeometry::canvas_p0, and yaze::gui::CanvasGeometry::canvas_p1.

Referenced by HandleEntityInteraction(), HandleHover(), HandleRectangleSelection(), HandleTilemapPaint(), HandleTilePaint(), HandleTilePaintWithPreview(), and HandleTileSelection().

◆ CanvasToTileGrid()

ImVec2 yaze::gui::CanvasToTileGrid ( ImVec2  canvas_pos,
float  tile_size,
float  global_scale 
)

Calculate tile grid indices from canvas position.

Parameters
canvas_posCanvas-space position
tile_sizeLogical tile size
global_scaleCanvas scale factor
Returns
Tile grid position (x, y)

Definition at line 48 of file canvas_interaction.cc.

◆ HandleRectangleSelection()

RectSelectionEvent yaze::gui::HandleRectangleSelection ( const CanvasGeometry geometry,
int  current_map,
float  tile_size,
ImDrawList *  draw_list,
ImGuiMouseButton  mouse_button = ImGuiMouseButton_Right 
)

Handle rectangle selection interaction.

Processes right-click drag to select multiple tiles in a rectangular region. Returns event when selection completes.

Parameters
geometryCanvas geometry (position, size, scale)
current_mapCurrent map ID for coordinate calculation
tile_sizeLogical tile size (before scaling)
draw_listImGui draw list for preview rendering
mouse_buttonMouse button for selection (default: right)
Returns
RectSelectionEvent with selection results

Definition at line 58 of file canvas_interaction.cc.

References AlignToGrid(), yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_sz, yaze::gui::RectSelectionEvent::current_map, yaze::gui::anonymous_namespace{canvas_interaction.cc}::SelectRectState::drag_start_pos, GetMouseInCanvasSpace(), yaze::gui::anonymous_namespace{canvas_interaction.cc}::SelectRectState::is_dragging, IsMouseInCanvas(), and yaze::gui::CanvasGeometry::scaled_size.

Referenced by yaze::gui::CanvasInteractionHandler::DrawSelectRect().

Here is the call graph for this function:

◆ HandleTileSelection()

TileSelectionEvent yaze::gui::HandleTileSelection ( const CanvasGeometry geometry,
int  current_map,
float  tile_size,
ImGuiMouseButton  mouse_button = ImGuiMouseButton_Right 
)

Handle single tile selection (right-click)

Processes single right-click to select one tile.

Parameters
geometryCanvas geometry
current_mapCurrent map ID
tile_sizeLogical tile size
mouse_buttonMouse button for selection
Returns
TileSelectionEvent with selected tile

Definition at line 170 of file canvas_interaction.cc.

References AlignToGrid(), yaze::gui::CanvasGeometry::canvas_sz, GetMouseInCanvasSpace(), IsMouseInCanvas(), and yaze::gui::CanvasGeometry::scaled_size.

Here is the call graph for this function:

◆ HandleTilePaint()

TilePaintEvent yaze::gui::HandleTilePaint ( const CanvasGeometry geometry,
int  tile_id,
float  tile_size,
ImGuiMouseButton  mouse_button = ImGuiMouseButton_Left 
)

Handle tile painting interaction.

Processes left-click/drag to paint tiles on tilemap. Returns event when paint action occurs.

Parameters
geometryCanvas geometry
tile_idCurrent tile ID to paint
tile_sizeLogical tile size
mouse_buttonMouse button for painting
Returns
TilePaintEvent with paint results

Definition at line 221 of file canvas_interaction.cc.

References AlignToGrid(), yaze::gui::CanvasGeometry::canvas_sz, GetMouseInCanvasSpace(), IsMouseInCanvas(), yaze::gui::CanvasGeometry::scaled_size, and yaze::gui::TilePaintEvent::tile_id.

Here is the call graph for this function:

◆ HandleTilePaintWithPreview()

TilePaintEvent yaze::gui::HandleTilePaintWithPreview ( const CanvasGeometry geometry,
const gfx::Bitmap bitmap,
float  tile_size,
ImDrawList *  draw_list,
ImGuiMouseButton  mouse_button = ImGuiMouseButton_Left 
)

Handle tile painter with bitmap preview.

Renders preview of tile at hover position and handles paint interaction.

Parameters
geometryCanvas geometry
bitmapTile bitmap to paint
tile_sizeLogical tile size
draw_listImGui draw list for preview
mouse_buttonMouse button for painting
Returns
TilePaintEvent with paint results

Definition at line 253 of file canvas_interaction.cc.

References AlignToGrid(), yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_sz, GetMouseInCanvasSpace(), yaze::gfx::Bitmap::is_active(), IsMouseInCanvas(), yaze::gui::CanvasGeometry::scaled_size, yaze::gui::CanvasGeometry::scrolling, and yaze::gfx::Bitmap::texture().

◆ HandleTilemapPaint()

TilePaintEvent yaze::gui::HandleTilemapPaint ( const CanvasGeometry geometry,
const gfx::Tilemap tilemap,
int  current_tile,
ImDrawList *  draw_list,
ImGuiMouseButton  mouse_button = ImGuiMouseButton_Left 
)

Handle tilemap painting interaction.

Processes painting with tilemap data (multiple tiles).

Parameters
geometryCanvas geometry
tilemapTilemap containing tile data
current_tileCurrent tile index in tilemap
draw_listImGui draw list for preview
mouse_buttonMouse button for painting
Returns
TilePaintEvent with paint results

Definition at line 296 of file canvas_interaction.cc.

References AlignToGrid(), yaze::gfx::Tilemap::atlas, yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_sz, GetMouseInCanvasSpace(), yaze::gfx::Bitmap::is_active(), IsMouseInCanvas(), yaze::gui::CanvasGeometry::scaled_size, yaze::gui::CanvasGeometry::scrolling, and yaze::gui::TilePaintEvent::tile_id.

Here is the call graph for this function:

◆ HandleHover()

HoverEvent yaze::gui::HandleHover ( const CanvasGeometry geometry,
float  tile_size 
)

Update hover state for canvas.

Calculates hover position and grid-aligned preview position.

Parameters
geometryCanvas geometry
tile_sizeLogical tile size
Returns
HoverEvent with hover state

Definition at line 338 of file canvas_interaction.cc.

References AlignToGrid(), yaze::gui::CanvasGeometry::canvas_sz, GetMouseInCanvasSpace(), IsMouseInCanvas(), and yaze::gui::CanvasGeometry::scaled_size.

Here is the call graph for this function:

◆ RenderHoverPreview()

void yaze::gui::RenderHoverPreview ( const CanvasGeometry geometry,
const HoverEvent hover,
float  tile_size,
ImDrawList *  draw_list,
ImU32  color = IM_COL32(255, 255, 255, 80) 
)

Render hover preview overlay.

Draws preview rectangle at hover position.

Parameters
geometryCanvas geometry
hoverHover event from HandleHover
tile_sizeLogical tile size
draw_listImGui draw list
colorPreview color (default: white with alpha)

Definition at line 355 of file canvas_interaction.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_sz, yaze::gui::HoverEvent::grid_position, yaze::gui::HoverEvent::is_valid, yaze::gui::CanvasGeometry::scaled_size, and yaze::gui::CanvasGeometry::scrolling.

◆ HandleEntityInteraction()

EntityInteractionEvent yaze::gui::HandleEntityInteraction ( const CanvasGeometry geometry,
int  entity_id,
ImVec2  entity_position 
)

Handle entity interaction (hover, click, drag)

Processes entity manipulation events.

Parameters
geometryCanvas geometry
entity_idEntity being interacted with
entity_positionCurrent entity position
Returns
EntityInteractionEvent with interaction results

Definition at line 382 of file canvas_interaction.cc.

References yaze::gui::EntityInteractionEvent::entity_id, and IsMouseInCanvas().

Here is the call graph for this function:

◆ RenderMenuItem()

void yaze::gui::RenderMenuItem ( const CanvasMenuItem item,
std::function< void(const std::string &, std::function< void()>)>  popup_opened_callback = nullptr 
)

◆ RenderMenuSection()

void yaze::gui::RenderMenuSection ( const CanvasMenuSection section,
std::function< void(const std::string &, std::function< void()>)>  popup_opened_callback = nullptr 
)

Render a menu section.

Renders section title (if present), all items, and separator.

Parameters
sectionMenu section to render
popup_opened_callbackOptional callback invoked when popup is opened

Definition at line 75 of file canvas_menu.cc.

References yaze::gui::CanvasMenuSection::items, RenderMenuItem(), yaze::gui::CanvasMenuSection::separator_after, yaze::gui::CanvasMenuSection::title, and yaze::gui::CanvasMenuSection::title_color.

Referenced by RenderCanvasMenu().

Here is the call graph for this function:

◆ RenderCanvasMenu()

void yaze::gui::RenderCanvasMenu ( const CanvasMenuDefinition menu,
std::function< void(const std::string &, std::function< void()>)>  popup_opened_callback = nullptr 
)

Render a complete menu definition.

Renders all sections in order. Does not handle ImGui::BeginPopup/EndPopup - caller is responsible for popup context.

Parameters
menuMenu definition to render
popup_opened_callbackOptional callback invoked when popup is opened

Definition at line 100 of file canvas_menu.cc.

References yaze::gui::CanvasMenuDefinition::enabled, RenderMenuSection(), and yaze::gui::CanvasMenuDefinition::sections.

Referenced by yaze::gui::CanvasContextMenu::Render().

Here is the call graph for this function:

◆ RenderCanvasBackground()

void yaze::gui::RenderCanvasBackground ( ImDrawList *  draw_list,
const CanvasGeometry geometry 
)

Render canvas background and border.

Draws the canvas background rectangle (dark) and border (white) at the calculated geometry positions. Extracted from Canvas::DrawBackground().

Parameters
draw_listImGui draw list for rendering
geometryCanvas geometry for this frame

Definition at line 16 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_p1, kRectangleColor, and kWhiteColor.

Referenced by yaze::gui::Canvas::DrawBackground().

◆ RenderCanvasGrid()

void yaze::gui::RenderCanvasGrid ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
const CanvasConfig config,
int  highlight_tile_id = -1 
)

Render canvas grid with optional highlighting.

Draws grid lines, hex labels, and optional tile highlighting. Extracted from Canvas::DrawGrid().

Parameters
draw_listImGui draw list for rendering
geometryCanvas geometry
configCanvas configuration (grid settings)
highlight_tile_idTile ID to highlight (-1 = no highlight)

Definition at line 25 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_p1, yaze::gui::CanvasUtils::CanvasRenderContext::draw_list, yaze::gui::CanvasUtils::DrawCanvasGrid(), yaze::gui::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasConfig::grid_step, and yaze::gui::CanvasGeometry::scrolling.

Here is the call graph for this function:

◆ RenderCanvasOverlay()

void yaze::gui::RenderCanvasOverlay ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
const CanvasConfig config,
const ImVector< ImVec2 > &  points,
const ImVector< ImVec2 > &  selected_points 
)

Render canvas overlay (hover and selection points)

Draws hover preview points and selection rectangle points. Extracted from Canvas::DrawOverlay().

Parameters
draw_listImGui draw list for rendering
geometryCanvas geometry
configCanvas configuration (scale)
pointsHover preview points
selected_pointsSelection rectangle points

Definition at line 50 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_p1, yaze::gui::CanvasUtils::CanvasRenderContext::draw_list, yaze::gui::CanvasUtils::DrawCanvasOverlay(), yaze::gui::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasConfig::grid_step, and yaze::gui::CanvasGeometry::scrolling.

Here is the call graph for this function:

◆ RenderCanvasLabels()

void yaze::gui::RenderCanvasLabels ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
const CanvasConfig config,
const ImVector< ImVector< std::string > > &  labels,
int  current_labels,
int  tile_id_offset 
)

Render canvas labels on grid.

Draws custom text labels on canvas tiles. Extracted from Canvas::DrawInfoGrid().

Parameters
draw_listImGui draw list for rendering
geometryCanvas geometry
configCanvas configuration
labelsLabel arrays (one per label set)
current_labelsActive label set index
tile_id_offsetTile ID offset for calculation

Definition at line 72 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_p1, yaze::gui::CanvasUtils::CanvasRenderContext::draw_list, yaze::gui::CanvasUtils::DrawCanvasLabels(), yaze::gui::CanvasConfig::enable_custom_labels, yaze::gui::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasConfig::grid_step, and yaze::gui::CanvasGeometry::scrolling.

Here is the call graph for this function:

◆ RenderBitmapOnCanvas() [1/3]

void yaze::gui::RenderBitmapOnCanvas ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
gfx::Bitmap bitmap,
int  border_offset,
float  scale 
)

Render bitmap on canvas (border offset variant)

Draws a bitmap with a border offset from canvas origin. Extracted from Canvas::DrawBitmap().

Parameters
draw_listImGui draw list
geometryCanvas geometry
bitmapBitmap to render
border_offsetOffset from canvas edges
scaleRendering scale

Definition at line 104 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gui::CanvasGeometry::canvas_p1, yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::is_active(), kWhiteColor, yaze::gfx::Bitmap::texture(), and yaze::gfx::Bitmap::width().

Referenced by yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawBitmap(), and yaze::gui::Canvas::DrawBitmap().

Here is the call graph for this function:

◆ RenderBitmapOnCanvas() [2/3]

void yaze::gui::RenderBitmapOnCanvas ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
gfx::Bitmap bitmap,
int  x_offset,
int  y_offset,
float  scale,
int  alpha 
)

Render bitmap on canvas (x/y offset variant)

Draws a bitmap at specified x/y offset with optional alpha. Extracted from Canvas::DrawBitmap().

Parameters
draw_listImGui draw list
geometryCanvas geometry
bitmapBitmap to render
x_offsetX offset from canvas origin
y_offsetY offset from canvas origin
scaleRendering scale
alphaAlpha transparency (0-255)

Definition at line 124 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::is_active(), yaze::gui::CanvasGeometry::scrolling, yaze::gfx::Bitmap::texture(), and yaze::gfx::Bitmap::width().

Here is the call graph for this function:

◆ RenderBitmapOnCanvas() [3/3]

void yaze::gui::RenderBitmapOnCanvas ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
gfx::Bitmap bitmap,
ImVec2  dest_pos,
ImVec2  dest_size,
ImVec2  src_pos,
ImVec2  src_size 
)

Render bitmap on canvas (custom source/dest regions)

Draws a bitmap with explicit source and destination rectangles. Extracted from Canvas::DrawBitmap().

Parameters
draw_listImGui draw list
geometryCanvas geometry
bitmapBitmap to render
dest_posDestination position (canvas-relative)
dest_sizeDestination size
src_posSource position in bitmap
src_sizeSource size in bitmap

Definition at line 154 of file canvas_rendering.cc.

References yaze::gui::CanvasGeometry::canvas_p0, yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::is_active(), yaze::gfx::Bitmap::texture(), and yaze::gfx::Bitmap::width().

Here is the call graph for this function:

◆ RenderBitmapGroup()

void yaze::gui::RenderBitmapGroup ( ImDrawList *  draw_list,
const CanvasGeometry geometry,
std::vector< int > &  group,
gfx::Tilemap tilemap,
int  tile_size,
float  scale,
int  local_map_size,
ImVec2  total_map_size 
)

Render group of bitmaps from tilemap.

Draws multiple tiles for multi-tile selection preview. Extracted from Canvas::DrawBitmapGroup().

Parameters
draw_listImGui draw list
geometryCanvas geometry
groupVector of tile IDs to draw
tilemapTilemap containing the tiles
tile_sizeSize of each tile
scaleRendering scale
local_map_sizeSize of local map in pixels (default 512)
total_map_sizeTotal map size for boundary clamping

Definition at line 178 of file canvas_rendering.cc.

References yaze::gfx::Tilemap::atlas, yaze::gui::CanvasGeometry::canvas_p0, yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::is_active(), yaze::gfx::Tilemap::map_size, yaze::gui::CanvasGeometry::scrolling, yaze::gfx::Bitmap::texture(), yaze::gfx::Tilemap::tile_size, yaze::gfx::Bitmap::width(), yaze::gfx::Pair::x, and yaze::gfx::Pair::y.

Here is the call graph for this function:

◆ ConvertSnesColorToImVec4()

ImVec4 yaze::gui::ConvertSnesColorToImVec4 ( const gfx::SnesColor color)

Convert SnesColor to standard ImVec4 for display.

IMPORTANT: SnesColor.rgb() returns 0-255 values in ImVec4 (unconventional!) This function converts them to standard ImGui format (0.0-1.0)

Parameters
colorSnesColor with internal 0-255 storage
Returns
ImVec4 with standard 0.0-1.0 RGBA values for ImGui

Definition at line 19 of file color.cc.

References yaze::gfx::SnesColor::rgb().

Referenced by DisplayEditablePalette(), yaze::editor::PaletteGroupCard::DrawColorPicker(), yaze::editor::MapPropertiesSystem::DrawCustomBackgroundColorEditor(), yaze::editor::PaletteEditor::DrawCustomPalette(), yaze::editor::PaletteEditor::DrawCustomPaletteCard(), yaze::editor::palette_utility::DrawInlineColorEdit(), yaze::editor::PaletteEditor::DrawPaletteGroup(), yaze::editor::palette_utility::DrawPalettePreview(), yaze::editor::PaletteEditor::DrawQuickAccessCard(), yaze::editor::PaletteEditor::DrawQuickAccessTab(), InlinePaletteEditor(), PaletteColorButton(), PopupPaletteEditor(), SnesColorButton(), and SnesColorEdit4().

Here is the call graph for this function:

◆ ConvertImVec4ToSnesColor()

gfx::SnesColor yaze::gui::ConvertImVec4ToSnesColor ( const ImVec4 &  color)

◆ SnesColorButton()

IMGUI_API bool yaze::gui::SnesColorButton ( absl::string_view  id,
gfx::SnesColor color,
ImGuiColorEditFlags  flags,
const ImVec2 &  size_arg 
)

◆ SnesColorEdit4()

IMGUI_API bool yaze::gui::SnesColorEdit4 ( absl::string_view  label,
gfx::SnesColor color,
ImGuiColorEditFlags  flags 
)

◆ InlinePaletteSelector()

IMGUI_API bool yaze::gui::InlinePaletteSelector ( gfx::SnesPalette palette,
int  num_colors = 8,
int *  selected_index = nullptr 
)

Small inline palette selector - just color buttons for selection.

Parameters
palettePalette to display
num_colorsNumber of colors to show (default 8)
selected_indexPointer to store selected color index (optional)
Returns
True if a color was selected

Definition at line 77 of file color.cc.

References yaze::gfx::SnesPalette::size(), and SnesColorButton().

Here is the call graph for this function:

◆ InlinePaletteEditor()

IMGUI_API absl::Status yaze::gui::InlinePaletteEditor ( gfx::SnesPalette palette,
const std::string &  title = "",
ImGuiColorEditFlags  flags = 0 
)

Full inline palette editor with color picker and copy options.

Parameters
palettePalette to edit
titleDisplay title
flagsImGui color edit flags
Returns
Status of the operation

Definition at line 117 of file color.cc.

References ConvertSnesColorToImVec4(), yaze::gfx::SnesPalette::size(), SnesColorButton(), and yaze::gfx::SnesPalette::UpdateColor().

Referenced by yaze::editor::ScreenEditor::DrawOverworldMapEditor().

Here is the call graph for this function:

◆ PopupPaletteEditor()

IMGUI_API bool yaze::gui::PopupPaletteEditor ( const char *  popup_id,
gfx::SnesPalette palette,
ImGuiColorEditFlags  flags = 0 
)

Popup palette editor - same as inline but in a popup.

Parameters
popup_idID for the popup window
palettePalette to edit
flagsImGui color edit flags
Returns
True if palette was modified

Definition at line 183 of file color.cc.

References ConvertSnesColorToImVec4(), yaze::gfx::SnesPalette::size(), SnesColorButton(), and yaze::gfx::SnesPalette::UpdateColor().

Here is the call graph for this function:

◆ DisplayPalette()

IMGUI_API bool yaze::gui::DisplayPalette ( gfx::SnesPalette palette,
bool  loaded 
)

Definition at line 232 of file color.cc.

References yaze::gfx::SnesPalette::size().

Referenced by yaze::editor::MessageEditor::DrawCurrentMessage(), and yaze::editor::ScreenEditor::DrawInventoryMenuEditor().

Here is the call graph for this function:

◆ SelectablePalettePipeline()

void yaze::gui::SelectablePalettePipeline ( uint64_t &  palette_id,
bool &  refresh_graphics,
gfx::SnesPalette palette 
)

Definition at line 305 of file color.cc.

References yaze::gfx::SnesPalette::size(), and SnesColorButton().

Referenced by yaze::editor::GraphicsEditor::DrawPaletteControls(), and yaze::editor::GraphicsEditor::UpdatePaletteColumn().

Here is the call graph for this function:

◆ DisplayEditablePalette()

IMGUI_API absl::Status yaze::gui::DisplayEditablePalette ( gfx::SnesPalette palette,
const std::string &  title,
bool  show_color_picker,
int  colors_per_row,
ImGuiColorEditFlags  flags 
)

◆ PaletteColorButton()

◆ ConvertColorToImVec4()

ImVec4 yaze::gui::ConvertColorToImVec4 ( const Color color)
inline

Definition at line 21 of file color.h.

References yaze::gui::Color::alpha, yaze::gui::Color::blue, yaze::gui::Color::green, and yaze::gui::Color::red.

Referenced by yaze::gui::EnhancedTheme::ApplyToImGui(), yaze::gui::LayoutHelpers::BeginCanvasPanel(), yaze::gui::LayoutHelpers::BeginTableWithTheming(), BeginThemedPanel(), BeginThemedTooltip(), yaze::gui::LayoutHelpers::BeginToolbar(), yaze::gui::BackgroundRenderer::BlendColorWithFade(), DangerButton(), yaze::editor::UICoordinator::DrawCommandPalette(), DrawDisplaySettings(), DrawDisplaySettingsForPopup(), yaze::editor::SessionCoordinator::DrawSessionIndicator(), yaze::editor::EditorCardRegistry::DrawSidebar(), yaze::editor::AgentUITheme::FromCurrentTheme(), GetAccentColor(), GetErrorColor(), GetInfoColor(), GetModifiedColor(), GetOnPrimaryVec4(), GetOnSurfaceVariantVec4(), GetOnSurfaceVec4(), GetOutlineVec4(), GetPrimaryActiveVec4(), GetPrimaryHoverVec4(), GetPrimaryVec4(), GetSelectedColor(), GetShadowVec4(), GetSuccessColor(), GetSurfaceContainerHighestVec4(), GetSurfaceContainerHighVec4(), GetSurfaceContainerVec4(), GetSurfaceVariantVec4(), GetSurfaceVec4(), GetTextDisabledVec4(), GetTextSecondaryVec4(), GetWarningColor(), ModifiedBadge(), PrimaryButton(), PushThemedWidgetColors(), yaze::emu::ui::RenderAIAgentPanel(), yaze::emu::ui::RenderApuDebugger(), yaze::emu::ui::RenderBreakpointList(), yaze::emu::ui::RenderCpuInstructionLog(), yaze::gui::BackgroundRenderer::RenderDockingBackground(), yaze::emu::ui::RenderEmulatorInterface(), yaze::emu::ui::RenderKeyboardShortcuts(), yaze::emu::ui::RenderMemoryViewer(), yaze::emu::ui::RenderModernCpuDebugger(), yaze::emu::ui::RenderNavBar(), yaze::emu::ui::RenderPerformanceMonitor(), yaze::gui::BackgroundRenderer::RenderRadialGradient(), yaze::emu::ui::RenderSnesPpu(), yaze::gui::LayoutHelpers::SectionHeader(), yaze::gui::ThemeManager::ShowSimpleThemeEditor(), yaze::gui::ThemeManager::ShowThemeSelector(), ThemedButton(), ThemedCheckbox(), ThemedCollapsingHeader(), ThemedCombo(), ThemedInputFloat(), ThemedInputInt(), ThemedInputText(), ThemedProgressBar(), and ThemedStatusText().

◆ ColorToHexString()

std::string yaze::gui::ColorToHexString ( const Color color)
inline

◆ InputHex() [1/2]

◆ InputHex() [2/2]

IMGUI_API bool yaze::gui::InputHex ( const char *  label,
int *  data,
int  num_digits,
float  input_width 
)

Definition at line 162 of file input.cc.

References ImGui::InputScalarLeft(), kStepFastHex, and kStepOneHex.

Here is the call graph for this function:

◆ InputHexShort()

IMGUI_API bool yaze::gui::InputHexShort ( const char *  label,
uint32_t *  data 
)

Definition at line 169 of file input.cc.

References kStepFastHex, and kStepOneHex.

◆ InputHexWord() [1/2]

◆ InputHexWord() [2/2]

IMGUI_API bool yaze::gui::InputHexWord ( const char *  label,
int16_t *  data,
float  input_width,
bool  no_step 
)

Definition at line 182 of file input.cc.

References ImGui::InputScalarLeft(), kStepFastHex, and kStepOneHex.

Here is the call graph for this function:

◆ InputHexByte() [1/2]

◆ InputHexByte() [2/2]

IMGUI_API bool yaze::gui::InputHexByte ( const char *  label,
uint8_t *  data,
uint8_t  max_value,
float  input_width,
bool  no_step 
)

Definition at line 196 of file input.cc.

References ImGui::InputScalarLeft(), kStepFastHex, and kStepOneHex.

Here is the call graph for this function:

◆ Paragraph()

IMGUI_API void yaze::gui::Paragraph ( const std::string &  text)

Definition at line 209 of file input.cc.

◆ ClickableText()

IMGUI_API bool yaze::gui::ClickableText ( const std::string &  text)
Todo:
Setup themes and text/clickable colors

Definition at line 214 of file input.cc.

◆ ItemLabel()

IMGUI_API void yaze::gui::ItemLabel ( absl::string_view  title,
ItemLabelFlags  flags 
)

Definition at line 268 of file input.cc.

Referenced by yaze::editor::MusicEditor::DrawToolset().

◆ ListBox()

IMGUI_API bool yaze::gui::ListBox ( const char *  label,
int *  current_item,
const std::vector< std::string > &  items,
int  height_in_items 
)

Definition at line 313 of file input.cc.

◆ InputTileInfo()

bool yaze::gui::InputTileInfo ( const char *  label,
gfx::TileInfo tile_info 
)

◆ GetID()

IMGUI_API ImGuiID yaze::gui::GetID ( const std::string &  id)

◆ MapKeyToImGuiKey()

ImGuiKey yaze::gui::MapKeyToImGuiKey ( char  key)

◆ AddTableColumn()

void yaze::gui::AddTableColumn ( Table table,
const std::string &  label,
GuiElement  element 
)

◆ DrawTable()

◆ OpenUrl()

IMGUI_API bool yaze::gui::OpenUrl ( const std::string &  url)

Definition at line 433 of file input.cc.

◆ MemoryEditorPopup()

void yaze::gui::MemoryEditorPopup ( const std::string &  label,
std::span< uint8_t >  memory 
)

Definition at line 455 of file input.cc.

Referenced by yaze::editor::MessageEditor::DrawCurrentMessage().

◆ InputHexByteCustom()

IMGUI_API bool yaze::gui::InputHexByteCustom ( const char *  label,
uint8_t *  data,
float  input_width 
)

Definition at line 469 of file input.cc.

◆ InputHexWordCustom()

IMGUI_API bool yaze::gui::InputHexWordCustom ( const char *  label,
uint16_t *  data,
float  input_width 
)

Definition at line 492 of file input.cc.

Referenced by yaze::editor::MapPropertiesSystem::DrawPropertiesPopup().

◆ ColorsYaze()

◆ DrawBitmapViewer()

void yaze::gui::DrawBitmapViewer ( const std::vector< gfx::Bitmap > &  bitmaps,
float  scale,
int &  current_bitmap_id 
)

Definition at line 131 of file style.cc.

References yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::texture(), and yaze::gfx::Bitmap::width().

Here is the call graph for this function:

◆ GetAssemblyLanguageDef()

◆ BeginWindowWithDisplaySettings()

void yaze::gui::BeginWindowWithDisplaySettings ( const char *  id,
bool *  active,
const ImVec2 &  size,
ImGuiWindowFlags  flags 
)
Todo:
Add more display settings to popup windows.

Definition at line 247 of file style.cc.

Referenced by yaze::editor::OverworldEditor::DrawOverworldProperties().

◆ EndWindowWithDisplaySettings()

void yaze::gui::EndWindowWithDisplaySettings ( )

Definition at line 267 of file style.cc.

Referenced by yaze::editor::OverworldEditor::DrawOverworldProperties().

◆ BeginPadding()

◆ EndPadding()

◆ BeginNoPadding()

void yaze::gui::BeginNoPadding ( )

◆ EndNoPadding()

◆ BeginChildWithScrollbar() [1/2]

◆ BeginChildWithScrollbar() [2/2]

void yaze::gui::BeginChildWithScrollbar ( const char *  str_id,
ImVec2  content_size 
)

Definition at line 294 of file style.cc.

◆ BeginChildBothScrollbars()

void yaze::gui::BeginChildBothScrollbars ( int  id)

Definition at line 309 of file style.cc.

Referenced by yaze::editor::OverworldEditor::DrawOverworldCanvas().

◆ BeginTableCanvas()

void yaze::gui::BeginTableCanvas ( const char *  table_id,
int  columns,
ImVec2  canvas_size 
)

Definition at line 317 of file style.cc.

◆ EndTableCanvas()

void yaze::gui::EndTableCanvas ( )

Definition at line 331 of file style.cc.

◆ SetupCanvasTableColumn()

void yaze::gui::SetupCanvasTableColumn ( const char *  label,
float  width_ratio 
)

Definition at line 335 of file style.cc.

◆ BeginCanvasTableCell()

void yaze::gui::BeginCanvasTableCell ( ImVec2  min_size)

Definition at line 343 of file style.cc.

◆ DrawDisplaySettings()

void yaze::gui::DrawDisplaySettings ( ImGuiStyle *  ref)

Definition at line 360 of file style.cc.

References ColorsYaze(), ConvertColorToImVec4(), yaze::gui::BackgroundRenderer::Get(), yaze::gui::ThemeManager::Get(), and ICON_MD_PALETTE.

Here is the call graph for this function:

◆ DrawDisplaySettingsForPopup()

void yaze::gui::DrawDisplaySettingsForPopup ( ImGuiStyle *  ref)

◆ TextWithSeparators()

◆ DrawFontManager()

void yaze::gui::DrawFontManager ( )

◆ RGB()

Color yaze::gui::RGB ( float  r,
float  g,
float  b,
float  a = 1.0f 
)

Definition at line 24 of file theme_manager.cc.

◆ RGBA()

Color yaze::gui::RGBA ( int  r,
int  g,
int  b,
int  a = 255 
)

◆ GetThemeColor() [1/2]

Color yaze::gui::GetThemeColor ( const std::string &  color_name)
inline

◆ GetThemeColorVec4()

ImVec4 yaze::gui::GetThemeColorVec4 ( const std::string &  color_name)
inline

Definition at line 266 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetThemeColorVec4().

Here is the call graph for this function:

◆ GetPrimary()

Color yaze::gui::GetPrimary ( )
inline

Definition at line 271 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetPrimary().

Referenced by GetPrimaryVec4().

Here is the call graph for this function:

◆ GetPrimaryHover()

Color yaze::gui::GetPrimaryHover ( )
inline

Definition at line 272 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetPrimaryHover().

Referenced by GetPrimaryHoverVec4().

Here is the call graph for this function:

◆ GetPrimaryActive()

Color yaze::gui::GetPrimaryActive ( )
inline

Definition at line 273 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetPrimaryActive().

Referenced by GetPrimaryActiveVec4().

Here is the call graph for this function:

◆ GetSecondary()

Color yaze::gui::GetSecondary ( )
inline

Definition at line 274 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetSecondary().

Here is the call graph for this function:

◆ GetSurface()

Color yaze::gui::GetSurface ( )
inline

Definition at line 275 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetSurface().

Referenced by GetSurfaceVec4().

Here is the call graph for this function:

◆ GetSurfaceVariant()

Color yaze::gui::GetSurfaceVariant ( )
inline

Definition at line 276 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetSurfaceVariant().

Referenced by GetSurfaceVariantVec4().

Here is the call graph for this function:

◆ GetSurfaceContainer()

Color yaze::gui::GetSurfaceContainer ( )
inline

Definition at line 277 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetSurfaceContainer().

Referenced by GetSurfaceContainerVec4().

Here is the call graph for this function:

◆ GetSurfaceContainerHigh()

Color yaze::gui::GetSurfaceContainerHigh ( )
inline

Definition at line 278 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetSurfaceContainerHigh().

Referenced by GetSurfaceContainerHighVec4().

Here is the call graph for this function:

◆ GetSurfaceContainerHighest()

Color yaze::gui::GetSurfaceContainerHighest ( )
inline

Definition at line 279 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetSurfaceContainerHighest().

Referenced by GetSurfaceContainerHighestVec4().

Here is the call graph for this function:

◆ GetOnSurface()

Color yaze::gui::GetOnSurface ( )
inline

Definition at line 280 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetOnSurface().

Referenced by GetOnSurfaceVec4().

Here is the call graph for this function:

◆ GetOnSurfaceVariant()

Color yaze::gui::GetOnSurfaceVariant ( )
inline

Definition at line 281 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetOnSurfaceVariant().

Referenced by GetOnSurfaceVariantVec4().

Here is the call graph for this function:

◆ GetOnPrimary()

Color yaze::gui::GetOnPrimary ( )
inline

Definition at line 282 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetOnPrimary().

Referenced by GetOnPrimaryVec4().

Here is the call graph for this function:

◆ GetOutline()

Color yaze::gui::GetOutline ( )
inline

Definition at line 283 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetOutline().

Referenced by GetOutlineVec4().

Here is the call graph for this function:

◆ GetTextSecondary()

Color yaze::gui::GetTextSecondary ( )
inline

Definition at line 284 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetTextSecondary().

Referenced by GetTextSecondaryVec4().

Here is the call graph for this function:

◆ GetTextDisabled()

Color yaze::gui::GetTextDisabled ( )
inline

Definition at line 285 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetTextDisabled().

Referenced by GetTextDisabledVec4().

Here is the call graph for this function:

◆ GetShadow()

Color yaze::gui::GetShadow ( )
inline

Definition at line 286 of file theme_manager.h.

References yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetShadow().

Referenced by GetShadowVec4().

Here is the call graph for this function:

◆ GetPrimaryVec4()

ImVec4 yaze::gui::GetPrimaryVec4 ( )
inline

Definition at line 289 of file theme_manager.h.

References ConvertColorToImVec4(), and GetPrimary().

Referenced by yaze::editor::EditorCardRegistry::DrawCardInSidebar(), and yaze::editor::UICoordinator::DrawMenuBarExtras().

Here is the call graph for this function:

◆ GetPrimaryHoverVec4()

ImVec4 yaze::gui::GetPrimaryHoverVec4 ( )
inline

Definition at line 290 of file theme_manager.h.

References ConvertColorToImVec4(), and GetPrimaryHover().

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras().

Here is the call graph for this function:

◆ GetPrimaryActiveVec4()

ImVec4 yaze::gui::GetPrimaryActiveVec4 ( )
inline

Definition at line 291 of file theme_manager.h.

References ConvertColorToImVec4(), and GetPrimaryActive().

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras().

Here is the call graph for this function:

◆ GetSurfaceVec4()

ImVec4 yaze::gui::GetSurfaceVec4 ( )
inline

Definition at line 292 of file theme_manager.h.

References ConvertColorToImVec4(), and GetSurface().

Here is the call graph for this function:

◆ GetSurfaceVariantVec4()

ImVec4 yaze::gui::GetSurfaceVariantVec4 ( )
inline

Definition at line 293 of file theme_manager.h.

References ConvertColorToImVec4(), and GetSurfaceVariant().

Here is the call graph for this function:

◆ GetSurfaceContainerVec4()

ImVec4 yaze::gui::GetSurfaceContainerVec4 ( )
inline

Definition at line 294 of file theme_manager.h.

References ConvertColorToImVec4(), and GetSurfaceContainer().

Here is the call graph for this function:

◆ GetSurfaceContainerHighVec4()

ImVec4 yaze::gui::GetSurfaceContainerHighVec4 ( )
inline

Definition at line 295 of file theme_manager.h.

References ConvertColorToImVec4(), and GetSurfaceContainerHigh().

Referenced by yaze::editor::UICoordinator::DrawContextSensitiveCardControl().

Here is the call graph for this function:

◆ GetSurfaceContainerHighestVec4()

ImVec4 yaze::gui::GetSurfaceContainerHighestVec4 ( )
inline

◆ GetOnSurfaceVec4()

ImVec4 yaze::gui::GetOnSurfaceVec4 ( )
inline

Definition at line 297 of file theme_manager.h.

References ConvertColorToImVec4(), and GetOnSurface().

Here is the call graph for this function:

◆ GetOnSurfaceVariantVec4()

ImVec4 yaze::gui::GetOnSurfaceVariantVec4 ( )
inline

Definition at line 298 of file theme_manager.h.

References ConvertColorToImVec4(), and GetOnSurfaceVariant().

Referenced by yaze::editor::UICoordinator::DrawMaterialButton().

Here is the call graph for this function:

◆ GetOnPrimaryVec4()

ImVec4 yaze::gui::GetOnPrimaryVec4 ( )
inline

Definition at line 299 of file theme_manager.h.

References ConvertColorToImVec4(), and GetOnPrimary().

Here is the call graph for this function:

◆ GetOutlineVec4()

ImVec4 yaze::gui::GetOutlineVec4 ( )
inline

Definition at line 300 of file theme_manager.h.

References ConvertColorToImVec4(), and GetOutline().

Here is the call graph for this function:

◆ GetTextSecondaryVec4()

ImVec4 yaze::gui::GetTextSecondaryVec4 ( )
inline

Definition at line 301 of file theme_manager.h.

References ConvertColorToImVec4(), and GetTextSecondary().

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras().

Here is the call graph for this function:

◆ GetTextDisabledVec4()

ImVec4 yaze::gui::GetTextDisabledVec4 ( )
inline

Definition at line 302 of file theme_manager.h.

References ConvertColorToImVec4(), and GetTextDisabled().

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras().

Here is the call graph for this function:

◆ GetShadowVec4()

ImVec4 yaze::gui::GetShadowVec4 ( )
inline

Definition at line 303 of file theme_manager.h.

References ConvertColorToImVec4(), and GetShadow().

Here is the call graph for this function:

◆ GetThemeColor() [2/2]

ImVec4 yaze::gui::GetThemeColor ( ImGuiCol  idx)

Definition at line 17 of file ui_helpers.cc.

◆ GetSuccessColor()

◆ GetWarningColor()

◆ GetErrorColor()

ImVec4 yaze::gui::GetErrorColor ( )

◆ GetInfoColor()

ImVec4 yaze::gui::GetInfoColor ( )

Definition at line 36 of file ui_helpers.cc.

References ConvertColorToImVec4(), yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetCurrentTheme().

Referenced by ColoredButton(), and StatusBadge().

Here is the call graph for this function:

◆ GetAccentColor()

ImVec4 yaze::gui::GetAccentColor ( )

◆ GetEntranceColor()

ImVec4 yaze::gui::GetEntranceColor ( )

Definition at line 47 of file ui_helpers.cc.

Referenced by yaze::editor::OverworldEntityRenderer::DrawEntrances().

◆ GetExitColor()

ImVec4 yaze::gui::GetExitColor ( )

Definition at line 52 of file ui_helpers.cc.

Referenced by yaze::editor::OverworldEntityRenderer::DrawExits().

◆ GetItemColor()

ImVec4 yaze::gui::GetItemColor ( )

Definition at line 57 of file ui_helpers.cc.

Referenced by yaze::editor::OverworldEntityRenderer::DrawItems().

◆ GetSpriteColor()

ImVec4 yaze::gui::GetSpriteColor ( )

Definition at line 62 of file ui_helpers.cc.

Referenced by yaze::editor::OverworldEntityRenderer::DrawSprites().

◆ GetSelectedColor()

ImVec4 yaze::gui::GetSelectedColor ( )

Definition at line 67 of file ui_helpers.cc.

References ConvertColorToImVec4(), yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetCurrentTheme().

Referenced by yaze::editor::OverworldEditor::DrawUsageGrid().

Here is the call graph for this function:

◆ GetLockedColor()

ImVec4 yaze::gui::GetLockedColor ( )

Definition at line 72 of file ui_helpers.cc.

Referenced by LockIndicator().

◆ GetVanillaRomColor()

ImVec4 yaze::gui::GetVanillaRomColor ( )

Definition at line 77 of file ui_helpers.cc.

References GetWarningColor().

Here is the call graph for this function:

◆ GetCustomRomColor()

ImVec4 yaze::gui::GetCustomRomColor ( )

Definition at line 81 of file ui_helpers.cc.

References GetSuccessColor().

Here is the call graph for this function:

◆ GetModifiedColor()

ImVec4 yaze::gui::GetModifiedColor ( )

Definition at line 85 of file ui_helpers.cc.

References ConvertColorToImVec4(), yaze::gui::ThemeManager::Get(), and yaze::gui::ThemeManager::GetCurrentTheme().

Here is the call graph for this function:

◆ BeginField()

void yaze::gui::BeginField ( const char *  label,
float  label_width 
)

Definition at line 94 of file ui_helpers.cc.

Referenced by LabeledInputHex(), and LabeledInputHex().

◆ EndField()

void yaze::gui::EndField ( )

Definition at line 106 of file ui_helpers.cc.

Referenced by LabeledInputHex(), and LabeledInputHex().

◆ BeginPropertyTable()

bool yaze::gui::BeginPropertyTable ( const char *  id,
int  columns,
ImGuiTableFlags  extra_flags 
)

Definition at line 111 of file ui_helpers.cc.

◆ EndPropertyTable()

void yaze::gui::EndPropertyTable ( )

Definition at line 123 of file ui_helpers.cc.

◆ PropertyRow() [1/2]

void yaze::gui::PropertyRow ( const char *  label,
const char *  value 
)

Definition at line 127 of file ui_helpers.cc.

◆ PropertyRow() [2/2]

void yaze::gui::PropertyRow ( const char *  label,
int  value 
)

Definition at line 134 of file ui_helpers.cc.

◆ PropertyRowHex() [1/2]

void yaze::gui::PropertyRowHex ( const char *  label,
uint8_t  value 
)

Definition at line 141 of file ui_helpers.cc.

◆ PropertyRowHex() [2/2]

void yaze::gui::PropertyRowHex ( const char *  label,
uint16_t  value 
)

Definition at line 148 of file ui_helpers.cc.

◆ SectionHeader() [1/2]

void yaze::gui::SectionHeader ( const char *  icon,
const char *  label,
const ImVec4 &  color 
)

◆ IconButton()

bool yaze::gui::IconButton ( const char *  icon,
const char *  label,
const ImVec2 &  size 
)

Definition at line 164 of file ui_helpers.cc.

◆ ColoredButton()

bool yaze::gui::ColoredButton ( const char *  label,
ButtonType  type,
const ImVec2 &  size 
)

◆ ToggleIconButton()

bool yaze::gui::ToggleIconButton ( const char *  icon_on,
const char *  icon_off,
bool *  state,
const char *  tooltip 
)

Definition at line 191 of file ui_helpers.cc.

References GetSuccessColor(), and GetThemeColor().

Referenced by yaze::gui::Toolset::AddToggle().

Here is the call graph for this function:

◆ HelpMarker()

void yaze::gui::HelpMarker ( const char *  desc)

Definition at line 209 of file ui_helpers.cc.

References ICON_MD_HELP_OUTLINE.

Referenced by yaze::editor::ObjectEditorCard::DrawEmulatorPreview().

◆ SeparatorText()

void yaze::gui::SeparatorText ( const char *  label)

Definition at line 220 of file ui_helpers.cc.

Referenced by yaze::gui::GfxSheetAssetBrowser::Draw().

◆ StatusBadge()

void yaze::gui::StatusBadge ( const char *  text,
ButtonType  type 
)

◆ BeginToolset()

void yaze::gui::BeginToolset ( const char *  id)

Definition at line 246 of file ui_helpers.cc.

◆ EndToolset()

void yaze::gui::EndToolset ( )

Definition at line 251 of file ui_helpers.cc.

◆ ToolsetButton()

void yaze::gui::ToolsetButton ( const char *  icon,
bool  selected,
const char *  tooltip,
std::function< void()>  on_click 
)

Definition at line 256 of file ui_helpers.cc.

References GetAccentColor().

Here is the call graph for this function:

◆ BeginCanvasContainer()

void yaze::gui::BeginCanvasContainer ( const char *  id,
bool  scrollable 
)

Definition at line 277 of file ui_helpers.cc.

◆ EndCanvasContainer()

void yaze::gui::EndCanvasContainer ( )

Definition at line 284 of file ui_helpers.cc.

◆ EditorTabItem()

bool yaze::gui::EditorTabItem ( const char *  icon,
const char *  label,
bool *  p_open 
)

Definition at line 288 of file ui_helpers.cc.

◆ ConfirmationDialog()

bool yaze::gui::ConfirmationDialog ( const char *  id,
const char *  title,
const char *  message,
const char *  confirm_text,
const char *  cancel_text 
)

Definition at line 294 of file ui_helpers.cc.

References ColoredButton(), and Warning.

Here is the call graph for this function:

◆ StatusIndicator()

void yaze::gui::StatusIndicator ( const char *  label,
bool  active,
const char *  tooltip 
)

Definition at line 324 of file ui_helpers.cc.

References GetSuccessColor(), and GetThemeColor().

Here is the call graph for this function:

◆ RomVersionBadge()

void yaze::gui::RomVersionBadge ( const char *  version,
bool  is_vanilla 
)

Definition at line 344 of file ui_helpers.cc.

References GetSuccessColor(), GetWarningColor(), ICON_MD_CHECK_CIRCLE, and ICON_MD_INFO.

Referenced by yaze::gui::Toolset::AddRomBadge().

Here is the call graph for this function:

◆ LockIndicator()

void yaze::gui::LockIndicator ( bool  locked,
const char *  label 
)

Definition at line 353 of file ui_helpers.cc.

References GetLockedColor(), ICON_MD_LOCK, and ICON_MD_LOCK_OPEN.

Here is the call graph for this function:

◆ VerticalSpacing()

void yaze::gui::VerticalSpacing ( float  pixels)

Definition at line 365 of file ui_helpers.cc.

Referenced by yaze::editor::AssemblyEditor::UpdateCodeView().

◆ HorizontalSpacing()

void yaze::gui::HorizontalSpacing ( float  pixels)

Definition at line 369 of file ui_helpers.cc.

◆ CenterText()

void yaze::gui::CenterText ( const char *  text)

Definition at line 374 of file ui_helpers.cc.

Referenced by yaze::editor::OverworldEditor::Update().

◆ RightAlign()

void yaze::gui::RightAlign ( float  width)

Definition at line 380 of file ui_helpers.cc.

◆ GetPulseAlpha()

float yaze::gui::GetPulseAlpha ( float  speed)

Definition at line 389 of file ui_helpers.cc.

Referenced by PushPulseEffect().

◆ GetFadeIn()

float yaze::gui::GetFadeIn ( float  duration)

Definition at line 393 of file ui_helpers.cc.

◆ PushPulseEffect()

void yaze::gui::PushPulseEffect ( float  speed)

Definition at line 412 of file ui_helpers.cc.

References GetPulseAlpha().

Here is the call graph for this function:

◆ PopPulseEffect()

void yaze::gui::PopPulseEffect ( )

Definition at line 417 of file ui_helpers.cc.

◆ LoadingSpinner()

void yaze::gui::LoadingSpinner ( const char *  label,
float  radius 
)

Definition at line 421 of file ui_helpers.cc.

References GetAccentColor(), and IM_PI.

Here is the call graph for this function:

◆ GetResponsiveWidth()

float yaze::gui::GetResponsiveWidth ( float  min_width,
float  max_width,
float  ratio 
)

Definition at line 449 of file ui_helpers.cc.

◆ SetupResponsiveColumns()

void yaze::gui::SetupResponsiveColumns ( int  count,
float  min_col_width 
)

Definition at line 458 of file ui_helpers.cc.

◆ BeginTwoColumns()

void yaze::gui::BeginTwoColumns ( const char *  id,
float  split_ratio 
)

Definition at line 473 of file ui_helpers.cc.

◆ SwitchColumn()

void yaze::gui::SwitchColumn ( )

Definition at line 490 of file ui_helpers.cc.

◆ EndTwoColumns()

void yaze::gui::EndTwoColumns ( )

Definition at line 494 of file ui_helpers.cc.

◆ LabeledInputHex() [1/2]

bool yaze::gui::LabeledInputHex ( const char *  label,
uint8_t *  value 
)

Definition at line 503 of file ui_helpers.cc.

References BeginField(), and EndField().

Here is the call graph for this function:

◆ LabeledInputHex() [2/2]

bool yaze::gui::LabeledInputHex ( const char *  label,
uint16_t *  value 
)

Definition at line 514 of file ui_helpers.cc.

References BeginField(), and EndField().

Here is the call graph for this function:

◆ IconCombo()

bool yaze::gui::IconCombo ( const char *  icon,
const char *  label,
int *  current,
const char *const  items[],
int  count 
)

Definition at line 525 of file ui_helpers.cc.

◆ ThemedButton()

bool yaze::gui::ThemedButton ( const char *  label,
const ImVec2 &  size = ImVec2(0, 0) 
)

Theme-aware widget library.

All widgets in this file automatically use the current theme from ThemeManager. These are drop-in replacements for standard ImGui widgets with automatic theming.

Usage:

using namespace yaze::gui;
if (ThemedButton("Save")) {
// Button uses theme colors automatically
}
SectionHeader("Settings"); // Themed section header
ThemedCard("Properties", [&]() {
// Content inside themed card
});
Graphical User Interface (GUI) components for the application.
bool ThemedButton(const char *label, const ImVec2 &size)
Theme-aware widget library.
void ThemedCard(const char *label, std::function< void()> content, const ImVec2 &size)
Themed card with rounded corners and shadow.

Themed button with automatic color application

Definition at line 13 of file themed_widgets.cc.

References ConvertColorToImVec4(), GetTheme(), and ThemedButton().

Referenced by yaze::editor::PaletteGroupCard::DrawBatchOperationsPopup(), yaze::editor::PaletteGroupCard::DrawColorPicker(), ThemedButton(), and ThemedIconButton().

Here is the call graph for this function:

◆ ThemedIconButton()

bool yaze::gui::ThemedIconButton ( const char *  icon,
const char *  tooltip 
)

◆ PrimaryButton()

bool yaze::gui::PrimaryButton ( const char *  label,
const ImVec2 &  size 
)

Primary action button (uses accent color)

Definition at line 36 of file themed_widgets.cc.

References ConvertColorToImVec4(), GetTheme(), and PrimaryButton().

Referenced by yaze::editor::PaletteGroupCard::DrawToolbar(), and PrimaryButton().

Here is the call graph for this function:

◆ DangerButton()

bool yaze::gui::DangerButton ( const char *  label,
const ImVec2 &  size 
)

Danger/destructive action button (uses error color)

Definition at line 52 of file themed_widgets.cc.

References ConvertColorToImVec4(), DangerButton(), and GetTheme().

Referenced by DangerButton(), and yaze::editor::PaletteGroupCard::DrawToolbar().

Here is the call graph for this function:

◆ SectionHeader() [2/2]

void yaze::gui::SectionHeader ( const char *  label)

Themed section header with accent color.

Definition at line 72 of file themed_widgets.cc.

References SectionHeader(), and yaze::gui::LayoutHelpers::SectionHeader().

Here is the call graph for this function:

◆ ThemedCollapsingHeader()

bool yaze::gui::ThemedCollapsingHeader ( const char *  label,
ImGuiTreeNodeFlags  flags 
)

Collapsible section with themed header.

Definition at line 76 of file themed_widgets.cc.

References ConvertColorToImVec4(), and GetTheme().

Here is the call graph for this function:

◆ ThemedCard()

void yaze::gui::ThemedCard ( const char *  label,
std::function< void()>  content,
const ImVec2 &  size = ImVec2(0, 0) 
)

Themed card with rounded corners and shadow.

Parameters
labelUnique ID for the card
contentCallback function to render card content
sizeCard size (0, 0 for auto-size)

Definition at line 92 of file themed_widgets.cc.

References BeginThemedPanel(), and EndThemedPanel().

Here is the call graph for this function:

◆ BeginThemedPanel()

void yaze::gui::BeginThemedPanel ( const char *  label,
const ImVec2 &  size 
)

Begin themed panel (manual version of ThemedCard)

Definition at line 98 of file themed_widgets.cc.

References ConvertColorToImVec4(), yaze::gui::LayoutHelpers::GetPanelPadding(), and GetTheme().

Referenced by ThemedCard().

Here is the call graph for this function:

◆ EndThemedPanel()

void yaze::gui::EndThemedPanel ( )

End themed panel.

Definition at line 110 of file themed_widgets.cc.

Referenced by ThemedCard().

◆ ThemedInputText()

bool yaze::gui::ThemedInputText ( const char *  label,
char *  buf,
size_t  buf_size,
ImGuiInputTextFlags  flags 
)

Themed text input.

Definition at line 120 of file themed_widgets.cc.

References ConvertColorToImVec4(), yaze::gui::LayoutHelpers::GetStandardInputWidth(), and GetTheme().

Here is the call graph for this function:

◆ ThemedInputInt()

bool yaze::gui::ThemedInputInt ( const char *  label,
int *  v,
int  step,
int  step_fast,
ImGuiInputTextFlags  flags 
)

Themed integer input.

Definition at line 134 of file themed_widgets.cc.

References ConvertColorToImVec4(), yaze::gui::LayoutHelpers::GetStandardInputWidth(), and GetTheme().

Here is the call graph for this function:

◆ ThemedInputFloat()

bool yaze::gui::ThemedInputFloat ( const char *  label,
float *  v,
float  step,
float  step_fast,
const char *  format,
ImGuiInputTextFlags  flags 
)

Themed float input.

Definition at line 148 of file themed_widgets.cc.

References ConvertColorToImVec4(), yaze::gui::LayoutHelpers::GetStandardInputWidth(), and GetTheme().

Here is the call graph for this function:

◆ ThemedCheckbox()

bool yaze::gui::ThemedCheckbox ( const char *  label,
bool *  v 
)

Themed checkbox.

Definition at line 162 of file themed_widgets.cc.

References ConvertColorToImVec4(), and GetTheme().

Here is the call graph for this function:

◆ ThemedCombo()

bool yaze::gui::ThemedCombo ( const char *  label,
int *  current_item,
const char *const  items[],
int  items_count,
int  popup_max_height_in_items 
)

Themed combo box.

Definition at line 172 of file themed_widgets.cc.

References ConvertColorToImVec4(), yaze::gui::LayoutHelpers::GetStandardInputWidth(), and GetTheme().

Here is the call graph for this function:

◆ BeginThemedTable()

bool yaze::gui::BeginThemedTable ( const char *  str_id,
int  columns,
ImGuiTableFlags  flags,
const ImVec2 &  outer_size,
float  inner_width 
)

Begin themed table with automatic styling.

Definition at line 191 of file themed_widgets.cc.

References yaze::gui::LayoutHelpers::BeginTableWithTheming().

Here is the call graph for this function:

◆ EndThemedTable()

void yaze::gui::EndThemedTable ( )

End themed table.

Definition at line 196 of file themed_widgets.cc.

References yaze::gui::LayoutHelpers::EndTable().

Here is the call graph for this function:

◆ ThemedHelpMarker()

void yaze::gui::ThemedHelpMarker ( const char *  desc)

Themed help marker with tooltip.

Definition at line 204 of file themed_widgets.cc.

References yaze::gui::LayoutHelpers::HelpMarker().

Here is the call graph for this function:

◆ BeginThemedTooltip()

void yaze::gui::BeginThemedTooltip ( )

Begin themed tooltip.

Definition at line 208 of file themed_widgets.cc.

References ConvertColorToImVec4(), and GetTheme().

Referenced by ThemedIconButton().

Here is the call graph for this function:

◆ EndThemedTooltip()

void yaze::gui::EndThemedTooltip ( )

End themed tooltip.

Definition at line 214 of file themed_widgets.cc.

Referenced by ThemedIconButton().

◆ ThemedStatusText()

void yaze::gui::ThemedStatusText ( const char *  text,
StatusType  type 
)

Themed status text (success, warning, error, info)

Definition at line 223 of file themed_widgets.cc.

References ConvertColorToImVec4(), GetTheme(), kError, kInfo, kSuccess, and kWarning.

Here is the call graph for this function:

◆ ThemedProgressBar()

void yaze::gui::ThemedProgressBar ( float  fraction,
const ImVec2 &  size,
const char *  overlay 
)

Themed progress bar.

Definition at line 245 of file themed_widgets.cc.

References ConvertColorToImVec4(), and GetTheme().

Here is the call graph for this function:

◆ ColorInfoPanel()

void yaze::gui::ColorInfoPanel ( const yaze::gfx::SnesColor color,
bool  show_snes_format = true,
bool  show_hex_format = true 
)

Display color information with copy-to-clipboard functionality.

Parameters
colorSNES color to display info for
show_snes_formatShow SNES $xxxx format
show_hex_formatShow #xxxxxx hex format

Definition at line 259 of file themed_widgets.cc.

References yaze::gfx::SnesColor::rgb(), and yaze::gfx::SnesColor::snes().

Here is the call graph for this function:

◆ ModifiedBadge()

void yaze::gui::ModifiedBadge ( bool  is_modified,
const char *  text = nullptr 
)

Modified indicator badge (displayed as text with icon)

Parameters
is_modifiedWhether to show the badge
textOptional text to display after badge

Definition at line 304 of file themed_widgets.cc.

References ConvertColorToImVec4(), and GetTheme().

Here is the call graph for this function:

◆ PushThemedWidgetColors()

void yaze::gui::PushThemedWidgetColors ( )

Apply theme colors to next widget.

Definition at line 321 of file themed_widgets.cc.

References ConvertColorToImVec4(), and GetTheme().

Here is the call graph for this function:

◆ PopThemedWidgetColors()

void yaze::gui::PopThemedWidgetColors ( )

Restore previous colors.

Definition at line 331 of file themed_widgets.cc.

◆ GetTheme()

Variable Documentation

◆ g_auto_scope_stack_

thread_local std::vector<std::string> yaze::gui::g_auto_scope_stack_

◆ kRectangleColor

constexpr uint32_t yaze::gui::kRectangleColor = IM_COL32(32, 32, 32, 255)
constexpr

Definition at line 95 of file canvas.cc.

Referenced by RenderCanvasBackground().

◆ kWhiteColor

constexpr uint32_t yaze::gui::kWhiteColor = IM_COL32(255, 255, 255, 255)
constexpr

◆ kMouseFlags

constexpr ImGuiButtonFlags yaze::gui::kMouseFlags
constexpr
Initial value:
=
ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight

Definition at line 98 of file canvas.cc.

Referenced by yaze::gui::Canvas::DrawBackground().

◆ kStepOneHex

const int yaze::gui::kStepOneHex = 0x01

◆ kStepFastHex

const int yaze::gui::kStepFastHex = 0x0F

◆ kDefaultModalSize

◆ kZeroPos

constexpr ImVec2 yaze::gui::kZeroPos = ImVec2(0, 0)
constexpr

Definition at line 22 of file input.h.