EXP-1576 FIXED (Remove old profile window from People panel)

- Removed old profile window from People panel with all subpanels and dependencies
master
Paul ProductEngine 2011-11-18 19:32:58 +02:00
parent f78dcdf2c4
commit df7f4f60b6
57 changed files with 3 additions and 4378 deletions

View File

@ -393,7 +393,6 @@ set(viewer_SOURCE_FILES
llpanelplacestab.cpp
llpanelprimmediacontrols.cpp
llpanelprofile.cpp
llpanelprofileview.cpp
llpanelsnapshot.cpp
llpanelsnapshotinventory.cpp
llpanelsnapshotlocal.cpp
@ -960,7 +959,6 @@ set(viewer_HEADER_FILES
llpanelplacestab.h
llpanelprimmediacontrols.h
llpanelprofile.h
llpanelprofileview.h
llpanelsnapshot.h
llpanelteleporthistory.h
llpaneltiptoast.h

View File

@ -120,269 +120,6 @@ BOOL LLDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
static LLDefaultChildRegistry::Register<LLDropTarget> r("drop_target");
static LLRegisterPanelClassWrapper<LLPanelAvatarProfile> t_panel_profile("panel_profile");
static LLRegisterPanelClassWrapper<LLPanelMyProfile> t_panel_my_profile("panel_my_profile");
static LLRegisterPanelClassWrapper<LLPanelAvatarNotes> t_panel_notes("panel_notes");
//-----------------------------------------------------------------------------
// LLPanelAvatarNotes()
//-----------------------------------------------------------------------------
LLPanelAvatarNotes::LLPanelAvatarNotes()
: LLPanelProfileTab()
{
}
void LLPanelAvatarNotes::updateData()
{
LLAvatarPropertiesProcessor::getInstance()->
sendAvatarNotesRequest(getAvatarId());
}
BOOL LLPanelAvatarNotes::postBuild()
{
childSetCommitCallback("status_check", boost::bind(&LLPanelAvatarNotes::onCommitRights, this), NULL);
childSetCommitCallback("map_check", boost::bind(&LLPanelAvatarNotes::onCommitRights, this), NULL);
childSetCommitCallback("objects_check", boost::bind(&LLPanelAvatarNotes::onCommitRights, this), NULL);
childSetCommitCallback("add_friend", boost::bind(&LLPanelAvatarNotes::onAddFriendButtonClick, this),NULL);
childSetCommitCallback("im", boost::bind(&LLPanelAvatarNotes::onIMButtonClick, this), NULL);
childSetCommitCallback("call", boost::bind(&LLPanelAvatarNotes::onCallButtonClick, this), NULL);
childSetCommitCallback("teleport", boost::bind(&LLPanelAvatarNotes::onTeleportButtonClick, this), NULL);
childSetCommitCallback("share", boost::bind(&LLPanelAvatarNotes::onShareButtonClick, this), NULL);
childSetCommitCallback("show_on_map_btn", (boost::bind(
&LLPanelAvatarNotes::onMapButtonClick, this)), NULL);
LLTextEditor* te = getChild<LLTextEditor>("notes_edit");
te->setCommitCallback(boost::bind(&LLPanelAvatarNotes::onCommitNotes,this));
te->setCommitOnFocusLost(TRUE);
resetControls();
resetData();
LLVoiceClient::getInstance()->addObserver((LLVoiceClientStatusObserver*)this);
return TRUE;
}
void LLPanelAvatarNotes::onOpen(const LLSD& key)
{
LLPanelProfileTab::onOpen(key);
fillRightsData();
//Disable "Add Friend" button for friends.
getChildView("add_friend")->setEnabled(!LLAvatarActions::isFriend(getAvatarId()));
}
void LLPanelAvatarNotes::fillRightsData()
{
getChild<LLUICtrl>("status_check")->setValue(FALSE);
getChild<LLUICtrl>("map_check")->setValue(FALSE);
getChild<LLUICtrl>("objects_check")->setValue(FALSE);
const LLRelationship* relation = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
// If true - we are viewing friend's profile, enable check boxes and set values.
if(relation)
{
S32 rights = relation->getRightsGrantedTo();
getChild<LLUICtrl>("status_check")->setValue(LLRelationship::GRANT_ONLINE_STATUS & rights ? TRUE : FALSE);
getChild<LLUICtrl>("map_check")->setValue(LLRelationship::GRANT_MAP_LOCATION & rights ? TRUE : FALSE);
getChild<LLUICtrl>("objects_check")->setValue(LLRelationship::GRANT_MODIFY_OBJECTS & rights ? TRUE : FALSE);
}
enableCheckboxes(NULL != relation);
}
void LLPanelAvatarNotes::onCommitNotes()
{
std::string notes = getChild<LLUICtrl>("notes_edit")->getValue().asString();
LLAvatarPropertiesProcessor::getInstance()-> sendNotes(getAvatarId(),notes);
}
void LLPanelAvatarNotes::rightsConfirmationCallback(const LLSD& notification,
const LLSD& response, S32 rights)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option == 0)
{
LLAvatarPropertiesProcessor::getInstance()->sendFriendRights(
getAvatarId(), rights);
}
else
{
getChild<LLUICtrl>("objects_check")->setValue(
getChild<LLUICtrl>("objects_check")->getValue().asBoolean() ? FALSE : TRUE);
}
}
void LLPanelAvatarNotes::confirmModifyRights(bool grant, S32 rights)
{
LLSD args;
args["NAME"] = LLSLURL("agent", getAvatarId(), "displayname").getSLURLString();
if (grant)
{
LLNotificationsUtil::add("GrantModifyRights", args, LLSD(),
boost::bind(&LLPanelAvatarNotes::rightsConfirmationCallback, this,
_1, _2, rights));
}
else
{
LLNotificationsUtil::add("RevokeModifyRights", args, LLSD(),
boost::bind(&LLPanelAvatarNotes::rightsConfirmationCallback, this,
_1, _2, rights));
}
}
void LLPanelAvatarNotes::onCommitRights()
{
const LLRelationship* buddy_relationship =
LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
if (NULL == buddy_relationship)
{
// Lets have a warning log message instead of having a crash. EXT-4947.
llwarns << "Trying to modify rights for non-friend avatar. Skipped." << llendl;
return;
}
S32 rights = 0;
if(getChild<LLUICtrl>("status_check")->getValue().asBoolean())
rights |= LLRelationship::GRANT_ONLINE_STATUS;
if(getChild<LLUICtrl>("map_check")->getValue().asBoolean())
rights |= LLRelationship::GRANT_MAP_LOCATION;
if(getChild<LLUICtrl>("objects_check")->getValue().asBoolean())
rights |= LLRelationship::GRANT_MODIFY_OBJECTS;
bool allow_modify_objects = getChild<LLUICtrl>("objects_check")->getValue().asBoolean();
// if modify objects checkbox clicked
if (buddy_relationship->isRightGrantedTo(
LLRelationship::GRANT_MODIFY_OBJECTS) != allow_modify_objects)
{
confirmModifyRights(allow_modify_objects, rights);
}
// only one checkbox can trigger commit, so store the rest of rights
else
{
LLAvatarPropertiesProcessor::getInstance()->sendFriendRights(
getAvatarId(), rights);
}
}
void LLPanelAvatarNotes::processProperties(void* data, EAvatarProcessorType type)
{
if(APT_NOTES == type)
{
LLAvatarNotes* avatar_notes = static_cast<LLAvatarNotes*>(data);
if(avatar_notes && getAvatarId() == avatar_notes->target_id)
{
getChild<LLUICtrl>("notes_edit")->setValue(avatar_notes->notes);
getChildView("notes edit")->setEnabled(true);
LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
}
}
void LLPanelAvatarNotes::resetData()
{
getChild<LLUICtrl>("notes_edit")->setValue(LLStringUtil::null);
// Default value is TRUE
getChild<LLUICtrl>("status_check")->setValue(TRUE);
}
void LLPanelAvatarNotes::resetControls()
{
//Disable "Add Friend" button for friends.
getChildView("add_friend")->setEnabled(TRUE);
enableCheckboxes(false);
}
void LLPanelAvatarNotes::onAddFriendButtonClick()
{
LLAvatarActions::requestFriendshipDialog(getAvatarId());
}
void LLPanelAvatarNotes::onIMButtonClick()
{
LLAvatarActions::startIM(getAvatarId());
}
void LLPanelAvatarNotes::onTeleportButtonClick()
{
LLAvatarActions::offerTeleport(getAvatarId());
}
void LLPanelAvatarNotes::onCallButtonClick()
{
LLAvatarActions::startCall(getAvatarId());
}
void LLPanelAvatarNotes::onShareButtonClick()
{
//*TODO not implemented.
}
void LLPanelAvatarNotes::enableCheckboxes(bool enable)
{
getChildView("status_check")->setEnabled(enable);
getChildView("map_check")->setEnabled(enable);
getChildView("objects_check")->setEnabled(enable);
}
LLPanelAvatarNotes::~LLPanelAvatarNotes()
{
if(getAvatarId().notNull())
{
LLAvatarTracker::instance().removeParticularFriendObserver(getAvatarId(), this);
}
if(LLVoiceClient::instanceExists())
{
LLVoiceClient::getInstance()->removeObserver((LLVoiceClientStatusObserver*)this);
}
}
// virtual, called by LLAvatarTracker
void LLPanelAvatarNotes::changed(U32 mask)
{
getChildView("teleport")->setEnabled(LLAvatarTracker::instance().isBuddyOnline(getAvatarId()));
// update rights to avoid have checkboxes enabled when friendship is terminated. EXT-4947.
fillRightsData();
}
// virtual
void LLPanelAvatarNotes::onChange(EStatusType status, const std::string &channelURI, bool proximal)
{
if(status == STATUS_JOINING || status == STATUS_LEFT_CHANNEL)
{
return;
}
getChildView("call")->setEnabled(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking());
}
void LLPanelAvatarNotes::setAvatarId(const LLUUID& id)
{
if(id.notNull())
{
if(getAvatarId().notNull())
{
LLAvatarTracker::instance().removeParticularFriendObserver(getAvatarId(), this);
}
LLPanelProfileTab::setAvatarId(id);
LLAvatarTracker::instance().addParticularFriendObserver(getAvatarId(), this);
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
@ -461,449 +198,3 @@ void LLPanelProfileTab::updateButtons()
|| gAgent.isGodlike();
getChildView("show_on_map_btn")->setEnabled(enable_map_btn);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
bool enable_god()
{
return gAgent.isGodlike();
}
LLPanelAvatarProfile::LLPanelAvatarProfile()
: LLPanelProfileTab()
{
}
BOOL LLPanelAvatarProfile::postBuild()
{
childSetCommitCallback("see_profile_btn",(boost::bind(&LLPanelAvatarProfile::onSeeProfileBtnClick,this)),NULL);
childSetCommitCallback("add_friend",(boost::bind(&LLPanelAvatarProfile::onAddFriendButtonClick,this)),NULL);
childSetCommitCallback("im",(boost::bind(&LLPanelAvatarProfile::onIMButtonClick,this)),NULL);
childSetCommitCallback("call",(boost::bind(&LLPanelAvatarProfile::onCallButtonClick,this)),NULL);
childSetCommitCallback("teleport",(boost::bind(&LLPanelAvatarProfile::onTeleportButtonClick,this)),NULL);
childSetCommitCallback("share",(boost::bind(&LLPanelAvatarProfile::onShareButtonClick,this)),NULL);
childSetCommitCallback("show_on_map_btn", (boost::bind(
&LLPanelAvatarProfile::onMapButtonClick, this)), NULL);
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("Profile.ShowOnMap", boost::bind(&LLPanelAvatarProfile::onMapButtonClick, this));
registrar.add("Profile.Pay", boost::bind(&LLPanelAvatarProfile::pay, this));
registrar.add("Profile.Share", boost::bind(&LLPanelAvatarProfile::share, this));
registrar.add("Profile.BlockUnblock", boost::bind(&LLPanelAvatarProfile::toggleBlock, this));
registrar.add("Profile.Kick", boost::bind(&LLPanelAvatarProfile::kick, this));
registrar.add("Profile.Freeze", boost::bind(&LLPanelAvatarProfile::freeze, this));
registrar.add("Profile.Unfreeze", boost::bind(&LLPanelAvatarProfile::unfreeze, this));
registrar.add("Profile.CSR", boost::bind(&LLPanelAvatarProfile::csr, this));
LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable;
enable.add("Profile.EnableShowOnMap", boost::bind(&LLPanelAvatarProfile::enableShowOnMap, this));
enable.add("Profile.EnableGod", boost::bind(&enable_god));
enable.add("Profile.EnableBlock", boost::bind(&LLPanelAvatarProfile::enableBlock, this));
enable.add("Profile.EnableUnblock", boost::bind(&LLPanelAvatarProfile::enableUnblock, this));
LLToggleableMenu* profile_menu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
getChild<LLMenuButton>("overflow_btn")->setMenu(profile_menu, LLMenuButton::MP_TOP_RIGHT);
LLVoiceClient::getInstance()->addObserver((LLVoiceClientStatusObserver*)this);
resetControls();
resetData();
return TRUE;
}
void LLPanelAvatarProfile::onOpen(const LLSD& key)
{
LLPanelProfileTab::onOpen(key);
mGroups.clear();
//Disable "Add Friend" button for friends.
getChildView("add_friend")->setEnabled(!LLAvatarActions::isFriend(getAvatarId()));
}
void LLPanelAvatarProfile::updateData()
{
if (getAvatarId().notNull())
{
LLAvatarPropertiesProcessor::getInstance()->
sendAvatarPropertiesRequest(getAvatarId());
LLAvatarPropertiesProcessor::getInstance()->
sendAvatarGroupsRequest(getAvatarId());
}
}
void LLPanelAvatarProfile::resetControls()
{
getChildView("status_panel")->setVisible( true);
getChildView("profile_buttons_panel")->setVisible( true);
getChildView("title_groups_text")->setVisible( true);
getChildView("sl_groups")->setVisible( true);
getChildView("add_friend")->setEnabled(true);
getChildView("status_me_panel")->setVisible( false);
getChildView("profile_me_buttons_panel")->setVisible( false);
getChildView("account_actions_panel")->setVisible( false);
}
void LLPanelAvatarProfile::resetData()
{
mGroups.clear();
getChild<LLUICtrl>("2nd_life_pic")->setValue(LLUUID::null);
getChild<LLUICtrl>("real_world_pic")->setValue(LLUUID::null);
getChild<LLUICtrl>("online_status")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("status_message")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("sl_description_edit")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("fl_description_edit")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("sl_groups")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("homepage_edit")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("register_date")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("acc_status_text")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("partner_text")->setValue(LLStringUtil::null);
}
void LLPanelAvatarProfile::processProperties(void* data, EAvatarProcessorType type)
{
if(APT_PROPERTIES == type)
{
const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
if(avatar_data && getAvatarId() == avatar_data->avatar_id)
{
processProfileProperties(avatar_data);
}
}
else if(APT_GROUPS == type)
{
LLAvatarGroups* avatar_groups = static_cast<LLAvatarGroups*>(data);
if(avatar_groups && getAvatarId() == avatar_groups->avatar_id)
{
processGroupProperties(avatar_groups);
}
}
}
void LLPanelAvatarProfile::processProfileProperties(const LLAvatarData* avatar_data)
{
fillCommonData(avatar_data);
fillPartnerData(avatar_data);
fillAccountStatus(avatar_data);
}
void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_groups)
{
// *NOTE dzaporozhan
// Group properties may arrive in two callbacks, we need to save them across
// different calls. We can't do that in textbox as textbox may change the text.
LLAvatarGroups::group_list_t::const_iterator it = avatar_groups->group_list.begin();
const LLAvatarGroups::group_list_t::const_iterator it_end = avatar_groups->group_list.end();
for(; it_end != it; ++it)
{
LLAvatarGroups::LLGroupData group_data = *it;
mGroups[group_data.group_name] = group_data.group_id;
}
// Creating string, containing group list
std::string groups = "";
for (group_map_t::iterator it = mGroups.begin(); it != mGroups.end(); ++it)
{
if (it != mGroups.begin())
groups += ", ";
std::string group_name = LLURI::escape(it->first);
std::string group_url= it->second.notNull()
? "[secondlife:///app/group/" + it->second.asString() + "/about " + group_name + "]"
: getString("no_group_text");
groups += group_url;
}
getChild<LLUICtrl>("sl_groups")->setValue(groups);
}
static void got_full_name_callback( LLHandle<LLPanel> profile_panel_handle, const std::string& full_name )
{
if (profile_panel_handle.isDead() ) return;
LLPanelAvatarProfile* profile_panel = dynamic_cast<LLPanelAvatarProfile*>(profile_panel_handle.get());
if ( ! profile_panel ) return;
LLStringUtil::format_map_t args;
std::string name;
if (LLAvatarNameCache::useDisplayNames())
{
name = LLCacheName::buildUsername(full_name);
}
else
{
name = full_name;
}
args["[NAME]"] = name;
std::string linden_name = profile_panel->getString("name_text_args", args);
profile_panel->getChild<LLUICtrl>("name_descr_text")->setValue(linden_name);
}
void LLPanelAvatarProfile::onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name)
{
LLStringUtil::format_map_t args;
args["[DISPLAY_NAME]"] = av_name.mDisplayName;
std::string display_name = getString("display_name_text_args", args);
getChild<LLUICtrl>("display_name_descr_text")->setValue(display_name);
}
void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
{
//remove avatar id from cache to get fresh info
LLAvatarIconIDCache::getInstance()->remove(avatar_data->avatar_id);
LLStringUtil::format_map_t args;
{
std::string birth_date = LLTrans::getString("AvatarBirthDateFormat");
LLStringUtil::format(birth_date, LLSD().with("datetime", (S32) avatar_data->born_on.secondsSinceEpoch()));
args["[REG_DATE]"] = birth_date;
}
// ask (asynchronously) for the avatar name
LLHandle<LLPanel> profile_panel_handle = getHandle();
std::string full_name;
if (gCacheName->getFullName(avatar_data->agent_id, full_name))
{
// name in cache, call callback directly
got_full_name_callback( profile_panel_handle, full_name );
}
else
{
// not in cache, lookup name
gCacheName->get(avatar_data->agent_id, false, boost::bind( got_full_name_callback, profile_panel_handle, _2 ));
}
// get display name
LLAvatarNameCache::get(avatar_data->avatar_id,
boost::bind(&LLPanelAvatarProfile::onNameCache, this, _1, _2));
args["[AGE]"] = LLDateUtil::ageFromDate( avatar_data->born_on, LLDate::now());
std::string register_date = getString("RegisterDateFormat", args);
getChild<LLUICtrl>("register_date")->setValue(register_date );
getChild<LLUICtrl>("sl_description_edit")->setValue(avatar_data->about_text);
getChild<LLUICtrl>("fl_description_edit")->setValue(avatar_data->fl_about_text);
getChild<LLUICtrl>("2nd_life_pic")->setValue(avatar_data->image_id);
getChild<LLUICtrl>("real_world_pic")->setValue(avatar_data->fl_image_id);
getChild<LLUICtrl>("homepage_edit")->setValue(avatar_data->profile_url);
// Hide home page textbox if no page was set to fix "homepage URL appears clickable without URL - EXT-4734"
getChildView("homepage_edit")->setVisible( !avatar_data->profile_url.empty());
}
void LLPanelAvatarProfile::fillPartnerData(const LLAvatarData* avatar_data)
{
LLTextBox* partner_text = getChild<LLTextBox>("partner_text");
if (avatar_data->partner_id.notNull())
{
partner_text->setText(LLSLURL("agent", avatar_data->partner_id, "inspect").getSLURLString());
}
else
{
partner_text->setText(getString("no_partner_text"));
}
}
void LLPanelAvatarProfile::fillAccountStatus(const LLAvatarData* avatar_data)
{
LLStringUtil::format_map_t args;
args["[ACCTTYPE]"] = LLAvatarPropertiesProcessor::accountType(avatar_data);
args["[PAYMENTINFO]"] = LLAvatarPropertiesProcessor::paymentInfo(avatar_data);
// *NOTE: AVATAR_AGEVERIFIED not currently getting set in
// dataserver/lldataavatar.cpp for privacy considerations
args["[AGEVERIFICATION]"] = "";
std::string caption_text = getString("CaptionTextAcctInfo", args);
getChild<LLUICtrl>("acc_status_text")->setValue(caption_text);
}
void LLPanelAvatarProfile::pay()
{
LLAvatarActions::pay(getAvatarId());
}
void LLPanelAvatarProfile::share()
{
LLAvatarActions::share(getAvatarId());
}
void LLPanelAvatarProfile::toggleBlock()
{
LLAvatarActions::toggleBlock(getAvatarId());
}
bool LLPanelAvatarProfile::enableShowOnMap()
{
bool is_buddy_online = LLAvatarTracker::instance().isBuddyOnline(getAvatarId());
bool enable_map_btn = (is_buddy_online && is_agent_mappable(getAvatarId()))
|| gAgent.isGodlike();
return enable_map_btn;
}
bool LLPanelAvatarProfile::enableBlock()
{
return LLAvatarActions::canBlock(getAvatarId()) && !LLAvatarActions::isBlocked(getAvatarId());
}
bool LLPanelAvatarProfile::enableUnblock()
{
return LLAvatarActions::isBlocked(getAvatarId());
}
void LLPanelAvatarProfile::kick()
{
LLAvatarActions::kick(getAvatarId());
}
void LLPanelAvatarProfile::freeze()
{
LLAvatarActions::freeze(getAvatarId());
}
void LLPanelAvatarProfile::unfreeze()
{
LLAvatarActions::unfreeze(getAvatarId());
}
void LLPanelAvatarProfile::csr()
{
std::string name;
gCacheName->getFullName(getAvatarId(), name);
LLAvatarActions::csr(getAvatarId(), name);
}
void LLPanelAvatarProfile::onAddFriendButtonClick()
{
LLAvatarActions::requestFriendshipDialog(getAvatarId());
}
void LLPanelAvatarProfile::onSeeProfileBtnClick()
{
LLAvatarActions::showProfile(getAvatarId());
}
void LLPanelAvatarProfile::onIMButtonClick()
{
LLAvatarActions::startIM(getAvatarId());
}
void LLPanelAvatarProfile::onTeleportButtonClick()
{
LLAvatarActions::offerTeleport(getAvatarId());
}
void LLPanelAvatarProfile::onCallButtonClick()
{
LLAvatarActions::startCall(getAvatarId());
}
void LLPanelAvatarProfile::onShareButtonClick()
{
//*TODO not implemented
}
LLPanelAvatarProfile::~LLPanelAvatarProfile()
{
if(getAvatarId().notNull())
{
LLAvatarTracker::instance().removeParticularFriendObserver(getAvatarId(), this);
}
if(LLVoiceClient::instanceExists())
{
LLVoiceClient::getInstance()->removeObserver((LLVoiceClientStatusObserver*)this);
}
}
// virtual, called by LLAvatarTracker
void LLPanelAvatarProfile::changed(U32 mask)
{
getChildView("teleport")->setEnabled(LLAvatarTracker::instance().isBuddyOnline(getAvatarId()));
}
// virtual
void LLPanelAvatarProfile::onChange(EStatusType status, const std::string &channelURI, bool proximal)
{
if(status == STATUS_JOINING || status == STATUS_LEFT_CHANNEL)
{
return;
}
getChildView("call")->setEnabled(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking());
}
void LLPanelAvatarProfile::setAvatarId(const LLUUID& id)
{
if(id.notNull())
{
if(getAvatarId().notNull())
{
LLAvatarTracker::instance().removeParticularFriendObserver(getAvatarId(), this);
}
LLPanelProfileTab::setAvatarId(id);
LLAvatarTracker::instance().addParticularFriendObserver(getAvatarId(), this);
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
LLPanelMyProfile::LLPanelMyProfile()
: LLPanelAvatarProfile()
{
}
BOOL LLPanelMyProfile::postBuild()
{
LLPanelAvatarProfile::postBuild();
childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelMyProfile::onStatusMessageChanged, this), NULL);
resetControls();
resetData();
return TRUE;
}
void LLPanelMyProfile::onOpen(const LLSD& key)
{
LLPanelProfileTab::onOpen(key);
}
void LLPanelMyProfile::processProfileProperties(const LLAvatarData* avatar_data)
{
fillCommonData(avatar_data);
fillPartnerData(avatar_data);
fillAccountStatus(avatar_data);
}
void LLPanelMyProfile::resetControls()
{
getChildView("status_panel")->setVisible( false);
getChildView("profile_buttons_panel")->setVisible( false);
getChildView("title_groups_text")->setVisible( false);
getChildView("sl_groups")->setVisible( false);
getChildView("status_me_panel")->setVisible( true);
getChildView("profile_me_buttons_panel")->setVisible( true);
}
void LLPanelMyProfile::onStatusMessageChanged()
{
updateData();
}

View File

@ -36,14 +36,8 @@
class LLComboBox;
class LLLineEditor;
enum EOnlineStatus
{
ONLINE_STATUS_NO = 0,
ONLINE_STATUS_YES = 1
};
/**
* Base class for any Profile View or My Profile Panel.
* Base class for any Profile View.
*/
class LLPanelProfileTab
: public LLPanel
@ -111,187 +105,4 @@ private:
LLUUID mAvatarId;
};
/**
* Panel for displaying Avatar's first and second life related info.
*/
class LLPanelAvatarProfile
: public LLPanelProfileTab
, public LLFriendObserver
, public LLVoiceClientStatusObserver
{
public:
LLPanelAvatarProfile();
/*virtual*/ ~LLPanelAvatarProfile();
/*virtual*/ void onOpen(const LLSD& key);
/**
* LLFriendObserver trigger
*/
virtual void changed(U32 mask);
// Implements LLVoiceClientStatusObserver::onChange() to enable the call
// button when voice is available
/*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal);
/*virtual*/ void setAvatarId(const LLUUID& id);
/**
* Processes data received from server.
*/
/*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
/*virtual*/ BOOL postBuild();
/*virtual*/ void updateData();
/*virtual*/ void resetControls();
/*virtual*/ void resetData();
protected:
/**
* Process profile related data received from server.
*/
virtual void processProfileProperties(const LLAvatarData* avatar_data);
/**
* Processes group related data received from server.
*/
virtual void processGroupProperties(const LLAvatarGroups* avatar_groups);
/**
* Fills common for Avatar profile and My Profile fields.
*/
virtual void fillCommonData(const LLAvatarData* avatar_data);
/**
* Fills partner data.
*/
virtual void fillPartnerData(const LLAvatarData* avatar_data);
/**
* Fills account status.
*/
virtual void fillAccountStatus(const LLAvatarData* avatar_data);
/**
* Opens "Pay Resident" dialog.
*/
void pay();
/**
* opens inventory and IM for sharing items
*/
void share();
/**
* Add/remove resident to/from your block list.
*/
void toggleBlock();
void kick();
void freeze();
void unfreeze();
void csr();
bool enableShowOnMap();
bool enableBlock();
bool enableUnblock();
bool enableGod();
void onSeeProfileBtnClick();
void onAddFriendButtonClick();
void onIMButtonClick();
void onCallButtonClick();
void onTeleportButtonClick();
void onShareButtonClick();
private:
void onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
typedef std::map< std::string,LLUUID> group_map_t;
group_map_t mGroups;
};
/**
* Panel for displaying own first and second life related info.
*/
class LLPanelMyProfile
: public LLPanelAvatarProfile
{
public:
LLPanelMyProfile();
/*virtual*/ BOOL postBuild();
protected:
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void processProfileProperties(const LLAvatarData* avatar_data);
/*virtual*/ void resetControls();
protected:
void onStatusMessageChanged();
};
/**
* Panel for displaying Avatar's notes and modifying friend's rights.
*/
class LLPanelAvatarNotes
: public LLPanelProfileTab
, public LLFriendObserver
, public LLVoiceClientStatusObserver
{
public:
LLPanelAvatarNotes();
/*virtual*/ ~LLPanelAvatarNotes();
virtual void setAvatarId(const LLUUID& id);
/**
* LLFriendObserver trigger
*/
virtual void changed(U32 mask);
// Implements LLVoiceClientStatusObserver::onChange() to enable the call
// button when voice is available
/*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal);
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ BOOL postBuild();
/*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
/*virtual*/ void updateData();
protected:
/*virtual*/ void resetControls();
/*virtual*/ void resetData();
/**
* Fills rights data for friends.
*/
void fillRightsData();
void rightsConfirmationCallback(const LLSD& notification,
const LLSD& response, S32 rights);
void confirmModifyRights(bool grant, S32 rights);
void onCommitRights();
void onCommitNotes();
void onAddFriendButtonClick();
void onIMButtonClick();
void onCallButtonClick();
void onTeleportButtonClick();
void onShareButtonClick();
void enableCheckboxes(bool enable);
};
#endif // LL_LLPANELAVATAR_H

