diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/tf/vgui/blueprint_panel.cpp | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/client/tf/vgui/blueprint_panel.cpp')
| -rw-r--r-- | game/client/tf/vgui/blueprint_panel.cpp | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/game/client/tf/vgui/blueprint_panel.cpp b/game/client/tf/vgui/blueprint_panel.cpp new file mode 100644 index 0000000..c0bc484 --- /dev/null +++ b/game/client/tf/vgui/blueprint_panel.cpp @@ -0,0 +1,185 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#include "cbase.h" +#include "vgui/IInput.h" +#include <vgui/IVGui.h> +#include <vgui/IScheme.h> +#include "blueprint_panel.h" +#include "vgui_controls/TextImage.h" +#include "vgui_controls/Label.h" +#include "vgui_controls/Button.h" +#include "ienginevgui.h" +#include "VGuiMatSurface/IMatSystemSurface.h" +#include "renderparm.h" + +DECLARE_BUILD_FACTORY( CBlueprintPanel ); + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CBlueprintPanel::CBlueprintPanel( vgui::Panel *parent, const char *name ) : vgui::EditablePanel( parent, name ) +{ + m_bClickable = false; + m_bMouseOver = false; + + m_bInStack = false; + + SetActAsButton( false, false ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::ApplySchemeSettings( vgui::IScheme *pScheme ) +{ + BaseClass::ApplySchemeSettings( pScheme ); + + LoadControlSettings( "Resource/UI/build_menu/base_selectable.res" ); + + m_pItemNameLabel = dynamic_cast<vgui::Label*>( FindChildByName("ItemNameLabel") ); + m_pItemCostLabel = dynamic_cast<vgui::Label*>( FindChildByName("CostLabel") ); + m_pIcon = dynamic_cast<CIconPanel*>( FindChildByName("BuildingIcon") ); + m_pMetalIcon = dynamic_cast<CIconPanel*>( FindChildByName("MetalIcon") ); + m_pBackground = dynamic_cast<CIconPanel*>( FindChildByName("ItemBackground") ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::SetObjectInfo( const CObjectInfo* pNewInfo ) +{ + m_pObjectInfo = pNewInfo; + + bool bVisible = pNewInfo != NULL; + + if ( m_pItemNameLabel ) + { + if ( m_pObjectInfo ) + { + m_pItemNameLabel->SetText( m_pObjectInfo->m_pBuilderWeaponName ); + } + m_pItemNameLabel->SetVisible( bVisible ); + } + + if ( m_pItemCostLabel ) + { + if ( m_pObjectInfo ) + { + V_snprintf( m_pszCost, sizeof( m_pszCost ), "%i", m_pObjectInfo->m_Cost ); + m_pItemCostLabel->SetText( m_pszCost ); + } + m_pItemCostLabel->SetVisible( bVisible ); + } + + if ( m_pIcon ) + { + if ( m_pObjectInfo ) + { + m_pIcon->SetIcon( m_pObjectInfo->m_pIconMenu ); + } + m_pIcon->SetVisible( bVisible ); + } + + if ( m_pMetalIcon ) + { + m_pMetalIcon->SetVisible( bVisible ); + } + + if ( m_pBackground ) + { + m_pBackground->SetVisible( bVisible ); + } + + SetVisible( bVisible ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::SetActAsButton( bool bClickable, bool bMouseOver ) +{ + m_bClickable = bClickable; + m_bMouseOver = bMouseOver; + + SetMouseInputEnabled( m_bClickable || m_bMouseOver ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::OnCursorEntered( void ) +{ + if ( !m_bMouseOver ) + return; + + PostActionSignal( new KeyValues("BlueprintPanelEntered") ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::OnCursorExited( void ) +{ + if ( !m_bMouseOver ) + return; + + PostActionSignal( new KeyValues("BlueprintPanelExited") ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::OnMousePressed(vgui::MouseCode code) +{ + if ( !m_bClickable || code != MOUSE_LEFT ) + return; + + PostActionSignal( new KeyValues("BlueprintPanelMousePressed") ); + + vgui::surface()->PlaySound( "UI/buttonclick.wav" ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::OnMouseReleased(vgui::MouseCode code) +{ + if ( !m_bClickable || code != MOUSE_LEFT ) + return; + + PostActionSignal( new KeyValues("BlueprintPanelMouseReleased") ); + + vgui::surface()->PlaySound( "UI/buttonclickrelease.wav" ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::OnMouseDoublePressed(vgui::MouseCode code) +{ + if ( !m_bClickable || code != MOUSE_LEFT ) + return; + + PostActionSignal( new KeyValues("BlueprintPanelMouseDoublePressed") ); + + vgui::surface()->PlaySound( "UI/buttonclickrelease.wav" ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBlueprintPanel::OnCursorMoved( int x, int y ) +{ + if ( !m_bClickable ) + return; + + // Add our own xpos/ypos offset + int iXPos; + int iYPos; + GetPos( iXPos, iYPos ); + PostActionSignal( new KeyValues("BlueprintPanelCursorMoved", "x", x + iXPos, "y", y + iYPos) ); +}
\ No newline at end of file |