function RunProject(parent, closeable, container, index)
{
	TabComponent.call(this, parent, closeable, container, index, Locale.run, Global.FILE_PATH + "icons/misc/play.png");

	var self = this;

	/**
	 * Rendering canvas element where the program is presented.
	 *
	 * @attribute canvas
	 * @type {RendererCanvas}
	 */
	this.canvas = new RendererCanvas(this, Editor.program.rendererConfig);
	this.canvas.onResize = function(width, height)
	{
		if (self.program !== null)
		{
			self.program.resize(width, height);
		}
	};

	/**
	 * Program being run on this tab.
	 *
	 * @attribute program
	 * @type {Program}
	 */
	this.program = null;

	/**
	 * Fullscreen button used to toggle fullscreen mode.
	 *
	 * @attribute fullscreenButton
	 * @type {ButtonIcon}
	 */
	this.fullscreenButton = new ButtonIcon(this);
	this.fullscreenButton.position.set(5, 5);
	this.fullscreenButton.size.set(30, 30);
	this.fullscreenButton.setImage(Global.FILE_PATH + "icons/misc/fullscreen.png");
	this.fullscreenButton.setAltText(Locale.toggleFullscreen);
	this.fullscreenButton.setImageScale(0.8, 0.8);
	this.fullscreenButton.updateSize();
	this.fullscreenButton.updatePosition(Component.BOTTOM_RIGHT);
	this.fullscreenButton.setStyle("borderRadius", "5px");
	this.fullscreenButton.setVisibility(true);
	this.fullscreenButton.updateSyles({backgroundColor: "var(--panel-color)", opacity: 0.5}, {backgroundColor: "var(--panel-color)", opacity: 1.0});

	var fullscreen = true;
	this.fullscreenButton.setOnClick(function()
	{
		self.setFullscreen(fullscreen);
		fullscreen = !fullscreen;
	});

	/**
	 * VR button used to toggle vr mode.
	 *
	 * It is only displayed when VR is available.
	 *
	 * @attribute vrButton
	 * @type {ButtonIcon}
	 */
	this.vrButton = new ButtonIcon(this);
	this.vrButton.size.set(30, 30);
	this.vrButton.position.set(40, 5);
	this.vrButton.setImage(Global.FILE_PATH + "icons/misc/vr.png");
	this.vrButton.setAltText(Locale.toggleVR);
	this.vrButton.setImageScale(0.8, 0.8);
	this.vrButton.updateSize();
	this.vrButton.updatePosition(Component.BOTTOM_RIGHT);
	this.vrButton.setVisibility(false);
	this.vrButton.setStyle("borderRadius", "5px");
	this.vrButton.updateSyles({backgroundColor: "var(--panel-color)", opacity: 0.5}, {backgroundColor: "var(--panel-color)", opacity: 1.0});

	/**
	 * AR button used to toggle ar mode.
	 *
	 * It is only displayed when AR is available.
	 *
	 * @attribute arButton
	 * @type {ButtonIcon}
	 */
	this.arButton = new ButtonIcon(this);
	this.arButton.size.set(30, 30);
	this.arButton.position.set(75, 5);
	this.arButton.setImage(Global.FILE_PATH + "icons/misc/ar.png");
	this.arButton.setAltText(Locale.toggleAR);
	this.arButton.setImageScale(0.8, 0.8);
	this.arButton.updateSize();
	this.arButton.updatePosition(Component.BOTTOM_RIGHT);
	this.arButton.setVisibility(false);
	this.arButton.setStyle("borderRadius", "5px");
	this.arButton.updateSyles({backgroundColor: "var(--panel-color)", opacity: 0.5}, {backgroundColor: "var(--panel-color)", opacity: 1.0});
}
Tab used to preview a project running.

Clones the project instance and run it. Changes appplied in other tabs are not applied to the running instance.

@class RunProject
@extends {TabComponent}