void CGUIDialogBoxeeManualResolveMovie::OnDeinitWindow(int nextWindowID) { CGUIDialog::OnDeinitWindow(nextWindowID); CGUIImage* pImage = (CGUIImage*)GetControl(MOVIE_COVER); pImage->FreeResources(); }
void CSplash::Show() { g_graphicsContext.Lock(); g_graphicsContext.Clear(); g_graphicsContext.Flip(); #ifndef _WIN32 g_graphicsContext.Clear(); g_graphicsContext.Flip(); g_graphicsContext.Clear(); g_graphicsContext.Flip(); #endif float w = g_graphicsContext.GetWidth(); float h = g_graphicsContext.GetHeight(); if(g_graphicsContext.GetRenderLowresGraphics()) { RESOLUTION res = g_graphicsContext.GetGraphicsResolution(); w = g_settings.m_ResInfo[res].iWidth; h = g_settings.m_ResInfo[res].iHeight; } CGUIImage* image = new CGUIImage(0, 0, 0, 0, w, h, m_ImageName); image->SetAspectRatio(CAspectRatio::AR_KEEP); image->AllocResources(); //render splash image g_Windowing.BeginRender(); image->Render(); image->FreeResources(); delete image; //show it on screen g_Windowing.EndRender(); g_graphicsContext.Flip(); g_graphicsContext.Unlock(); }
void CGUIDialogMusicInfo::Update() { if (m_bArtistInfo) { CONTROL_ENABLE(CONTROL_BTN_GET_FANART); SetLabel(CONTROL_TEXTAREA, m_artist.strBiography); CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs); OnMessage(message); if (GetControl(CONTROL_BTN_TRACKS)) // if no CONTROL_BTN_TRACKS found - allow skinner full visibility control over CONTROL_TEXTAREA and CONTROL_LIST { if (m_bViewReview) { SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); SET_CONTROL_HIDDEN(CONTROL_LIST); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21888); } else { SET_CONTROL_VISIBLE(CONTROL_LIST); SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21887); } } } else { CONTROL_DISABLE(CONTROL_BTN_GET_FANART); SetLabel(CONTROL_TEXTAREA, m_album.strReview); CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs); OnMessage(message); if (GetControl(CONTROL_BTN_TRACKS)) // if no CONTROL_BTN_TRACKS found - allow skinner full visibility control over CONTROL_TEXTAREA and CONTROL_LIST { if (m_bViewReview) { SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); SET_CONTROL_HIDDEN(CONTROL_LIST); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 182); } else { SET_CONTROL_VISIBLE(CONTROL_LIST); SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 183); } } } // update the thumbnail const CGUIControl* pControl = GetControl(CONTROL_IMAGE); if (pControl) { CGUIImage* pImageControl = (CGUIImage*)pControl; pImageControl->FreeResources(); pImageControl->SetFileName(m_albumItem->GetThumbnailImage()); } // disable the GetThumb button if the user isn't allowed it CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_GET_THUMB, g_settings.GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser); if (!m_album.artist.empty() && CLastFmManager::GetInstance()->IsLastFmEnabled()) { SET_CONTROL_VISIBLE(CONTROL_BTN_LASTFM); } else { SET_CONTROL_HIDDEN(CONTROL_BTN_LASTFM); } }
void CGUIDialogVideoInfo::Update() { // setup plot text area CStdString strTmp = m_movieItem->GetVideoInfoTag()->m_strPlot; if (!(!m_movieItem->GetVideoInfoTag()->m_strShowTitle.IsEmpty() && m_movieItem->GetVideoInfoTag()->m_iSeason == 0)) // dont apply to tvshows if (m_movieItem->GetVideoInfoTag()->m_playCount == 0 && !g_guiSettings.GetBool("videolibrary.showunwatchedplots")) strTmp = g_localizeStrings.Get(20370); strTmp.Trim(); SetLabel(CONTROL_TEXTAREA, strTmp); CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_castList); OnMessage(msg); if (GetControl(CONTROL_BTN_TRACKS)) // if no CONTROL_BTN_TRACKS found - allow skinner full visibility control over CONTROL_TEXTAREA and CONTROL_LIST { if (m_bViewReview) { if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty()) { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 133); } else { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 206); } SET_CONTROL_HIDDEN(CONTROL_LIST); SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); } else { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 207); SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); SET_CONTROL_VISIBLE(CONTROL_LIST); } } // Check for resumability if (CGUIWindowVideoBase::GetResumeItemOffset(m_movieItem.get()) > 0) CONTROL_ENABLE(CONTROL_BTN_RESUME); else CONTROL_DISABLE(CONTROL_BTN_RESUME); CONTROL_ENABLE(CONTROL_BTN_PLAY); // update the thumbnail const CGUIControl* pControl = GetControl(CONTROL_IMAGE); if (pControl) { CGUIImage* pImageControl = (CGUIImage*)pControl; pImageControl->FreeResources(); pImageControl->SetFileName(m_movieItem->GetThumbnailImage()); } // tell our GUI to completely reload all controls (as some of them // are likely to have had this image in use so will need refreshing) if (m_hasUpdatedThumb) { CGUIMessage reload(GUI_MSG_NOTIFY_ALL, 0, 0, GUI_MSG_REFRESH_THUMBS); g_windowManager.SendMessage(reload); } }
void CSplash::Process() { D3DGAMMARAMP newRamp; D3DGAMMARAMP oldRamp; g_graphicsContext.Lock(); g_graphicsContext.Get3DDevice()->Clear(0, NULL, D3DCLEAR_TARGET, 0, 0, 0); g_graphicsContext.SetCameraPosition(CPoint(0, 0)); float w = g_graphicsContext.GetWidth(); float h = g_graphicsContext.GetHeight(); CGUIImage* image = new CGUIImage(0, 0, 0, 0, w, h, m_ImageName); CGUIImage* image2 = new CGUIImage(0, 0, 0, 0, w, h, m_ImageName2); image->SetAspectRatio(CAspectRatio::AR_STRETCH); image2->SetAspectRatio(CAspectRatio::AR_STRETCH); image->AllocResources(); image2->AllocResources(); // Store the old gamma ramp g_graphicsContext.Get3DDevice()->GetGammaRamp(&oldRamp); float fade = 0.5f; for (int i = 0; i < 256; i++) { newRamp.red[i] = (int)((float)oldRamp.red[i] * fade); newRamp.green[i] = (int)((float)oldRamp.red[i] * fade); newRamp.blue[i] = (int)((float)oldRamp.red[i] * fade); } g_graphicsContext.Get3DDevice()->SetGammaRamp(GAMMA_RAMP_FLAG, &newRamp); //render splash image #ifndef HAS_XBOX_D3D g_graphicsContext.Get3DDevice()->BeginScene(); #endif image->Render(); image2->Render(); image->FreeResources(); image2->FreeResources(); delete image; delete image2; //show it on screen #ifdef HAS_XBOX_D3D g_graphicsContext.Get3DDevice()->BlockUntilVerticalBlank(); #else g_graphicsContext.Get3DDevice()->EndScene(); #endif g_graphicsContext.Get3DDevice()->Present( NULL, NULL, NULL, NULL ); g_graphicsContext.Unlock(); //fade in and wait untill the thread is stopped while (!m_bStop) { if (fade <= 1.f) { for (int i = 0; i < 256; i++) { newRamp.red[i] = (int)((float)oldRamp.red[i] * fade); newRamp.green[i] = (int)((float)oldRamp.green[i] * fade); newRamp.blue[i] = (int)((float)oldRamp.blue[i] * fade); } g_graphicsContext.Lock(); Sleep(3); g_graphicsContext.Get3DDevice()->SetGammaRamp(GAMMA_RAMP_FLAG, &newRamp); g_graphicsContext.Unlock(); fade += 0.01f; } else { Sleep(10); } } g_graphicsContext.Lock(); // fade out for (float fadeout = fade - 0.01f; fadeout >= 0.f; fadeout -= 0.01f) { for (int i = 0; i < 256; i++) { newRamp.red[i] = (int)((float)oldRamp.red[i] * fadeout); newRamp.green[i] = (int)((float)oldRamp.green[i] * fadeout); newRamp.blue[i] = (int)((float)oldRamp.blue[i] * fadeout); } Sleep(3); g_graphicsContext.Get3DDevice()->SetGammaRamp(GAMMA_RAMP_FLAG, &newRamp); } //restore original gamma ramp g_graphicsContext.Get3DDevice()->Clear(0, NULL, D3DCLEAR_TARGET, 0, 0, 0); g_graphicsContext.Get3DDevice()->SetGammaRamp(0, &oldRamp); g_graphicsContext.Get3DDevice()->Present( NULL, NULL, NULL, NULL ); g_graphicsContext.Unlock(); }
void CGUIWindowVideoInfo::Update() { CStdString strTmp; strTmp = m_movieItem->GetVideoInfoTag()->m_strTitle; strTmp.Trim(); SetLabel(CONTROL_TITLE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strDirector; strTmp.Trim(); SetLabel(CONTROL_DIRECTOR, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strStudio; strTmp.Trim(); SetLabel(CONTROL_STUDIO, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strWritingCredits; strTmp.Trim(); SetLabel(CONTROL_CREDITS, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strGenre; strTmp.Trim(); SetLabel(CONTROL_GENRE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strTagLine; strTmp.Trim(); SetLabel(CONTROL_TAGLINE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strPlotOutline; strTmp.Trim(); SetLabel(CONTROL_PLOTOUTLINE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strTrailer; strTmp.Trim(); SetLabel(CONTROL_TRAILER, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strMPAARating; strTmp.Trim(); SetLabel(CONTROL_MPAARATING, strTmp); CStdString strTop250; if (m_movieItem->GetVideoInfoTag()->m_iTop250) strTop250.Format("%i", m_movieItem->GetVideoInfoTag()->m_iTop250); SetLabel(CONTROL_TOP250, strTop250); CStdString strYear; if (m_movieItem->GetVideoInfoTag()->m_iYear) strYear.Format("%i", m_movieItem->GetVideoInfoTag()->m_iYear); else strYear = g_infoManager.GetItemLabel(m_movieItem,LISTITEM_PREMIERED); SetLabel(CONTROL_YEAR, strYear); CStdString strRating_And_Votes; if (m_movieItem->GetVideoInfoTag()->m_fRating != 0.0f) // only non-zero ratings are of interest strRating_And_Votes.Format("%03.1f (%s %s)", m_movieItem->GetVideoInfoTag()->m_fRating, m_movieItem->GetVideoInfoTag()->m_strVotes, g_localizeStrings.Get(20350)); SetLabel(CONTROL_RATING_AND_VOTES, strRating_And_Votes); strTmp = m_movieItem->GetVideoInfoTag()->m_strRuntime; strTmp.Trim(); SetLabel(CONTROL_RUNTIME, strTmp); // setup plot text area strTmp = m_movieItem->GetVideoInfoTag()->m_strPlot; if (!(!m_movieItem->GetVideoInfoTag()->m_strShowTitle.IsEmpty() && m_movieItem->GetVideoInfoTag()->m_iSeason == 0)) // dont apply to tvshows if (m_movieItem->GetVideoInfoTag()->m_playCount == 0 && g_guiSettings.GetBool("videolibrary.hideplots")) strTmp = g_localizeStrings.Get(20370); strTmp.Trim(); SetLabel(CONTROL_TEXTAREA, strTmp); // setup cast list + determine type ClearCastList(); if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty()) { // music video CStdStringArray artists; StringUtils::SplitString(m_movieItem->GetVideoInfoTag()->m_strArtist, g_advancedSettings.m_videoItemSeparator, artists); for (std::vector<CStdString>::const_iterator it = artists.begin(); it != artists.end(); ++it) { CFileItem *item = new CFileItem(*it); if (CFile::Exists(item->GetCachedArtistThumb())) item->SetThumbnailImage(item->GetCachedArtistThumb()); item->SetIconImage("DefaultArtist.png"); m_castList->Add(item); } m_castList->SetContent("musicvideos"); } else { // movie/show/episode for (CVideoInfoTag::iCast it = m_movieItem->GetVideoInfoTag()->m_cast.begin(); it != m_movieItem->GetVideoInfoTag()->m_cast.end(); ++it) { CStdString character; if (it->strRole.IsEmpty()) character = it->strName; else character.Format("%s %s %s", it->strName.c_str(), g_localizeStrings.Get(20347).c_str(), it->strRole.c_str()); CFileItem *item = new CFileItem(it->strName); if (CFile::Exists(item->GetCachedActorThumb())) item->SetThumbnailImage(item->GetCachedActorThumb()); item->SetIconImage("DefaultActor.png"); item->SetLabel(character); m_castList->Add(item); } // determine type: if (m_movieItem->m_bIsFolder) m_castList->SetContent("tvshows"); else if (m_movieItem->GetVideoInfoTag()->m_iSeason > -1) m_castList->SetContent("episodes"); else m_castList->SetContent("movies"); } CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_castList); OnMessage(msg); if (m_bViewReview) { if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty()) { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 133); } else { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 206); } SET_CONTROL_HIDDEN(CONTROL_LIST); SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); } else { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 207); SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); SET_CONTROL_VISIBLE(CONTROL_LIST); } // Check for resumability CGUIWindowVideoFiles *window = (CGUIWindowVideoFiles *)m_gWindowManager.GetWindow(WINDOW_VIDEO_FILES); if (window && window->GetResumeItemOffset(m_movieItem) > 0) { CONTROL_ENABLE(CONTROL_BTN_RESUME); } else { CONTROL_DISABLE(CONTROL_BTN_RESUME); } if (m_movieItem->GetVideoInfoTag()->m_strEpisodeGuide.IsEmpty()) // disable the play button for tv show info { CONTROL_ENABLE(CONTROL_BTN_PLAY) } else { CONTROL_DISABLE(CONTROL_BTN_PLAY) } // update the thumbnail const CGUIControl* pControl = GetControl(CONTROL_IMAGE); if (pControl) { CGUIImage* pImageControl = (CGUIImage*)pControl; pImageControl->FreeResources(); pImageControl->SetFileName(m_movieItem->GetThumbnailImage()); } }
void CGUIWindowMusicInfo::Update() { if (m_bArtistInfo) { SetLabel(CONTROL_ARTIST, m_artist.strArtist ); SetLabel(CONTROL_GENRE, m_artist.strGenre); SetLabel(CONTROL_MOODS, m_artist.strMoods); SetLabel(CONTROL_STYLES, m_artist.strStyles ); if (m_bViewReview) { SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); SET_CONTROL_HIDDEN(CONTROL_LIST); SetLabel(CONTROL_TEXTAREA, m_artist.strBiography); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21888); } else { SET_CONTROL_VISIBLE(CONTROL_LIST); if (GetControl(CONTROL_LIST)) { SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs); OnMessage(message); } else CLog::Log(LOGERROR, "Out of date skin - needs list with id %i", CONTROL_LIST); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21887); } } else { SetLabel(CONTROL_ALBUM, m_album.strAlbum ); SetLabel(CONTROL_ARTIST, m_album.strArtist ); CStdString date; date.Format("%d", m_album.iYear); SetLabel(CONTROL_DATE, date ); CStdString strRating; if (m_album.iRating > 0) strRating.Format("%i/9", m_album.iRating); SetLabel(CONTROL_RATING, strRating ); SetLabel(CONTROL_GENRE, m_album.strGenre); SetLabel(CONTROL_MOODS, m_album.strMoods); SetLabel(CONTROL_STYLES, m_album.strStyles ); if (m_bViewReview) { SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); SET_CONTROL_HIDDEN(CONTROL_LIST); SetLabel(CONTROL_TEXTAREA, m_album.strReview); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 182); } else { SET_CONTROL_VISIBLE(CONTROL_LIST); if (GetControl(CONTROL_LIST)) { SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs); OnMessage(message); } else CLog::Log(LOGERROR, "Out of date skin - needs list with id %i", CONTROL_LIST); SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 183); } } // update the thumbnail const CGUIControl* pControl = GetControl(CONTROL_IMAGE); if (pControl) { CGUIImage* pImageControl = (CGUIImage*)pControl; pImageControl->FreeResources(); pImageControl->SetFileName(m_albumItem->GetThumbnailImage()); } // disable the GetThumb button if the user isn't allowed it CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_GET_THUMB, g_settings.m_vecProfiles[g_settings.m_iLastLoadedProfileIndex].canWriteDatabases() || g_passwordManager.bMasterUser); if (!m_album.strArtist.IsEmpty() && CLastFmManager::GetInstance()->IsLastFmEnabled()) { SET_CONTROL_VISIBLE(CONTROL_BTN_LASTFM); } else { SET_CONTROL_HIDDEN(CONTROL_BTN_LASTFM); } }
void CGUIWindowVideoInfo::Update() { CStdString strTmp; strTmp = m_movieItem->GetVideoInfoTag()->m_strTitle; strTmp.Trim(); SetLabel(CONTROL_TITLE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strDirector; strTmp.Trim(); SetLabel(CONTROL_DIRECTOR, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strStudio; strTmp.Trim(); SetLabel(CONTROL_STUDIO, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strWritingCredits; strTmp.Trim(); SetLabel(CONTROL_CREDITS, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strGenre; strTmp.Trim(); SetLabel(CONTROL_GENRE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strTagLine; strTmp.Trim(); SetLabel(CONTROL_TAGLINE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strPlotOutline; strTmp.Trim(); SetLabel(CONTROL_PLOTOUTLINE, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strTrailer; strTmp.Trim(); SetLabel(CONTROL_TRAILER, strTmp); strTmp = m_movieItem->GetVideoInfoTag()->m_strMPAARating; strTmp.Trim(); SetLabel(CONTROL_MPAARATING, strTmp); CStdString strTop250; if (m_movieItem->GetVideoInfoTag()->m_iTop250) strTop250.Format("%i", m_movieItem->GetVideoInfoTag()->m_iTop250); SetLabel(CONTROL_TOP250, strTop250); CStdString strYear; if (m_movieItem->GetVideoInfoTag()->m_iYear) strYear.Format("%i", m_movieItem->GetVideoInfoTag()->m_iYear); else strYear = g_infoManager.GetItemLabel(m_movieItem.get(),LISTITEM_PREMIERED); SetLabel(CONTROL_YEAR, strYear); CStdString strRating_And_Votes; if (m_movieItem->GetVideoInfoTag()->m_fRating != 0.0f) // only non-zero ratings are of interest strRating_And_Votes.Format("%03.1f (%s %s)", m_movieItem->GetVideoInfoTag()->m_fRating, m_movieItem->GetVideoInfoTag()->m_strVotes, g_localizeStrings.Get(20350)); SetLabel(CONTROL_RATING_AND_VOTES, strRating_And_Votes); strTmp = m_movieItem->GetVideoInfoTag()->m_strRuntime; strTmp.Trim(); SetLabel(CONTROL_RUNTIME, strTmp); // setup plot text area strTmp = m_movieItem->GetVideoInfoTag()->m_strPlot; if (!(!m_movieItem->GetVideoInfoTag()->m_strShowTitle.IsEmpty() && m_movieItem->GetVideoInfoTag()->m_iSeason == 0)) // dont apply to tvshows if (m_movieItem->GetVideoInfoTag()->m_playCount == 0 && g_guiSettings.GetBool("videolibrary.hideplots")) strTmp = g_localizeStrings.Get(20370); strTmp.Trim(); SetLabel(CONTROL_TEXTAREA, strTmp); CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_castList); OnMessage(msg); if (m_bViewReview) { if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty()) { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 133); } else { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 206); } SET_CONTROL_HIDDEN(CONTROL_LIST); SET_CONTROL_VISIBLE(CONTROL_TEXTAREA); } else { SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 207); SET_CONTROL_HIDDEN(CONTROL_TEXTAREA); SET_CONTROL_VISIBLE(CONTROL_LIST); } // Check for resumability CGUIWindowVideoFiles *window = (CGUIWindowVideoFiles *)m_gWindowManager.GetWindow(WINDOW_VIDEO_FILES); if (window && window->GetResumeItemOffset(m_movieItem.get()) > 0) CONTROL_ENABLE(CONTROL_BTN_RESUME); else CONTROL_DISABLE(CONTROL_BTN_RESUME); CONTROL_ENABLE(CONTROL_BTN_PLAY); // update the thumbnail const CGUIControl* pControl = GetControl(CONTROL_IMAGE); if (pControl) { CGUIImage* pImageControl = (CGUIImage*)pControl; pImageControl->FreeResources(); pImageControl->SetFileName(m_movieItem->GetThumbnailImage()); } // tell our GUI to completely reload all controls (as some of them // are likely to have had this image in use so will need refreshing) if (m_hasUpdatedThumb) { CGUIMessage reload(GUI_MSG_NOTIFY_ALL, 0, 0, GUI_MSG_REFRESH_THUMBS); g_graphicsContext.SendMessage(reload); } }