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 /public/dme_controls/ChannelGraphPanel.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'public/dme_controls/ChannelGraphPanel.h')
| -rw-r--r-- | public/dme_controls/ChannelGraphPanel.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/public/dme_controls/ChannelGraphPanel.h b/public/dme_controls/ChannelGraphPanel.h new file mode 100644 index 0000000..3413ede --- /dev/null +++ b/public/dme_controls/ChannelGraphPanel.h @@ -0,0 +1,89 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef CHANNELGRAPHPANEL_H +#define CHANNELGRAPHPANEL_H +#ifdef _WIN32 +#pragma once +#endif + +#include <vgui_controls/Panel.h> +#include <vgui_controls/Frame.h> +#include "utllinkedlist.h" +#include "utlvector.h" +#include "movieobjects/dmechannel.h" +#include "datamodel/dmehandle.h" + +namespace vgui +{ + +typedef DmeTime_t (*TimeAccessor_t)(); + +//----------------------------------------------------------------------------- +// Purpose: Holds and displays a chart of dmechannel data +//----------------------------------------------------------------------------- +class CChannelGraphPanel : public Panel +{ + DECLARE_CLASS_SIMPLE( CChannelGraphPanel, Panel ); + +public: + CChannelGraphPanel( Panel *parent, const char *name ); + + void SetChannel( CDmeChannel *pChannel ); + + // input messages + virtual void OnCursorMoved( int mx, int my ); + virtual void OnMousePressed( MouseCode code ); + virtual void OnMouseReleased( MouseCode code ); + virtual void OnMouseWheeled( int delta ); + virtual void OnSizeChanged( int newWide, int newTall ); // called after the size of a panel has been changed + +protected: + virtual void Paint(); + virtual void PerformLayout(); + virtual void ApplySchemeSettings( IScheme *pScheme ); + + int TimeToPixel( DmeTime_t time ); + int ValueToPixel( float flValue ); + +private: + CDmeHandle< CDmeChannel > m_hChannel; + HFont m_font; + TimeAccessor_t m_timeFunc; + DmeTime_t m_graphMinTime, m_graphMaxTime; + float m_graphMinValue, m_graphMaxValue; + int m_nMouseStartX, m_nMouseStartY; + int m_nMouseLastX, m_nMouseLastY; + int m_nTextBorder; + int m_nGraphOriginX; + int m_nGraphOriginY; + float m_flTimeToPixel; + float m_flValueToPixel; +}; + + +//----------------------------------------------------------------------------- +// CChannelGraphFrame +//----------------------------------------------------------------------------- +class CChannelGraphFrame : public Frame +{ + DECLARE_CLASS_SIMPLE( CChannelGraphFrame, Frame ); + +public: + CChannelGraphFrame( Panel *parent, const char *pTitle ); + + void SetChannel( CDmeChannel *pChannel ); + + virtual void OnCommand( const char *cmd ); + virtual void PerformLayout(); + +protected: + CChannelGraphPanel *m_pChannelGraph; +}; + +} // namespace vgui + +#endif // CHANNELGRAPHPANEL_H |