// TextWidgetClass : 画面上に非モーダルな文字列を表示
// args[0] : 表示するメッセージ。改行を含めることもできる。
// args[1] : アニメーション表示するか。省略可。規定値: true
// args[2] : アニメーション表示時に、最後の文字が表示された直後に閉じるかどうか。省略可。規定値/アニメーション無効時: false
// args[3] : このウィジェットがdetachされたときに実行されるWidget. args[2] == trueだったときのみ利用価値がある。(args[2] == falseのときにはどっちにしろ手動でこのWidgetをdetachする必要がある) 省略可
// args[4] : 背景色(default: black)
// args[5] : margin

var TextWidgetClass = function(manager, args)
{
	TextWidgetClass.base.apply(this, arguments);
	
	this.message = args[0].toString();
	this.origin = new Point2D(10,240);
	this.size = new Point2D(620, 230);
	this.margin == args[5] ? args[5] : 16;
	
	//文字をアニメーション表示するか
	if(args[1] == undefined) args[1] = true;
	this.animate = args[1];
	
	//文字を全部表示し終わった後自動で閉じるか
	if(args[2] == undefined) args[2] = false;
	this.autoClose = this.animate && args[2];
	
	this.messageIndex = !this.animate ? this.message.length : 0;
	this.interval = 5;
	this.intervalCount = 0;
	
	//このメッセージが表示し終わった後に実行するウィジェット
	this.nextWidget = args[3];
	
	if(args[4])
	{
		this.backColor = args[4];
	}else
	{
		this.backColor = "black";
	}
	
	this.wBox = createMessageBox("TextWidghetMessageBox-" + TextWidgetClass.attachedCount,
						this.size.x, this.size.y, this.origin.x, this.origin.y,
						null, this.backColor, undefined, this.margin);
	TextWidgetClass.attachedCount++;
	this.isPaused = !this.animate;
	
}.extend(WidgetClass, {
	attach : function(){
		this.manager.mainArea.appendChild(this.wBox);
	},
	detach : function(){
		this.manager.mainArea.removeChild(this.wBox);
		if(this.nextWidget)
		{
			this.manager.addWidget(this.nextWidget);
		}
	},
	tick : function(){
	
		
		
		if(!this.manager.UIManager.keyState.cursorDown) this.downKeyPushed = false;
		if(this.intervalCount >= this.interval)
		{
			if(!this.isPaused && this.messageIndex < this.message.length)
			{
				this.messageIndex++;
			}else
			{
				this.isPaused = true;
				
				if(this.autoClose)
				{
					return false;
				}
			}
			this.intervalCount = 0;
		}else
		{
			this.intervalCount++;
		}
		
		if(this.wBox != null)
		{
			changeMessageBox(this.wBox, this.message.slice(0, this.messageIndex), false);
		}
		return true;
	},
	draw : function(){
	}
});

TextWidgetClass.attachedCount = 0;