View File

@ -48,16 +48,10 @@
#include "lltabcontainer.h"
#include "lltexturectrl.h"
#define PICKER_SECOND_LIFE "2nd_life_pic"
#define PICKER_FIRST_LIFE "real_world_pic"
#define PANEL_PROFILE "panel_profile"
static LLRegisterPanelClassWrapper<LLPanelMyProfileEdit> t_panel_me_profile_edit("edit_profile_panel");
static LLRegisterPanelClassWrapper<LLPanelMe> t_panel_me_profile("panel_me");
LLPanelMe::LLPanelMe(void)
: LLPanelProfile()
, mEditPanel(NULL)
{
setAvatarId(gAgent.getID());
}
@ -73,282 +67,3 @@ void LLPanelMe::onOpen(const LLSD& key)
{
LLPanelProfile::onOpen(key);
}
void LLPanelMe::buildEditPanel()
{
if (NULL == mEditPanel)
{
mEditPanel = new LLPanelMyProfileEdit();
// Note: Remove support for editing profile through this method.
// All profile editing should go through the web.
//mEditPanel->childSetAction("save_btn", boost::bind(&LLPanelMe::onSaveChangesClicked, this), this);
//mEditPanel->childSetAction("cancel_btn", boost::bind(&LLPanelMe::onCancelClicked, this), this);
}
}
void LLPanelMe::onEditProfileClicked()
{
buildEditPanel();
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
LLPanelMyProfileEdit::LLPanelMyProfileEdit()
: LLPanelMyProfile()
{
buildFromFile( "panel_edit_profile.xml");
setAvatarId(gAgent.getID());
LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLPanelMyProfileEdit::onAvatarNameChanged, this));
}
void LLPanelMyProfileEdit::onOpen(const LLSD& key)
{
resetData();
// Disable editing until data is loaded, or edited fields will be overwritten when data
// is loaded.
enableEditing(false);
// force new avatar name fetch so we have latest update time
LLAvatarNameCache::fetch(gAgent.getID());
LLPanelMyProfile::onOpen(getAvatarId());
LLAvatarName av_name;
if (LLAvatarNameCache::useDisplayNames())
{
if (LLAvatarNameCache::get(gAgent.getID(), &av_name) && av_name.mIsDisplayNameDefault)
{
LLFirstUse::setDisplayName();
}
else
{
LLFirstUse::setDisplayName(false);
}
}
if (LLAvatarNameCache::useDisplayNames())
{
getChild<LLUICtrl>("user_label")->setVisible( true );
getChild<LLUICtrl>("user_slid")->setVisible( true );
getChild<LLUICtrl>("display_name_label")->setVisible( true );
getChild<LLUICtrl>("set_name")->setVisible( true );
getChild<LLUICtrl>("set_name")->setEnabled( true );
getChild<LLUICtrl>("solo_user_name")->setVisible( false );
getChild<LLUICtrl>("solo_username_label")->setVisible( false );
}
else
{
getChild<LLUICtrl>("user_label")->setVisible( false );
getChild<LLUICtrl>("user_slid")->setVisible( false );
getChild<LLUICtrl>("display_name_label")->setVisible( false );
getChild<LLUICtrl>("set_name")->setVisible( false );
getChild<LLUICtrl>("set_name")->setEnabled( false );
getChild<LLUICtrl>("solo_user_name")->setVisible( true );
getChild<LLUICtrl>("solo_username_label")->setVisible( true );
}
}
void LLPanelMyProfileEdit::onClose(const LLSD& key)
{
if (LLAvatarNameCache::useDisplayNames())
{
LLFirstUse::setDisplayName(false);
}
}
void LLPanelMyProfileEdit::processProperties(void* data, EAvatarProcessorType type)
{
if(APT_PROPERTIES == type)
{
const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
if(avatar_data && getAvatarId() == avatar_data->avatar_id)
{
// *TODO dzaporozhan
// Workaround for ticket EXT-1099, waiting for fix for ticket EXT-1128
enableEditing(true);
processProfileProperties(avatar_data);
LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
}
}
void LLPanelMyProfileEdit::processProfileProperties(const LLAvatarData* avatar_data)
{
fillCommonData(avatar_data);
// 'Home page' was hidden in LLPanelAvatarProfile::fillCommonData() to fix EXT-4734
// Show 'Home page' in Edit My Profile (EXT-4873)
getChildView("homepage_edit")->setVisible( true);
fillPartnerData(avatar_data);
fillAccountStatus(avatar_data);
getChild<LLUICtrl>("show_in_search_checkbox")->setValue((BOOL)(avatar_data->flags & AVATAR_ALLOW_PUBLISH));
LLAvatarNameCache::get(avatar_data->avatar_id,
boost::bind(&LLPanelMyProfileEdit::onNameCache, this, _1, _2));
}
void LLPanelMyProfileEdit::onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name)
{
getChild<LLUICtrl>("user_name")->setValue( av_name.mDisplayName );
getChild<LLUICtrl>("user_slid")->setValue( av_name.mUsername );
getChild<LLUICtrl>("user_name_small")->setValue( av_name.mDisplayName );
getChild<LLUICtrl>("solo_user_name")->setValue( av_name.mDisplayName );
if (LLAvatarNameCache::useDisplayNames())
{
getChild<LLUICtrl>("user_label")->setVisible( true );
getChild<LLUICtrl>("user_slid")->setVisible( true );
getChild<LLUICtrl>("display_name_label")->setVisible( true );
getChild<LLUICtrl>("set_name")->setVisible( true );
getChild<LLUICtrl>("set_name")->setEnabled( true );
getChild<LLUICtrl>("solo_user_name")->setVisible( false );
getChild<LLUICtrl>("solo_username_label")->setVisible( false );
// show smaller display name if too long to display in regular size
if (getChild<LLTextBox>("user_name")->getTextPixelWidth() > getChild<LLTextBox>("user_name")->getRect().getWidth())
{
getChild<LLUICtrl>("user_name_small")->setVisible( true );
getChild<LLUICtrl>("user_name")->setVisible( false );
}
else
{
getChild<LLUICtrl>("user_name_small")->setVisible( false );
getChild<LLUICtrl>("user_name")->setVisible( true );
}
}
else
{
getChild<LLUICtrl>("user_label")->setVisible( false );
getChild<LLUICtrl>("user_slid")->setVisible( false );
getChild<LLUICtrl>("display_name_label")->setVisible( false );
getChild<LLUICtrl>("set_name")->setVisible( false );
getChild<LLUICtrl>("set_name")->setEnabled( false );
getChild<LLUICtrl>("solo_user_name")->setVisible( true );
getChild<LLUICtrl>("user_name_small")->setVisible( false );
getChild<LLUICtrl>("user_name")->setVisible( false );
getChild<LLUICtrl>("solo_username_label")->setVisible( true );
}
}
void LLPanelMyProfileEdit::onAvatarNameChanged()
{
LLAvatarNameCache::get(getAvatarId(),
boost::bind(&LLPanelMyProfileEdit::onNameCache, this, _1, _2));
}
BOOL LLPanelMyProfileEdit::postBuild()
{
initTexturePickerMouseEvents();
getChild<LLUICtrl>("partner_edit_link")->setTextArg("[URL]", getString("partner_edit_link_url"));
getChild<LLUICtrl>("my_account_link")->setTextArg("[URL]", getString("my_account_link_url"));
getChild<LLUICtrl>("set_name")->setCommitCallback(
boost::bind(&LLPanelMyProfileEdit::onClickSetName, this));
LLHints::registerHintTarget("set_display_name", getChild<LLUICtrl>("set_name")->getHandle());
LLViewerDisplayName::addNameChangedCallback(boost::bind(&LLPanelMyProfileEdit::onAvatarNameChanged, this));
return LLPanelAvatarProfile::postBuild();
}
/**
* Inits map with texture picker and appropriate edit icon.
* Sets callbacks of Mouse Enter and Mouse Leave signals of Texture Pickers
*/
void LLPanelMyProfileEdit::initTexturePickerMouseEvents()
{
LLTextureCtrl* text_pic = getChild<LLTextureCtrl>(PICKER_SECOND_LIFE);
LLIconCtrl* text_icon = getChild<LLIconCtrl>("2nd_life_edit_icon");
mTextureEditIconMap[text_pic->getName()] = text_icon;
text_pic->setMouseEnterCallback(boost::bind(&LLPanelMyProfileEdit::onTexturePickerMouseEnter, this, _1));
text_pic->setMouseLeaveCallback(boost::bind(&LLPanelMyProfileEdit::onTexturePickerMouseLeave, this, _1));
text_icon->setVisible(FALSE);
text_pic = getChild<LLTextureCtrl>(PICKER_FIRST_LIFE);
text_icon = getChild<LLIconCtrl>("real_world_edit_icon");
mTextureEditIconMap[text_pic->getName()] = text_icon;
text_pic->setMouseEnterCallback(boost::bind(&LLPanelMyProfileEdit::onTexturePickerMouseEnter, this, _1));
text_pic->setMouseLeaveCallback(boost::bind(&LLPanelMyProfileEdit::onTexturePickerMouseLeave, this, _1));
text_icon->setVisible(FALSE);
}
void LLPanelMyProfileEdit::resetData()
{
LLPanelMyProfile::resetData();
//childSetTextArg("name_text", "[FIRST]", LLStringUtil::null);
//childSetTextArg("name_text", "[LAST]", LLStringUtil::null);
getChild<LLUICtrl>("user_name")->setValue( LLSD() );
getChild<LLUICtrl>("user_slid")->setValue( LLSD() );
getChild<LLUICtrl>("solo_user_name")->setValue( LLSD() );
getChild<LLUICtrl>("user_name_small")->setValue( LLSD() );
}
void LLPanelMyProfileEdit::onTexturePickerMouseEnter(LLUICtrl* ctrl)
{
mTextureEditIconMap[ctrl->getName()]->setVisible(TRUE);
}
void LLPanelMyProfileEdit::onTexturePickerMouseLeave(LLUICtrl* ctrl)
{
mTextureEditIconMap[ctrl->getName()]->setVisible(FALSE);
}
void LLPanelMyProfileEdit::onClickSetName()
{
LLAvatarNameCache::get(getAvatarId(),
boost::bind(&LLPanelMyProfileEdit::onAvatarNameCache,
this, _1, _2));
LLFirstUse::setDisplayName(false);
}
void LLPanelMyProfileEdit::onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name)
{
if (av_name.mDisplayName.empty())
{
// something is wrong, tell user to try again later
LLNotificationsUtil::add("SetDisplayNameFailedGeneric");
return;
}
llinfos << "name-change now " << LLDate::now() << " next_update "
<< LLDate(av_name.mNextUpdate) << llendl;
F64 now_secs = LLDate::now().secondsSinceEpoch();
if (now_secs < av_name.mNextUpdate)
{
// if the update time is more than a year in the future, it means updates have been blocked
// show a more general message
const int YEAR = 60*60*24*365;
if (now_secs + YEAR < av_name.mNextUpdate)
{
LLNotificationsUtil::add("SetDisplayNameBlocked");
return;
}
}
LLFloaterReg::showInstance("display_name");
}
void LLPanelMyProfileEdit::enableEditing(bool enable)
{
getChildView("2nd_life_pic")->setEnabled(enable);
getChildView("real_world_pic")->setEnabled(enable);
getChildView("sl_description_edit")->setEnabled(enable);
getChildView("fl_description_edit")->setEnabled(enable);
getChildView("homepage_edit")->setEnabled(enable);
getChildView("show_in_search_checkbox")->setEnabled(enable);
}

