00001
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef LL_LLFLOATERGROUPS_H
00040 #define LL_LLFLOATERGROUPS_H
00041
00042
00043
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
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
00093 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata);
00094
00095
00096 void reset();
00097
00098 protected:
00099
00100 BOOL postBuild();
00101
00102
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