Engine.MessageBox = class extends Engine.Dialog { get boxWidth() { return 290; } get boxHeight() { return 170; } get fontFamily() { return "Verdana"; } get fontSize() { return 14; } get buttonWidth() { return 85; } get buttonHeight() { return 35; } get buttonFontFamily() { return "Tiamat"; } get buttonFontSize() { return 14; } constructor(parentClip) { super(parentClip); this.background = new Engine.Drawable("BGStandard"); this.background.setNineRect(); this.text = new Engine.DrawableText("Message Here!");//PIXI.Text("message here", this.style); this.addChild(this.background); this.addChild(this.text); this.okButton = new Engine.DrawableButton("Button_Green"); this.cancelButton = new Engine.DrawableButton("Button_Red"); this.okButton.matchTextSize = false; this.cancelButton.matchTextSize = false; this.okButton.setWidth(this.buttonWidth); this.cancelButton.setWidth(this.buttonWidth); if (this.buttonHeight > 0 ) { this.okButton.setHeight(this.buttonHeight); this.cancelButton.setHeight(this.buttonHeight); } this.addChild(this.okButton); this.addChild(this.cancelButton); this.cancelButton.onClick = () => { this.clickedCancel(); } this.okButton.onClick = () => { this.clickedOK(); } this.enableHide = true; this.callbackFunction = null; } clickedCancel() { if (this.callbackFunction) this.callbackFunction(false); this.hide(); } clickedOK() { if (this.callbackFunction) this.callbackFunction(true); this.hide(); } show(message, okText, closeText, callbackFunction, width, height) { if (okText === undefined) okText = ""; if (closeText === undefined) closeText = ""; if (callbackFunction === undefined) callbackFunction = null; if (width === undefined) width = null; if (height === undefined) height = null; var useWidth = width ? width : this.boxWidth; var useHeight = height ? height : this.boxHeight; this.text.textAreaWidth = useWidth * 0.85; this.text.setText(message, this.fontFamily, this.fontSize, "center"); //this.text.scaleTextToFit(message, useWidth * 0.85, 80, this.fontFamily, this.fontSize) var yPadding = 20; var requiredHeight = this.text.height + yPadding * 2 + (okText == "" && closeText == "" ? 0 : this.okButton.height + yPadding); useHeight = Math.max(requiredHeight, useHeight); this.background.ninePlane.width = useWidth; this.background.ninePlane.height = useHeight; this.dialogWidth = useWidth; this.dialogHeight = useHeight; var space = (useWidth - this.okButton.width - this.cancelButton.width) / 3; this.okButton.y = useHeight - this.okButton.height - yPadding; this.okButton.x = space; this.cancelButton.y = this.okButton.y; this.cancelButton.x = this.okButton.x + this.okButton.width + space; this.active = true; this.callbackFunction = callbackFunction; this.parentClip.addChild(this); this.okButton.init("Button_Green", okText, this.buttonFontFamily, this.buttonFontSize); this.cancelButton.init("Button_Red", closeText, this.buttonFontFamily, this.buttonFontSize); var bottomY = 0; if (okText == "" && closeText == "") { this.removeChild(this.okButton); this.removeChild(this.cancelButton); bottomY = useHeight; this.enableHide = false; } else if (okText == "") { this.removeChild(this.okButton); this.addChild(this.cancelButton); this.cancelButton.x = (useWidth / 2 - this.cancelButton.width / 2); bottomY = this.cancelButton.y; } else if (closeText == "") { this.removeChild(this.cancelButton); this.addChild(this.okButton); this.okButton.x = (useWidth / 2 - this.okButton.width / 2); bottomY = this.okButton.y; } else { this.addChild(this.okButton); this.addChild(this.cancelButton); space = (useWidth - this.okButton.width - this.cancelButton.width) / 3; this.okButton.y = useHeight - (this.okButton.height * 1.5); this.okButton.x = space; this.cancelButton.y = this.okButton.y; this.cancelButton.x = this.okButton.x + this.okButton.width + space; bottomY = this.okButton.y; } this.text.x = (useWidth - this.text.textAreaWidth) / 2; this.text.y = (bottomY - this.text.height) / 2; this.showDialog(); } hide(instant) { if (this.enableHide) super.hide(instant); } }