View File

@ -30,15 +30,9 @@
#include "llpanel.h"
#include "llpanelprofile.h"
class LLAvatarName;
class LLPanelMyProfileEdit;
class LLPanelProfile;
class LLIconCtrl;
/**
* Panel for displaying Agent's profile, it consists of two sub panels - Profile
* and Picks.
* LLPanelMe allows user to edit his profile and picks.
* Panel for displaying Agent's Picks and Classifieds panel.
* LLPanelMe allows user to edit his picks and classifieds.
*/
class LLPanelMe : public LLPanelProfile
{
@ -51,60 +45,6 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ BOOL postBuild();
private:
void buildEditPanel();
void onEditProfileClicked();
LLPanelMyProfileEdit * mEditPanel;
};
class LLPanelMyProfileEdit : public LLPanelMyProfile
{
LOG_CLASS(LLPanelMyProfileEdit);
public:
LLPanelMyProfileEdit();
/*virtual*/void processProperties(void* data, EAvatarProcessorType type);
/*virtual*/BOOL postBuild();
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onClose(const LLSD& key);
void onAvatarNameChanged();
protected:
/*virtual*/void resetData();
void processProfileProperties(const LLAvatarData* avatar_data);
void onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
private:
void initTexturePickerMouseEvents();
void onTexturePickerMouseEnter(LLUICtrl* ctrl);
void onTexturePickerMouseLeave(LLUICtrl* ctrl);
void onClickSetName();
void onAvatarNameCache(const LLUUID& id, const LLAvatarName& av_name);
/**
* Enabled/disables controls to prevent overwriting edited data upon receiving
* current data from server.
*/
void enableEditing(bool enable);
private:
// map TexturePicker name => Edit Icon pointer should be visible while hovering Texture Picker
typedef std::map<std::string, LLIconCtrl*> texture_edit_icon_map_t;
texture_edit_icon_map_t mTextureEditIconMap;
};
#endif // LL_LLPANELMEPROFILE_H

