Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / docs / source / ext-base-region.html
1 <html>
2 <head>
3   <title>The source code</title>
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
6 </head>
7 <body  onload="prettyPrint();">
8     <pre class="prettyprint lang-js">/*!
9  * Ext JS Library 3.0.3
10  * Copyright(c) 2006-2009 Ext JS, LLC
11  * licensing@extjs.com
12  * http://www.extjs.com/license
13  */
14         Ext.lib.Region = function(t, r, b, l) {\r
15                 var me = this;\r
16         me.top = t;\r
17         me[1] = t;\r
18         me.right = r;\r
19         me.bottom = b;\r
20         me.left = l;\r
21         me[0] = l;\r
22     };\r
23 \r
24     Ext.lib.Region.prototype = {\r
25         contains : function(region) {\r
26                 var me = this;\r
27             return ( region.left >= me.left &&\r
28                      region.right <= me.right &&\r
29                      region.top >= me.top &&\r
30                      region.bottom <= me.bottom );\r
31 \r
32         },\r
33 \r
34         getArea : function() {\r
35                 var me = this;\r
36             return ( (me.bottom - me.top) * (me.right - me.left) );\r
37         },\r
38 \r
39         intersect : function(region) {\r
40             var me = this,\r
41                 t = Math.max(me.top, region.top),\r
42                 r = Math.min(me.right, region.right),\r
43                 b = Math.min(me.bottom, region.bottom),\r
44                 l = Math.max(me.left, region.left);\r
45 \r
46             if (b >= t && r >= l) {\r
47                 return new Ext.lib.Region(t, r, b, l);\r
48             }\r
49         },\r
50         \r
51         union : function(region) {\r
52                 var me = this,\r
53                 t = Math.min(me.top, region.top),\r
54                 r = Math.max(me.right, region.right),\r
55                 b = Math.max(me.bottom, region.bottom),\r
56                 l = Math.min(me.left, region.left);\r
57 \r
58             return new Ext.lib.Region(t, r, b, l);\r
59         },\r
60 \r
61         constrainTo : function(r) {\r
62                 var me = this;\r
63             me.top = me.top.constrain(r.top, r.bottom);\r
64             me.bottom = me.bottom.constrain(r.top, r.bottom);\r
65             me.left = me.left.constrain(r.left, r.right);\r
66             me.right = me.right.constrain(r.left, r.right);\r
67             return me;\r
68         },\r
69 \r
70         adjust : function(t, l, b, r) {\r
71                 var me = this;\r
72             me.top += t;\r
73             me.left += l;\r
74             me.right += r;\r
75             me.bottom += b;\r
76             return me;\r
77         }\r
78     };\r
79 \r
80     Ext.lib.Region.getRegion = function(el) {\r
81         var p = Ext.lib.Dom.getXY(el),\r
82                 t = p[1],\r
83                 r = p[0] + el.offsetWidth,\r
84                 b = p[1] + el.offsetHeight,\r
85                 l = p[0];\r
86 \r
87         return new Ext.lib.Region(t, r, b, l);\r
88     };</pre>
89 </body>
90 </html>