mirror of https://github.com/stella-emu/stella.git
adapted HighScoresDialog to variable font sizes
This commit is contained in:
parent
aa6b500b88
commit
d8d1bdc00b
File diff suppressed because it is too large
Load Diff
|
@ -30,6 +30,7 @@
|
||||||
#include "HighScoresDialog.hxx"
|
#include "HighScoresDialog.hxx"
|
||||||
|
|
||||||
static constexpr int BUTTON_GFX_W = 10, BUTTON_GFX_H = 10;
|
static constexpr int BUTTON_GFX_W = 10, BUTTON_GFX_H = 10;
|
||||||
|
static constexpr int BUTTON_GFX_W_LARGE = 16, BUTTON_GFX_H_LARGE = 16;
|
||||||
|
|
||||||
static constexpr std::array<uInt32, BUTTON_GFX_H> PREV_GFX = {
|
static constexpr std::array<uInt32, BUTTON_GFX_H> PREV_GFX = {
|
||||||
0b0000110000,
|
0b0000110000,
|
||||||
|
@ -57,6 +58,44 @@ static constexpr std::array<uInt32, BUTTON_GFX_H> NEXT_GFX = {
|
||||||
0b0000110000,
|
0b0000110000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static constexpr std::array<uInt32, BUTTON_GFX_H_LARGE> PREV_GFX_LARGE = {
|
||||||
|
0b0000000110000000,
|
||||||
|
0b0000000110000000,
|
||||||
|
0b0000001111000000,
|
||||||
|
0b0000001111000000,
|
||||||
|
0b0000011111100000,
|
||||||
|
0b0000011111100000,
|
||||||
|
0b0000111001110000,
|
||||||
|
0b0000111001110000,
|
||||||
|
0b0001110000111000,
|
||||||
|
0b0001110000111000,
|
||||||
|
0b0011100000011100,
|
||||||
|
0b0011100000011100,
|
||||||
|
0b0111000000001110,
|
||||||
|
0b0111000000001110,
|
||||||
|
0b1110000000000111,
|
||||||
|
0b1110000000000111,
|
||||||
|
};
|
||||||
|
|
||||||
|
static constexpr std::array<uInt32, BUTTON_GFX_H_LARGE> NEXT_GFX_LARGE = {
|
||||||
|
0b1110000000000111,
|
||||||
|
0b1110000000000111,
|
||||||
|
0b0111000000001110,
|
||||||
|
0b0111000000001110,
|
||||||
|
0b0011100000011100,
|
||||||
|
0b0011100000011100,
|
||||||
|
0b0001110000111000,
|
||||||
|
0b0001110000111000,
|
||||||
|
0b0000111001110000,
|
||||||
|
0b0000111001110000,
|
||||||
|
0b0000011111100000,
|
||||||
|
0b0000011111100000,
|
||||||
|
0b0000001111000000,
|
||||||
|
0b0000001111000000,
|
||||||
|
0b0000000110000000,
|
||||||
|
0b0000000110000000,
|
||||||
|
};
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
HighScoresDialog::HighScoresDialog(OSystem& osystem, DialogContainer& parent,
|
HighScoresDialog::HighScoresDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
int max_w, int max_h,
|
int max_w, int max_h,
|
||||||
|
@ -79,7 +118,17 @@ HighScoresDialog::HighScoresDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
const int VBORDER = fontHeight / 2;
|
const int VBORDER = fontHeight / 2;
|
||||||
const int HBORDER = fontWidth * 1.25;
|
const int HBORDER = fontWidth * 1.25;
|
||||||
const int VGAP = fontHeight / 4;
|
const int VGAP = fontHeight / 4;
|
||||||
|
const int BUTTON_GAP = fontWidth;
|
||||||
|
|
||||||
|
int xposRank = HBORDER;
|
||||||
|
int xposScore = xposRank + _font.getStringWidth("Rank");
|
||||||
|
int xposSpecial = xposScore + _font.getStringWidth(" Score ");
|
||||||
|
int xposName = xposSpecial + _font.getStringWidth("Round ");
|
||||||
|
int xposDate = xposName + _font.getStringWidth("Name ");
|
||||||
|
int xposDelete = xposDate + _font.getStringWidth("YY-MM-DD HH:MM ");
|
||||||
|
int nWidth = _font.getStringWidth("ABC") + _font.getMaxCharWidth() * 0.75;
|
||||||
|
bool smallFont = _font.getFontHeight() < 24;
|
||||||
|
int buttonSize = smallFont ? BUTTON_GFX_H : BUTTON_GFX_H_LARGE;
|
||||||
int xpos, ypos;
|
int xpos, ypos;
|
||||||
WidgetArray wid;
|
WidgetArray wid;
|
||||||
VariantList items;
|
VariantList items;
|
||||||
|
@ -92,25 +141,20 @@ HighScoresDialog::HighScoresDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
_font.getStringWidth("256"), lineHeight, items, "", 0,
|
_font.getStringWidth("256"), lineHeight, items, "", 0,
|
||||||
kVariationChanged);
|
kVariationChanged);
|
||||||
wid.push_back(myVariationPopup);
|
wid.push_back(myVariationPopup);
|
||||||
myPrevVarButton = new ButtonWidget(this, _font, myVariationPopup->getRight() + 157, ypos - 1,
|
int bWidth = fontWidth * 5;
|
||||||
48, myVariationPopup->getHeight(),
|
myPrevVarButton = new ButtonWidget(this, _font, xposDelete + fontWidth * 2 - bWidth * 2 - BUTTON_GAP, ypos - 1,
|
||||||
PREV_GFX.data(), BUTTON_GFX_W, BUTTON_GFX_H, kPrevVariation);
|
bWidth, myVariationPopup->getHeight(),
|
||||||
|
smallFont ? PREV_GFX.data() : PREV_GFX_LARGE.data(),
|
||||||
|
buttonSize, buttonSize, kPrevVariation);
|
||||||
wid.push_back(myPrevVarButton);
|
wid.push_back(myPrevVarButton);
|
||||||
myNextVarButton = new ButtonWidget(this, _font, myPrevVarButton->getRight() + 8, ypos - 1,
|
myNextVarButton = new ButtonWidget(this, _font, xposDelete + fontHeight - bWidth, ypos - 1,
|
||||||
48, myVariationPopup->getHeight(),
|
bWidth, myVariationPopup->getHeight(),
|
||||||
NEXT_GFX.data(), BUTTON_GFX_W, BUTTON_GFX_H, kNextVariation);
|
smallFont ? NEXT_GFX.data() : NEXT_GFX_LARGE.data(),
|
||||||
|
buttonSize, buttonSize, kNextVariation);
|
||||||
wid.push_back(myNextVarButton);
|
wid.push_back(myNextVarButton);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP * 4;
|
ypos += lineHeight + VGAP * 4;
|
||||||
|
|
||||||
int xposRank = HBORDER;
|
|
||||||
int xposScore = xposRank + _font.getStringWidth("Rank");
|
|
||||||
int xposSpecial = xposScore + _font.getStringWidth(" Score") + 16;
|
|
||||||
int xposName = xposSpecial + _font.getStringWidth("Round") + 16;
|
|
||||||
int xposDate = xposName + _font.getStringWidth("Name") + 16;
|
|
||||||
int xposDelete = xposDate + _font.getStringWidth("YY-MM-DD HH:MM") + 16;
|
|
||||||
int nWidth = _font.getStringWidth("ABC") + 4;
|
|
||||||
|
|
||||||
new StaticTextWidget(this, _font, xposRank, ypos + 1, "Rank");
|
new StaticTextWidget(this, _font, xposRank, ypos + 1, "Rank");
|
||||||
new StaticTextWidget(this, _font, xposScore, ypos + 1, " Score");
|
new StaticTextWidget(this, _font, xposScore, ypos + 1, " Score");
|
||||||
mySpecialLabelWidget = new StaticTextWidget(this, _font, xposSpecial, ypos + 1, "Round");
|
mySpecialLabelWidget = new StaticTextWidget(this, _font, xposSpecial, ypos + 1, "Round");
|
||||||
|
@ -131,7 +175,7 @@ HighScoresDialog::HighScoresDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
myEditNameWidgets[r]->setEnabled(false);
|
myEditNameWidgets[r]->setEnabled(false);
|
||||||
wid.push_back(myEditNameWidgets[r]);
|
wid.push_back(myEditNameWidgets[r]);
|
||||||
myDateWidgets[r] = new StaticTextWidget(this, _font, xposDate, ypos + 1, "YY-MM-DD HH:MM");
|
myDateWidgets[r] = new StaticTextWidget(this, _font, xposDate, ypos + 1, "YY-MM-DD HH:MM");
|
||||||
myDeleteButtons[r] = new ButtonWidget(this, _font, xposDelete, ypos + 1, 18, 18, "X",
|
myDeleteButtons[r] = new ButtonWidget(this, _font, xposDelete, ypos + 1, fontWidth * 2, fontHeight, "X",
|
||||||
kDeleteSingle);
|
kDeleteSingle);
|
||||||
myDeleteButtons[r]->setID(r);
|
myDeleteButtons[r]->setID(r);
|
||||||
wid.push_back(myDeleteButtons[r]);
|
wid.push_back(myDeleteButtons[r]);
|
||||||
|
|
Loading…
Reference in New Issue