// Generated by SharpKit.QooxDoo.Generator
using System;
using System.Collections.Generic;
using SharpKit.Html;
using SharpKit.JavaScript;

namespace qx.bom.element
{
    /// <summary>
	/// <para>Contains support for calculating dimensions of HTML elements.</para>
	/// <para>We differ between the box (or border) size which is available via
	/// <see cref="GetWidth"/> and <see cref="GetHeight"/> and the content or scroll
	/// sizes which are available via <see cref="GetContentWidth"/> and
	/// <see cref="GetContentHeight"/>.</para>
	/// </summary>
	[JsType(JsMode.Prototype, Name = "qx.bom.element.Dimension", OmitOptionalParameters = true, Export = false)]
    public partial class Dimension 
    {
		#region Methods

		public Dimension() { throw new NotImplementedException(); }

		/// <summary>
		/// <para>Returns the content height.</para>
		/// <para>The content height is basically the maximum
		/// height used or the maximum height which can be used by the content. This
		/// excludes all kind of styles of the element like borders, paddings, margins,
		/// and even scrollbars.</para>
		/// <para>Please note that with visible scrollbars the content height returned
		/// may be larger than the box height returned via <see cref="GetHeight"/>.</para>
		/// </summary>
		/// <param name="element">element to query</param>
		/// <returns>Computed content height</returns>
		[JsMethod(Name = "getContentHeight")]
		public static double GetContentHeight(qx.html.Element element) { throw new NotImplementedException(); }

		/// <summary>
		/// <para>Returns the rendered content size of the given element.</para>
		/// </summary>
		/// <param name="element">element to query</param>
		/// <returns>map containing the content width and height of the element</returns>
		[JsMethod(Name = "getContentSize")]
		public static object GetContentSize(qx.html.Element element) { throw new NotImplementedException(); }

		/// <summary>
		/// <para>Returns the content width.</para>
		/// <para>The content width is basically the maximum
		/// width used or the maximum width which can be used by the content. This
		/// excludes all kind of styles of the element like borders, paddings, margins,
		/// and even scrollbars.</para>
		/// <para>Please note that with visible scrollbars the content width returned
		/// may be larger than the box width returned via <see cref="GetWidth"/>.</para>
		/// </summary>
		/// <param name="element">element to query</param>
		/// <returns>Computed content width</returns>
		[JsMethod(Name = "getContentWidth")]
		public static double GetContentWidth(qx.html.Element element) { throw new NotImplementedException(); }

		/// <summary>
		/// <para>Returns the rendered height of the given element.</para>
		/// <para>This is the visible height of the object, which need not to be identical
		/// to the height configured via CSS. This highly depends on the current
		/// box-sizing for the document and maybe even for the element.</para>
		/// </summary>
		/// <param name="element">element to query</param>
		/// <returns>height of the element</returns>
		[JsMethod(Name = "getHeight")]
		public static double GetHeight(qx.html.Element element) { throw new NotImplementedException(); }

		/// <summary>
		/// <para>Returns the rendered size of the given element.</para>
		/// </summary>
		/// <param name="element">element to query</param>
		/// <returns>map containing the width and height of the element</returns>
		[JsMethod(Name = "getSize")]
		public static object GetSize(qx.html.Element element) { throw new NotImplementedException(); }

		/// <summary>
		/// <para>Returns the rendered width of the given element.</para>
		/// <para>This is the visible width of the object, which need not to be identical
		/// to the width configured via CSS. This highly depends on the current
		/// box-sizing for the document and maybe even for the element.</para>
		/// </summary>
		/// <param name="element">element to query</param>
		/// <returns>width of the element</returns>
		[JsMethod(Name = "getWidth")]
		public static double GetWidth(qx.html.Element element) { throw new NotImplementedException(); }

		#endregion Methods
    }
}