You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.8 KiB
HTML
98 lines
2.8 KiB
HTML
<html window-resizable="false">
|
|
<head>
|
|
<include src="common.htm" />
|
|
<style src="dialog.css" />
|
|
<script>
|
|
var msg = $("#msg"),
|
|
buttons = $("#buttons"),
|
|
countdown,
|
|
timeLeft = 0;
|
|
|
|
view.uniqueid = "msgdlg";
|
|
view.isDialog = true;
|
|
if (view.parameters.icon != "")
|
|
view.loadIcon("themepicsingle:" + view.parameters.icon);
|
|
CommonNative.ShowTaskbarButton(document);
|
|
setupWindow(false, false, false);
|
|
animateWindow();
|
|
|
|
function countToClose() {
|
|
timeLeft--;
|
|
if (timeLeft == 0) {
|
|
view.close(view.parameters.default);
|
|
return false;
|
|
} else {
|
|
countdown.text = "(" + timeLeft + ")";
|
|
return true;
|
|
}
|
|
}
|
|
|
|
var texts = {
|
|
mbOK: "Ok",
|
|
mbCancel: "Cancel",
|
|
mbAbort: "Abort",
|
|
mbRetry: "Retry",
|
|
mbIgnore: "Ignore",
|
|
mbYes: "Yes",
|
|
mbNo: "No",
|
|
mbAll: "All",
|
|
mbNoToAll: "No to all",
|
|
mbYesToAll: "Yes to all",
|
|
mbHelp: "Help",
|
|
mbClose: "Close"
|
|
};
|
|
var ttexts = CommonNative.GetTranslations(texts);
|
|
var btns = [];
|
|
if (!view.parameters.buttons) view.parameters.buttons = ["mbOK"];
|
|
if (!view.parameters.default) view.parameters.default = "mbOK";
|
|
for (let btn of view.parameters.buttons) {
|
|
var cd;
|
|
var custom = typeof btn !== "string";
|
|
if ((!custom && btn == view.parameters.default) || (custom && btn[0] == view.parameters.default))
|
|
cd = <span id="countdown"></span>;
|
|
var value = custom ? btn[0] : btn;
|
|
var caption = custom ? btn[1] : ttexts[btn];
|
|
btns.push(<button uwp modal={value}><div><span>{caption}</span>{cd}</div></button>);
|
|
if (custom && btn.length > 2) btns.push(<br/>);
|
|
}
|
|
|
|
buttons.append(btns);
|
|
countdown = $("#countdown");
|
|
msg.text = view.parameters.message;
|
|
if (view.parameters.left) msg.classList.add("leftalign");
|
|
|
|
var def = $(`button[modal="${view.parameters.default}"]`);
|
|
if (def) def.state.focus = true;
|
|
|
|
if (view.parameters.timeout > 0) {
|
|
countdown.setVisible(true);
|
|
timeLeft = view.parameters.timeout;
|
|
document.timer(1s, countToClose);
|
|
countToClose();
|
|
} else countdown.setVisible(false);
|
|
|
|
document.on("click", "button", (e, el) => {
|
|
view.close(el.attr["modal"]);
|
|
}).on("keydown", (e) => {
|
|
if (e.keyCode == Event.VK_ESCAPE) view.close(view.parameters.cancel);
|
|
else if (e.ctrlKey && e.keyCode == Event.VK_C) Clipboard.writeText(view.parameters.message);
|
|
else if (e.keyCode == Event.VK_RIGHT) {
|
|
if (view.focus && view.focus.next) view.focus.next.state.focus = true;
|
|
} else if (e.keyCode == Event.VK_LEFT) {
|
|
if (view.focus && view.focus.prior) view.focus.prior.state.focus = true;
|
|
}
|
|
}).on("closerequest", (e) => {
|
|
if (e.reason == Event.REASON_BY_CHROME) {
|
|
e.preventDefault();
|
|
view.close(view.parameters.cancel);
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="row">
|
|
<div id="msg"></div>
|
|
<div id="buttons"></div>
|
|
</div>
|
|
</body>
|
|
</html> |