Display Name UIs as links when they can be interacted with
Adds font style member to line editors, might be useful in the future?
This commit is contained in:
@@ -1895,7 +1895,7 @@ void LLLineEditor::draw()
|
||||
rendered_pixels_right, text_bottom,
|
||||
text_color,
|
||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
select_left - mScrollHPos,
|
||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||
@@ -1916,7 +1916,7 @@ void LLLineEditor::draw()
|
||||
rendered_pixels_right, text_bottom,
|
||||
tmp_color,
|
||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
select_right - mScrollHPos - rendered_text,
|
||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||
@@ -1931,7 +1931,7 @@ void LLLineEditor::draw()
|
||||
rendered_pixels_right, text_bottom,
|
||||
text_color,
|
||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
S32_MAX,
|
||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||
@@ -1945,7 +1945,7 @@ void LLLineEditor::draw()
|
||||
rendered_pixels_right, text_bottom,
|
||||
text_color,
|
||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
S32_MAX,
|
||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||
@@ -1987,7 +1987,7 @@ void LLLineEditor::draw()
|
||||
mGLFont->render(mText, getCursor(), (F32)(cursor_left + UI_LINEEDITOR_CURSOR_THICKNESS / 2), text_bottom,
|
||||
tmp_color,
|
||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
1);
|
||||
}
|
||||
@@ -2013,7 +2013,7 @@ void LLLineEditor::draw()
|
||||
label_color,
|
||||
LLFontGL::LEFT,
|
||||
LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
S32_MAX,
|
||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||
@@ -2038,7 +2038,7 @@ void LLLineEditor::draw()
|
||||
label_color,
|
||||
LLFontGL::LEFT,
|
||||
LLFontGL::BOTTOM,
|
||||
LLFontGL::NORMAL,
|
||||
mFontStyle,
|
||||
LLFontGL::NO_SHADOW,
|
||||
S32_MAX,
|
||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||
|
||||
@@ -315,6 +315,7 @@ protected:
|
||||
|
||||
LLViewBorder* mBorder;
|
||||
const LLFontGL* mGLFont;
|
||||
U8 mFontStyle = LLFontGL::NORMAL;
|
||||
S32 mMaxLengthBytes; // Max length of the UTF8 string in bytes
|
||||
S32 mCursorPos; // I-beam is just after the mCursorPos-th character.
|
||||
S32 mScrollHPos; // Horizontal offset from the start of mText. Used for scrolling.
|
||||
|
||||
@@ -113,6 +113,7 @@ private:
|
||||
void setLineLengths();
|
||||
void drawText(S32 x, S32 y, const LLColor4& color );
|
||||
|
||||
protected:
|
||||
LLUIString mText;
|
||||
const LLFontGL* mFontGL;
|
||||
LLColor4 mTextColor;
|
||||
@@ -139,7 +140,6 @@ private:
|
||||
LLFontGL::VAlign mVAlign;
|
||||
|
||||
std::vector<S32> mLineLengthList;
|
||||
protected:
|
||||
callback_t mClickedCallback;
|
||||
};
|
||||
|
||||
|
||||
@@ -48,6 +48,17 @@ LLNameBox::LLNameBox(const std::string& name)
|
||||
setClickedCallback(boost::bind(&LLNameBox::showProfile, this));
|
||||
}
|
||||
|
||||
void LLNameBox::displayAsLink(bool link)
|
||||
{
|
||||
static const LLUICachedControl<LLColor4> color("HTMLAgentColor");
|
||||
setColor(link ? color : LLUI::sColorsGroup->getColor("LabelTextColor"));
|
||||
setDisabledColor(link ? color : LLUI::sColorsGroup->getColor("LabelDisabledColor"));
|
||||
if (link)
|
||||
mFontStyle |= LLFontGL::UNDERLINE;
|
||||
else
|
||||
mFontStyle &= ~LLFontGL::UNDERLINE;
|
||||
}
|
||||
|
||||
void LLNameBox::showProfile()
|
||||
{
|
||||
if (!mAllowInteract) return;
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
virtual void initFromXML(LLXMLNodePtr node, LLView* parent);
|
||||
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
|
||||
|
||||
void displayAsLink(bool link) override final;
|
||||
void setText(const std::string& text) override final { LLTextBox::setText(text); }
|
||||
void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
|
||||
LLSD getValue() const override final { return LLNameUI::getValue(); }
|
||||
|
||||
@@ -76,6 +76,16 @@ BOOL LLNameEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
return LLLineEditor::handleRightMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
void LLNameEditor::displayAsLink(bool link)
|
||||
{
|
||||
static const LLUICachedControl<LLColor4> color("HTMLAgentColor");
|
||||
setReadOnlyFgColor(link ? color : LLUI::sColorsGroup->getColor("TextFgReadOnlyColor"));
|
||||
if (link)
|
||||
mFontStyle |= LLFontGL::UNDERLINE;
|
||||
else
|
||||
mFontStyle &= ~LLFontGL::UNDERLINE;
|
||||
}
|
||||
|
||||
void LLNameEditor::setText(const std::string& text)
|
||||
{
|
||||
setToolTip(text);
|
||||
|
||||
@@ -57,6 +57,7 @@ public:
|
||||
void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
|
||||
LLSD getValue() const override final { return LLNameUI::getValue(); }
|
||||
|
||||
void displayAsLink(bool link) override final;
|
||||
void setText(const std::string& text) override final;
|
||||
};
|
||||
|
||||
|
||||
@@ -65,9 +65,14 @@ void LLNameUI::setNameID(const LLUUID& name_id, bool is_group)
|
||||
mIsGroup = is_group;
|
||||
|
||||
if (mAllowInteract = mNameID.notNull())
|
||||
{
|
||||
setNameText();
|
||||
}
|
||||
else
|
||||
{
|
||||
setText(LLTrans::getString(mIsGroup ? "GroupNameNone" : "AvatarNameNobody"));
|
||||
displayAsLink(false);
|
||||
}
|
||||
}
|
||||
|
||||
void LLNameUI::setNameText()
|
||||
@@ -99,6 +104,8 @@ void LLNameUI::setNameText()
|
||||
else mAllowInteract = true;
|
||||
}
|
||||
|
||||
displayAsLink(mAllowInteract);
|
||||
|
||||
// Got the name already? Set it.
|
||||
// Otherwise it will be set later in refresh().
|
||||
setText(got_name ? name : mInitialValue);
|
||||
|
||||
@@ -58,6 +58,7 @@ struct LLNameUI : public LFIDBearer
|
||||
|
||||
void setShowCompleteName(bool show) { mShowCompleteName = show; }
|
||||
|
||||
virtual void displayAsLink(bool link) = 0; // Override to make the name display as a link
|
||||
virtual void setText(const std::string& text) = 0;
|
||||
|
||||
// Take either UUID or a map of "id" to UUID and "group" to boolean
|
||||
|
||||
Reference in New Issue
Block a user