Reusable tile selector built on top of Canvas. More...
#include <tile_selector_widget.h>
Classes | |
struct | Config |
struct | RenderResult |
Public Member Functions | |
TileSelectorWidget (std::string widget_id) | |
TileSelectorWidget (std::string widget_id, Config config) | |
void | AttachCanvas (Canvas *canvas) |
void | SetTileCount (int total_tiles) |
void | SetSelectedTile (int tile_id) |
int | GetSelectedTileID () const |
RenderResult | Render (gfx::Bitmap &atlas, bool atlas_ready) |
void | ScrollToTile (int tile_id, bool use_imgui_scroll=true) |
ImVec2 | TileOrigin (int tile_id) const |
Private Member Functions | |
RenderResult | HandleInteraction (int tile_display_size) |
int | ResolveTileAtCursor (int tile_display_size) const |
void | DrawHighlight (int tile_display_size) const |
void | DrawTileIdLabels (int tile_display_size) const |
bool | IsValidTileId (int tile_id) const |
Private Attributes | |
Canvas * | canvas_ = nullptr |
Config | config_ {} |
int | selected_tile_id_ = 0 |
int | total_tiles_ = 0 |
std::string | widget_id_ |
int | pending_scroll_tile_id_ = -1 |
bool | pending_scroll_use_imgui_ = true |
Reusable tile selector built on top of Canvas.
Minimal mutable state, designed for reuse across editors and automation.
Definition at line 17 of file tile_selector_widget.h.
|
explicit |
Definition at line 7 of file tile_selector_widget.cc.
yaze::gui::TileSelectorWidget::TileSelectorWidget | ( | std::string | widget_id, |
Config | config | ||
) |
Definition at line 10 of file tile_selector_widget.cc.
void yaze::gui::TileSelectorWidget::AttachCanvas | ( | Canvas * | canvas | ) |
Definition at line 13 of file tile_selector_widget.cc.
References canvas_.
Referenced by yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), and yaze::test::TEST_F().
void yaze::gui::TileSelectorWidget::SetTileCount | ( | int | total_tiles | ) |
Definition at line 15 of file tile_selector_widget.cc.
References IsValidTileId(), selected_tile_id_, and total_tiles_.
Referenced by yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), and yaze::test::TEST_F().
void yaze::gui::TileSelectorWidget::SetSelectedTile | ( | int | tile_id | ) |
Definition at line 22 of file tile_selector_widget.cc.
References IsValidTileId(), and selected_tile_id_.
Referenced by yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), and yaze::test::TEST_F().
|
inline |
Definition at line 42 of file tile_selector_widget.h.
References selected_tile_id_.
Referenced by yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), and yaze::test::TEST_F().
TileSelectorWidget::RenderResult yaze::gui::TileSelectorWidget::Render | ( | gfx::Bitmap & | atlas, |
bool | atlas_ready | ||
) |
Definition at line 28 of file tile_selector_widget.cc.
References canvas_, config_, yaze::gui::TileSelectorWidget::Config::display_scale, yaze::gui::TileSelectorWidget::Config::draw_offset, yaze::gui::Canvas::DrawBackground(), yaze::gui::Canvas::DrawBitmap(), yaze::gui::Canvas::DrawContextMenu(), yaze::gui::Canvas::DrawGrid(), DrawHighlight(), yaze::gui::Canvas::DrawOverlay(), DrawTileIdLabels(), HandleInteraction(), yaze::gfx::Bitmap::is_active(), IsValidTileId(), pending_scroll_tile_id_, pending_scroll_use_imgui_, yaze::gui::TileSelectorWidget::Config::show_tile_ids, yaze::gui::TileSelectorWidget::Config::tile_size, TileOrigin(), yaze::gui::TileSelectorWidget::Config::tiles_per_row, and total_tiles_.
Referenced by yaze::test::TEST_F().
void yaze::gui::TileSelectorWidget::ScrollToTile | ( | int | tile_id, |
bool | use_imgui_scroll = true |
||
) |
Definition at line 162 of file tile_selector_widget.cc.
References canvas_, IsValidTileId(), pending_scroll_tile_id_, and pending_scroll_use_imgui_.
Referenced by yaze::test::TEST_F().
ImVec2 yaze::gui::TileSelectorWidget::TileOrigin | ( | int | tile_id | ) | const |
Definition at line 172 of file tile_selector_widget.cc.
References config_, yaze::gui::TileSelectorWidget::Config::display_scale, yaze::gui::TileSelectorWidget::Config::draw_offset, IsValidTileId(), yaze::gui::TileSelectorWidget::Config::tile_size, and yaze::gui::TileSelectorWidget::Config::tiles_per_row.
Referenced by Render(), yaze::test::TEST_F(), and yaze::test::TEST_F().
|
private |
Definition at line 91 of file tile_selector_widget.cc.
References IsValidTileId(), ResolveTileAtCursor(), yaze::gui::TileSelectorWidget::RenderResult::selected_tile, selected_tile_id_, yaze::gui::TileSelectorWidget::RenderResult::selection_changed, yaze::gui::TileSelectorWidget::RenderResult::tile_clicked, and yaze::gui::TileSelectorWidget::RenderResult::tile_double_clicked.
Referenced by Render().
|
private |
Definition at line 119 of file tile_selector_widget.cc.
References canvas_, config_, yaze::gui::TileSelectorWidget::Config::draw_offset, yaze::gui::Canvas::scrolling(), yaze::gui::TileSelectorWidget::Config::tiles_per_row, and yaze::gui::Canvas::zero_point().
Referenced by HandleInteraction().
|
private |
Definition at line 142 of file tile_selector_widget.cc.
References canvas_, config_, yaze::gui::TileSelectorWidget::Config::draw_offset, yaze::gui::Canvas::DrawOutlineWithColor(), yaze::gui::TileSelectorWidget::Config::highlight_color, IsValidTileId(), selected_tile_id_, and yaze::gui::TileSelectorWidget::Config::tiles_per_row.
Referenced by Render().
|
private |
Definition at line 158 of file tile_selector_widget.cc.
Referenced by Render().
|
private |
Definition at line 184 of file tile_selector_widget.cc.
References total_tiles_.
Referenced by DrawHighlight(), HandleInteraction(), Render(), ScrollToTile(), SetSelectedTile(), SetTileCount(), and TileOrigin().
|
private |
Definition at line 56 of file tile_selector_widget.h.
Referenced by AttachCanvas(), DrawHighlight(), Render(), ResolveTileAtCursor(), and ScrollToTile().
|
private |
Definition at line 57 of file tile_selector_widget.h.
Referenced by DrawHighlight(), Render(), ResolveTileAtCursor(), and TileOrigin().
|
private |
Definition at line 58 of file tile_selector_widget.h.
Referenced by DrawHighlight(), GetSelectedTileID(), HandleInteraction(), SetSelectedTile(), and SetTileCount().
|
private |
Definition at line 59 of file tile_selector_widget.h.
Referenced by IsValidTileId(), Render(), and SetTileCount().
|
private |
Definition at line 60 of file tile_selector_widget.h.
|
mutableprivate |
Definition at line 63 of file tile_selector_widget.h.
Referenced by Render(), and ScrollToTile().
|
mutableprivate |
Definition at line 64 of file tile_selector_widget.h.
Referenced by Render(), and ScrollToTile().