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.
108 lines
2.6 KiB
108 lines
2.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef FACEPOSERTOOLWINDOW_H |
|
#define FACEPOSERTOOLWINDOW_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <mxtk/mx.h> |
|
#include "mxtk/mxWindow.h" |
|
|
|
class CChoreoWidgetDrawHelper; |
|
|
|
class IFacePoserToolWindow |
|
{ |
|
public: |
|
IFacePoserToolWindow( char const *toolname, char const *displaynameroot ); |
|
virtual ~IFacePoserToolWindow( void ); |
|
|
|
virtual mxWindow *GetMxWindow( void ); |
|
virtual void Shutdown() { } |
|
|
|
virtual void Think( float dt ); |
|
virtual bool IsScrubbing( void ) const { return false; } |
|
virtual bool IsProcessing( void ) { return false; } |
|
|
|
bool IsActiveTool( void ); |
|
|
|
virtual bool IsLocked( void ); |
|
virtual bool HandleToolEvent( mxEvent *event ); |
|
virtual void HandleToolRedraw( CChoreoWidgetDrawHelper& helper ); |
|
virtual int GetCaptionHeight( void ); |
|
void ToggleLockedState( void ); |
|
|
|
void LoadPosition( void ); |
|
void SavePosition( void ); |
|
|
|
char const *GetToolName( void ) const; |
|
char const *GetWindowTitle( void ) const; |
|
char const *GetDisplayNameRoot( void ) const; |
|
|
|
void SetDisplayNameRoot( char const *name ); |
|
void SetSuffix( char const *suffix ); |
|
void SetPrefix( char const *prefix ); |
|
|
|
void SetUseForMainWindowTitle( bool use ); |
|
|
|
void SetAutoProcess( bool autoprocess ); |
|
bool GetAutoProcess( void ) const; |
|
|
|
virtual void OnModelChanged(); |
|
|
|
static int GetToolCount( void ); |
|
static IFacePoserToolWindow *GetTool( int index ); |
|
|
|
static IFacePoserToolWindow *GetActiveTool( void ); |
|
static void SetActiveTool( IFacePoserToolWindow *tool ); |
|
static IFacePoserToolWindow *s_pActiveTool; |
|
static void ToolThink( float dt ); |
|
static void ModelChanged(); |
|
static bool IsAnyToolScrubbing( void ); |
|
static bool IsAnyToolProcessing( void ); |
|
|
|
static bool ShouldAutoProcess( void ); |
|
|
|
static void InitTools( void ); |
|
static void ShutdownTools( void ); |
|
|
|
static void EnableToolRedraw( bool enabled ); |
|
static bool s_bToolsCanDraw; |
|
|
|
bool ToolCanDraw( void ); |
|
|
|
private: |
|
void GetLockRect( RECT& rc ); |
|
void GetCloseRect( RECT& rc ); |
|
|
|
void ComputeNewTitle( void ); |
|
|
|
void SetToolName( char const *name ); |
|
|
|
enum |
|
{ |
|
MAX_TOOL_NAME = 128, |
|
PREFIX_LENGTH = 32, |
|
SUFFIX_LENGTH = 128, |
|
}; |
|
|
|
char m_szToolName[ MAX_TOOL_NAME ]; |
|
char m_szDisplayRoot[ MAX_TOOL_NAME ]; |
|
char m_szPrefix[ PREFIX_LENGTH ]; |
|
char m_szSuffix[ SUFFIX_LENGTH ]; |
|
|
|
char m_szWindowTitle[ MAX_TOOL_NAME + PREFIX_LENGTH + PREFIX_LENGTH ]; |
|
|
|
bool m_bUseForMainWindowTitle; |
|
|
|
bool m_bAutoProcess; |
|
|
|
int m_nToolFrameCount; |
|
}; |
|
|
|
#endif // FACEPOSERTOOLWINDOW_H
|
|
|