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,
|
rendered_pixels_right, text_bottom,
|
||||||
text_color,
|
text_color,
|
||||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
select_left - mScrollHPos,
|
select_left - mScrollHPos,
|
||||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||||
@@ -1916,7 +1916,7 @@ void LLLineEditor::draw()
|
|||||||
rendered_pixels_right, text_bottom,
|
rendered_pixels_right, text_bottom,
|
||||||
tmp_color,
|
tmp_color,
|
||||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
select_right - mScrollHPos - rendered_text,
|
select_right - mScrollHPos - rendered_text,
|
||||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||||
@@ -1931,7 +1931,7 @@ void LLLineEditor::draw()
|
|||||||
rendered_pixels_right, text_bottom,
|
rendered_pixels_right, text_bottom,
|
||||||
text_color,
|
text_color,
|
||||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
S32_MAX,
|
S32_MAX,
|
||||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||||
@@ -1945,7 +1945,7 @@ void LLLineEditor::draw()
|
|||||||
rendered_pixels_right, text_bottom,
|
rendered_pixels_right, text_bottom,
|
||||||
text_color,
|
text_color,
|
||||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
S32_MAX,
|
S32_MAX,
|
||||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
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,
|
mGLFont->render(mText, getCursor(), (F32)(cursor_left + UI_LINEEDITOR_CURSOR_THICKNESS / 2), text_bottom,
|
||||||
tmp_color,
|
tmp_color,
|
||||||
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
LLFontGL::LEFT, LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
@@ -2013,7 +2013,7 @@ void LLLineEditor::draw()
|
|||||||
label_color,
|
label_color,
|
||||||
LLFontGL::LEFT,
|
LLFontGL::LEFT,
|
||||||
LLFontGL::BOTTOM,
|
LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
S32_MAX,
|
S32_MAX,
|
||||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||||
@@ -2038,7 +2038,7 @@ void LLLineEditor::draw()
|
|||||||
label_color,
|
label_color,
|
||||||
LLFontGL::LEFT,
|
LLFontGL::LEFT,
|
||||||
LLFontGL::BOTTOM,
|
LLFontGL::BOTTOM,
|
||||||
LLFontGL::NORMAL,
|
mFontStyle,
|
||||||
LLFontGL::NO_SHADOW,
|
LLFontGL::NO_SHADOW,
|
||||||
S32_MAX,
|
S32_MAX,
|
||||||
mMaxHPixels - ll_round(rendered_pixels_right),
|
mMaxHPixels - ll_round(rendered_pixels_right),
|
||||||
|
|||||||
@@ -315,6 +315,7 @@ protected:
|
|||||||
|
|
||||||
LLViewBorder* mBorder;
|
LLViewBorder* mBorder;
|
||||||
const LLFontGL* mGLFont;
|
const LLFontGL* mGLFont;
|
||||||
|
U8 mFontStyle = LLFontGL::NORMAL;
|
||||||
S32 mMaxLengthBytes; // Max length of the UTF8 string in bytes
|
S32 mMaxLengthBytes; // Max length of the UTF8 string in bytes
|
||||||
S32 mCursorPos; // I-beam is just after the mCursorPos-th character.
|
S32 mCursorPos; // I-beam is just after the mCursorPos-th character.
|
||||||
S32 mScrollHPos; // Horizontal offset from the start of mText. Used for scrolling.
|
S32 mScrollHPos; // Horizontal offset from the start of mText. Used for scrolling.
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ private:
|
|||||||
void setLineLengths();
|
void setLineLengths();
|
||||||
void drawText(S32 x, S32 y, const LLColor4& color );
|
void drawText(S32 x, S32 y, const LLColor4& color );
|
||||||
|
|
||||||
|
protected:
|
||||||
LLUIString mText;
|
LLUIString mText;
|
||||||
const LLFontGL* mFontGL;
|
const LLFontGL* mFontGL;
|
||||||
LLColor4 mTextColor;
|
LLColor4 mTextColor;
|
||||||
@@ -139,7 +140,6 @@ private:
|
|||||||
LLFontGL::VAlign mVAlign;
|
LLFontGL::VAlign mVAlign;
|
||||||
|
|
||||||
std::vector<S32> mLineLengthList;
|
std::vector<S32> mLineLengthList;
|
||||||
protected:
|
|
||||||
callback_t mClickedCallback;
|
callback_t mClickedCallback;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,17 @@ LLNameBox::LLNameBox(const std::string& name)
|
|||||||
setClickedCallback(boost::bind(&LLNameBox::showProfile, this));
|
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()
|
void LLNameBox::showProfile()
|
||||||
{
|
{
|
||||||
if (!mAllowInteract) return;
|
if (!mAllowInteract) return;
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ public:
|
|||||||
virtual void initFromXML(LLXMLNodePtr node, LLView* parent);
|
virtual void initFromXML(LLXMLNodePtr node, LLView* parent);
|
||||||
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
|
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 setText(const std::string& text) override final { LLTextBox::setText(text); }
|
||||||
void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
|
void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
|
||||||
LLSD getValue() const override final { return LLNameUI::getValue(); }
|
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);
|
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)
|
void LLNameEditor::setText(const std::string& text)
|
||||||
{
|
{
|
||||||
setToolTip(text);
|
setToolTip(text);
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public:
|
|||||||
void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
|
void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
|
||||||
LLSD getValue() const override final { return LLNameUI::getValue(); }
|
LLSD getValue() const override final { return LLNameUI::getValue(); }
|
||||||
|
|
||||||
|
void displayAsLink(bool link) override final;
|
||||||
void setText(const std::string& text) 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;
|
mIsGroup = is_group;
|
||||||
|
|
||||||
if (mAllowInteract = mNameID.notNull())
|
if (mAllowInteract = mNameID.notNull())
|
||||||
|
{
|
||||||
setNameText();
|
setNameText();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
setText(LLTrans::getString(mIsGroup ? "GroupNameNone" : "AvatarNameNobody"));
|
setText(LLTrans::getString(mIsGroup ? "GroupNameNone" : "AvatarNameNobody"));
|
||||||
|
displayAsLink(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLNameUI::setNameText()
|
void LLNameUI::setNameText()
|
||||||
@@ -99,6 +104,8 @@ void LLNameUI::setNameText()
|
|||||||
else mAllowInteract = true;
|
else mAllowInteract = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
displayAsLink(mAllowInteract);
|
||||||
|
|
||||||
// Got the name already? Set it.
|
// Got the name already? Set it.
|
||||||
// Otherwise it will be set later in refresh().
|
// Otherwise it will be set later in refresh().
|
||||||
setText(got_name ? name : mInitialValue);
|
setText(got_name ? name : mInitialValue);
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ struct LLNameUI : public LFIDBearer
|
|||||||
|
|
||||||
void setShowCompleteName(bool show) { mShowCompleteName = show; }
|
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;
|
virtual void setText(const std::string& text) = 0;
|
||||||
|
|
||||||
// Take either UUID or a map of "id" to UUID and "group" to boolean
|
// Take either UUID or a map of "id" to UUID and "group" to boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user