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
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 static void callbackConfirmMatureApply(S32 option, void* data);
00062
00063 virtual void update(LLGroupChange gc);
00064
00065 virtual BOOL postBuild();
00066
00067 virtual void draw();
00068
00069 private:
00070 static void onFocusEdit(LLFocusableElement* ctrl, void* data);
00071 static void onCommitAny(LLUICtrl* ctrl, void* data);
00072 static void onCommitUserOnly(LLUICtrl* ctrl, void* data);
00073 static void onCommitTitle(LLUICtrl* ctrl, void* data);
00074 static void onCommitEnrollment(LLUICtrl* ctrl, void* data);
00075 static void onClickJoin(void* userdata);
00076 static void onClickInfo(void* userdata);
00077 static void onReceiveNotices(LLUICtrl* ctrl, void* data);
00078 static void openProfile(void* data);
00079
00080 static void joinDlgCB(S32 which, void *userdata);
00081
00082 void updateMembers();
00083 void updateChanged();
00084 void confirmMatureApply(S32 option);
00085
00086 BOOL mPendingMemberUpdate;
00087 BOOL mChanged;
00088 BOOL mFirstUse;
00089 std::string mIncompleteMemberDataStr;
00090 std::string mConfirmGroupCreateStr;
00091 LLUUID mDefaultIconID;
00092
00093
00094 LLLineEditor *mGroupNameEditor;
00095 LLTextBox *mGroupName;
00096 LLNameBox *mFounderName;
00097 LLTextureCtrl *mInsignia;
00098 LLTextEditor *mEditCharter;
00099 LLButton *mBtnJoinGroup;
00100 LLButton *mBtnInfo;
00101
00102 LLNameListCtrl *mListVisibleMembers;
00103
00104
00105 LLCheckBoxCtrl *mCtrlShowInGroupList;
00106 LLCheckBoxCtrl *mCtrlOpenEnrollment;
00107 LLCheckBoxCtrl *mCtrlEnrollmentFee;
00108 LLSpinCtrl *mSpinEnrollmentFee;
00109 LLCheckBoxCtrl *mCtrlReceiveNotices;
00110 LLCheckBoxCtrl *mCtrlListGroup;
00111 LLTextBox *mActiveTitleLabel;
00112 LLComboBox *mComboActiveTitle;
00113 LLComboBox *mComboMature;
00114
00115 LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
00116 };
00117
00118 #endif