#include "tile_widget.h" #include "consts.h" IMPLEMENT_DYNAMIC_CLASS(TileWidget,wxScrolledCanvas) BEGIN_EVENT_TABLE(TileWidget, wxScrolledCanvas) EVT_PAINT(TileWidget::OnPaint) EVT_LEFT_DOWN(TileWidget::OnClick) END_EVENT_TABLE() TileWidget::TileWidget() { Init(); } TileWidget::TileWidget(wxWindow* parent, wxWindowID winid, int width, int scale, const wxPoint& pos, const wxSize& size) : wxScrolledCanvas(parent, winid, pos, size), numTilesWidth(width), scale(scale) { Init(); } int TileWidget::getSelected() { return selected; } void TileWidget::Init() { tiles = wxBitmap(wxImage("res/tiles.png")); this->FitInside(); this->SetScrollRate(5, 5); SetVirtualSize(numTilesWidth*TILE_WIDTH*scale, (numTiles / numTilesWidth + 1) * TILE_HEIGHT*scale); } void TileWidget::OnPaint(wxPaintEvent&) { wxPaintDC dc(this); wxMemoryDC tiles_dc; tiles_dc.SelectObject(tiles); int vX, vY, vW, vH, aW, aH; GetViewStart(&vX, &vY); int vXX, vYX; GetScrollPixelsPerUnit(&vXX, &vYX); vX *= vXX; vY *= vYX; GetVirtualSize(&vW, &vH); GetSize(&aW, &aH); for (int i=0; i