View File

@ -38,7 +38,6 @@
#include "llviewernetwork.h"
static const std::string PANEL_PICKS = "panel_picks";
static const std::string PANEL_PROFILE = "panel_profile";
std::string getProfileURL(const std::string& agent_name)
{
@ -272,7 +271,6 @@ BOOL LLPanelProfile::postBuild()
panel_picks->setProfilePanel(this);
getTabContainer()[PANEL_PICKS] = panel_picks;
getTabContainer()[PANEL_PROFILE] = findChild<LLPanelAvatarProfile>(PANEL_PROFILE);
return TRUE;
}

View File

@ -1,247 +0,0 @@
/**
* @file llpanelprofileview.cpp
* @brief Side tray "Profile View" panel
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "llpanelprofileview.h"
#include "llavatarconstants.h"
#include "llavatarnamecache.h" // IDEVO
#include "llclipboard.h"
#include "lluserrelations.h"
#include "llavatarpropertiesprocessor.h"
#include "llcallingcard.h"
#include "llpanelavatar.h"
#include "llpanelpicks.h"
#include "llpanelprofile.h"
#include "llsidetraypanelcontainer.h"
static LLRegisterPanelClassWrapper<LLPanelProfileView> t_panel_target_profile("panel_profile_view");
static std::string PANEL_NOTES = "panel_notes";
static const std::string PANEL_PROFILE = "panel_profile";
static const std::string PANEL_PICKS = "panel_picks";
class AvatarStatusObserver : public LLAvatarPropertiesObserver
{
public:
AvatarStatusObserver(LLPanelProfileView* profile_view)
{
mProfileView = profile_view;
}
void processProperties(void* data, EAvatarProcessorType type)
{
if(APT_PROPERTIES != type) return;
const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
if(avatar_data && mProfileView->getAvatarId() == avatar_data->avatar_id)
{
mProfileView->processOnlineStatus(avatar_data->flags & AVATAR_ONLINE);
LLAvatarPropertiesProcessor::instance().removeObserver(mProfileView->getAvatarId(), this);
}
}
void subscribe()
{
LLAvatarPropertiesProcessor::instance().addObserver(mProfileView->getAvatarId(), this);
}
private:
LLPanelProfileView* mProfileView;
};
LLPanelProfileView::LLPanelProfileView()
: LLPanelProfile()
, mStatusText(NULL)
, mAvatarStatusObserver(NULL)
{
mAvatarStatusObserver = new AvatarStatusObserver(this);
}
LLPanelProfileView::~LLPanelProfileView(void)
{
delete mAvatarStatusObserver;
}
/*virtual*/
void LLPanelProfileView::onOpen(const LLSD& key)
{
LLUUID id;
if(key.has("id"))
{
id = key["id"];
}
if(id.notNull() && getAvatarId() != id)
{
setAvatarId(id);
// clear name fields, which might have old data
getChild<LLUICtrl>("user_name")->setValue( LLSD() );
getChild<LLUICtrl>("user_slid")->setValue( LLSD() );
}
// Update the avatar name.
LLAvatarNameCache::get(getAvatarId(),
boost::bind(&LLPanelProfileView::onAvatarNameCache, this, _1, _2));
updateOnlineStatus();
LLPanelProfile::onOpen(key);
}
BOOL LLPanelProfileView::postBuild()
{
LLPanelProfile::postBuild();
getTabContainer()[PANEL_NOTES] = findChild<LLPanelAvatarNotes>(PANEL_NOTES);
//*TODO remove this, according to style guide we don't use status combobox
getTabContainer()[PANEL_PROFILE]->getChildView("online_me_status_text")->setVisible( FALSE);
getTabContainer()[PANEL_PROFILE]->getChildView("status_combo")->setVisible( FALSE);
mStatusText = getChild<LLTextBox>("status");
mStatusText->setVisible(false);
childSetCommitCallback("back",boost::bind(&LLPanelProfileView::onBackBtnClick,this),NULL);
childSetCommitCallback("copy_to_clipboard",boost::bind(&LLPanelProfileView::onCopyToClipboard,this),NULL);
return TRUE;
}
//private
void LLPanelProfileView::onBackBtnClick()
{
// Set dummy value to make picks panel dirty,
// This will make Picks reload on next open.
getTabContainer()[PANEL_PICKS]->setValue(LLSD());
LLSideTrayPanelContainer* parent = dynamic_cast<LLSideTrayPanelContainer*>(getParent());
if(parent)
{
parent->openPreviousPanel();
}
}
void LLPanelProfileView::onCopyToClipboard()
{
std::string name = getChild<LLUICtrl>("user_name")->getValue().asString() + " (" + getChild<LLUICtrl>("user_slid")->getValue().asString() + ")";
gClipboard.copyFromString(utf8str_to_wstring(name));
}
bool LLPanelProfileView::isGrantedToSeeOnlineStatus()
{
const LLRelationship* relationship = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
if (NULL == relationship)
return false;
// *NOTE: GRANT_ONLINE_STATUS is always set to false while changing any other status.
// When avatar disallow me to see her online status processOfflineNotification Message is received by the viewer
// see comments for ChangeUserRights template message. EXT-453.
// If GRANT_ONLINE_STATUS flag is changed it will be applied when viewer restarts. EXT-3880
return relationship->isRightGrantedFrom(LLRelationship::GRANT_ONLINE_STATUS);
}
// method was disabled according to EXT-2022. Re-enabled & improved according to EXT-3880
void LLPanelProfileView::updateOnlineStatus()
{
// set text box visible to show online status for non-friends who has not set in Preferences
// "Only Friends & Groups can see when I am online"
mStatusText->setVisible(TRUE);
const LLRelationship* relationship = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
if (NULL == relationship)
{
// this is non-friend avatar. Status will be updated from LLAvatarPropertiesProcessor.
// in LLPanelProfileView::processOnlineStatus()
// subscribe observer to get online status. Request will be sent by LLPanelAvatarProfile itself.
// do not subscribe for friend avatar because online status can be wrong overridden
// via LLAvatarData::flags if Preferences: "Only Friends & Groups can see when I am online" is set.
mAvatarStatusObserver->subscribe();
return;
}
// For friend let check if he allowed me to see his status
// status should only show if viewer has permission to view online/offline. EXT-453, EXT-3880
mStatusText->setVisible(isGrantedToSeeOnlineStatus());
bool online = relationship->isOnline();
processOnlineStatus(online);
}
void LLPanelProfileView::processOnlineStatus(bool online)
{
std::string status = getString(online ? "status_online" : "status_offline");
mStatusText->setValue(status);
}
void LLPanelProfileView::onAvatarNameCache(const LLUUID& agent_id,
const LLAvatarName& av_name)
{
getChild<LLUICtrl>("user_name")->setValue( av_name.mDisplayName );
getChild<LLUICtrl>("user_name_small")->setValue( av_name.mDisplayName );
getChild<LLUICtrl>("user_slid")->setValue( av_name.mUsername );
// show smaller display name if too long to display in regular size
if (getChild<LLTextBox>("user_name")->getTextPixelWidth() > getChild<LLTextBox>("user_name")->getRect().getWidth())
{
getChild<LLUICtrl>("user_name_small")->setVisible( true );
getChild<LLUICtrl>("user_name")->setVisible( false );
}
else
{
getChild<LLUICtrl>("user_name_small")->setVisible( false );
getChild<LLUICtrl>("user_name")->setVisible( true );
}
if (LLAvatarNameCache::useDisplayNames())
{
getChild<LLUICtrl>("user_label")->setVisible( true );
getChild<LLUICtrl>("user_slid")->setVisible( true );
getChild<LLUICtrl>("display_name_label")->setVisible( true );
getChild<LLUICtrl>("copy_to_clipboard")->setVisible( true );
getChild<LLUICtrl>("copy_to_clipboard")->setEnabled( true );
getChild<LLUICtrl>("solo_username_label")->setVisible( false );
}
else
{
getChild<LLUICtrl>("user_label")->setVisible( false );
getChild<LLUICtrl>("user_slid")->setVisible( false );
getChild<LLUICtrl>("display_name_label")->setVisible( false );
getChild<LLUICtrl>("copy_to_clipboard")->setVisible( false );
getChild<LLUICtrl>("copy_to_clipboard")->setEnabled( false );
getChild<LLUICtrl>("solo_username_label")->setVisible( true );
}
}
// EOF

