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.
118 lines
3.2 KiB
118 lines
3.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
#ifndef CHOREOACTORWIDGET_H |
|
#define CHOREOACTORWIDGET_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "studio.h" |
|
#include "choreowidget.h" |
|
#include "utlvector.h" |
|
#include "mxBitmapButton.h" |
|
#include "expressions.h" |
|
|
|
class CChoreoActor; |
|
class CChoreoChannelWidget; |
|
class mxCheckBox; |
|
class CChoreoActorWidget; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CActorBitmapButton : public mxBitmapButton |
|
{ |
|
public: |
|
CActorBitmapButton( CChoreoActorWidget *actor, mxWindow *parent, int x, int y, int w, int h, int id = 0, const char *bitmap = 0 ); |
|
|
|
CChoreoActorWidget *GetActor( void ); |
|
private: |
|
|
|
CChoreoActorWidget *m_pActor; |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CActorActiveCheckBox : public mxCheckBox |
|
{ |
|
public: |
|
CActorActiveCheckBox( CChoreoActorWidget *actor, mxWindow *parent, int x, int y, int w, int h, const char *label = 0, int id = 0); |
|
|
|
CChoreoActorWidget *GetActor( void ); |
|
private: |
|
|
|
CChoreoActorWidget *m_pActor; |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: The base actor ui widget. Owns the channels |
|
//----------------------------------------------------------------------------- |
|
class CChoreoActorWidget : public CChoreoWidget |
|
{ |
|
public: |
|
typedef CChoreoWidget BaseClass; |
|
|
|
// Construction / destruction |
|
CChoreoActorWidget( CChoreoWidget *parent ); |
|
virtual ~CChoreoActorWidget( void ); |
|
|
|
virtual void Create( void ); |
|
virtual void Layout( RECT& rc ); |
|
|
|
virtual void redraw(CChoreoWidgetDrawHelper& drawHelper); |
|
|
|
// Accessors |
|
CChoreoActor *GetActor( void ); |
|
void SetActor( CChoreoActor *actor ); |
|
|
|
// Manipulate channels |
|
void AddChannel( CChoreoChannelWidget *channel ); |
|
void RemoveChannel( CChoreoChannelWidget *channel ); |
|
CChoreoChannelWidget *GetChannel( int num ); |
|
int GetNumChannels( void ); |
|
|
|
// Override height because we can be open/collapsed and we contain the channels |
|
virtual int GetItemHeight( void ); |
|
|
|
// UI interactions |
|
void DeleteChannel( void ); |
|
void NewChannel( void ); |
|
void MoveChannelUp( void ); |
|
void MoveChannelDown( void ); |
|
|
|
// Expanded view or contracted view |
|
void ShowChannels( bool show ); |
|
bool GetShowChannels( void ); |
|
|
|
float *GetSettings( void ); |
|
|
|
void ResetSettings( void ); |
|
|
|
private: |
|
// Context menu handler |
|
void ShowRightClickMenu( int mx, int my ); |
|
|
|
// The underlying actor |
|
CChoreoActor *m_pActor; |
|
|
|
// Children |
|
CUtlVector < CChoreoChannelWidget * > m_Channels; |
|
|
|
// Expanded mode? |
|
bool m_bShowChannels; |
|
|
|
// Expand/collapse buttons |
|
CActorBitmapButton *m_btnOpen; |
|
CActorBitmapButton *m_btnClose; |
|
|
|
CActorActiveCheckBox *m_cbActive; |
|
|
|
float m_rgCurrentSetting[ GLOBAL_STUDIO_FLEX_CONTROL_COUNT ]; |
|
}; |
|
|
|
#endif // CHOREOACTORWIDGET_H
|
|
|