152 lines
4.4 KiB
JavaScript
152 lines
4.4 KiB
JavaScript
|
||
|
||
// // // //
|
||
|
||
|
||
ОтобразитьВыбраннуюРаскладкуВТаблице = мир =>
|
||
{
|
||
var таблица = мир.окна.раскладки.таблица;
|
||
// Очистить выбор.
|
||
for (var номер in таблица.строки)
|
||
{
|
||
var элемент = таблица.элемент(номер);
|
||
элемент.removeClass("выбранный-элемент-таблицы");
|
||
}
|
||
// Задать выбор.
|
||
var элемент = таблица.элемент(мир.номерВыбраннойРаскладки);
|
||
элемент.addClass("выбранный-элемент-таблицы");
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ЗадатьНомерВыбраннойРаскладкиЕслиНеЗадан = мир =>
|
||
{
|
||
if (мир.номерВыбраннойРаскладки)
|
||
{
|
||
return;
|
||
}
|
||
// Нужно для случая отображения выбранной раскладки сразу после пуска.
|
||
const строки = мир.окна.раскладки.таблица.строки;
|
||
for (var номер in строки)
|
||
{
|
||
var название = строки[номер][1];
|
||
if (название == мир.выбраннаяРаскладка)
|
||
{
|
||
мир.номерВыбраннойРаскладки = номер;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ОтслеживатьВыборРаскладки = мир =>
|
||
{
|
||
const строки = мир.окна.раскладки.таблица.строки;
|
||
мир.окна.раскладки.таблица.выбор = (номер) =>
|
||
{
|
||
мир.выбраннаяРаскладка = строки[номер][1];
|
||
мир.номерВыбраннойРаскладки = номер;
|
||
мир.уведомить("выбрали раскладку");
|
||
};
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ЗадатьСписокРаскладок = мир =>
|
||
{
|
||
var раскладки = Object.keys(мир.реестрРаскладок).sort();
|
||
var список = [];
|
||
for (var номер in раскладки)
|
||
{
|
||
var число = Number(номер) + 1;
|
||
var название = раскладки[номер];
|
||
список.push([число, название]);
|
||
}
|
||
мир.окна.раскладки.таблица.задатьЗаголовки(["№", "Название ⚬ 标题 ⚬ Name"]);
|
||
мир.окна.раскладки.таблица.задатьСтроки(список);
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ПлавноСкрытьОкноРаскладок = мир =>
|
||
{
|
||
мир.окна.раскладки.плавно.скрыть();
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ПлавноПоказатьОкноРаскладок = мир =>
|
||
{
|
||
мир.окна.раскладки.плавно.отобразить();
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
ЗадатьВидОкнаРаскладок = мир =>
|
||
{
|
||
|
||
var вид = document.createElement("style");
|
||
document.head.appendChild(вид);
|
||
вид.innerHTML = `
|
||
|
||
#скрыть-раскладки
|
||
{
|
||
position: fixed;
|
||
right: 0.5em;
|
||
bottom: 0.5em;
|
||
}
|
||
|
||
`;
|
||
};
|
||
|
||
|
||
// // // //
|
||
|
||
|
||
СоздатьОкноРаскладок = мир =>
|
||
{
|
||
var окно = document.createElement("div");
|
||
окно.id = "окно-раскладки";
|
||
окно.style.display = "none";
|
||
окно.classList.add("окно-с-отступами");
|
||
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() {
|
||
мир.уведомить("кнопка скрыть раскладки");
|
||
});
|
||
}; |