summaryrefslogtreecommitdiff
path: root/indra/newview/lloutfitslist.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lloutfitslist.h')
-rw-r--r--indra/newview/lloutfitslist.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h
index 44f6ec908b..478eaa50b3 100644
--- a/indra/newview/lloutfitslist.h
+++ b/indra/newview/lloutfitslist.h
@@ -32,18 +32,34 @@
#ifndef LL_LLOUTFITSLIST_H
#define LL_LLOUTFITSLIST_H
+#include "llaccordionctrl.h"
#include "llpanel.h"
// newview
#include "llinventorymodel.h"
#include "llinventoryobserver.h"
-class LLAccordionCtrl;
class LLAccordionCtrlTab;
class LLWearableItemsList;
class LLListContextMenu;
/**
+ * @class LLOutfitTabNameComparator
+ *
+ * Comparator of outfit tabs.
+ */
+class LLOutfitTabNameComparator : public LLAccordionCtrl::LLTabComparator
+{
+ LOG_CLASS(LLOutfitTabNameComparator);
+
+public:
+ LLOutfitTabNameComparator() {};
+ virtual ~LLOutfitTabNameComparator() {};
+
+ /*virtual*/ bool compare(const LLAccordionCtrlTab* tab1, const LLAccordionCtrlTab* tab2) const;
+};
+
+/**
* @class LLOutfitsList
*
* A list of agents's outfits from "My Outfits" inventory category
@@ -55,6 +71,9 @@ class LLListContextMenu;
class LLOutfitsList : public LLPanel
{
public:
+ typedef boost::function<void (const LLUUID&)> selection_change_callback_t;
+ typedef boost::signals2::signal<void (const LLUUID&)> selection_change_signal_t;
+
LLOutfitsList();
virtual ~LLOutfitsList();
@@ -70,6 +89,8 @@ public:
const LLUUID& getSelectedOutfitUUID() const { return mSelectedOutfitUUID; }
+ boost::signals2::connection addSelectionChangeCallback(selection_change_callback_t cb);
+
private:
/**
* Reads xml with accordion tab and Flat list from xml file.
@@ -94,6 +115,11 @@ private:
void changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id);
/**
+ * Saves newly selected outfit ID.
+ */
+ void setSelectedOutfitUUID(const LLUUID& category_id);
+
+ /**
* Called upon list refresh event to update tab visibility depending on
* the results of applying filter to the title and list items of the tab.
*/
@@ -107,6 +133,7 @@ private:
void onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const LLUUID& cat_id);
void onAccordionTabDoubleClick(LLUICtrl* ctrl, S32 x, S32 y, const LLUUID& cat_id);
void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y);
+ void onCOFChanged();
void onSelectionChange(LLUICtrl* ctrl);
@@ -122,6 +149,7 @@ private:
wearables_lists_map_t mSelectedListsMap;
LLUUID mSelectedOutfitUUID;
+ selection_change_signal_t mSelectionChangeSignal;
std::string mFilterSubString;