Favorites menu with EPG Search favorite timers with blue key

This commit is contained in:
louis
2014-01-14 18:00:32 +01:00
parent d0651a4a50
commit a8b7c95434
21 changed files with 325 additions and 20 deletions

View File

@@ -2658,3 +2658,83 @@ eRecMenuState cRecMenuItemSearchTimer::ProcessKey(eKeys Key) {
}
return rmsNotConsumed;
}
// --- cRecMenuItemFavorite -------------------------------------------------------
cRecMenuItemFavorite::cRecMenuItemFavorite(cTVGuideSearchTimer favorite,
eRecMenuState action1,
bool active) {
this->favorite = favorite;
this->action = action1;
pixmapText = NULL;
pixmapIcons = NULL;
selectable = true;
this->active = active;
height = 2 * font->Height();;
}
cRecMenuItemFavorite::~cRecMenuItemFavorite(void) {
if (pixmapText)
osdManager.releasePixmap(pixmapText);
if (pixmapIcons)
osdManager.releasePixmap(pixmapIcons);
}
void cRecMenuItemFavorite::SetPixmaps(void) {
if (!pixmap) {
pixmap = osdManager.requestPixmap(4, cRect(x, y, width, height));
pixmapText = osdManager.requestPixmap(5, cRect(x, y, width, height));
pixmapIcons = osdManager.requestPixmap(6, cRect(x, y, width, height));
} else {
pixmap->SetViewPort(cRect(x, y, width, height));
pixmapText->SetViewPort(cRect(x, y, width, height));
pixmapIcons->SetViewPort(cRect(x, y, width, height));
}
}
void cRecMenuItemFavorite::Draw(void) {
int textX = DrawIcons();
if (!drawn) {
pixmapText->Fill(clrTransparent);
textX += 20;
cString label = cString::sprintf("\"%s\"", favorite.SearchString().c_str());
pixmapText->DrawText(cPoint(textX, (height - fontLarge->Height())/2), *label, colorText, clrTransparent, fontLarge);
drawn = true;
}
}
void cRecMenuItemFavorite::Hide(void) {
if (pixmap) pixmap->SetLayer(-1);
if (pixmapText) pixmapText->SetLayer(-1);
if (pixmapIcons) pixmapIcons->SetLayer(-1);
}
void cRecMenuItemFavorite::Show(void) {
if (pixmap) pixmap->SetLayer(4);
if (pixmapText) pixmapText->SetLayer(5);
if (pixmapIcons) pixmapIcons->SetLayer(6);
}
int cRecMenuItemFavorite::DrawIcons(void) {
pixmapIcons->Fill(clrTransparent);
int iconsX = 10;
int iconSize = height / 2;
int iconY = (height - iconSize) / 2;
std::string iconSearch;
iconSearch = active ? "search_active" : "search_inactive" ;
cImage *imgSearch = imgCache.GetIcon(iconSearch, iconSize, iconSize);
if (imgSearch) {
pixmapIcons->DrawImage(cPoint(iconsX, iconY), *imgSearch);
iconsX += iconSize + 10;
}
return iconsX;
}
eRecMenuState cRecMenuItemFavorite::ProcessKey(eKeys Key) {
switch (Key & ~k_Repeat) {
case kOk:
return action;
default:
break;
}
return rmsNotConsumed;
}