1 /**
  2  * The Render Engine
  3  * HTMLDivContext
  4  *
  5  * @fileoverview A render context which wraps a DIV element.
  6  *
  7  * @author: Brett Fattori (brettf@renderengine.com)
  8  * @author: $Author: bfattori $
  9  * @version: $Revision: 1555 $
 10  *
 11  * Copyright (c) 2011 Brett Fattori (brettf@renderengine.com)
 12  *
 13  * Permission is hereby granted, free of charge, to any person obtaining a copy
 14  * of this software and associated documentation files (the "Software"), to deal
 15  * in the Software without restriction, including without limitation the rights
 16  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 17  * copies of the Software, and to permit persons to whom the Software is
 18  * furnished to do so, subject to the following conditions:
 19  *
 20  * The above copyright notice and this permission notice shall be included in
 21  * all copies or substantial portions of the Software.
 22  *
 23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 24  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 25  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 26  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 27  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 28  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 29  * THE SOFTWARE.
 30  *
 31  */
 32 
 33 // The class this file defines and its required classes
 34 R.Engine.define({
 35     "class":"R.rendercontexts.HTMLDivContext",
 36     "requires":[
 37         "R.rendercontexts.HTMLElementContext",
 38         "R.math.Rectangle2D"
 39     ]
 40 });
 41 
 42 /**
 43  * @class A simple extension of the {@link R.rendercontexts.HTMLElementContext} which uses a DIV
 44  * element to represent the context.  This is just a convenience method.
 45  * <p/>
 46  *
 47  * @extends R.rendercontexts.HTMLElementContext
 48  * @constructor
 49  * @description Create a new instance of a context drawn on a <tt>div</tt> element.
 50  * @param name {String} The name of the context
 51  * @param contextWidth {Number} The width (in pixels) of the context.
 52  * @param contextHeight {Number} The height (in pixels) of the context.
 53  */
 54 R.rendercontexts.HTMLDivContext = function () {
 55     return R.rendercontexts.HTMLElementContext.extend(/** @scope R.rendercontexts.HTMLDivContext.prototype */{
 56 
 57         /** @private */
 58         constructor:function (name, contextWidth, contextHeight) {
 59             var ctx = $("<div>").css({
 60                 width:contextWidth,
 61                 height:contextHeight,
 62                 position:"absolute",
 63                 overflow:"hidden"
 64             });
 65             this.base(name || "HTMLDivContext", ctx);
 66             this.setViewport(R.math.Rectangle2D.create(0, 0, contextWidth, contextHeight));
 67         }
 68 
 69     }, /** @scope R.rendercontexts.HTMLDivContext.prototype */ {
 70 
 71         /**
 72          * Get the class name of this object
 73          *
 74          * @return {String} "R.rendercontexts.HTMLDivContext"
 75          */
 76         getClassName:function () {
 77             return "R.rendercontexts.HTMLDivContext";
 78         }
 79     });
 80 
 81 }