summaryrefslogtreecommitdiff
path: root/utils/scenemanager/statuswindow.h
blob: 5e43bad81cc25baae4075272de531c2b01886376 (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
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================//

#ifndef STATUSWINDOW_H
#define STATUSWINDOW_H
#ifdef _WIN32
#pragma once
#endif

class mxScrollbar;

#define IDC_STATUS_SCROLL 1000

class CStatusWindow : public mxWindow
{
public:
	CStatusWindow (mxWindow *parent, int x, int y, int w, int h, const char *label = 0 );
	~CStatusWindow();

	void StatusPrint( int r, int g, int b, bool overwrite, const char *text );

	virtual void redraw();
	virtual bool PaintBackground( void );

	virtual int handleEvent( mxEvent *event );

//	virtual void Think( float dt );

private:

	void PositionSliders( int sboffset );

	enum
	{
		MAX_TEXT_LINES = 1024,
		TEXT_LINE_MASK = MAX_TEXT_LINES - 1,
	};

	struct TextLine
	{
		char		m_szText[ 512 ];
		int			r, g, b;
		float		curtime;
	};

	TextLine		m_rgTextLines[ MAX_TEXT_LINES ];
	int				m_nCurrentLine;

	mxScrollbar		*m_pScrollbar;
};

extern CStatusWindow *g_pStatusWindow;

#endif // STATUSWINDOW_H