From f56bb35301836e56582a575a75864392a0177875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20P=2E=20Tjern=C3=B8?= Date: Mon, 2 Dec 2013 19:31:46 -0800 Subject: Fix line endings. WHAMMY. --- mp/src/vgui2/vgui_controls/ImagePanel.cpp | 926 +++++++++++++++--------------- 1 file changed, 463 insertions(+), 463 deletions(-) (limited to 'mp/src/vgui2/vgui_controls/ImagePanel.cpp') diff --git a/mp/src/vgui2/vgui_controls/ImagePanel.cpp b/mp/src/vgui2/vgui_controls/ImagePanel.cpp index bce00908..3e31e23b 100644 --- a/mp/src/vgui2/vgui_controls/ImagePanel.cpp +++ b/mp/src/vgui2/vgui_controls/ImagePanel.cpp @@ -1,463 +1,463 @@ -//========= Copyright Valve Corporation, All rights reserved. ============// -// -// Purpose: -// -// $NoKeywords: $ -//=============================================================================// - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -// memdbgon must be the last include file in a .cpp file!!! -#include - -using namespace vgui; - -DECLARE_BUILD_FACTORY( ImagePanel ); - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -ImagePanel::ImagePanel(Panel *parent, const char *name) : Panel(parent, name) -{ - m_pImage = NULL; - m_pszImageName = NULL; - m_pszFillColorName = NULL; - m_pszDrawColorName = NULL; // HPE addition - m_bCenterImage = false; - m_bScaleImage = false; - m_bTileImage = false; - m_bTileHorizontally = false; - m_bTileVertically = false; - m_fScaleAmount = 0.0f; - m_FillColor = Color(0, 0, 0, 0); - m_DrawColor = Color(255,255,255,255); - m_iRotation = ROTATED_UNROTATED; - - SetImage( m_pImage ); - - REGISTER_COLOR_AS_OVERRIDABLE( m_FillColor, "fillcolor_override" ); - REGISTER_COLOR_AS_OVERRIDABLE( m_DrawColor, "drawcolor_override" ); -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -ImagePanel::~ImagePanel() -{ - delete [] m_pszImageName; - delete [] m_pszFillColorName; - delete [] m_pszDrawColorName; // HPE addition -} - -//----------------------------------------------------------------------------- -// Purpose: handles size changing -//----------------------------------------------------------------------------- -void ImagePanel::OnSizeChanged(int newWide, int newTall) -{ - BaseClass::OnSizeChanged(newWide, newTall); -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -void ImagePanel::SetImage(IImage *image) -{ - m_pImage = image; - Repaint(); -} - -//----------------------------------------------------------------------------- -// Purpose: sets an image by file name -//----------------------------------------------------------------------------- -void ImagePanel::SetImage(const char *imageName) -{ - if ( imageName && m_pszImageName && V_stricmp( imageName, m_pszImageName ) == 0 ) - return; - - int len = Q_strlen(imageName) + 1; - delete [] m_pszImageName; - m_pszImageName = new char[ len ]; - Q_strncpy(m_pszImageName, imageName, len ); - InvalidateLayout(false, true); // force applyschemesettings to run -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -IImage *ImagePanel::GetImage() -{ - return m_pImage; -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -Color ImagePanel::GetDrawColor( void ) -{ - return m_DrawColor; -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -void ImagePanel::SetDrawColor( Color drawColor ) -{ - m_DrawColor = drawColor; -} - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -void ImagePanel::PaintBackground() -{ - if (m_FillColor[3] > 0) - { - // draw the specified fill color - int wide, tall; - GetSize(wide, tall); - surface()->DrawSetColor(m_FillColor); - surface()->DrawFilledRect(0, 0, wide, tall); - } - if ( m_pImage ) - { - //============================================================================= - // HPE_BEGIN: - // [pfreese] Color should be always set from GetDrawColor(), not just when - // scaling is true (see previous code) - //============================================================================= - - // surface()->DrawSetColor( 255, 255, 255, GetAlpha() ); - m_pImage->SetColor( GetDrawColor() ); - - //============================================================================= - // HPE_END - //============================================================================= - - if ( m_bCenterImage ) - { - int wide, tall; - GetSize(wide, tall); - - int imageWide, imageTall; - m_pImage->GetSize( imageWide, imageTall ); - - if ( m_bScaleImage && m_fScaleAmount > 0.0f ) - { - imageWide = static_cast( static_cast(imageWide) * m_fScaleAmount ); - imageTall = static_cast( static_cast(imageTall) * m_fScaleAmount ); - } - - m_pImage->SetPos( (wide - imageWide) / 2, (tall - imageTall) / 2 ); - } - else - { - m_pImage->SetPos(0, 0); - } - - if (m_bScaleImage) - { - // Image size is stored in the bitmap, so temporarily set its size - // to our panel size and then restore after we draw it. - - int imageWide, imageTall; - m_pImage->GetSize( imageWide, imageTall ); - - if ( m_fScaleAmount > 0.0f ) - { - float wide, tall; - wide = static_cast(imageWide) * m_fScaleAmount; - tall = static_cast(imageTall) * m_fScaleAmount; - m_pImage->SetSize( static_cast(wide), static_cast(tall) ); - } - else - { - int wide, tall; - GetSize( wide, tall ); - m_pImage->SetSize( wide, tall ); - } - - m_pImage->Paint(); - - m_pImage->SetSize( imageWide, imageTall ); - } - else if ( m_bTileImage || m_bTileHorizontally || m_bTileVertically ) - { - int wide, tall; - GetSize(wide, tall); - int imageWide, imageTall; - m_pImage->GetSize( imageWide, imageTall ); - - int y = 0; - while ( y < tall ) - { - int x = 0; - while (x < wide) - { - m_pImage->SetPos(x,y); - m_pImage->Paint(); - - x += imageWide; - - if ( !m_bTileHorizontally ) - break; - } - - y += imageTall; - - if ( !m_bTileVertically ) - break; - } - m_pImage->SetPos(0, 0); - } - else - { - m_pImage->SetColor( GetDrawColor() ); - m_pImage->Paint(); - } - } -} - -//----------------------------------------------------------------------------- -// Purpose: Gets control settings for editing -//----------------------------------------------------------------------------- -void ImagePanel::GetSettings(KeyValues *outResourceData) -{ - BaseClass::GetSettings(outResourceData); - if (m_pszImageName) - { - outResourceData->SetString("image", m_pszImageName); - } - if (m_pszFillColorName) - { - outResourceData->SetString("fillcolor", m_pszFillColorName); - } - - //============================================================================= - // HPE_BEGIN: - // [pfreese] Added support for specifying drawcolor - //============================================================================= - if (m_pszDrawColorName) - { - outResourceData->SetString("drawcolor", m_pszDrawColorName); - } - //============================================================================= - // HPE_END - //============================================================================= - - if (GetBorder()) - { - outResourceData->SetString("border", GetBorder()->GetName()); - } - - outResourceData->SetInt("scaleImage", m_bScaleImage); - outResourceData->SetFloat("scaleAmount", m_fScaleAmount); - outResourceData->SetInt("tileImage", m_bTileImage); - outResourceData->SetInt("tileHorizontally", m_bTileHorizontally); - outResourceData->SetInt("tileVertically", m_bTileVertically); -} - -//----------------------------------------------------------------------------- -// Purpose: Applies designer settings from res file -//----------------------------------------------------------------------------- -void ImagePanel::ApplySettings(KeyValues *inResourceData) -{ - delete [] m_pszImageName; - delete [] m_pszFillColorName; - delete [] m_pszDrawColorName; // HPE addition - m_pszImageName = NULL; - m_pszFillColorName = NULL; - m_pszDrawColorName = NULL; // HPE addition - - m_bScaleImage = inResourceData->GetInt("scaleImage", 0); - m_fScaleAmount = inResourceData->GetFloat("scaleAmount", 0.0f); - m_bTileImage = inResourceData->GetInt("tileImage", 0); - m_bTileHorizontally = inResourceData->GetInt("tileHorizontally", m_bTileImage); - m_bTileVertically = inResourceData->GetInt("tileVertically", m_bTileImage); - const char *imageName = inResourceData->GetString("image", ""); - if ( *imageName ) - { - SetImage( imageName ); - } - - const char *pszFillColor = inResourceData->GetString("fillcolor", ""); - if (*pszFillColor) - { - int r = 0, g = 0, b = 0, a = 255; - int len = Q_strlen(pszFillColor) + 1; - m_pszFillColorName = new char[ len ]; - Q_strncpy( m_pszFillColorName, pszFillColor, len ); - - if (sscanf(pszFillColor, "%d %d %d %d", &r, &g, &b, &a) >= 3) - { - // it's a direct color - m_FillColor = Color(r, g, b, a); - } - else - { - IScheme *pScheme = scheme()->GetIScheme( GetScheme() ); - m_FillColor = pScheme->GetColor(pszFillColor, Color(0, 0, 0, 0)); - } - } - - //============================================================================= - // HPE_BEGIN: - // [pfreese] Added support for specifying drawcolor - //============================================================================= - const char *pszDrawColor = inResourceData->GetString("drawcolor", ""); - if (*pszDrawColor) - { - int r = 255, g = 255, b = 255, a = 255; - int len = Q_strlen(pszDrawColor) + 1; - m_pszDrawColorName = new char[ len ]; - Q_strncpy( m_pszDrawColorName, pszDrawColor, len ); - - if (sscanf(pszDrawColor, "%d %d %d %d", &r, &g, &b, &a) >= 3) - { - // it's a direct color - m_DrawColor = Color(r, g, b, a); - } - else - { - IScheme *pScheme = scheme()->GetIScheme( GetScheme() ); - m_DrawColor = pScheme->GetColor(pszDrawColor, Color(255, 255, 255, 255)); - } - } - //============================================================================= - // HPE_END - //============================================================================= - - const char *pszBorder = inResourceData->GetString("border", ""); - if (*pszBorder) - { - IScheme *pScheme = scheme()->GetIScheme( GetScheme() ); - SetBorder(pScheme->GetBorder(pszBorder)); - } - - BaseClass::ApplySettings(inResourceData); -} - -//----------------------------------------------------------------------------- -// Purpose: load the image, this is done just before this control is displayed -//----------------------------------------------------------------------------- -void ImagePanel::ApplySchemeSettings( IScheme *pScheme ) -{ - BaseClass::ApplySchemeSettings(pScheme); - if ( m_pszImageName && strlen( m_pszImageName ) > 0 ) - { - SetImage(scheme()->GetImage(m_pszImageName, m_bScaleImage)); - } -} - -//----------------------------------------------------------------------------- -// Purpose: Describes editing details -//----------------------------------------------------------------------------- -const char *ImagePanel::GetDescription() -{ - static char buf[1024]; - _snprintf(buf, sizeof(buf), "%s, string image, string border, string fillcolor, bool scaleImage", BaseClass::GetDescription()); - return buf; -} - -//----------------------------------------------------------------------------- -// Purpose: sets whether or not the image should scale to fit the size of the ImagePanel (defaults to false) -//----------------------------------------------------------------------------- -void ImagePanel::SetShouldScaleImage( bool state ) -{ - m_bScaleImage = state; -} - -//----------------------------------------------------------------------------- -// Purpose: gets whether or not the image should be scaled to fit the size of the ImagePanel -//----------------------------------------------------------------------------- -bool ImagePanel::GetShouldScaleImage() -{ - return m_bScaleImage; -} - -//----------------------------------------------------------------------------- -// Purpose: used in conjunction with setting that the image should scale and defines an absolute scale amount -//----------------------------------------------------------------------------- -void ImagePanel::SetScaleAmount( float scale ) -{ - m_fScaleAmount = scale; -} - -float ImagePanel::GetScaleAmount( void ) -{ - return m_fScaleAmount; -} - -//----------------------------------------------------------------------------- -// Purpose: set the color to fill with, if no Image is specified -//----------------------------------------------------------------------------- -void ImagePanel::SetFillColor( Color col ) -{ - m_FillColor = col; -} - -//----------------------------------------------------------------------------- -// Purpose: data accessor -//----------------------------------------------------------------------------- -Color ImagePanel::GetFillColor() -{ - return m_FillColor; -} - -char *ImagePanel::GetImageName() -{ - return m_pszImageName; -} - -bool ImagePanel::EvictImage() -{ - if ( !m_pImage ) - { - // nothing to do - return false; - } - - if ( !scheme()->DeleteImage( m_pszImageName ) ) - { - // no eviction occured, could have an outstanding reference - return false; - } - - // clear out our cached concept of it - // as it may change - // the next SetImage() will re-establish - m_pImage = NULL; - delete [] m_pszImageName; - m_pszImageName = NULL; - - return true; -} - -int ImagePanel::GetNumFrames() -{ - if ( !m_pImage ) - { - return 0; - } - - return m_pImage->GetNumFrames(); -} - -void ImagePanel::SetFrame( int nFrame ) -{ - if ( !m_pImage ) - { - return; - } - - return m_pImage->SetFrame( nFrame ); -} +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +// memdbgon must be the last include file in a .cpp file!!! +#include + +using namespace vgui; + +DECLARE_BUILD_FACTORY( ImagePanel ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +ImagePanel::ImagePanel(Panel *parent, const char *name) : Panel(parent, name) +{ + m_pImage = NULL; + m_pszImageName = NULL; + m_pszFillColorName = NULL; + m_pszDrawColorName = NULL; // HPE addition + m_bCenterImage = false; + m_bScaleImage = false; + m_bTileImage = false; + m_bTileHorizontally = false; + m_bTileVertically = false; + m_fScaleAmount = 0.0f; + m_FillColor = Color(0, 0, 0, 0); + m_DrawColor = Color(255,255,255,255); + m_iRotation = ROTATED_UNROTATED; + + SetImage( m_pImage ); + + REGISTER_COLOR_AS_OVERRIDABLE( m_FillColor, "fillcolor_override" ); + REGISTER_COLOR_AS_OVERRIDABLE( m_DrawColor, "drawcolor_override" ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +ImagePanel::~ImagePanel() +{ + delete [] m_pszImageName; + delete [] m_pszFillColorName; + delete [] m_pszDrawColorName; // HPE addition +} + +//----------------------------------------------------------------------------- +// Purpose: handles size changing +//----------------------------------------------------------------------------- +void ImagePanel::OnSizeChanged(int newWide, int newTall) +{ + BaseClass::OnSizeChanged(newWide, newTall); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void ImagePanel::SetImage(IImage *image) +{ + m_pImage = image; + Repaint(); +} + +//----------------------------------------------------------------------------- +// Purpose: sets an image by file name +//----------------------------------------------------------------------------- +void ImagePanel::SetImage(const char *imageName) +{ + if ( imageName && m_pszImageName && V_stricmp( imageName, m_pszImageName ) == 0 ) + return; + + int len = Q_strlen(imageName) + 1; + delete [] m_pszImageName; + m_pszImageName = new char[ len ]; + Q_strncpy(m_pszImageName, imageName, len ); + InvalidateLayout(false, true); // force applyschemesettings to run +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +IImage *ImagePanel::GetImage() +{ + return m_pImage; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +Color ImagePanel::GetDrawColor( void ) +{ + return m_DrawColor; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void ImagePanel::SetDrawColor( Color drawColor ) +{ + m_DrawColor = drawColor; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void ImagePanel::PaintBackground() +{ + if (m_FillColor[3] > 0) + { + // draw the specified fill color + int wide, tall; + GetSize(wide, tall); + surface()->DrawSetColor(m_FillColor); + surface()->DrawFilledRect(0, 0, wide, tall); + } + if ( m_pImage ) + { + //============================================================================= + // HPE_BEGIN: + // [pfreese] Color should be always set from GetDrawColor(), not just when + // scaling is true (see previous code) + //============================================================================= + + // surface()->DrawSetColor( 255, 255, 255, GetAlpha() ); + m_pImage->SetColor( GetDrawColor() ); + + //============================================================================= + // HPE_END + //============================================================================= + + if ( m_bCenterImage ) + { + int wide, tall; + GetSize(wide, tall); + + int imageWide, imageTall; + m_pImage->GetSize( imageWide, imageTall ); + + if ( m_bScaleImage && m_fScaleAmount > 0.0f ) + { + imageWide = static_cast( static_cast(imageWide) * m_fScaleAmount ); + imageTall = static_cast( static_cast(imageTall) * m_fScaleAmount ); + } + + m_pImage->SetPos( (wide - imageWide) / 2, (tall - imageTall) / 2 ); + } + else + { + m_pImage->SetPos(0, 0); + } + + if (m_bScaleImage) + { + // Image size is stored in the bitmap, so temporarily set its size + // to our panel size and then restore after we draw it. + + int imageWide, imageTall; + m_pImage->GetSize( imageWide, imageTall ); + + if ( m_fScaleAmount > 0.0f ) + { + float wide, tall; + wide = static_cast(imageWide) * m_fScaleAmount; + tall = static_cast(imageTall) * m_fScaleAmount; + m_pImage->SetSize( static_cast(wide), static_cast(tall) ); + } + else + { + int wide, tall; + GetSize( wide, tall ); + m_pImage->SetSize( wide, tall ); + } + + m_pImage->Paint(); + + m_pImage->SetSize( imageWide, imageTall ); + } + else if ( m_bTileImage || m_bTileHorizontally || m_bTileVertically ) + { + int wide, tall; + GetSize(wide, tall); + int imageWide, imageTall; + m_pImage->GetSize( imageWide, imageTall ); + + int y = 0; + while ( y < tall ) + { + int x = 0; + while (x < wide) + { + m_pImage->SetPos(x,y); + m_pImage->Paint(); + + x += imageWide; + + if ( !m_bTileHorizontally ) + break; + } + + y += imageTall; + + if ( !m_bTileVertically ) + break; + } + m_pImage->SetPos(0, 0); + } + else + { + m_pImage->SetColor( GetDrawColor() ); + m_pImage->Paint(); + } + } +} + +//----------------------------------------------------------------------------- +// Purpose: Gets control settings for editing +//----------------------------------------------------------------------------- +void ImagePanel::GetSettings(KeyValues *outResourceData) +{ + BaseClass::GetSettings(outResourceData); + if (m_pszImageName) + { + outResourceData->SetString("image", m_pszImageName); + } + if (m_pszFillColorName) + { + outResourceData->SetString("fillcolor", m_pszFillColorName); + } + + //============================================================================= + // HPE_BEGIN: + // [pfreese] Added support for specifying drawcolor + //============================================================================= + if (m_pszDrawColorName) + { + outResourceData->SetString("drawcolor", m_pszDrawColorName); + } + //============================================================================= + // HPE_END + //============================================================================= + + if (GetBorder()) + { + outResourceData->SetString("border", GetBorder()->GetName()); + } + + outResourceData->SetInt("scaleImage", m_bScaleImage); + outResourceData->SetFloat("scaleAmount", m_fScaleAmount); + outResourceData->SetInt("tileImage", m_bTileImage); + outResourceData->SetInt("tileHorizontally", m_bTileHorizontally); + outResourceData->SetInt("tileVertically", m_bTileVertically); +} + +//----------------------------------------------------------------------------- +// Purpose: Applies designer settings from res file +//----------------------------------------------------------------------------- +void ImagePanel::ApplySettings(KeyValues *inResourceData) +{ + delete [] m_pszImageName; + delete [] m_pszFillColorName; + delete [] m_pszDrawColorName; // HPE addition + m_pszImageName = NULL; + m_pszFillColorName = NULL; + m_pszDrawColorName = NULL; // HPE addition + + m_bScaleImage = inResourceData->GetInt("scaleImage", 0); + m_fScaleAmount = inResourceData->GetFloat("scaleAmount", 0.0f); + m_bTileImage = inResourceData->GetInt("tileImage", 0); + m_bTileHorizontally = inResourceData->GetInt("tileHorizontally", m_bTileImage); + m_bTileVertically = inResourceData->GetInt("tileVertically", m_bTileImage); + const char *imageName = inResourceData->GetString("image", ""); + if ( *imageName ) + { + SetImage( imageName ); + } + + const char *pszFillColor = inResourceData->GetString("fillcolor", ""); + if (*pszFillColor) + { + int r = 0, g = 0, b = 0, a = 255; + int len = Q_strlen(pszFillColor) + 1; + m_pszFillColorName = new char[ len ]; + Q_strncpy( m_pszFillColorName, pszFillColor, len ); + + if (sscanf(pszFillColor, "%d %d %d %d", &r, &g, &b, &a) >= 3) + { + // it's a direct color + m_FillColor = Color(r, g, b, a); + } + else + { + IScheme *pScheme = scheme()->GetIScheme( GetScheme() ); + m_FillColor = pScheme->GetColor(pszFillColor, Color(0, 0, 0, 0)); + } + } + + //============================================================================= + // HPE_BEGIN: + // [pfreese] Added support for specifying drawcolor + //============================================================================= + const char *pszDrawColor = inResourceData->GetString("drawcolor", ""); + if (*pszDrawColor) + { + int r = 255, g = 255, b = 255, a = 255; + int len = Q_strlen(pszDrawColor) + 1; + m_pszDrawColorName = new char[ len ]; + Q_strncpy( m_pszDrawColorName, pszDrawColor, len ); + + if (sscanf(pszDrawColor, "%d %d %d %d", &r, &g, &b, &a) >= 3) + { + // it's a direct color + m_DrawColor = Color(r, g, b, a); + } + else + { + IScheme *pScheme = scheme()->GetIScheme( GetScheme() ); + m_DrawColor = pScheme->GetColor(pszDrawColor, Color(255, 255, 255, 255)); + } + } + //============================================================================= + // HPE_END + //============================================================================= + + const char *pszBorder = inResourceData->GetString("border", ""); + if (*pszBorder) + { + IScheme *pScheme = scheme()->GetIScheme( GetScheme() ); + SetBorder(pScheme->GetBorder(pszBorder)); + } + + BaseClass::ApplySettings(inResourceData); +} + +//----------------------------------------------------------------------------- +// Purpose: load the image, this is done just before this control is displayed +//----------------------------------------------------------------------------- +void ImagePanel::ApplySchemeSettings( IScheme *pScheme ) +{ + BaseClass::ApplySchemeSettings(pScheme); + if ( m_pszImageName && strlen( m_pszImageName ) > 0 ) + { + SetImage(scheme()->GetImage(m_pszImageName, m_bScaleImage)); + } +} + +//----------------------------------------------------------------------------- +// Purpose: Describes editing details +//----------------------------------------------------------------------------- +const char *ImagePanel::GetDescription() +{ + static char buf[1024]; + _snprintf(buf, sizeof(buf), "%s, string image, string border, string fillcolor, bool scaleImage", BaseClass::GetDescription()); + return buf; +} + +//----------------------------------------------------------------------------- +// Purpose: sets whether or not the image should scale to fit the size of the ImagePanel (defaults to false) +//----------------------------------------------------------------------------- +void ImagePanel::SetShouldScaleImage( bool state ) +{ + m_bScaleImage = state; +} + +//----------------------------------------------------------------------------- +// Purpose: gets whether or not the image should be scaled to fit the size of the ImagePanel +//----------------------------------------------------------------------------- +bool ImagePanel::GetShouldScaleImage() +{ + return m_bScaleImage; +} + +//----------------------------------------------------------------------------- +// Purpose: used in conjunction with setting that the image should scale and defines an absolute scale amount +//----------------------------------------------------------------------------- +void ImagePanel::SetScaleAmount( float scale ) +{ + m_fScaleAmount = scale; +} + +float ImagePanel::GetScaleAmount( void ) +{ + return m_fScaleAmount; +} + +//----------------------------------------------------------------------------- +// Purpose: set the color to fill with, if no Image is specified +//----------------------------------------------------------------------------- +void ImagePanel::SetFillColor( Color col ) +{ + m_FillColor = col; +} + +//----------------------------------------------------------------------------- +// Purpose: data accessor +//----------------------------------------------------------------------------- +Color ImagePanel::GetFillColor() +{ + return m_FillColor; +} + +char *ImagePanel::GetImageName() +{ + return m_pszImageName; +} + +bool ImagePanel::EvictImage() +{ + if ( !m_pImage ) + { + // nothing to do + return false; + } + + if ( !scheme()->DeleteImage( m_pszImageName ) ) + { + // no eviction occured, could have an outstanding reference + return false; + } + + // clear out our cached concept of it + // as it may change + // the next SetImage() will re-establish + m_pImage = NULL; + delete [] m_pszImageName; + m_pszImageName = NULL; + + return true; +} + +int ImagePanel::GetNumFrames() +{ + if ( !m_pImage ) + { + return 0; + } + + return m_pImage->GetNumFrames(); +} + +void ImagePanel::SetFrame( int nFrame ) +{ + if ( !m_pImage ) + { + return; + } + + return m_pImage->SetFrame( nFrame ); +} -- cgit v1.2.3