  *  &lt;mx:Window
  *    <strong>Properties</strong>
  *    alwaysInFront="false"
+ *    height="100"
  *    maxHeight="10000"
  *    maximizable="true"
  *    maxWidth="10000"
  *    menu="<i>null</i>"
- *    minHeight="100"
+ *    minHeight="0"
  *    minimizable="true"
- *    minWidth="100"
+ *    minWidth="0"
  *    resizable="true"
  *    showGripper="true"
  *    showStatusBar="true"

    }

	//----------------------------------
	//  maxHeight
	//----------------------------------
	
	/**
	 *  @private
	 *  Storage for the maxHeight property.
	 */
	private var _maxHeight:Number = 10000;
	
	[Bindable("maxHeightChanged")]
	
	/**
	 *  The maximum height of the window.
	 */
	override public function get maxHeight():Number
	{
		return _maxHeight;
	}
	
	/**
	 *  @private
	 */
	override public function set maxHeight(value:Number):void
	{
		_maxHeight = value;
		if (height > _maxHeight)
			height = _maxHeight;
			
		dispatchEvent(new Event("maxHeightChanged"));
	}
	
	//----------------------------------
	//  maxWidth
	//----------------------------------
	
	/**
	 *  @private
	 *  Storage for the maxWidth property.
	 */
	private var _maxWidth:Number = 10000;

	[Bindable("maxWidthChanged")]

	/**
	 *  The maximum width of the window.
	 */
	 override public function get maxWidth():Number
	{
		return _maxWidth;
	}
	
	/**
	 *  @private
	 */
	override public function set maxWidth(value:Number):void
	{
		_maxWidth = value;
	 	if (height > _maxWidth)
	 		height = _maxWidth;
	 		
	 	dispatchEvent(new Event("maxWidthChanged"));
	}
	
	 //---------------------------------
	 //  minHeight
	 //---------------------------------
	
	/**
	 *  @private
	 *  Storage for the minHeight property.
	 */
	private var _minHeight:Number =
		Math.max(NativeWindow.systemMinSize.y, 100);
	
	[Bindable("minHeightChanged")]
	
	/**
	 *  The minimum height of the window.
	 */
	override public function get minHeight():Number
	{
		return _minHeight;
	}
	
	/**
	 *  @private
	 */
	override public  function set minHeight(value:Number):void
	{
		_minHeight = value;
		if (height < minHeight)
			height = minHeight;
			
		dispatchEvent(new Event("minHeightChanged"));
	}
	
	//----------------------------------
	//  minWidth
	//----------------------------------
	
	/**
	 *  @private
	 *  Storage for the minWidth property.
	 */
	private var _minWidth:Number =
		Math.max(NativeWindow.systemMinSize.x, 100);
		
	[Bindable("minWidthChanged")]
		
	/**
	 *  The minimum width of the window.
	 */
	override public  function get minWidth():Number
	{
		return _minWidth;
	}
	
	/**
	 *  @private
	 */
	override public  function set minWidth(value:Number):void
	{
		_minWidth = value;
		if (width < _minWidth)
			width = _minWidth;
			
		dispatchEvent(new Event("minWidthChanged"));
	}
	
	//----------------------------------
	//  visible

import flash.events.MouseEvent;
import flash.events.NativeWindowBoundsEvent;
import flash.events.NativeWindowDisplayStateEvent;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.system.Capabilities;

import mx.controls.Button;
import mx.controls.FlexNativeMenu;
import mx.core.windowClasses.StatusBar;
