llstatusbar.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:4k
- /**
- * @file llstatusbar.h
- * @brief LLStatusBar class definition
- *
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2010, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
- #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;
- class LLPanelVolumePulldown;
- class LLPanelNearByMedia;
- class LLStatusBar
- : public LLPanel
- {
- public:
- LLStatusBar(const LLRect& rect );
- /*virtual*/ ~LLStatusBar();
-
- /*virtual*/ void draw();
- /*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
- /*virtual*/ BOOL postBuild();
- // MANIPULATORS
- void setBalance(S32 balance);
- void debitBalance(S32 debit);
- void creditBalance(S32 credit);
- // Request the latest currency balance from the server
- static void sendMoneyBalanceRequest();
- 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;
- LLPanelNearByMedia* getNearbyMediaPanel() { return mPanelNearByMedia; }
- private:
- // simple method to setup the part that holds the date
- void setupDate();
- void onClickBuyCurrency();
- void onVolumeChanged(const LLSD& newvalue);
- void onMouseEnterVolume();
- void onMouseEnterNearbyMedia();
- void onClickScreen(S32 x, S32 y);
- static void onClickStatGraph(void* data);
- static void onClickMediaToggle(void* data);
- private:
- LLTextBox *mTextHealth;
- LLTextBox *mTextTime;
- LLStatGraph *mSGBandwidth;
- LLStatGraph *mSGPacketLoss;
- LLButton *mBtnVolume;
- LLButton *mMediaToggle;
- S32 mBalance;
- S32 mHealth;
- S32 mSquareMetersCredit;
- S32 mSquareMetersCommitted;
- LLFrameTimer* mBalanceTimer;
- LLFrameTimer* mHealthTimer;
- LLPanelVolumePulldown* mPanelVolumePulldown;
- LLPanelNearByMedia* mPanelNearByMedia;
- static std::vector<std::string> sDays;
- static std::vector<std::string> sMonths;
- static const U32 MAX_DATE_STRING_LENGTH;
- };
- // *HACK: Status bar owns your cached money balance. JC
- BOOL can_afford_transaction(S32 cost);
- extern LLStatusBar *gStatusBar;
- #endif