178 lines
4.9 KiB
JavaScript
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() {
|
|
мир.уведомить("кнопка скрыть раскладки");
|
|
});
|
|
}; |