00001 
00032 #include "llviewerprecompiledheaders.h"
00033 
00034 #include "llstatview.h"
00035 
00036 #include "llerror.h"
00037 #include "llstatbar.h"
00038 #include "llfontgl.h"
00039 #include "llgl.h"
00040 #include "llui.h"
00041 
00042 #include "llstatbar.h"
00043 #include "llviewercontrol.h"
00044 
00045 LLStatView::LLStatView(const LLString& name, const LLString& label, const LLString& setting, const LLRect& rect)
00046         :       LLContainerView(name, rect),
00047                 mNumStatBars(0),
00048                 mSetting(setting)
00049 {
00050         mReshapeFlags = FOLLOWS_TOP | FOLLOWS_LEFT;
00051         setLabel(label);
00052         BOOL open = FALSE;
00053         if (mSetting.length() > 0)
00054         {
00055                 open = gSavedSettings.getBOOL(mSetting);
00056         }
00057         setDisplayChildren(open);               
00058 }
00059 
00060 LLStatView::~LLStatView()
00061 {
00062         
00063         if (mSetting.length() > 0)
00064         {
00065                 BOOL open = getDisplayChildren();
00066                 gSavedSettings.setBOOL(mSetting, open);         
00067         }
00068 }
00069 
00070 EWidgetType LLStatView::getWidgetType() const
00071 {
00072         return WIDGET_TYPE_STAT_VIEW;
00073 }
00074 
00075 LLString LLStatView::getWidgetTag() const
00076 {
00077         return LL_STAT_VIEW_TAG;
00078 }
00079 
00080 LLStatBar *LLStatView::addStat(const LLString& name, LLStat *statp)
00081 {
00082         LLStatBar *stat_barp;
00083         LLRect r;
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091         mNumStatBars++;
00092 
00093         stat_barp = new LLStatBar(name, r);
00094         stat_barp->mStatp = statp;
00095 
00096         stat_barp->setVisible(mDisplayChildren);
00097         addChildAtEnd(stat_barp);
00098         mStatBars.push_back(stat_barp);
00099 
00100         
00101         reshape(mRect.getWidth(), mRect.getHeight());
00102         return stat_barp;
00103 }
00104 
00105 LLStatBar *LLStatView::getStatBar(const LLString& name)
00106 {
00107         sb_vector_t::iterator iter;
00108         for(iter = mStatBars.begin(); iter != mStatBars.end(); ++iter)
00109         {
00110                 LLStatBar *stat_barp = *iter;
00111                 if (stat_barp->getLabel() == name)
00112                 {
00113                         return stat_barp;
00114                 }
00115         }
00116 
00117         
00118         return NULL;
00119 }