blob: ab4dd321fc2067d74b9c2491e2d8756112550d23 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
//========= 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
|