D大的源代码是
// YesNoDialog.tjs - はい/いいえを選択するダイアログボックス
// Copyright (C)2001-2006, W.Dee and contributors 改変・配布は自由です
class YesNoDialogWindow extends Window
{
var yesButton; // [はい] ボタン
var noButton; // [いいえ] ボタン
var result = false; // no:false yes:true
//添加临时层
var tempLayer;
property temporaryLayer
{
// ワークエリアとして一時的に使用できるレイヤを返す
getter()
{
if(tempLayer === void)
{
tempLayer = new KAGLayer(this, primaryLayer);
tempLayer.name = "一時ワークレイヤ";
}
return tempLayer;
}
}
function YesNoDialogWindow(message, cap)
{
super.Window();
// メインウィンドウから cursor**** の情報をとってくる
if(global.Window.mainWindow !== null &&
typeof global.Window.mainWindow.cursorDefault != "undefined")
this.cursorDefault = global.Window.mainWindow.cursorDefault;
if(global.Window.mainWindow !== null &&
typeof global.Window.mainWindow.cursorPointed != "undefined")
this.cursorPointed = global.Window.mainWindow.cursorPointed;
// 外見の調整
borderStyle = bsNone;
innerSunken = false;
caption = cap;
// プライマリレイヤの作成
add(new Layer(this, null));
// プライマリのマウスカーソルを設定
if(typeof this.cursorDefault !== "undefined")
primaryLayer.cursor = cursorDefault;
//不同询问窗口的底图
if (message=="是否退出?")
primaryLayer.loadImages("yn_exit_cn");
else if (message=="是否回到开始?")
primaryLayer.loadImages("yn_return_cn");
else
primaryLayer.loadImages("yn_bgd");
primaryLayer.setSizeToImageSize();
// 文字样式设定
primaryLayer.font.face="黑体";
primaryLayer.font.height=28;
var tw = primaryLayer.font.getTextWidth(message);
var th = primaryLayer.font.getTextHeight(message);
// サイズを決定
var max_tw = 0;
var sum_th = 0;
var messages = message.split('\n');
for (var i=0; i < messages.count; i++)
{
var lw = primaryLayer.font.getTextWidth(messages[i]);
var lh = primaryLayer.font.getTextHeight(messages[i]);
if (lw > max_tw)
max_tw = tw;
sum_th += lh + 0; // 行間が必要なら+0より大きくする
}
tw = max_tw;
th = sum_th;
var w =primaryLayer.width;
var h = primaryLayer.height;
setInnerSize(w, h);
primaryLayer.width = w;
primaryLayer.height = h;
// YesNoDialog.tjs - はい/いいえを選択するダイアログボックス
// Copyright (C)2001-2006, W.Dee and contributors 改変・配布は自由です
class YesNoDialogWindow extends Window
{
var yesButton; // [はい] ボタン
var noButton; // [いいえ] ボタン
var result = false; // no:false yes:true
//添加临时层
var tempLayer;
property temporaryLayer
{
// ワークエリアとして一時的に使用できるレイヤを返す
getter()
{
if(tempLayer === void)
{
tempLayer = new KAGLayer(this, primaryLayer);
tempLayer.name = "一時ワークレイヤ";
}
return tempLayer;
}
}
function YesNoDialogWindow(message, cap)
{
super.Window();
// メインウィンドウから cursor**** の情報をとってくる
if(global.Window.mainWindow !== null &&
typeof global.Window.mainWindow.cursorDefault != "undefined")
this.cursorDefault = global.Window.mainWindow.cursorDefault;
if(global.Window.mainWindow !== null &&
typeof global.Window.mainWindow.cursorPointed != "undefined")
this.cursorPointed = global.Window.mainWindow.cursorPointed;
// 外見の調整
borderStyle = bsNone;
innerSunken = false;
caption = cap;
// プライマリレイヤの作成
add(new Layer(this, null));
// プライマリのマウスカーソルを設定
if(typeof this.cursorDefault !== "undefined")
primaryLayer.cursor = cursorDefault;
//不同询问窗口的底图
if (message=="是否退出?")
primaryLayer.loadImages("yn_exit_cn");
else if (message=="是否回到开始?")
primaryLayer.loadImages("yn_return_cn");
else
primaryLayer.loadImages("yn_bgd");
primaryLayer.setSizeToImageSize();
// 文字样式设定
primaryLayer.font.face="黑体";
primaryLayer.font.height=28;
var tw = primaryLayer.font.getTextWidth(message);
var th = primaryLayer.font.getTextHeight(message);
// サイズを決定
var max_tw = 0;
var sum_th = 0;
var messages = message.split('\n');
for (var i=0; i < messages.count; i++)
{
var lw = primaryLayer.font.getTextWidth(messages[i]);
var lh = primaryLayer.font.getTextHeight(messages[i]);
if (lw > max_tw)
max_tw = tw;
sum_th += lh + 0; // 行間が必要なら+0より大きくする
}
tw = max_tw;
th = sum_th;
var w =primaryLayer.width;
var h = primaryLayer.height;
setInnerSize(w, h);
primaryLayer.width = w;
primaryLayer.height = h;