2001-12-11 11:25:37 +00:00
|
|
|
#include "stdafx.h"
|
|
|
|
|
/*
|
|
|
|
|
-----------------------------------------------------------------------------
|
2002-08-13 23:26:46 +00:00
|
|
|
Class: TextBanner
|
2001-12-11 11:25:37 +00:00
|
|
|
|
2002-08-13 23:26:46 +00:00
|
|
|
Desc: See header.
|
2001-12-11 11:25:37 +00:00
|
|
|
|
2002-05-19 01:59:48 +00:00
|
|
|
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
2002-08-13 23:26:46 +00:00
|
|
|
Chris Danford
|
2001-12-11 11:25:37 +00:00
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "TextBanner.h"
|
2002-08-13 23:26:46 +00:00
|
|
|
#include "RageUtil.h"
|
|
|
|
|
#include "Song.h"
|
2002-07-23 01:41:40 +00:00
|
|
|
#include "PrefsManager.h"
|
2002-11-11 04:53:31 +00:00
|
|
|
#include "ThemeManager.h"
|
2002-01-16 10:01:32 +00:00
|
|
|
|
|
|
|
|
|
2002-08-13 23:26:46 +00:00
|
|
|
const float TEXT_BANNER_WIDTH = 180;
|
|
|
|
|
const float TEXT_BANNER_HEIGHT = 40;
|
|
|
|
|
|
2001-12-11 11:25:37 +00:00
|
|
|
|
|
|
|
|
TextBanner::TextBanner()
|
|
|
|
|
{
|
2002-09-03 22:31:06 +00:00
|
|
|
m_textTitle.LoadFromFont( THEME->GetPathTo("Fonts","musicwheel text banner") );
|
|
|
|
|
m_textSubTitle.LoadFromFont( THEME->GetPathTo("Fonts","musicwheel text banner") );
|
|
|
|
|
m_textArtist.LoadFromFont( THEME->GetPathTo("Fonts","musicwheel text banner") );
|
2002-01-16 10:01:32 +00:00
|
|
|
|
|
|
|
|
m_textTitle.SetX( -TEXT_BANNER_WIDTH/2 );
|
|
|
|
|
m_textSubTitle.SetX( -TEXT_BANNER_WIDTH/2 );
|
|
|
|
|
m_textArtist.SetX( -TEXT_BANNER_WIDTH/2 );
|
|
|
|
|
|
|
|
|
|
m_textTitle.SetHorizAlign( align_left );
|
|
|
|
|
m_textSubTitle.SetHorizAlign( align_left );
|
|
|
|
|
m_textArtist.SetHorizAlign( align_left );
|
|
|
|
|
|
2002-05-01 19:14:55 +00:00
|
|
|
m_textTitle.TurnShadowOff();
|
|
|
|
|
m_textSubTitle.TurnShadowOff();
|
|
|
|
|
m_textArtist.TurnShadowOff();
|
|
|
|
|
|
2002-09-02 21:59:58 +00:00
|
|
|
this->AddChild( &m_textTitle );
|
|
|
|
|
this->AddChild( &m_textSubTitle );
|
|
|
|
|
this->AddChild( &m_textArtist );
|
2001-12-11 11:25:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-02-05 05:33:33 +00:00
|
|
|
bool TextBanner::LoadFromSong( Song* pSong )
|
2001-12-11 11:25:37 +00:00
|
|
|
{
|
2002-02-05 05:33:33 +00:00
|
|
|
if( pSong == NULL )
|
|
|
|
|
{
|
|
|
|
|
m_textTitle.SetText( "" );
|
|
|
|
|
m_textSubTitle.SetText( "" );
|
|
|
|
|
m_textArtist.SetText( "" );
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2002-06-29 11:59:09 +00:00
|
|
|
CString sMainTitle = pSong->m_sMainTitle;
|
|
|
|
|
CString sSubTitle = pSong->m_sSubTitle;
|
2001-12-11 11:25:37 +00:00
|
|
|
|
2002-04-28 20:42:32 +00:00
|
|
|
m_textTitle.SetText( sMainTitle );
|
2001-12-11 11:25:37 +00:00
|
|
|
m_textSubTitle.SetText( sSubTitle );
|
2002-06-29 11:59:09 +00:00
|
|
|
m_textArtist.SetText( "/" + pSong->m_sArtist );
|
2001-12-11 11:25:37 +00:00
|
|
|
|
|
|
|
|
|
2002-01-16 10:01:32 +00:00
|
|
|
float fTitleZoom, fSubTitleZoom, fArtistZoom;
|
|
|
|
|
|
|
|
|
|
if( sSubTitle == "" )
|
|
|
|
|
{
|
2002-04-28 20:42:32 +00:00
|
|
|
fTitleZoom = 1.0f;
|
2002-01-16 10:01:32 +00:00
|
|
|
fSubTitleZoom = 0.0f;
|
2002-04-28 20:42:32 +00:00
|
|
|
fArtistZoom = 0.6f;
|
2002-01-16 10:01:32 +00:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2002-06-24 22:04:31 +00:00
|
|
|
fTitleZoom = 1.0f;
|
|
|
|
|
fSubTitleZoom = 0.5f;
|
2002-04-28 20:42:32 +00:00
|
|
|
fArtistZoom = 0.6f;
|
2002-01-16 10:01:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_textTitle.SetZoom( fTitleZoom );
|
|
|
|
|
m_textSubTitle.SetZoom( fSubTitleZoom );
|
|
|
|
|
m_textArtist.SetZoom( fArtistZoom );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float fZoomedTitleWidth = m_textTitle.GetWidestLineWidthInSourcePixels() * fTitleZoom;
|
|
|
|
|
float fZoomedSubTitleWidth = m_textSubTitle.GetWidestLineWidthInSourcePixels() * fSubTitleZoom;
|
|
|
|
|
float fZoomedArtistWidth = m_textArtist.GetWidestLineWidthInSourcePixels() * fArtistZoom;
|
|
|
|
|
|
|
|
|
|
// check to see if any of the lines run over the edge of the banner
|
|
|
|
|
if( fZoomedTitleWidth > TEXT_BANNER_WIDTH )
|
|
|
|
|
m_textTitle.SetZoomX( TEXT_BANNER_WIDTH / m_textTitle.GetWidestLineWidthInSourcePixels() );
|
|
|
|
|
if( fZoomedSubTitleWidth > TEXT_BANNER_WIDTH )
|
|
|
|
|
m_textSubTitle.SetZoomX( TEXT_BANNER_WIDTH / m_textSubTitle.GetWidestLineWidthInSourcePixels() );
|
|
|
|
|
if( fZoomedArtistWidth > TEXT_BANNER_WIDTH )
|
|
|
|
|
m_textArtist.SetZoomX( TEXT_BANNER_WIDTH / m_textArtist.GetWidestLineWidthInSourcePixels() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( sSubTitle == "" )
|
|
|
|
|
{
|
2002-06-24 22:04:31 +00:00
|
|
|
m_textTitle.SetY( -8 );
|
2002-01-16 10:01:32 +00:00
|
|
|
m_textSubTitle.SetY( 0 );
|
2002-06-24 22:04:31 +00:00
|
|
|
m_textArtist.SetY( 8 );
|
2002-01-16 10:01:32 +00:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_textTitle.SetY( -10 );
|
2002-04-28 20:42:32 +00:00
|
|
|
m_textSubTitle.SetY( 0 );
|
2002-01-16 10:01:32 +00:00
|
|
|
m_textArtist.SetY( 10 );
|
|
|
|
|
}
|
2001-12-11 11:25:37 +00:00
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|