void LLSlider::draw() { F32 alpha = getDrawContext().mAlpha; // since thumb image might still be decoding, need thumb to accomodate image size updateThumbRect(); // Draw background and thumb. // drawing solids requires texturing be disabled gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); // Track LLRect track_rect(mThumbImage->getWidth() / 2, getLocalRect().getCenterY() + (mTrackImage->getHeight() / 2), getRect().getWidth() - mThumbImage->getWidth() / 2, getLocalRect().getCenterY() - (mTrackImage->getHeight() / 2) ); LLRect highlight_rect(track_rect.mLeft, track_rect.mTop, mThumbRect.getCenterX(), track_rect.mBottom); mTrackImage->draw(track_rect, LLColor4::white % alpha); mTrackHighlightImage->draw(highlight_rect, LLColor4::white % alpha); // Thumb if (hasFocus()) { // Draw focus highlighting. mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor() % alpha, gFocusMgr.getFocusFlashWidth()); } if( hasMouseCapture() ) { // Show ghost where thumb was before dragging began. if (mThumbImage.notNull()) { mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor % (0.3f * alpha)); mThumbImage->draw(mThumbRect, mThumbOutlineColor % alpha); } } else if(!getEnabled()) { if (mThumbImage.notNull()) { mThumbImage->draw(mThumbRect, mThumbCenterColor % (0.3f * alpha)); } } else { if (mThumbImage.notNull()) { mThumbImage->draw(mThumbRect, mThumbCenterColor % alpha); } } // Fill in the thumb. LLUICtrl::draw(); }
void LLSlider::draw() { // since thumb image might still be decoding, need thumb to accomodate image size updateThumbRect(); // Draw background and thumb. // drawing solids requires texturing be disabled gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); F32 opacity = getEnabled() ? 1.f : 0.3f; LLColor4 center_color = (mThumbCenterColor % opacity); LLColor4 track_color = (mTrackColor % opacity); // Track LLRect track_rect(mThumbImage->getWidth() / 2, getLocalRect().getCenterY() + (mTrackImage->getHeight() / 2), getRect().getWidth() - mThumbImage->getWidth() / 2, getLocalRect().getCenterY() - (mTrackImage->getHeight() / 2) ); LLRect highlight_rect(track_rect.mLeft, track_rect.mTop, mThumbRect.getCenterX(), track_rect.mBottom); mTrackImage->draw(track_rect); mTrackHighlightImage->draw(highlight_rect); // Thumb if( hasMouseCapture() ) { // Show ghost where thumb was before dragging began. mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor % 0.3f); } if (hasFocus()) { // Draw focus highlighting. mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor(), gFocusMgr.getFocusFlashWidth()); } // Fill in the thumb. mThumbImage->draw(mThumbRect, hasMouseCapture() ? mThumbOutlineColor : center_color); LLUICtrl::draw(); }
void LLScrollListText::draw(const LLColor4& color, const LLColor4& highlight_color) const { LLColor4 display_color; if (mUseColor) { display_color = mColor; } else { display_color = color; } if (mHighlightCount > 0) { S32 left = 0; switch(mFontAlignment) { case LLFontGL::LEFT: left = mFont->getWidth(mText.getString(), 0, mHighlightOffset); break; case LLFontGL::RIGHT: left = getWidth() - mFont->getWidth(mText.getString(), mHighlightOffset, S32_MAX); break; case LLFontGL::HCENTER: left = (getWidth() - mFont->getWidth(mText.getString())) / 2; break; } LLRect highlight_rect(left - 2, ll_round(mFont->getLineHeight()) + 1, left + mFont->getWidth(mText.getString(), mHighlightOffset, mHighlightCount) + 1, 1); mRoundedRectImage->draw(highlight_rect, highlight_color); } // Try to draw the entire string F32 right_x; U32 string_chars = mText.length(); F32 start_x = 0.f; switch(mFontAlignment) { case LLFontGL::LEFT: start_x = (mFontStyle & LLFontGL::ITALIC) ? 2.f : 0.f; //Italic text seems to need a little padding. break; case LLFontGL::RIGHT: start_x = (F32)getWidth(); break; case LLFontGL::HCENTER: start_x = (F32)getWidth() * 0.5f; break; } mFont->render(mText.getWString(), 0, start_x, 2.f, display_color, mFontAlignment, LLFontGL::BOTTOM, mFontStyle, LLFontGL::NO_SHADOW, string_chars, getTextWidth(), &right_x, FALSE, TRUE); }