diff --git a/epggrid.c b/epggrid.c index 897851f..2c789ae 100644 --- a/epggrid.c +++ b/epggrid.c @@ -169,13 +169,17 @@ void cEpgGrid::drawText() { void cEpgGrid::drawIcon(cString iconText, tColor color) { - const cFont *font = (config.displayMode == eVertical) - ?fontManager.FontGrid - :fontManager.FontGridHorizontalSmall; - int textWidth = font->Width(*iconText)+2*borderWidth; - int textHeight = font->Height()+10; - pixmap->DrawRectangle( cRect(Width() - textWidth - borderWidth, Height() - textHeight - borderWidth, textWidth, textHeight), color); - pixmap->DrawText(cPoint(Width() - textWidth, Height() - textHeight - borderWidth/2), *iconText, theme.Color(clrFont), color, font); + const cFont *font = (config.displayMode == eVertical) ? fontManager.FontGrid : fontManager.FontGridHorizontalSmall; + int textWidth = font->Width(*iconText) + 2 * borderWidth; + int textHeight = font->Height() + 10; + if ((config.displayMode == eHorizontal) && ((Width() - 2 * textWidth) < 0)) + pixmap->DrawEllipse( cRect(Width() - textHeight / 2 - borderWidth, Height() - textHeight - borderWidth, textHeight / 2, textHeight / 2), color); + else if ((config.displayMode == eVertical) && ((Height() - 2 * textHeight) < 0)) + pixmap->DrawEllipse( cRect(Width() - textHeight / 2 - borderWidth, borderWidth, textHeight / 2, textHeight / 2), color); + else { + pixmap->DrawEllipse( cRect(Width() - textWidth - borderWidth, Height() - textHeight - borderWidth, textWidth, textHeight), color); + pixmap->DrawText(cPoint(Width() - textWidth, Height() - textHeight - borderWidth / 2), *iconText, theme.Color(clrFont), clrTransparent, font); + } } cString cEpgGrid::getTimeString(void) {