188 lines
4.5 KiB
C
188 lines
4.5 KiB
C
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef CL_DEMOUIPANEL_H
|
||
|
#define CL_DEMOUIPANEL_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <vgui_controls/Frame.h>
|
||
|
|
||
|
|
||
|
namespace vgui
|
||
|
{
|
||
|
class Button;
|
||
|
class CheckButton;
|
||
|
class Label;
|
||
|
class ProgressBar;
|
||
|
class FileOpenDialog;
|
||
|
class Slider;
|
||
|
};
|
||
|
|
||
|
class CDemoEditorPanel;
|
||
|
class CDemoSmootherPanel;
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose:
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CDemoUIPanel : public vgui::Frame
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE( CDemoUIPanel, vgui::Frame );
|
||
|
|
||
|
public:
|
||
|
CDemoUIPanel( vgui::Panel *parent );
|
||
|
~CDemoUIPanel();
|
||
|
|
||
|
virtual void OnTick();
|
||
|
|
||
|
// Command issued
|
||
|
virtual void OnCommand(const char *command);
|
||
|
virtual void OnMessage(const KeyValues *params, vgui::VPANEL fromPanel);
|
||
|
|
||
|
virtual void OnVDMChanged( void );
|
||
|
|
||
|
virtual bool OverrideView( democmdinfo_t& info, int frame );
|
||
|
virtual void DrawDebuggingInfo();
|
||
|
|
||
|
static void InstallDemoUI( vgui::Panel *parent );
|
||
|
|
||
|
bool IsInDriveMode();
|
||
|
void SetDriveViewPoint( Vector &origin, QAngle &angle );
|
||
|
void GetDriveViewPoint( Vector &origin, QAngle &angle );
|
||
|
|
||
|
protected:
|
||
|
|
||
|
void HandleInput( bool active );
|
||
|
bool IsHoldingFastForward();
|
||
|
void SetPlaybackScale( float scale );
|
||
|
float GetPlaybackScale();
|
||
|
void GetCurrentView();
|
||
|
|
||
|
MESSAGE_FUNC_CHARPTR( OnFileSelected, "FileSelected", fullpath );
|
||
|
|
||
|
void OnEdit();
|
||
|
void OnSmooth();
|
||
|
void OnLoad();
|
||
|
|
||
|
vgui::Label *m_pCurrentDemo;
|
||
|
vgui::Button *m_pStop;
|
||
|
vgui::Button *m_pLoad;
|
||
|
|
||
|
// special editor buttons
|
||
|
vgui::Button *m_pEdit;
|
||
|
vgui::Button *m_pSmooth;
|
||
|
vgui::Button *m_pDriveCamera;
|
||
|
|
||
|
// player controls
|
||
|
vgui::Button *m_pPlayPauseResume;
|
||
|
vgui::Button *m_pGoStart;
|
||
|
vgui::Button *m_pGoEnd;
|
||
|
vgui::Button *m_pFastForward;
|
||
|
vgui::Button *m_pFastBackward;
|
||
|
vgui::Button *m_pPrevFrame;
|
||
|
vgui::Button *m_pNextFrame;
|
||
|
|
||
|
vgui::ProgressBar *m_pProgress;
|
||
|
vgui::Label *m_pProgressLabelFrame;
|
||
|
vgui::Label *m_pProgressLabelTime;
|
||
|
|
||
|
vgui::Slider *m_pSpeedScale;
|
||
|
vgui::Label *m_pSpeedScaleLabel;
|
||
|
|
||
|
vgui::DHANDLE< CDemoEditorPanel > m_hDemoEditor;
|
||
|
vgui::DHANDLE< CDemoSmootherPanel > m_hDemoSmoother;
|
||
|
vgui::DHANDLE< vgui::FileOpenDialog > m_hFileOpenDialog;
|
||
|
|
||
|
vgui::Button *m_pGo;
|
||
|
vgui::TextEntry *m_pGotoTick;
|
||
|
|
||
|
bool m_bInputActive;
|
||
|
int m_nOldCursor[2];
|
||
|
Vector m_ViewOrigin;
|
||
|
QAngle m_ViewAngles;
|
||
|
};
|
||
|
|
||
|
extern CDemoUIPanel *g_pDemoUI;
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose: a special demo UI panel that is always visible allowing you
|
||
|
// to interact with the game and adding more features to the old
|
||
|
// demo UI panel.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CDemoUIPanel2 : public vgui::Frame
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE( CDemoUIPanel2, vgui::Frame );
|
||
|
|
||
|
public:
|
||
|
CDemoUIPanel2( vgui::Panel *pParentBkgnd, vgui::Panel *pParentFgnd, bool bPutToForeground );
|
||
|
~CDemoUIPanel2();
|
||
|
|
||
|
virtual void OnTick();
|
||
|
|
||
|
// Command issued
|
||
|
virtual void OnCommand(const char *command);
|
||
|
virtual void OnMessage(const KeyValues *params, vgui::VPANEL fromPanel);
|
||
|
|
||
|
virtual void OnVDMChanged( void );
|
||
|
|
||
|
virtual bool OverrideView( democmdinfo_t& info, int frame );
|
||
|
virtual void DrawDebuggingInfo();
|
||
|
|
||
|
static void Install( vgui::Panel *pParentBkgnd, vgui::Panel *pParentFgnd, bool bPutToForeground );
|
||
|
|
||
|
bool IsInDriveMode();
|
||
|
void SetDriveViewPoint( Vector &origin, QAngle &angle );
|
||
|
void GetDriveViewPoint( Vector &origin, QAngle &angle );
|
||
|
|
||
|
void MakePanelForeground( bool bPutToForeground );
|
||
|
|
||
|
protected:
|
||
|
|
||
|
void HandleInput( bool active );
|
||
|
bool IsHoldingFastForward();
|
||
|
void SetPlaybackScale( float scale );
|
||
|
float GetPlaybackScale();
|
||
|
|
||
|
MESSAGE_FUNC_CHARPTR( OnFileSelected, "FileSelected", fullpath );
|
||
|
|
||
|
void OnLoad();
|
||
|
|
||
|
vgui::Button *m_pStop;
|
||
|
vgui::Button *m_pLoad;
|
||
|
|
||
|
// player controls
|
||
|
vgui::Button *m_pPlayPauseResume;
|
||
|
vgui::Button *m_pGoStart;
|
||
|
vgui::Button *m_pGoEnd;
|
||
|
vgui::Button *m_pFastForward;
|
||
|
vgui::Button *m_pFastBackward;
|
||
|
vgui::Button *m_pPrevFrame;
|
||
|
vgui::Button *m_pNextFrame;
|
||
|
|
||
|
vgui::Slider *m_pProgress;
|
||
|
vgui::Label *m_pProgressLabelFrame;
|
||
|
vgui::Label *m_pProgressLabelTime;
|
||
|
|
||
|
vgui::Slider *m_pSpeedScale;
|
||
|
vgui::Label *m_pSpeedScaleLabel;
|
||
|
|
||
|
vgui::DHANDLE< vgui::FileOpenDialog > m_hFileOpenDialog;
|
||
|
|
||
|
bool m_bInputActive;
|
||
|
int m_nOldCursor[2];
|
||
|
|
||
|
// Bkgnd-fgnd switch
|
||
|
vgui::Panel *m_arrParents[2];
|
||
|
bool m_bIsInForeground;
|
||
|
};
|
||
|
|
||
|
extern CDemoUIPanel2 *g_pDemoUI2;
|
||
|
|
||
|
|
||
|
#endif // CL_DEMOUIPANEL_H
|