llfloaterbulkpermission.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:3k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llfloaterbulkpermissions.h
  3.  * @brief Allow multiple task inventory properties to be set in one go.
  4.  * @author Michelle2 Zenovka
  5.  *
  6.  * $LicenseInfo:firstyear=2008&license=viewergpl$
  7.  * 
  8.  * Copyright (c) 2008-2010, Linden Research, Inc.
  9.  * 
  10.  * Second Life Viewer Source Code
  11.  * The source code in this file ("Source Code") is provided by Linden Lab
  12.  * to you under the terms of the GNU General Public License, version 2.0
  13.  * ("GPL"), unless you have obtained a separate licensing agreement
  14.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  15.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  16.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  17.  * 
  18.  * There are special exceptions to the terms and conditions of the GPL as
  19.  * it is applied to this Source Code. View the full text of the exception
  20.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  21.  * online at
  22.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  23.  * 
  24.  * By copying, modifying or distributing this software, you acknowledge
  25.  * that you have read and understood your obligations described above,
  26.  * and agree to abide by those obligations.
  27.  * 
  28.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  29.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  30.  * COMPLETENESS OR PERFORMANCE.
  31.  * $/LicenseInfo$
  32.  */
  33. #ifndef LL_LLBULKPERMISSION_H
  34. #define LL_LLBULKPERMISSION_H
  35. #include "lldarray.h"
  36. #include "llinventory.h"
  37. #include "llviewerobject.h"
  38. #include "llvoinventorylistener.h"
  39. #include "llmap.h"
  40. #include "lluuid.h"
  41. #include "llfloater.h"
  42. #include "llscrolllistctrl.h"
  43. class LLFloaterBulkPermission : public LLFloater, public LLVOInventoryListener
  44. {
  45. friend class LLFloaterReg;
  46. public:
  47. BOOL postBuild();
  48. private:
  49. LLFloaterBulkPermission(const LLSD& seed);
  50. virtual ~LLFloaterBulkPermission() {}
  51. BOOL start(); // returns TRUE if the queue has started, otherwise FALSE.
  52. BOOL nextObject();
  53. BOOL popNext();
  54. // This is the callback method for the viewer object currently
  55. // being worked on.
  56. /*virtual*/ void inventoryChanged(LLViewerObject* obj,
  57.  InventoryObjectList* inv,
  58.  S32 serial_num,
  59.  void* queue);
  60. // This is called by inventoryChanged
  61. void handleInventory(LLViewerObject* viewer_obj,
  62. InventoryObjectList* inv);
  63. void updateInventory(LLViewerObject* object,
  64. LLViewerInventoryItem* item,
  65. U8 key,
  66. bool is_new);
  67. void onCloseBtn();
  68. void onApplyBtn();
  69. void onCommitCopy();
  70. void onCheckAll() { doCheckUncheckAll(TRUE); }
  71. void onUncheckAll() { doCheckUncheckAll(FALSE); }
  72. // returns true if this is done
  73. BOOL isDone() const { return (mCurrentObjectID.isNull() || (mObjectIDs.count() == 0)); }
  74. //Read the settings and Apply the permissions
  75. void doApply();
  76. void doCheckUncheckAll(BOOL check);
  77. private:
  78. // UI
  79. LLScrollListCtrl* mMessages;
  80. LLButton* mCloseBtn;
  81. // Object Queue
  82. LLDynamicArray<LLUUID> mObjectIDs;
  83. LLUUID mCurrentObjectID;
  84. BOOL mDone;
  85. LLUUID mID;
  86. const char* mStartString;
  87. };
  88. #endif