00001 00032 #ifndef LL_LLPANELGROUPGENERAL_H 00033 #define LL_LLPANELGROUPGENERAL_H 00034 00035 #include "llpanelgroup.h" 00036 00037 class LLLineEditor; 00038 class LLTextBox; 00039 class LLTextureCtrl; 00040 class LLTextEditor; 00041 class LLButton; 00042 class LLNameListCtrl; 00043 class LLCheckBoxCtrl; 00044 class LLComboBox; 00045 class LLNameBox; 00046 class LLSpinCtrl; 00047 00048 class LLPanelGroupGeneral : public LLPanelGroupTab 00049 { 00050 public: 00051 LLPanelGroupGeneral(const std::string& name, const LLUUID& group_id); 00052 virtual ~LLPanelGroupGeneral(); 00053 00054 // LLPanelGroupTab 00055 static void* createTab(void* data); 00056 virtual void activate(); 00057 virtual bool needsApply(LLString& mesg); 00058 virtual bool apply(LLString& mesg); 00059 virtual void cancel(); 00060 static void createGroupCallback(S32 option, void* user_data); 00061 00062 virtual void update(LLGroupChange gc); 00063 00064 virtual BOOL postBuild(); 00065 00066 virtual void draw(); 00067 00068 private: 00069 static void onCommitAny(LLUICtrl* ctrl, void* data); 00070 static void onCommitUserOnly(LLUICtrl* ctrl, void* data); 00071 static void onCommitTitle(LLUICtrl* ctrl, void* data); 00072 static void onCommitEnrollment(LLUICtrl* ctrl, void* data); 00073 static void onClickJoin(void* userdata); 00074 static void onClickInfo(void* userdata); 00075 static void onReceiveNotices(LLUICtrl* ctrl, void* data); 00076 static void openProfile(void* data); 00077 00078 static void joinDlgCB(S32 which, void *userdata); 00079 00080 void updateMembers(); 00081 void updateChanged(); 00082 00083 BOOL mPendingMemberUpdate; 00084 BOOL mChanged; 00085 BOOL mFirstUse; 00086 std::string mIncompleteMemberDataStr; 00087 std::string mConfirmGroupCreateStr; 00088 LLUUID mDefaultIconID; 00089 00090 // Group information (include any updates in updateChanged) 00091 LLLineEditor *mGroupNameEditor; 00092 LLTextBox *mGroupName; 00093 LLNameBox *mFounderName; 00094 LLTextureCtrl *mInsignia; 00095 LLTextEditor *mEditCharter; 00096 LLButton *mBtnJoinGroup; 00097 LLButton *mBtnInfo; 00098 00099 LLNameListCtrl *mListVisibleMembers; 00100 00101 // Options (include any updates in updateChanged) 00102 LLCheckBoxCtrl *mCtrlShowInGroupList; 00103 LLCheckBoxCtrl *mCtrlMature; 00104 LLCheckBoxCtrl *mCtrlOpenEnrollment; 00105 LLCheckBoxCtrl *mCtrlEnrollmentFee; 00106 LLSpinCtrl *mSpinEnrollmentFee; 00107 LLCheckBoxCtrl *mCtrlReceiveNotices; 00108 LLCheckBoxCtrl *mCtrlListGroup; 00109 LLTextBox *mActiveTitleLabel; 00110 LLComboBox *mComboActiveTitle; 00111 00112 LLGroupMgrGroupData::member_iter mMemberProgress; 00113 }; 00114 00115 #endif