/* * menu.c: Web video plugin for the Video Disk Recorder * * See the README file for copyright information and how to reach the author. * * $Id$ */ #include #include #include #include #include #include "menu_timer.h" #define ARRAYSIZE(a) sizeof(a)/sizeof(a[0]) const char *intervalNames[] = {NULL, NULL, NULL}; const int intervalValues[] = {24*60*60, 7*24*60*60, 30*24*60*60}; // --- cEditWebviTimerMenu ------------------------------------------------- cEditWebviTimerMenu::cEditWebviTimerMenu(cWebviTimer &timer, bool refreshWhenDone, bool execButton) : cOsdMenu(tr("Edit timer"), 20), timer(timer), interval(1), refresh(refreshWhenDone) { // title strn0cpy(title, timer.GetTitle(), maxTitleLen); Add(new cMenuEditStrItem(tr("Title"), title, maxTitleLen)); // interval for (unsigned i=0; iGetTitle(), osUnknown, true)); t = timers.Next(t); } SetHelp(NULL, NULL, tr("Remove"), NULL); } eOSState cWebviTimerListMenu::ProcessKey(eKeys Key) { cWebviTimer *t; eOSState state = cOsdMenu::ProcessKey(Key); if (HasSubMenu()) return state; if (state == osUnknown) { switch (Key) { case kOk: t = timers.GetLinear(Current()); if (t) return AddSubMenu(new cEditWebviTimerMenu(*t)); break; case kYellow: t = timers.GetLinear(Current()); if (t) { if (t->Running()) { // FIXME: ask if the user wants to cancel the downloads Skins.Message(mtInfo, tr("Timer running, can't remove")); } else if (Interface->Confirm(tr("Remove timer?"))) { timers.Remove(t); Del(Current()); Display(); } return osContinue; } break; default: break; } } return state; }