You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
4.5 KiB
187 lines
4.5 KiB
//========= 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
|
|
|