Files
mahjong-ui/раскладки|layouts.js

178 lines
4.9 KiB
JavaScript

// // // //
ОтобразитьВыбраннуюРаскладкуВТаблице = мир =>
{
console.debug("ОтобразитьВыбраннуюРаскладкуВТаблице");
var таблица = мир.окна.раскладки.таблица;
console.debug("ОтобразитьВыбраннуюРаскладкуВТаблице", таблица);
// Очистить выбор.
for (var номер in таблица.строки)
{
var элемент = таблица.элемент(номер);
элемент.removeClass("выбранная-раскладка");
}
// Задать выбор.
var элемент = таблица.элемент(мир.номерВыбраннойРаскладки);
элемент.addClass("выбранная-раскладка");
};
// // // //
ЗадатьНомерВыбраннойРаскладкиЕслиНеЗадан = мир =>
{
if (мир.номерВыбраннойРаскладки)
{
return;
}
// Нужно для случая отображения выбранной раскладки сразу после пуска.
const строки = мир.окна.раскладки.таблица.строки;
for (var номер in строки)
{
var название = строки[номер][1];
if (название == мир.выбраннаяРаскладка)
{
мир.номерВыбраннойРаскладки = номер;
return;
}
}
}
// // // //
ОтслеживатьВыборРаскладки = мир =>
{
const строки = мир.окна.раскладки.таблица.строки;
мир.окна.раскладки.таблица.выбор = (номер) =>
{
мир.выбраннаяРаскладка = строки[номер][1];
мир.номерВыбраннойРаскладки = номер;
мир.уведомить("выбрали раскладку");
};
};
// // // //
ЗадатьСписокРаскладок = мир =>
{
console.debug("ЗадатьСписокРаскладок");
var раскладки = Object.keys(мир.реестрРаскладок).sort();
var список = [];
for (var номер in раскладки)
{
var число = Number(номер) + 1;
var название = раскладки[номер];
список.push([число, название]);
}
мир.окна.раскладки.таблица.задатьЗаголовки(["№", "Название ⚬ 标题 ⚬ Name"]);
мир.окна.раскладки.таблица.задатьСтроки(список);
};
// // // //
ПлавноСкрытьОкноРаскладок = мир =>
{
мир.окна.раскладки.плавно.скрыть();
};
// // // //
ПлавноПоказатьОкноРаскладок = мир =>
{
мир.окна.раскладки.плавно.отобразить();
};
// // // //
ЗадатьВидОкнаРаскладок = мир =>
{
var вид = document.createElement("style");
document.head.appendChild(вид);
вид.innerHTML = `
#${мир.окна.раскладки.указатель}
{
position: fixed;
left: 1em;
top: 1em;
bottom: 1em;
right: 1em;
}
#скрыть-раскладки
{
position: fixed;
right: 0.5em;
bottom: 0.5em;
}
.прокрутка
{
overflow: auto;
height: 100%;
}
.ширина-по-содержимому
{
display: inline-block;
}
.выбранная-раскладка
{
background: #eeeeee;
}
`;
};
// // // //
СоздатьОкноРаскладок = мир =>
{
var окно = document.createElement("div");
окно.id = "окно-раскладки";
окно.style.display = "none";
document.body.appendChild(окно);
мир.окна.раскладки = {
"указатель": окно.id,
"элемент": окно,
"плавно": new ПлавноОтобразитьСкрыть(окно),
"список": `${окно.id}-список`,
};
окно.innerHTML = `
<center>
<span class="uk-text-large">Раскладки</span>
⚬ <span class="uk-text-large uk-text-bold">键盘布局</span> ⚬
<span class="uk-text-large">Layouts</span>
</center>
<div class="прокрутка ширина-по-содержимому">
<table id="${мир.окна.раскладки.список}" class="uk-table uk-table-divider"></table>
</div>
<a id="скрыть-раскладки" uk-icon="icon: close; ratio: 2"></a>
`;
мир.окна.раскладки.таблица = new Таблица(мир.окна.раскладки.список);
$("#скрыть-раскладки").click(function() {
мир.уведомить("кнопка скрыть раскладки");
});
};