aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/game_controls/classmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/game/client/game_controls/classmenu.h')
-rw-r--r--mp/src/game/client/game_controls/classmenu.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/mp/src/game/client/game_controls/classmenu.h b/mp/src/game/client/game_controls/classmenu.h
new file mode 100644
index 00000000..13a21227
--- /dev/null
+++ b/mp/src/game/client/game_controls/classmenu.h
@@ -0,0 +1,79 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef CLASSMENU_H
+#define CLASSMENU_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui_controls/Frame.h>
+#include <vgui_controls/Button.h>
+#include <vgui_controls/HTML.h>
+#include <utlvector.h>
+#include <vgui/ILocalize.h>
+#include <vgui/KeyCode.h>
+#include <game/client/iviewport.h>
+
+#include "mouseoverpanelbutton.h"
+
+namespace vgui
+{
+ class TextEntry;
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Draws the class menu
+//-----------------------------------------------------------------------------
+class CClassMenu : public vgui::Frame, public IViewPortPanel
+{
+private:
+ DECLARE_CLASS_SIMPLE( CClassMenu, vgui::Frame );
+
+public:
+ CClassMenu(IViewPort *pViewPort);
+ CClassMenu(IViewPort *pViewPort, const char *panelName );
+ virtual ~CClassMenu();
+
+ virtual const char *GetName( void ) { return PANEL_CLASS; }
+ virtual void SetData(KeyValues *data);
+ virtual void Reset();
+ virtual void Update() {};
+ virtual bool NeedsUpdate( void ) { return false; }
+ virtual bool HasInputElements( void ) { return true; }
+ virtual void ShowPanel( bool bShow );
+
+ // both vgui::Frame and IViewPortPanel define these, so explicitly define them here as passthroughs to vgui
+ vgui::VPANEL GetVPanel( void ) { return BaseClass::GetVPanel(); }
+ virtual bool IsVisible() { return BaseClass::IsVisible(); }
+ virtual void SetParent( vgui::VPANEL parent ) { BaseClass::SetParent( parent ); }
+
+protected:
+
+ virtual vgui::Panel *CreateControlByName(const char *controlName);
+ virtual MouseOverPanelButton* CreateNewMouseOverPanelButton(vgui::EditablePanel *panel);
+
+ //vgui2 overrides
+ virtual void OnKeyCodePressed(vgui::KeyCode code);
+
+ // helper functions
+ void SetLabelText(const char *textEntryName, const char *text);
+ void SetVisibleButton(const char *textEntryName, bool state);
+
+ // command callbacks
+ void OnCommand( const char *command );
+
+ IViewPort *m_pViewPort;
+ ButtonCode_t m_iScoreBoardKey;
+ int m_iTeam;
+ vgui::EditablePanel *m_pPanel;
+
+ CUtlVector< MouseOverPanelButton * > m_mouseoverButtons;
+};
+
+
+#endif // CLASSMENU_H