diff options
author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
---|---|---|
committer | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
commit | 1b67dd855c41f5a0cda7ec2a68d98071986ca703 (patch) | |
tree | ab243607f74f78200787bba5b9b88f07ef1b966f /indra/newview/llpanelgrouproles.h | |
parent | 6d6eabca44d08d5b97bfe3e941d2b9687c2246ea (diff) | |
parent | e1623bb276f83a43ce7a197e388720c05bdefe61 (diff) |
Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
# autobuild.xml
# indra/cmake/CMakeLists.txt
# indra/cmake/GoogleMock.cmake
# indra/llaudio/llaudioengine_fmodstudio.cpp
# indra/llaudio/llaudioengine_fmodstudio.h
# indra/llaudio/lllistener_fmodstudio.cpp
# indra/llaudio/lllistener_fmodstudio.h
# indra/llaudio/llstreamingaudio_fmodstudio.cpp
# indra/llaudio/llstreamingaudio_fmodstudio.h
# indra/llcharacter/llmultigesture.cpp
# indra/llcharacter/llmultigesture.h
# indra/llimage/llimage.cpp
# indra/llimage/llimagepng.cpp
# indra/llimage/llimageworker.cpp
# indra/llimage/tests/llimageworker_test.cpp
# indra/llmessage/tests/llmockhttpclient.h
# indra/llprimitive/llgltfmaterial.h
# indra/llrender/llfontfreetype.cpp
# indra/llui/llcombobox.cpp
# indra/llui/llfolderview.cpp
# indra/llui/llfolderviewmodel.h
# indra/llui/lllineeditor.cpp
# indra/llui/lllineeditor.h
# indra/llui/lltextbase.cpp
# indra/llui/lltextbase.h
# indra/llui/lltexteditor.cpp
# indra/llui/lltextvalidate.cpp
# indra/llui/lltextvalidate.h
# indra/llui/lluictrl.h
# indra/llui/llview.cpp
# indra/llwindow/llwindowmacosx.cpp
# indra/newview/app_settings/settings.xml
# indra/newview/llappearancemgr.cpp
# indra/newview/llappearancemgr.h
# indra/newview/llavatarpropertiesprocessor.cpp
# indra/newview/llavatarpropertiesprocessor.h
# indra/newview/llbreadcrumbview.cpp
# indra/newview/llbreadcrumbview.h
# indra/newview/llbreastmotion.cpp
# indra/newview/llbreastmotion.h
# indra/newview/llconversationmodel.h
# indra/newview/lldensityctrl.cpp
# indra/newview/lldensityctrl.h
# indra/newview/llface.inl
# indra/newview/llfloatereditsky.cpp
# indra/newview/llfloatereditwater.cpp
# indra/newview/llfloateremojipicker.h
# indra/newview/llfloaterimsessiontab.cpp
# indra/newview/llfloaterprofiletexture.cpp
# indra/newview/llfloaterprofiletexture.h
# indra/newview/llgesturemgr.cpp
# indra/newview/llgesturemgr.h
# indra/newview/llimpanel.cpp
# indra/newview/llimpanel.h
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryclipboard.cpp
# indra/newview/llinventoryclipboard.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventoryfunctions.h
# indra/newview/llinventorygallery.cpp
# indra/newview/lllistbrowser.cpp
# indra/newview/lllistbrowser.h
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelprofile.h
# indra/newview/llpreviewgesture.cpp
# indra/newview/llsavedsettingsglue.cpp
# indra/newview/llsavedsettingsglue.h
# indra/newview/lltooldraganddrop.cpp
# indra/newview/llurllineeditorctrl.cpp
# indra/newview/llvectorperfoptions.cpp
# indra/newview/llvectorperfoptions.h
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llviewertexlayer.cpp
# indra/newview/llviewertexturelist.cpp
# indra/newview/macmain.h
# indra/test/test.cpp
Diffstat (limited to 'indra/newview/llpanelgrouproles.h')
-rw-r--r-- | indra/newview/llpanelgrouproles.h | 762 |
1 files changed, 381 insertions, 381 deletions
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h index 3fa96213e5..cd995c874e 100644 --- a/indra/newview/llpanelgrouproles.h +++ b/indra/newview/llpanelgrouproles.h @@ -1,381 +1,381 @@ -/** - * @file llpanelgrouproles.h - * @brief Panel for roles information about a particular group. - * - * $LicenseInfo:firstyear=2006&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#ifndef LL_LLPANELGROUPROLES_H -#define LL_LLPANELGROUPROLES_H - -#include "llpanelgroup.h" - -class LLFilterEditor; -class LLNameListCtrl; -class LLPanelGroupSubTab; -class LLPanelGroupMembersSubTab; -class LLPanelGroupRolesSubTab; -class LLPanelGroupActionsSubTab; -class LLScrollListCtrl; -class LLScrollListItem; -class LLTextEditor; - -typedef std::map<std::string,std::string> icon_map_t; - - -class LLPanelGroupRoles : public LLPanelGroupTab -{ -public: - LLPanelGroupRoles(); - virtual ~LLPanelGroupRoles(); - - // Allow sub tabs to ask for sibling controls. - friend class LLPanelGroupMembersSubTab; - friend class LLPanelGroupRolesSubTab; - friend class LLPanelGroupActionsSubTab; - - virtual bool postBuild(); - virtual bool isVisibleByAgent(LLAgent* agentp); - - - bool handleSubTabSwitch(const LLSD& data); - - // Checks if the current tab needs to be applied, and tries to switch to the requested tab. - bool attemptTransition(); - - // Switches to the requested tab (will close() if requested is NULL) - void transitionToTab(); - - // Used by attemptTransition to query the user's response to a tab that needs to apply. - bool handleNotifyCallback(const LLSD& notification, const LLSD& response); - bool onModalClose(const LLSD& notification, const LLSD& response); - - // Most of these messages are just passed on to the current sub-tab. - virtual void activate(); - virtual void deactivate(); - virtual bool needsApply(std::string& mesg); - virtual bool hasModal(); - virtual bool apply(std::string& mesg); - virtual void cancel(); - virtual void update(LLGroupChange gc); - - virtual void setGroupID(const LLUUID& id); - -protected: - LLPanelGroupTab* mCurrentTab; - LLPanelGroupTab* mRequestedTab; - LLTabContainer* mSubTabContainer; - bool mFirstUse; - - std::string mDefaultNeedsApplyMesg; - std::string mWantApplyMesg; -}; - - -class LLPanelGroupSubTab : public LLPanelGroupTab -{ -public: - LLPanelGroupSubTab(); - virtual ~LLPanelGroupSubTab(); - - virtual bool postBuild(); - - // This allows sub-tabs to collect child widgets from a higher level in the view hierarchy. - virtual bool postBuildSubTab(LLView* root); - - virtual void setSearchFilter( const std::string& filter ); - - virtual void activate(); - virtual void deactivate(); - - // Helper functions - bool matchesActionSearchFilter(std::string action); - - - void setFooterEnabled(bool enable); - - virtual void setGroupID(const LLUUID& id); -protected: - void buildActionsList(LLScrollListCtrl* ctrl, - U64 allowed_by_some, - U64 allowed_by_all, - LLUICtrl::commit_callback_t commit_callback, - bool show_all, - bool filter, - bool is_owner_role); - void buildActionCategory(LLScrollListCtrl* ctrl, - U64 allowed_by_some, - U64 allowed_by_all, - LLRoleActionSet* action_set, - LLUICtrl::commit_callback_t commit_callback, - bool show_all, - bool filter, - bool is_owner_role); - -protected: - LLPanel* mHeader; // Might not be present in xui of derived class (NULL) - LLPanel* mFooter; - - LLFilterEditor* mSearchEditor; - boost::signals2::connection mSearchCommitConnection; - - std::string mSearchFilter; - - icon_map_t mActionIcons; - - bool mActivated; - - bool mHasGroupBanPower; // Used to communicate between action sets due to the dependency between - // GP_GROUP_BAN_ACCESS and GP_EJECT_MEMBER and GP_ROLE_REMOVE_MEMBER - - void setOthersVisible(bool b); -}; - - -class LLPanelGroupMembersSubTab : public LLPanelGroupSubTab -{ -public: - LLPanelGroupMembersSubTab(); - virtual ~LLPanelGroupMembersSubTab(); - - virtual bool postBuildSubTab(LLView* root); - - static void onMemberSelect(LLUICtrl*, void*); - void handleMemberSelect(); - - static void onMemberDoubleClick(void*); - void handleMemberDoubleClick(); - - static void onInviteMember(void*); - void handleInviteMember(); - - static void onEjectMembers(void*); - void handleEjectMembers(); - void sendEjectNotifications(const LLUUID& group_id, const uuid_vec_t& selected_members); - bool handleEjectCallback(const LLSD& notification, const LLSD& response); - void confirmEjectMembers(); - - static void onRoleCheck(LLUICtrl* check, void* user_data); - void handleRoleCheck(const LLUUID& role_id, - LLRoleMemberChangeType type); - - static void onBanMember(void* user_data); - void handleBanMember(); - bool handleBanCallback(const LLSD& notification, const LLSD& response); - void confirmBanMembers(); - - void updateActionDescription(); - - void applyMemberChanges(); - bool addOwnerCB(const LLSD& notification, const LLSD& response); - - virtual void activate(); - virtual void deactivate(); - virtual void cancel(); - virtual bool needsApply(std::string& mesg); - virtual bool apply(std::string& mesg); - virtual void update(LLGroupChange gc); - void updateMembers(); - - virtual void draw(); - - virtual void setGroupID(const LLUUID& id); - - void addMemberToList(LLGroupMemberData* data); - void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id); - -protected: - typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t; - typedef std::map<LLUUID, role_change_data_map_t*> member_role_changes_map_t; - - bool matchesSearchFilter(const std::string& fullname); - - U64 getAgentPowersBasedOnRoleChanges(const LLUUID& agent_id); - bool getRoleChangeType(const LLUUID& member_id, - const LLUUID& role_id, - LLRoleMemberChangeType& type); - - LLNameListCtrl* mMembersList; - LLScrollListCtrl* mAssignedRolesList; - LLScrollListCtrl* mAllowedActionsList; - LLButton* mEjectBtn; - LLButton* mBanBtn; - - bool mChanged; - bool mPendingMemberUpdate; - bool mHasMatch; - - LLTextEditor* mActionDescription; - - member_role_changes_map_t mMemberRoleChangeData; - U32 mNumOwnerAdditions; - - LLGroupMgrGroupData::member_list_t::iterator mMemberProgress; - typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t; - avatar_name_cache_connection_map_t mAvatarNameCacheConnections; -}; - - -class LLPanelGroupRolesSubTab : public LLPanelGroupSubTab -{ -public: - LLPanelGroupRolesSubTab(); - virtual ~LLPanelGroupRolesSubTab(); - - virtual bool postBuildSubTab(LLView* root); - - virtual void activate(); - virtual void deactivate(); - virtual bool needsApply(std::string& mesg); - virtual bool apply(std::string& mesg); - virtual void cancel(); - bool matchesSearchFilter(std::string rolename, std::string roletitle); - virtual void update(LLGroupChange gc); - - static void onRoleSelect(LLUICtrl*, void*); - void handleRoleSelect(); - void buildMembersList(); - - static void onActionCheck(LLUICtrl*, void*); - bool addActionCB(const LLSD& notification, const LLSD& response, LLCheckBoxCtrl* check); - - static void onPropertiesKey(LLLineEditor*, void*); - - void onDescriptionKeyStroke(LLTextEditor* caller); - - static void onDescriptionCommit(LLUICtrl*, void*); - - static void onMemberVisibilityChange(LLUICtrl*, void*); - void handleMemberVisibilityChange(bool value); - - static void onCreateRole(void*); - void handleCreateRole(); - - static void onCopyRole(void*); - void handleCopyRole(); - - static void onDeleteRole(void*); - void handleDeleteRole(); - - void updateActionDescription(); - - void saveRoleChanges(bool select_saved_role); - - virtual void setGroupID(const LLUUID& id); - - bool mFirstOpen; - -protected: - void handleActionCheck(LLUICtrl* ctrl, bool force); - LLSD createRoleItem(const LLUUID& role_id, std::string name, std::string title, S32 members); - - LLScrollListCtrl* mRolesList; - LLNameListCtrl* mAssignedMembersList; - LLScrollListCtrl* mAllowedActionsList; - LLTextEditor* mActionDescription; - - LLLineEditor* mRoleName; - LLLineEditor* mRoleTitle; - LLTextEditor* mRoleDescription; - - LLCheckBoxCtrl* mMemberVisibleCheck; - LLButton* mDeleteRoleButton; - LLButton* mCreateRoleButton; - LLButton* mCopyRoleButton; - - LLUUID mSelectedRole; - bool mHasRoleChange; - std::string mRemoveEveryoneTxt; -}; - - -class LLPanelGroupActionsSubTab : public LLPanelGroupSubTab -{ -public: - LLPanelGroupActionsSubTab(); - virtual ~LLPanelGroupActionsSubTab(); - - virtual bool postBuildSubTab(LLView* root); - - - virtual void activate(); - virtual void deactivate(); - virtual bool needsApply(std::string& mesg); - virtual bool apply(std::string& mesg); - virtual void update(LLGroupChange gc); - virtual void onFilterChanged(); - - void handleActionSelect(); - - virtual void setGroupID(const LLUUID& id); -protected: - LLScrollListCtrl* mActionList; - LLScrollListCtrl* mActionRoles; - LLNameListCtrl* mActionMembers; - - LLTextEditor* mActionDescription; -}; - - -class LLPanelGroupBanListSubTab : public LLPanelGroupSubTab -{ -public: - LLPanelGroupBanListSubTab(); - virtual ~LLPanelGroupBanListSubTab() {} - - virtual bool postBuildSubTab(LLView* root); - - virtual void activate(); - virtual void update(LLGroupChange gc); - virtual void draw(); - - static void onBanEntrySelect(LLUICtrl* ctrl, void* user_data); - void handleBanEntrySelect(); - - static void onCreateBanEntry(void* user_data); - void handleCreateBanEntry(); - - static void onDeleteBanEntry(void* user_data); - void handleDeleteBanEntry(); - - static void onRefreshBanList(void* user_data); - void handleRefreshBanList(); - - void onBanListCompleted(bool isComplete); - -protected: - void setBanCount(U32 ban_count); - void populateBanList(); - -public: - virtual void setGroupID(const LLUUID& id); - -protected: - LLNameListCtrl* mBanList; - LLButton* mCreateBanButton; - LLButton* mDeleteBanButton; - LLButton* mRefreshBanListButton; - LLTextBase* mBanCountText; - -}; - -#endif // LL_LLPANELGROUPROLES_H +/**
+ * @file llpanelgrouproles.h
+ * @brief Panel for roles information about a particular group.
+ *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELGROUPROLES_H
+#define LL_LLPANELGROUPROLES_H
+
+#include "llpanelgroup.h"
+
+class LLFilterEditor;
+class LLNameListCtrl;
+class LLPanelGroupSubTab;
+class LLPanelGroupMembersSubTab;
+class LLPanelGroupRolesSubTab;
+class LLPanelGroupActionsSubTab;
+class LLScrollListCtrl;
+class LLScrollListItem;
+class LLTextEditor;
+
+typedef std::map<std::string,std::string> icon_map_t;
+
+
+class LLPanelGroupRoles : public LLPanelGroupTab
+{
+public:
+ LLPanelGroupRoles();
+ virtual ~LLPanelGroupRoles();
+
+ // Allow sub tabs to ask for sibling controls.
+ friend class LLPanelGroupMembersSubTab;
+ friend class LLPanelGroupRolesSubTab;
+ friend class LLPanelGroupActionsSubTab;
+
+ virtual bool postBuild();
+ virtual bool isVisibleByAgent(LLAgent* agentp);
+
+
+ bool handleSubTabSwitch(const LLSD& data);
+
+ // Checks if the current tab needs to be applied, and tries to switch to the requested tab.
+ bool attemptTransition();
+
+ // Switches to the requested tab (will close() if requested is NULL)
+ void transitionToTab();
+
+ // Used by attemptTransition to query the user's response to a tab that needs to apply.
+ bool handleNotifyCallback(const LLSD& notification, const LLSD& response);
+ bool onModalClose(const LLSD& notification, const LLSD& response);
+
+ // Most of these messages are just passed on to the current sub-tab.
+ virtual void activate();
+ virtual void deactivate();
+ virtual bool needsApply(std::string& mesg);
+ virtual bool hasModal();
+ virtual bool apply(std::string& mesg);
+ virtual void cancel();
+ virtual void update(LLGroupChange gc);
+
+ virtual void setGroupID(const LLUUID& id);
+
+protected:
+ LLPanelGroupTab* mCurrentTab;
+ LLPanelGroupTab* mRequestedTab;
+ LLTabContainer* mSubTabContainer;
+ bool mFirstUse;
+
+ std::string mDefaultNeedsApplyMesg;
+ std::string mWantApplyMesg;
+};
+
+
+class LLPanelGroupSubTab : public LLPanelGroupTab
+{
+public:
+ LLPanelGroupSubTab();
+ virtual ~LLPanelGroupSubTab();
+
+ virtual bool postBuild();
+
+ // This allows sub-tabs to collect child widgets from a higher level in the view hierarchy.
+ virtual bool postBuildSubTab(LLView* root);
+
+ virtual void setSearchFilter( const std::string& filter );
+
+ virtual void activate();
+ virtual void deactivate();
+
+ // Helper functions
+ bool matchesActionSearchFilter(std::string action);
+
+
+ void setFooterEnabled(bool enable);
+
+ virtual void setGroupID(const LLUUID& id);
+protected:
+ void buildActionsList(LLScrollListCtrl* ctrl,
+ U64 allowed_by_some,
+ U64 allowed_by_all,
+ LLUICtrl::commit_callback_t commit_callback,
+ bool show_all,
+ bool filter,
+ bool is_owner_role);
+ void buildActionCategory(LLScrollListCtrl* ctrl,
+ U64 allowed_by_some,
+ U64 allowed_by_all,
+ LLRoleActionSet* action_set,
+ LLUICtrl::commit_callback_t commit_callback,
+ bool show_all,
+ bool filter,
+ bool is_owner_role);
+
+protected:
+ LLPanel* mHeader; // Might not be present in xui of derived class (NULL)
+ LLPanel* mFooter;
+
+ LLFilterEditor* mSearchEditor;
+ boost::signals2::connection mSearchCommitConnection;
+
+ std::string mSearchFilter;
+
+ icon_map_t mActionIcons;
+
+ bool mActivated;
+
+ bool mHasGroupBanPower; // Used to communicate between action sets due to the dependency between
+ // GP_GROUP_BAN_ACCESS and GP_EJECT_MEMBER and GP_ROLE_REMOVE_MEMBER
+
+ void setOthersVisible(bool b);
+};
+
+
+class LLPanelGroupMembersSubTab : public LLPanelGroupSubTab
+{
+public:
+ LLPanelGroupMembersSubTab();
+ virtual ~LLPanelGroupMembersSubTab();
+
+ virtual bool postBuildSubTab(LLView* root);
+
+ static void onMemberSelect(LLUICtrl*, void*);
+ void handleMemberSelect();
+
+ static void onMemberDoubleClick(void*);
+ void handleMemberDoubleClick();
+
+ static void onInviteMember(void*);
+ void handleInviteMember();
+
+ static void onEjectMembers(void*);
+ void handleEjectMembers();
+ void sendEjectNotifications(const LLUUID& group_id, const uuid_vec_t& selected_members);
+ bool handleEjectCallback(const LLSD& notification, const LLSD& response);
+ void confirmEjectMembers();
+
+ static void onRoleCheck(LLUICtrl* check, void* user_data);
+ void handleRoleCheck(const LLUUID& role_id,
+ LLRoleMemberChangeType type);
+
+ static void onBanMember(void* user_data);
+ void handleBanMember();
+ bool handleBanCallback(const LLSD& notification, const LLSD& response);
+ void confirmBanMembers();
+
+ void updateActionDescription();
+
+ void applyMemberChanges();
+ bool addOwnerCB(const LLSD& notification, const LLSD& response);
+
+ virtual void activate();
+ virtual void deactivate();
+ virtual void cancel();
+ virtual bool needsApply(std::string& mesg);
+ virtual bool apply(std::string& mesg);
+ virtual void update(LLGroupChange gc);
+ void updateMembers();
+
+ virtual void draw();
+
+ virtual void setGroupID(const LLUUID& id);
+
+ void addMemberToList(LLGroupMemberData* data);
+ void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);
+
+protected:
+ typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t;
+ typedef std::map<LLUUID, role_change_data_map_t*> member_role_changes_map_t;
+
+ bool matchesSearchFilter(const std::string& fullname);
+
+ U64 getAgentPowersBasedOnRoleChanges(const LLUUID& agent_id);
+ bool getRoleChangeType(const LLUUID& member_id,
+ const LLUUID& role_id,
+ LLRoleMemberChangeType& type);
+
+ LLNameListCtrl* mMembersList;
+ LLScrollListCtrl* mAssignedRolesList;
+ LLScrollListCtrl* mAllowedActionsList;
+ LLButton* mEjectBtn;
+ LLButton* mBanBtn;
+
+ bool mChanged;
+ bool mPendingMemberUpdate;
+ bool mHasMatch;
+
+ LLTextEditor* mActionDescription;
+
+ member_role_changes_map_t mMemberRoleChangeData;
+ U32 mNumOwnerAdditions;
+
+ LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
+ typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
+ avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
+};
+
+
+class LLPanelGroupRolesSubTab : public LLPanelGroupSubTab
+{
+public:
+ LLPanelGroupRolesSubTab();
+ virtual ~LLPanelGroupRolesSubTab();
+
+ virtual bool postBuildSubTab(LLView* root);
+
+ virtual void activate();
+ virtual void deactivate();
+ virtual bool needsApply(std::string& mesg);
+ virtual bool apply(std::string& mesg);
+ virtual void cancel();
+ bool matchesSearchFilter(std::string rolename, std::string roletitle);
+ virtual void update(LLGroupChange gc);
+
+ static void onRoleSelect(LLUICtrl*, void*);
+ void handleRoleSelect();
+ void buildMembersList();
+
+ static void onActionCheck(LLUICtrl*, void*);
+ bool addActionCB(const LLSD& notification, const LLSD& response, LLCheckBoxCtrl* check);
+
+ static void onPropertiesKey(LLLineEditor*, void*);
+
+ void onDescriptionKeyStroke(LLTextEditor* caller);
+
+ static void onDescriptionCommit(LLUICtrl*, void*);
+
+ static void onMemberVisibilityChange(LLUICtrl*, void*);
+ void handleMemberVisibilityChange(bool value);
+
+ static void onCreateRole(void*);
+ void handleCreateRole();
+
+ static void onCopyRole(void*);
+ void handleCopyRole();
+
+ static void onDeleteRole(void*);
+ void handleDeleteRole();
+
+ void updateActionDescription();
+
+ void saveRoleChanges(bool select_saved_role);
+
+ virtual void setGroupID(const LLUUID& id);
+
+ bool mFirstOpen;
+
+protected:
+ void handleActionCheck(LLUICtrl* ctrl, bool force);
+ LLSD createRoleItem(const LLUUID& role_id, std::string name, std::string title, S32 members);
+
+ LLScrollListCtrl* mRolesList;
+ LLNameListCtrl* mAssignedMembersList;
+ LLScrollListCtrl* mAllowedActionsList;
+ LLTextEditor* mActionDescription;
+
+ LLLineEditor* mRoleName;
+ LLLineEditor* mRoleTitle;
+ LLTextEditor* mRoleDescription;
+
+ LLCheckBoxCtrl* mMemberVisibleCheck;
+ LLButton* mDeleteRoleButton;
+ LLButton* mCreateRoleButton;
+ LLButton* mCopyRoleButton;
+
+ LLUUID mSelectedRole;
+ bool mHasRoleChange;
+ std::string mRemoveEveryoneTxt;
+};
+
+
+class LLPanelGroupActionsSubTab : public LLPanelGroupSubTab
+{
+public:
+ LLPanelGroupActionsSubTab();
+ virtual ~LLPanelGroupActionsSubTab();
+
+ virtual bool postBuildSubTab(LLView* root);
+
+
+ virtual void activate();
+ virtual void deactivate();
+ virtual bool needsApply(std::string& mesg);
+ virtual bool apply(std::string& mesg);
+ virtual void update(LLGroupChange gc);
+ virtual void onFilterChanged();
+
+ void handleActionSelect();
+
+ virtual void setGroupID(const LLUUID& id);
+protected:
+ LLScrollListCtrl* mActionList;
+ LLScrollListCtrl* mActionRoles;
+ LLNameListCtrl* mActionMembers;
+
+ LLTextEditor* mActionDescription;
+};
+
+
+class LLPanelGroupBanListSubTab : public LLPanelGroupSubTab
+{
+public:
+ LLPanelGroupBanListSubTab();
+ virtual ~LLPanelGroupBanListSubTab() {}
+
+ virtual bool postBuildSubTab(LLView* root);
+
+ virtual void activate();
+ virtual void update(LLGroupChange gc);
+ virtual void draw();
+
+ static void onBanEntrySelect(LLUICtrl* ctrl, void* user_data);
+ void handleBanEntrySelect();
+
+ static void onCreateBanEntry(void* user_data);
+ void handleCreateBanEntry();
+
+ static void onDeleteBanEntry(void* user_data);
+ void handleDeleteBanEntry();
+
+ static void onRefreshBanList(void* user_data);
+ void handleRefreshBanList();
+
+ void onBanListCompleted(bool isComplete);
+
+protected:
+ void setBanCount(U32 ban_count);
+ void populateBanList();
+
+public:
+ virtual void setGroupID(const LLUUID& id);
+
+protected:
+ LLNameListCtrl* mBanList;
+ LLButton* mCreateBanButton;
+ LLButton* mDeleteBanButton;
+ LLButton* mRefreshBanListButton;
+ LLTextBase* mBanCountText;
+
+};
+
+#endif // LL_LLPANELGROUPROLES_H
|