mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 15:01:48 +02:00
Refactor CutText in horizontal epgview
This commit is contained in:
parent
c77f74321f
commit
ffd3e2c79f
@ -131,12 +131,7 @@ void cEpgGrid::drawText() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (config.displayMode == eHorizontal) {
|
} else if (config.displayMode == eHorizontal) {
|
||||||
if (Width() / geoManager.minutePixel < 10) {
|
cString strTitle = CutText(event->Title(), viewportHeight - borderWidth, fontManager.FontGridHorizontal).c_str();
|
||||||
int titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height()) / 2;
|
|
||||||
pixmap->DrawText(cPoint(borderWidth - 2, titleY), "...", colorText, colorTextBack, fontManager.FontGridHorizontal);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cString strTitle = CutText(event->Title(), viewportHeight, fontManager.FontGridHorizontal).c_str();
|
|
||||||
int titleY = 0;
|
int titleY = 0;
|
||||||
if (config.showTimeInGrid) { // mit Zeitangabe im Grid
|
if (config.showTimeInGrid) { // mit Zeitangabe im Grid
|
||||||
pixmap->DrawText(cPoint(borderWidth, borderWidth), *timeString, colorText, colorTextBack, fontManager.FontGridHorizontalSmall);
|
pixmap->DrawText(cPoint(borderWidth, borderWidth), *timeString, colorText, colorTextBack, fontManager.FontGridHorizontalSmall);
|
||||||
|
34
tools.c
34
tools.c
@ -24,32 +24,24 @@ cPlugin *GetScraperPlugin(void) {
|
|||||||
* CUTTEXT
|
* CUTTEXT
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
std::string CutText(std::string text, int width, const cFont *font) {
|
std::string CutText(std::string text, int width, const cFont *font) {
|
||||||
if (width <= font->Size())
|
int actWidth = font->Width(text.c_str());
|
||||||
|
if (actWidth <= width) {
|
||||||
return text.c_str();
|
return text.c_str();
|
||||||
if (font->Width(text.c_str()) < width)
|
} else {
|
||||||
return text.c_str();
|
int i = std::max((actWidth - width) / font->Size(), 1);
|
||||||
cTextWrapper twText;
|
do {
|
||||||
twText.Set(text.c_str(), font, width);
|
text = text.substr(0, text.length() - i);
|
||||||
std::string cuttedTextNative = twText.GetLine(0);
|
|
||||||
std::stringstream sstrText;
|
std::stringstream sstrText;
|
||||||
sstrText << cuttedTextNative << "...";
|
sstrText << text << "....";
|
||||||
std::string cuttedText = sstrText.str();
|
actWidth = font->Width(sstrText.str().c_str());
|
||||||
int actWidth = font->Width(cuttedText.c_str());
|
i = 1;
|
||||||
if (actWidth > width) {
|
}
|
||||||
int overlap = actWidth - width;
|
while ((actWidth > width) && (text.length() > 0));
|
||||||
int charWidth = font->Width(".");
|
|
||||||
if (charWidth == 0)
|
|
||||||
charWidth = 1;
|
|
||||||
int cutChars = overlap / charWidth;
|
|
||||||
if (cutChars > 0) {
|
|
||||||
cuttedTextNative = cuttedTextNative.substr(0, cuttedTextNative.length() - cutChars);
|
|
||||||
std::stringstream sstrText2;
|
std::stringstream sstrText2;
|
||||||
sstrText2 << cuttedTextNative << "...";
|
sstrText2 << text << "...";
|
||||||
cuttedText = sstrText2.str();
|
return sstrText2.str();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cuttedText;
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************************
|
/****************************************************************************************
|
||||||
* StrToLowerCase
|
* StrToLowerCase
|
||||||
|
2
view.c
2
view.c
@ -116,7 +116,7 @@ void cView::DrawHeader(void) {
|
|||||||
int yDateTime = border / 2;
|
int yDateTime = border / 2;
|
||||||
int yTitle = (headerHeight - fontHeaderLarge->Height()) / 2;
|
int yTitle = (headerHeight - fontHeaderLarge->Height()) / 2;
|
||||||
int ySubtitle = headerHeight - fontHeader->Height() - border / 3;
|
int ySubtitle = headerHeight - fontHeader->Height() - border / 3;
|
||||||
int textWidthMax = headerWidth - xText;
|
int textWidthMax = headerWidth - xText - border / 2;
|
||||||
pixmapHeader->DrawText(cPoint(xText, yDateTime), CutText(dateTime, textWidthMax, fontHeader).c_str(), theme.Color(clrFont), theme.Color(clrStatusHeader), fontHeader);
|
pixmapHeader->DrawText(cPoint(xText, yDateTime), CutText(dateTime, textWidthMax, fontHeader).c_str(), theme.Color(clrFont), theme.Color(clrStatusHeader), fontHeader);
|
||||||
pixmapHeader->DrawText(cPoint(xText, yTitle), CutText(title, textWidthMax, fontHeaderLarge).c_str(), theme.Color(clrFont), theme.Color(clrStatusHeader), fontHeaderLarge);
|
pixmapHeader->DrawText(cPoint(xText, yTitle), CutText(title, textWidthMax, fontHeaderLarge).c_str(), theme.Color(clrFont), theme.Color(clrStatusHeader), fontHeaderLarge);
|
||||||
pixmapHeader->DrawText(cPoint(xText, ySubtitle), CutText(subTitle, textWidthMax, fontHeader).c_str(), theme.Color(clrFont), theme.Color(clrStatusHeader), fontHeader);
|
pixmapHeader->DrawText(cPoint(xText, ySubtitle), CutText(subTitle, textWidthMax, fontHeader).c_str(), theme.Color(clrFont), theme.Color(clrStatusHeader), fontHeader);
|
||||||
|
Loading…
Reference in New Issue
Block a user