halflife-photomode/cl_dll/vgui_SpectatorPanel.h

107 lines
2 KiB
C++

// vgui_SpectatorPanel.h: interface for the SpectatorPanel class.
//
//////////////////////////////////////////////////////////////////////
#pragma once
#include <VGUI_Panel.h>
#include <VGUI_Label.h>
#include <VGUI_Button.h>
using namespace vgui;
#define SPECTATOR_PANEL_CMD_NONE 0
#define SPECTATOR_PANEL_CMD_OPTIONS 1
#define SPECTATOR_PANEL_CMD_PREVPLAYER 2
#define SPECTATOR_PANEL_CMD_NEXTPLAYER 3
#define SPECTATOR_PANEL_CMD_HIDEMENU 4
#define SPECTATOR_PANEL_CMD_TOGGLE_INSET 5
#define SPECTATOR_PANEL_CMD_CAMERA 6
#define SPECTATOR_PANEL_CMD_PLAYERS 7
// spectator panel sizes
#define PANEL_HEIGHT 64
#define BANNER_WIDTH 256
#define BANNER_HEIGHT 64
#define OPTIONS_BUTTON_X 96
#define CAMOPTIONS_BUTTON_X 200
#define SEPERATOR_WIDTH 15
#define SEPERATOR_HEIGHT 15
#define TEAM_NUMBER 2
class SpectatorPanel : public Panel //, public vgui::CDefaultInputSignal
{
public:
SpectatorPanel(int x, int y, int wide, int tall);
virtual ~SpectatorPanel();
void ActionSignal(int cmd);
// InputSignal overrides.
public:
void Initialize();
void Update();
public:
void EnableInsetView(bool isEnabled);
void ShowMenu(bool isVisible);
DropDownButton* m_OptionButton;
// CommandButton * m_HideButton;
//ColorButton * m_PrevPlayerButton;
//ColorButton * m_NextPlayerButton;
CImageButton* m_PrevPlayerButton;
CImageButton* m_NextPlayerButton;
DropDownButton* m_CamButton;
CTransparentPanel* m_TopBorder;
CTransparentPanel* m_BottomBorder;
ColorButton* m_InsetViewButton;
DropDownButton* m_BottomMainButton;
CImageLabel* m_TimerImage;
Label* m_BottomMainLabel;
Label* m_CurrentTime;
Label* m_ExtraInfo;
Panel* m_Separator;
Label* m_TeamScores[TEAM_NUMBER];
CImageLabel* m_TopBanner;
bool m_menuVisible;
bool m_insetVisible;
};
class CSpectatorHandler_Command : public ActionSignal
{
private:
SpectatorPanel* m_pFather;
int m_cmd;
public:
CSpectatorHandler_Command(SpectatorPanel* panel, int cmd)
{
m_pFather = panel;
m_cmd = cmd;
}
void actionPerformed(Panel* panel) override
{
m_pFather->ActionSignal(m_cmd);
}
};