llfloatergroups.h

Go to the documentation of this file.
00001 
00032 /*
00033  * Shown from Edit -> Groups...
00034  * Shows the agent's groups and allows the edit window to be invoked.
00035  * Also overloaded to allow picking of a single group for assigning 
00036  * objects and land to groups.
00037  */
00038 
00039 #ifndef LL_LLFLOATERGROUPS_H
00040 #define LL_LLFLOATERGROUPS_H
00041 
00042 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00043 // Class llfloatergroups
00044 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00045 
00046 #include "lluuid.h"
00047 #include "llfloater.h"
00048 #include <map>
00049 
00050 class LLUICtrl;
00051 class LLTextBox;
00052 class LLScrollListCtrl;
00053 class LLButton;
00054 class LLFloaterGroupPicker;
00055 
00056 class LLFloaterGroupPicker : public LLFloater, public LLUIFactory<LLFloaterGroupPicker, LLFloaterGroupPicker, VisibilityPolicy<LLFloater> >
00057 {
00058         friend class LLUIFactory<LLFloaterGroupPicker>;
00059 public:
00060         ~LLFloaterGroupPicker();
00061         void setSelectCallback( void (*callback)(LLUUID, void*), 
00062                                                         void* userdata);
00063         void setPowersMask(U64 powers_mask);
00064         BOOL postBuild();
00065 
00066         // implementation of factory policy
00067         static LLFloaterGroupPicker* findInstance(const LLSD& seed);
00068         static LLFloaterGroupPicker* createInstance(const LLSD& seed);
00069 
00070 protected:
00071         LLFloaterGroupPicker(const LLSD& seed);
00072         void ok();
00073         static void onBtnOK(void* userdata);
00074         static void onBtnCancel(void* userdata);
00075 
00076 protected:
00077         LLUUID mID;
00078         U64 mPowersMask;
00079         void (*mSelectCallback)(LLUUID id, void* userdata);
00080         void* mCallbackUserdata;
00081 
00082         typedef std::map<const LLUUID, LLFloaterGroupPicker*> instance_map_t;
00083         static instance_map_t sInstances;
00084 };
00085 
00086 class LLPanelGroups : public LLPanel, public LLSimpleListener
00087 {
00088 public:
00089         LLPanelGroups();
00090         virtual ~LLPanelGroups();
00091 
00092         //LLEventListener
00093         /*virtual*/ bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata);
00094         
00095         // clear the group list, and get a fresh set of info.
00096         void reset();
00097 
00098 protected:
00099         // initialize based on the type
00100         BOOL postBuild();
00101 
00102         // highlight_id is a group id to highlight
00103         void enableButtons();
00104 
00105         static void onGroupList(LLUICtrl* ctrl, void* userdata);
00106         static void onBtnCreate(void* userdata);
00107         static void onBtnActivate(void* userdata);
00108         static void onBtnInfo(void* userdata);
00109         static void onBtnIM(void* userdata);
00110         static void onBtnLeave(void* userdata);
00111         static void onBtnSearch(void* userdata);
00112         static void onBtnVote(void* userdata);
00113         static void onDoubleClickGroup(void* userdata);
00114 
00115         void create();
00116         void activate();
00117         void info();
00118         void startIM();
00119         void leave();
00120         void search();
00121         void callVote();
00122 
00123         static void callbackLeaveGroup(S32 option, void* userdata);
00124 
00125 };
00126 
00127 
00128 #endif // LL_LLFLOATERGROUPS_H

Generated on Fri May 16 08:33:27 2008 for SecondLife by  doxygen 1.5.5