00001 00032 #ifndef LL_LLFLOATERPERMISSIONSMGR_H 00033 #define LL_LLFLOATERPERMISSIONSMGR_H 00034 00035 #include "llfloater.h" 00036 #include <vector> 00037 00038 class LLScrollableContainerView; 00039 class LLPermissionsView; 00040 00041 class LLFloaterPermissionsMgr 00042 : public LLFloater 00043 { 00044 public: 00045 static LLFloaterPermissionsMgr* show(); 00046 00047 // Message system callbacks 00048 static void processPermissionsList(LLMessageSystem* msg, void**); 00049 00050 virtual void onClose(bool app_quitting) { setVisible(FALSE); } 00051 00052 private: 00053 // Must construct by calling show(). 00054 LLFloaterPermissionsMgr(); 00055 virtual ~LLFloaterPermissionsMgr(); 00056 00057 public: 00058 LLPermissionsView* mPermissions; 00059 00060 protected: 00061 LLScrollableContainerView* mScroller; 00062 00063 static LLFloaterPermissionsMgr* sInstance; 00064 }; 00065 00066 class LLPermissionsData 00067 { 00068 public: 00069 LLPermissionsData(const LLUUID& object_id, U32 permission_flags) : mObjectID(object_id), mPermFlags(permission_flags) {}; 00070 00071 LLUUID mObjectID; 00072 U32 mPermFlags; 00073 }; 00074 00075 class LLPermissionsView : public LLView 00076 { 00077 public: 00078 LLPermissionsView(const LLRect& rect); 00079 virtual ~LLPermissionsView() {}; 00080 00081 virtual EWidgetType getWidgetType() const; 00082 virtual LLString getWidgetTag() const; 00083 00084 public: 00085 void clearPermissionsData(); 00086 void addPermissionsData(const LLString& object_name, const LLUUID& object_id, U32 permissions_flags); 00087 00088 static void revokePermissions(void *userdata); 00089 static void findObject(void *userdata); 00090 00091 protected: 00092 std::map<LLUUID, LLPermissionsData*> mPermData; 00093 }; 00094 00095 00096 #endif