Added logic to fill out palette label when moving cursor over tile.

This commit is contained in:
Matthew Budd 2020-10-05 20:02:16 -04:00
parent cc70f501c8
commit 6ef21c4433
2 changed files with 82 additions and 5 deletions

View File

@ -150,6 +150,7 @@ ppuViewerDialog_t::ppuViewerDialog_t(QWidget *parent)
patternView[1]->setPattern( &pattern1 ); patternView[1]->setPattern( &pattern1 );
patternView[0]->setTileLabel( tileLabel[0] ); patternView[0]->setTileLabel( tileLabel[0] );
patternView[1]->setTileLabel( tileLabel[1] ); patternView[1]->setTileLabel( tileLabel[1] );
paletteView->setTileLabel( paletteFrame );
scanLineEdit->setMaxLength( 3 ); scanLineEdit->setMaxLength( 3 );
scanLineEdit->setInputMask( ">900;" ); scanLineEdit->setInputMask( ">900;" );
@ -316,12 +317,18 @@ void ppuPatternView_t::mousePressEvent(QMouseEvent * event)
if ( event->button() == Qt::LeftButton ) if ( event->button() == Qt::LeftButton )
{ {
// TODO Load Tile Viewport // Load Tile Viewport
PPUViewSkip = 100;
FCEUD_UpdatePPUView( -1, 0 );
} }
else if ( event->button() == Qt::RightButton ) else if ( event->button() == Qt::RightButton )
{ {
pindex[ patternIndex ] = (pindex[ patternIndex ] + 1) % 9; pindex[ patternIndex ] = (pindex[ patternIndex ] + 1) % 9;
PPUViewSkip = 100; PPUViewSkip = 100;
FCEUD_UpdatePPUView( -1, 0 );
} }
} }
//---------------------------------------------------- //----------------------------------------------------
@ -558,22 +565,83 @@ void FCEUD_UpdatePPUView(int scanline, int refreshchr)
ppuPalatteView_t::ppuPalatteView_t(QWidget *parent) ppuPalatteView_t::ppuPalatteView_t(QWidget *parent)
: QWidget(parent) : QWidget(parent)
{ {
setMinimumWidth( 32 * PALETTEHEIGHT ); this->setFocusPolicy(Qt::StrongFocus);
this->setMouseTracking(true);
setMinimumWidth( 32 * PALETTEWIDTH );
setMinimumHeight( 32 * PALETTEHEIGHT ); setMinimumHeight( 32 * PALETTEHEIGHT );
viewWidth = 32 * PALETTEWIDTH;
viewHeight = 32 * PALETTEHEIGHT;
boxWidth = viewWidth / PALETTEWIDTH;
boxHeight = viewHeight / PALETTEHEIGHT;
frame = NULL;
} }
//---------------------------------------------------- //----------------------------------------------------
ppuPalatteView_t::~ppuPalatteView_t(void) ppuPalatteView_t::~ppuPalatteView_t(void)
{ {
}
//----------------------------------------------------
void ppuPalatteView_t::setTileLabel( QGroupBox *l )
{
frame = l;
}
//----------------------------------------------------
QPoint ppuPalatteView_t::convPixToTile( QPoint p )
{
QPoint t(0,0);
t.setX( p.x() / boxWidth );
t.setY( p.y() / boxHeight );
return t;
}
//----------------------------------------------------
void ppuPalatteView_t::resizeEvent(QResizeEvent *event)
{
viewWidth = event->size().width();
viewHeight = event->size().height();
boxWidth = viewWidth / PALETTEWIDTH;
boxHeight = viewHeight / PALETTEHEIGHT;
}
//----------------------------------------------------
void ppuPalatteView_t::mouseMoveEvent(QMouseEvent *event)
{
QPoint tile = convPixToTile( event->pos() );
if ( (tile.x() < PALETTEWIDTH) && (tile.y() < PALETTEHEIGHT) )
{
char stmp[64];
int ix = (tile.y()<<4)|tile.x();
sprintf( stmp, "Palette: $%02X", palcache[ix]);
frame->setTitle( tr(stmp) );
}
}
//----------------------------------------------------------------------------
void ppuPalatteView_t::mousePressEvent(QMouseEvent * event)
{
//QPoint tile = convPixToTile( event->pos() );
//if ( event->button() == Qt::LeftButton )
//{
//}
//else if ( event->button() == Qt::RightButton )
//{
//}
} }
//---------------------------------------------------- //----------------------------------------------------
void ppuPalatteView_t::paintEvent(QPaintEvent *event) void ppuPalatteView_t::paintEvent(QPaintEvent *event)
{ {
int x,y,w,h,xx,yy; int x,y,w,h,xx,yy;
QPainter painter(this); QPainter painter(this);
int viewWidth = event->rect().width(); viewWidth = event->rect().width();
int viewHeight = event->rect().height(); viewHeight = event->rect().height();
//printf("PPU PatternView %ix%i \n", viewWidth, viewHeight ); //printf("PPU PatternView %ix%i \n", viewWidth, viewHeight );
@ -599,7 +667,6 @@ void ppuPalatteView_t::paintEvent(QPaintEvent *event)
x = i*w; x = i*w;
painter.drawLine( x, 0 , x, y ); painter.drawLine( x, 0 , x, y );
} }
x = PALETTEWIDTH*w; x = PALETTEWIDTH*w;
for (int i=0; i<=PALETTEHEIGHT; i++) for (int i=0; i<=PALETTEHEIGHT; i++)

View File

@ -70,8 +70,18 @@ class ppuPalatteView_t : public QWidget
ppuPalatteView_t(QWidget *parent = 0); ppuPalatteView_t(QWidget *parent = 0);
~ppuPalatteView_t(void); ~ppuPalatteView_t(void);
void setTileLabel( QGroupBox *l );
QPoint convPixToTile( QPoint p );
protected: protected:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
void resizeEvent(QResizeEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent * event);
int viewWidth;
int viewHeight;
int boxWidth;
int boxHeight;
QGroupBox *frame;
}; };
class ppuViewerDialog_t : public QDialog class ppuViewerDialog_t : public QDialog