Mercurial > hg > openttd
changeset 18430:c537badd5588 draft
(svn r23272) -Codechange: pass the initial font size to DrawString and friends
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 20 Nov 2011 11:50:12 +0000 |
parents | 39887e0daae5 |
children | d167deadae56 |
files | src/gfx.cpp src/gfx_func.h |
diffstat | 2 files changed, 20 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -65,7 +65,7 @@ FontSize fontsize; TextColour cur_colour, prev_colour; - DrawStringParams(TextColour colour) : fontsize(FS_NORMAL), cur_colour(colour), prev_colour(colour) {} + DrawStringParams(TextColour colour, FontSize fontsize) : fontsize(fontsize), cur_colour(colour), prev_colour(colour) {} /** * Switch to new colour \a c. @@ -624,12 +624,13 @@ * case a right-to-left language is chosen this is inverted so it * will be drawn in the right direction. * @param underline Whether to underline what has been drawn or not. + * @param fontsize The size of the initial characters. */ -int DrawString(int left, int right, int top, const char *str, TextColour colour, StringAlignment align, bool underline) +int DrawString(int left, int right, int top, const char *str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize) { char buffer[DRAW_STRING_BUFFER]; strecpy(buffer, str, lastof(buffer)); - DrawStringParams params(colour); + DrawStringParams params(colour, fontsize); return DrawString(left, right, top, buffer, lastof(buffer), params, align, underline); } @@ -645,12 +646,13 @@ * case a right-to-left language is chosen this is inverted so it * will be drawn in the right direction. * @param underline Whether to underline what has been drawn or not. + * @param fontsize The size of the initial characters. */ -int DrawString(int left, int right, int top, StringID str, TextColour colour, StringAlignment align, bool underline) +int DrawString(int left, int right, int top, StringID str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize) { char buffer[DRAW_STRING_BUFFER]; GetString(buffer, str, lastof(buffer)); - DrawStringParams params(colour); + DrawStringParams params(colour, fontsize); return DrawString(left, right, top, buffer, lastof(buffer), params, align, underline); } @@ -834,10 +836,11 @@ * @param colour Colour used for drawing the string, see DoDrawString() for details * @param align The horizontal and vertical alignment of the string. * @param underline Whether to underline all strings + * @param fontsize The size of the initial characters. * * @return If \a align is #SA_BOTTOM, the top to where we have written, else the bottom to where we have written. */ -static int DrawStringMultiLine(int left, int right, int top, int bottom, char *str, const char *last, TextColour colour, StringAlignment align, bool underline) +static int DrawStringMultiLine(int left, int right, int top, int bottom, char *str, const char *last, TextColour colour, StringAlignment align, bool underline, FontSize fontsize) { int maxw = right - left + 1; int maxh = bottom - top + 1; @@ -883,7 +886,7 @@ } const char *src = str; - DrawStringParams params(colour); + DrawStringParams params(colour, fontsize); int written_top = bottom; // Uppermost position of rendering a line of text for (;;) { if (skip_lines == 0) { @@ -933,14 +936,15 @@ * @param colour Colour used for drawing the string, see DoDrawString() for details * @param align The horizontal and vertical alignment of the string. * @param underline Whether to underline all strings + * @param fontsize The size of the initial characters. * * @return If \a align is #SA_BOTTOM, the top to where we have written, else the bottom to where we have written. */ -int DrawStringMultiLine(int left, int right, int top, int bottom, const char *str, TextColour colour, StringAlignment align, bool underline) +int DrawStringMultiLine(int left, int right, int top, int bottom, const char *str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize) { char buffer[DRAW_STRING_BUFFER]; strecpy(buffer, str, lastof(buffer)); - return DrawStringMultiLine(left, right, top, bottom, buffer, lastof(buffer), colour, align, underline); + return DrawStringMultiLine(left, right, top, bottom, buffer, lastof(buffer), colour, align, underline, fontsize); } /** @@ -954,14 +958,15 @@ * @param colour Colour used for drawing the string, see DoDrawString() for details * @param align The horizontal and vertical alignment of the string. * @param underline Whether to underline all strings + * @param fontsize The size of the initial characters. * * @return If \a align is #SA_BOTTOM, the top to where we have written, else the bottom to where we have written. */ -int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str, TextColour colour, StringAlignment align, bool underline) +int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize) { char buffer[DRAW_STRING_BUFFER]; GetString(buffer, str, lastof(buffer)); - return DrawStringMultiLine(left, right, top, bottom, buffer, lastof(buffer), colour, align, underline); + return DrawStringMultiLine(left, right, top, bottom, buffer, lastof(buffer), colour, align, underline, fontsize); } /**
--- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -110,10 +110,10 @@ }; DECLARE_ENUM_AS_BIT_SET(StringAlignment) -int DrawString(int left, int right, int top, const char *str, TextColour colour = TC_FROMSTRING, StringAlignment align = SA_LEFT, bool underline = false); -int DrawString(int left, int right, int top, StringID str, TextColour colour = TC_FROMSTRING, StringAlignment align = SA_LEFT, bool underline = false); -int DrawStringMultiLine(int left, int right, int top, int bottom, const char *str, TextColour colour = TC_FROMSTRING, StringAlignment align = (SA_TOP | SA_LEFT), bool underline = false); -int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str, TextColour colour = TC_FROMSTRING, StringAlignment align = (SA_TOP | SA_LEFT), bool underline = false); +int DrawString(int left, int right, int top, const char *str, TextColour colour = TC_FROMSTRING, StringAlignment align = SA_LEFT, bool underline = false, FontSize fontsize = FS_NORMAL); +int DrawString(int left, int right, int top, StringID str, TextColour colour = TC_FROMSTRING, StringAlignment align = SA_LEFT, bool underline = false, FontSize fontsize = FS_NORMAL); +int DrawStringMultiLine(int left, int right, int top, int bottom, const char *str, TextColour colour = TC_FROMSTRING, StringAlignment align = (SA_TOP | SA_LEFT), bool underline = false, FontSize fontsize = FS_NORMAL); +int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str, TextColour colour = TC_FROMSTRING, StringAlignment align = (SA_TOP | SA_LEFT), bool underline = false, FontSize fontsize = FS_NORMAL); void DrawCharCentered(uint32 c, int x, int y, TextColour colour);