Automated merge with ssh://angela@hg.lindenlab.com/viewer/viewer-2-0/
commit
0d4ccb9d1c
|
|
@ -1451,7 +1451,7 @@ void LLTextBase::createUrlContextMenu(S32 x, S32 y, const std::string &in_url)
|
|||
}
|
||||
}
|
||||
|
||||
void LLTextBase::setText(const LLStringExplicit &utf8str)
|
||||
void LLTextBase::setText(const LLStringExplicit &utf8str ,const LLStyle::Params& input_params)
|
||||
{
|
||||
// clear out the existing text and segments
|
||||
getViewModel()->setDisplay(LLWStringUtil::null);
|
||||
|
|
@ -1466,7 +1466,7 @@ void LLTextBase::setText(const LLStringExplicit &utf8str)
|
|||
std::string text(utf8str);
|
||||
LLStringUtil::removeCRLF(text);
|
||||
|
||||
appendText(text, false);
|
||||
appendText(text, false, input_params);
|
||||
|
||||
onValueChange(0, getLength());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ public:
|
|||
|
||||
// Text accessors
|
||||
// TODO: add optional style parameter
|
||||
virtual void setText(const LLStringExplicit &utf8str); // uses default style
|
||||
virtual void setText(const LLStringExplicit &utf8str , const LLStyle::Params& input_params = LLStyle::Params()); // uses default style
|
||||
virtual std::string getText() const;
|
||||
|
||||
// wide-char versions
|
||||
|
|
|
|||
|
|
@ -112,12 +112,12 @@ BOOL LLTextBox::handleHover(S32 x, S32 y, MASK mask)
|
|||
return handled;
|
||||
}
|
||||
|
||||
void LLTextBox::setText(const LLStringExplicit& text)
|
||||
void LLTextBox::setText(const LLStringExplicit& text , const LLStyle::Params& input_params )
|
||||
{
|
||||
// does string argument insertion
|
||||
mText.assign(text);
|
||||
|
||||
LLTextBase::setText(mText.getString());
|
||||
LLTextBase::setText(mText.getString(), input_params );
|
||||
}
|
||||
|
||||
void LLTextBox::setClickedCallback( boost::function<void (void*)> cb, void* userdata /*= NULL */ )
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public:
|
|||
/*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
|
||||
|
||||
/*virtual*/ void setText( const LLStringExplicit& text );
|
||||
/*virtual*/ void setText( const LLStringExplicit& text, const LLStyle::Params& input_params = LLStyle::Params() );
|
||||
|
||||
void setRightAlign() { mHAlign = LLFontGL::RIGHT; }
|
||||
void setHAlign( LLFontGL::HAlign align ) { mHAlign = align; }
|
||||
|
|
|
|||
|
|
@ -311,12 +311,12 @@ LLTextEditor::~LLTextEditor()
|
|||
// LLTextEditor
|
||||
// Public methods
|
||||
|
||||
void LLTextEditor::setText(const LLStringExplicit &utf8str)
|
||||
void LLTextEditor::setText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params)
|
||||
{
|
||||
blockUndo();
|
||||
deselect();
|
||||
|
||||
LLTextBase::setText(utf8str);
|
||||
LLTextBase::setText(utf8str, input_params);
|
||||
|
||||
resetDirty();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ public:
|
|||
|
||||
void appendWidget(const LLInlineViewSegment::Params& params, const std::string& text, bool allow_undo);
|
||||
// Non-undoable
|
||||
void setText(const LLStringExplicit &utf8str);
|
||||
void setText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params = LLStyle::Params());
|
||||
|
||||
|
||||
// Removes text from the end of document
|
||||
|
|
|
|||
|
|
@ -192,19 +192,27 @@ void LLUIColorTable::clear()
|
|||
LLUIColor LLUIColorTable::getColor(const std::string& name, const LLColor4& default_color) const
|
||||
{
|
||||
string_color_map_t::const_iterator iter = mUserSetColors.find(name);
|
||||
|
||||
if(iter != mUserSetColors.end())
|
||||
{
|
||||
return LLUIColor(&iter->second);
|
||||
}
|
||||
|
||||
iter = mLoadedColors.find(name);
|
||||
return (iter != mLoadedColors.end() ? LLUIColor(&iter->second) : LLUIColor(default_color));
|
||||
|
||||
if(iter != mLoadedColors.end())
|
||||
{
|
||||
return LLUIColor(&iter->second);
|
||||
}
|
||||
|
||||
return LLUIColor(default_color);
|
||||
}
|
||||
|
||||
// update user color, loaded colors are parsed on initialization
|
||||
void LLUIColorTable::setColor(const std::string& name, const LLColor4& color)
|
||||
{
|
||||
setColor(name, color, mUserSetColors);
|
||||
setColor(name, color, mLoadedColors);
|
||||
}
|
||||
|
||||
bool LLUIColorTable::loadFromSettings()
|
||||
|
|
|
|||
|
|
@ -447,6 +447,7 @@ set(viewer_SOURCE_FILES
|
|||
llviewerassettype.cpp
|
||||
llvieweraudio.cpp
|
||||
llviewercamera.cpp
|
||||
llviewerchat.cpp
|
||||
llviewercontrol.cpp
|
||||
llviewercontrollistener.cpp
|
||||
llviewerdisplay.cpp
|
||||
|
|
@ -946,6 +947,7 @@ set(viewer_HEADER_FILES
|
|||
llvieweraudio.h
|
||||
llviewerbuild.h
|
||||
llviewercamera.h
|
||||
llviewerchat.h
|
||||
llviewercontrol.h
|
||||
llviewercontrollistener.h
|
||||
llviewerdisplay.h
|
||||
|
|
|
|||
|
|
@ -333,16 +333,27 @@ LLView* LLChatHistory::getHeader(const LLChat& chat,const LLStyle::Params& style
|
|||
return header;
|
||||
}
|
||||
|
||||
void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& style_params)
|
||||
void LLChatHistory::appendWidgetMessage(const LLChat& chat)
|
||||
{
|
||||
LLView* view = NULL;
|
||||
std::string view_text = "\n[" + formatCurrentTime() + "] " + chat.mFromName + ": ";
|
||||
|
||||
|
||||
LLInlineViewSegment::Params p;
|
||||
p.force_newline = true;
|
||||
p.left_pad = mLeftWidgetPad;
|
||||
p.right_pad = mRightWidgetPad;
|
||||
|
||||
|
||||
LLColor4 txt_color = LLUIColorTable::instance().getColor("White");
|
||||
LLViewerChat::getChatColor(chat,txt_color);
|
||||
LLFontGL* fontp = LLViewerChat::getChatFont();
|
||||
|
||||
LLStyle::Params style_params;
|
||||
style_params.color(txt_color);
|
||||
style_params.font(fontp);
|
||||
|
||||
|
||||
if (mLastFromName == chat.mFromName)
|
||||
{
|
||||
view = getSeparator();
|
||||
|
|
@ -357,6 +368,7 @@ void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& sty
|
|||
else
|
||||
p.top_pad = mTopHeaderPad;
|
||||
p.bottom_pad = mBottomHeaderPad;
|
||||
|
||||
}
|
||||
p.view = view;
|
||||
|
||||
|
|
@ -371,6 +383,7 @@ void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& sty
|
|||
appendWidget(p, view_text, false);
|
||||
|
||||
//Append the text message
|
||||
|
||||
appendText(chat.mText, FALSE, style_params);
|
||||
|
||||
mLastFromName = chat.mFromName;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#define LLCHATHISTORY_H_
|
||||
|
||||
#include "lltexteditor.h"
|
||||
#include "llchat.h"
|
||||
#include "llviewerchat.h"
|
||||
|
||||
//Chat log widget allowing addition of a message as a widget
|
||||
class LLChatHistory : public LLTextEditor
|
||||
|
|
@ -109,7 +109,7 @@ class LLChatHistory : public LLTextEditor
|
|||
* @param time time of a message.
|
||||
* @param message message itself.
|
||||
*/
|
||||
void appendWidgetMessage(const LLChat& chat, LLStyle::Params& style_params);
|
||||
void appendWidgetMessage(const LLChat& chat);
|
||||
|
||||
private:
|
||||
std::string mLastFromName;
|
||||
|
|
|
|||
|
|
@ -120,10 +120,10 @@ std::string LLNearbyChatToastPanel::appendTime()
|
|||
|
||||
|
||||
|
||||
void LLNearbyChatToastPanel::addText (const std::string& message)
|
||||
void LLNearbyChatToastPanel::addText (const std::string& message , const LLStyle::Params& input_params)
|
||||
{
|
||||
LLChatMsgBox* msg_text = getChild<LLChatMsgBox>("msg_text", false);
|
||||
msg_text->addText(message);
|
||||
msg_text->addText(message , input_params);
|
||||
mMessages.push_back(message);
|
||||
}
|
||||
|
||||
|
|
@ -134,9 +134,34 @@ void LLNearbyChatToastPanel::init(LLSD& notification)
|
|||
mText = notification["message"].asString(); // UTF-8 line of text
|
||||
mFromName = notification["from"].asString(); // agent or object name
|
||||
mFromID = notification["from_id"].asUUID(); // agent id or object id
|
||||
|
||||
int sType = notification["source"].asInteger();
|
||||
mSourceType = (EChatSourceType)sType;
|
||||
|
||||
|
||||
std::string color_name = notification["text_color"].asString();
|
||||
|
||||
mTextColor = LLUIColorTable::instance().getColor(color_name);
|
||||
mTextColor.mV[VALPHA] =notification["color_alpha"].asReal();
|
||||
|
||||
S32 font_size = notification["font_size"].asInteger();
|
||||
switch(font_size)
|
||||
{
|
||||
case 0:
|
||||
mFont = LLFontGL::getFontSansSerifSmall();
|
||||
break;
|
||||
default:
|
||||
case 1:
|
||||
mFont = LLFontGL::getFontSansSerif();
|
||||
break;
|
||||
case 2:
|
||||
mFont = LLFontGL::getFontSansSerifBig();
|
||||
break;
|
||||
}
|
||||
|
||||
LLStyle::Params style_params;
|
||||
style_params.color(mTextColor);
|
||||
style_params.font(mFont);
|
||||
|
||||
std::string str_sender;
|
||||
|
||||
if(gAgentID != mFromID)
|
||||
|
|
@ -144,13 +169,13 @@ void LLNearbyChatToastPanel::init(LLSD& notification)
|
|||
else
|
||||
str_sender = LLTrans::getString("You");;
|
||||
|
||||
caption->getChild<LLTextBox>("sender_name", false)->setText(str_sender);
|
||||
caption->getChild<LLTextBox>("sender_name", false)->setText(str_sender , style_params);
|
||||
|
||||
caption->getChild<LLTextBox>("msg_time", false)->setText(appendTime());
|
||||
caption->getChild<LLTextBox>("msg_time", false)->setText(appendTime() , style_params );
|
||||
|
||||
|
||||
LLChatMsgBox* msg_text = getChild<LLChatMsgBox>("msg_text", false);
|
||||
msg_text->setText(mText);
|
||||
msg_text->setText(mText, style_params);
|
||||
|
||||
LLUICtrl* msg_inspector = caption->getChild<LLUICtrl>("msg_inspector");
|
||||
if(mSourceType != CHAT_SOURCE_AGENT)
|
||||
|
|
@ -171,7 +196,15 @@ void LLNearbyChatToastPanel::setMessage (const LLChat& chat_msg)
|
|||
notification["from_id"] = chat_msg.mFromID;
|
||||
notification["time"] = chat_msg.mTime;
|
||||
notification["source"] = (S32)chat_msg.mSourceType;
|
||||
|
||||
|
||||
std::string r_color_name="White";
|
||||
F32 r_color_alpha = 1.0f;
|
||||
LLViewerChat::getChatColor( chat_msg, r_color_name, r_color_alpha);
|
||||
|
||||
notification["text_color"] = r_color_name;
|
||||
notification["color_alpha"] = r_color_alpha;
|
||||
|
||||
notification["font_size"] = (S32)LLViewerChat::getChatFontSize() ;
|
||||
init(notification);
|
||||
|
||||
}
|
||||
|
|
@ -201,11 +234,17 @@ void LLNearbyChatToastPanel::setWidth(S32 width)
|
|||
text_box->reshape(width - msg_left_offset - msg_right_offset,100/*its not magic number, we just need any number*/);
|
||||
|
||||
LLChatMsgBox* msg_text = getChild<LLChatMsgBox>("msg_text", false);
|
||||
|
||||
LLStyle::Params style_params;
|
||||
style_params.color(mTextColor);
|
||||
style_params.font(mFont);
|
||||
|
||||
|
||||
if(mText.length())
|
||||
msg_text->setText(mText);
|
||||
msg_text->setText(mText, style_params);
|
||||
|
||||
for(size_t i=0;i<mMessages.size();++i)
|
||||
msg_text->addText(mMessages[i]);
|
||||
msg_text->addText(mMessages[i] , style_params);
|
||||
|
||||
setRect(LLRect(getRect().mLeft, getRect().mTop, getRect().mLeft + width , getRect().mBottom));
|
||||
snapToMessageHeight ();
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#include "llpanel.h"
|
||||
#include "llscrollbar.h"
|
||||
#include "string"
|
||||
#include "llchat.h"
|
||||
#include "llviewerchat.h"
|
||||
#include "lltoastpanel.h"
|
||||
|
||||
typedef enum e_show_item_header
|
||||
|
|
@ -59,7 +59,7 @@ public:
|
|||
|
||||
const LLUUID& getFromID() const { return mFromID;}
|
||||
|
||||
void addText (const std::string& message);
|
||||
void addText (const std::string& message , const LLStyle::Params& input_params = LLStyle::Params());
|
||||
void setMessage (const LLChat& msg);
|
||||
void setWidth (S32 width);
|
||||
void snapToMessageHeight ();
|
||||
|
|
@ -89,6 +89,8 @@ private:
|
|||
std::string mFromName; // agent or object name
|
||||
LLUUID mFromID; // agent id or object id
|
||||
EChatSourceType mSourceType;
|
||||
LLColor4 mTextColor;
|
||||
LLFontGL* mFont;
|
||||
|
||||
|
||||
std::vector<std::string> mMessages;
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ LLChatMsgBox::LLChatMsgBox(const Params& p) :
|
|||
mBlockSpacing(p.block_spacing)
|
||||
{}
|
||||
|
||||
void LLChatMsgBox::addText( const LLStringExplicit& text )
|
||||
void LLChatMsgBox::addText( const LLStringExplicit& text , const LLStyle::Params& input_params )
|
||||
{
|
||||
S32 length = getLength();
|
||||
// if there is existing text, add a separator
|
||||
|
|
@ -94,5 +94,5 @@ void LLChatMsgBox::addText( const LLStringExplicit& text )
|
|||
insertSegment(new ChatSeparator(length - 1, length - 1));
|
||||
}
|
||||
// prepend newline only if there is some existing text
|
||||
appendText(text, length > 0);
|
||||
appendText(text, length > 0, input_params);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ protected:
|
|||
friend class LLUICtrlFactory;
|
||||
|
||||
public:
|
||||
void addText(const LLStringExplicit &text);
|
||||
void addText(const LLStringExplicit &text, const LLStyle::Params& input_params = LLStyle::Params());
|
||||
|
||||
private:
|
||||
S32 mBlockSpacing;
|
||||
|
|
|
|||
|
|
@ -129,12 +129,12 @@ void LLExpandableTextBox::LLTextBoxEx::reshape(S32 width, S32 height, BOOL calle
|
|||
}
|
||||
}
|
||||
|
||||
void LLExpandableTextBox::LLTextBoxEx::setText(const LLStringExplicit& text)
|
||||
void LLExpandableTextBox::LLTextBoxEx::setText(const LLStringExplicit& text,const LLStyle::Params& input_params)
|
||||
{
|
||||
// LLTextBox::setText will obliterate the expander segment, so make sure
|
||||
// we generate it again by clearing mExpanderVisible
|
||||
mExpanderVisible = false;
|
||||
LLTextBox::setText(text);
|
||||
LLTextBox::setText(text, input_params);
|
||||
|
||||
// text contents have changed, segments are cleared out
|
||||
// so hide the expander and determine if we need it
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ protected:
|
|||
|
||||
// adds or removes "More" link as needed
|
||||
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
|
||||
/*virtual*/ void setText(const LLStringExplicit& text);
|
||||
/*virtual*/ void setText(const LLStringExplicit& text, const LLStyle::Params& input_params = LLStyle::Params());
|
||||
|
||||
/**
|
||||
* Returns difference between text box height and text height.
|
||||
|
|
|
|||
|
|
@ -463,7 +463,7 @@ void LLIMFloater::updateMessages()
|
|||
|
||||
if (messages.size())
|
||||
{
|
||||
LLUIColor chat_color = LLUIColorTable::instance().getColor("IMChatColor");
|
||||
// LLUIColor chat_color = LLUIColorTable::instance().getColor("IMChatColor");
|
||||
|
||||
std::ostringstream message;
|
||||
std::list<LLSD>::const_reverse_iterator iter = messages.rbegin();
|
||||
|
|
@ -476,32 +476,12 @@ void LLIMFloater::updateMessages()
|
|||
LLUUID from_id = msg["from_id"].asUUID();
|
||||
std::string from = from_id != gAgentID ? msg["from"].asString() : LLTrans::getString("You");
|
||||
std::string message = msg["message"].asString();
|
||||
LLStyle::Params style_params;
|
||||
style_params.color(chat_color);
|
||||
|
||||
LLChat chat;
|
||||
chat.mFromID = from_id;
|
||||
chat.mFromName = from;
|
||||
|
||||
//Handle IRC styled /me messages.
|
||||
std::string prefix = message.substr(0, 4);
|
||||
if (prefix == "/me " || prefix == "/me'")
|
||||
{
|
||||
if (from.size() > 0)
|
||||
{
|
||||
style_params.font.style = "ITALIC";
|
||||
chat.mText = from + " ";
|
||||
mChatHistory->appendWidgetMessage(chat, style_params);
|
||||
}
|
||||
message = message.substr(3);
|
||||
style_params.font.style = "UNDERLINE";
|
||||
mChatHistory->appendText(message, FALSE, style_params);
|
||||
}
|
||||
else
|
||||
{
|
||||
chat.mText = message;
|
||||
mChatHistory->appendWidgetMessage(chat, style_params);
|
||||
}
|
||||
mChatHistory->appendWidgetMessage(chat);
|
||||
|
||||
mLastMessageIndex = msg["index"].asInteger();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ BOOL LLInventoryPanel::postBuild()
|
|||
p.name = getName();
|
||||
p.rect = folder_rect;
|
||||
p.parent_panel = this;
|
||||
p.tool_tip = p.name;
|
||||
mFolders = LLUICtrlFactory::create<LLFolderView>(p);
|
||||
mFolders->setAllowMultiSelect(mAllowMultiSelect);
|
||||
}
|
||||
|
|
@ -492,6 +493,7 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)
|
|||
p.icon = new_listener->getIcon();
|
||||
p.root = mFolders;
|
||||
p.listener = new_listener;
|
||||
p.tool_tip = p.name;
|
||||
LLFolderViewFolder* folderp = LLUICtrlFactory::create<LLFolderViewFolder>(p);
|
||||
|
||||
folderp->setItemSortOrder(mFolders->getSortOrder());
|
||||
|
|
@ -518,6 +520,7 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)
|
|||
params.root(mFolders);
|
||||
params.listener(new_listener);
|
||||
params.rect(LLRect (0, 0, 0, 0));
|
||||
params.tool_tip = params.name;
|
||||
itemp = LLUICtrlFactory::create<LLFolderViewItem> (params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,120 +132,31 @@ void LLNearbyChat::applySavedVariables()
|
|||
}
|
||||
}
|
||||
|
||||
LLColor4 nearbychat_get_text_color(const LLChat& chat)
|
||||
{
|
||||
LLColor4 text_color;
|
||||
|
||||
if(chat.mMuted)
|
||||
{
|
||||
text_color.setVec(0.8f, 0.8f, 0.8f, 1.f);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(chat.mSourceType)
|
||||
{
|
||||
case CHAT_SOURCE_SYSTEM:
|
||||
text_color = LLUIColorTable::instance().getColor("SystemChatColor");
|
||||
break;
|
||||
case CHAT_SOURCE_AGENT:
|
||||
if (chat.mFromID.isNull())
|
||||
{
|
||||
text_color = LLUIColorTable::instance().getColor("SystemChatColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(gAgentID == chat.mFromID)
|
||||
{
|
||||
text_color = LLUIColorTable::instance().getColor("UserChatColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
text_color = LLUIColorTable::instance().getColor("AgentChatColor");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CHAT_SOURCE_OBJECT:
|
||||
if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
|
||||
{
|
||||
text_color = LLUIColorTable::instance().getColor("ScriptErrorColor");
|
||||
}
|
||||
else if ( chat.mChatType == CHAT_TYPE_OWNER )
|
||||
{
|
||||
text_color = LLUIColorTable::instance().getColor("llOwnerSayChatColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
text_color = LLUIColorTable::instance().getColor("ObjectChatColor");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
text_color.setToWhite();
|
||||
}
|
||||
|
||||
if (!chat.mPosAgent.isExactlyZero())
|
||||
{
|
||||
LLVector3 pos_agent = gAgent.getPositionAgent();
|
||||
F32 distance = dist_vec(pos_agent, chat.mPosAgent);
|
||||
if (distance > gAgent.getNearChatRadius())
|
||||
{
|
||||
// diminish far-off chat
|
||||
text_color.mV[VALPHA] = 0.8f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return text_color;
|
||||
}
|
||||
|
||||
void LLNearbyChat::add_timestamped_line(const LLChat& chat, const LLColor4& color)
|
||||
{
|
||||
S32 font_size = gSavedSettings.getS32("ChatFontSize");
|
||||
|
||||
const LLFontGL* fontp = NULL;
|
||||
switch(font_size)
|
||||
{
|
||||
case 0:
|
||||
fontp = LLFontGL::getFontSansSerifSmall();
|
||||
break;
|
||||
default:
|
||||
case 1:
|
||||
fontp = LLFontGL::getFontSansSerif();
|
||||
break;
|
||||
case 2:
|
||||
fontp = LLFontGL::getFontSansSerifBig();
|
||||
break;
|
||||
}
|
||||
|
||||
LLStyle::Params style_params;
|
||||
style_params.color(color);
|
||||
style_params.font(fontp);
|
||||
LLUUID uuid = chat.mFromID;
|
||||
std::string from = chat.mFromName;
|
||||
std::string message = chat.mText;
|
||||
mChatHistory->appendWidgetMessage(chat, style_params);
|
||||
}
|
||||
|
||||
void LLNearbyChat::addMessage(const LLChat& chat)
|
||||
{
|
||||
LLColor4 color = nearbychat_get_text_color(chat);
|
||||
|
||||
if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
|
||||
{
|
||||
if(gSavedSettings.getBOOL("ShowScriptErrors") == FALSE)
|
||||
return;
|
||||
if (gSavedSettings.getS32("ShowScriptErrorsLocation")== 1)// show error in window //("ScriptErrorsAsChat"))
|
||||
{
|
||||
|
||||
LLColor4 txt_color;
|
||||
|
||||
LLViewerChat::getChatColor(chat,txt_color);
|
||||
|
||||
LLFloaterScriptDebug::addScriptLine(chat.mText,
|
||||
chat.mFromName,
|
||||
color,
|
||||
txt_color,
|
||||
chat.mFromID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// could flash the chat button in the status bar here. JC
|
||||
if (!chat.mMuted)
|
||||
add_timestamped_line(chat, color);
|
||||
{
|
||||
mChatHistory->appendWidgetMessage(chat);
|
||||
}
|
||||
}
|
||||
|
||||
void LLNearbyChat::onNearbySpeakers()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
#include "lldockablefloater.h"
|
||||
#include "llscrollbar.h"
|
||||
#include "llchat.h"
|
||||
#include "llviewerchat.h"
|
||||
|
||||
class LLResizeBar;
|
||||
class LLChatHistory;
|
||||
|
|
@ -47,8 +47,7 @@ public:
|
|||
~LLNearbyChat();
|
||||
|
||||
BOOL postBuild ();
|
||||
void addMessage (const LLChat& message);
|
||||
|
||||
void addMessage (const LLChat& message);
|
||||
void onNearbyChatContextMenuItemClicked(const LLSD& userdata);
|
||||
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
|
||||
|
||||
|
|
@ -64,7 +63,6 @@ private:
|
|||
void getAllowedRect (LLRect& rect);
|
||||
|
||||
void onNearbySpeakers ();
|
||||
void add_timestamped_line(const LLChat& chat, const LLColor4& color);
|
||||
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -351,7 +351,14 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
|
|||
notification["time"] = chat_msg.mTime;
|
||||
notification["source"] = (S32)chat_msg.mSourceType;
|
||||
notification["chat_type"] = (S32)chat_msg.mChatType;
|
||||
|
||||
|
||||
std::string r_color_name = "White";
|
||||
F32 r_color_alpha = 1.0f;
|
||||
LLViewerChat::getChatColor( chat_msg, r_color_name, r_color_alpha);
|
||||
|
||||
notification["text_color"] = r_color_name;
|
||||
notification["color_alpha"] = r_color_alpha;
|
||||
notification["font_size"] = (S32)LLViewerChat::getChatFontSize() ;
|
||||
channel->addNotification(notification);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ bool LLTipHandler::processNotification(const LLSD& notify)
|
|||
if(nearby_chat)
|
||||
{
|
||||
LLChat chat_msg(notification->getMessage());
|
||||
chat_msg.mSourceType = CHAT_SOURCE_SYSTEM;
|
||||
nearby_chat->addMessage(chat_msg);
|
||||
|
||||
// don't show toast if Nearby Chat is opened
|
||||
|
|
|
|||
|
|
@ -1570,6 +1570,7 @@ void LLPanelObjectInventory::reset()
|
|||
p.name = "task inventory";
|
||||
p.task_id = getTaskUUID();
|
||||
p.parent_panel = this;
|
||||
p.tool_tip= p.name;
|
||||
mFolders = LLUICtrlFactory::create<LLFolderView>(p);
|
||||
// this ensures that we never say "searching..." or "no items found"
|
||||
mFolders->getFilter()->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS);
|
||||
|
|
@ -1711,6 +1712,7 @@ void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root
|
|||
p.icon_open = LLUI::getUIImage("Inv_FolderOpen");
|
||||
p.root = mFolders;
|
||||
p.listener = bridge;
|
||||
p.tool_tip = p.name;
|
||||
new_folder = LLUICtrlFactory::create<LLFolderViewFolder>(p);
|
||||
new_folder->addToFolder(mFolders, mFolders);
|
||||
new_folder->toggleOpen();
|
||||
|
|
@ -1751,6 +1753,7 @@ void LLPanelObjectInventory::createViewsForCategory(InventoryObjectList* invento
|
|||
p.icon_open = LLUI::getUIImage("Inv_FolderOpen");
|
||||
p.root = mFolders;
|
||||
p.listener = bridge;
|
||||
p.tool_tip = p.name;
|
||||
view = LLUICtrlFactory::create<LLFolderViewFolder>(p);
|
||||
child_categories.put(new obj_folder_pair(obj,
|
||||
(LLFolderViewFolder*)view));
|
||||
|
|
@ -1764,6 +1767,7 @@ void LLPanelObjectInventory::createViewsForCategory(InventoryObjectList* invento
|
|||
params.root(mFolders);
|
||||
params.listener(bridge);
|
||||
params.rect(LLRect());
|
||||
params.tool_tip = params.name;
|
||||
view = LLUICtrlFactory::create<LLFolderViewItem> (params);
|
||||
}
|
||||
view->addToFolder(folder, mFolders);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,203 @@
|
|||
/**
|
||||
* @file llviewerchat.cpp
|
||||
* @brief Builds menus out of items.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2002-2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
#include "llviewerchat.h"
|
||||
|
||||
// newview includes
|
||||
#include "llagent.h" // gAgent
|
||||
#include "lluicolortable.h"
|
||||
#include "llviewercontrol.h" // gSavedSettings
|
||||
|
||||
// LLViewerChat
|
||||
|
||||
//static
|
||||
void LLViewerChat::getChatColor(const LLChat& chat, LLColor4& r_color)
|
||||
{
|
||||
if(chat.mMuted)
|
||||
{
|
||||
r_color= LLUIColorTable::instance().getColor("LtGray");
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(chat.mSourceType)
|
||||
{
|
||||
case CHAT_SOURCE_SYSTEM:
|
||||
r_color = LLUIColorTable::instance().getColor("SystemChatColor");
|
||||
break;
|
||||
case CHAT_SOURCE_AGENT:
|
||||
if (chat.mFromID.isNull())
|
||||
{
|
||||
r_color = LLUIColorTable::instance().getColor("SystemChatColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(gAgentID == chat.mFromID)
|
||||
{
|
||||
r_color = LLUIColorTable::instance().getColor("UserChatColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
r_color = LLUIColorTable::instance().getColor("AgentChatColor");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CHAT_SOURCE_OBJECT:
|
||||
if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
|
||||
{
|
||||
r_color = LLUIColorTable::instance().getColor("ScriptErrorColor");
|
||||
}
|
||||
else if ( chat.mChatType == CHAT_TYPE_OWNER )
|
||||
{
|
||||
r_color = LLUIColorTable::instance().getColor("llOwnerSayChatColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
r_color = LLUIColorTable::instance().getColor("ObjectChatColor");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
r_color.setToWhite();
|
||||
}
|
||||
|
||||
if (!chat.mPosAgent.isExactlyZero())
|
||||
{
|
||||
LLVector3 pos_agent = gAgent.getPositionAgent();
|
||||
F32 distance = dist_vec(pos_agent, chat.mPosAgent);
|
||||
if (distance > gAgent.getNearChatRadius())
|
||||
{
|
||||
// diminish far-off chat
|
||||
r_color.mV[VALPHA] = 0.8f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//static
|
||||
void LLViewerChat::getChatColor(const LLChat& chat, std::string& r_color_name, F32& r_color_alpha)
|
||||
{
|
||||
if(chat.mMuted)
|
||||
{
|
||||
r_color_name = "LtGray";
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(chat.mSourceType)
|
||||
{
|
||||
case CHAT_SOURCE_SYSTEM:
|
||||
r_color_name = "SystemChatColor";
|
||||
break;
|
||||
|
||||
case CHAT_SOURCE_AGENT:
|
||||
if (chat.mFromID.isNull())
|
||||
{
|
||||
r_color_name = "SystemChatColor";
|
||||
}
|
||||
else
|
||||
{
|
||||
if(gAgentID == chat.mFromID)
|
||||
{
|
||||
r_color_name = "UserChatColor";
|
||||
}
|
||||
else
|
||||
{
|
||||
r_color_name = "AgentChatColor";
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CHAT_SOURCE_OBJECT:
|
||||
if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
|
||||
{
|
||||
r_color_name = "ScriptErrorColor";
|
||||
}
|
||||
else if ( chat.mChatType == CHAT_TYPE_OWNER )
|
||||
{
|
||||
r_color_name = "llOwnerSayChatColor";
|
||||
}
|
||||
else
|
||||
{
|
||||
r_color_name = "ObjectChatColor";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
r_color_name = "White";
|
||||
}
|
||||
|
||||
if (!chat.mPosAgent.isExactlyZero())
|
||||
{
|
||||
LLVector3 pos_agent = gAgent.getPositionAgent();
|
||||
F32 distance = dist_vec(pos_agent, chat.mPosAgent);
|
||||
if (distance > gAgent.getNearChatRadius())
|
||||
{
|
||||
// diminish far-off chat
|
||||
r_color_alpha = 0.8f;
|
||||
}
|
||||
else
|
||||
{
|
||||
r_color_alpha = 1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//static
|
||||
LLFontGL* LLViewerChat::getChatFont()
|
||||
{
|
||||
S32 font_size = gSavedSettings.getS32("ChatFontSize");
|
||||
LLFontGL* fontp = NULL;
|
||||
switch(font_size)
|
||||
{
|
||||
case 0:
|
||||
fontp = LLFontGL::getFontSansSerifSmall();
|
||||
break;
|
||||
default:
|
||||
case 1:
|
||||
fontp = LLFontGL::getFontSansSerif();
|
||||
break;
|
||||
case 2:
|
||||
fontp = LLFontGL::getFontSansSerifBig();
|
||||
break;
|
||||
}
|
||||
|
||||
return fontp;
|
||||
|
||||
}
|
||||
|
||||
//static
|
||||
S32 LLViewerChat::getChatFontSize()
|
||||
{
|
||||
return gSavedSettings.getS32("ChatFontSize");
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
/**
|
||||
* @file llviewerchat.h
|
||||
* @brief wrapper of LLChat in viewer
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2002-2009, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLVIEWERCHAT_H
|
||||
#define LL_LLVIEWERCHAT_H
|
||||
|
||||
#include "llchat.h"
|
||||
#include "llfontgl.h"
|
||||
#include "v4color.h"
|
||||
|
||||
|
||||
class LLViewerChat
|
||||
{
|
||||
public:
|
||||
static void getChatColor(const LLChat& chat, LLColor4& r_color);
|
||||
static void getChatColor(const LLChat& chat, std::string& r_color_name, F32& r_color_alpha);
|
||||
static LLFontGL* getChatFont();
|
||||
static S32 getChatFontSize();
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
#include "llfloaterbump.h"
|
||||
#include "llassetstorage.h"
|
||||
#include "llcachename.h"
|
||||
#include "llchat.h"
|
||||
|
||||
#include "lldbstrings.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llfilepicker.h"
|
||||
|
|
@ -115,6 +115,7 @@
|
|||
#include "llui.h" // for make_ui_sound
|
||||
#include "lluploaddialog.h"
|
||||
#include "llviewercamera.h"
|
||||
#include "llviewerchat.h"
|
||||
#include "llviewergenericmessage.h"
|
||||
#include "llviewerinventory.h"
|
||||
#include "llviewermenu.h"
|
||||
|
|
@ -2248,7 +2249,7 @@ void process_decline_callingcard(LLMessageSystem* msg, void**)
|
|||
|
||||
void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
||||
{
|
||||
LLChat chat;
|
||||
LLChat chat;
|
||||
std::string mesg;
|
||||
std::string from_name;
|
||||
U8 source_temp;
|
||||
|
|
@ -2848,7 +2849,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
|
|||
// Chat the "back" SLURL. (DEV-4907)
|
||||
LLChat chat("Teleport completed from " + gAgent.getTeleportSourceSLURL());
|
||||
chat.mSourceType = CHAT_SOURCE_SYSTEM;
|
||||
LLFloaterChat::addChatHistory(chat);
|
||||
LLFloaterChat::addChatHistory(chat);
|
||||
|
||||
// Set the new position
|
||||
avatarp->setPositionAgent(agent_pos);
|
||||
|
|
@ -4620,7 +4621,7 @@ void notify_cautioned_script_question(const LLSD& notification, const LLSD& resp
|
|||
if (caution)
|
||||
{
|
||||
LLChat chat(notice.getString());
|
||||
LLFloaterChat::addChat(chat, FALSE, FALSE);
|
||||
// LLFloaterChat::addChat(chat, FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue