diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llnamebox.cpp |
Print done when done.
Diffstat (limited to 'indra/newview/llnamebox.cpp')
-rw-r--r-- | indra/newview/llnamebox.cpp | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp new file mode 100644 index 0000000000..8782f529f1 --- /dev/null +++ b/indra/newview/llnamebox.cpp @@ -0,0 +1,102 @@ +/** + * @file llnamebox.cpp + * @brief A text display widget + * + * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llnamebox.h" + +#include "llerror.h" +#include "llfontgl.h" +#include "llui.h" +#include "llviewercontrol.h" +#include "lluuid.h" + +#include "llcachename.h" +#include "llagent.h" + +// statics +std::set<LLNameBox*> LLNameBox::sInstances; + + +LLNameBox::LLNameBox(const std::string& name, const LLRect& rect, const LLUUID& name_id, BOOL is_group, const LLFontGL* font, BOOL mouse_opaque) +: LLTextBox(name, rect, "(retrieving)", font, mouse_opaque), + mNameID(name_id) +{ + LLNameBox::sInstances.insert(this); + if(!name_id.isNull()) + { + setNameID(name_id, is_group); + } + else + { + setText(""); + } +} + +LLNameBox::~LLNameBox() +{ + LLNameBox::sInstances.erase(this); +} + +void LLNameBox::setNameID(const LLUUID& name_id, BOOL is_group) +{ + mNameID = name_id; + + char first[DB_FIRST_NAME_BUF_SIZE]; + char last[DB_LAST_NAME_BUF_SIZE]; + char group_name[DB_GROUP_NAME_BUF_SIZE]; + LLString name; + + if (!is_group) + { + gCacheName->getName(name_id, first, last); + + name.assign(first); + name.append(1, ' '); + name.append(last); + } + else + { + gCacheName->getGroupName(name_id, group_name); + + name.assign(group_name); + } + + setText(name); +} + +void LLNameBox::refresh(const LLUUID& id, const char* firstname, + const char* lastname, BOOL is_group) +{ + if (id == mNameID) + { + LLString name; + + name.assign(firstname); + if (!is_group) + { + name.append(1, ' '); + name.append(lastname); + } + + setText(name); + } +} + +void LLNameBox::refreshAll(const LLUUID& id, const char* firstname, + const char* lastname, BOOL is_group) +{ + std::set<LLNameBox*>::iterator it; + for (it = LLNameBox::sInstances.begin(); + it != LLNameBox::sInstances.end(); + ++it) + { + LLNameBox* box = *it; + box->refresh(id, firstname, lastname, is_group); + } +} |