function ButtonDrawer(parent)
{
	ButtonIcon.call(this, parent);

	this.element.style.zIndex = "200";
	this.element.style.overflow = "visible";

	this.panel = new Component(this, "div");
	this.panel.element.style.overflow = "visible";
	this.panel.element.style.backgroundColor = "var(--bar-color)";
	this.panel.element.style.zIndex = "250";

	/** 
	 * List of the options in this panel.
	 *
	 * @attribute options
	 * @type {Array}
	 */
	this.options = [];

	/**
	 * Number of maximum options per row
	 *
	 * @attribute optionsPerLine
	 * @type {number}
	 */
	this.optionsPerLine = 3;
	
	/**
	 * Size of each option, also affects the size of the panel.
	 *
	 * @attribute optionsSize
	 * @type {Vector2}
	 */
	this.optionsSize = new Vector2(40, 40);

	/**
	 * Scale of the inner icon of the options created from the addOption() method.
	 *
	 * @attribute optionsScale
	 * @type {Vector2}
	 */
	this.optionsScale = new Vector2(0.7, 0.7);

	/**
	 * Indicates if the button drawer panel is visible.
	 *
	 * @attribute expanded
	 * @type {boolean}
	 */
	this.expanded = false;
	this.setExpanded(false);

	var self = this;

	this.addEvent("mouseenter", function()
	{
		if (self.disabled === false)
		{
			self.setExpanded(true);
		}
	});

	this.addEvent("mouseleave", function()
	{
		self.setExpanded(false);
	});

	this.panel.addEvent("mouseenter", function()
	{
		self.setExpanded(true);
	});

	this.panel.addEvent("mouseleave", function()
	{
		self.setExpanded(false);
	});
}
Button with text, inherits all methods available on the Text class.

Used in menu bars, panels, etc.

@class ButtonDrawer
@extends {ButtonIcon}
@param {Component} parent Parent element.