- Remove LabelOffset from menus entirely and just compute things so that the console font and

small font, when mixed on the same line, align at their baselines.

SVN r3786 (trunk)
This commit is contained in:
Randy Heit 2012-07-26 05:27:37 +00:00
parent 2b0cc30f7c
commit 10f1281977
6 changed files with 16 additions and 21 deletions

View file

@ -139,7 +139,6 @@ struct FOptionMenuSettings
EColorRange mFontColorHighlight; EColorRange mFontColorHighlight;
EColorRange mFontColorSelection; EColorRange mFontColorSelection;
int mLinespacing; int mLinespacing;
int mLabelOffset;
}; };
struct FOptionMenuDescriptor : public FMenuDescriptor struct FOptionMenuDescriptor : public FMenuDescriptor

View file

@ -605,7 +605,7 @@ static void ParseOptionSettings(FScanner &sc)
else if (sc.Compare("LabelOffset")) else if (sc.Compare("LabelOffset"))
{ {
sc.MustGetNumber(); sc.MustGetNumber();
OptionSettings.mLabelOffset = sc.Number; // ignored
} }
else else
{ {

View file

@ -214,7 +214,7 @@ void DMessageBoxMenu::Drawer ()
{ {
screen->DrawText(ConFont, OptionSettings.mFontColorSelection, screen->DrawText(ConFont, OptionSettings.mFontColorSelection,
(150 - 160) * CleanXfac + screen->GetWidth() / 2, (150 - 160) * CleanXfac + screen->GetWidth() / 2,
(y + (fontheight + 1) * messageSelection - 100) * CleanYfac + screen->GetHeight() / 2, (y + (fontheight + 1) * messageSelection - 100 + fontheight/2 - 5) * CleanYfac + screen->GetHeight() / 2,
"\xd", "\xd",
DTA_CellX, 8 * CleanXfac, DTA_CellX, 8 * CleanXfac,
DTA_CellY, 8 * CleanYfac, DTA_CellY, 8 * CleanYfac,

View file

@ -398,8 +398,6 @@ void DOptionMenu::Drawer ()
} }
} }
mDesc->mDrawTop = y; mDesc->mDrawTop = y;
//int labelofs = OptionSettings.mLabelOffset * CleanXfac_1;
//int cursorspace = 14 * CleanXfac_1;
int fontheight = OptionSettings.mLinespacing * CleanYfac_1; int fontheight = OptionSettings.mLinespacing * CleanYfac_1;
y *= CleanYfac_1; y *= CleanYfac_1;
@ -449,11 +447,11 @@ void DOptionMenu::Drawer ()
if (CanScrollUp) if (CanScrollUp)
{ {
M_DrawConText(CR_ORANGE, 3 * CleanXfac_1, ytop + OptionSettings.mLabelOffset, "\x1a"); M_DrawConText(CR_ORANGE, 3 * CleanXfac_1, ytop, "\x1a");
} }
if (CanScrollDown) if (CanScrollDown)
{ {
M_DrawConText(CR_ORANGE, 3 * CleanXfac_1, y - 8*CleanYfac_1 + OptionSettings.mLabelOffset, "\x1b"); M_DrawConText(CR_ORANGE, 3 * CleanXfac_1, y - 8*CleanYfac_1, "\x1b");
} }
Super::Drawer(); Super::Drawer();
} }

View file

