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

Reusable tile selector built on top of Canvas. More...

#include <tile_selector_widget.h>

Collaboration diagram for yaze::gui::TileSelectorWidget:

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

Canvascanvas_ = 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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ TileSelectorWidget() [1/2]

yaze::gui::TileSelectorWidget::TileSelectorWidget ( std::string  widget_id)
explicit

Definition at line 7 of file tile_selector_widget.cc.

◆ TileSelectorWidget() [2/2]

yaze::gui::TileSelectorWidget::TileSelectorWidget ( std::string  widget_id,
Config  config 
)

Definition at line 10 of file tile_selector_widget.cc.

Member Function Documentation

◆ AttachCanvas()

void yaze::gui::TileSelectorWidget::AttachCanvas ( Canvas canvas)

◆ SetTileCount()

void yaze::gui::TileSelectorWidget::SetTileCount ( int  total_tiles)

◆ SetSelectedTile()

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().

Here is the call graph for this function:

◆ GetSelectedTileID()

int yaze::gui::TileSelectorWidget::GetSelectedTileID ( ) const
inline

◆ Render()

◆ ScrollToTile()

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().

Here is the call graph for this function:

◆ TileOrigin()

◆ HandleInteraction()

◆ ResolveTileAtCursor()

int yaze::gui::TileSelectorWidget::ResolveTileAtCursor ( int  tile_display_size) const
private

◆ DrawHighlight()

void yaze::gui::TileSelectorWidget::DrawHighlight ( int  tile_display_size) const
private

◆ DrawTileIdLabels()

void yaze::gui::TileSelectorWidget::DrawTileIdLabels ( int  tile_display_size) const
private

Definition at line 158 of file tile_selector_widget.cc.

Referenced by Render().

◆ IsValidTileId()

bool yaze::gui::TileSelectorWidget::IsValidTileId ( int  tile_id) const
private

Member Data Documentation

◆ canvas_

Canvas* yaze::gui::TileSelectorWidget::canvas_ = nullptr
private

◆ config_

Config yaze::gui::TileSelectorWidget::config_ {}
private

Definition at line 57 of file tile_selector_widget.h.

Referenced by DrawHighlight(), Render(), ResolveTileAtCursor(), and TileOrigin().

◆ selected_tile_id_

int yaze::gui::TileSelectorWidget::selected_tile_id_ = 0
private

◆ total_tiles_

int yaze::gui::TileSelectorWidget::total_tiles_ = 0
private

Definition at line 59 of file tile_selector_widget.h.

Referenced by IsValidTileId(), Render(), and SetTileCount().

◆ widget_id_

std::string yaze::gui::TileSelectorWidget::widget_id_
private

Definition at line 60 of file tile_selector_widget.h.

◆ pending_scroll_tile_id_

int yaze::gui::TileSelectorWidget::pending_scroll_tile_id_ = -1
mutableprivate

Definition at line 63 of file tile_selector_widget.h.

Referenced by Render(), and ScrollToTile().

◆ pending_scroll_use_imgui_

bool yaze::gui::TileSelectorWidget::pending_scroll_use_imgui_ = true
mutableprivate

Definition at line 64 of file tile_selector_widget.h.

Referenced by Render(), and ScrollToTile().


The documentation for this class was generated from the following files: