|
@@ -584,8 +584,11 @@ void TextRenderer::renderChar(int& x,
|
|
|
if (selected)
|
|
|
{
|
|
|
int br = getCharWidth(c) + zeichenAbstand;
|
|
|
- zRObj.alphaRegion(
|
|
|
- x, y, br, getZeilenHeight(), selectedBackgroundColor);
|
|
|
+ zRObj.alphaRegion(x,
|
|
|
+ y,
|
|
|
+ br,
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
+ selectedBackgroundColor);
|
|
|
}
|
|
|
if (b->getBuff())
|
|
|
{
|
|
@@ -652,7 +655,7 @@ void TextRenderer::renderChar(int& x,
|
|
|
zRObj.alphaRegion(x,
|
|
|
y,
|
|
|
schriftSize / 2 + zeichenAbstand,
|
|
|
- getZeilenHeight(),
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
selectedBackgroundColor);
|
|
|
if (underlined)
|
|
|
zRObj.drawLinieHAlpha(x - (int)(zeichenAbstand / 2.0 + 0.5),
|
|
@@ -668,7 +671,7 @@ void TextRenderer::renderChar(int& x,
|
|
|
zRObj.alphaRegion(x,
|
|
|
y,
|
|
|
schriftSize + zeichenAbstand,
|
|
|
- getZeilenHeight(),
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
selectedBackgroundColor);
|
|
|
if (underlined)
|
|
|
zRObj.drawLinieHAlpha(x - (int)(zeichenAbstand / 2.0 + 0.5),
|
|
@@ -741,6 +744,16 @@ int TextRenderer::getCharWidth(const char c) const
|
|
|
return charWidths[(unsigned char)c];
|
|
|
}
|
|
|
|
|
|
+int Framework::TextRenderer::getMaxCharWidth() const
|
|
|
+{
|
|
|
+ int result = 0;
|
|
|
+ for (int i = 0; i < 256; i++)
|
|
|
+ {
|
|
|
+ result = MAX(result, getCharWidth((char)i));
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
// Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text
|
|
|
// vollständig darzustellen
|
|
|
// c: Der Buchstabe, von dem die Höhe in Pixeln ermitelt werden soll
|
|
@@ -787,10 +800,19 @@ int TextRenderer::textPos(const char* txt, int mausX, int mausY) const
|
|
|
tx = 0;
|
|
|
if (mausY < ty) return i;
|
|
|
}
|
|
|
- if (txt[i] == '\t') tx += schriftSize + zeichenAbstand;
|
|
|
- if (txt[i] == ' ') tx += schriftSize / 2 + zeichenAbstand;
|
|
|
- tx += getCharWidth(txt[i]);
|
|
|
- int txpl = getCharWidth(txt[i + 1]) / 2;
|
|
|
+ if (txt[i] == '\t')
|
|
|
+ {
|
|
|
+ tx += schriftSize + zeichenAbstand;
|
|
|
+ }
|
|
|
+ else if (txt[i] == ' ')
|
|
|
+ {
|
|
|
+ tx += schriftSize / 2 + zeichenAbstand;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ tx += getCharWidth(txt[i]) + zeichenAbstand;
|
|
|
+ }
|
|
|
+ int txpl = getCharWidth(txt[i]) / 2;
|
|
|
if (mausX < tx - txpl && mausY < ty + sh + zeilenAbstand) return i;
|
|
|
}
|
|
|
if (mausY < ty + sh + zeilenAbstand) return textLength(txt);
|
|
@@ -838,8 +860,11 @@ void GravurTextRenderer::renderChar(int& x,
|
|
|
if (selected)
|
|
|
{
|
|
|
int br = getCharWidth(c) + zeichenAbstand;
|
|
|
- zRObj.alphaRegion(
|
|
|
- x, y, br, getZeilenHeight(), selectedBackgroundColor);
|
|
|
+ zRObj.alphaRegion(x,
|
|
|
+ y,
|
|
|
+ br,
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
+ selectedBackgroundColor);
|
|
|
}
|
|
|
if (b->getBuff())
|
|
|
{
|
|
@@ -941,7 +966,7 @@ void GravurTextRenderer::renderChar(int& x,
|
|
|
zRObj.alphaRegion(x,
|
|
|
y,
|
|
|
schriftSize / 2 + zeichenAbstand,
|
|
|
- getZeilenHeight(),
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
selectedBackgroundColor);
|
|
|
if (underlined)
|
|
|
zRObj.drawLinieHAlpha(x - (int)(zeichenAbstand / 2.0 + 0.5),
|
|
@@ -957,7 +982,7 @@ void GravurTextRenderer::renderChar(int& x,
|
|
|
zRObj.alphaRegion(x,
|
|
|
y,
|
|
|
schriftSize + zeichenAbstand,
|
|
|
- getZeilenHeight(),
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
selectedBackgroundColor);
|
|
|
if (underlined)
|
|
|
zRObj.drawLinieHAlpha(x - (int)(zeichenAbstand / 2.0 + 0.5),
|
|
@@ -1027,8 +1052,11 @@ void KursivTextRenderer::renderChar(int& x,
|
|
|
if (selected)
|
|
|
{
|
|
|
int br = getCharWidth(c) + zeichenAbstand;
|
|
|
- zRObj.alphaRegion(
|
|
|
- x, y, br, getZeilenHeight(), selectedBackgroundColor);
|
|
|
+ zRObj.alphaRegion(x,
|
|
|
+ y,
|
|
|
+ br,
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
+ selectedBackgroundColor);
|
|
|
}
|
|
|
if (b->getBuff())
|
|
|
{
|
|
@@ -1111,7 +1139,7 @@ void KursivTextRenderer::renderChar(int& x,
|
|
|
zRObj.alphaRegion(x,
|
|
|
y,
|
|
|
schriftSize / 2 + zeichenAbstand,
|
|
|
- getZeilenHeight(),
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
selectedBackgroundColor);
|
|
|
if (underlined)
|
|
|
zRObj.drawLinieHAlpha(x - (int)(zeichenAbstand / 2.0 + 0.5),
|
|
@@ -1127,7 +1155,7 @@ void KursivTextRenderer::renderChar(int& x,
|
|
|
zRObj.alphaRegion(x,
|
|
|
y,
|
|
|
schriftSize + zeichenAbstand,
|
|
|
- getZeilenHeight(),
|
|
|
+ getZeilenHeight() + zeilenAbstand,
|
|
|
selectedBackgroundColor);
|
|
|
if (underlined)
|
|
|
zRObj.drawLinieHAlpha(x - (int)(zeichenAbstand / 2.0 + 0.5),
|