diff options
Diffstat (limited to 'indra/llui/llprogressbar.cpp')
-rw-r--r-- | indra/llui/llprogressbar.cpp | 135 |
1 files changed, 26 insertions, 109 deletions
diff --git a/indra/llui/llprogressbar.cpp b/indra/llui/llprogressbar.cpp index 8833494af8..693c331797 100644 --- a/indra/llui/llprogressbar.cpp +++ b/indra/llui/llprogressbar.cpp @@ -44,26 +44,32 @@ #include "llglheaders.h" #include "llfocusmgr.h" +#include "lluictrlfactory.h" static LLRegisterWidget<LLProgressBar> r("progress_bar"); -LLProgressBar::LLProgressBar(const std::string& name, const LLRect &rect) - : LLView(name, rect, FALSE), - mImageBar( NULL ), - mImageShadow( NULL ) -{ - mPercentDone = 0.f; - - // Defaults: - - setImageBar("rounded_square.tga"); - setImageShadow("rounded_square_soft.tga"); - - mColorBackground = LLColor4(0.3254f, 0.4000f, 0.5058f, 1.0f); - mColorBar = LLColor4(0.5764f, 0.6627f, 0.8352f, 1.0f); - mColorBar2 = LLColor4(0.5764f, 0.6627f, 0.8352f, 1.0f); - mColorShadow = LLColor4(0.2000f, 0.2000f, 0.4000f, 1.0f); -} +LLProgressBar::Params::Params() +: image_bar("image_bar"), + image_fill("image_fill"), + image_shadow("image_shadow"), + color_bar("color_bar"), + color_bar2("color_bar2"), + color_shadow("color_shadow"), + color_bg("color_bg") +{} + + +LLProgressBar::LLProgressBar(const LLProgressBar::Params& p) +: LLView(p), + mImageBar(p.image_bar), + mImageShadow(p.image_shadow), + mImageFill(p.image_fill), + mColorBackground(p.color_bg()), + mColorBar(p.color_bar()), + mColorBar2(p.color_bar2()), + mColorShadow(p.color_shadow()), + mPercentDone(0.f) +{} LLProgressBar::~LLProgressBar() { @@ -74,108 +80,19 @@ void LLProgressBar::draw() { static LLTimer timer; - LLUIImagePtr shadow_imagep = LLUI::getUIImage("rounded_square_soft.tga"); LLUIImagePtr bar_fg_imagep = LLUI::getUIImage("progressbar_fill.tga"); - LLUIImagePtr bar_bg_imagep = LLUI::getUIImage("progressbar_track.tga"); - LLUIImagePtr bar_imagep = LLUI::getUIImage("rounded_square.tga"); - LLColor4 background_color = LLUI::sColorsGroup->getColor("LoginProgressBarBgColor"); - bar_bg_imagep->draw(getLocalRect(), - background_color); + mImageBar->draw(getLocalRect(), mColorBackground.get()); F32 alpha = 0.5f + 0.5f*0.5f*(1.f + (F32)sin(3.f*timer.getElapsedTimeF32())); - LLColor4 bar_color = LLUI::sColorsGroup->getColor("LoginProgressBarFgColor"); + LLColor4 bar_color = mColorBar.get(); bar_color.mV[3] = alpha; LLRect progress_rect = getLocalRect(); progress_rect.mRight = llround(getRect().getWidth() * (mPercentDone / 100.f)); - bar_fg_imagep->draw(progress_rect); + mImageFill->draw(progress_rect); } void LLProgressBar::setPercent(const F32 percent) { mPercentDone = llclamp(percent, 0.f, 100.f); } - -void LLProgressBar::setImageBar( const std::string &bar_name ) -{ - mImageBar = LLUI::sImageProvider->getUIImage(bar_name)->getImage(); -} - -void LLProgressBar::setImageShadow(const std::string &shadow_name) -{ - mImageShadow = LLUI::sImageProvider->getUIImage(shadow_name)->getImage(); -} - -void LLProgressBar::setColorBar(const LLColor4 &c) -{ - mColorBar = c; -} -void LLProgressBar::setColorBar2(const LLColor4 &c) -{ - mColorBar2 = c; -} -void LLProgressBar::setColorShadow(const LLColor4 &c) -{ - mColorShadow = c; -} -void LLProgressBar::setColorBackground(const LLColor4 &c) -{ - mColorBackground = c; -} - - -// static -LLView* LLProgressBar::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) -{ - std::string name("progress_bar"); - node->getAttributeString("name", name); - - LLProgressBar *progress = new LLProgressBar(name, LLRect()); - - - std::string image_bar; - if (node->hasAttribute("image_bar")) node->getAttributeString("image_bar",image_bar); - if (image_bar != LLStringUtil::null) progress->setImageBar(image_bar); - - - std::string image_shadow; - if (node->hasAttribute("image_shadow")) node->getAttributeString("image_shadow",image_shadow); - if (image_shadow != LLStringUtil::null) progress->setImageShadow(image_shadow); - - - LLColor4 color_bar; - if (node->hasAttribute("color_bar")) - { - node->getAttributeColor4("color_bar",color_bar); - progress->setColorBar(color_bar); - } - - - LLColor4 color_bar2; - if (node->hasAttribute("color_bar2")) - { - node->getAttributeColor4("color_bar2",color_bar2); - progress->setColorBar2(color_bar2); - } - - - LLColor4 color_shadow; - if (node->hasAttribute("color_shadow")) - { - node->getAttributeColor4("color_shadow",color_shadow); - progress->setColorShadow(color_shadow); - } - - - LLColor4 color_bg; - if (node->hasAttribute("color_bg")) - { - node->getAttributeColor4("color_bg",color_bg); - progress->setColorBackground(color_bg); - } - - - progress->initFromXML(node, parent); - - return progress; -} |