00001 00032 #ifndef LL_LLFLOATERMUTE_H 00033 #define LL_LLFLOATERMUTE_H 00034 00035 #include "llfloater.h" 00036 #include "llmutelist.h" 00037 #include <vector> 00038 00039 class LLButton; 00040 class LLLineEditor; 00041 class LLMessageSystem; 00042 class LLUUID; 00043 class LLScrollListCtrl; 00044 00045 class LLFloaterMute 00046 : public LLFloater, public LLMuteListObserver, public LLFloaterSingleton<LLFloaterMute> 00047 { 00048 public: 00049 LLFloaterMute(const LLSD& seed); 00050 ~LLFloaterMute(); 00051 00052 // Must have one global floater so chat history can 00053 // be kept in the text editor. 00054 virtual void onClose(bool app_quitting) { setVisible(FALSE); } 00055 virtual BOOL postBuild(); 00056 00057 void refreshMuteList(); 00058 void selectMute(const LLUUID& id); 00059 00060 void updateButtons(); 00061 00062 // LLMuteListObserver callback interface implementation. 00063 /* virtual */ void onChange(); 00064 00065 private: 00066 // UI callbacks 00067 static void onClickRemove(void *data); 00068 static void onClickPick(void *data); 00069 static void onSelectName(LLUICtrl* caller, void *data); 00070 static void onPickUser(const std::vector<std::string>& names, const std::vector<LLUUID>& ids, void* user_data); 00071 static void onClickMuteByName(void*); 00072 static void callbackMuteByName(const LLString& text, void*); 00073 00074 private: 00075 LLScrollListCtrl* mMuteList; 00076 }; 00077 00078 00079 #endif