00001 00032 #ifndef LL_LLPANELGROUPNOTICES_H 00033 #define LL_LLPANELGROUPNOTICES_H 00034 00035 #include "llpanelgroup.h" 00036 #include "llmemory.h" 00037 #include "llinventory.h" 00038 00039 class LLLineEditor; 00040 class LLTextEditor; 00041 class LLButton; 00042 class LLIconCtrl; 00043 class LLCheckBoxCtrl; 00044 class LLScrollListCtrl; 00045 00046 class LLPanelGroupNotices : public LLPanelGroupTab 00047 { 00048 public: 00049 LLPanelGroupNotices(const std::string& name, const LLUUID& group_id); 00050 virtual ~LLPanelGroupNotices(); 00051 00052 // LLPanelGroupTab 00053 static void* createTab(void* data); 00054 virtual void activate(); 00055 //virtual bool needsApply(LLString& mesg); 00056 //virtual bool apply(LLString& mesg); 00057 //virtual void update(); 00058 00059 virtual BOOL postBuild(); 00060 virtual BOOL isVisibleByAgent(LLAgent* agentp); 00061 00062 void setItem(LLPointer<LLInventoryItem> inv_item); 00063 00064 static void processGroupNoticesListReply(LLMessageSystem* msg, void** data); 00065 00066 void showNotice(const char* subject, 00067 const char* message, 00068 const bool& has_inventory, 00069 const char* inventory_name, 00070 LLOfferInfo* inventory_offer); 00071 00072 private: 00073 static void onClickRemoveAttachment(void* data); 00074 static void onClickOpenAttachment(void* data); 00075 static void onClickSendMessage(void* data); 00076 static void onClickNewMessage(void* data); 00077 static void onClickRefreshNotices(void* data); 00078 00079 void processNotices(LLMessageSystem* msg); 00080 static void onSelectNotice(LLUICtrl* ctrl, void* data); 00081 00082 enum ENoticeView 00083 { 00084 VIEW_PAST_NOTICE, 00085 CREATE_NEW_NOTICE 00086 }; 00087 00088 void arrangeNoticeView(ENoticeView view_type); 00089 00090 LLPointer<LLInventoryItem> mInventoryItem; 00091 00092 LLLineEditor *mCreateSubject; 00093 LLLineEditor *mCreateInventoryName; 00094 LLTextEditor *mCreateMessage; 00095 00096 LLLineEditor *mViewSubject; 00097 LLLineEditor *mViewInventoryName; 00098 LLTextEditor *mViewMessage; 00099 00100 LLButton *mBtnSendMessage; 00101 LLButton *mBtnNewMessage; 00102 LLButton *mBtnRemoveAttachment; 00103 LLButton *mBtnOpenAttachment; 00104 LLButton *mBtnGetPastNotices; 00105 00106 LLPanel *mPanelCreateNotice; 00107 LLPanel *mPanelViewNotice; 00108 00109 LLIconCtrl *mCreateInventoryIcon; 00110 LLIconCtrl *mViewInventoryIcon; 00111 00112 LLScrollListCtrl *mNoticesList; 00113 00114 std::string mNoNoticesStr; 00115 00116 LLOfferInfo* mInventoryOffer; 00117 00118 static std::map<LLUUID,LLPanelGroupNotices*> sInstances; 00119 }; 00120 00121 #endif