本文整理汇总了C++中CGUIMessage::GetSenderId方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIMessage::GetSenderId方法的具体用法?C++ CGUIMessage::GetSenderId怎么用?C++ CGUIMessage::GetSenderId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIMessage
的用法示例。
在下文中一共展示了CGUIMessage::GetSenderId方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMessage
bool CGUIWindowLoginScreen::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
m_vecItems->Clear();
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BIG_LIST)
{
int iAction = message.GetParam1();
// iItem is checked for validity inside these routines
if (iAction == ACTION_CONTEXT_MENU || iAction == ACTION_MOUSE_RIGHT_CLICK)
{
int iItem = m_viewControl.GetSelectedItem();
bool bResult = OnPopupMenu(m_viewControl.GetSelectedItem());
if (bResult)
{
Update();
CGUIMessage msg(GUI_MSG_ITEM_SELECT,GetID(),CONTROL_BIG_LIST,iItem);
OnMessage(msg);
}
return bResult;
}
else if (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
int iItem = m_viewControl.GetSelectedItem();
bool bCanceled;
bool bOkay = g_passwordManager.IsProfileLockUnlocked(iItem, bCanceled);
if (bOkay)
{
LoadProfile(iItem);
}
else
{
if (!bCanceled && iItem != 0)
CGUIDialogOK::ShowAndGetInput(20068,20117,20022,20022);
}
}
}
}
break;
case GUI_MSG_SETFOCUS:
{
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
}
}
default:
break;
}
return CGUIWindow::OnMessage(message);
}
示例2: OnMessage
bool CGUIMediaWindow::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
m_iSelectedItem = m_viewControl.GetSelectedItem();
m_iLastControl = GetFocusedControlID();
CGUIWindow::OnMessage(message);
CGUIDialogContextMenu* pDlg = (CGUIDialogContextMenu*)g_windowManager.GetWindow(WINDOW_DIALOG_CONTEXT_MENU);
if (pDlg && pDlg->IsActive())
pDlg->Close();
// Call ClearFileItems() after our window has finished doing any WindowClose
// animations
ClearFileItems();
return true;
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BTNVIEWASICONS)
{
// view as control could be a select button
int viewMode = 0;
const CGUIControl *control = GetControl(CONTROL_BTNVIEWASICONS);
if (control && control->GetControlType() != CGUIControl::GUICONTROL_BUTTON)
{
CGUIMessage msg(GUI_MSG_ITEM_SELECTED, GetID(), CONTROL_BTNVIEWASICONS);
OnMessage(msg);
viewMode = m_viewControl.GetViewModeNumber(msg.GetParam1());
}
else
viewMode = m_viewControl.GetNextViewMode();
if (m_guiState.get())
m_guiState->SaveViewAsControl(viewMode);
UpdateButtons();
return true;
}
else if (iControl == CONTROL_BTNSORTASC) // sort asc
{
if (m_guiState.get())
m_guiState->SetNextSortOrder();
UpdateFileList();
return true;
}
else if (iControl == CONTROL_BTNSORTBY) // sort by
{
if (m_guiState.get())
m_guiState->SetNextSortMethod();
UpdateFileList();
return true;
}
else if (iControl == CONTROL_BTN_FILTER)
{
if (GetControl(iControl)->GetControlType() == CGUIControl::GUICONTROL_EDIT)
{ // filter updated
CGUIMessage selected(GUI_MSG_ITEM_SELECTED, GetID(), CONTROL_BTN_FILTER);
OnMessage(selected);
OnFilterItems(selected.GetLabel());
return true;
}
if (GetProperty("filter").empty())
{
CStdString filter = GetProperty("filter").asString();
CGUIDialogKeyboard::ShowAndGetFilter(filter, false);
SetProperty("filter", filter);
}
else
OnFilterItems("");
return true;
}
else if (m_viewControl.HasControl(iControl)) // list/thumb control
{
int iItem = m_viewControl.GetSelectedItem();
int iAction = message.GetParam1();
if (iItem < 0) break;
if (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
OnSelect(iItem);
}
else if (iAction == ACTION_CONTEXT_MENU || iAction == ACTION_MOUSE_RIGHT_CLICK)
{
OnPopupMenu(iItem);
return true;
}
}
}
break;
case GUI_MSG_SETFOCUS:
{
if (m_viewControl.HasControl(message.GetControlId()) && m_viewControl.GetCurrentControl() != message.GetControlId())
{
m_viewControl.SetFocused();
return true;
//.........这里部分代码省略.........
示例3: OnMessage
bool CGUIWindowMusicInfo::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
CGUIMessage message(GUI_MSG_LABEL_RESET, GetID(), CONTROL_LIST);
OnMessage(message);
m_albumSongs->Clear();
}
break;
case GUI_MSG_WINDOW_INIT:
{
CGUIDialog::OnMessage(message);
m_bViewReview = true;
m_bRefresh = false;
if (g_guiSettings.GetBool("network.enableinternet"))
RefreshThumb();
Update();
return true;
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BTN_REFRESH)
{
CUtil::ClearCache();
m_bRefresh = true;
Close();
return true;
}
else if (iControl == CONTROL_BTN_GET_THUMB)
{
OnGetThumb();
}
else if (iControl == CONTROL_BTN_TRACKS)
{
m_bViewReview = !m_bViewReview;
Update();
}
else if (iControl == CONTROL_LIST)
{
int iAction = message.GetParam1();
if (ACTION_SELECT_ITEM == iAction && m_bArtistInfo)
{
CGUIMessage msg(GUI_MSG_ITEM_SELECTED, GetID(), iControl);
g_graphicsContext.SendMessage(msg);
int iItem = msg.GetParam1();
if (iItem < 0 || iItem >= (int)m_albumSongs->Size())
break;
OnSearch(m_albumSongs->Get(iItem));
return true;
}
}
else if (iControl == CONTROL_BTN_LASTFM)
{
CStdString strArtist = m_album.strArtist;
CUtil::URLEncode(strArtist);
CStdString strLink;
strLink.Format("lastfm://artist/%s/similarartists", strArtist.c_str());
CURL url(strLink);
CLastFmManager::GetInstance()->ChangeStation(url);
}
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例4: OnMessage
bool CGUIDialogSongInfo::OnMessage(CGUIMessage& message)
{
switch (message.GetMessage())
{
case GUI_MSG_WINDOW_DEINIT:
{
if (!m_cancelled && m_startRating != m_song->GetMusicInfoTag()->GetRating())
{
CMusicDatabase db;
if (db.Open()) // OpenForWrite() ?
{
db.SetSongRating(m_song->m_strPath, m_song->GetMusicInfoTag()->GetRating());
db.Close();
}
m_needsUpdate = true;
}
else
{ // cancelled - reset the song rating
SetRating(m_startRating);
m_needsUpdate = false;
}
break;
}
case GUI_MSG_WINDOW_INIT:
m_cancelled = false;
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_CANCEL)
{
m_cancelled = true;
Close();
return true;
}
else if (iControl == CONTROL_OK)
{
m_cancelled = false;
Close();
return true;
}
else if (iControl == CONTROL_ALBUMINFO)
{
CGUIWindowMusicBase *window = (CGUIWindowMusicBase *)m_gWindowManager.GetWindow(m_gWindowManager.GetActiveWindow());
if (window)
{
CFileItem item(*m_song);
CUtil::GetDirectory(m_song->m_strPath,item.m_strPath);
item.m_bIsFolder = true;
window->OnInfo(&item, true);
}
return true;
}
else if (iControl == CONTROL_GETTHUMB)
{
OnGetThumb();
return true;
}
}
break;
}
return CGUIDialog::OnMessage(message);
}
示例5: OnMessage
bool CGUIWindowPVRGuide::OnMessage(CGUIMessage& message)
{
bool bReturn = false;
switch (message.GetMessage())
{
case GUI_MSG_CLICKED:
{
if (message.GetSenderId() == m_viewControl.GetCurrentControl())
{
int iItem = m_viewControl.GetSelectedItem();
if (iItem >= 0 && iItem < m_vecItems->Size())
{
CFileItemPtr pItem = m_vecItems->Get(iItem);
/* process actions */
switch (message.GetParam1())
{
case ACTION_SELECT_ITEM:
case ACTION_MOUSE_LEFT_CLICK:
switch(CSettings::GetInstance().GetInt(CSettings::SETTING_EPG_SELECTACTION))
{
case EPG_SELECT_ACTION_CONTEXT_MENU:
OnPopupMenu(iItem);
bReturn = true;
break;
case EPG_SELECT_ACTION_SWITCH:
ActionPlayEpg(pItem.get(), false);
bReturn = true;
break;
case EPG_SELECT_ACTION_PLAY_RECORDING:
ActionPlayEpg(pItem.get(), true);
bReturn = true;
break;
case EPG_SELECT_ACTION_INFO:
ShowEPGInfo(pItem.get());
bReturn = true;
break;
case EPG_SELECT_ACTION_RECORD:
ActionToggleTimer(pItem.get());
bReturn = true;
break;
}
break;
case ACTION_SHOW_INFO:
ShowEPGInfo(pItem.get());
bReturn = true;
break;
case ACTION_PLAY:
ActionPlayEpg(pItem.get(), true);
bReturn = true;
break;
case ACTION_RECORD:
ActionToggleTimer(pItem.get());
bReturn = true;
break;
case ACTION_PVR_SHOW_TIMER_RULE:
ActionShowTimerRule(pItem.get());
bReturn = true;
break;
case ACTION_CONTEXT_MENU:
case ACTION_MOUSE_RIGHT_CLICK:
OnPopupMenu(iItem);
bReturn = true;
break;
}
}
else if (iItem == -1)
{
/* process actions */
switch (message.GetParam1())
{
case ACTION_SELECT_ITEM:
case ACTION_MOUSE_LEFT_CLICK:
case ACTION_PLAY:
{
// EPG "gap" selected => switch to associated channel.
CGUIEPGGridContainer *epgGridContainer = GetGridControl();
if (epgGridContainer)
{
CFileItemPtr item(epgGridContainer->GetSelectedChannelItem());
if (item)
{
ActionPlayEpg(item.get(), false);
bReturn = true;
}
}
break;
}
}
}
}
else if (message.GetSenderId() == CONTROL_BTNVIEWASICONS)
{
// let's set the view mode first before update
CGUIWindowPVRBase::OnMessage(message);
Refresh(true);
bReturn = true;
}
break;
}
case GUI_MSG_CHANGE_VIEW_MODE:
//.........这里部分代码省略.........
示例6: OnMessage
bool CGUIControlGroup::OnMessage(CGUIMessage& message)
{
switch (message.GetMessage() )
{
case GUI_MSG_ITEM_SELECT:
{
if (message.GetControlId() == GetID())
{
m_focusedControl = message.GetParam1();
return true;
}
break;
}
case GUI_MSG_ITEM_SELECTED:
{
if (message.GetControlId() == GetID())
{
message.SetParam1(m_focusedControl);
return true;
}
break;
}
case GUI_MSG_FOCUSED:
{ // a control has been focused
m_focusedControl = message.GetControlId();
SetFocus(true);
// tell our parent thatwe have focus
if (m_parentControl)
m_parentControl->OnMessage(message);
return true;
}
case GUI_MSG_SETFOCUS:
{
// first try our last focused control...
if (!m_defaultAlways && m_focusedControl)
{
CGUIControl *control = GetFirstFocusableControl(m_focusedControl);
if (control)
{
CGUIMessage msg(GUI_MSG_SETFOCUS, GetParentID(), control->GetID());
return control->OnMessage(msg);
}
}
// ok, no previously focused control, try the default control first
if (m_defaultControl)
{
CGUIControl *control = GetFirstFocusableControl(m_defaultControl);
if (control)
{
CGUIMessage msg(GUI_MSG_SETFOCUS, GetParentID(), control->GetID());
return control->OnMessage(msg);
}
}
// no success with the default control, so just find one to focus
CGUIControl *control = GetFirstFocusableControl(0);
if (control)
{
CGUIMessage msg(GUI_MSG_SETFOCUS, GetParentID(), control->GetID());
return control->OnMessage(msg);
}
// unsuccessful
return false;
break;
}
case GUI_MSG_LOSTFOCUS:
{
// set all subcontrols unfocused
for (iControls it = m_children.begin(); it != m_children.end(); ++it)
(*it)->SetFocus(false);
if (!HasID(message.GetParam1()))
{ // we don't have the new id, so unfocus
SetFocus(false);
if (m_parentControl)
m_parentControl->OnMessage(message);
}
return true;
}
break;
case GUI_MSG_PAGE_CHANGE:
case GUI_MSG_REFRESH_THUMBS:
case GUI_MSG_REFRESH_LIST:
case GUI_MSG_WINDOW_RESIZE:
{ // send to all child controls (make sure the target is the control id)
for (iControls it = m_children.begin(); it != m_children.end(); ++it)
{
CGUIMessage msg(message.GetMessage(), message.GetSenderId(), (*it)->GetID(), message.GetParam1());
(*it)->OnMessage(msg);
}
return true;
}
break;
}
bool handled(false);
//not intented for any specific control, send to all childs and our base handler.
if (message.GetControlId() == 0)
{
for (iControls it = m_children.begin();it != m_children.end(); ++it)
{
CGUIControl* control = *it;
handled |= control->OnMessage(message);
//.........这里部分代码省略.........
示例7: OnMessage
bool CGUIWindowPVRGuide::OnMessage(CGUIMessage& message)
{
if (!IsValidMessage(message))
return false;
bool bReturn = false;
switch (message.GetMessage())
{
case GUI_MSG_CLICKED:
{
if (message.GetSenderId() == m_viewControl.GetCurrentControl())
{
int iItem = m_viewControl.GetSelectedItem();
if (iItem >= 0 && iItem < m_vecItems->Size())
{
CFileItemPtr pItem = m_vecItems->Get(iItem);
/* process actions */
switch (message.GetParam1())
{
case ACTION_SELECT_ITEM:
case ACTION_MOUSE_LEFT_CLICK:
switch(CSettings::Get().GetInt(CSettings::SETTING_EPG_SELECTACTION))
{
case EPG_SELECT_ACTION_CONTEXT_MENU:
OnPopupMenu(iItem);
bReturn = true;
break;
case EPG_SELECT_ACTION_SWITCH:
ActionPlayEpg(pItem.get(), false);
bReturn = true;
break;
case EPG_SELECT_ACTION_PLAY_RECORDING:
ActionPlayEpg(pItem.get(), true);
bReturn = true;
break;
case EPG_SELECT_ACTION_INFO:
ShowEPGInfo(pItem.get());
bReturn = true;
break;
case EPG_SELECT_ACTION_RECORD:
ActionRecord(pItem.get());
bReturn = true;
break;
}
break;
case ACTION_SHOW_INFO:
ShowEPGInfo(pItem.get());
bReturn = true;
break;
case ACTION_PLAY:
ActionPlayEpg(pItem.get(), true);
bReturn = true;
break;
case ACTION_RECORD:
ActionRecord(pItem.get());
bReturn = true;
break;
case ACTION_CONTEXT_MENU:
case ACTION_MOUSE_RIGHT_CLICK:
OnPopupMenu(iItem);
bReturn = true;
break;
}
}
}
else if (message.GetSenderId() == CONTROL_BTNVIEWASICONS)
{
// let's set the view mode first before update
CGUIWindowPVRBase::OnMessage(message);
Refresh(true);
bReturn = true;
}
break;
}
case GUI_MSG_CHANGE_VIEW_MODE:
{
// let's set the view mode first before update
CGUIWindowPVRBase::OnMessage(message);
m_nextUpdateTimeout.SetExpired();
Refresh(true);
bReturn = true;
break;
}
case GUI_MSG_REFRESH_LIST:
switch(message.GetParam1())
{
case ObservableMessageChannelGroup:
case ObservableMessageEpg:
case ObservableMessageEpgContainer:
{
m_bUpdateRequired = true;
// do not allow more than MAX_UPDATE_FREQUENCY updates
if (IsActive() && m_nextUpdateTimeout.IsTimePast())
{
Refresh(true);
m_nextUpdateTimeout.Set(MAX_UPDATE_FREQUENCY);
}
bReturn = true;
break;
}
//.........这里部分代码省略.........
示例8: OnMessage
bool CGUIDialogAddonInfo::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
if (m_jobid)
CJobManager::GetInstance().CancelJob(m_jobid);
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BTN_UPDATE)
{
OnUpdate();
return true;
}
if (iControl == CONTROL_BTN_INSTALL)
{
if (m_localAddon)
{
if (m_localAddon->Type() == ADDON_ADSPDLL && CServiceBroker::GetADSP().IsProcessing())
{
CGUIDialogOK::ShowAndGetInput(24137, 0, 24138, 0);
return true;
}
}
if (!m_localAddon)
{
OnInstall();
return true;
}
else
{
OnUninstall();
return true;
}
}
else if (iControl == CONTROL_BTN_SELECT)
{
OnSelect();
return true;
}
else if (iControl == CONTROL_BTN_ENABLE)
{
//FIXME: should be moved to somewhere appropriate (e.g CAddonMgs::CanAddonBeDisabled or IsInUse) and button should be disabled
if (m_localAddon)
{
if (m_localAddon->Type() == ADDON_ADSPDLL && CServiceBroker::GetADSP().IsProcessing())
{
CGUIDialogOK::ShowAndGetInput(24137, 0, 24138, 0);
return true;
}
}
OnEnableDisable();
return true;
}
else if (iControl == CONTROL_BTN_SETTINGS)
{
OnSettings();
return true;
}
else if (iControl == CONTROL_BTN_CHANGELOG)
{
OnChangeLog();
return true;
}
else if (iControl == CONTROL_BTN_AUTOUPDATE)
{
OnToggleAutoUpdates();
return true;
}
}
break;
default:
break;
}
return CGUIDialog::OnMessage(message);
}
示例9: OnMessage
bool CGUIWindowVideoFiles::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_INIT:
{
// check for a passed destination path
CStdString strDestination = message.GetStringParam();
if (!strDestination.IsEmpty())
{
message.SetStringParam("");
g_stSettings.m_iVideoStartWindow = GetID();
CLog::Log(LOGINFO, "Attempting to quickpath to: %s", strDestination.c_str());
// reset directory path, as we have effectively cleared it here
m_history.ClearPathHistory();
}
// is this the first time accessing this window?
// a quickpath overrides the a default parameter
if (m_vecItems->m_strPath == "?" && strDestination.IsEmpty())
{
m_vecItems->m_strPath = strDestination = g_settings.m_defaultVideoSource;
CLog::Log(LOGINFO, "Attempting to default to: %s", strDestination.c_str());
}
// try to open the destination path
if (!strDestination.IsEmpty())
{
// open root
if (strDestination.Equals("$ROOT"))
{
m_vecItems->m_strPath = "";
CLog::Log(LOGINFO, " Success! Opening root listing.");
}
// open playlists location
else if (strDestination.Equals("$PLAYLISTS"))
{
m_vecItems->m_strPath = "special://videoplaylists/";
CLog::Log(LOGINFO, " Success! Opening destination path: %s", m_vecItems->m_strPath.c_str());
}
else
{
// default parameters if the jump fails
m_vecItems->m_strPath = "";
bool bIsSourceName = false;
SetupShares();
VECSOURCES shares;
m_rootDir.GetSources(shares);
int iIndex = CUtil::GetMatchingSource(strDestination, shares, bIsSourceName);
if (iIndex > -1)
{
bool bDoStuff = true;
if (iIndex < (int)shares.size() && shares[iIndex].m_iHasLock == 2)
{
CFileItem item(shares[iIndex]);
if (!g_passwordManager.IsItemUnlocked(&item,"video"))
{
m_vecItems->m_strPath = ""; // no u don't
bDoStuff = false;
CLog::Log(LOGINFO, " Failure! Failed to unlock destination path: %s", strDestination.c_str());
}
}
// set current directory to matching share
if (bDoStuff)
{
if (bIsSourceName)
m_vecItems->m_strPath=shares[iIndex].strPath;
else
m_vecItems->m_strPath=strDestination;
CLog::Log(LOGINFO, " Success! Opened destination path: %s", strDestination.c_str());
}
}
else
{
CLog::Log(LOGERROR, " Failed! Destination parameter (%s) does not match a valid source!", strDestination.c_str());
}
}
// check for network up
if (CUtil::IsRemote(m_vecItems->m_strPath) && !WaitForNetwork())
m_vecItems->m_strPath.Empty();
SetHistoryForPath(m_vecItems->m_strPath);
}
return CGUIWindowVideoBase::OnMessage(message);
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
//if (iControl == CONTROL_BTNSCAN)
//{
// OnScan();
// }
/*else*/ if (iControl == CONTROL_STACK)
{
//.........这里部分代码省略.........
示例10: OnMessage
bool CGUIWindowFullScreen::OnMessage(CGUIMessage& message)
{
switch (message.GetMessage())
{
case GUI_MSG_WINDOW_INIT:
{
// check whether we've come back here from a window during which time we've actually
// stopped playing videos
if (message.GetParam1() == WINDOW_INVALID && !g_application.IsPlayingVideo())
{ // why are we here if nothing is playing???
g_windowManager.PreviousWindow();
return true;
}
g_infoManager.SetShowInfo(false);
g_infoManager.SetShowCodec(false);
m_bShowCurrentTime = false;
m_bGroupSelectShow = false;
g_infoManager.SetDisplayAfterSeek(0); // Make sure display after seek is off.
// switch resolution
g_graphicsContext.SetFullScreenVideo(true);
#ifdef HAS_VIDEO_PLAYBACK
// make sure renderer is uptospeed
g_renderManager.Update(false);
#endif
// now call the base class to load our windows
CGUIWindow::OnMessage(message);
m_bShowViewModeInfo = false;
if (CUtil::IsUsingTTFSubtitles())
{
CSingleLock lock (m_fontLock);
CStdString fontPath = "special://xbmc/media/Fonts/";
fontPath += g_guiSettings.GetString("subtitles.font");
// We scale based on PAL4x3 - this at least ensures all sizing is constant across resolutions.
RESOLUTION_INFO pal(720, 576, 0);
CGUIFont *subFont = g_fontManager.LoadTTF("__subtitle__", fontPath, color[g_guiSettings.GetInt("subtitles.color")], 0, g_guiSettings.GetInt("subtitles.height"), g_guiSettings.GetInt("subtitles.style"), false, 1.0f, 1.0f, &pal, true);
CGUIFont *borderFont = g_fontManager.LoadTTF("__subtitleborder__", fontPath, 0xFF000000, 0, g_guiSettings.GetInt("subtitles.height"), g_guiSettings.GetInt("subtitles.style"), true, 1.0f, 1.0f, &pal, true);
if (!subFont || !borderFont)
CLog::Log(LOGERROR, "CGUIWindowFullScreen::OnMessage(WINDOW_INIT) - Unable to load subtitle font");
else
m_subsLayout = new CGUITextLayout(subFont, true, 0, borderFont);
}
else
m_subsLayout = NULL;
return true;
}
case GUI_MSG_WINDOW_DEINIT:
{
CGUIWindow::OnMessage(message);
CGUIDialog *pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_OSD_TELETEXT);
if (pDialog) pDialog->Close(true);
CGUIDialogSlider *slider = (CGUIDialogSlider *)g_windowManager.GetWindow(WINDOW_DIALOG_SLIDER);
if (slider) slider->Close(true);
pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_OSD);
if (pDialog) pDialog->Close(true);
pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_FULLSCREEN_INFO);
if (pDialog) pDialog->Close(true);
pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_PVR_OSD_CHANNELS);
if (pDialog) pDialog->Close(true);
pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_PVR_OSD_GUIDE);
if (pDialog) pDialog->Close(true);
pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_PVR_OSD_DIRECTOR);
if (pDialog) pDialog->Close(true);
pDialog = (CGUIDialog *)g_windowManager.GetWindow(WINDOW_DIALOG_PVR_OSD_CUTTER);
if (pDialog) pDialog->Close(true);
FreeResources(true);
CSingleLock lock (g_graphicsContext);
g_graphicsContext.SetFullScreenVideo(false);
lock.Leave();
#ifdef HAS_VIDEO_PLAYBACK
// make sure renderer is uptospeed
g_renderManager.Update(false);
#endif
CSingleLock lockFont(m_fontLock);
if (m_subsLayout)
{
g_fontManager.Unload("__subtitle__");
g_fontManager.Unload("__subtitleborder__");
delete m_subsLayout;
m_subsLayout = NULL;
}
return true;
}
case GUI_MSG_CLICKED:
{
unsigned int iControl = message.GetSenderId();
if (iControl == CONTROL_GROUP_CHOOSER && g_PVRManager.IsStarted())
{
//.........这里部分代码省略.........
示例11: OnMessage
bool CGUIWindowMusicPlaylistEditor::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
if (m_thumbLoader.IsLoading())
m_thumbLoader.StopThread();
if (m_playlistThumbLoader.IsLoading())
m_playlistThumbLoader.StopThread();
CGUIWindowMusicBase::OnMessage(message);
return true;
case GUI_MSG_WINDOW_INIT:
{
if (m_vecItems->m_strPath == "?")
m_vecItems->m_strPath.Empty();
CGUIWindowMusicBase::OnMessage(message);
if (message.GetNumStringParams())
LoadPlaylist(message.GetStringParam());
return true;
}
break;
case GUI_MSG_NOTIFY_ALL:
{
if (message.GetParam1()==GUI_MSG_REMOVED_MEDIA)
DeleteRemoveableMediaDirectoryCache();
}
break;
case GUI_MSG_CLICKED:
{
int control = message.GetSenderId();
if (control == CONTROL_PLAYLIST)
{
int item = GetCurrentPlaylistItem();
int action = message.GetParam1();
if (action == ACTION_CONTEXT_MENU || action == ACTION_MOUSE_RIGHT_CLICK)
OnPlaylistContext();
else if (action == ACTION_QUEUE_ITEM || action == ACTION_DELETE_ITEM || action == ACTION_MOUSE_MIDDLE_CLICK)
OnDeletePlaylistItem(item);
else if (action == ACTION_MOVE_ITEM_UP)
OnMovePlaylistItem(item, -1);
else if (action == ACTION_MOVE_ITEM_DOWN)
OnMovePlaylistItem(item, 1);
return true;
}
else if (control == CONTROL_LOAD_PLAYLIST)
{ // load a playlist
OnLoadPlaylist();
return true;
}
else if (control == CONTROL_SAVE_PLAYLIST)
{ // save the playlist
OnSavePlaylist();
return true;
}
else if (control == CONTROL_CLEAR_PLAYLIST)
{ // clear the playlist
ClearPlaylist();
return true;
}
}
break;
}
return CGUIWindowMusicBase::OnMessage(message);
}
示例12: OnMessage
bool CGUIWindowMusicSongs::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
if (m_thumbLoader.IsLoading())
m_thumbLoader.StopThread();
break;
case GUI_MSG_WINDOW_INIT:
{
// removed the start window check from files view
// the window translator does it by using a virtual window id (5)
// is this the first time the window is opened?
if (m_vecItems->GetPath() == "?" && message.GetStringParam().empty())
message.SetStringParam(CMediaSourceSettings::Get().GetDefaultSource("music"));
return CGUIWindowMusicBase::OnMessage(message);
}
break;
case GUI_MSG_DIRECTORY_SCANNED:
{
CFileItem directory(message.GetStringParam(), true);
// Only update thumb on a local drive
if (directory.IsHD())
{
std::string strParent;
URIUtils::GetParentPath(directory.GetPath(), strParent);
if (directory.GetPath() == m_vecItems->GetPath() || strParent == m_vecItems->GetPath())
Refresh();
}
}
break;
case GUI_MSG_NOTIFY_ALL:
{
if (message.GetParam1()==GUI_MSG_REMOVED_MEDIA)
DeleteRemoveableMediaDirectoryCache();
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BTNPLAYLISTS)
{
if (!m_vecItems->IsPath("special://musicplaylists/"))
Update("special://musicplaylists/");
}
else if (iControl == CONTROL_BTNSCAN)
{
OnScan(-1);
}
else if (iControl == CONTROL_BTNREC)
{
if (g_application.m_pPlayer->IsPlayingAudio() )
{
if (g_application.m_pPlayer->CanRecord() )
{
bool bIsRecording = g_application.m_pPlayer->IsRecording();
g_application.m_pPlayer->Record(!bIsRecording);
UpdateButtons();
}
}
}
else if (iControl == CONTROL_BTNRIP)
{
OnRipCD();
}
}
break;
}
return CGUIWindowMusicBase::OnMessage(message);
}
示例13: OnMessage
bool CGUIWindowPictures::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:
{
if (m_thumbLoader.IsLoading())
m_thumbLoader.StopThread();
}
break;
case GUI_MSG_WINDOW_INIT:
{
// is this the first time accessing this window?
if (m_vecItems->GetPath() == "?" && message.GetStringParam().empty())
message.SetStringParam(CMediaSourceSettings::GetInstance().GetDefaultSource("pictures"));
m_dlgProgress = (CGUIDialogProgress*)g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS);
if (!CGUIMediaWindow::OnMessage(message))
return false;
return true;
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_BTNSLIDESHOW) // Slide Show
{
OnSlideShow();
}
else if (iControl == CONTROL_BTNSLIDESHOW_RECURSIVE) // Recursive Slide Show
{
OnSlideShowRecursive();
}
else if (iControl == CONTROL_SHUFFLE)
{
CSettings::GetInstance().ToggleBool(CSettings::SETTING_SLIDESHOW_SHUFFLE);
CSettings::GetInstance().Save();
}
else if (m_viewControl.HasControl(iControl)) // list/thumb control
{
int iItem = m_viewControl.GetSelectedItem();
int iAction = message.GetParam1();
// iItem is checked for validity inside these routines
if (iAction == ACTION_DELETE_ITEM)
{
// is delete allowed?
if (CSettings::GetInstance().GetBool(CSettings::SETTING_FILELISTS_ALLOWFILEDELETION))
OnDeleteItem(iItem);
else
return false;
}
else if (iAction == ACTION_PLAYER_PLAY)
{
ShowPicture(iItem, true);
return true;
}
else if (iAction == ACTION_SHOW_INFO)
{
OnItemInfo(iItem);
return true;
}
}
}
break;
}
return CGUIMediaWindow::OnMessage(message);
}
示例14: OnMessage
bool CGUIWindowFileManager::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_NOTIFY_ALL:
{ // Message is received even if window is inactive
if (message.GetParam1() == GUI_MSG_WINDOW_RESET)
{
m_Directory[0]->SetPath("?");
m_Directory[1]->SetPath("?");
m_Directory[0]->m_bIsFolder = true;
m_Directory[1]->m_bIsFolder = true;
return true;
}
// handle removable media
if (message.GetParam1() == GUI_MSG_REMOVED_MEDIA)
{
for (int i = 0; i < 2; i++)
{
if (m_Directory[i]->IsVirtualDirectoryRoot() && IsActive())
{
int iItem = GetSelectedItem(i);
Update(i, m_Directory[i]->GetPath());
CONTROL_SELECT_ITEM(CONTROL_LEFT_LIST + i, iItem);
}
else if (m_Directory[i]->IsRemovable() && !m_rootDir.IsInSource(m_Directory[i]->GetPath()))
{ //
if (IsActive())
Update(i, "");
else
m_Directory[i]->SetPath("");
}
}
return true;
}
else if (message.GetParam1()==GUI_MSG_UPDATE_SOURCES)
{ // State of the sources changed, so update our view
for (int i = 0; i < 2; i++)
{
if (m_Directory[i]->IsVirtualDirectoryRoot() && IsActive())
{
int iItem = GetSelectedItem(i);
Update(i, m_Directory[i]->GetPath());
CONTROL_SELECT_ITEM(CONTROL_LEFT_LIST + i, iItem);
}
}
return true;
}
else if (message.GetParam1()==GUI_MSG_UPDATE && IsActive())
{
Refresh();
return true;
}
}
break;
case GUI_MSG_PLAYBACK_STARTED:
case GUI_MSG_PLAYBACK_ENDED:
case GUI_MSG_PLAYBACK_STOPPED:
case GUI_MSG_PLAYLIST_CHANGED:
case GUI_MSG_PLAYLISTPLAYER_STOPPED:
case GUI_MSG_PLAYLISTPLAYER_STARTED:
case GUI_MSG_PLAYLISTPLAYER_CHANGED:
{ // send a notify all to all controls on this window
CGUIMessage msg(GUI_MSG_NOTIFY_ALL, GetID(), 0, GUI_MSG_REFRESH_LIST);
OnMessage(msg);
break;
}
case GUI_MSG_WINDOW_DEINIT:
{
CGUIWindow::OnMessage(message);
ClearFileItems(0);
ClearFileItems(1);
return true;
}
break;
case GUI_MSG_WINDOW_INIT:
{
SetInitialPath(message.GetStringParam());
message.SetStringParam("");
return CGUIWindow::OnMessage(message);
}
break;
case GUI_MSG_CLICKED:
{
int iControl = message.GetSenderId();
if (iControl == CONTROL_LEFT_LIST || iControl == CONTROL_RIGHT_LIST) // list/thumb control
{
// get selected item
int list = iControl - CONTROL_LEFT_LIST;
int iItem = GetSelectedItem(list);
int iAction = message.GetParam1();
// iItem is checked for validity inside these routines
if (iAction == ACTION_HIGHLIGHT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
OnMark(list, iItem);
//.........这里部分代码省略.........
示例15: IsSelectedList
bool CGUIWindowPVRGuide::IsSelectedList(CGUIMessage &message) const
{
return ((message.GetSenderId() == CONTROL_LIST_TIMELINE && m_iGuideView == GUIDE_VIEW_TIMELINE) ||
(message.GetSenderId() == CONTROL_LIST_GUIDE_CHANNEL && m_iGuideView == GUIDE_VIEW_CHANNEL) ||
(message.GetSenderId() == CONTROL_LIST_GUIDE_NOW_NEXT && (m_iGuideView == GUIDE_VIEW_NOW || m_iGuideView == GUIDE_VIEW_NEXT)));
}