summaryrefslogtreecommitdiff
path: root/indra/newview/llstatusbar.h
blob: f33a5d93e1426cbc2e59c09213c245e1131a76c2 (plain)
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/** 
 * @file llstatusbar.h
 * @brief LLStatusBar class definition
 *
 * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc.
 * $License$
 */

#ifndef LL_LLSTATUSBAR_H
#define LL_LLSTATUSBAR_H

#include "llpanel.h"

// "Constants" loaded from settings.xml at start time
extern S32 STATUS_BAR_HEIGHT;

class LLButton;
class LLLineEditor;
class LLMessageSystem;
class LLTextBox;
class LLTextEditor;
class LLUICtrl;
class LLUUID;
class LLFrameTimer;
class LLStatGraph;

// used by LCD screen
class cLLRegionDetails
{
public:
	LLString mRegionName;
	char	*mParcelName;
	char	*mAccesString;
	S32		mX;
	S32		mY;
	S32		mZ;
	S32		mArea;
	BOOL	mForSale;
	char	mOwner[MAX_STRING];
	F32		mTraffic;
	S32		mBalance;
	LLString	mTime;
	U32		mPing;
};

class LLStatusBar
:	public LLPanel
{
public:
	LLStatusBar(const std::string& name, const LLRect& rect );
	~LLStatusBar();
	virtual BOOL postBuild();
	
	virtual EWidgetType getWidgetType() const;
	virtual LLString getWidgetTag() const;

	// OVERRIDES
	virtual void draw();

	// MANIPULATORS
	void		setBalance(S32 balance);
	void		debitBalance(S32 debit);
	void		creditBalance(S32 credit);

	void		setHealth(S32 percent);

	void setLandCredit(S32 credit);
	void setLandCommitted(S32 committed);

	void		refresh();
	void setVisibleForMouselook(bool visible);
		// some elements should hide in mouselook

	// ACCESSORS
	S32			getBalance() const;
	S32			getHealth() const;

	BOOL isUserTiered() const;
	S32 getSquareMetersCredit() const;
	S32 getSquareMetersCommitted() const;
	S32 getSquareMetersLeft() const;
	cLLRegionDetails mRegionDetails;

protected:
	static void onClickParcelInfo(void*);
	static void onClickBalance(void*);
	static void onClickBuyCurrency(void*);
	static void onClickRegionInfo(void*);
	static void onClickHealth(void*);
	static void onClickFly(void*);
	static void onClickPush(void*);
	static void onClickBuild(void*);
	static void onClickScripts(void*);
	static void onClickBuyLand(void*);
	static void onClickScriptDebug(void*);

protected:
	LLTextBox	*mTextBalance;
	LLTextBox	*mTextHealth;
	LLTextBox	*mTextTime;

	LLButton	*mBtnScriptOut;
	LLButton	*mBtnHealth;
	LLButton	*mBtnFly;
	LLButton	*mBtnBuild;
	LLButton	*mBtnScripts;
	LLButton	*mBtnPush;
	LLButton	*mBtnBuyLand;


	LLTextBox*	mTextParcelName;

	LLStatGraph *mSGBandwidth;
	LLStatGraph *mSGPacketLoss;

	LLButton	*mBtnBuyCurrency;

	S32				mBalance;
	S32				mHealth;
	S32				mSquareMetersCredit;
	S32				mSquareMetersCommitted;
	LLFrameTimer*	mBalanceTimer;
	LLFrameTimer*	mHealthTimer;
};

// *HACK: Status bar owns your cached money balance. JC
BOOL can_afford_transaction(S32 cost);

extern LLStatusBar *gStatusBar;

#endif