summaryrefslogtreecommitdiff
path: root/indra/newview/llwearableitemslist.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llwearableitemslist.h')
-rw-r--r--indra/newview/llwearableitemslist.h85
1 files changed, 75 insertions, 10 deletions
diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h
index 7ad1b5a3ad..2f95c733aa 100644
--- a/indra/newview/llwearableitemslist.h
+++ b/indra/newview/llwearableitemslist.h
@@ -56,13 +56,13 @@ class LLPanelWearableListItem : public LLPanelInventoryListItemBase
public:
/**
- * Shows buttons when mouse is over
- */
+ * Shows buttons when mouse is over
+ */
/*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
/**
- * Hides buttons when mouse is out
- */
+ * Hides buttons when mouse is out
+ */
/*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
protected:
@@ -70,6 +70,34 @@ protected:
LLPanelWearableListItem(LLViewerInventoryItem* item);
};
+/**
+ * @class LLPanelWearableOutfitItem
+ *
+ * Outfit item for "My Outfits" list.
+ * Extends LLPanelInventoryListItemBase with handling
+ * double click to wear the item.
+ */
+class LLPanelWearableOutfitItem : public LLPanelInventoryListItemBase
+{
+ LOG_CLASS(LLPanelWearableOutfitItem);
+public:
+ static LLPanelWearableOutfitItem* create(LLViewerInventoryItem* item);
+
+ /**
+ * Puts item on if it is not worn by agent
+ * otherwise takes it off on double click.
+ */
+ /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+
+ /**
+ * Updates item name and (worn) suffix.
+ */
+ /*virtual*/ void updateItem(const std::string& name);
+
+protected:
+
+ LLPanelWearableOutfitItem(LLViewerInventoryItem* item);
+};
class LLPanelDeletableWearableListItem : public LLPanelWearableListItem
{
@@ -93,6 +121,21 @@ protected:
/*virtual*/ void init();
};
+/** Outfit list item for an attachment */
+class LLPanelAttachmentListItem : public LLPanelDeletableWearableListItem
+{
+ LOG_CLASS(LLPanelAttachmentListItem);
+public:
+ static LLPanelAttachmentListItem* create(LLViewerInventoryItem* item);
+ virtual ~LLPanelAttachmentListItem() {};
+
+ /** Set item title. Joint name is added to the title in parenthesis */
+ /*virtual*/ void setTitle(const std::string& title, const std::string& highlit_text);
+
+protected:
+ LLPanelAttachmentListItem(LLViewerInventoryItem* item) : LLPanelDeletableWearableListItem(item) {};
+};
+
/**
* @class LLPanelClothingListItem
*
@@ -116,7 +159,7 @@ public:
inline void setShowMoveDownButton(bool show) { setShowWidget("btn_move_down", show); }
inline void setShowLockButton(bool show) { setShowWidget("btn_lock", show); }
- inline void setShowEditButton(bool show) { setShowWidget("btn_edit", show); }
+ inline void setShowEditButton(bool show) { setShowWidget("btn_edit_panel", show); }
protected:
@@ -141,7 +184,7 @@ public:
* Make button visible during mouse over event.
*/
inline void setShowLockButton(bool show) { setShowWidget("btn_lock", show); }
- inline void setShowEditButton(bool show) { setShowWidget("btn_edit", show); }
+ inline void setShowEditButton(bool show) { setShowWidget("btn_edit_panel", show); }
protected:
LLPanelBodyPartsListItem(LLViewerInventoryItem* item);
@@ -160,8 +203,8 @@ class LLPanelDummyClothingListItem : public LLPanelWearableListItem
public:
static LLPanelDummyClothingListItem* create(LLWearableType::EType w_type);
- /*virtual*/ void updateItem();
/*virtual*/ BOOL postBuild();
+ LLWearableType::EType getWearableType() const;
protected:
LLPanelDummyClothingListItem(LLWearableType::EType w_type);
@@ -286,35 +329,57 @@ public:
*/
class ContextMenu : public LLListContextMenu, public LLSingleton<ContextMenu>
{
+ public:
+ ContextMenu();
+ /*virtual*/ void show(LLView* spawning_view, const uuid_vec_t& uuids, S32 x, S32 y);
+
protected:
enum {
MASK_CLOTHING = 0x01,
MASK_BODYPART = 0x02,
MASK_ATTACHMENT = 0x04,
+ MASK_UNKNOWN = 0x08,
};
/* virtual */ LLContextMenu* createMenu();
void updateItemsVisibility(LLContextMenu* menu);
- void setMenuItemVisible(LLContextMenu* menu, const std::string& name, bool val);
- void updateMask(U32& mask, LLAssetType::EType at);
+ void updateItemsLabels(LLContextMenu* menu);
+ static void setMenuItemVisible(LLContextMenu* menu, const std::string& name, bool val);
+ static void setMenuItemEnabled(LLContextMenu* menu, const std::string& name, bool val);
+ static void updateMask(U32& mask, LLAssetType::EType at);
+ static void createNewWearable(const LLUUID& item_id);
+
+ LLWearableItemsList* mParent;
};
struct Params : public LLInitParam::Block<Params, LLInventoryItemsList::Params>
{
- Optional<bool> use_internal_context_menu;
+ Optional<bool> standalone;
Params();
};
virtual ~LLWearableItemsList();
+ /*virtual*/ void addNewItem(LLViewerInventoryItem* item, bool rearrange = true);
+
void updateList(const LLUUID& category_id);
+ /**
+ * Update items that match UUIDs from changed_items_uuids
+ * or links that point at such items.
+ */
+ void updateChangedItems(const LLInventoryModel::changed_items_t& changed_items_uuids);
+
+ bool isStandalone() const { return mIsStandalone; }
+
protected:
friend class LLUICtrlFactory;
LLWearableItemsList(const LLWearableItemsList::Params& p);
void onRightClick(S32 x, S32 y);
+
+ bool mIsStandalone;
};
#endif //LL_LLWEARABLEITEMSLIST_H