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

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llfloaterscriptlimits.h
  3.  * @author Gabriel Lee
  4.  * @brief Declaration of the region info and controls floater and panels.
  5.  *
  6.  * $LicenseInfo:firstyear=2004&license=viewergpl$
  7.  * 
  8.  * Copyright (c) 2004-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_LLFLOATERSCRIPTLIMITS_H
  34. #define LL_LLFLOATERSCRIPTLIMITS_H
  35. #include <vector>
  36. #include "llfloater.h"
  37. #include "llhost.h"
  38. #include "llpanel.h"
  39. #include "llremoteparcelrequest.h"
  40. class LLPanelScriptLimitsInfo;
  41. class LLTabContainer;
  42. class LLPanelScriptLimitsRegionMemory;
  43. class LLFloaterScriptLimits : public LLFloater
  44. {
  45. friend class LLFloaterReg;
  46. public:
  47. /*virtual*/ BOOL postBuild();
  48. // from LLPanel
  49. virtual void refresh();
  50. private:
  51. LLFloaterScriptLimits(const LLSD& seed);
  52. ~LLFloaterScriptLimits();
  53. protected:
  54. LLTabContainer* mTab;
  55. typedef std::vector<LLPanelScriptLimitsInfo*> info_panels_t;
  56. info_panels_t mInfoPanels;
  57. };
  58. // Base class for all script limits information panels.
  59. class LLPanelScriptLimitsInfo : public LLPanel
  60. {
  61. public:
  62. LLPanelScriptLimitsInfo();
  63. virtual BOOL postBuild();
  64. virtual void updateChild(LLUICtrl* child_ctrl);
  65. protected:
  66. void initCtrl(const std::string& name);
  67. typedef std::vector<std::string> strings_t;
  68. LLHost mHost;
  69. };
  70. /////////////////////////////////////////////////////////////////////////////
  71. // Responders
  72. /////////////////////////////////////////////////////////////////////////////
  73. class fetchScriptLimitsRegionInfoResponder: public LLHTTPClient::Responder
  74. {
  75. public:
  76. fetchScriptLimitsRegionInfoResponder(const LLSD& info) : mInfo(info) {};
  77. void result(const LLSD& content);
  78. void error(U32 status, const std::string& reason);
  79. public:
  80. protected:
  81. LLSD mInfo;
  82. };
  83. class fetchScriptLimitsRegionSummaryResponder: public LLHTTPClient::Responder
  84. {
  85. public:
  86. fetchScriptLimitsRegionSummaryResponder(const LLSD& info) : mInfo(info) {};
  87. void result(const LLSD& content);
  88. void error(U32 status, const std::string& reason);
  89. public:
  90. protected:
  91. LLSD mInfo;
  92. };
  93. class fetchScriptLimitsRegionDetailsResponder: public LLHTTPClient::Responder
  94. {
  95. public:
  96. fetchScriptLimitsRegionDetailsResponder(const LLSD& info) : mInfo(info) {};
  97. void result(const LLSD& content);
  98. void error(U32 status, const std::string& reason);
  99. public:
  100. protected:
  101. LLSD mInfo;
  102. };
  103. class fetchScriptLimitsAttachmentInfoResponder: public LLHTTPClient::Responder
  104. {
  105. public:
  106. fetchScriptLimitsAttachmentInfoResponder() {};
  107. void result(const LLSD& content);
  108. void error(U32 status, const std::string& reason);
  109. public:
  110. protected:
  111. };
  112. /////////////////////////////////////////////////////////////////////////////
  113. // Memory panel
  114. /////////////////////////////////////////////////////////////////////////////
  115. class LLPanelScriptLimitsRegionMemory : public LLPanelScriptLimitsInfo, LLRemoteParcelInfoObserver
  116. {
  117. public:
  118. LLPanelScriptLimitsRegionMemory()
  119. : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(),
  120. mParcelId(LLUUID()),
  121. mGotParcelMemoryUsed(false),
  122. mGotParcelMemoryMax(false),
  123. mParcelMemoryMax(0),
  124. mParcelMemoryUsed(0) {};
  125. ~LLPanelScriptLimitsRegionMemory()
  126. {
  127. LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this);
  128. };
  129. // LLPanel
  130. virtual BOOL postBuild();
  131. void setRegionDetails(LLSD content);
  132. void setRegionSummary(LLSD content);
  133. BOOL StartRequestChain();
  134. BOOL getLandScriptResources();
  135. void clearList();
  136. void showBeacon();
  137. void returnObjectsFromParcel(S32 local_id);
  138. void returnObjects();
  139. private:
  140. void onNameCache(const LLUUID& id,
  141.  const std::string& first_name,
  142.  const std::string& last_name);
  143. LLSD mContent;
  144. LLUUID mParcelId;
  145. bool mGotParcelMemoryUsed;
  146. bool mGotParcelMemoryUsedDetails;
  147. bool mGotParcelMemoryMax;
  148. S32 mParcelMemoryMax;
  149. S32 mParcelMemoryUsed;
  150. S32 mParcelMemoryUsedDetails;
  151. bool mGotParcelURLsUsed;
  152. bool mGotParcelURLsUsedDetails;
  153. bool mGotParcelURLsMax;
  154. S32 mParcelURLsMax;
  155. S32 mParcelURLsUsed;
  156. S32 mParcelURLsUsedDetails;
  157. std::vector<LLSD> mObjectListItems;
  158. protected:
  159. // LLRemoteParcelInfoObserver interface:
  160. /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
  161. /*virtual*/ void setParcelID(const LLUUID& parcel_id);
  162. /*virtual*/ void setErrorStatus(U32 status, const std::string& reason);
  163. static void onClickRefresh(void* userdata);
  164. static void onClickHighlight(void* userdata);
  165. static void onClickReturn(void* userdata);
  166. };
  167. /////////////////////////////////////////////////////////////////////////////
  168. // Attachment panel
  169. /////////////////////////////////////////////////////////////////////////////
  170. class LLPanelScriptLimitsAttachment : public LLPanelScriptLimitsInfo
  171. {
  172. public:
  173. LLPanelScriptLimitsAttachment()
  174. : LLPanelScriptLimitsInfo(),
  175. mGotAttachmentMemoryUsed(false),
  176. mGotAttachmentMemoryUsedDetails(false),
  177. mGotAttachmentMemoryMax(false),
  178. mAttachmentMemoryMax(0),
  179. mAttachmentMemoryUsed(0),
  180. mAttachmentMemoryUsedDetails(0),
  181. mGotAttachmentURLsUsed(false),
  182. mGotAttachmentURLsUsedDetails(false),
  183. mGotAttachmentURLsMax(false),
  184. mAttachmentURLsMax(0),
  185. mAttachmentURLsUsed(0),
  186. mAttachmentURLsUsedDetails(0)
  187. {};
  188. ~LLPanelScriptLimitsAttachment()
  189. {
  190. };
  191. // LLPanel
  192. virtual BOOL postBuild();
  193. void setAttachmentDetails(LLSD content);
  194. void setAttachmentSummary(LLSD content);
  195. BOOL requestAttachmentDetails();
  196. void clearList();
  197. private:
  198. bool mGotAttachmentMemoryUsed;
  199. bool mGotAttachmentMemoryUsedDetails;
  200. bool mGotAttachmentMemoryMax;
  201. S32 mAttachmentMemoryMax;
  202. S32 mAttachmentMemoryUsed;
  203. S32 mAttachmentMemoryUsedDetails;
  204. bool mGotAttachmentURLsUsed;
  205. bool mGotAttachmentURLsUsedDetails;
  206. bool mGotAttachmentURLsMax;
  207. S32 mAttachmentURLsMax;
  208. S32 mAttachmentURLsUsed;
  209. S32 mAttachmentURLsUsedDetails;
  210. protected:
  211. static void onClickRefresh(void* userdata);
  212. };
  213. #endif