View File

@ -1,108 +0,0 @@
/**
* @file llpanelprofileview.h
* @brief Side tray "Profile View" panel
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLPANELPROFILEVIEW_H
#define LL_LLPANELPROFILEVIEW_H
#include "llpanel.h"
#include "llpanelprofile.h"
#include "llavatarpropertiesprocessor.h"
#include "llagent.h"
#include "lltooldraganddrop.h"
class LLAvatarName;
class LLPanelProfile;
class LLPanelProfileTab;
class LLTextBox;
class AvatarStatusObserver;
/**
* Panel for displaying Avatar's profile. It consists of three sub panels - Profile,
* Picks and Notes.
*/
class LLPanelProfileView : public LLPanelProfile
{
LOG_CLASS(LLPanelProfileView);
friend class LLUICtrlFactory;
friend class AvatarStatusObserver;
public:
LLPanelProfileView();
/*virtual*/ ~LLPanelProfileView();
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ BOOL postBuild();
BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
BOOL drop, EDragAndDropType cargo_type,
void *cargo_data, EAcceptance *accept,
std::string& tooltip_msg)
{
LLToolDragAndDrop::handleGiveDragAndDrop(getAvatarId(), gAgent.getSessionID(), drop,
cargo_type, cargo_data, accept);
return TRUE;
}
protected:
void onBackBtnClick();
void onCopyToClipboard();
bool isGrantedToSeeOnlineStatus();
/**
* Displays avatar's online status if possible.
*
* Requirements from EXT-3880:
* For friends:
* - Online when online and privacy settings allow to show
* - Offline when offline and privacy settings allow to show
* - Else: nothing
* For other avatars:
* - Online when online and was not set in Preferences/"Only Friends & Groups can see when I am online"
* - Else: Offline
*/
void updateOnlineStatus();
void processOnlineStatus(bool online);
private:
// LLCacheName will call this function when avatar name is loaded from server.
// This is required to display names that have not been cached yet.
// void onNameCache(
// const LLUUID& id,
// const std::string& full_name,
// bool is_group);
void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
LLTextBox* mStatusText;
AvatarStatusObserver* mAvatarStatusObserver;
};
#endif //LL_LLPANELPROFILEVIEW_H

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="no_partner_text" value="Ingen"/>
<string name="no_group_text" value="Ingen"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Brugernavn
</text>
<text name="name_descr_text">
Visningsnavn
</text>
<button label="Profil" name="see_profile_btn" tool_tip="Se profil for denne avatar"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Noter &amp; Privatliv" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Min private noter:"/>
<text name="status_message2" value="Tillad denne person at:"/>
<check_box label="Se min online status" name="status_check"/>
<check_box label="Se mig på kortet" name="map_check"/>
<check_box label="Editére, slette og tage mine objekter" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Tilføj ven" name="add_friend" tool_tip="Tilbyd venskab til beboer"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Åben session med personlige beskeder"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Opkald" name="call" tool_tip="Opkald til denne beboer"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Kort" name="show_on_map_btn" tool_tip="Vis denne beboer på kortet"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Teleportér" name="teleport" tool_tip="Tilbyd teleport"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="no_partner_text" value="Ingen"/>
<string name="no_group_text" value="Ingen"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Real World:"/>
</panel>
<text name="title_member_text" value="Beboer siden:"/>
<text name="title_acc_status_text" value="Konto status:"/>
<text name="title_partner_text" value="Partner:"/>
<panel name="partner_data_panel">
<text initial_value="(henter)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Grupper:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Tilføj ven" name="add_friend" tool_tip="Tilbyd venskab til beboeren"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="Personlig besked" name="im" tool_tip="Åben session med personlig besked"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Opkald" name="call" tool_tip="Opkald til denne beboer"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Teleportér" name="teleport" tool_tip="Tilbyd teleport"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Betal eller del beholdning med denne beboer"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Redigér profil" name="edit_profile_btn" tool_tip="Redigér din personlige information"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Online
</string>
<string name="status_offline">
Offline
</string>
<text name="display_name_label" value="Visningsnavn:"/>
<text name="solo_username_label" value="Brugernavn:"/>
<text name="status" value="Online"/>
<text name="user_name_small" value="Se på mig med dette enormt ekstremt super lange navn"/>
<button name="copy_to_clipboard" tool_tip="Kopiér til udskriftsholder"/>
<text name="user_label" value="Brugernavn:"/>
<tab_container name="tabs">
<panel label="PROFIL" name="panel_profile"/>
<panel label="FAVORITTER" name="panel_picks"/>
<panel label="NOTER &amp; PRIVATLIV" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=de-DE
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=de
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=de-DE"/>
<string name="no_partner_text" value="Keiner"/>
<string name="no_group_text" value="Keiner"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Benutzername
</text>
<text name="name_descr_text">
Anzeigename
</text>
<button label="Profil" name="see_profile_btn" tool_tip="Profil zu diesem Avatar anzeigen"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notizen &amp; Privatsphäre" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Meine Notizen:"/>
<text name="status_message2" value="Diese Person kann:"/>
<check_box label="meinen Online-Status sehen." name="status_check"/>
<check_box label="mich auf der Karte sehen." name="map_check"/>
<check_box label="meine Objekte bearbeiten, löschen oder nehmen." name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Freund hinzufügen" name="add_friend" tool_tip="Dem Einwohner die Freundschaft anbieten"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Instant Messenger öffnen"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=de-DE
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=de
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=de-DE"/>
<string name="no_partner_text" value="Keiner"/>
<string name="no_group_text" value="Keiner"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Echtes Leben:"/>
</panel>
<text name="title_member_text" value="Einwohner seit:"/>
<text name="title_acc_status_text" value="Kontostatus:"/>
<text_editor name="acc_status_text">
Einwohner. Keine Zahlungsinfo archiviert.
Linden.
</text_editor>
<text name="title_partner_text" value="Partner:"/>
<panel name="partner_data_panel">
<text initial_value="(wird in Datenbank gesucht)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Gruppen:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Freund hinzufügen" name="add_friend" tool_tip="Dem Einwohner die Freundschaft anbieten"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Instant Messenger öffnen"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Dem Einwohner Geld geben oder Inventar an den Einwohner schicken"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Profil bearbeiten" name="edit_profile_btn" tool_tip="Ihre persönlichen Informationen bearbeiten"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Online
</string>
<string name="status_offline">
Offline
</string>
<text name="display_name_label" value="Anzeigename:"/>
<text name="solo_username_label" value="Benutzername:"/>
<text name="status" value="Online"/>
<text name="user_name_small" value="Dieser Name ist ein ganz außerordentlich langer Name"/>
<button name="copy_to_clipboard" tool_tip="In Zwischenablage kopieren"/>
<text name="user_label" value="Benutzername:"/>
<tab_container name="tabs" tab_min_width="60">
<panel label="PROFIL" name="panel_profile"/>
<panel label="AUSWAHL" name="panel_picks"/>
<panel label="NOTIZEN &amp; PRIVATSPHÄRE" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -25,10 +25,6 @@
class="panel_people"
name="panel_people"
filename="panel_people.xml"/>
<panel
class="panel_profile_view"
name="panel_profile_view"
filename="panel_profile_view.xml"/>
<panel
class="panel_group_info_sidetray"
name="panel_group_info_sidetray"

View File

