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/llfloatergroups.h |
Print done when done.
Diffstat (limited to 'indra/newview/llfloatergroups.h')
-rw-r--r-- | indra/newview/llfloatergroups.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/indra/newview/llfloatergroups.h b/indra/newview/llfloatergroups.h new file mode 100644 index 0000000000..6f73c97553 --- /dev/null +++ b/indra/newview/llfloatergroups.h @@ -0,0 +1,110 @@ +/** + * @file llfloatergroups.h + * @brief LLFloaterGroups class definition + * + * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +/* + * Shown from Edit -> Groups... + * Shows the agent's groups and allows the edit window to be invoked. + * Also overloaded to allow picking of a single group for assigning + * objects and land to groups. + */ + +#ifndef LL_LLFLOATERGROUPS_H +#define LL_LLFLOATERGROUPS_H + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class llfloatergroups +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#include "lluuid.h" +#include "llmap.h" +#include "llevent.h" +#include "llfloater.h" + +class LLUICtrl; +class LLTextBox; +class LLScrollListCtrl; +class LLButton; + +class LLFloaterGroups : public LLFloater +{ +public: + //LLEventListener + /*virtual*/ bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata); + + enum EGroupDialog + { + AGENT_GROUPS, + CHOOSE_ONE + }; + // Call this with an agent id and AGENT_GROUPS for an agent's + // groups, otherwise, call with an object id and SET_OBJECT_GROUP + // when modifying an object. + static LLFloaterGroups* show(const LLUUID& id, EGroupDialog type); + + // Return the instance requested if it already exists. Otherwise, + // return NULL. + static LLFloaterGroups* getInstance(const LLUUID& id); + + // clear the group list, and get a fresh set of info. + void reset(); + + void setOkCallback( void (*callback)(LLUUID, void*), + void* userdata); + + EGroupDialog getType() const { return mType; } + +protected: + // initialize based on the type + BOOL postBuild(); + + // highlight_id is a group id to highlight + void initAgentGroups(const LLUUID& highlight_id); + void enableButtons(); + + static void onBtnCreate(void* userdata); + static void onBtnActivate(void* userdata); + static void onBtnInfo(void* userdata); + static void onBtnLeave(void* userdata); + static void onBtnSearch(void* userdata); + static void onBtnVote(void* userdata); + static void onBtnOK(void* userdata); + static void onBtnCancel(void* userdata); + static void onGroupList(LLUICtrl* ctrl, void* userdata); + static void onDoubleClickGroup(void* userdata); + + void create(); + void activate(); + void info(); + void leave(); + void search(); + void callVote(); + void ok(); + void highlightGroupList(LLUICtrl*); + + static void callbackLeaveGroup(S32 option, void* userdata); + +protected: + LLUUID mID; + + EGroupDialog mType; + + void (*mOKCallback)(LLUUID id, void* userdata); + void* mCallbackUserdata; + +protected: + static LLMap<const LLUUID, LLFloaterGroups*> sInstances; + +public: + // do not call these directly + LLFloaterGroups(const std::string& name, const LLRect& rect, const std::string& title, + const LLUUID& id); + virtual ~LLFloaterGroups(); +}; + + +#endif // LL_LLFLOATERGROUPS_H |