diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /sp/src/game/client/game_controls/imagemouseoverbutton.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/game/client/game_controls/imagemouseoverbutton.h')
| -rw-r--r-- | sp/src/game/client/game_controls/imagemouseoverbutton.h | 510 |
1 files changed, 255 insertions, 255 deletions
diff --git a/sp/src/game/client/game_controls/imagemouseoverbutton.h b/sp/src/game/client/game_controls/imagemouseoverbutton.h index 8562b8da..9dee5d73 100644 --- a/sp/src/game/client/game_controls/imagemouseoverbutton.h +++ b/sp/src/game/client/game_controls/imagemouseoverbutton.h @@ -1,256 +1,256 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IMAGE_MOUSE_OVER_BUTTON_H
-#define IMAGE_MOUSE_OVER_BUTTON_H
-
-#include "vgui/ISurface.h"
-#include "vgui/IScheme.h"
-#include "mouseoverpanelbutton.h"
-
-//===============================================
-// CImageMouseOverButton - used for class images
-//===============================================
-
-template <class T>
-class CImageMouseOverButton : public MouseOverButton<T>
-{
-private:
- //DECLARE_CLASS_SIMPLE( CImageMouseOverButton, MouseOverButton );
-
-public:
- CImageMouseOverButton( vgui::Panel *parent, const char *panelName, T *templatePanel );
-
- virtual void ApplySettings( KeyValues *inResourceData );
- virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
- virtual void OnSizeChanged( int newWide, int newTall );
-
- void RecalculateImageSizes( void );
- void SetActiveImage( const char *imagename );
- void SetInactiveImage( const char *imagename );
- void SetActiveImage( vgui::IImage *image );
- void SetInactiveImage( vgui::IImage *image );
-
-public:
- virtual void Paint();
- virtual void ShowPage( void );
- virtual void HidePage( void );
-
-private:
- vgui::IImage *m_pActiveImage;
- char *m_pszActiveImageName;
-
- vgui::IImage *m_pInactiveImage;
- char *m_pszInactiveImageName;
-
- bool m_bScaleImage;
-};
-
-template <class T>
-CImageMouseOverButton<T>::CImageMouseOverButton( vgui::Panel *parent, const char *panelName, T *templatePanel ) :
- MouseOverButton<T>( parent, panelName, templatePanel )
-{
- m_pszActiveImageName = NULL;
- m_pszInactiveImageName = NULL;
-
- m_pActiveImage = NULL;
- m_pInactiveImage = NULL;
-}
-
-template <class T>
-void CImageMouseOverButton<T>::ApplySettings( KeyValues *inResourceData )
-{
- m_bScaleImage = inResourceData->GetInt( "scaleImage", 0 );
-
- // Active Image
- delete [] m_pszActiveImageName;
- m_pszActiveImageName = NULL;
-
- const char *activeImageName = inResourceData->GetString( "activeimage", "" );
- if ( *activeImageName )
- {
- this->SetActiveImage( activeImageName );
- }
-
- // Inactive Image
- delete [] m_pszInactiveImageName;
- m_pszInactiveImageName = NULL;
-
- const char *inactiveImageName = inResourceData->GetString( "inactiveimage", "" );
- if ( *inactiveImageName )
- {
- this->SetInactiveImage( inactiveImageName );
- }
-
- MouseOverButton<T>::ApplySettings( inResourceData );
-
- this->InvalidateLayout( false, true ); // force applyschemesettings to run
-}
-
-template <class T>
-void CImageMouseOverButton<T>::ApplySchemeSettings( vgui::IScheme *pScheme )
-{
- MouseOverButton<T>::ApplySchemeSettings( pScheme );
-
- if ( m_pszActiveImageName && strlen( m_pszActiveImageName ) > 0 )
- {
- this->SetActiveImage( vgui::scheme()->GetImage( m_pszActiveImageName, m_bScaleImage ) );
- }
-
- if ( m_pszInactiveImageName && strlen( m_pszInactiveImageName ) > 0 )
- {
- this->SetInactiveImage( vgui::scheme()->GetImage( m_pszInactiveImageName, m_bScaleImage ) );
- }
-
- vgui::IBorder *pBorder = pScheme->GetBorder( "NoBorder" );
- this->SetDefaultBorder( pBorder);
- this->SetDepressedBorder( pBorder );
- this->SetKeyFocusBorder( pBorder );
-
- Color blank(0,0,0,0);
- this->SetDefaultColor( this->GetButtonFgColor(), blank );
- this->SetArmedColor( this->GetButtonArmedFgColor(), blank );
- this->SetDepressedColor( this->GetButtonDepressedFgColor(), blank );
-}
-
-template <class T>
-void CImageMouseOverButton<T>::RecalculateImageSizes( void )
-{
- // Reset our images, which will force them to recalculate their size.
- // Necessary for images shared with other scaling buttons.
- this->SetActiveImage( m_pActiveImage );
- this->SetInactiveImage( m_pInactiveImage );
-}
-
-template <class T>
-void CImageMouseOverButton<T>::SetActiveImage( const char *imagename )
-{
- int len = Q_strlen( imagename ) + 1;
- m_pszActiveImageName = new char[ len ];
- Q_strncpy( m_pszActiveImageName, imagename, len );
-}
-
-template <class T>
-void CImageMouseOverButton<T>::SetInactiveImage( const char *imagename )
-{
- int len = Q_strlen( imagename ) + 1;
- m_pszInactiveImageName = new char[ len ];
- Q_strncpy( m_pszInactiveImageName, imagename, len );
-}
-
-template <class T>
-void CImageMouseOverButton<T>::SetActiveImage( vgui::IImage *image )
-{
- m_pActiveImage = image;
-
- if ( m_pActiveImage )
- {
- int wide, tall;
- if ( m_bScaleImage )
- {
- // scaling, force the image size to be our size
- this->GetSize( wide, tall );
- m_pActiveImage->SetSize( wide, tall );
- }
- else
- {
- // not scaling, so set our size to the image size
- m_pActiveImage->GetSize( wide, tall );
- this->SetSize( wide, tall );
- }
- }
-
- this->Repaint();
-}
-
-template <class T>
-void CImageMouseOverButton<T>::SetInactiveImage( vgui::IImage *image )
-{
- m_pInactiveImage = image;
-
- if ( m_pInactiveImage )
- {
- int wide, tall;
- if ( m_bScaleImage)
- {
- // scaling, force the image size to be our size
- this->GetSize( wide, tall );
- m_pInactiveImage->SetSize( wide, tall );
- }
- else
- {
- // not scaling, so set our size to the image size
- m_pInactiveImage->GetSize( wide, tall );
- this->SetSize( wide, tall );
- }
- }
-
- this->Repaint();
-}
-
-template <class T>
-void CImageMouseOverButton<T>::OnSizeChanged( int newWide, int newTall )
-{
- if ( m_bScaleImage )
- {
- // scaling, force the image size to be our size
-
- if ( m_pActiveImage )
- m_pActiveImage->SetSize( newWide, newTall );
-
- if ( m_pInactiveImage )
- m_pInactiveImage->SetSize( newWide, newTall );
- }
- MouseOverButton<T>::OnSizeChanged( newWide, newTall );
-}
-
-template <class T>
-void CImageMouseOverButton<T>::Paint()
-{
- this->SetActiveImage( m_pActiveImage );
- this->SetInactiveImage( m_pInactiveImage );
-
- if ( this->IsArmed() )
- {
- // draw the active image
- if ( m_pActiveImage )
- {
- vgui::surface()->DrawSetColor( 255, 255, 255, 255 );
- m_pActiveImage->SetPos( 0, 0 );
- m_pActiveImage->Paint();
- }
- }
- else
- {
- // draw the inactive image
- if ( m_pInactiveImage )
- {
- vgui::surface()->DrawSetColor( 255, 255, 255, 255 );
- m_pInactiveImage->SetPos( 0, 0 );
- m_pInactiveImage->Paint();
- }
- }
-
- MouseOverButton<T>::Paint();
-}
-
-template <class T>
-void CImageMouseOverButton<T>::ShowPage( void )
-{
- MouseOverButton<T>::ShowPage();
-
- // send message to parent that we triggered something
- this->PostActionSignal( new KeyValues( "ShowPage", "page", this->GetName() ) );
-}
-
-template <class T>
-void CImageMouseOverButton<T>::HidePage( void )
-{
- MouseOverButton<T>::HidePage();
-}
-
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef IMAGE_MOUSE_OVER_BUTTON_H +#define IMAGE_MOUSE_OVER_BUTTON_H + +#include "vgui/ISurface.h" +#include "vgui/IScheme.h" +#include "mouseoverpanelbutton.h" + +//=============================================== +// CImageMouseOverButton - used for class images +//=============================================== + +template <class T> +class CImageMouseOverButton : public MouseOverButton<T> +{ +private: + //DECLARE_CLASS_SIMPLE( CImageMouseOverButton, MouseOverButton ); + +public: + CImageMouseOverButton( vgui::Panel *parent, const char *panelName, T *templatePanel ); + + virtual void ApplySettings( KeyValues *inResourceData ); + virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); + virtual void OnSizeChanged( int newWide, int newTall ); + + void RecalculateImageSizes( void ); + void SetActiveImage( const char *imagename ); + void SetInactiveImage( const char *imagename ); + void SetActiveImage( vgui::IImage *image ); + void SetInactiveImage( vgui::IImage *image ); + +public: + virtual void Paint(); + virtual void ShowPage( void ); + virtual void HidePage( void ); + +private: + vgui::IImage *m_pActiveImage; + char *m_pszActiveImageName; + + vgui::IImage *m_pInactiveImage; + char *m_pszInactiveImageName; + + bool m_bScaleImage; +}; + +template <class T> +CImageMouseOverButton<T>::CImageMouseOverButton( vgui::Panel *parent, const char *panelName, T *templatePanel ) : + MouseOverButton<T>( parent, panelName, templatePanel ) +{ + m_pszActiveImageName = NULL; + m_pszInactiveImageName = NULL; + + m_pActiveImage = NULL; + m_pInactiveImage = NULL; +} + +template <class T> +void CImageMouseOverButton<T>::ApplySettings( KeyValues *inResourceData ) +{ + m_bScaleImage = inResourceData->GetInt( "scaleImage", 0 ); + + // Active Image + delete [] m_pszActiveImageName; + m_pszActiveImageName = NULL; + + const char *activeImageName = inResourceData->GetString( "activeimage", "" ); + if ( *activeImageName ) + { + this->SetActiveImage( activeImageName ); + } + + // Inactive Image + delete [] m_pszInactiveImageName; + m_pszInactiveImageName = NULL; + + const char *inactiveImageName = inResourceData->GetString( "inactiveimage", "" ); + if ( *inactiveImageName ) + { + this->SetInactiveImage( inactiveImageName ); + } + + MouseOverButton<T>::ApplySettings( inResourceData ); + + this->InvalidateLayout( false, true ); // force applyschemesettings to run +} + +template <class T> +void CImageMouseOverButton<T>::ApplySchemeSettings( vgui::IScheme *pScheme ) +{ + MouseOverButton<T>::ApplySchemeSettings( pScheme ); + + if ( m_pszActiveImageName && strlen( m_pszActiveImageName ) > 0 ) + { + this->SetActiveImage( vgui::scheme()->GetImage( m_pszActiveImageName, m_bScaleImage ) ); + } + + if ( m_pszInactiveImageName && strlen( m_pszInactiveImageName ) > 0 ) + { + this->SetInactiveImage( vgui::scheme()->GetImage( m_pszInactiveImageName, m_bScaleImage ) ); + } + + vgui::IBorder *pBorder = pScheme->GetBorder( "NoBorder" ); + this->SetDefaultBorder( pBorder); + this->SetDepressedBorder( pBorder ); + this->SetKeyFocusBorder( pBorder ); + + Color blank(0,0,0,0); + this->SetDefaultColor( this->GetButtonFgColor(), blank ); + this->SetArmedColor( this->GetButtonArmedFgColor(), blank ); + this->SetDepressedColor( this->GetButtonDepressedFgColor(), blank ); +} + +template <class T> +void CImageMouseOverButton<T>::RecalculateImageSizes( void ) +{ + // Reset our images, which will force them to recalculate their size. + // Necessary for images shared with other scaling buttons. + this->SetActiveImage( m_pActiveImage ); + this->SetInactiveImage( m_pInactiveImage ); +} + +template <class T> +void CImageMouseOverButton<T>::SetActiveImage( const char *imagename ) +{ + int len = Q_strlen( imagename ) + 1; + m_pszActiveImageName = new char[ len ]; + Q_strncpy( m_pszActiveImageName, imagename, len ); +} + +template <class T> +void CImageMouseOverButton<T>::SetInactiveImage( const char *imagename ) +{ + int len = Q_strlen( imagename ) + 1; + m_pszInactiveImageName = new char[ len ]; + Q_strncpy( m_pszInactiveImageName, imagename, len ); +} + +template <class T> +void CImageMouseOverButton<T>::SetActiveImage( vgui::IImage *image ) +{ + m_pActiveImage = image; + + if ( m_pActiveImage ) + { + int wide, tall; + if ( m_bScaleImage ) + { + // scaling, force the image size to be our size + this->GetSize( wide, tall ); + m_pActiveImage->SetSize( wide, tall ); + } + else + { + // not scaling, so set our size to the image size + m_pActiveImage->GetSize( wide, tall ); + this->SetSize( wide, tall ); + } + } + + this->Repaint(); +} + +template <class T> +void CImageMouseOverButton<T>::SetInactiveImage( vgui::IImage *image ) +{ + m_pInactiveImage = image; + + if ( m_pInactiveImage ) + { + int wide, tall; + if ( m_bScaleImage) + { + // scaling, force the image size to be our size + this->GetSize( wide, tall ); + m_pInactiveImage->SetSize( wide, tall ); + } + else + { + // not scaling, so set our size to the image size + m_pInactiveImage->GetSize( wide, tall ); + this->SetSize( wide, tall ); + } + } + + this->Repaint(); +} + +template <class T> +void CImageMouseOverButton<T>::OnSizeChanged( int newWide, int newTall ) +{ + if ( m_bScaleImage ) + { + // scaling, force the image size to be our size + + if ( m_pActiveImage ) + m_pActiveImage->SetSize( newWide, newTall ); + + if ( m_pInactiveImage ) + m_pInactiveImage->SetSize( newWide, newTall ); + } + MouseOverButton<T>::OnSizeChanged( newWide, newTall ); +} + +template <class T> +void CImageMouseOverButton<T>::Paint() +{ + this->SetActiveImage( m_pActiveImage ); + this->SetInactiveImage( m_pInactiveImage ); + + if ( this->IsArmed() ) + { + // draw the active image + if ( m_pActiveImage ) + { + vgui::surface()->DrawSetColor( 255, 255, 255, 255 ); + m_pActiveImage->SetPos( 0, 0 ); + m_pActiveImage->Paint(); + } + } + else + { + // draw the inactive image + if ( m_pInactiveImage ) + { + vgui::surface()->DrawSetColor( 255, 255, 255, 255 ); + m_pInactiveImage->SetPos( 0, 0 ); + m_pInactiveImage->Paint(); + } + } + + MouseOverButton<T>::Paint(); +} + +template <class T> +void CImageMouseOverButton<T>::ShowPage( void ) +{ + MouseOverButton<T>::ShowPage(); + + // send message to parent that we triggered something + this->PostActionSignal( new KeyValues( "ShowPage", "page", this->GetName() ) ); +} + +template <class T> +void CImageMouseOverButton<T>::HidePage( void ) +{ + MouseOverButton<T>::HidePage(); +} + #endif //IMAGE_MOUSE_OVER_BUTTON_H
\ No newline at end of file |