mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-18 06:13:55 -07:00
Allows coding the GUI without global functions which break prototype-oriented coding, refs #5322, fixing the concern in4b1297b328. Supports stacked message boxes and removes the according workaround. Change structree / civinfo switch-dialog code from760a47335dto perform the callback for page that actually registered the callback. Ensure the parent that the callbackhandler is always called if the page is closed. Merge PopGuiPage and PopGuiPageCB following that choice, incidentally leaving cleaner code. Differential Revision: https://code.wildfiregames.com/D1684 Comments by: Yves, Vladislav, wraitii, leper This was SVN commit r22676.
55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
var g_Terms = {};
|
|
|
|
function initTerms(terms)
|
|
{
|
|
g_Terms = terms;
|
|
}
|
|
|
|
function openTerms(page)
|
|
{
|
|
Engine.PushGuiPage(
|
|
"page_termsdialog.xml",
|
|
{
|
|
"file": g_Terms[page].file,
|
|
"title": g_Terms[page].title,
|
|
"sprintf": g_Terms[page].sprintf,
|
|
"urlButtons": g_Terms[page].urlButtons || [],
|
|
"termsURL": g_Terms[page].termsURL || undefined,
|
|
"page": page
|
|
},
|
|
data => {
|
|
g_Terms[data.page].accepted = data.accepted;
|
|
|
|
Engine.ConfigDB_CreateAndWriteValueToFile(
|
|
"user",
|
|
g_Terms[data.page].config,
|
|
data.accepted ? getTermsHash(data.page) : "0",
|
|
"config/user.cfg");
|
|
|
|
if (g_Terms[data.page].callback)
|
|
g_Terms[data.page].callback(data);
|
|
}
|
|
);
|
|
}
|
|
|
|
function checkTerms()
|
|
{
|
|
for (let page in g_Terms)
|
|
if (!g_Terms[page].accepted)
|
|
return g_Terms[page].instruction || page;
|
|
|
|
return "";
|
|
}
|
|
|
|
function getTermsHash(page)
|
|
{
|
|
return Engine.CalculateMD5(
|
|
(g_Terms[page].salt ? g_Terms[page].salt() : "") +
|
|
Engine.ReadFile(g_Terms[page].file));
|
|
}
|
|
|
|
function loadTermsAcceptance()
|
|
{
|
|
for (let page in g_Terms)
|
|
g_Terms[page].accepted = Engine.ConfigDB_GetValue("user", g_Terms[page].config) == getTermsHash(page);
|
|
}
|