summaryrefslogtreecommitdiff
path: root/utils/hlfaceposer/flexpanel.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/hlfaceposer/flexpanel.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'utils/hlfaceposer/flexpanel.h')
-rw-r--r--utils/hlfaceposer/flexpanel.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/utils/hlfaceposer/flexpanel.h b/utils/hlfaceposer/flexpanel.h
new file mode 100644
index 0000000..015a5de
--- /dev/null
+++ b/utils/hlfaceposer/flexpanel.h
@@ -0,0 +1,144 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef FLEXPANEL_H
+#define FLEXPANEL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#ifndef INCLUDED_MXWINDOW
+#include <mxtk/mxWindow.h>
+#endif
+
+#define IDC_FLEX 7001
+#define IDC_FLEXSCROLL 7101
+#define IDC_EXPRESSIONRESET 7102
+
+// NOTE THIS THIS TAKES UP 4 * 96 entries (384)
+// #define NEXT_AVAIL 7457 ...etc.
+#define IDC_FLEXSCALE 7200
+
+#define IDC_FLEXSCALE_LAST 7584
+
+#define IDC_FP_UNCHECK_ALL 7800
+#define IDC_FP_CHECK_ALL 7801
+#define IDC_FP_INVERT 7802
+#define IDC_FP_MENU 7803
+
+#include "studio.h"
+
+class mxTab;
+class mxChoice;
+class mxCheckBox;
+class mxSlider;
+class mxScrollbar;
+class mxLineEdit;
+class mxLabel;
+class mxButton;
+class MatSysWindow;
+class TextureWindow;
+class mxExpressionSlider;
+
+
+#include "expressions.h"
+#include "faceposertoolwindow.h"
+
+/*
+ int nameindex;
+ int numkeys;
+ int keyindex;
+ { char key, char weight }
+*/
+
+class ControlPanel;
+
+class FlexPanel : public mxWindow, public IFacePoserToolWindow
+{
+ typedef mxWindow BaseClass;
+
+ mxExpressionSlider *slFlexScale[ GLOBAL_STUDIO_FLEX_CONTROL_COUNT ];
+
+ mxScrollbar *slScrollbar;
+
+ mxButton *btnResetSliders;
+ mxButton *btnCopyToSliders;
+ mxButton *btnCopyFromSliders;
+ mxButton *btnMenu;
+
+
+public:
+ // CREATORS
+ FlexPanel (mxWindow *parent);
+ virtual ~FlexPanel ();
+
+ virtual void redraw();
+ virtual bool PaintBackground( void );
+
+ void SetEvent( CChoreoEvent *event );
+ virtual void OnModelChanged();
+
+ // MANIPULATORS
+ int handleEvent (mxEvent *event);
+
+ void initFlexes ();
+
+ bool IsValidSlider( int iFlexController ) const;
+
+ float GetSlider( int iFlexController );
+ float GetSliderRawValue( int iFlexController );
+ void GetSliderRange( int iFlexController, float& minvalue, float& maxvalue );
+
+ void SetSlider( int iFlexController, float value );
+ float GetInfluence( int iFlexController );
+ void SetInfluence( int iFlexController, float value );
+ void SetEdited( int iFlexController, bool isEdited );
+ bool IsEdited( int iFlexController );
+ int LookupFlex( int iSlider, int barnum );
+ int LookupPairedFlex( int iFlexController );
+
+ // maps global flex_controller index to UI slider
+ int nFlexSliderIndex[ GLOBAL_STUDIO_FLEX_CONTROL_COUNT ];
+ int nFlexSliderBarnum[ GLOBAL_STUDIO_FLEX_CONTROL_COUNT ];
+
+ void PositionSliders( int sboffset );
+ void PositionControls( int width, int height );
+
+ void EditExpression( void );
+ void NewExpression( void );
+
+ void setExpression( int index );
+ void DeleteExpression( int index );
+ void SaveExpression( int index );
+ void RevertExpression( int index );
+
+ void CopyControllerSettings( void );
+ void PasteControllerSettings( void );
+
+ void ResetSliders( bool preserveundo, bool bDirtyClass );
+
+ void CopyControllerSettingsToStructure( CExpression *exp );
+
+private:
+ enum
+ {
+ FP_STATE_UNCHECK = 0,
+ FP_STATE_CHECK,
+ FP_STATE_INVERT
+ };
+
+ void OnSetAll( int state );
+ void OnMenu();
+
+ bool m_bNewExpressionMode;
+
+ // Since we combine left/right into one, this will be less than hdr->numflexcontrollers
+ int m_nViewableFlexControllerCount;
+};
+
+extern FlexPanel *g_pFlexPanel;
+
+#endif // FLEXPANEL_H