Free functions for canvas interaction handling. More...
#include "app/gui/canvas/canvas_events.h"#include "app/gui/canvas/canvas_state.h"#include "app/gfx/core/bitmap.h"#include "app/gfx/render/tilemap.h"#include "imgui/imgui.h"
Go to the source code of this file.
Namespaces | |
| namespace | yaze |
| Main namespace for the application. | |
| namespace | yaze::gui |
| Graphical User Interface (GUI) components for the application. | |
Functions | |
| 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. | |
| TileSelectionEvent | yaze::gui::HandleTileSelection (const CanvasGeometry &geometry, int current_map, float tile_size, ImGuiMouseButton mouse_button=ImGuiMouseButton_Right) |
| Handle single tile selection (right-click) | |
| TilePaintEvent | yaze::gui::HandleTilePaint (const CanvasGeometry &geometry, int tile_id, float tile_size, ImGuiMouseButton mouse_button=ImGuiMouseButton_Left) |
| Handle tile painting interaction. | |
| 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. | |
| 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. | |
| HoverEvent | yaze::gui::HandleHover (const CanvasGeometry &geometry, float tile_size) |
| Update hover state for canvas. | |
| 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. | |
| EntityInteractionEvent | yaze::gui::HandleEntityInteraction (const CanvasGeometry &geometry, int entity_id, ImVec2 entity_position) |
| Handle entity interaction (hover, click, drag) | |
| ImVec2 | yaze::gui::AlignToGrid (ImVec2 pos, float grid_step) |
| Align position to grid. | |
| ImVec2 | yaze::gui::GetMouseInCanvasSpace (const CanvasGeometry &geometry) |
| Get mouse position in canvas space. | |
| bool | yaze::gui::IsMouseInCanvas (const CanvasGeometry &geometry) |
| Check if mouse is in canvas bounds. | |
| ImVec2 | yaze::gui::CanvasToTileGrid (ImVec2 canvas_pos, float tile_size, float global_scale) |
| Calculate tile grid indices from canvas position. | |
Free functions for canvas interaction handling.
Phase 2 of Canvas refactoring: Extract interaction logic into event-driven free functions. These functions replace the stateful CanvasInteractionHandler methods with pure functions that return event payloads.
Design Pattern:
Definition in file canvas_interaction.h.