summaryrefslogtreecommitdiff
path: root/indra/newview/llnamelistctrl.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llnamelistctrl.h
Print done when done.
Diffstat (limited to 'indra/newview/llnamelistctrl.h')
-rw-r--r--indra/newview/llnamelistctrl.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
new file mode 100644
index 0000000000..4e9069e2a3
--- /dev/null
+++ b/indra/newview/llnamelistctrl.h
@@ -0,0 +1,71 @@
+/**
+ * @file llnamelistctrl.h
+ * @brief A list of names, automatically refreshing from the name cache.
+ *
+ * Copyright (c) 2003-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLNAMELISTCTRL_H
+#define LL_LLNAMELISTCTRL_H
+
+#include <set>
+
+#include "llscrolllistctrl.h"
+
+
+class LLNameListCtrl
+: public LLScrollListCtrl
+{
+public:
+ LLNameListCtrl(const LLString& name,
+ const LLRect& rect,
+ LLUICtrlCallback callback,
+ void* userdata,
+ BOOL allow_multiple_selection,
+ BOOL draw_border = TRUE,
+ S32 name_column_index = 0,
+ const LLString& tooltip = LLString::null);
+ virtual ~LLNameListCtrl();
+ virtual EWidgetType getWidgetType() const { return WIDGET_TYPE_NAME_LIST; }
+ virtual LLString getWidgetTag() const { return LL_NAME_LIST_CTRL_TAG; }
+ virtual LLXMLNodePtr getXML(bool save_children = true) const;
+ static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
+
+ // Add a user to the list by name. It will be added, the name
+ // requested from the cache, and updated as necessary.
+ BOOL addNameItem(const LLUUID& agent_id, EAddPosition pos = ADD_BOTTOM,
+ BOOL enabled = TRUE, LLString& suffix = LLString::null);
+ BOOL addNameItem(LLScrollListItem* item, EAddPosition pos = ADD_BOTTOM);
+
+ virtual LLScrollListItem* addElement(const LLSD& value, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL);
+
+ // Add a user to the list by name. It will be added, the name
+ // requested from the cache, and updated as necessary.
+ void addGroupNameItem(const LLUUID& group_id, EAddPosition pos = ADD_BOTTOM,
+ BOOL enabled = TRUE);
+ void addGroupNameItem(LLScrollListItem* item, EAddPosition pos = ADD_BOTTOM);
+
+
+ void removeNameItem(const LLUUID& agent_id);
+
+ void refresh(const LLUUID& id, const char* first, const char* last,
+ BOOL is_group);
+
+ static void refreshAll(const LLUUID& id, const char* firstname,
+ const char* lastname, BOOL is_group);
+
+ virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
+ BOOL drop, EDragAndDropType cargo_type, void *cargo_data,
+ EAcceptance *accept,
+ LLString& tooltip_msg);
+
+ void setAllowCallingCardDrop(BOOL b) { mAllowCallingCardDrop = b; }
+
+private:
+ static std::set<LLNameListCtrl*> sInstances;
+ S32 mNameColumnIndex;
+ BOOL mAllowCallingCardDrop;
+};
+
+#endif