summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeyla Farazha <leyla@lindenlab.com>2009-10-10 00:43:39 +0000
committerLeyla Farazha <leyla@lindenlab.com>2009-10-10 00:43:39 +0000
commit18f1895bf2abceadba292672eb80a384f0142c73 (patch)
treee7c5b954babead6ae542c81cf72e918dbebbd8e3
parent290fc39de324ec28dd0ce838b224d2abade3a95d (diff)
EXT-1400 New 'name popup' lets you do things (IM, TP etc) to your own avatar
EXT-1021 Update code to use new Inventory Icon art files in floater_invetory.xml EXT-176 Open and closed state for art for folders in list view in side panel
-rw-r--r--indra/newview/llfloaterinventory.cpp3
-rw-r--r--indra/newview/llfolderviewitem.cpp14
-rw-r--r--indra/newview/llfolderviewitem.h2
-rw-r--r--indra/newview/llinspectavatar.cpp5
-rw-r--r--indra/newview/llinventorybridge.cpp135
-rw-r--r--indra/newview/llnearbychat.cpp4
-rw-r--r--indra/newview/llviewermenu.cpp14
-rw-r--r--indra/newview/llviewertexteditor.cpp57
-rw-r--r--indra/newview/skins/default/xui/en/inspect_avatar.xml13
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml53
10 files changed, 137 insertions, 163 deletions
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 116286329c..d9cd929606 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -1491,7 +1491,8 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)
{
LLFolderViewFolder::Params p;
p.name = new_listener->getDisplayName();
- p.icon = new_listener->getIcon();
+ p.icon = LLUI::getUIImage("Inv_FolderClosed");
+ p.icon_open = LLUI::getUIImage("Inv_FolderOpen");
p.root = mFolders;
p.listener = new_listener;
LLFolderViewFolder* folderp = LLUICtrlFactory::create<LLFolderViewFolder>(p);
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index ee5fba5ace..0d432bd398 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -125,6 +125,8 @@ LLFolderViewItem::LLFolderViewItem(LLFolderViewItem::Params p)
mLabel(p.name),
mRoot(p.root),
mCreationDate(p.creation_date),
+ mIcon(p.icon),
+ mIconOpen(p.icon_open),
mListener(p.listener),
mArrowImage(p.folder_arrow_image),
mBoxImage(p.selection_image)
@@ -893,11 +895,15 @@ void LLFolderViewItem::draw()
mDragAndDropTarget = FALSE;
}
-
- if(mIcon)
- {
- mIcon->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
+ // First case is used for open folders
+ if (!mIconOpen.isNull() && (llabs(mControlLabelRotation) > 80))
+ {
+ mIconOpen->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
}
+ else if(mIcon)
+ {
+ mIcon->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
+ }
if (!mLabel.empty())
{
diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h
index e9aab560c8..09c97662d9 100644
--- a/indra/newview/llfolderviewitem.h
+++ b/indra/newview/llfolderviewitem.h
@@ -96,6 +96,7 @@ public:
struct Params : public LLInitParam::Block<Params, LLView::Params>
{
Optional<LLUIImage*> icon;
+ Optional<LLUIImage*> icon_open; // used for folders
Optional<LLFolderView*> root;
Optional<LLFolderViewEventListener*> listener;
@@ -143,6 +144,7 @@ protected:
std::string mLabelSuffix;
LLUIImagePtr mIcon;
std::string mStatusText;
+ LLUIImagePtr mIconOpen;
BOOL mHasVisibleChildren;
S32 mIndentation;
S32 mNumDescendantsSelected;
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 947e5d80da..261d0836a0 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -276,6 +276,11 @@ void LLInspectAvatar::onOpen(const LLSD& data)
mAvatarID = data["avatar_id"];
mPartnerID = LLUUID::null;
+ BOOL self = mAvatarID == gAgent.getID();
+
+ getChild<LLUICtrl>("gear_self_btn")->setVisible(self);
+ getChild<LLUICtrl>("gear_btn")->setVisible(!self);
+
// Position the inspector relative to the mouse cursor
// Similar to how tooltips are positioned
// See LLToolTipMgr::createToolTip
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index e5cf8ccf66..f2329c2ef5 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -120,38 +120,38 @@ bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& respon
std::string ICON_NAME[ICON_NAME_COUNT] =
{
- "inv_item_texture.tga",
- "inv_item_sound.tga",
- "inv_item_callingcard_online.tga",
- "inv_item_callingcard_offline.tga",
- "inv_item_landmark.tga",
- "inv_item_landmark_visited.tga",
- "inv_item_script.tga",
- "inv_item_clothing.tga",
- "inv_item_object.tga",
- "inv_item_object_multi.tga",
- "inv_item_notecard.tga",
- "inv_item_skin.tga",
- "inv_item_snapshot.tga",
-
- "inv_item_shape.tga",
- "inv_item_skin.tga",
- "inv_item_hair.tga",
- "inv_item_eyes.tga",
- "inv_item_shirt.tga",
- "inv_item_pants.tga",
- "inv_item_shoes.tga",
- "inv_item_socks.tga",
- "inv_item_jacket.tga",
- "inv_item_gloves.tga",
- "inv_item_undershirt.tga",
- "inv_item_underpants.tga",
- "inv_item_skirt.tga",
+ "Inv_Texture",
+ "Inv_Sound",
+ "Inv_CallingCard",
+ "Inv_CallingCard",
+ "Inv_Landmark",
+ "Inv_Landmark",
+ "Inv_Script",
+ "Inv_Clothing",
+ "Inv_Object",
+ "Inv_Object",
+ "Inv_Notecard",
+ "Inv_Skin",
+ "Inv_Snapshot",
+
+ "Inv_BodyShape",
+ "Inv_Skin",
+ "Inv_Hair",
+ "Inv_Eye",
+ "Inv_Shirt",
+ "Inv_Pants",
+ "Inv_Shoe",
+ "Inv_Socks",
+ "Inv_Jacket",
+ "Inv_Gloves",
+ "Inv_Undershirt",
+ "Inv_Underpants",
+ "Inv_Skirt",
"inv_item_alpha.tga",
"inv_item_tattoo.tga",
- "inv_item_animation.tga",
- "inv_item_gesture.tga",
+ "Inv_Animation",
+ "Inv_Gesture",
"inv_item_linkitem.tga",
"inv_item_linkfolder.tga"
@@ -2099,81 +2099,8 @@ LLUIImagePtr LLFolderBridge::getIcon() const
LLUIImagePtr LLFolderBridge::getIcon(LLAssetType::EType preferred_type)
{
- if (preferred_type >= LLAssetType::AT_FOLDER_ENSEMBLE_START &&
- preferred_type <= LLAssetType::AT_FOLDER_ENSEMBLE_END)
- {
- LLUIImage* icon = LLUI::getUIImage(LLFolderType::lookupIconName(preferred_type));
- if (icon)
- return icon;
- }
-
- const char* control = NULL;
- switch(preferred_type)
- {
- case LLAssetType::AT_TEXTURE:
- control = "inv_folder_texture.tga";
- break;
- case LLAssetType::AT_SOUND:
- control = "inv_folder_sound.tga";
- break;
- case LLAssetType::AT_CALLINGCARD:
- control = "inv_folder_callingcard.tga";
- break;
- case LLAssetType::AT_LANDMARK:
- control = "inv_folder_landmark.tga";
- break;
- case LLAssetType::AT_SCRIPT:
- case LLAssetType::AT_LSL_TEXT:
- control = "inv_folder_script.tga";
- break;
- case LLAssetType::AT_OBJECT:
- control = "inv_folder_object.tga";
- break;
- case LLAssetType::AT_NOTECARD:
- control = "inv_folder_notecard.tga";
- break;
- case LLAssetType::AT_CATEGORY:
- control = "inv_folder_plain_closed.tga";
- break;
- case LLAssetType::AT_CLOTHING:
- control = "inv_folder_clothing.tga";
- break;
- case LLAssetType::AT_BODYPART:
- control = "inv_folder_bodypart.tga";
- break;
- case LLAssetType::AT_TRASH:
- control = "inv_folder_trash.tga";
- break;
- case LLAssetType::AT_SNAPSHOT_CATEGORY:
- control = "inv_folder_snapshot.tga";
- break;
- case LLAssetType::AT_LOST_AND_FOUND:
- control = "inv_folder_lostandfound.tga";
- break;
- case LLAssetType::AT_ANIMATION:
- control = "inv_folder_animation.tga";
- break;
- case LLAssetType::AT_GESTURE:
- control = "inv_folder_gesture.tga";
- break;
- case LLAssetType::AT_FAVORITE:
- //TODO - need icon
- control = "inv_folder_plain_closed.tga";
- break;
- case LLAssetType::AT_OUTFIT:
- control = "inv_folder_outfit.tga";
- break;
- case LLAssetType::AT_CURRENT_OUTFIT:
- control = "inv_folder_current_outfit.tga";
- break;
- case LLAssetType::AT_MY_OUTFITS:
- control = "inv_folder_my_outfits.tga";
- break;
- default:
- control = "inv_folder_plain_closed.tga";
- break;
- }
- return LLUI::getUIImage(control);
+ // we only have one folder image now
+ return LLUI::getUIImage("Inv_FolderClosed");
}
BOOL LLFolderBridge::renameItem(const std::string& new_name)
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index cc5f37b903..91862112a0 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -430,7 +430,7 @@ void LLNearbyChat::pinn_panel()
mEChatTearofState = CHAT_PINNED;
LLIconCtrl* tearoff_btn = mChatCaptionPanel->getChild<LLIconCtrl>("tearoff_btn",false);
- tearoff_btn->setValue("inv_item_landmark_visited.tga");
+ tearoff_btn->setValue("Inv_Landmark");
const LLRect& parent_rect = gViewerWindow->getRootView()->getRect();
@@ -451,7 +451,7 @@ void LLNearbyChat::float_panel()
mEChatTearofState = CHAT_UNPINNED;
LLIconCtrl* tearoff_btn = mChatCaptionPanel->getChild<LLIconCtrl>("tearoff_btn", false);
- tearoff_btn->setValue("inv_item_landmark.tga");
+ tearoff_btn->setValue("Inv_Landmark");
mResizeBar[LLResizeBar::BOTTOM]->setVisible(true);
mResizeBar[LLResizeBar::LEFT]->setVisible(true);
mResizeBar[LLResizeBar::RIGHT]->setVisible(true);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 3e7e5f77bb..a81d26cb7b 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -3453,14 +3453,11 @@ class LLSelfStandUp : public view_listener_t
}
};
-class LLSelfEnableStandUp : public view_listener_t
+bool enable_standup_self()
{
- bool handleEvent(const LLSD& userdata)
- {
- bool new_value = gAgent.getAvatarObject() && gAgent.getAvatarObject()->isSitting();
- return new_value;
- }
-};
+ bool new_value = gAgent.getAvatarObject() && gAgent.getAvatarObject()->isSitting();
+ return new_value;
+}
class LLSelfFriends : public view_listener_t
{
@@ -7952,7 +7949,8 @@ void initialize_menus()
view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp");
view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments");
- view_listener_t::addMenu(new LLSelfEnableStandUp(), "Self.EnableStandUp");
+ visible.add("Self.VisibleStandUp", boost::bind(&enable_standup_self));
+ enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self));
view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
// we don't use boost::bind directly to delay side tray construction
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index b853bcb46e..0ce1ecc6ee 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -459,57 +459,26 @@ LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const
case LLAssetType::AT_TEXTURE:
if(item->getInventoryType() == LLInventoryType::IT_SNAPSHOT)
{
- img_name = "inv_item_snapshot.tga";
+ img_name = "Inv_Snapshot";
}
else
{
- img_name = "inv_item_texture.tga";
+ img_name = "Inv_Texture";
}
break;
- case LLAssetType::AT_SOUND: img_name = "inv_item_sound.tga"; break;
- case LLAssetType::AT_LANDMARK:
- if (item->getFlags() & LLInventoryItem::II_FLAGS_LANDMARK_VISITED)
- {
- img_name = "inv_item_landmark_visited.tga";
- }
- else
- {
- img_name = "inv_item_landmark.tga";
- }
- break;
- case LLAssetType::AT_CALLINGCARD:
- {
- BOOL online;
- online = LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID());
- if (online)
- {
- img_name = "inv_item_callingcard_online.tga"; break;
- }
- else
- {
- img_name = "inv_item_callingcard_offline.tga"; break;
- }
- break;
- }
- case LLAssetType::AT_CLOTHING: img_name = "inv_item_clothing.tga"; break;
- case LLAssetType::AT_OBJECT:
- if (item->getFlags() & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS)
- {
- img_name = "inv_item_object_multi.tga";
- }
- else
- {
- img_name = "inv_item_object.tga";
- }
- break;
- case LLAssetType::AT_NOTECARD: img_name = "inv_item_notecard.tga"; break;
- case LLAssetType::AT_LSL_TEXT: img_name = "inv_item_script.tga"; break;
- case LLAssetType::AT_BODYPART: img_name = "inv_item_skin.tga"; break;
- case LLAssetType::AT_ANIMATION: img_name = "inv_item_animation.tga";break;
- case LLAssetType::AT_GESTURE: img_name = "inv_item_gesture.tga"; break;
+ case LLAssetType::AT_SOUND: img_name = "Inv_Sound"; break;
+ case LLAssetType::AT_CLOTHING: img_name = "Inv_Clothing"; break;
+ case LLAssetType::AT_OBJECT: img_name = "Inv_Object"; break;
+ case LLAssetType::AT_CALLINGCARD: img_name = "Inv_CallingCard"; break;
+ case LLAssetType::AT_LANDMARK: img_name = "Inv_Landmark"; break;
+ case LLAssetType::AT_NOTECARD: img_name = "Inv_Notecard"; break;
+ case LLAssetType::AT_LSL_TEXT: img_name = "Inv_Script"; break;
+ case LLAssetType::AT_BODYPART: img_name = "Inv_Skin"; break;
+ case LLAssetType::AT_ANIMATION: img_name = "Inv_Animation";break;
+ case LLAssetType::AT_GESTURE: img_name = "Inv_Gesture"; break;
//TODO need img_name
- case LLAssetType::AT_FAVORITE: img_name = "inv_item_landmark.tga"; break;
+ case LLAssetType::AT_FAVORITE: img_name = "Inv_Landmark"; break;
default: llassert(0);
}
diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml
index 1af07c35be..a934e541da 100644
--- a/indra/newview/skins/default/xui/en/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml
@@ -148,4 +148,17 @@
right="-10"
top="249"
width="18" />
+ <menu_button
+ visible="false"
+ follows="top|left"
+ height="18"
+ image_disabled="OptionsMenu_Disabled"
+ image_selected="OptionsMenu_Press"
+ image_unselected="OptionsMenu_Off"
+ menu_filename="menu_inspect_self_gear.xml"
+ name="gear_self_btn"
+ picture_style="true"
+ right="-10"
+ top="249"
+ width="18" />
</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
new file mode 100644
index 0000000000..240822e5ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu
+ create_jump_keys="true"
+ layout="topleft"
+ mouse_opaque="false"
+ visible="false"
+ name="Gear Menu">
+ <menu_item_call
+ label="Stand Up"
+ layout="topleft"
+ enabled="true"
+ name="stand_up">
+ <menu_item_call.on_click
+ function="Self.StandUp"
+ parameter="" />
+ <menu_item_call.on_visible
+ function="Self.VisibleStandUp" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Appearance"
+ layout="topleft"
+ name="my_appearance">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="appearance" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCustomizeAvatar" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Profile"
+ layout="topleft"
+ enabled="true"
+ name="my_profile">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="agent" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Friends"
+ layout="topleft"
+ name="my_friends">
+ <menu_item_call.on_click
+ function="Self.Friends"
+ parameter="" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Groups"
+ layout="topleft"
+ name="my_groups">
+ <menu_item_call.on_click
+ function="Self.Groups" />
+ </menu_item_call>
+</menu> \ No newline at end of file