@ -407,11 +407,11 @@ public:
C_NameKeys (description, Key1, Key2); C_NameKeys (description, Key1, Key2);
if (description[0]) if (description[0])
{ {
M_DrawConText(CR_WHITE, indent + CURSORSPACE, y-1+OptionSettings.mLabelOffset, description); M_DrawConText(CR_WHITE, indent + CURSORSPACE, y + (OptionSettings.mLinespacing-8)*CleanYfac_1, description);
} }
else else
{ {
screen->DrawText(SmallFont, CR_BLACK, indent + CURSORSPACE, y + OptionSettings.mLabelOffset, "---", screen->DrawText(SmallFont, CR_BLACK, indent + CURSORSPACE, y + (OptionSettings.mLinespacing-8)*CleanYfac_1, "---",
DTA_CleanNoMove_1, true, TAG_DONE); DTA_CleanNoMove_1, true, TAG_DONE);
} }
return indent; return indent;
@ -569,12 +569,13 @@ public:
// //
//============================================================================= //=============================================================================
void DrawSlider (int x, int y, double min, double max, double cur,int fracdigits, int indent) void DrawSlider (int x, int y, double min, double max, double cur, int fracdigits, int indent)
{ {
char textbuf[16]; char textbuf[16];
double range; double range;
int maxlen = 0; int maxlen = 0;
int right = x + (12*8 + 4) * CleanXfac_1; int right = x + (12*8 + 4) * CleanXfac_1;
int cy = y + (OptionSettings.mLinespacing-8)*CleanYfac_1;
range = max - min; range = max - min;
double ccur = clamp(cur, min, max) - min; double ccur = clamp(cur, min, max) - min;
@ -589,14 +590,14 @@ public:
if (!mSliderShort) if (!mSliderShort)
{ {
M_DrawConText(CR_WHITE, x, y, "\x10\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x12"); M_DrawConText(CR_WHITE, x, cy, "\x10\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x12");
M_DrawConText(CR_ORANGE, x + int((5 + ((ccur * 78) / range)) * CleanXfac_1), y, "\x13"); M_DrawConText(CR_ORANGE, x + int((5 + ((ccur * 78) / range)) * CleanXfac_1), cy, "\x13");
} }
else else
{ {
// On 320x200 we need a shorter slider // On 320x200 we need a shorter slider
M_DrawConText(CR_WHITE, x, y, "\x10\x11\x11\x11\x11\x11\x12"); M_DrawConText(CR_WHITE, x, cy, "\x10\x11\x11\x11\x11\x11\x12");
M_DrawConText(CR_ORANGE, x + int((5 + ((ccur * 38) / range)) * CleanXfac_1), y, "\x13"); M_DrawConText(CR_ORANGE, x + int((5 + ((ccur * 38) / range)) * CleanXfac_1), cy, "\x13");
right -= 5*8*CleanXfac_1; right -= 5*8*CleanXfac_1;
} }
@ -613,7 +614,7 @@ public:
{ {
drawLabel(indent, y, selected? OptionSettings.mFontColorSelection : OptionSettings.mFontColor); drawLabel(indent, y, selected? OptionSettings.mFontColorSelection : OptionSettings.mFontColor);
mDrawX = indent + CURSORSPACE; mDrawX = indent + CURSORSPACE;
DrawSlider (mDrawX, y + OptionSettings.mLabelOffset, mMin, mMax, GetValue(), mShowValue, indent); DrawSlider (mDrawX, y, mMin, mMax, GetValue(), mShowValue, indent);
return indent; return indent;
} }
@ -777,8 +778,8 @@ public:
if (mCVar != NULL) if (mCVar != NULL)
{ {
int box_x = indent + CURSORSPACE; int box_x = indent + CURSORSPACE;
int box_y = y + OptionSettings.mLabelOffset * CleanYfac_1 / 2; int box_y = y + CleanYfac_1;
screen->Clear (box_x, box_y, box_x + 32*CleanXfac_1, box_y + (SmallFont->GetHeight() - 1) * CleanYfac_1, screen->Clear (box_x, box_y, box_x + 32*CleanXfac_1, box_y + OptionSettings.mLinespacing*CleanYfac_1,
-1, (uint32)*mCVar | 0xff000000); -1, (uint32)*mCVar | 0xff000000);
} }
return indent; return indent;

View file

@ -926,7 +926,6 @@ public:
const char *speakerName; const char *speakerName;
int x, y, linesize; int x, y, linesize;
int width, fontheight; int width, fontheight;
int labelofs;
player_t *cp = &players[consoleplayer]; player_t *cp = &players[consoleplayer];
@ -1015,8 +1014,6 @@ public:
} }
y = mYpos; y = mYpos;
labelofs = OptionSettings.mLabelOffset;
y -= labelofs;
fontheight = OptionSettings.mLinespacing; fontheight = OptionSettings.mLinespacing;
int response = 0; int response = 0;
@ -1041,7 +1038,7 @@ public:
int color = ((DMenu::MenuTime%8) < 4) || DMenu::CurrentMenu != this ? CR_RED:CR_GREY; int color = ((DMenu::MenuTime%8) < 4) || DMenu::CurrentMenu != this ? CR_RED:CR_GREY;
x = (50 + 3 - 160) * CleanXfac + screen->GetWidth() / 2; x = (50 + 3 - 160) * CleanXfac + screen->GetWidth() / 2;
int yy = (y-1+labelofs - 100) * CleanYfac + screen->GetHeight() / 2; int yy = (y + fontheight/2 - 5 - 100) * CleanYfac + screen->GetHeight() / 2;
screen->DrawText (ConFont, color, x, yy, "\xd", screen->DrawText (ConFont, color, x, yy, "\xd",
DTA_CellX, 8 * CleanXfac, DTA_CellX, 8 * CleanXfac,
DTA_CellY, 8 * CleanYfac, DTA_CellY, 8 * CleanYfac,