123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/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-layout-component-Draw'>/**
- </span> * @class Ext.layout.component.Draw
- * @private
- *
- */
- Ext.define('Ext.layout.component.Draw', {
- /* Begin Definitions */
- alias: 'layout.draw',
- extend: 'Ext.layout.component.Auto',
- /* End Definitions */
- type: 'draw',
-
- measureContentWidth : function (ownerContext) {
- var target = ownerContext.target,
- paddingInfo = ownerContext.getPaddingInfo(),
- bbox = this.getBBox(ownerContext);
-
- if (!target.viewBox) {
- if (target.autoSize) {
- return bbox.width + paddingInfo.width;
- } else {
- return bbox.x + bbox.width + paddingInfo.width;
- }
- } else {
- if (ownerContext.heightModel.shrinkWrap) {
- return paddingInfo.width;
- } else {
- return bbox.width / bbox.height * (ownerContext.getProp('contentHeight') - paddingInfo.height) + paddingInfo.width;
- }
- }
- },
-
- measureContentHeight : function (ownerContext) {
- var target = ownerContext.target,
- paddingInfo = ownerContext.getPaddingInfo(),
- bbox = this.getBBox(ownerContext);
-
- if (!ownerContext.target.viewBox) {
- if (target.autoSize) {
- return bbox.height + paddingInfo.height;
- } else {
- return bbox.y + bbox.height + paddingInfo.height;
- }
- } else {
- if (ownerContext.widthModel.shrinkWrap) {
- return paddingInfo.height;
- } else {
- return bbox.height / bbox.width * (ownerContext.getProp('contentWidth') - paddingInfo.width) + paddingInfo.height;
- }
- }
- },
-
- getBBox: function(ownerContext) {
- var bbox = ownerContext.surfaceBBox;
- if (!bbox) {
- bbox = ownerContext.target.surface.items.getBBox();
- // If the surface is empty, we'll get these values, normalize them
- if (bbox.width === -Infinity && bbox.height === -Infinity) {
- bbox.width = bbox.height = bbox.x = bbox.y = 0;
- }
- ownerContext.surfaceBBox = bbox;
- }
- return bbox;
- },
- publishInnerWidth: function (ownerContext, width) {
- ownerContext.setContentWidth(width - ownerContext.getFrameInfo().width, true);
- },
-
- publishInnerHeight: function (ownerContext, height) {
- ownerContext.setContentHeight(height - ownerContext.getFrameInfo().height, true);
- },
-
- finishedLayout: function (ownerContext) {
- // TODO: Is there a better way doing this?
- var props = ownerContext.props,
- paddingInfo = ownerContext.getPaddingInfo();
- // We don't want the cost of getProps, so we just use the props data... this is ok
- // because all the props have been calculated by this time
- this.owner.setSurfaceSize(props.contentWidth - paddingInfo.width, props.contentHeight - paddingInfo.height);
-
- // calls afterComponentLayout, so we want the surface to be sized before that:
- this.callParent(arguments);
- }
- });
- </pre>
- </body>
- </html>
|