本文整理汇总了C++中CContextButtons类的典型用法代码示例。如果您正苦于以下问题:C++ CContextButtons类的具体用法?C++ CContextButtons怎么用?C++ CContextButtons使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CContextButtons类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CheckResumeRecording
void CGUIWindowPVRBase::CheckResumeRecording(CFileItem *item)
{
std::string resumeString = CGUIWindowPVRRecordings::GetResumeString(*item);
if (!resumeString.empty())
{
CContextButtons choices;
choices.Add(CONTEXT_BUTTON_RESUME_ITEM, resumeString);
choices.Add(CONTEXT_BUTTON_PLAY_ITEM, 12021); // Start from beginning
int choice = CGUIDialogContextMenu::ShowAndGetChoice(choices);
if (choice > 0)
item->m_lStartOffset = choice == CONTEXT_BUTTON_RESUME_ITEM ? STARTOFFSET_RESUME : 0;
}
}
示例2: GetContextButtons
void CGUIWindowVideoPlaylist::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
int itemPlaying = g_playlistPlayer.GetCurrentSong();
if (m_movingFrom >= 0)
{
if (itemNumber != m_movingFrom && (!g_partyModeManager.IsEnabled() || itemNumber > itemPlaying))
buttons.Add(CONTEXT_BUTTON_MOVE_HERE, 13252); // move item here
buttons.Add(CONTEXT_BUTTON_CANCEL_MOVE, 13253);
}
else
{
if (itemNumber > -1)
{
CFileItemPtr item = m_vecItems->Get(itemNumber);
// check what players we have, if we have multiple display play with option
VECPLAYERCORES vecCores;
if (item->IsVideoDb())
{
CFileItem item2(item->GetVideoInfoTag()->m_strFileNameAndPath, false);
CPlayerCoreFactory::Get().GetPlayers(item2, vecCores);
}
else
CPlayerCoreFactory::Get().GetPlayers(*item, vecCores);
if (vecCores.size() > 1)
buttons.Add(CONTEXT_BUTTON_PLAY_WITH, 15213); // Play With...
if (XFILE::CFavouritesDirectory::IsFavourite(item.get(), GetID()))
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14077); // Remove Favourite
else
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14076); // Add To Favourites;
}
if (itemNumber > (g_partyModeManager.IsEnabled() ? 1 : 0))
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_UP, 13332);
if (itemNumber + 1 < m_vecItems->Size())
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_DOWN, 13333);
if (!g_partyModeManager.IsEnabled() || itemNumber != itemPlaying)
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM, 13251);
if (itemNumber != itemPlaying)
buttons.Add(CONTEXT_BUTTON_DELETE, 15015);
}
if (g_partyModeManager.IsEnabled())
{
buttons.Add(CONTEXT_BUTTON_EDIT_PARTYMODE, 21439);
buttons.Add(CONTEXT_BUTTON_CANCEL_PARTYMODE, 588); // cancel party mode
}
if(itemNumber > 0 && itemNumber < m_vecItems->Size())
CContextMenuManager::Get().AddVisibleItems(m_vecItems->Get(itemNumber), buttons);
}
示例3: GetContextButtons
void CGUIWindowPVRTimersBase::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
if (itemNumber < 0 || itemNumber >= m_vecItems->Size())
return;
CFileItemPtr pItem = m_vecItems->Get(itemNumber);
if (!URIUtils::PathEquals(pItem->GetPath(), CPVRTimersPath::PATH_ADDTIMER))
{
CPVRTimerInfoTagPtr timer(pItem->GetPVRTimerInfoTag());
if (timer)
{
if (timer->GetEpgInfoTag())
buttons.Add(CONTEXT_BUTTON_INFO, 19047); /* Programme information */
CPVRTimerTypePtr timerType(timer->GetTimerType());
if (timerType)
{
if (timerType->SupportsEnableDisable())
{
if (timer->m_state == PVR_TIMER_STATE_DISABLED)
buttons.Add(CONTEXT_BUTTON_ACTIVATE, 843); /* Activate */
else
buttons.Add(CONTEXT_BUTTON_ACTIVATE, 844); /* Deactivate */
}
if (timer->GetTimerRuleId() != PVR_TIMER_NO_PARENT)
{
buttons.Add(CONTEXT_BUTTON_EDIT_TIMER_RULE, 19243); /* Edit timer rule */
buttons.Add(CONTEXT_BUTTON_DELETE_TIMER_RULE, 19295); /* Delete timer rule */
}
if (timerType && !timerType->IsReadOnly() && timer->GetTimerRuleId() == PVR_TIMER_NO_PARENT)
buttons.Add(CONTEXT_BUTTON_EDIT_TIMER, 21450); /* Edit */
// As epg-based timers will get it's title from the epg tag, they should not be renamable.
if (timer->IsManual() && !timerType->IsReadOnly())
buttons.Add(CONTEXT_BUTTON_RENAME, 118); /* Rename */
if (timer->IsRecording())
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19059); /* Stop recording */
else if (timerType && !timerType->IsReadOnly())
buttons.Add(CONTEXT_BUTTON_DELETE, 117); /* Delete */
}
if (g_PVRClients->HasMenuHooks(timer->m_iClientId, PVR_MENUHOOK_TIMER))
buttons.Add(CONTEXT_BUTTON_MENU_HOOKS, 19195); /* PVR client specific action */
}
}
CGUIWindowPVRBase::GetContextButtons(itemNumber, buttons);
}
示例4: GetContextButtons
void CGUIWindowPictures::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
if (item && !item->GetProperty("pluginreplacecontextitems").asBoolean())
{
if ( m_vecItems->IsVirtualDirectoryRoot() || m_vecItems->GetPath() == "sources://pictures/" )
{
CGUIDialogContextMenu::GetContextButtons("pictures", item, buttons);
}
else
{
if (item && !StringUtils::StartsWithNoCase(item->GetPath(), "addons://more/"))
{
if (!m_vecItems->IsPlugin() && (item->IsPlugin() || item->IsScript()))
buttons.Add(CONTEXT_BUTTON_INFO, 24003); // Add-on info
if (!(item->m_bIsFolder || item->IsZIP() || item->IsRAR() || item->IsCBZ() || item->IsCBR() || item->IsScript()))
{
buttons.Add(CONTEXT_BUTTON_INFO, 13406); // picture info
buttons.Add(CONTEXT_BUTTON_VIEW_SLIDESHOW, item->m_bIsFolder ? 13317 : 13422); // View Slideshow
}
if (item->m_bIsFolder)
buttons.Add(CONTEXT_BUTTON_RECURSIVE_SLIDESHOW, 13318); // Recursive Slideshow
if (!m_thumbLoader.IsLoading())
buttons.Add(CONTEXT_BUTTON_REFRESH_THUMBS, 13315); // Create Thumbnails
if (CSettings::Get().GetBool("filelists.allowfiledeletion") && !item->IsReadOnly())
{
buttons.Add(CONTEXT_BUTTON_DELETE, 117);
buttons.Add(CONTEXT_BUTTON_RENAME, 118);
}
}
if (item->IsPlugin() || item->IsScript() || m_vecItems->IsPlugin())
buttons.Add(CONTEXT_BUTTON_PLUGIN_SETTINGS, 1045);
else
{
buttons.Add(CONTEXT_BUTTON_GOTO_ROOT, 20128);
buttons.Add(CONTEXT_BUTTON_SWITCH_MEDIA, 523);
}
}
}
CGUIMediaWindow::GetContextButtons(itemNumber, buttons);
if (item && !item->GetProperty("pluginreplacecontextitems").asBoolean())
buttons.Add(CONTEXT_BUTTON_SETTINGS, 5); // Settings
CContextMenuManager::Get().AddVisibleItems(item, buttons);
}
示例5: GetContextButtons
void CGUIWindowMusicPlayList::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
// is this playlist playing?
int itemPlaying = g_playlistPlayer.GetCurrentSong();
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
{
CFileItemPtr item;
item = m_vecItems->Get(itemNumber);
if (m_movingFrom >= 0)
{
// we can move the item to any position not where we are, and any position not above currently
// playing item in party mode
#ifndef _BOXEE_
if (itemNumber != m_movingFrom && (!g_partyModeManager.IsEnabled() || itemNumber > itemPlaying))
buttons.Add(CONTEXT_BUTTON_MOVE_HERE, 13252); // move item here
#endif
buttons.Add(CONTEXT_BUTTON_CANCEL_MOVE, 13253);
}
else
{ // aren't in a move
if (!item->IsLastFM() && !item->IsShoutCast())
buttons.Add(CONTEXT_BUTTON_SONG_INFO, 658); // Song Info
if (CFavourites::IsFavourite(item.get(), GetID()))
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14077); // Remove Favourite
#ifndef _BOXEE_
else
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14076); // Add To Favourites;
if (itemNumber > (g_partyModeManager.IsEnabled() ? 1 : 0))
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_UP, 13332);
#endif
if (itemNumber + 1 < m_vecItems->Size())
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_DOWN, 13333);
#ifndef _BOXEE_
if (!g_partyModeManager.IsEnabled() || itemNumber != itemPlaying)
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM, 13251);
#endif
if (itemNumber != itemPlaying)
buttons.Add(CONTEXT_BUTTON_DELETE, 1210); // Remove
}
}
#ifndef _BOXEE_
if (g_partyModeManager.IsEnabled())
{
buttons.Add(CONTEXT_BUTTON_EDIT_PARTYMODE, 21439);
buttons.Add(CONTEXT_BUTTON_CANCEL_PARTYMODE, 588); // cancel party mode
}
#endif
}
示例6: GetContextButtons
void CGUIWindowPVRSearch::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
if (itemNumber < 0 || itemNumber >= m_vecItems->Size())
return;
CFileItemPtr pItem = m_vecItems->Get(itemNumber);
buttons.Add(CONTEXT_BUTTON_CLEAR, 19232); /* Clear search results */
CEpgInfoTagPtr epg(pItem->GetEPGInfoTag());
if (epg)
{
buttons.Add(CONTEXT_BUTTON_INFO, 19047); /* Programme information */
CPVRTimerInfoTagPtr timer(epg->Timer());
if (timer)
{
if (timer->GetTimerRuleId() != PVR_TIMER_NO_PARENT)
buttons.Add(CONTEXT_BUTTON_EDIT_TIMER_RULE, 19243); /* Edit timer rule */
const CPVRTimerTypePtr timerType(timer->GetTimerType());
if (timerType && !timerType->IsReadOnly())
buttons.Add(CONTEXT_BUTTON_EDIT_TIMER, 19242); /* Edit timer */
if (timer->IsRecording())
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19059); /* Stop recording */
else
{
if (timerType && !timerType->IsReadOnly())
buttons.Add(CONTEXT_BUTTON_DELETE_TIMER, 19060); /* Delete timer */
}
}
else if (g_PVRClients->SupportsTimers())
{
if (epg->EndAsLocalTime() > CDateTime::GetCurrentDateTime())
buttons.Add(CONTEXT_BUTTON_START_RECORD, 264); /* Record */
buttons.Add(CONTEXT_BUTTON_ADD_TIMER, 19061); /* Add timer */
}
if (epg->HasRecording())
buttons.Add(CONTEXT_BUTTON_PLAY_ITEM, 19687); /* Play recording */
CPVRChannelPtr channel(epg->ChannelTag());
if (channel &&
g_PVRClients->HasMenuHooks(channel->ClientID(), PVR_MENUHOOK_EPG))
buttons.Add(CONTEXT_BUTTON_MENU_HOOKS, 19195); /* PVR client specific action */
}
CGUIWindowPVRBase::GetContextButtons(itemNumber, buttons);
}
示例7: GetContextButtons
void CGUIMediaWindow::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
CFileItem *item = (itemNumber >= 0 && itemNumber < m_vecItems->Size()) ? m_vecItems->Get(itemNumber) : NULL;
if (item == NULL)
return;
if (item->IsPluginFolder())
{
if (CPluginSettings::SettingsExist(item->m_strPath))
buttons.Add(CONTEXT_BUTTON_PLUGIN_SETTINGS, 1045);
}
// user added buttons
CStdString label;
CStdString action;
for (int i = CONTEXT_BUTTON_USER1; i <= CONTEXT_BUTTON_USER10; i++)
{
label.Format("contextmenulabel(%i)", i - CONTEXT_BUTTON_USER1);
if (item->GetProperty(label).IsEmpty())
break;
action.Format("contextmenuaction(%i)", i - CONTEXT_BUTTON_USER1);
if (item->GetProperty(action).IsEmpty())
break;
buttons.Add((CONTEXT_BUTTON)i, item->GetProperty(label));
}
#ifdef PRE_SKIN_VERSION_2_1_COMPATIBILITY
// check if the skin even supports favourites
RESOLUTION res;
CStdString favourites(g_SkinInfo.GetSkinPath("DialogFavourites.xml", &res));
if (XFILE::CFile::Exists(favourites))
{
#endif
// TODO: FAVOURITES Conditions on masterlock and localisation
if (!item->IsParentFolder() && !item->m_strPath.Equals("add") && !item->m_strPath.Equals("newplaylist://") && !item->m_strPath.Left(19).Equals("newsmartplaylist://"))
{
if (CFavourites::IsFavourite(item, GetID()))
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14077); // Remove Favourite
else
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14076); // Add To Favourites;
}
#ifdef PRE_SKIN_VERSION_2_1_COMPATIBILITY
}
#endif
}
示例8: GetContextButtons
void CGUIWindowPVRChannelsBase::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
// Add parent buttons before the Manage button
CGUIWindowPVRBase::GetContextButtons(itemNumber, buttons);
buttons.Add(CONTEXT_BUTTON_EDIT, 16106); /* Manage... */
}
示例9: GetContextButtons
void CGUIWindowMusicPlayList::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
// is this playlist playing?
int itemPlaying = g_playlistPlayer.GetCurrentSong();
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
{
CFileItemPtr item;
item = m_vecItems->Get(itemNumber);
if (m_movingFrom >= 0)
{
// we can move the item to any position not where we are, and any position not above currently
// playing item in party mode
if (itemNumber != m_movingFrom && (!g_partyModeManager.IsEnabled() || itemNumber > itemPlaying))
buttons.Add(CONTEXT_BUTTON_MOVE_HERE, 13252); // move item here
buttons.Add(CONTEXT_BUTTON_CANCEL_MOVE, 13253);
}
else
{ // aren't in a move
// check what players we have, if we have multiple display play with option
std::vector<std::string> players;
CPlayerCoreFactory::GetInstance().GetPlayers(*item, players);
if (players.size() > 1)
buttons.Add(CONTEXT_BUTTON_PLAY_WITH, 15213); // Play With...
if (XFILE::CFavouritesDirectory::IsFavourite(item.get(), GetID()))
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14077); // Remove Favourite
else
buttons.Add(CONTEXT_BUTTON_ADD_FAVOURITE, 14076); // Add To Favourites;
if (itemNumber > (g_partyModeManager.IsEnabled() ? 1 : 0))
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_UP, 13332);
if (itemNumber + 1 < m_vecItems->Size())
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM_DOWN, 13333);
if (!g_partyModeManager.IsEnabled() || itemNumber != itemPlaying)
buttons.Add(CONTEXT_BUTTON_MOVE_ITEM, 13251);
if (itemNumber != itemPlaying)
buttons.Add(CONTEXT_BUTTON_DELETE, 1210); // Remove
}
}
if (g_partyModeManager.IsEnabled())
{
buttons.Add(CONTEXT_BUTTON_EDIT_PARTYMODE, 21439);
buttons.Add(CONTEXT_BUTTON_CANCEL_PARTYMODE, 588); // cancel party mode
}
}
示例10: bPlayIt
bool CGUIWindowPVRBase::CheckResumeRecording(CFileItem *item)
{
bool bPlayIt(true);
std::string resumeString = CGUIWindowPVRRecordings::GetResumeString(*item);
if (!resumeString.empty())
{
CContextButtons choices;
choices.Add(CONTEXT_BUTTON_RESUME_ITEM, resumeString);
choices.Add(CONTEXT_BUTTON_PLAY_ITEM, 12021); // Start from beginning
int choice = CGUIDialogContextMenu::ShowAndGetChoice(choices);
if (choice > 0)
item->m_lStartOffset = choice == CONTEXT_BUTTON_RESUME_ITEM ? STARTOFFSET_RESUME : 0;
else
bPlayIt = false; // context menu cancelled
}
return bPlayIt;
}
示例11: bPlayIt
bool CPVRGUIActions::CheckResumeRecording(const CFileItemPtr &item) const
{
bool bPlayIt(true);
std::string resumeString(GetResumeLabel(*item));
if (!resumeString.empty())
{
CContextButtons choices;
choices.Add(CONTEXT_BUTTON_RESUME_ITEM, resumeString);
choices.Add(CONTEXT_BUTTON_PLAY_ITEM, 12021); // Play from beginning
int choice = CGUIDialogContextMenu::ShowAndGetChoice(choices);
if (choice > 0)
item->m_lStartOffset = choice == CONTEXT_BUTTON_RESUME_ITEM ? STARTOFFSET_RESUME : 0;
else
bPlayIt = false; // context menu cancelled
}
return bPlayIt;
}
示例12: GetContextButtons
void CGUIWindowPVRSearch::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
if (itemNumber < 0 || itemNumber >= m_vecItems->Size())
return;
CFileItemPtr pItem = m_vecItems->Get(itemNumber);
if (pItem->HasEPGInfoTag())
{
if (pItem->GetEPGInfoTag()->EndAsLocalTime() > CDateTime::GetCurrentDateTime())
{
if (!pItem->GetEPGInfoTag()->HasTimer())
{
if (pItem->GetEPGInfoTag()->StartAsLocalTime() < CDateTime::GetCurrentDateTime())
buttons.Add(CONTEXT_BUTTON_START_RECORD, 264); /* RECORD programme */
else
buttons.Add(CONTEXT_BUTTON_START_RECORD, 19061); /* Create a Timer */
}
else
{
if (pItem->GetEPGInfoTag()->StartAsLocalTime() < CDateTime::GetCurrentDateTime())
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19059); /* Stop recording */
else
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19060); /* Delete Timer */
}
}
buttons.Add(CONTEXT_BUTTON_INFO, 19047); /* Epg info button */
if (pItem->GetEPGInfoTag()->HasPVRChannel() &&
g_PVRClients->HasMenuHooks(pItem->GetEPGInfoTag()->ChannelTag()->ClientID(), PVR_MENUHOOK_EPG))
buttons.Add(CONTEXT_BUTTON_MENU_HOOKS, 19195); /* PVR client specific action */
}
buttons.Add(CONTEXT_BUTTON_CLEAR, 19232); /* Clear search results */
}
示例13: GetContextButtons
void CGUIWindowPVRGuide::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
if (itemNumber < 0 || itemNumber >= m_vecItems->Size())
return;
CFileItemPtr pItem = m_vecItems->Get(itemNumber);
buttons.Add(CONTEXT_BUTTON_PLAY_ITEM, 19000); /* switch channel */
if (pItem->HasEPGInfoTag() && pItem->GetEPGInfoTag()->HasRecording())
buttons.Add(CONTEXT_BUTTON_PLAY_OTHER, 19687); /* play recording */
CFileItemPtr timer = g_PVRTimers->GetTimerForEpgTag(pItem.get());
if (timer && timer->HasPVRTimerInfoTag())
{
if (timer->GetPVRTimerInfoTag()->IsRecording())
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19059); /* stop recording */
else
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19060); /* delete timer */
}
else if (pItem->HasEPGInfoTag() && pItem->GetEPGInfoTag()->EndAsLocalTime() > CDateTime::GetCurrentDateTime())
{
if (pItem->GetEPGInfoTag()->StartAsLocalTime() < CDateTime::GetCurrentDateTime())
buttons.Add(CONTEXT_BUTTON_START_RECORD, 264); /* record */
else
buttons.Add(CONTEXT_BUTTON_START_RECORD, 19061); /* add timer */
}
buttons.Add(CONTEXT_BUTTON_INFO, 19047); /* epg info */
buttons.Add(CONTEXT_BUTTON_FIND, 19003); /* find similar program */
if (m_viewControl.GetCurrentControl() == GUIDE_VIEW_TIMELINE)
{
buttons.Add(CONTEXT_BUTTON_BEGIN, 19063); /* go to begin */
buttons.Add(CONTEXT_BUTTON_NOW, 19070); /* go to now */
buttons.Add(CONTEXT_BUTTON_END, 19064); /* go to end */
}
if (pItem->HasEPGInfoTag() &&
pItem->GetEPGInfoTag()->HasPVRChannel() &&
g_PVRClients->HasMenuHooks(pItem->GetEPGInfoTag()->ChannelTag()->ClientID(), PVR_MENUHOOK_EPG))
buttons.Add(CONTEXT_BUTTON_MENU_HOOKS, 19195); /* PVR client specific action */
CGUIWindowPVRBase::GetContextButtons(itemNumber, buttons);
CContextMenuManager::Get().AddVisibleItems(pItem, buttons);
}
示例14: GetContextButtons
void CGUIWindowPVRTimers::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
if (itemNumber < 0 || itemNumber >= m_vecItems->Size())
return;
CFileItemPtr pItem = m_vecItems->Get(itemNumber);
/* Check for a empty file item list, means only a
file item with the name "Add timer..." is present */
if (URIUtils::PathEquals(pItem->GetPath(), "pvr://timers/addtimer/"))
{
buttons.Add(CONTEXT_BUTTON_ADD, 19056); /* new timer */
}
else
{
buttons.Add(CONTEXT_BUTTON_FIND, 19003); /* Find similar program */
buttons.Add(CONTEXT_BUTTON_ACTIVATE, 19058); /* activate/deactivate */
buttons.Add(CONTEXT_BUTTON_DELETE, 117); /* delete timer */
buttons.Add(CONTEXT_BUTTON_EDIT, 19057); /* edit timer */
buttons.Add(CONTEXT_BUTTON_RENAME, 118); /* rename timer */
buttons.Add(CONTEXT_BUTTON_ADD, 19056); /* new timer */
if (g_PVRClients->HasMenuHooks(pItem->GetPVRTimerInfoTag()->m_iClientId, PVR_MENUHOOK_TIMER))
buttons.Add(CONTEXT_BUTTON_MENU_HOOKS, 19195); /* PVR client specific action */
}
CGUIWindowPVRBase::GetContextButtons(itemNumber, buttons);
CContextMenuManager::Get().AddVisibleItems(pItem, buttons);
}
示例15: OnPopupMenu
bool CGUIWindowLoginScreen::OnPopupMenu(int iItem)
{
if ( iItem < 0 || iItem >= m_vecItems->Size() ) return false;
bool bSelect = m_vecItems->Get(iItem)->IsSelected();
// mark the item
m_vecItems->Get(iItem)->Select(true);
CContextButtons choices;
choices.Add(1, 20067);
/* if (m_viewControl.GetSelectedItem() != 0) // no deleting the default profile
choices.Add(2, 117); */
if (iItem == 0 && g_passwordManager.iMasterLockRetriesLeft == 0)
choices.Add(3, 12334);
int choice = CGUIDialogContextMenu::ShowAndGetChoice(choices);
if (choice == 3)
{
if (g_passwordManager.CheckLock(CProfilesManager::Get().GetMasterProfile().getLockMode(),CProfilesManager::Get().GetMasterProfile().getLockCode(),20075))
g_passwordManager.iMasterLockRetriesLeft = CSettings::Get().GetInt("masterlock.maxretries");
else // be inconvenient
CApplicationMessenger::Get().Shutdown();
return true;
}
if (!g_passwordManager.IsMasterLockUnlocked(true))
return false;
if (choice == 1)
CGUIDialogProfileSettings::ShowForProfile(m_viewControl.GetSelectedItem());
if (choice == 2)
{
int iDelete = m_viewControl.GetSelectedItem();
m_viewControl.Clear();
CProfilesManager::Get().DeleteProfile(iDelete);
Update();
m_viewControl.SetSelectedItem(0);
}
//NOTE: this can potentially (de)select the wrong item if the filelisting has changed because of an action above.
if (iItem < (int)CProfilesManager::Get().GetNumberOfProfiles())
m_vecItems->Get(iItem)->Select(bSelect);
return (choice > 0);
}