aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llnamelistctrl.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/newview/llnamelistctrl.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/linden/indra/newview/llnamelistctrl.h b/linden/indra/newview/llnamelistctrl.h
new file mode 100644
index 0000000..c0e8034
--- /dev/null
+++ b/linden/indra/newview/llnamelistctrl.h
@@ -0,0 +1,90 @@
1/**
2 * @file llnamelistctrl.h
3 * @brief A list of names, automatically refreshing from the name cache.
4 *
5 * Copyright (c) 2003-2007, Linden Research, Inc.
6 *
7 * The source code in this file ("Source Code") is provided by Linden Lab
8 * to you under the terms of the GNU General Public License, version 2.0
9 * ("GPL"), unless you have obtained a separate licensing agreement
10 * ("Other License"), formally executed by you and Linden Lab. Terms of
11 * the GPL can be found in doc/GPL-license.txt in this distribution, or
12 * online at http://secondlife.com/developers/opensource/gplv2
13 *
14 * There are special exceptions to the terms and conditions of the GPL as
15 * it is applied to this Source Code. View the full text of the exception
16 * in the file doc/FLOSS-exception.txt in this software distribution, or
17 * online at http://secondlife.com/developers/opensource/flossexception
18 *
19 * By copying, modifying or distributing this software, you acknowledge
20 * that you have read and understood your obligations described above,
21 * and agree to abide by those obligations.
22 *
23 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
24 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
25 * COMPLETENESS OR PERFORMANCE.
26 */
27
28#ifndef LL_LLNAMELISTCTRL_H
29#define LL_LLNAMELISTCTRL_H
30
31#include <set>
32
33#include "llscrolllistctrl.h"
34
35
36class LLNameListCtrl
37: public LLScrollListCtrl
38{
39public:
40 LLNameListCtrl(const LLString& name,
41 const LLRect& rect,
42 LLUICtrlCallback callback,
43 void* userdata,
44 BOOL allow_multiple_selection,
45 BOOL draw_border = TRUE,
46 S32 name_column_index = 0,
47 const LLString& tooltip = LLString::null);
48 virtual ~LLNameListCtrl();
49 virtual EWidgetType getWidgetType() const { return WIDGET_TYPE_NAME_LIST; }
50 virtual LLString getWidgetTag() const { return LL_NAME_LIST_CTRL_TAG; }
51 virtual LLXMLNodePtr getXML(bool save_children = true) const;
52 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
53
54 // Add a user to the list by name. It will be added, the name
55 // requested from the cache, and updated as necessary.
56 BOOL addNameItem(const LLUUID& agent_id, EAddPosition pos = ADD_BOTTOM,
57 BOOL enabled = TRUE, LLString& suffix = LLString::null);
58 BOOL addNameItem(LLScrollListItem* item, EAddPosition pos = ADD_BOTTOM);
59
60 virtual LLScrollListItem* addElement(const LLSD& value, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL);
61
62 // Add a user to the list by name. It will be added, the name
63 // requested from the cache, and updated as necessary.
64 void addGroupNameItem(const LLUUID& group_id, EAddPosition pos = ADD_BOTTOM,
65 BOOL enabled = TRUE);
66 void addGroupNameItem(LLScrollListItem* item, EAddPosition pos = ADD_BOTTOM);
67
68
69 void removeNameItem(const LLUUID& agent_id);
70
71 void refresh(const LLUUID& id, const char* first, const char* last,
72 BOOL is_group);
73
74 static void refreshAll(const LLUUID& id, const char* firstname,
75 const char* lastname, BOOL is_group);
76
77 virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
78 BOOL drop, EDragAndDropType cargo_type, void *cargo_data,
79 EAcceptance *accept,
80 LLString& tooltip_msg);
81
82 void setAllowCallingCardDrop(BOOL b) { mAllowCallingCardDrop = b; }
83
84private:
85 static std::set<LLNameListCtrl*> sInstances;
86 S32 mNameColumnIndex;
87 BOOL mAllowCallingCardDrop;
88};
89
90#endif