summaryrefslogtreecommitdiff
path: root/indra/newview/llcofwearables.h
diff options
context:
space:
mode:
authorDessie Linden <dessie@lindenlab.com>2010-05-14 09:11:17 -0700
committerDessie Linden <dessie@lindenlab.com>2010-05-14 09:11:17 -0700
commit5fe6a5489ccfea4772f4cd4e3310b98a71ff2bab (patch)
tree74f791fe0470ae9528b552e87ff572851efab3da /indra/newview/llcofwearables.h
parentc72d3b8bf40d7a6443345a9a53df5e6f7739a4b1 (diff)
parentd9f519d55c4b5cff0fa56d2130a7e25a144be9ff (diff)
Merged
Diffstat (limited to 'indra/newview/llcofwearables.h')
-rw-r--r--indra/newview/llcofwearables.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h
index 32acba5a3e..612bb103d2 100644
--- a/indra/newview/llcofwearables.h
+++ b/indra/newview/llcofwearables.h
@@ -40,6 +40,53 @@
class LLFlatListView;
+
+/** Abstract comparator of wearable list items */
+class LLWearableListItemComparator : public LLFlatListView::ItemComparator
+{
+ LOG_CLASS(LLWearableListItemComparator);
+
+public:
+ LLWearableListItemComparator() {};
+ virtual ~LLWearableListItemComparator() {};
+
+ virtual bool compare(const LLPanel* item1, const LLPanel* item2) const
+ {
+ const LLPanelWearableListItem* wearable_item1 = dynamic_cast<const LLPanelWearableListItem*>(item1);
+ const LLPanelWearableListItem* wearable_item2 = dynamic_cast<const LLPanelWearableListItem*>(item2);
+
+ if (!wearable_item1 || !wearable_item2)
+ {
+ llwarning("item1 and item2 cannot be null", 0);
+ return true;
+ }
+
+ return doCompare(wearable_item1, wearable_item2);
+ }
+
+protected:
+
+ /**
+ * Returns true if wearable_item1 < wearable_item2, false otherwise
+ * Implement this method in your particular comparator.
+ */
+ virtual bool doCompare(const LLPanelWearableListItem* wearable_item1, const LLPanelWearableListItem* wearable_item2) const = 0;
+};
+
+
+class LLWearableItemNameComparator : public LLWearableListItemComparator
+{
+ LOG_CLASS(LLWearableItemNameComparator);
+
+public:
+ LLWearableItemNameComparator() {};
+ virtual ~LLWearableItemNameComparator() {};
+
+protected:
+ virtual bool doCompare(const LLPanelWearableListItem* wearable_item1, const LLPanelWearableListItem* wearable_item2) const;
+};
+
+
/**
* Adaptor between LLAccordionCtrlTab and LLFlatListView to facilitate communication between them
* (notify, notifyParent) regarding size changes of a list and selection changes across accordion tabs.