diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llnamelistctrl.h |
Print done when done.
Diffstat (limited to 'indra/newview/llnamelistctrl.h')
-rw-r--r-- | indra/newview/llnamelistctrl.h | 71 |
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 |