Пример #1
0
void LLToolTip::initFromParams(const LLToolTip::Params& p)
{
	LLPanel::initFromParams(p);

	// do this *after* we've had our size set in LLPanel::initFromParams();
	const S32 REALLY_LARGE_HEIGHT = 10000;
	mTextBox->reshape(p.max_width, REALLY_LARGE_HEIGHT);

	if (p.styled_message.isProvided())
	{
		for (LLInitParam::ParamIterator<LLToolTip::StyledText>::const_iterator text_it = p.styled_message.begin();
			text_it != p.styled_message.end();
			++text_it)
		{
			mTextBox->appendText(text_it->text(), false, text_it->style);
		}
	}
	else
	{
		mTextBox->setText(p.message());
	}

	S32 text_width = llmin(p.max_width(), mTextBox->getTextPixelWidth());
	S32 text_height = mTextBox->getTextPixelHeight();
	mTextBox->reshape(text_width, text_height);

	// reshape tooltip panel to fit text box
	LLRect tooltip_rect = calcBoundingRect();
	tooltip_rect.mTop += mPadding;
	tooltip_rect.mRight += mPadding;
	tooltip_rect.mBottom = 0;
	tooltip_rect.mLeft = 0;

	setShape(tooltip_rect);
}