diff --git a/0000 b/0000 index c198bc8..766dc17 100644 --- a/0000 +++ b/0000 @@ -10,5 +10,7 @@ x /пуск|run.js /пуск|run.череда x /раскладки|layouts.js /раскладки|layouts.череда +x /темы|themes.js +/темы|themes.череда x /управление|controls.js /управление|controls.череда \ No newline at end of file diff --git a/пуск|run.js b/пуск|run.js index db4ddb3..7f631c1 100644 --- a/пуск|run.js +++ b/пуск|run.js @@ -7,5 +7,44 @@ { мир.уведомить("надо создать окно управления"); мир.уведомить("надо создать окно раскладок"); + мир.уведомить("надо создать окно тем"); мир.уведомить("надо создать окно окончания"); +}; + + +// // // // + + +ЗадатьОбщиеСтили = мир => +{ + var вид = document.createElement("style"); + document.head.appendChild(вид); + вид.innerHTML = ` + +.окно-с-отступами +{ + position: fixed; + left: 1em; + top: 1em; + bottom: 1em; + right: 1em; +} + +.прокрутка +{ + overflow: auto; + height: 100%; +} + +.ширина-по-содержимому +{ + display: inline-block; +} + +.выбранный-элемент-таблицы +{ + background: #eeeeee; +} + + `; }; \ No newline at end of file diff --git a/пуск|run.череда b/пуск|run.череда index 0414cfa..aa2fc70 100644 --- a/пуск|run.череда +++ b/пуск|run.череда @@ -1,2 +1,3 @@ загрузили ресурсы сцены + задать общие стили создать окна маджонга \ No newline at end of file diff --git a/раскладки|layouts.js b/раскладки|layouts.js index e94553d..39cb6d9 100644 --- a/раскладки|layouts.js +++ b/раскладки|layouts.js @@ -5,18 +5,16 @@ ОтобразитьВыбраннуюРаскладкуВТаблице = мир => { - console.debug("ОтобразитьВыбраннуюРаскладкуВТаблице"); var таблица = мир.окна.раскладки.таблица; - console.debug("ОтобразитьВыбраннуюРаскладкуВТаблице", таблица); // Очистить выбор. for (var номер in таблица.строки) { var элемент = таблица.элемент(номер); - элемент.removeClass("выбранная-раскладка"); + элемент.removeClass("выбранный-элемент-таблицы"); } // Задать выбор. var элемент = таблица.элемент(мир.номерВыбраннойРаскладки); - элемент.addClass("выбранная-раскладка"); + элемент.addClass("выбранный-элемент-таблицы"); }; @@ -42,6 +40,7 @@ } } + // // // // @@ -62,7 +61,6 @@ ЗадатьСписокРаскладок = мир => { - console.debug("ЗадатьСписокРаскладок"); var раскладки = Object.keys(мир.реестрРаскладок).sort(); var список = []; for (var номер in раскладки) @@ -104,15 +102,6 @@ document.head.appendChild(вид); вид.innerHTML = ` -#${мир.окна.раскладки.указатель} -{ - position: fixed; - left: 1em; - top: 1em; - bottom: 1em; - right: 1em; -} - #скрыть-раскладки { position: fixed; @@ -120,22 +109,6 @@ bottom: 0.5em; } -.прокрутка -{ - overflow: auto; - height: 100%; -} - -.ширина-по-содержимому -{ - display: inline-block; -} - -.выбранная-раскладка -{ - background: #eeeeee; -} - `; }; @@ -148,6 +121,7 @@ var окно = document.createElement("div"); окно.id = "окно-раскладки"; окно.style.display = "none"; + окно.classList.add("окно-с-отступами"); document.body.appendChild(окно); мир.окна.раскладки = { diff --git a/темы|themes.js b/темы|themes.js new file mode 100644 index 0000000..88b6b4a --- /dev/null +++ b/темы|themes.js @@ -0,0 +1,152 @@ + + +// // // // + + +ОтобразитьВыбраннуюТемуВТаблице = мир => +{ + 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; + top: 0.5em; +} + + + `; +}; + + +// // // // + + +СоздатьОкноТем = мир => +{ + var окно = document.createElement("div"); + окно.id = "окно-темы"; + окно.style.display = "none"; + окно.classList.add("окно-с-отступами"); + document.body.appendChild(окно); + + мир.окна.темы = { + "указатель": окно.id, + "элемент": окно, + "плавно": new ПлавноОтобразитьСкрыть(окно), + "список": `${окно.id}-список`, + }; + + окно.innerHTML = ` +