diff options
author | Dessie Linden <dessie@lindenlab.com> | 2010-05-14 09:11:17 -0700 |
---|---|---|
committer | Dessie Linden <dessie@lindenlab.com> | 2010-05-14 09:11:17 -0700 |
commit | 5fe6a5489ccfea4772f4cd4e3310b98a71ff2bab (patch) | |
tree | 74f791fe0470ae9528b552e87ff572851efab3da /indra/newview/llcofwearables.h | |
parent | c72d3b8bf40d7a6443345a9a53df5e6f7739a4b1 (diff) | |
parent | d9f519d55c4b5cff0fa56d2130a7e25a144be9ff (diff) |
Merged
Diffstat (limited to 'indra/newview/llcofwearables.h')
-rw-r--r-- | indra/newview/llcofwearables.h | 47 |
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. |