+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../prettify/prettify.js"></script>
+ <style type="text/css">
+ .highlight { display: block; background-color: #ddd; }
+ </style>
+ <script type="text/javascript">
+ function highlight() {
+ document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
+ }
+ </script>
+</head>
+<body onload="prettyPrint(); highlight();">
+ <pre class="prettyprint lang-js"><span id='Ext-ShadowPool'>/**
+</span> * @class Ext.ShadowPool
+ * @extends Object
+ * Private utility class that manages the internal Shadow cache
+ * @private
+ */
+Ext.define('Ext.ShadowPool', {
+ singleton: true,
+ requires: ['Ext.core.DomHelper'],
+
+ markup: function() {
+ if (Ext.supports.CSS3BoxShadow) {
+ return '<div class="' + Ext.baseCSSPrefix + 'css-shadow" role="presentation"></div>';
+ } else if (Ext.isIE) {
+ return '<div class="' + Ext.baseCSSPrefix + 'ie-shadow" role="presentation"></div>';
+ } else {
+ return '<div class="' + Ext.baseCSSPrefix + 'frame-shadow" role="presentation">' +
+ '<div class="xst" role="presentation">' +
+ '<div class="xstl" role="presentation"></div>' +
+ '<div class="xstc" role="presentation"></div>' +
+ '<div class="xstr" role="presentation"></div>' +
+ '</div>' +
+ '<div class="xsc" role="presentation">' +
+ '<div class="xsml" role="presentation"></div>' +
+ '<div class="xsmc" role="presentation"></div>' +
+ '<div class="xsmr" role="presentation"></div>' +
+ '</div>' +
+ '<div class="xsb" role="presentation">' +
+ '<div class="xsbl" role="presentation"></div>' +
+ '<div class="xsbc" role="presentation"></div>' +
+ '<div class="xsbr" role="presentation"></div>' +
+ '</div>' +
+ '</div>';
+ }
+ }(),
+
+ shadows: [],
+
+ pull: function() {
+ var sh = this.shadows.shift();
+ if (!sh) {
+ sh = Ext.get(Ext.core.DomHelper.insertHtml("beforeBegin", document.body.firstChild, this.markup));
+ sh.autoBoxAdjust = false;
+ }
+ return sh;
+ },
+
+ push: function(sh) {
+ this.shadows.push(sh);
+ },
+
+ reset: function() {
+ Ext.Array.each(this.shadows, function(shadow) {
+ shadow.remove();
+ });
+ this.shadows = [];
+ }
+});</pre>
+</body>
+</html>