summaryrefslogtreecommitdiff
path: root/indra/newview/llavatarlist.h
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2009-09-29 19:37:05 +0000
committerSteven Bennetts <steve@lindenlab.com>2009-09-29 19:37:05 +0000
commit606b381c9fbc43c214afd26fb2e2598eec656b66 (patch)
tree422a6d5d94d50bd97ac5bcbdb52f0f6de083c6e7 /indra/newview/llavatarlist.h
parent751cc7cf68bb4d766e8ecaaf76af054dcfbbe9dc (diff)
merge https://svn.aws.productengine.com/secondlife/export-from-ll/viewer-2-0@1830 https://svn.aws.productengine.com/secondlife/pe/stable-2@1839 -> viewer-2.0.0-3
JIRAS: EXT-96 EXT-204 EXT-312 EXT-334 EXT-479 EXT-498 EXT-514 EXT-637 EXT-647 EXT-746 EXT-748 EXT-749 EXT-757 EXT-789 EXT-794 EXT-808 EXT-817 EXT-823 EXT-831 EXT-834 EXT-837 EXT-844 EXT-848 EXT-862 EXT-876 EXT-896 EXT-897 EXT-898 EXT-899 EXT-910 EXT-912 EXT-918 EXT-921 EXT-925 EXT-926 EXT-928 EXT-930 EXT-931 EXT-935 EXT-938 EXT-939 EXT-952 EXT-985 EXT-986 EXT-992 EXT-994 EXT-995 EXT-996 EXT-997 EXT-998 EXT-1001 EXT-1004 EXT-1010 EXT-1012 EXT-1016 EXT-1018 EXT-1020 EXT-1028 EXT-1041 EXT-1044 EXT-1051 EXT-1052 EXT-1061 EXT-1069 EXT-1071 EXT-1074 EXT-1075 EXT-1076 EXT-1078 EXT-1080 EXT-1081 EXT-1082 EXT-1083 EXT-1085 EXT-1092 EXT-1093 EXT-1099 EXT-1100 EXT-1101 EXT-1104 EXT-1106 EXT-1111 EXT-1113 EXT-1114 EXT-1115 EXT-1116 EXT-1118 EXT-1119 EXT-1129 EXT-1132 EXT-1135 EXT-1138 EXT-1142 EXT-1161 EXT-1162 EXT-1178 EXT-1180 * NEW DEVELOPMENT: * EXT-898 - Add dock/undock support for camera and movement controls * Avatar list changes * Bottom bar changes: menu, docking, visibility * Camera changes * Camera & Movement Floaters * Dockable Floaters (LLDockableFloater) * Removed LLListCtrl * Toast / Notification changes: signal / destruction changes, ordering * Nearby chat input should display active voice indicator QA NOTES: * Message Well Window is ready to be tested for regression & matching the spec. * Verify Group List Item L&F * Verify All tabs in People Panel * Verify that Picks behavior is not changed
Diffstat (limited to 'indra/newview/llavatarlist.h')
-rw-r--r--indra/newview/llavatarlist.h89
1 files changed, 39 insertions, 50 deletions
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index 639ed83ada..8d79e073d2 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -33,88 +33,77 @@
#ifndef LL_LLAVATARLIST_H
#define LL_LLAVATARLIST_H
-#include <llscrolllistctrl.h>
+#include "llflatlistview.h"
+
+#include "llavatarlistitem.h"
-// *TODO: derive from ListView when it's ready.
-class LLAvatarList : public LLScrollListCtrl
+class LLAvatarList : public LLFlatListView
{
LOG_CLASS(LLAvatarList);
public:
- struct Params : public LLInitParam::Block<Params, LLScrollListCtrl::Params>
+ struct Params : public LLInitParam::Block<Params, LLFlatListView::Params>
{
Optional<S32> volume_column_width;
Optional<bool> online_go_first;
Params();
};
- enum EColumnOrder
- {
- COL_VOLUME,
- COL_NAME,
- COL_ONLINE,
- COL_ID,
- };
-
LLAvatarList(const Params&);
virtual ~LLAvatarList() {}
- /*virtual*/ void draw();
-
BOOL update(const std::vector<LLUUID>& all_buddies,
const std::string& name_filter = LLStringUtil::null);
+ void setContextMenu(LLAvatarListItem::ContextMenu* menu) { mContextMenu = menu; }
+
+ void sortByName();
+
protected:
- std::vector<LLUUID> getSelectedIDs();
- void addItem(const LLUUID& id, const std::string& name, BOOL is_bold, EAddPosition pos = ADD_BOTTOM);
+ void addNewItem(const LLUUID& id, const std::string& name, BOOL is_bold, EAddPosition pos = ADD_BOTTOM);
+ void computeDifference(
+ const std::vector<LLUUID>& vnew,
+ std::vector<LLUUID>& vadded,
+ std::vector<LLUUID>& vremoved);
private:
- static std::string getVolumeIcon(const LLUUID& id); /// determine volume icon from current avatar volume
- void updateVolume(); // update volume for all avatars
- bool mHaveVolumeColumn;
bool mOnlineGoFirst;
-};
-
-#include "llflatlistview.h"
+ LLAvatarListItem::ContextMenu* mContextMenu;
+};
-class LLAvatarListTmp : public LLFlatListView
+/** Abstract comparator for avatar items */
+class LLAvatarItemComparator : public LLFlatListView::ItemComparator
{
- LOG_CLASS(LLAvatarListTmp);
-public:
- struct Params : public LLInitParam::Block<Params, LLFlatListView::Params>
- {
- Optional<S32> volume_column_width;
- Optional<bool> online_go_first;
- Params();
- };
-
- LLAvatarListTmp(const Params&);
- virtual ~LLAvatarListTmp() {}
-
- /*virtual*/ void draw();
+ LOG_CLASS(LLAvatarItemComparator);
- BOOL update(const std::vector<LLUUID>& all_buddies,
- const std::string& name_filter = LLStringUtil::null);
+public:
+ LLAvatarItemComparator() {};
+ virtual ~LLAvatarItemComparator() {};
- const LLUUID getCurrentID() const;
- void setCommentText( const std::string& comment_text);
+ virtual bool compare(const LLPanel* item1, const LLPanel* item2) const;
protected:
- std::vector<LLUUID> getSelectedIDs();
- void addNewItem(const LLUUID& id, const std::string& name, BOOL is_bold, EAddPosition pos = ADD_BOTTOM);
- /*virtual*/ bool removeItemPair(item_pair_t* item_pair);
-private:
- static std::string getVolumeIcon(const LLUUID& id); /// determine volume icon from current avatar volume
- void updateVolume(); // update volume for all avatars
- void setCommentVisible(bool visible) const;
+ /**
+ * Returns true if avatar_item1 < avatar_item2, false otherwise
+ * Implement this method in your particular comparator.
+ * In Linux a compiler failed to build it using the name "compare", so it was renamed to doCompare
+ */
+ virtual bool doCompare(const LLAvatarListItem* avatar_item1, const LLAvatarListItem* avatar_item2) const = 0;
+};
- bool mHaveVolumeColumn;
- bool mOnlineGoFirst;
-};
+class LLAvatarItemNameComparator : public LLAvatarItemComparator
+{
+ LOG_CLASS(LLAvatarItemNameComparator);
+public:
+ LLAvatarItemNameComparator() {};
+ virtual ~LLAvatarItemNameComparator() {};
+protected:
+ virtual bool doCompare(const LLAvatarListItem* avatar_item1, const LLAvatarListItem* avatar_item2) const;
+};
#endif // LL_LLAVATARLIST_H