diff options
| author | Ychebotarev ProductEngine <ychebotarev@productengine.com> | 2010-01-22 15:26:20 +0200 |
|---|---|---|
| committer | Ychebotarev ProductEngine <ychebotarev@productengine.com> | 2010-01-22 15:26:20 +0200 |
| commit | a63a1afea649433ae5e50b668fcdd6b43df93c40 (patch) | |
| tree | cae7775867ccf342a38b9cd6520e0181e1c2c495 /indra/llui/lltabcontainer.cpp | |
| parent | 682fd146b0978363e6264569c74e018f0cb971fa (diff) | |
| parent | 951d6e9d8ce636ae01aab37f7e67c7389ebcea11 (diff) | |
merge
--HG--
branch : product-engine
Diffstat (limited to 'indra/llui/lltabcontainer.cpp')
| -rw-r--r-- | indra/llui/lltabcontainer.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 327dd01612..43c44f2253 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -1507,6 +1507,37 @@ void LLTabContainer::setTabImage(LLPanel* child, std::string image_name, const L } } +void LLTabContainer::setTabImage(LLPanel* child, const LLUUID& image_id, const LLColor4& color) +{ + static LLUICachedControl<S32> tab_padding ("UITabPadding", 0); + LLTabTuple* tuple = getTabByPanel(child); + if( tuple ) + { + tuple->mButton->setImageOverlay(image_id, LLFontGL::RIGHT, color); + + if (!mIsVertical) + { + // remove current width from total tab strip width + mTotalTabWidth -= tuple->mButton->getRect().getWidth(); + + S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ? + tuple->mButton->getImageOverlay()->getImage()->getWidth(0) : + 0; + + tuple->mPadding = image_overlay_width; + + tuple->mButton->setRightHPad(6); + tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth), + tuple->mButton->getRect().getHeight()); + // add back in button width to total tab strip width + mTotalTabWidth += tuple->mButton->getRect().getWidth(); + + // tabs have changed size, might need to scroll to see current tab + updateMaxScrollPos(); + } + } +} + void LLTabContainer::setTitle(const std::string& title) { if (mTitleBox) |