@ -1,146 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
height="535"
label="Profile"
layout="topleft"
left="0"
name="panel_profile"
top="0"
width="315">
<string
name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string
name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string
name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string
name="my_account_link_url"
value="http://secondlife.com/account" />
<string
name="no_partner_text"
value="None" />
<string
name="no_group_text"
value="None" />
<string
name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string
name="name_text_args">
[NAME]
</string>
<string
name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack
name="layout"
orientation="vertical"
follows="all"
layout="topleft"
left="0"
top="0"
height="510"
width="315"
border_size="0">
<layout_panel
name="profile_stack"
follows="all"
layout="topleft"
top="0"
left="0"
height="492"
user_resize="false"
width="315">
<scroll_container
color="DkGray2"
follows="all"
layout="topleft"
left="0"
name="profile_scroll"
opaque="true"
height="488"
width="315"
top="0">
<panel
layout="topleft"
follows="left|top|right"
height="488"
name="scroll_content_panel"
top="0"
left="0"
width="297">
<panel
follows="left|top|right"
height="117"
layout="topleft"
left="10"
name="second_life_image_panel"
top="0"
width="297">
<texture_picker
allow_no_texture="true"
default_image_name="None"
enabled="false"
fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
left="3"
name="2nd_life_pic"
top="10"
width="102" />
<text
follows="left|top|right"
font="SansSerifLarge"
font.style="BOLD"
height="15"
layout="topleft"
left_pad="10"
name="display_name_descr_text"
text_color="0.7 0.7 0.7 1.0"
top_delta="0"
width="280" >
User name
</text>
<text
follows="left|top|right"
font.style="BOLD"
height="15"
layout="topleft"
left_delta="0"
name="name_descr_text"
text_color="0.4 0.4 0.4 1.0"
top_delta="20"
width="280">
Display Name
</text>
<button
follows="bottom"
height="23"
left_delta="0"
top_delta="20"
label="Profile"
name="see_profile_btn"
tool_tip="See profile for this avatar"
width="120" />
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,236 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
height="515"
label="Notes &amp; Privacy"
layout="topleft"
left="0"
name="panel_notes"
top="0"
width="313"
>
<layout_stack
name="layout"
orientation="vertical"
follows="all"
layout="topleft"
left="0"
top="0"
height="517"
width="313"
border_size="0">
<layout_panel
name="notes_stack"
follows="all"
layout="topleft"
top="0"
left="0"
height="450"
width="313">
<scroll_container
color="DkGray2"
follows="all"
layout="topleft"
left="0"
name="profile_scroll"
opaque="true"
height="450"
width="313"
top="0">
<panel
height="450"
layout="topleft"
name="profile_scroll_panel"
top="0"
left="0"
width="303">
<text
follows="left|top"
font.style="BOLD"
height="16"
layout="topleft"
left="11"
name="status_message"
text_color="white"
top="10"
value="My private notes:"
width="293" />
<text_editor
follows="left|top"
height="120"
layout="topleft"
left="12"
max_length="1000"
name="notes_edit"
text_color="DkGray"
top_pad="3"
width="288"
word_wrap="true" />
<text
follows="left|top"
font.style="BOLD"
height="16"
layout="topleft"
left="11"
name="status_message2"
text_color="white"
top_pad="20"
value="Allow this person to:"
width="293" />
<check_box
enabled="false"
height="16"
label="See my online status"
layout="topleft"
left="10"
name="status_check"
width="293" />
<check_box
enabled="false"
height="16"
label="See me on the map"
layout="topleft"
left="10"
name="map_check"
width="293" />
<check_box
enabled="false"
height="16"
label="Edit, delete or take my objects"
layout="topleft"
left="10"
name="objects_check"
width="293" />
</panel>
</scroll_container>
</layout_panel>
<layout_panel
follows="bottom|left"
height="30"
layout="topleft"
left="0"
name="notes_buttons_panel"
auto_resize="false"
width="313">
<layout_stack
follows="bottom|left|right"
height="23"
layout="topleft"
name="bottom_bar_ls"
left="2"
orientation="horizontal"
top_pad="5"
width="309">
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left="0"
name="add_friend_btn_lp"
user_resize="false"
auto_resize="true"
width="118">
<button
follows="bottom|left|right"
height="23"
label="Add Friend"
layout="topleft"
left="1"
mouse_opaque="false"
name="add_friend"
tool_tip="Offer friendship to the Resident"
top="0"
width="117" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="im_btn_lp"
user_resize="false"
auto_resize="true"
width="22">
<button
follows="bottom|left|right"
height="23"
label="IM"
layout="topleft"
name="im"
tool_tip="Open instant message session"
top="0"
left="1"
width="21" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="call_btn_lp"
user_resize="false"
auto_resize="true"
width="52">
<button
follows="bottom|left|right"
height="23"
label="Call"
layout="topleft"
name="call"
tool_tip="Call this Resident"
left="1"
top="0"
use_ellipses="true"
width="51" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="show_on_map_btn_lp"
user_resize="false"
auto_resize="true"
width="46">
<button
enabled="false"
follows="bottom|left|right"
height="23"
label="Map"
layout="topleft"
name="show_on_map_btn"
tool_tip="Show the Resident on the map"
top="0"
left="1"
width="45" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="teleport_btn_lp"
user_resize="false"
auto_resize="true"
width="81">
<button
follows="bottom|left|right"
height="23"
label="Teleport"
layout="topleft"
name="teleport"
tool_tip="Offer teleport"
left="1"
top="0"
width="80" />
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,458 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
height="430"
label="Profile"
layout="topleft"
left="0"
name="panel_profile"
top="0"
width="317">
<string
name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string
name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string
name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string
name="my_account_link_url"
value="http://secondlife.com/account" />
<string
name="no_partner_text"
value="None" />
<string
name="no_group_text"
value="None" />
<string
name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string
name="name_text_args">
[NAME]
</string>
<string
name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack
name="layout"
orientation="vertical"
follows="all"
layout="topleft"
left="0"
top="0"
height="400"
width="317"
border_size="0">
<layout_panel
name="profile_stack"
follows="all"
layout="topleft"
top="0"
left="0"
height="400"
width="317">
<scroll_container
color="DkGray2"
follows="all"
layout="topleft"
left="0"
name="profile_scroll"
opaque="true"
height="400"
width="317"
top="0">
<panel
layout="topleft"
follows="left|top|right"
height="505"
min_height="505"
name="profile_scroll_panel"
top="0"
left="0"
width="297">
<panel
follows="left|top|right"
height="124"
layout="topleft"
left="13"
name="second_life_image_panel"
top="0"
width="297">
<texture_picker
allow_no_texture="true"
default_image_name="None"
enabled="false"
fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
left="0"
name="2nd_life_pic"
top="10"
width="102" />
<text
follows="left|top|right"
font.style="BOLD"
height="15"
layout="topleft"
left_pad="10"
name="title_sl_descr_text"
text_color="white"
top_delta="0"
value="[SECOND_LIFE]:"
width="180" />
<expandable_text
follows="left|top|right"
height="97"
layout="topleft"
left="107"
textbox.max_length="512"
textbox.show_context_menu="true"
name="sl_description_edit"
top_pad="-3"
translate="false"
width="180"
expanded_bg_visible="true"
expanded_bg_color="DkGray">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet.Nullamma lesuada mauris sit amet ipsum. adipiscing elit. Ae nean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</expandable_text>
</panel>
<panel
follows="left|top|right"
height="124"
layout="topleft"
top_pad="0"
left="13"
name="first_life_image_panel"
width="297">
<texture_picker
allow_no_texture="true"
default_image_name="None"
enabled="false"
fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
left="0"
name="real_world_pic"
width="102" />
<text
follows="left|top|right"
font.style="BOLD"
height="15"
layout="topleft"
left_pad="10"
name="title_rw_descr_text"
text_color="white"
top_delta="0"
value="Real World:"
width="180" />
<expandable_text
follows="left|top|right"
height="97"
layout="topleft"
left="107"
textbox.max_length="512"
textbox.show_context_menu="true"
name="fl_description_edit"
top_pad="-3"
translate="false"
width="180"
expanded_bg_visible="true"
expanded_bg_color="DkGray">
Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</expandable_text>
</panel>
<text
follows="left|top"
height="15"
font.style="BOLD"
font="SansSerifMedium"
layout="topleft"
left="10"
name="homepage_edit"
top_pad="0"
translate="false"
value="http://librarianavengers.org"
width="300"
word_wrap="false"
use_ellipses="true" />
<text
follows="left|top"
font.style="BOLD"
height="10"
layout="topleft"
left="10"
name="title_member_text"
text_color="white"
top_pad="10"
value="Resident Since:"
width="300" />
<text_editor
allow_scroll="false"
bg_visible="false"
follows="left|top"
h_pad="0"
height="15"
layout="topleft"
left="10"
name="register_date"
read_only="true"
translate="false"
v_pad="0"
value="05/31/2376"
width="300"
word_wrap="true" />
<text
follows="left|top"
font.style="BOLD"
height="15"
layout="topleft"
left="10"
name="title_acc_status_text"
text_color="white"
top_pad="5"
value="Account Status:"
width="300" />
<!-- <text
type="string"
follows="left|top"
font="SansSerifSmall"
height="15"
layout="topleft"
left_pad="10"
name="my_account_link"
top_delta="0"
value="Go to Dashboard"
width="100"/> -->
<text_editor
allow_scroll="false"
bg_visible="false"
follows="left|top"
h_pad="0"
height="28"
layout="topleft"
left="10"
name="acc_status_text"
read_only="true"
top_pad="0"
translate="false"
v_pad="0"
width="300"
word_wrap="true">
Resident. No payment info on file.
Linden.
</text_editor>
<text
follows="left|top"
font.style="BOLD"
height="15"
layout="topleft"
left="10"
name="title_partner_text"
text_color="white"
top_pad="3"
value="Partner:"
width="300" />
<panel
follows="left|top"
height="15"
layout="topleft"
left="10"
name="partner_data_panel"
top_pad="0"
width="300">
<text
follows="left|top"
height="10"
initial_value="(retrieving)"
layout="topleft"
left="0"
parse_urls="true"
name="partner_text"
top="0"
use_ellipses="true"
width="300" />
</panel>
<text
follows="left|top"
font.style="BOLD"
height="13"
layout="topleft"
left="10"
name="title_groups_text"
text_color="white"
top_pad="3"
value="Groups:"
width="300" />
<expandable_text
follows="all"
height="103"
layout="topleft"
left="7"
name="sl_groups"
textbox.max_length="512"
textbox.show_context_menu="true"
top_pad="0"
translate="false"
width="290"
expanded_bg_visible="true"
expanded_bg_color="DkGray">
Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. Aenean viverra tulip moosetop. Slan de heelish marfnik tooplod. Sum sum to whop de wompam booster copm.
</expandable_text>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack
name="layout_verb_buttons"
orientation="horizontal"
follows="bottom|left|right"
layout="topleft"
left="2"
top_pad="1"
height="30"
width="315"
border_size="0">
<layout_panel
follows="bottom|left"
height="30"
layout="topleft"
name="profile_buttons_panel"
top="0"
auto_resize="false"
width="317">
<layout_stack
follows="bottom|left|right"
height="23"
layout="topleft"
name="bottom_bar_ls"
left="0"
orientation="horizontal"
top_pad="5"
width="317">
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left="0"
name="add_friend_btn_lp"
user_resize="false"
auto_resize="true"
width="121">
<button
follows="bottom|left|right"
height="23"
label="Add Friend"
layout="topleft"
left="1"
mouse_opaque="false"
name="add_friend"
tool_tip="Offer friendship to the Resident"
top="0"
width="120" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="im_btn_lp"
user_resize="false"
auto_resize="true"
width="22">
<button
follows="bottom|left|right"
height="23"
label="IM"
layout="topleft"
name="im"
tool_tip="Open instant message session"
top="0"
left="1"
width="21" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="call_btn_lp"
user_resize="false"
auto_resize="true"
width="52">
<button
follows="bottom|left|right"
height="23"
label="Call"
layout="topleft"
name="call"
tool_tip="Call this Resident"
left="1"
top="0"
use_ellipses="true"
width="51" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="chat_btn_lp"
user_resize="false"
auto_resize="true"
width="93">
<button
follows="bottom|left|right"
height="23"
label="Teleport"
layout="topleft"
name="teleport"
tool_tip="Offer teleport"
left="1"
top="0"
use_ellipses="true"
width="92" />
</layout_panel>
<layout_panel
follows="bottom|left|right"
height="23"
layout="bottomleft"
left_pad="3"
name="overflow_btn_lp"
user_resize="false"
auto_resize="false"
width="24">
<menu_button
follows="bottom|left|right"
height="23"
label="▼"
layout="topleft"
name="overflow_btn"
tool_tip="Pay money to or share inventory with the Resident"
left="1"
top="0"
width="23" />
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,162 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
background_visible="true"
follows="all"
height="570"
layout="topleft"
min_height="350"
name="panel_target_profile"
left="0"
width="333">
<string
name="status_online">
Online
</string>
<string
name="status_offline">
Offline
</string>
<button
follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
image_unselected="BackButton_Off"
layout="topleft"
name="back"
left="10"
tab_stop="false"
top="2"
width="30"
use_draw_context_alpha="false" />
<text
top="10"
follows="top|left"
height="13"
layout="topleft"
left="45"
name="display_name_label"
text_color="LtGray"
value="Display Name:"
width="80" />
<text
top_delta="0"
follows="top|left"
height="13"
layout="topleft"
left="45"
name="solo_username_label"
text_color="LtGray"
value="Username:"
visible="false"
width="80" />
<text
follows="top|right"
halign="right"
height="13"
layout="topleft"
right="-15"
name="status"
text_color="LtGray_50"
top_delta="0"
value="Online"
width="150" />
<text
follows="top|left|right"
font="SansSerifBigBold"
height="29"
layout="topleft"
left="45"
name="user_name_small"
text_color="LtGray"
top="22"
value="Jack oh look at me this is a super duper long name"
use_ellipses="true"
word_wrap="true"
visible="false"
width="255" />
<text
follows="top|left|right"
font="SansSerifHugeBold"
height="27"
layout="topleft"
left="45"
name="user_name"
text_color="LtGray"
translate="false"
top="25"
value="TestString PleaseIgnore"
visible="true"
use_ellipses="true"
width="258" />
<button
name="copy_to_clipboard"
layout="topleft"
follows="top|right"
image_overlay="Copy"
top_delta="0"
right="-15"
height="21"
width="21"
tab_stop="false"
tool_tip="Copy to Clipboard"/>
<text
follows="top|left"
height="13"
layout="topleft"
left="45"
name="user_label"
text_color="LtGray"
top_pad="10"
value="Username:"
width="70" />
<text
follows="top|left"
height="20"
layout="topleft"
left_pad="0"
name="user_slid"
text_color="EmphasisColor"
font="SansSerifBold"
top_delta="-2"
translate="false"
use_ellipses="true"
value="teststring.pleaseignore"
width="195"
wrap="true "/>
<tab_container
follows="all"
height="489"
halign="center"
layout="topleft"
left="5"
min_width="333"
name="tabs"
tab_min_width="80"
tab_height="30"
tab_position="top"
top_pad="5"
width="317">
<panel
class="panel_profile"
filename="panel_profile.xml"
label="PROFILE"
layout="topleft"
help_topic="profile_profile_tab"
name="panel_profile" />
<panel
class="panel_picks"
filename="panel_picks.xml"
label="PICKS"
layout="topleft"
help_topic="profile_picks_tab"
name="panel_picks" />
<panel
class="panel_notes"
filename="panel_notes.xml"
label="NOTES &amp; PRIVACY"
layout="topleft"
help_topic="profile_notes_tab"
name="panel_notes" />
</tab_container>
</panel>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Perfil" name="panel_profile">
<string name="no_partner_text" value="Ninguno/a"/>
<string name="no_group_text" value="Ninguno"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Nombre de usuario
</text>
<text name="name_descr_text">
Nombre mostrado
</text>
<button label="Perfil" name="see_profile_btn" tool_tip="Ver el perfil de este avatar"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notas y Privacidad" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Mis notas privadas:"/>
<text name="status_message2" value="Permitir que esta persona:"/>
<check_box label="Vea si estoy conectado" name="status_check"/>
<check_box label="Me vea en el mapa" name="map_check"/>
<check_box label="Edite, borre o coja mis objetos" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Añadir como amigo" name="add_friend" tool_tip="Ofrecer amistad a este Residente"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="MI" name="im" tool_tip="Abrir una sesión de mensajes instantáneos"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Llamar" name="call" tool_tip="Llamar a este Residente"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Mapa" name="show_on_map_btn" tool_tip="Mostrar al Residente en el mapa"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Teleporte" name="teleport" tool_tip="Ofrecer teleporte"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Perfil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=es-ES
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=es
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=es-ES"/>
<string name="no_partner_text" value="Ninguno"/>
<string name="no_group_text" value="Ninguno"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Mundo real:"/>
</panel>
<text name="title_member_text" value="Residente desde:"/>
<text name="title_acc_status_text" value="Estado de la cuenta:"/>
<text name="title_partner_text" value="Compañero/a:"/>
<panel name="partner_data_panel">
<text initial_value="(obteniendo)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Grupos:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Añadir como amigo" name="add_friend" tool_tip="Ofrecer amistad a este Residente"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="MI" name="im" tool_tip="Abrir una sesión de mensajes instantáneos"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Llamar" name="call" tool_tip="Llamar a este Residente"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Teleporte" name="teleport" tool_tip="Ofrecer teleporte"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Pagar dinero al Residente o compartir algo del inventario con él"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Editar el perfil" name="edit_profile_btn" tool_tip="Modificar tu información personal"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Conectado/a
</string>
<string name="status_offline">
Desconectado/a
</string>
<text name="display_name_label" value="Nombre mostrado:"/>
<text name="solo_username_label" value="Nombre de usuario:"/>
<text name="status" value="Conectado/a"/>
<text name="user_name_small" value="Jack, ¿has visto esto? Es un nombre larguísimo."/>
<button name="copy_to_clipboard" tool_tip="Copiar al portapapeles"/>
<text name="user_label" value="Nombre de usuario:"/>
<tab_container name="tabs">
<panel label="PERFIL" name="panel_profile"/>
<panel label="DESTACADOS" name="panel_picks"/>
<panel label="NOTAS Y PRIVACIDAD" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="Aucun"/>
<string name="no_group_text" value="Aucun"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Nom d&apos;utilisateur
</text>
<text name="name_descr_text">
Nom d&apos;affichage
</text>
<button label="Profil" name="see_profile_btn" tool_tip="Afficher le profil de cet avatar."/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notes/Perso" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Mes notes perso :"/>
<text name="status_message2" value="Autoriser cette personne à :"/>
<check_box label="Afficher mon statut en ligne" name="status_check"/>
<check_box label="Me situer sur la carte" name="map_check"/>
<check_box label="Modifier, supprimer ou prendre mes objets" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Devenir amis" name="add_friend" tool_tip="Proposer à ce résident de devenir votre ami"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Ouvrir une session IM"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Appeler" name="call" tool_tip="Appeler ce résident"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Carte" name="show_on_map_btn" tool_tip="Afficher le résident sur la carte"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Téléporter" name="teleport" tool_tip="Proposer une téléportation"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=fr-FR
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=fr
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=fr-FR"/>
<string name="no_partner_text" value="Aucun"/>
<string name="no_group_text" value="Aucun"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Vie réelle :"/>
</panel>
<text name="title_member_text" value="Résident depuis :"/>
<text name="title_acc_status_text" value="Statut du compte :"/>
<text_editor name="acc_status_text">
Résident. Aucune info de paiement enregistrée.
Linden.
</text_editor>
<text name="title_partner_text" value="Partenaire :"/>
<panel name="partner_data_panel">
<text initial_value="(récupération en cours)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Groupes :"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Devenir amis" name="add_friend" tool_tip="Proposer à ce résident de devenir votre ami"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Ouvrir une session IM"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Appeler" name="call" tool_tip="Appeler ce résident"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Téléporter" name="teleport" tool_tip="Proposer une téléportation"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Payer le résident ou partager l&apos;inventaire avec lui"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Modifier le profil" name="edit_profile_btn" tool_tip="Modifier vos informations personnelles"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
En ligne
</string>
<string name="status_offline">
Hors ligne
</string>
<text name="display_name_label" value="Nom d&apos;affichage :"/>
<text name="solo_username_label" value="Nom d&apos;utilisateur :"/>
<text name="status" value="En ligne"/>
<text name="user_name_small" value="Jack oh look at me this is a super duper long name"/>
<button name="copy_to_clipboard" tool_tip="Copier dans le presse-papiers"/>
<text name="user_label" value="Nom d&apos;utilisateur :"/>
<tab_container name="tabs">
<panel label="PROFIL" name="panel_profile"/>
<panel label="FAVORIS" name="panel_picks"/>
<panel label="NOTES/PERSO" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profilo" name="panel_profile">
<string name="no_partner_text" value="Nessuno"/>
<string name="no_group_text" value="Nessuno"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Nome utente
</text>
<text name="name_descr_text">
Nome visualizzato
</text>
<button label="Profilo" name="see_profile_btn" tool_tip="Visualizza profilo per questo avatar"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Note e Privacy" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Le mie note private:"/>
<text name="status_message2" value="Consenti a questa persona di:"/>
<check_box label="Vedere se sono online" name="status_check"/>
<check_box label="Vedermi sulla mappa" name="map_check"/>
<check_box label="Modificare, eliminare o prendere i miei oggetti" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Aggiungi come amico" name="add_friend" tool_tip="Offri amicizia a questo residente"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Apri una sessione messaggio istantaneo"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Chiama" name="call" tool_tip="Chiama questo residente"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Mappa" name="show_on_map_btn" tool_tip="Mostra il residente sulla mappa"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Teleport" name="teleport" tool_tip="Offri teleport"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profilo" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=it-IT
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=it
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=it-IT"/>
<string name="no_partner_text" value="Nessuno"/>
<string name="no_group_text" value="Nessuno"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Mondo reale:"/>
</panel>
<text name="title_member_text" value="Residente dal:"/>
<text name="title_acc_status_text" value="Stato account:"/>
<text name="title_partner_text" value="Partner:"/>
<panel name="partner_data_panel">
<text initial_value="(recupero)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Gruppi:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Aggiungi come amico" name="add_friend" tool_tip="Offri amicizia a questo residente"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Apri una sessione messaggio istantaneo"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Chiama" name="call" tool_tip="Chiama questo residente"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Teleport" name="teleport" tool_tip="Offri teleport"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Paga del denaro o condividi qualcosa dall&apos;inventario con il residente"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Modifica profilo" name="edit_profile_btn" tool_tip="Modifica le tue informazioni personali"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Online
</string>
<string name="status_offline">
Offline
</string>
<text name="display_name_label" value="Nome visualizzato:"/>
<text name="solo_username_label" value="Nome utente:"/>
<text name="status" value="Online"/>
<text name="user_name_small" value="Jack guarda quanto è lungo questo splendido nome"/>
<text name="user_name" value="Jack Linden"/>
<button name="copy_to_clipboard" tool_tip="Copia negli appunti"/>
<text name="user_label" value="Nome utente:"/>
<text name="user_slid" value="jack.linden"/>
<tab_container name="tabs">
<panel label="PROFILO" name="panel_profile"/>
<panel label="LUOGHI CONSIGLIATI" name="panel_picks"/>
<panel label="NOTE E PRIVACY" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="プロフィール" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=ja
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/billing.php?lang=ja
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="なし"/>
<string name="no_group_text" value="なし"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
ユーザー名
</text>
<text name="name_descr_text">
表示名
</text>
<button label="プロフィール" name="see_profile_btn" tool_tip="このアバターのプロフィールを表示"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="メモとプライバシー" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="個人的メモ:"/>
<text name="status_message2" value="この人に許可:"/>
<check_box label="オンライン状態の確認" name="status_check"/>
<check_box label="地図で居場所を確認" name="map_check"/>
<check_box label="私のオブジェクトの編集・削除・取得" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出ます"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="インスタントメッセージを開きます"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="コール" name="call" tool_tip="この住人にコールする"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示する"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="テレポート" name="teleport" tool_tip="テレポートを送ります"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="プロフィール" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=ja-JP
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=ja
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=ja-JP"/>
<string name="no_partner_text" value="なし"/>
<string name="no_group_text" value="なし"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="現実世界:"/>
</panel>
<text name="title_member_text" value="住人登録:"/>
<text name="title_acc_status_text" value="アカウントの状態:"/>
<text_editor name="acc_status_text">
住人。 支払情報未登録。
リンデン。
</text_editor>
<text name="title_partner_text" value="パートナー:"/>
<panel name="partner_data_panel">
<text initial_value="(取得中)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="グループ:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出ます"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="インスタントメッセージを開きます"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="コール" name="call" tool_tip="この住人にコールする"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="テレポート" name="teleport" tool_tip="テレポートを送ります"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="住人にお金を渡すか持ち物を共有します"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="プロフィールの編集" name="edit_profile_btn" tool_tip="個人的な情報を編集します"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
オンライン
</string>
<string name="status_offline">
オフライン
</string>
<text name="display_name_label" value="表示名:"/>
<text name="solo_username_label" value="ユーザー名:"/>
<text name="status" value="オンライン"/>
<text name="user_name_small" value="Jack oh look at me this is a super duper long name"/>
<text name="user_name" value="Jack Linden"/>
<button name="copy_to_clipboard" tool_tip="クリップボードにコピー"/>
<text name="user_label" value="ユーザー名:"/>
<text name="user_slid" value="jack.linden"/>
<tab_container name="tabs">
<panel label="プロフィール" name="panel_profile"/>
<panel label="ピック" name="panel_picks"/>
<panel label="メモとプライバシー" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="no_partner_text" value="Żadne"/>
<string name="no_group_text" value="Żadne"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Nazwa użytkownika
</text>
<text name="name_descr_text">
Wyświetlana nazwa
</text>
<button label="Profil" name="see_profile_btn" tool_tip="Zobacz profil tego awatara"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notatki &amp; Prywatność" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Notatki:"/>
<text name="status_message2" value="Pozwól tej osobie na:"/>
<check_box label="Widzenie mojego statusu" name="status_check"/>
<check_box label="Lokalizowanie mnie na mapie" name="map_check"/>
<check_box label="Edytowanie, kasowanie lub zabieranie moich obiektów" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Dodaj do Znajomych" name="add_friend" tool_tip="Zaoferuj znajomość Rezydentowi"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Otwórz wiadomości IM"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Dzwoń" name="call" tool_tip="Zadzwoń do Rezydenta"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Mapa" name="show_on_map_btn" tool_tip="Pokaż Rezydenta na mapie"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Teleportuj" name="teleport" tool_tip="Teleportuj"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="no_partner_text" value="Brak"/>
<string name="no_group_text" value="Żadne"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Życie#1:"/>
</panel>
<text name="title_member_text" value="Urodziny:"/>
<text name="title_acc_status_text" value="Konto:"/>
<text name="title_partner_text" value="Partner:"/>
<panel name="partner_data_panel">
<text initial_value="(przetwarzanie)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Grupy:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Poznaj" name="add_friend" tool_tip="Zaproponuj znajomość Rezydentowi"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Otwórz wiadomości IM"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Dzwoń" name="call" tool_tip="Zadzwoń do tego Rezydenta"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Teleportuj" name="teleport" tool_tip="Teleportuj"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Zapłać lub udostępnij obiekt Rezydentowi"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Edytuj profil" name="edit_profile_btn" tool_tip="Edytuj informacje o sobie"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Obecnie w SL
</string>
<string name="status_offline">
Nieaktywny
</string>
<text name="display_name_label" value="Wyświetlana nazwa:"/>
<text name="solo_username_label" value="Nazwa użytkownika:"/>
<text name="status" value="Obecnie w SL"/>
<text name="user_name_small" value="Jack oh look at me this is a super duper long name"/>
<button name="copy_to_clipboard" tool_tip="Kopiuj do schowka"/>
<text name="user_label" value="Nazwa użytkownika:"/>
<tab_container name="tabs">
<panel label="PROFIL" name="panel_profile"/>
<panel label="ULUBIONE" name="panel_picks"/>
<panel label="NOTATKI &amp; PRYWATNOŚĆ" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Perfil" name="panel_profile">
<string name="no_partner_text" value="Nenhum"/>
<string name="no_group_text" value="Nenhum"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Nome de usuário
</text>
<text name="name_descr_text">
Nome de tela
</text>
<button label="Perfil" name="see_profile_btn" tool_tip="Ver o perfil deste avatar"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Anotações e Privacidade" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Minhas anotações privadas:"/>
<text name="status_message2" value="Deixar esta pessoa:"/>
<check_box label="Ver meu status" name="status_check"/>
<check_box label="Ver minha localização no mapa" name="map_check"/>
<check_box label="Pegar, editar ou excluir objetos meus" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Adicionar amigo" name="add_friend" tool_tip="Oferecer amizade ao residente"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="MI" name="im" tool_tip="Abrir sessão de mensagem instantânea"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Ligar" name="call" tool_tip="Ligar para este residente"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Mapa" name="show_on_map_btn" tool_tip="Exibir o residente no mapa"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Teletransportar" name="teleport" tool_tip="Oferecer teletransporte"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,70 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Perfil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=pt-BR
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=pt
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=pt-BR"/>
<string name="no_partner_text" value="Ninguém"/>
<string name="no_group_text" value="Nenhum"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Mundo real:"/>
</panel>
<text name="title_member_text" value="Residente desde:"/>
<text name="title_acc_status_text" value="Conta:"/>
<text name="title_partner_text" value="Parceiro(a):"/>
<panel name="partner_data_panel">
<text initial_value="(pesquisando)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Grupos:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Adicionar amigo" name="add_friend" tool_tip="Oferecer amizade ao residente"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="MI" name="im" tool_tip="Abrir sessão de mensagem instantânea"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Ligar" name="call" tool_tip="Ligar para este residente"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Teletransportar" name="teleport" tool_tip="Oferecer teletransporte"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Pagar ou compartilhar inventário com o residente"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
<button label="Editar perfil" name="edit_profile_btn" tool_tip="Editar dados pessoais"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Conectado
</string>
<string name="status_offline">
Desconectado
</string>
<text name="display_name_label" value="Nome de tela:"/>
<text name="solo_username_label" value="Nome de usuário:"/>
<text name="status" value="Conectado"/>
<text name="user_name_small" value="Jack oh look at me this is a super duper long name"/>
<button name="copy_to_clipboard" tool_tip="Copiar para área de transferência"/>
<text name="user_label" value="Nome de usuário:"/>
<tab_container name="tabs">
<panel label="PERFIL" name="panel_profile"/>
<panel label="DESTAQUES" name="panel_picks"/>
<panel label="ANOTAÇÕES E PRIVACIDADE" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Профиль" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="Нет"/>
<string name="no_group_text" value="Нет"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Имя пользователя
</text>
<text name="name_descr_text">
Экранное имя
</text>
<button label="Профиль" name="see_profile_btn" tool_tip="Посмотреть профиль этого аватара"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Заметки и приватность" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Мои личные заметки:"/>
<text name="status_message2" value="Разрешить этому жителю:"/>
<check_box label="Видеть мой статус в сети" name="status_check"/>
<check_box label="Видеть меня на карте" name="map_check"/>
<check_box label="Редактировать, удалять или брать мои объекты" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Добавить в друзья" name="add_friend" tool_tip="Предложить дружбу этому жителю"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Начать сеанс IM"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Позвонить" name="call" tool_tip="Позвонить этому жителю"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Карта" name="show_on_map_btn" tool_tip="Показать жителя на карте"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Телепортация" name="teleport" tool_tip="Предложить телепортацию"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Профиль" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="Нет"/>
<string name="no_group_text" value="Нет"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Реальный мир:"/>
</panel>
<text name="title_member_text" value="Обитатель SL с:"/>
<text name="title_acc_status_text" value="Статус аккаунта:"/>
<text name="title_partner_text" value="Партнер:"/>
<panel name="partner_data_panel">
<text initial_value="(получение информации)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Группы:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="В друзья" name="add_friend" tool_tip="Предложить дружбу этому жителю"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="Начать сеанс IM"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Позвонить" name="call" tool_tip="Позвонить этому жителю"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Телепортироваться" name="teleport" tool_tip="Предложить телепортацию"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Заплатить жителю или поделиться с ним вещами"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Онлайн
</string>
<string name="status_offline">
Оффлайн
</string>
<text name="display_name_label" value="Экранное имя:"/>
<text name="solo_username_label" value="Имя пользователя:"/>
<text name="status" value="Онлайн"/>
<text name="user_name_small" value="Взгляни-ка, друг, какое длиннющее имя"/>
<button name="copy_to_clipboard" tool_tip="Копировать в буфер обмена"/>
<text name="user_label" value="Имя пользователя:"/>
<tab_container name="tabs">
<panel label="ПРОФИЛЬ" name="panel_profile"/>
<panel label="ПОДБОРКА" name="panel_picks"/>
<panel label="ЗАМЕТКИ И ДОСТУП" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="Hiçbiri"/>
<string name="no_group_text" value="Hiçbiri"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
Kullanıcı adı
</text>
<text name="name_descr_text">
Görüntü Adı
</text>
<button label="Profil" name="see_profile_btn" tool_tip="Bu avatar profiline bak"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notlar ve Gizlilik" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Özel notlarım:"/>
<text name="status_message2" value="Bu kişiye şu izinler verilsin:"/>
<check_box label="Çevrimiçi durumumu görme" name="status_check"/>
<check_box label="Beni haritada görme" name="map_check"/>
<check_box label="Nesnelerimi düzenleme, silme veya alma" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Arkadaş Ekle" name="add_friend" tool_tip="Sakine arkadaşlık öner"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="Aİ" name="im" tool_tip="Anlık ileti oturumu aç"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Ara" name="call" tool_tip="Bu Sakini ara"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="Harita" name="show_on_map_btn" tool_tip="Sakini haritada göster"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Işınla" name="teleport" tool_tip="Işınlama teklif et"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profil" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="Hiçbiri"/>
<string name="no_group_text" value="Hiçbiri"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="Gerçek Dünya:"/>
</panel>
<text name="title_member_text" value="Ne Zamandan Beri SL Sakini:"/>
<text name="title_acc_status_text" value="Hesap Durumu:"/>
<text name="title_partner_text" value="Partner:"/>
<panel name="partner_data_panel">
<text initial_value="(alınıyor)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="Gruplar:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="Arkadaş Ekle" name="add_friend" tool_tip="Sakine arkadaşlık öner"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="Aİ" name="im" tool_tip="Anlık ileti oturumu aç"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Ara" name="call" tool_tip="Bu Sakini ara"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="Işınla" name="teleport" tool_tip="Işınlama teklif et"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="Sakine para öde veya envanteri paylaş"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
Çevrimiçi
</string>
<string name="status_offline">
Çevrimdışı
</string>
<text name="display_name_label" value="Ekran Adı:"/>
<text name="solo_username_label" value="Kullanıcı Adı:"/>
<text name="status" value="Çevrimiçi"/>
<text name="user_name_small" value="Bak arkadaşım bu çok uzun bir ad"/>
<button name="copy_to_clipboard" tool_tip="Panoya Kopyala"/>
<text name="user_label" value="Kullanıcı Adı:"/>
<tab_container name="tabs">
<panel label="PROFİL" name="panel_profile"/>
<panel label="SEÇMELER" name="panel_picks"/>
<panel label="NOTLAR &amp; GİZLİLİK" name="panel_notes"/>
</tab_container>
</panel>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="檔案" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="無"/>
<string name="no_group_text" value="無"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
<text name="display_name_descr_text">
User name
</text>
<text name="name_descr_text">
顯示名稱
</text>
<button label="檔案" name="see_profile_btn" tool_tip="察看這位化身的檔案"/>
</panel>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notes &amp; Privacy" name="panel_notes">
<layout_stack name="layout">
<layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="My private notes:"/>
<text name="status_message2" value="允許這個人可以:"/>
<check_box label="看到我上線狀態" name="status_check"/>
<check_box label="在地圖上看見我" name="map_check"/>
<check_box label="邊輯,刪除或取下我的物件" name="objects_check"/>
</panel>
</scroll_container>
</layout_panel>
<layout_panel name="notes_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="加為朋友" name="add_friend" tool_tip="向這個居民提出交友邀請"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="開啟即時訊息會話"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="通話" name="call" tool_tip="與這位居民通話"/>
</layout_panel>
<layout_panel name="show_on_map_btn_lp">
<button label="地圖" name="show_on_map_btn" tool_tip="在地圖上顯示這個居民"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="瞬間傳送" name="teleport" tool_tip="發給瞬間傳送請求"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="檔案" name="panel_profile">
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string name="payment_update_link_url">
http://www.secondlife.com/account/billing.php?lang=en
</string>
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=en
</string>
<string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="無"/>
<string name="no_group_text" value="無"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
<string name="name_text_args">
[NAME]
</string>
<string name="display_name_text_args">
[DISPLAY_NAME]
</string>
<layout_stack name="layout">
<layout_panel name="profile_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<panel name="second_life_image_panel">
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
<text name="title_rw_descr_text" value="真實世界:"/>
</panel>
<text name="title_member_text" value="成為居民自:"/>
<text name="title_acc_status_text" value="帳戶狀態:"/>
<text name="title_partner_text" value="配偶:"/>
<panel name="partner_data_panel">
<text initial_value="(檢索中)" name="partner_text"/>
</panel>
<text name="title_groups_text" value="群組:"/>
</panel>
</scroll_container>
</layout_panel>
</layout_stack>
<layout_stack name="layout_verb_buttons">
<layout_panel name="profile_buttons_panel">
<layout_stack name="bottom_bar_ls">
<layout_panel name="add_friend_btn_lp">
<button label="加為朋友" name="add_friend" tool_tip="發出交友邀請給這居民"/>
</layout_panel>
<layout_panel name="im_btn_lp">
<button label="IM" name="im" tool_tip="開啟即時訊息會話"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="通話" name="call" tool_tip="與這位居民通話"/>
</layout_panel>
<layout_panel name="chat_btn_lp">
<button label="瞬間傳送" name="teleport" tool_tip="發給瞬間傳送請求"/>
</layout_panel>
<layout_panel name="overflow_btn_lp">
<menu_button label="▼" name="overflow_btn" tool_tip="支付金錢,或分享收納區給居民"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_target_profile">
<string name="status_online">
上線
</string>
<string name="status_offline">
離線
</string>
<text name="display_name_label" value="顯示名稱:"/>
<text name="solo_username_label" value="使用者名稱:"/>
<text name="status" value="上線"/>
<text name="user_name_small" value="Jack oh look at me this is a super duper long name"/>
<button name="copy_to_clipboard" tool_tip="覆製到剪貼簿"/>
<text name="user_label" value="使用者名稱:"/>
<tab_container name="tabs">
<panel label="檔案" name="panel_profile"/>
<panel label="精選地點" name="panel_picks"/>
<panel label="NOTES &amp; PRIVACY" name="panel_notes"/>
</tab_container>
</panel>