llpanelgroupnotices.h

Go to the documentation of this file.
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

Generated on Thu Jul 1 06:08:57 2010 for Second Life Viewer by  doxygen 1.4.7